From 33a7c7185baf962feed6e93826771451e8063e7e Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Thu, 4 Jan 2024 17:12:26 +0100 Subject: [PATCH 001/301] Update plugin header --- plugin.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin.py b/plugin.py index 6e2e16c8c..be3b4f8ba 100644 --- a/plugin.py +++ b/plugin.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ From 615ff3259436792adc9cf62e66c050f7d132d48b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 27 Jan 2024 14:46:01 +0100 Subject: [PATCH 002/301] Switch to Beta --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4ee7d7c93..8bbc610ad 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "stable7", "version": "7.1.007"} +{"branch": "beta", "version": "7.2.003"} From b0d80af53b21332db6b58dd85a0d1fc6ba87f5ef Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 27 Jan 2024 15:41:14 +0100 Subject: [PATCH 003/301] move to beta --- plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.py b/plugin.py index fa73343bd..4007d0c73 100644 --- a/plugin.py +++ b/plugin.py @@ -11,7 +11,7 @@ # SPDX-License-Identifier: GPL-3.0 license """ - +

Plugin Zigbee for domoticz



Informations


From 736bc4d42fd0daed60d68473e05d4edc06b6eab9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 27 Jan 2024 15:42:00 +0100 Subject: [PATCH 004/301] move to beta --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 8bbc610ad..6766db063 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "beta", "version": "7.2.003"} +{"branch": "beta7", "version": "7.2.003"} From 885f0e8488a8589ac4d52b1c60cba21192858edc Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 31 Jan 2024 09:25:45 +0100 Subject: [PATCH 005/301] Upgrade zigpy to the latest version, with watchdig() enabled --- Classes/ZigpyTransport/AppBellows.py | 5 ++--- Classes/ZigpyTransport/AppDeconz.py | 9 +++------ Classes/ZigpyTransport/AppGeneric.py | 15 +++++++-------- Classes/ZigpyTransport/AppZnp.py | 25 ++++++++----------------- Modules/pluginHelpers.py | 8 ++++---- requirements.txt | 8 ++++---- 6 files changed, 28 insertions(+), 42 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 72795e6cf..ae0c38279 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -106,9 +106,8 @@ async def shutdown(self) -> None: if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=True)) - # # Version with zigpy watchdog() - # if self._watchdog_task is not None: - # self._watchdog_task.cancel() + if self._watchdog_task is not None: + self._watchdog_task.cancel() await self.disconnect() diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 1d5efda9a..f780cb86b 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -69,9 +69,7 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU LOGGER.info("startup Network Info: %s" %str(network_info)) self.callBackFunction(build_plugin_8015_frame_content( self, network_info)) - version = self.version - # Version with zigpy watchdog() - # version = int(self.state.node_info.version,16) + version = int(self.state.node_info.version,16) # Trigger Version payload to plugin deconz_model = self.get_device(nwk=t.NWK(0x0000)).model @@ -90,9 +88,8 @@ async def shutdown(self) -> None: if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=True)) - # # Version with zigpy watchdog() - #if self._watchdog_task is not None: - # self._watchdog_task.cancel() + if self._watchdog_task is not None: + self._watchdog_task.cancel() await self.disconnect() diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index bfa9928fe..d67044b24 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -51,12 +51,11 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) """ self.log.logging("TransportZigpy", "Log", "AppGeneric:initialize auto_form: %s force_form: %s Class: %s" %( auto_form, force_form, type(self))) - # 22 Jan. 2024 / Disabled in order to downgrade zigpy libraries - # https://github.com/zigpy/zigpy/discussions/1300 - ## Make sure the first thing we do is feed the watchdog - #if self.config[zigpy_conf.CONF_WATCHDOG_ENABLED]: - # await self.watchdog_feed() - # self._watchdog_task = asyncio.create_task(self._watchdog_loop()) + # Make sure the first thing we do is feed the watchdog + if self.config[zigpy_conf.CONF_WATCHDOG_ENABLED]: + await self.watchdog_feed() + self._watchdog_task = asyncio.create_task(self._watchdog_loop()) + await asyncio.sleep(1) # Retreive Last Backup _retreived_backup = _retreive_previous_backup(self) @@ -197,11 +196,11 @@ def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK) -> None: ieee = t.EUI64(ieee) try: dev = self.get_device(ieee) - #time.sleep(2.0) + asyncio.sleep(1) self.log.logging("TransportZigpy", "Debug", "Device 0x%04x (%s) joined the network" %(nwk, ieee)) except KeyError: dev = self.add_device(ieee, nwk) - #time.sleep(2.0) + asyncio.sleep(1) self.log.logging("TransportZigpy", "Debug", "New device 0x%04x (%s) joined the network" %(nwk, ieee)) if dev.nwk != nwk: diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index f2751ab2a..f566fbd14 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -74,20 +74,12 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU # Trigger Version payload to plugin - # Version with watchdog - # version = self.state.node_info.version - # znp_model = self.state.node_info.model - # znp_manuf = self.state.node_info.manufacturer - # FirmwareBranch, FirmwareVersion, build = znp_extract_versioning_for_plugin( self, znp_model, znp_manuf, version) - # self.callBackFunction(build_plugin_8010_frame_content(FirmwareBranch, "000000", FirmwareVersion, "" )) - - version = self._znp.version - znp_model = self.get_device(nwk=t.NWK(0x0000)).model - znp_manuf = self.get_device(nwk=t.NWK(0x0000)).manufacturer - - FirmwareBranch, FirmwareMajorVersion, FirmwareVersion, build = znp_extract_versioning_for_plugin( self, znp_model, znp_manuf) - self.callBackFunction(build_plugin_8010_frame_content(FirmwareBranch, FirmwareMajorVersion, FirmwareVersion, build )) - + version = self.state.node_info.version + znp_model = self.state.node_info.model + znp_manuf = self.state.node_info.manufacturer + FirmwareBranch, FirmwareVersion, build = znp_extract_versioning_for_plugin( self, znp_model, znp_manuf, version) + self.callBackFunction(build_plugin_8010_frame_content(FirmwareBranch, "000000", FirmwareVersion, "" )) + self.log.logging("TransportZigpy", "Status", "ZNP Radio manufacturer: %s" %znp_manuf) self.log.logging("TransportZigpy", "Status", "ZNP Radio board model: %s" %znp_model) self.log.logging("TransportZigpy", "Status", "ZNP Radio version: %s" %version) @@ -98,9 +90,8 @@ async def shutdown(self) -> None: if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=True)) - # Version with zigpy watchdog() - # if self._watchdog_task is not None: - # self._watchdog_task.cancel() + if self._watchdog_task is not None: + self._watchdog_task.cancel() await self.disconnect() diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 33af2bd35..6ffd61fee 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -19,10 +19,10 @@ from Modules.tools import how_many_devices MODULES_VERSION = { - "zigpy": "0.59.0", - "zigpy_znp": "0.11.6", - "zigpy_deconz": "0.21.1", - "bellows": "0.36.8", + "zigpy": "0.61.0", + "zigpy_znp": "0.12.1", + "zigpy_deconz": "0.22.4", + "bellows": "0.37.6", } def networksize_update(self): diff --git a/requirements.txt b/requirements.txt index ddf66b1c6..6d031ed4f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -zigpy==0.59.0 -zigpy_znp==0.11.6 -zigpy_deconz==0.21.1 -bellows==0.36.8 +zigpy==0.61.0 +zigpy_znp==0.12.1 +zigpy_deconz==0.22.4 +bellows==0.37.6 zigpy-cli==1.0.4 dnspython==2.3.0 pyserial>=3.5 From e592db2c31b07a44bce319ed5b7c6981afc28390 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 31 Jan 2024 09:43:52 +0100 Subject: [PATCH 006/301] fix on version helper --- .../ZigpyTransport/firmwareversionHelper.py | 73 +++++++------------ 1 file changed, 27 insertions(+), 46 deletions(-) diff --git a/Classes/ZigpyTransport/firmwareversionHelper.py b/Classes/ZigpyTransport/firmwareversionHelper.py index 7c70668c3..52425bdca 100644 --- a/Classes/ZigpyTransport/firmwareversionHelper.py +++ b/Classes/ZigpyTransport/firmwareversionHelper.py @@ -14,24 +14,6 @@ from Modules.zigbeeVersionTable import ZNP_MODEL -# ZNP -def znp_extract_versioning_for_plugin( self, znp_model, znp_manuf): - # CC1352/CC2652, Z-Stack 3.30+ (build 20211217) - ZNP_330 = "CC1352/CC2652, Z-Stack 3.30+" - ZNP_30X = "CC2531, Z-Stack 3.0.x" - - self.log.logging("TransportZigpy", "Log", "extract_versioning_for_plugin Model: %s Manuf: %s" %( znp_model, znp_manuf)) - - FirmwareBranch = next((ZNP_MODEL[x] for x in ZNP_MODEL if znp_model[: len(x)] == x), "99") - - FirmwareMajorVersion = znp_model[ znp_model.find("build") + 8 : -5 ] - FirmwareVersion = znp_model[ znp_model.find("build") + 10: -1] - build = znp_model[ znp_model.find("Z-Stack"): ] - - self.log.logging("TransportZigpy", "Log","extract_versioning_for_plugin %s %s %s %s" %(FirmwareBranch, FirmwareMajorVersion, FirmwareVersion, build)) - return FirmwareBranch, FirmwareMajorVersion, FirmwareVersion, build - - # Bellows def bellows_extract_versioning_for_plugin(self, brd_manuf, brd_name, version): self.log.logging("TransportZigpy", "Log", "bellows_extract_versioning_for_plugin Manuf: %s Name: %s Version: %s" % (brd_manuf, brd_name, version)) @@ -70,31 +52,30 @@ def deconz_extract_versioning_for_plugin(self, deconz_model, deconz_manuf, versi # ZNP - for zigpy libs with watchdog -# def znp_extract_versioning_for_plugin(self, znp_model, znp_manuf, version): -# #NodeInfo(nwk=0x0000, -# # ieee=00:12:4b:00:2a:1a:a7:35, -# # logical_type=, -# # model='CC2652', -# # manufacturer='Texas Instruments', -# # version='Z-Stack 20210708') -# -# self.log.logging("TransportZigpy", "Debug", "extract_versioning_for_plugin Model: %s Manuf: %s Version: %s" % (znp_model, znp_manuf, version)) -# -# # It is assumed that the build is always on the right side in version -# build = (''.join(char for char in reversed(version) if char.isdigit()))[::-1] -# if "Z-Stack Home" in version: -# firmware_branch = firmware_major_version = 22 -# firmware_version = "Z-Stack Home " + "(build %s)" %build -# -# if "Z-Stack 3.0.x" in version: -# firmware_branch = firmware_major_version = 21 -# firmware_version = "Z-Stack 3.0.x " + "(build %s)" %build -# else: -# firmware_branch = firmware_major_version = ZNP_MODEL[ znp_model ] -# firmware_version = "Z-Stack 3.30+ " + "(build %s)" %build -# -# self.log.logging("TransportZigpy", "Debug", "extract_versioning_for_plugin %s %s %s %s" % ( -# firmware_branch, firmware_major_version, firmware_version, build)) -# return firmware_branch, firmware_version, build -# -# +def znp_extract_versioning_for_plugin(self, znp_model, znp_manuf, version): + #NodeInfo(nwk=0x0000, + # ieee=00:12:4b:00:2a:1a:a7:35, + # logical_type=, + # model='CC2652', + # manufacturer='Texas Instruments', + # version='Z-Stack 20210708') + + self.log.logging("TransportZigpy", "Debug", "extract_versioning_for_plugin Model: %s Manuf: %s Version: %s" % (znp_model, znp_manuf, version)) + + # It is assumed that the build is always on the right side in version + build = (''.join(char for char in reversed(version) if char.isdigit()))[::-1] + if "Z-Stack Home" in version: + firmware_branch = firmware_major_version = 22 + firmware_version = "Z-Stack Home " + "(build %s)" %build + + if "Z-Stack 3.0.x" in version: + firmware_branch = firmware_major_version = 21 + firmware_version = "Z-Stack 3.0.x " + "(build %s)" %build + else: + firmware_branch = firmware_major_version = ZNP_MODEL[ znp_model ] + firmware_version = "Z-Stack 3.30+ " + "(build %s)" %build + + self.log.logging("TransportZigpy", "Debug", "extract_versioning_for_plugin %s %s %s %s" % ( + firmware_branch, firmware_major_version, firmware_version, build)) + return firmware_branch, firmware_version, build + From f786adddb49364d15481fd381e2bb97e41e69577 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 31 Jan 2024 09:45:48 +0100 Subject: [PATCH 007/301] Plugin beta7 version 7.2.004 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 6766db063..014ed4faf 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "beta7", "version": "7.2.003"} +{"branch": "beta7", "version": "7.2.004"} \ No newline at end of file From b07aabcc8b26fb12159ac9dec0c4b44bedc715c5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 31 Jan 2024 09:46:56 +0100 Subject: [PATCH 008/301] Plugin wip-develop version 7.2.005 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 014ed4faf..618dea961 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "beta7", "version": "7.2.004"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.005"} \ No newline at end of file From d394a0dd5f49646834e34c321bf6ce3ae75b7344 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 4 Feb 2024 20:27:29 +0100 Subject: [PATCH 009/301] add Name to create_task --- Classes/ZigpyTransport/AppGeneric.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index d67044b24..5292fde8b 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -54,7 +54,7 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) # Make sure the first thing we do is feed the watchdog if self.config[zigpy_conf.CONF_WATCHDOG_ENABLED]: await self.watchdog_feed() - self._watchdog_task = asyncio.create_task(self._watchdog_loop()) + self._watchdog_task = asyncio.create_task(self._watchdog_loop(), name="watchdog_loop") await asyncio.sleep(1) # Retreive Last Backup From 95efbe99242bc6fd428e075e74b794d1350e6cf8 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 4 Feb 2024 20:27:53 +0100 Subject: [PATCH 010/301] add Name to create_task --- Classes/ZigpyTransport/zigpyThread.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index d56a681ff..73a26aef1 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -125,7 +125,8 @@ async def start_zigpy_task(self, channel, extended_pan_id): self.log.logging( "TransportZigpy", "Debug", f"start_zigpy_task -extendedPANID {self.pluginconf.pluginConf['extendedPANID']} {extended_pan_id}", ) task = asyncio.create_task( - radio_start(self, self.pluginconf, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id) + radio_start(self, self.pluginconf, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), + name=f"radio_start-{self._radiomodule}-{self._serialPort}" ) await asyncio.gather(task, return_exceptions=False) await asyncio.sleep(1) @@ -531,7 +532,9 @@ async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): try: task = asyncio.create_task( - transport_request( self, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=AckIsDisable, use_ieee=False, delay=delay, extended_timeout=extended_timeout) ) + transport_request( self, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=AckIsDisable, use_ieee=False, delay=delay, extended_timeout=extended_timeout), + name=f"transport_request-{destination}-{Cluster}-{Sqn}" + ) self.statistics._sent += 1 except (asyncio.TimeoutError, asyncio.exceptions.TimeoutError) as e: @@ -758,7 +761,7 @@ async def _limit_concurrency(self, destination, sequence): self._concurrent_requests_semaphores_list[_ieee] = asyncio.Semaphore(MAX_CONCURRENT_REQUESTS_PER_DEVICE) self._currently_waiting_requests_list[_ieee] = 0 - start_time = time.time() + start_time = time.monotonic() was_locked = self._concurrent_requests_semaphores_list[_ieee].locked() if was_locked: @@ -774,8 +777,9 @@ async def _limit_concurrency(self, destination, sequence): try: async with self._concurrent_requests_semaphores_list[_ieee]: if was_locked: - self.log.logging( "TransportZigpy", "Debug", "Previously delayed request %s is now running, " "delayed by %0.2f seconds for %s" % (sequence, (time.time() - start_time), _nwkid), _nwkid, ) + self.log.logging( "TransportZigpy", "Debug", "Previously delayed request %s is now running, " "delayed by %0.2f seconds for %s" % (sequence, (time.monotonic() - start_time), _nwkid), _nwkid, ) yield + finally: if was_locked: self._currently_waiting_requests_list[_ieee] -= 1 From 49f62b3891814678843bdcd06c3081c21cf38208 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 4 Feb 2024 20:28:14 +0100 Subject: [PATCH 011/301] Update zigpy libs --- Modules/pluginHelpers.py | 4 ++-- requirements.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 6ffd61fee..7dc444e1f 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -19,9 +19,9 @@ from Modules.tools import how_many_devices MODULES_VERSION = { - "zigpy": "0.61.0", + "zigpy": "0.62.0", "zigpy_znp": "0.12.1", - "zigpy_deconz": "0.22.4", + "zigpy_deconz": "0.23.0", "bellows": "0.37.6", } diff --git a/requirements.txt b/requirements.txt index 6d031ed4f..2c3b6a1f9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -zigpy==0.61.0 +zigpy==0.62.0 zigpy_znp==0.12.1 -zigpy_deconz==0.22.4 +zigpy_deconz==0.23.0 bellows==0.37.6 zigpy-cli==1.0.4 dnspython==2.3.0 From 8e2f46531f17cf0acf8bf63c74e22dd71436a94c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 6 Feb 2024 18:55:00 +0100 Subject: [PATCH 012/301] upgrade zigpy libs --- Modules/pluginHelpers.py | 4 ++-- requirements.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 7dc444e1f..c8b3fa419 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -19,10 +19,10 @@ from Modules.tools import how_many_devices MODULES_VERSION = { - "zigpy": "0.62.0", + "zigpy": "0.62.2", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.0", - "bellows": "0.37.6", + "bellows": "0.38.0", } def networksize_update(self): diff --git a/requirements.txt b/requirements.txt index 2c3b6a1f9..06ec9bad4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -zigpy==0.62.0 +zigpy==0.62.2 zigpy_znp==0.12.1 zigpy_deconz==0.23.0 -bellows==0.37.6 +bellows==0.38.0 zigpy-cli==1.0.4 dnspython==2.3.0 pyserial>=3.5 From 0458ac2acedec189e6d92511ef206c4e36c84ee2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 9 Feb 2024 19:24:50 +0100 Subject: [PATCH 013/301] Update to latest zigpy radio lib --- Modules/pluginHelpers.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index c8b3fa419..d3cd26deb 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -19,7 +19,7 @@ from Modules.tools import how_many_devices MODULES_VERSION = { - "zigpy": "0.62.2", + "zigpy": "0.62.3", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.0", "bellows": "0.38.0", diff --git a/requirements.txt b/requirements.txt index 06ec9bad4..cac1380a5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -zigpy==0.62.2 +zigpy==0.62.3 zigpy_znp==0.12.1 zigpy_deconz==0.23.0 bellows==0.38.0 From 2aa80b46b925d2d5646fece82f243f41fb233f81 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 10 Feb 2024 12:45:28 +0100 Subject: [PATCH 014/301] do not use async.sleep() in a non async function --- Classes/ZigpyTransport/AppGeneric.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 5292fde8b..2aac59b04 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -196,11 +196,11 @@ def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK) -> None: ieee = t.EUI64(ieee) try: dev = self.get_device(ieee) - asyncio.sleep(1) + time.sleep(1.0) self.log.logging("TransportZigpy", "Debug", "Device 0x%04x (%s) joined the network" %(nwk, ieee)) except KeyError: dev = self.add_device(ieee, nwk) - asyncio.sleep(1) + time.sleep(1.0) self.log.logging("TransportZigpy", "Debug", "New device 0x%04x (%s) joined the network" %(nwk, ieee)) if dev.nwk != nwk: From e64b069c5b5b78a012f754343ca3712e2c6bdaf3 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 10 Feb 2024 12:45:37 +0100 Subject: [PATCH 015/301] Plugin wip-develop version 7.2.006 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 618dea961..61cdccc3a 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.005"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.006"} \ No newline at end of file From 8ca87a8fe445c9ee1bd8c5217742aec0c7698af5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 21 Feb 2024 19:20:08 +0100 Subject: [PATCH 016/301] upgrade zigpy radio lib level --- Classes/ZigpyTransport/zigpyThread.py | 4 ++-- Modules/pluginHelpers.py | 2 +- requirements.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 73a26aef1..1edef87e2 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -240,7 +240,7 @@ def ezsp_configuration_setup(self, conf, serialPort): def znp_configuration_setup(self, conf, serialPort): config = { - conf.CONF_DEVICE: {"path": serialPort,}, + conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, conf.CONF_ZNP_CONFIG: { }, zigpy.config.CONF_TOPO_SCAN_ENABLED: False, @@ -256,7 +256,7 @@ def znp_configuration_setup(self, conf, serialPort): def deconz_configuration_setup(self, conf, serialPort): return { - conf.CONF_DEVICE: {"path": serialPort}, + conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, zigpy.config.CONF_TOPO_SCAN_ENABLED: False, # zigpy.config.CONF_STARTUP_ENERGY_SCAN: False diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index d3cd26deb..6f7586d6c 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -21,7 +21,7 @@ MODULES_VERSION = { "zigpy": "0.62.3", "zigpy_znp": "0.12.1", - "zigpy_deconz": "0.23.0", + "zigpy_deconz": "0.23.1", "bellows": "0.38.0", } diff --git a/requirements.txt b/requirements.txt index cac1380a5..dbb6b6977 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ zigpy==0.62.3 zigpy_znp==0.12.1 -zigpy_deconz==0.23.0 +zigpy_deconz==0.23.1 bellows==0.38.0 zigpy-cli==1.0.4 dnspython==2.3.0 From 89fb5843655f3251a59a1cbe7635a21f88cab219 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 25 Feb 2024 12:47:39 +0100 Subject: [PATCH 017/301] update zigpy radio libs --- Modules/pluginHelpers.py | 4 ++-- requirements.txt | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 6f7586d6c..09e7d3f91 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -19,10 +19,10 @@ from Modules.tools import how_many_devices MODULES_VERSION = { - "zigpy": "0.62.3", + "zigpy": "0.63.0", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", - "bellows": "0.38.0", + "bellows": "0.38.1", } def networksize_update(self): diff --git a/requirements.txt b/requirements.txt index dbb6b6977..ce4ded8fa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,11 @@ -zigpy==0.62.3 +zigpy==0.63.0 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 -bellows==0.38.0 +bellows==0.38.1 zigpy-cli==1.0.4 dnspython==2.3.0 pyserial>=3.5 z4d-certified-devices charset-normalizer==2.0.11 distro +pyserial-asyncio-fast \ No newline at end of file From 1374088ae187f4f75d71fd9fa75e150bf0b64cb4 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 25 Feb 2024 12:47:49 +0100 Subject: [PATCH 018/301] Plugin wip-develop version 7.2.008 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index cf523ef86..6965b4971 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.007"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.008"} \ No newline at end of file From 83590041887e19c9a59f5965d834b46b958a4fe9 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sun, 25 Feb 2024 21:29:48 +0100 Subject: [PATCH 019/301] Domoticz extended framework (7.3) (#1683) * More work to get DomoticzEx working * Still leave plugin with legacy framework for further testing of the abstract layer --- Classes/AdminWidgets.py | 150 +- Classes/DomoticzDB.py | 1 - Classes/GroupMgtv2/GroupManagement.py | 52 +- Classes/GroupMgtv2/GrpCommands.py | 22 +- Classes/GroupMgtv2/GrpDatabase.py | 12 +- Classes/GroupMgtv2/GrpDomoticz.py | 259 +-- Classes/GroupMgtv2/GrpIkeaRemote.py | 10 +- Classes/GroupMgtv2/GrpMigration.py | 16 +- Classes/GroupMgtv2/GrpResponses.py | 9 +- Classes/GroupMgtv2/GrpServices.py | 57 +- Classes/GroupMgtv2/GrpWebServices.py | 23 +- Classes/LoggingManagement.py | 56 +- Classes/PluginConf.py | 251 ++- Classes/TransportStats.py | 74 +- Classes/WebServer/WebServer.py | 223 +- Classes/WebServer/com.py | 36 +- Classes/WebServer/dispatcher.py | 1 - Classes/WebServer/onMessage.py | 18 +- Classes/WebServer/rest_Bindings.py | 14 +- Classes/WebServer/rest_Casaia.py | 8 +- Classes/WebServer/rest_CfgReporting.py | 6 +- Classes/WebServer/rest_Energy.py | 1 - Classes/WebServer/rest_Groups.py | 403 ++-- Classes/WebServer/rest_Ota.py | 6 +- Classes/WebServer/rest_PluginUpgrade.py | 5 +- Classes/WebServer/rest_Provisioning.py | 42 +- Classes/WebServer/rest_Topology.py | 27 +- Classes/WebServer/rest_ZLinky.py | 1 - Classes/WebServer/rest_change_ModelName.py | 1 - Classes/WebServer/rest_logging.py | 12 +- Classes/WebServer/rest_recreateWidget.py | 12 +- Classes/WebServer/sendresponse.py | 43 +- Classes/WebServer/tools.py | 15 +- Classes/ZigateTransport/Transport.py | 12 +- Classes/ZigateTransport/readerThread.py | 3 +- Modules/casaia.py | 4 - Modules/command.py | 2110 +++++++++---------- Modules/database.py | 76 +- Modules/domoCreate.py | 59 +- Modules/domoMaj.py | 293 ++- Modules/domoTools.py | 552 ++--- Modules/domoticzAPI.py | 73 - Modules/domoticzAbstractLayer.py | 546 ++++- Modules/heartbeat.py | 32 +- Modules/pairingProcess.py | 12 +- Modules/pluginHelpers.py | 9 +- Modules/restartPlugin.py | 10 +- Modules/tools.py | 91 +- Z4D_decoders/z4d_decoder_Data_Indication.py | 4 +- Z4D_decoders/z4d_decoder_IEEE_addr_req.py | 3 +- Z4D_decoders/z4d_decoder_helpers.py | 13 + plugin.py | 181 +- 52 files changed, 2892 insertions(+), 3057 deletions(-) delete mode 100644 Modules/domoticzAPI.py diff --git a/Classes/AdminWidgets.py b/Classes/AdminWidgets.py index 3c4527b6a..8deb91539 100644 --- a/Classes/AdminWidgets.py +++ b/Classes/AdminWidgets.py @@ -10,8 +10,9 @@ """ -import Domoticz -from datetime import datetime +from Modules.domoticzAbstractLayer import ( + FreeUnit, domo_create_api, domo_read_nValue_sValue, domo_update_api, + domoticz_error_api, find_first_unit_widget_from_deviceID) DEVICEID_ADMIN_WIDGET = "Zigate-01-" DEVICEID_STATUS_WIDGET = "Zigate-02-" @@ -21,91 +22,62 @@ DEVICEID_TXT_WIDGET_TXT = "Zigate Notifications" +def _get_switch_selector_options(self, ): + if self.pluginconf.pluginConf["eraseZigatePDM"]: + return { + "LevelActions": "|||||||", + "LevelNames": "Off|Purge Reports|Soft Reset|One Time Enrollment|Perm. Enrollment|Interf Scan|LQI Report|Erase PDM", + "LevelOffHidden": "true", + "SelectorStyle": "0", + } + + return { + "LevelActions": "|||||||", + "LevelNames": "Off|Purge Reports|Soft Reset|One Time Enrolmennt|Perm. Enrollment|Interf Scan|LQI Report", + "LevelOffHidden": "true", + "SelectorStyle": "0", + } + class AdminWidgets: - def __init__(self, PluginConf, Devices, ListOfDevices, HardwareID): + def __init__(self, log, PluginConf, pluginParameters, Devices, ListOfDevices, HardwareID): self.pluginconf = PluginConf + self.pluginParameters = pluginParameters self.Devices = Devices # Point to the List of Domoticz Devices self.ListOfDevices = ListOfDevices # Point to the Global ListOfDevices self.HardwareID = HardwareID + self.log = log self.createStatusWidget(Devices) self.createNotificationWidget(Devices) # createAdminWidget( self, Devices ) - def FreeUnit(self, Devices): - """ - FreeUnit - Look for a Free Unit number. - """ - for x in range(1, 255): - if x not in Devices: - return x - - return len(Devices) + 1 - def createAdminWidget(self, Devices): deviceid_admin_widget = DEVICEID_ADMIN_WIDGET + "%02s" % self.HardwareID - unit = 0 - for x in Devices: - if Devices[x].DeviceID == deviceid_admin_widget: - unit = x - break - if unit != 0: + + if find_first_unit_widget_from_deviceID(self, Devices, deviceid_admin_widget ): return - if self.pluginconf.pluginConf["eraseZigatePDM"]: - Options = { - "LevelActions": "|||||||", - "LevelNames": "Off|Purge Reports|Soft Reset|One Time Enrollment|Perm. Enrollment|Interf Scan|LQI Report|Erase PDM", - "LevelOffHidden": "true", - "SelectorStyle": "0", - } - else: - Options = { - "LevelActions": "|||||||", - "LevelNames": "Off|Purge Reports|Soft Reset|One Time Enrolmennt|Perm. Enrollment|Interf Scan|LQI Report", - "LevelOffHidden": "true", - "SelectorStyle": "0", - } - - unit = self.FreeUnit(Devices) widget_name = DEVICEID_ADMIN_WIDGET_TXT + " %02s" % self.HardwareID - myDev = Domoticz.Device( - DeviceID=deviceid_admin_widget, - Name=widget_name, - Unit=unit, - Type=244, - Subtype=62, - Switchtype=18, - Options=Options, - ) - myDev.Create() - ID = myDev.ID - if myDev.ID == -1: - Domoticz.Error("createAdminWidget - Fail to create %s. %s" % (widget_name, str(myDev))) + unit = FreeUnit(self, Devices, deviceid_admin_widget, nbunit_=1) + ID = domo_create_api(self, Devices, deviceid_admin_widget, unit, widget_name, Type_=244, Subtype_=62, Switchtype_=18, widgetOptions=_get_switch_selector_options(self)) + if ID == -1: + domoticz_error_api("createAdminWidget - Fail to create %s." % (widget_name)) return def createStatusWidget(self, Devices): deviceid_status_widget = DEVICEID_STATUS_WIDGET + "%02s" % self.HardwareID - unit = 0 - for x in Devices: - if Devices[x].DeviceID == deviceid_status_widget: - unit = x - break - if unit != 0: + + if find_first_unit_widget_from_deviceID(self, Devices, deviceid_status_widget): return - unit = self.FreeUnit(Devices) + unit = FreeUnit(self, Devices, deviceid_status_widget, nbunit_=1) widget_name = DEVICEID_STATUS_WIDGET_TXT + " %02s" % self.HardwareID - myDev = Domoticz.Device( - DeviceID=deviceid_status_widget, Name=widget_name, Unit=unit, Type=243, Subtype=22, Switchtype=0 - ) - myDev.Create() - ID = myDev.ID - if myDev.ID == -1: - Domoticz.Error("createAdminWidget - Fail to create %s. %s" % (widget_name, str(myDev))) + ID = domo_create_api(self, Devices, deviceid_status_widget, unit, widget_name, Type_=243, Subtype_=22, Switchtype_=0,) + + if ID == -1: + domoticz_error_api("createAdminWidget - Fail to create %s." % (widget_name)) return self.updateStatusWidget(Devices, "Off") @@ -114,23 +86,14 @@ def createStatusWidget(self, Devices): def createNotificationWidget(self, Devices): deviceid_txt_widget = DEVICEID_TXT_WIDGET + "%02s" % self.HardwareID - unit = 0 - for x in Devices: - if Devices[x].DeviceID == deviceid_txt_widget: - unit = x - break - if unit != 0: + if find_first_unit_widget_from_deviceID(self, Devices, deviceid_txt_widget ): return - unit = self.FreeUnit(Devices) + unit = FreeUnit(self, Devices, deviceid_txt_widget, nbunit_=1) widget_name = DEVICEID_TXT_WIDGET_TXT + " %02s" % self.HardwareID - myDev = Domoticz.Device( - DeviceID=deviceid_txt_widget, Name=widget_name, Unit=unit, Type=243, Subtype=19, Switchtype=0 - ) - myDev.Create() - ID = myDev.ID - if myDev.ID == -1: - Domoticz.Error("createNotificationWidget - Fail to create %s. %s" % (widget_name, str(myDev))) + ID = domo_create_api(self, Devices, deviceid_txt_widget, unit, widget_name, Type_=243, Subtype_=19, Switchtype_=0,) + if ID == -1: + domoticz_error_api("createNotificationWidget - Fail to create %s." % (widget_name)) return return @@ -147,42 +110,39 @@ def handleAdminWidget(self, Devices, Unit, Command, Color): return def updateStatusWidget(self, Devices, statusType): - STATUS_WIDGET = {"No Communication": 4, "Startup": 0, "Ready": 1, "Enrollment": 3, "Busy": 3} deviceid_status_widget = DEVICEID_STATUS_WIDGET + "%02s" % self.HardwareID if statusType not in STATUS_WIDGET: return - unit = 0 - for x in Devices: - if Devices[x].DeviceID == deviceid_status_widget: - unit = x - break - if unit == 0: + unit = find_first_unit_widget_from_deviceID(self, Devices, deviceid_status_widget ) + if not unit: return nValue = STATUS_WIDGET[statusType] sValue = str(statusType) - if sValue != Devices[unit].sValue: - Devices[unit].Update(nValue=nValue, sValue=sValue) + + _, cur_svalue = domo_read_nValue_sValue(self, Devices, deviceid_status_widget, unit) + + if sValue != cur_svalue: + domo_update_api(self, Devices, deviceid_status_widget, unit, nValue, sValue) return def updateNotificationWidget(self, Devices, notification): deviceid_txt_widget = DEVICEID_TXT_WIDGET + "%02s" % self.HardwareID - unit = 0 - for x in Devices: - if Devices[x].DeviceID == deviceid_txt_widget: - unit = x - break - if unit == 0: + unit = find_first_unit_widget_from_deviceID(self, Devices, deviceid_txt_widget ) + if not unit: return - nValue = 0 + _, cur_svalue = domo_read_nValue_sValue(self, Devices, deviceid_txt_widget, unit) + sValue = str(notification) - if sValue != Devices[unit].sValue: - Devices[unit].Update(nValue=nValue, sValue=sValue) + if sValue != cur_svalue: + domo_update_api(self, Devices, deviceid_txt_widget, unit, 0, sValue) def handleCommand(self, Command): return + + diff --git a/Classes/DomoticzDB.py b/Classes/DomoticzDB.py index 59fff06fe..acc769ea0 100644 --- a/Classes/DomoticzDB.py +++ b/Classes/DomoticzDB.py @@ -18,7 +18,6 @@ import time import urllib.request import ssl -import Domoticz from Modules.restartPlugin import restartPluginViaDomoticzJsonApi from Classes.LoggingManagement import LoggingManagement diff --git a/Classes/GroupMgtv2/GroupManagement.py b/Classes/GroupMgtv2/GroupManagement.py index e43a6a5ae..4f3bab9be 100644 --- a/Classes/GroupMgtv2/GroupManagement.py +++ b/Classes/GroupMgtv2/GroupManagement.py @@ -50,48 +50,36 @@ # - Managing device short address changes ( could be better to store the IEEE ) # -import os import json +import os import pickle -import Domoticz - -from Classes.GroupMgtv2.GrpServices import scan_device_for_grp_membership from Classes.GroupMgtv2.GrpMigration import GrpMgtv2Migration -from Modules.zigateConsts import MAX_LOAD_ZIGATE +from Classes.GroupMgtv2.GrpServices import scan_device_for_grp_membership from Classes.LoggingManagement import LoggingManagement +from Modules.zigateConsts import MAX_LOAD_ZIGATE class GroupsManagement(object): + from Classes.GroupMgtv2.GrpDatabase import (load_groups_list_from_json, + update_due_to_nwk_id_change, + write_groups_list) + from Classes.GroupMgtv2.GrpDomoticz import (processCommand, + update_domoticz_group_device) + from Classes.GroupMgtv2.GrpIkeaRemote import \ + manageIkeaTradfriRemoteLeftRight from Classes.GroupMgtv2.GrpResponses import ( - statusGroupRequest, - remove_group_member_ship_response, - look_for_group_member_ship_response, - check_group_member_ship_response, - add_group_member_ship_response, - ) - - from Classes.GroupMgtv2.GrpDomoticz import update_domoticz_group_device, processCommand - from Classes.GroupMgtv2.GrpDatabase import ( - write_groups_list, - load_groups_list_from_json, - update_due_to_nwk_id_change, - ) + add_group_member_ship_response, check_group_member_ship_response, + look_for_group_member_ship_response, remove_group_member_ship_response, + statusGroupRequest) from Classes.GroupMgtv2.GrpServices import ( - FullRemoveOfGroup, - checkAndTriggerIfMajGroupNeeded, - addGroupMemberShip, - RemoveNwkIdFromAllGroups, - get_available_grp_id, - add_group_member_ship_from_remote, - ) + FullRemoveOfGroup, RemoveNwkIdFromAllGroups, + add_group_member_ship_from_remote, addGroupMemberShip, + checkAndTriggerIfMajGroupNeeded, get_available_grp_id) from Classes.GroupMgtv2.GrpWebServices import ( - process_web_request, - ScanAllDevicesForGroupMemberShip, - ScanDevicesForGroupMemberShip, - ) - from Classes.GroupMgtv2.GrpIkeaRemote import manageIkeaTradfriRemoteLeftRight + ScanAllDevicesForGroupMemberShip, ScanDevicesForGroupMemberShip, + process_web_request) def __init__( self, @@ -109,7 +97,8 @@ def __init__( IEEE2NWK, DeviceConf, log, - readZclClusters + readZclClusters, + pluginParameters ): self.zigbee_communication = zigbee_communitation self.HB = 0 @@ -132,6 +121,7 @@ def __init__( self.DomoticzMajor = DomoticzMajor self.DomoticzMinor = DomoticzMinor self.readZclClusters = readZclClusters + self.pluginParameters = pluginParameters # Check if we have to open the old format if os.path.isfile(self.pluginconf.pluginConf["pluginData"] + "/GroupsList-%02d.pck" % hardwareID): # We are in the Migration from Old Group Managemet to new. diff --git a/Classes/GroupMgtv2/GrpCommands.py b/Classes/GroupMgtv2/GrpCommands.py index a11983be7..4f3265413 100644 --- a/Classes/GroupMgtv2/GrpCommands.py +++ b/Classes/GroupMgtv2/GrpCommands.py @@ -6,19 +6,19 @@ # All operations to and from Zigate -import Domoticz + from Modules.tools import Hex_Format, rgb_to_hsl, rgb_to_xy -from Zigbee.zclCommands import (zcl_add_group_membership, - zcl_check_group_member_ship, - zcl_group_identify_trigger_effect, - zcl_group_move_hue_and_saturation, - zcl_group_move_to_colour, - zcl_group_move_to_colour_temperature, - zcl_look_for_group_member_ship, - zcl_remove_all_groups, - zcl_remove_group_member_ship, - zcl_send_group_member_ship_identify) from Modules.zigateConsts import ADDRESS_MODE, ZIGATE_EP +from Zigbee.zclCommands import (zcl_add_group_membership, + zcl_check_group_member_ship, + zcl_group_identify_trigger_effect, + zcl_group_move_hue_and_saturation, + zcl_group_move_to_colour, + zcl_group_move_to_colour_temperature, + zcl_look_for_group_member_ship, + zcl_remove_all_groups, + zcl_remove_group_member_ship, + zcl_send_group_member_ship_identify) GRP_CMD_WITHOUT_ACK = False # Group Management Command diff --git a/Classes/GroupMgtv2/GrpDatabase.py b/Classes/GroupMgtv2/GrpDatabase.py index d29f24218..2a2bb157f 100644 --- a/Classes/GroupMgtv2/GrpDatabase.py +++ b/Classes/GroupMgtv2/GrpDatabase.py @@ -20,8 +20,10 @@ import os import time -import Domoticz -from Modules.domoticzAPI import getConfigItem, setConfigItem +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api, getConfigItem, + setConfigItem) from Modules.tools import is_domoticz_db_available @@ -62,9 +64,9 @@ def load_groups_list_from_json(self): txt_timestamp = 0 if os.path.isfile(self.GroupListFileName): txt_timestamp = os.path.getmtime(self.GroupListFileName) - Domoticz.Log("%s timestamp is %s" % (self.GroupListFileName, txt_timestamp)) + domoticz_log_api("%s timestamp is %s" % (self.GroupListFileName, txt_timestamp)) if dz_timestamp < txt_timestamp: - Domoticz.Log("Dz Group is older than Json Dz: %s Json: %s" % (dz_timestamp, txt_timestamp)) + domoticz_log_api("Dz Group is older than Json Dz: %s Json: %s" % (dz_timestamp, txt_timestamp)) # We should load the json file if not isinstance(_domoticz_grouplist, dict): @@ -78,7 +80,7 @@ def load_groups_list_from_json(self): self.ListOfGroups = json.load(handle) if is_domoticz_db_available(self) and self.pluginconf.pluginConf["useDomoticzDatabase"]: - Domoticz.Log("GroupList Loaded from Dz: %s from Json: %s" % (len(_domoticz_grouplist), len(self.ListOfGroups))) + domoticz_log_api("GroupList Loaded from Dz: %s from Json: %s" % (len(_domoticz_grouplist), len(self.ListOfGroups))) def build_group_list_from_list_of_devices(self): diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index f507131ac..e2df5bf0a 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -1,25 +1,35 @@ -# !/usr/bin/env python3 -# coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import json -import Domoticz from Classes.GroupMgtv2.GrpCommands import (set_hue_saturation, set_kelvin_color, set_rgb_color) from Classes.GroupMgtv2.GrpDatabase import update_due_to_nwk_id_change +from Modules.domoticzAbstractLayer import ( + FreeUnit, domo_create_api, domo_delete_widget, domo_read_Name, + domo_read_nValue_sValue, domo_read_SwitchType_SubType_Type, + domo_update_api, domo_update_name, domo_update_witchType_SubType_Type, + find_first_unit_widget_from_deviceID) from Modules.tools import Hex_Format, is_hex from Modules.zigateConsts import ADDRESS_MODE, LEGRAND_REMOTES, ZIGATE_EP from Zigbee.zclCommands import (zcl_group_level_move_to_level, + zcl_group_move_to_level_stop, zcl_group_move_to_level_with_onoff, zcl_group_onoff_off_noeffect, zcl_group_onoff_off_witheffect, zcl_group_onoff_on, zcl_group_window_covering_off, zcl_group_window_covering_on, - zcl_group_move_to_level_stop, zcl_group_window_covering_stop) WIDGET_STYLE = { @@ -37,56 +47,37 @@ } -def unit_for_widget(self, GroupId): - - for x in self.Devices: - if self.Devices[x].DeviceID == GroupId: - return x - return None - - -def free_unit(Devices): - for x in range(1, 255): - if x not in Devices: - return x - - def create_domoticz_group_device(self, GroupName, GroupId): - " Create Device for just created group in Domoticz. " + """ Create Device for just created group in Domoticz. """ + + self.logging("Debug", f"createDomoticzGroupDevice - {GroupName}, {GroupId}") if GroupName == "" or GroupId == "": - self.logging( - "Error", "createDomoticzGroupDevice - Invalid Group Name: %s or GroupdID: %s" % (GroupName, GroupId) - ) + self.logging( "Error", "createDomoticzGroupDevice - Invalid Group Name: %s or GroupdID: %s" % (GroupName, GroupId) ) return - for x in self.Devices: - if self.Devices[x].DeviceID == GroupId: - # self.logging( 'Error',"createDomoticzGroupDevice - existing group %s" %(self.Devices[x].Name)) - return + if find_first_unit_widget_from_deviceID(self, self.Devices, GroupId): + self.logging( "Log", f"createDomoticzGroupDevice - {GroupId} exists alreday in Domoticz" ) + return Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) - unit = free_unit(self.Devices) + unit = FreeUnit(self, self.Devices, GroupId, 1) + idx = domo_create_api(self, self.Devices, GroupId, unit, GroupName, Type_=Type_, Subtype_=Subtype_, Switchtype_=SwitchType_, widgetOptions=None, Image=None) self.logging("Debug", "createDomoticzGroupDevice - Unit: %s" % unit) - myDev = Domoticz.Device( - DeviceID=str(GroupId), Name=str(GroupName), Unit=unit, Type=Type_, Subtype=Subtype_, Switchtype=SwitchType_ - ) - myDev.Create() - ID = myDev.ID - if ID == -1: - self.logging("Error", "createDomoticzGroupDevice - failed to create Group device.") + if idx == -1: + self.logging("Error", f"createDomoticzGroupDevice - failed to create Group device. {GroupName} with unit {unit}") return - self.ListOfGroups[GroupId]["WidgetType"] = unit + self.ListOfGroups[GroupId]["WidgetType"] = idx def LookForGroupAndCreateIfNeeded(self, GroupId): - + self.logging( "Debug", f"LookForGroupAndCreateIfNeeded - '{GroupId}'") if GroupId not in self.ListOfGroups: return - if unit_for_widget(self, GroupId): + if find_first_unit_widget_from_deviceID(self, self.Devices, GroupId): # Group Exist and has a valid unit update_domoticz_group_device_widget(self, GroupId) return @@ -101,71 +92,45 @@ def LookForGroupAndCreateIfNeeded(self, GroupId): def update_domoticz_group_device_widget_name(self, GroupName, GroupId): + self.logging( "Debug", f"update_domoticz_group_device_widget_name - '{GroupName}' '{GroupId}'") + if GroupName == "" or GroupId == "": - self.logging( - "Error", - "update_domoticz_group_device_widget_name - Invalid Group Name: %s or GroupdID: %s" % (GroupName, GroupId), - ) + self.logging( "Error", "update_domoticz_group_device_widget_name - Invalid Group Name: %s or GroupdID: %s" % (GroupName, GroupId), ) return - unit = unit_for_widget(self, GroupId) + unit = find_first_unit_widget_from_deviceID(self, self.Devices, GroupId) if unit is None: - self.logging( - "Debug", - "update_domoticz_group_device_widget_name - no unit found for GroupId: %s" % self.ListOfGroups[GroupId], - ) + self.logging( "Debug", f"update_domoticz_group_device_widget_name - no unit found for GroupId {GroupId} - {self.ListOfGroups[GroupId]}" ) + LookForGroupAndCreateIfNeeded(self, GroupId) return - nValue = self.Devices[unit].nValue - sValue = self.Devices[unit].sValue - self.Devices[unit].Update(nValue, sValue, Name=GroupName) - + domo_update_name(self, self.Devices, GroupId, unit, GroupName) # Update Group Structure self.ListOfGroups[GroupId]["Name"] = GroupName def update_domoticz_group_device_widget(self, GroupId): - self.logging("Debug", "update_domoticz_group_device_widget GroupId: %s" % GroupId) - if GroupId == "": - self.logging("Error", "update_domoticz_group_device_widget - Invalid GroupdID: %s" % (GroupId)) - - unit = unit_for_widget(self, GroupId) - if unit is None: - self.logging( - "Debug", "update_domoticz_group_device_widget - no unit found for GroupId: %s" % self.ListOfGroups[GroupId] - ) - return - - Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) - - self.logging( - "Debug", - " Looking to update Unit: %s from %s %s %s to %s %s %s" - % ( - unit, - self.Devices[unit].Type, - self.Devices[unit].SubType, - self.Devices[unit].SwitchType, - Type_, - Subtype_, - SwitchType_, - ), - ) - - nValue = self.Devices[unit].nValue - sValue = self.Devices[unit].sValue - if ( - Type_ != self.Devices[unit].Type - or Subtype_ != self.Devices[unit].SubType - or SwitchType_ != self.Devices[unit].SwitchType - ): - self.logging( - "Debug", - "update_domoticz_group_device_widget - Update Type:%s, Subtype:%s, Switchtype:%s" - % (Type_, Subtype_, SwitchType_), - ) - self.Devices[unit].Update(nValue, sValue, Type=Type_, Subtype=Subtype_, Switchtype=SwitchType_) + # Due to bug https://github.com/domoticz/domoticz/issues/6027 (on extended Framework ), this function is not supported anymore + + return + + # self.logging("Debug", "update_domoticz_group_device_widget GroupId: %s" % GroupId) + # if GroupId == "": + # self.logging("Error", "update_domoticz_group_device_widget - Invalid GroupdID: %s" % (GroupId)) +# + # unit = find_first_unit_widget_from_deviceID(self, self.Devices, GroupId) + # if unit is None: + # self.logging( "Debug", f"update_domoticz_group_device_widget_name - no unit found for GroupId {GroupId} - {self.ListOfGroups[GroupId]}" ) + # LookForGroupAndCreateIfNeeded(self, GroupId) + # return +# + # Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) + # current_switchType, current_Subtype, current_Type = domo_read_SwitchType_SubType_Type(self, self.Devices, GroupId, unit) + # self.logging( "Debug", " Looking to update Unit: %s from %s %s %s to %s %s %s"% ( + # unit, current_Type, current_Subtype, current_switchType, Type_, Subtype_, SwitchType_, ),) +# + # domo_update_witchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_) def best_group_widget(self, GroupId): @@ -313,9 +278,10 @@ def update_domoticz_group_device(self, GroupId): self.logging( "Debug", "update_domoticz_group_device - no Devices for that group: %s" % self.ListOfGroups[GroupId]) return - unit = unit_for_widget(self, GroupId) + unit = find_first_unit_widget_from_deviceID(self, self.Devices, GroupId) if unit is None: - self.logging( "Debug", "update_domoticz_group_device - no unit found for GroupId: %s" % self.ListOfGroups[GroupId]) + self.logging( "Debug", f"update_domoticz_group_device_widget_name - no unit found for GroupId {GroupId} - {self.ListOfGroups[GroupId]}" ) + LookForGroupAndCreateIfNeeded(self, GroupId) return Cluster = None @@ -402,6 +368,7 @@ def update_domoticz_group_device(self, GroupId): GroupId, nValue, level), ) + switchType, Subtype, _ = domo_read_SwitchType_SubType_Type(self, self.Devices, GroupId, unit) # At that stage # nValue == 0 if Off # nValue == 1 if Open/On @@ -413,7 +380,7 @@ def update_domoticz_group_device(self, GroupId): sValue = "0" elif sValue is None and level: - if self.Devices[unit].SwitchType not in (13, 14, 15, 16): + if switchType not in (13, 14, 15, 16): # Not a Shutter/Blind analogValue = level if analogValue >= 255: @@ -443,36 +410,31 @@ def update_domoticz_group_device(self, GroupId): elif sValue is None: if nValue == 0: - if self.Devices[unit].SwitchType not in (13, 14, 15, 16): + if switchType not in (13, 14, 15, 16): sValue = "Close" else: sValue = "Off" else: - if self.Devices[unit].SwitchType not in (13, 14, 15, 16): + if switchType not in (13, 14, 15, 16): sValue = "Open" else: sValue = "On" + current_nValue, current_sValue = domo_read_nValue_sValue(self, self.Devices, GroupId, unit) + group_name = domo_read_Name( self, self.Devices, GroupId, unit ) self.logging( "Debug", "update_domoticz_group_device - Processing: Group: %s == > from %s:%s to %s:%s" % ( - GroupId, self.Devices[unit].nValue, self.Devices[unit].sValue, nValue, sValue), ) - if nValue != self.Devices[unit].nValue or sValue != self.Devices[unit].sValue: - self.logging("Log", "UpdateGroup - (%15s) %s:%s" % (self.Devices[unit].Name, nValue, sValue)) - self.Devices[unit].Update(nValue, sValue) + GroupId, current_nValue, current_sValue, nValue, sValue), ) + + + if nValue != current_nValue or sValue != current_sValue: + self.logging("Log", f"UpdateGroup - ({group_name:>15}) {nValue}:{sValue}") + domo_update_api(self, self.Devices, GroupId, unit, nValue, sValue) def update_domoticz_group_name(self, GrpId, NewGrpName): + update_domoticz_group_device_widget_name(self, NewGrpName, GrpId) - unit = unit_for_widget(self, GrpId) - if unit is None: - self.logging("Debug", "update_domoticz_group_name - no unit found for GroupId: %s" % self.ListOfGroups[GrpId]) - return - - nValue = self.Devices[unit].nValue - sValue = self.Devices[unit].sValue - - self.logging("Debug", "update_domoticz_group_name Update GroupId: %s to Name: %s" % (GrpId, NewGrpName)) - self.Devices[unit].Update(nValue, sValue, Name=NewGrpName) return @@ -491,15 +453,11 @@ def ValuesForVenetian(level): def remove_domoticz_group_device(self, GroupId): " User has removed the Domoticz Device corresponding to this group" - unit = unit_for_widget(self, GroupId) + unit = find_first_unit_widget_from_deviceID(self, self.Devices, GroupId) if unit is None and GroupId in self.ListOfGroups: - self.logging( - "Debug", "remove_domoticz_group_device - no unit found for GroupId: %s" % self.ListOfGroups[GroupId] - ) + self.logging( "Debug", f"update_domoticz_group_device_widget_name - no unit found for GroupId {GroupId} - {self.ListOfGroups[GroupId]}" ) return - - if unit in self.Devices: - self.Devices[unit].Delete() + domo_delete_widget( self, self.Devices, GroupId, unit) def update_device_list_attribute(self, GroupId, cluster, value): @@ -615,32 +573,25 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): "Cluster" in self.ListOfGroups[GrpId] and self.ListOfGroups[GrpId]["Cluster"] == "0102" ): # Venetian store - #zigate_cmd = "00FA" if Command in ( "Off", "Close", ): - zigate_param = "00" nValue = 0 sValue = "Off" update_device_list_attribute(self, GrpId, "0102", 0) zcl_group_window_covering_on(self, GrpId, ZIGATE_EP, EPout) if Command in ( "On", "Open",): - zigate_param = "01" nValue = 1 sValue = "Off" zcl_group_window_covering_off(self, GrpId, ZIGATE_EP, EPout) update_device_list_attribute(self, GrpId, "0102", 100) if Command == "Stop": - zigate_param = "02" nValue = 2 sValue = "50" zcl_group_window_covering_stop(self, GrpId, ZIGATE_EP, EPout) update_device_list_attribute(self, GrpId, "0102", 50) - self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue)) - #datas = "%02d" % ADDRESS_MODE["group"] + GrpId + ZIGATE_EP + EPout + zigate_param - #self.logging("Debug", "Group Command: %s %s-%s" % (Command, zigate_cmd, datas)) - #self.ControllerLink.sendData(zigate_cmd, datas, ackIsDisabled=True) + domo_update_api(self, self.Devices, GrpId, unit, nValue, sValue) resetDevicesHearttBeat(self, GrpId) return @@ -654,44 +605,27 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): elif self.pluginconf.pluginConf["GrpfadingOff"] == 255: effect = "0001" # No fade - #zigate_cmd = "0094" - #datas = "%02d" % ADDRESS_MODE["group"] + GrpId + ZIGATE_EP + EPout + effect zcl_group_onoff_off_witheffect(self, GrpId, ZIGATE_EP, EPout, effect) else: - #zigate_cmd = "0092" - #datas = "%02d" % ADDRESS_MODE["group"] + GrpId + ZIGATE_EP + EPout + "00" zcl_group_onoff_off_noeffect(self, GrpId, ZIGATE_EP, EPout) - - #self.logging("Debug", "Command: %s %s" % (Command, datas)) - #self.ControllerLink.sendData(zigate_cmd, datas, ackIsDisabled=True) - # Update Device nValue = 0 sValue = "Off" - self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue)) + domo_update_api(self, self.Devices, GrpId, unit, nValue, sValue) update_device_list_attribute(self, GrpId, "0006", "00") update_domoticz_group_device(self, GrpId) elif Command in ( "On", "Open", ): - #zigate_cmd = "0092" - #zigate_param = "01" - nValue = "1" + nValue = 1 sValue = "On" - self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue)) + domo_update_api(self, self.Devices, GrpId, unit, nValue, sValue) + update_device_list_attribute(self, GrpId, "0006", "01") update_domoticz_group_device(self, GrpId) zcl_group_onoff_on(self, GrpId, ZIGATE_EP, EPout) - #datas = "%02d" % ADDRESS_MODE["group"] + GrpId + ZIGATE_EP + EPout + zigate_param - #self.logging("Debug", "Command: %s %s" % (Command, datas)) - #self.ControllerLink.sendData(zigate_cmd, datas, ackIsDisabled=True) - # Update Device - nValue = 1 - sValue = "On" - self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue)) - elif Command in ( "Stop",) and self.ListOfGroups[GrpId]["Cluster"] == "0102": # Windowscovering Stop zcl_group_window_covering_stop(self, GrpId, "01", EPout) @@ -713,11 +647,6 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): # value = int(Level*255//100) value = "%02X" % int(Level * 255 // 100) - #zigate_cmd = "0081" - #zigate_param = OnOff + value + "0010" - #nValue = 1 - #sValue = str(Level) - #self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue)) update_device_list_attribute(self, GrpId, "0008", value) transitionMoveLevel = "%04x" % self.pluginconf.pluginConf["GrpmoveToLevel"] @@ -730,14 +659,11 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): else: zcl_group_level_move_to_level( self, GrpId, ZIGATE_EP, EPout, "01", value, transition=transitionMoveLevel) - #datas = "%02d" % ADDRESS_MODE["group"] + GrpId + ZIGATE_EP + EPout + zigate_param - #self.logging("Debug", "Command: %s %s" % (Command, datas)) - #self.ControllerLink.sendData(zigate_cmd, datas, ackIsDisabled=True) update_domoticz_group_device(self, GrpId) # Update Device nValue = 2 sValue = str(Level) - self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue)) + domo_update_api(self, self.Devices, GrpId, unit, nValue, sValue) elif Command == "Set Color": Hue_List = json.loads(Color_) @@ -751,15 +677,8 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): # In case of m ==3, we will do the Setlevel OnOff = "01" # 00 = off, 01 = on value = Hex_Format(2, round(1 + Level * 254 / 100)) # To prevent off state - #zigate_cmd = "0081" - #zigate_param = OnOff + value + transitionMoveLevel - - #datas = "%02d" % ADDRESS_MODE["group"] + GrpId + ZIGATE_EP + EPout + zigate_param - #self.logging("Debug", "Command: %s - data: %s" % (zigate_cmd, datas)) update_device_list_attribute(self, GrpId, "0008", value) - #self.ControllerLink.sendData(zigate_cmd, datas, ackIsDisabled=True) - - #zcl_group_level_move_to_level( self, GrpId, ZIGATE_EP, EPout, "01", value, "0000") + zcl_group_move_to_level_with_onoff(self, GrpId, EPout, OnOff, value, transition="0000") if Hue_List["m"] == 1: @@ -792,24 +711,12 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): value = int(level * 254 // 100) OnOff = "01" self.logging("Debug", "---------- Set Level: %s instead of Level: %s" % (value, Level)) - #self.ControllerLink.sendData( - # "0081", - # "%02d" % ADDRESS_MODE["group"] - # + GrpId - # + ZIGATE_EP - # + EPout - # + OnOff - # + Hex_Format(2, value) - # + transitionMoveLevel, - # ackIsDisabled=True, - #) - #zcl_group_level_move_to_level( self, GrpId, ZIGATE_EP, EPout, "01", Hex_Format(2, value), transitionMoveLevel) zcl_group_move_to_level_with_onoff(self, GrpId, EPout, OnOff, Hex_Format(2, value), transition=transitionMoveLevel) # Update Device nValue = 1 sValue = str(Level) - self.Devices[unit].Update(nValue=int(nValue), sValue=str(sValue), Color=Color_) + domo_update_api(self, self.Devices, GrpId, unit, nValue, sValue, Color=Color_), # Request to force ReadAttribute to each devices part of that group resetDevicesHearttBeat(self, GrpId) diff --git a/Classes/GroupMgtv2/GrpIkeaRemote.py b/Classes/GroupMgtv2/GrpIkeaRemote.py index a57d8b8f4..1911b6cbd 100644 --- a/Classes/GroupMgtv2/GrpIkeaRemote.py +++ b/Classes/GroupMgtv2/GrpIkeaRemote.py @@ -1,8 +1,10 @@ -import Domoticz -from Modules.zigateConsts import ADDRESS_MODE -from Classes.GroupMgtv2.GrpDomoticz import update_domoticz_group_device_widget from Classes.GroupMgtv2.GrpCommands import set_kelvin_color, set_rgb_color +from Classes.GroupMgtv2.GrpDomoticz import update_domoticz_group_device_widget +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) +from Modules.zigateConsts import ADDRESS_MODE def checkIfIkeaRound5BToBeAdded(self, NwkId, ep, ieee, GrpId): @@ -28,7 +30,7 @@ def checkIfIkeaRound5BToBeAdded(self, NwkId, ep, ieee, GrpId): self.ListOfGroups[GrpId]["Tradfri Remote"]["Device Id"] = DomoDeviceUnit self.ListOfGroups[GrpId]["Tradfri Remote"]["IEEE"] = ieee self.ListOfGroups[GrpId]["Tradfri Remote"]["Color Mode"] = None - Domoticz.Log("--> %s" % (self.ListOfGroups[GrpId])) + domoticz_log_api("--> %s" % (self.ListOfGroups[GrpId])) # update_domoticz_group_device_widget(self, GrpId) return True diff --git a/Classes/GroupMgtv2/GrpMigration.py b/Classes/GroupMgtv2/GrpMigration.py index 763d7f92f..83b3bbea0 100644 --- a/Classes/GroupMgtv2/GrpMigration.py +++ b/Classes/GroupMgtv2/GrpMigration.py @@ -4,7 +4,11 @@ # Author: pipiche38 # -import Domoticz + +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) + def migrateIfTradfriRemote(self, GrpId): @@ -12,7 +16,7 @@ def migrateIfTradfriRemote(self, GrpId): if "Tradfri Remote" not in self.ListOfGroups[GrpId]: return NwkId = self.ListOfGroups[GrpId]["Tradfri Remote"]["Device Addr"] - Domoticz.Status("Migration of Ikea Tradfri %s in Group %s" % (NwkId, GrpId)) + domoticz_status_api("Migration of Ikea Tradfri %s in Group %s" % (NwkId, GrpId)) if "Ep" not in self.ListOfGroups[GrpId]["Tradfri Remote"]: self.ListOfGroups[GrpId]["Tradfri Remote"]["Ep"] = "01" @@ -48,13 +52,13 @@ def migrateTupleToList(self, GrpId, tupleItem): self.ListOfGroups[GrpId]["Devices"].remove((NwkId, Ep, Ieee)) self.ListOfGroups[GrpId]["Devices"].append([NwkId, Ep, Ieee]) - Domoticz.Status("--- --- NwkId: %s Ep: %s Ieee: %s" % (NwkId, Ep, Ieee)) + domoticz_status_api("--- --- NwkId: %s Ep: %s Ieee: %s" % (NwkId, Ep, Ieee)) if NwkId not in self.ListOfDevices: self.logging("Error", "migrateTupleToList - NwkId: %s not found in current database" % NwkId) if Ieee not in self.IEEE2NWK: return NwkId = self.IEEE2NWK[Ieee] - Domoticz.Status("---> Retreive new NwkId: %s from Ieee: %s" % (NwkId, Ieee)) + domoticz_status_api("---> Retreive new NwkId: %s from Ieee: %s" % (NwkId, Ieee)) if "GroupMemberShip" not in self.ListOfDevices[NwkId]: self.ListOfDevices[NwkId]["GroupMemberShip"] = {} @@ -71,9 +75,9 @@ def migrateTupleToList(self, GrpId, tupleItem): def GrpMgtv2Migration(self): - Domoticz.Status("Group Migration to new format") + domoticz_status_api("Group Migration to new format") for GrpId in self.ListOfGroups: - Domoticz.Status("--- GroupId: %s" % GrpId) + domoticz_status_api("--- GroupId: %s" % GrpId) migrateIfTradfriRemote(self, GrpId) for item in list(self.ListOfGroups[GrpId]["Devices"]): diff --git a/Classes/GroupMgtv2/GrpResponses.py b/Classes/GroupMgtv2/GrpResponses.py index d304d526d..13f73af06 100644 --- a/Classes/GroupMgtv2/GrpResponses.py +++ b/Classes/GroupMgtv2/GrpResponses.py @@ -5,15 +5,14 @@ # # All operations to and from Zigate -import Domoticz from time import time -from Modules.zigateConsts import ADDRESS_MODE, ZIGATE_EP -from Modules.tools import Hex_Format, rgb_to_xy, rgb_to_hsl - -from Classes.GroupMgtv2.GrpCallBackResponses import checkToCreateOrUpdateGroup, checkToRemoveGroup +from Classes.GroupMgtv2.GrpCallBackResponses import ( + checkToCreateOrUpdateGroup, checkToRemoveGroup) from Classes.GroupMgtv2.GrpCommands import check_group_member_ship +from Modules.tools import Hex_Format, rgb_to_hsl, rgb_to_xy +from Modules.zigateConsts import ADDRESS_MODE, ZIGATE_EP # Group Management Command diff --git a/Classes/GroupMgtv2/GrpServices.py b/Classes/GroupMgtv2/GrpServices.py index 9bf92a383..25939085e 100644 --- a/Classes/GroupMgtv2/GrpServices.py +++ b/Classes/GroupMgtv2/GrpServices.py @@ -3,37 +3,25 @@ # # Author: pipiche38 # -import Domoticz from time import time +from Classes.GroupMgtv2.GrpCallBackResponses import checkToCreateOrUpdateGroup +from Classes.GroupMgtv2.GrpCommands import ( + add_group_member_ship, check_group_member_ship, look_for_group_member_ship, + remove_group_member_ship, send_group_member_ship_identify_effect) +from Classes.GroupMgtv2.GrpDatabase import (check_if_group_empty, + checkNwkIdAndUpdateIfAny, + create_group, remove_group, + remove_nwkid_from_all_groups) +from Classes.GroupMgtv2.GrpDomoticz import (create_domoticz_group_device, + remove_domoticz_group_device, + update_domoticz_group_name) +from Classes.GroupMgtv2.GrpIkeaRemote import (checkIfIkeaRound5BToBeAdded, + checkIfIkeaRound5BToBeRemoved) from Modules.tools import mainPoweredDevice from Modules.zigateConsts import LEGRAND_REMOTES -from Classes.GroupMgtv2.GrpDomoticz import ( - create_domoticz_group_device, - remove_domoticz_group_device, - update_domoticz_group_name, -) - -from Classes.GroupMgtv2.GrpIkeaRemote import checkIfIkeaRound5BToBeAdded, checkIfIkeaRound5BToBeRemoved - -# remove_domoticz_group_device, update_domoticz_group_device -from Classes.GroupMgtv2.GrpDatabase import ( - create_group, - checkNwkIdAndUpdateIfAny, - remove_nwkid_from_all_groups, - check_if_group_empty, - remove_group, -) -from Classes.GroupMgtv2.GrpCommands import ( - remove_group_member_ship, - add_group_member_ship, - check_group_member_ship, - look_for_group_member_ship, - send_group_member_ship_identify_effect, -) - def SendGroupIdentifyEffect(self, GrpId): @@ -144,18 +132,11 @@ def addGroupMemberShip(self, NwkId, Ep, GroupId): def add_group_member_ship_from_remote(self, NwkId, Ep, GroupId): - # This is clall from plugin, when setting a group membership of a Legrand Remote - from Classes.GroupMgtv2.GrpCallBackResponses import checkToCreateOrUpdateGroup - - if "GroupMemberShip" not in self.ListOfDevices[NwkId]: - self.ListOfDevices[NwkId]["GroupMemberShip"] = {} - if Ep not in self.ListOfDevices[NwkId]["GroupMemberShip"]: - self.ListOfDevices[NwkId]["GroupMemberShip"][Ep] = {} - if GroupId not in self.ListOfDevices[NwkId]["GroupMemberShip"][Ep]: - self.ListOfDevices[NwkId]["GroupMemberShip"][Ep][GroupId] = {} - self.ListOfDevices[NwkId]["GroupMemberShip"][Ep][GroupId]["Status"] = "OK" - checkToCreateOrUpdateGroup(self, NwkId, Ep, GroupId) + # This is called from a plugin when setting group membership for a Legrand Remote + group_membership = self.ListOfDevices.setdefault(NwkId, {}).setdefault("GroupMemberShip", {}) + group_membership.setdefault(Ep, {})[GroupId] = {"Status": "OK"} + checkToCreateOrUpdateGroup(self, NwkId, Ep, GroupId) def get_available_grp_id(self, start_range, stop_range): for x in range(start_range, stop_range, -1): @@ -175,7 +156,7 @@ def create_new_group_and_attach_devices(self, GrpId, GrpName, DevicesList): def update_group_and_add_devices(self, GrpId, ToBeAddedDevices): - self.logging("Debug", " -- -- -- -- -- > UpdateGroupAndAddDevices ") + self.logging("Debug", f" -- -- -- -- -- > UpdateGroupAndAddDevices {GrpId} {ToBeAddedDevices}") for NwkId, ep, ieee in ToBeAddedDevices: NwkId = checkNwkIdAndUpdateIfAny(self, NwkId, ieee) # Ikea Tradfri Round5B will be added if required by checkIfIkeaRound5B @@ -185,7 +166,7 @@ def update_group_and_add_devices(self, GrpId, ToBeAddedDevices): def update_group_and_remove_devices(self, GrpId, ToBeRemoveDevices): - self.logging("Debug", " -- -- -- -- -- > UpdateGroupAndRemoveDevices ") + self.logging("Debug", f" -- -- -- -- -- > UpdateGroupAndRemoveDevices {GrpId} {ToBeRemoveDevices}") for NwkId, ep, ieee in ToBeRemoveDevices: self.logging("Debug", "-- -- -- -- -- -- > Removing [%s %s %s]" % (NwkId, ep, ieee)) NwkId = checkNwkIdAndUpdateIfAny(self, NwkId, ieee) diff --git a/Classes/GroupMgtv2/GrpWebServices.py b/Classes/GroupMgtv2/GrpWebServices.py index 2cb72584b..cb433023d 100644 --- a/Classes/GroupMgtv2/GrpWebServices.py +++ b/Classes/GroupMgtv2/GrpWebServices.py @@ -3,24 +3,17 @@ # # Author: pipiche38 # -import Domoticz -from time import time - -from Modules.tools import getListOfEpForCluster, mainPoweredDevice - -from Classes.GroupMgtv2.GrpServices import ( - create_new_group_and_attach_devices, - update_group_and_add_devices, - update_group_and_remove_devices, - scan_all_devices_for_grp_membership, - submitForGroupMemberShipScaner, - SendGroupIdentifyEffect, - updateGroupName, -) +from time import time from Classes.GroupMgtv2.GrpIkeaRemote import Ikea5BToBeAddedToListIfExist +from Classes.GroupMgtv2.GrpServices import ( + SendGroupIdentifyEffect, create_new_group_and_attach_devices, + scan_all_devices_for_grp_membership, submitForGroupMemberShipScaner, + update_group_and_add_devices, update_group_and_remove_devices, + updateGroupName) +from Modules.tools import getListOfEpForCluster, mainPoweredDevice def ScanAllDevicesForGroupMemberShip(self): @@ -171,7 +164,7 @@ def newGroup(self, GrpName, item): # Add Device ( NwkID, Ep, IEEE) to Group GrpId if [NwkId, Ep, IEEE] not in DevicesList: - DevicesList.append([NwkId, Ep, IEEE]) + DevicesList.append( [NwkId, Ep, IEEE] ) self.logging("Debug", " -- -- -- -- - > Tuple to add: %s " % str([NwkId, Ep, IEEE])) self.logging("Debug", " -- -- -- - > GroupCreation") create_new_group_and_attach_devices(self, GrpId, GrpName, DevicesList) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index 9fe6b53f6..0be33ea26 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -22,7 +22,9 @@ from pathlib import Path from queue import PriorityQueue, Queue -import Domoticz +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) LOG_ERROR_HISTORY = "PluginZigbee_log_error_history_" LOG_FILE = "PluginZigbee_" @@ -132,7 +134,7 @@ def open_logging_mode(self): _backupCount = int(self.pluginconf.pluginConf["loggingBackupCount"]) if "loggingMaxMegaBytes" in self.pluginconf.pluginConf: _maxBytes = int(self.pluginconf.pluginConf["loggingMaxMegaBytes"]) * 1024 * 1024 - Domoticz.Status("Please watch plugin log into %s" % _logfilename) + domoticz_status_api("Please watch plugin log into %s" % _logfilename) if _maxBytes == 0: # Enable TimedRotating if sys.version_info >= (3, 9): @@ -176,8 +178,8 @@ def open_log_history(self): try: handle = open(jsonLogHistory, "r", encoding="utf-8") except Exception as e: - Domoticz.Status("Log history not found, no error logged") - # Domoticz.Error(repr(e)) + domoticz_status_api("Log history not found, no error logged") + # domoticz_error_api(repr(e)) return try: @@ -188,23 +190,23 @@ def open_log_history(self): except json.decoder.JSONDecodeError as e: loggingWriteErrorHistory(self) # flush the file to avoid the error next startup - Domoticz.Error("load Json LogErrorHistory poorly-formed %s, not JSON: %s" % (jsonLogHistory, e)) + domoticz_error_api("load Json LogErrorHistory poorly-formed %s, not JSON: %s" % (jsonLogHistory, e)) except Exception as e: loggingWriteErrorHistory(self) # flush the file to avoid the error next startup - Domoticz.Error("load Json LogErrorHistory Error %s, not JSON: %s" % (jsonLogHistory, e)) + domoticz_error_api("load Json LogErrorHistory Error %s, not JSON: %s" % (jsonLogHistory, e)) handle.close() def closeLogFile(self): if self.logging_thread is None: - Domoticz.Error("closeLogFile - logging_thread is None") + domoticz_error_api("closeLogFile - logging_thread is None") return self.running = False if self.logging_queue is None: - Domoticz.Error("closeLogFile - logging_queue is None") + domoticz_error_api("closeLogFile - logging_queue is None") return if self.logging_queue: @@ -218,7 +220,7 @@ def closeLogFile(self): # Write to file loggingWriteErrorHistory(self) - Domoticz.Log("Logging Thread shutdown") + domoticz_log_api("Logging Thread shutdown") def loggingCleaningErrorHistory(self): @@ -245,7 +247,7 @@ def loggingClearErrorHistory(self): def logging(self, module, logType, message, nwkid=None, context=None): - #Domoticz.Log("%s %s %s %s %s %s %s" % (module, logType, message, nwkid, context, self.logging_thread, self.logging_queue)) + #domoticz_log_api("%s %s %s %s %s %s %s" % (module, logType, message, nwkid, context, self.logging_thread, self.logging_queue)) # Set python3 modules logging if required self.zigpy_login() @@ -274,7 +276,7 @@ def logging(self, module, logType, message, nwkid=None, context=None): ] self.logging_queue.put(logging_tuple) else: - Domoticz.Log("%s" % message) + domoticz_log_api("%s" % message) def _loggingStatus(self, thread_name, message): @@ -282,7 +284,7 @@ def _loggingStatus(self, thread_name, message): message = "[%17s] " %thread_name + message if self.pluginconf.pluginConf["enablePluginLogging"]: logging.info(message.encode('utf-8')) - Domoticz.Status(message) + domoticz_status_api(message) def _loggingLog(self, thread_name, message): @@ -291,7 +293,7 @@ def _loggingLog(self, thread_name, message): if self.pluginconf.pluginConf["enablePluginLogging"]: logging.info( message.encode('utf-8')) else: - Domoticz.Log(message) + domoticz_log_api(message) def _loggingDebug(self, thread_name, message): @@ -300,7 +302,7 @@ def _loggingDebug(self, thread_name, message): if self.pluginconf.pluginConf["enablePluginLogging"]: logging.info(message.encode('utf-8')) else: - Domoticz.Log(message) + domoticz_log_api(message) def _logginfilter(self, thread_name, message, nwkid): @@ -322,7 +324,7 @@ def loggingDirector(self, thread_name, logType, message): def loggingError(self, thread_name, module, message, nwkid, context): - Domoticz.Error(message) + domoticz_error_api(message) self._newError = True # Log to file @@ -425,13 +427,13 @@ def loggingWriteErrorHistory(self): json.dump(dict(self.LogErrorHistory), json_file) json_file.write("\n") except Exception as e: - Domoticz.Error("Hops ! Unable to write LogErrorHistory error: %s log: %s" % (e, self.LogErrorHistory)) + domoticz_error_api("Hops ! Unable to write LogErrorHistory error: %s log: %s" % (e, self.LogErrorHistory)) def start_logging_thread(self): - Domoticz.Log("start_logging_thread") + domoticz_log_api("start_logging_thread") if self.logging_thread: - Domoticz.Error("start_logging_thread - Looks like logging_thread already started !!!") + domoticz_error_api("start_logging_thread - Looks like logging_thread already started !!!") return self.logging_queue = PriorityQueue() @@ -443,7 +445,7 @@ def start_logging_thread(self): def logging_thread(self): - Domoticz.Log("logging_thread - listening") + domoticz_log_api("logging_thread - listening") while self.running: # We loop until self.running is set to False, # which indicate plugin shutdown @@ -451,7 +453,7 @@ def logging_thread(self): if len(logging_tuple) == 2: timing, command = logging_tuple if command == "QUIT": - Domoticz.Log("logging_thread Exit requested") + domoticz_log_api("logging_thread Exit requested") break elif len(logging_tuple) == 8: ( @@ -467,9 +469,9 @@ def logging_thread(self): try: context = eval(context) except Exception as e: - Domoticz.Error("Something went wrong and catch: context: %s" % str(context)) - Domoticz.Error(" logging_thread unexpected tuple %s" % (str(logging_tuple))) - Domoticz.Error(" Error %s" % (str(e))) + domoticz_error_api("Something went wrong and catch: context: %s" % str(context)) + domoticz_error_api(" logging_thread unexpected tuple %s" % (str(logging_tuple))) + domoticz_error_api(" Error %s" % (str(e))) return if logType == "Error": loggingError(self, thread_name, module, message, nwkid, context) @@ -486,17 +488,17 @@ def logging_thread(self): if self.pluginconf.pluginConf[pluginConfModule]: _logginfilter(self, thread_name, message, nwkid) else: - Domoticz.Error("%s debug module unknown %s" % (pluginConfModule, module)) + domoticz_error_api("%s debug module unknown %s" % (pluginConfModule, module)) _loggingDebug(self, thread_name, message) else: thread_name=thread_name + " " + thread_id loggingDirector(self, thread_name, logType, message) else: - Domoticz.Error("logging_thread unexpected tuple %s" % (str(logging_tuple))) - Domoticz.Log("logging_thread - ended") + domoticz_error_api("logging_thread unexpected tuple %s" % (str(logging_tuple))) + domoticz_log_api("logging_thread - ended") def configure_loggers(logger_names, mode): - #Domoticz.Log(f"configure_loggers({logger_names} with {_set_logging_level})") + #domoticz_log_api(f"configure_loggers({logger_names} with {_set_logging_level})") _set_logging_level = logging.DEBUG if mode == "debug" else logging.WARNING for logger_name in logger_names: diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index eaaf6d0f9..c12f271c3 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -16,8 +16,10 @@ import time from pathlib import Path -import Domoticz -from Modules.domoticzAPI import getConfigItem, setConfigItem +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api, getConfigItem, + setConfigItem) from Modules.tools import is_domoticz_db_available, is_hex SETTINGS = { @@ -140,7 +142,6 @@ "pingDevicesFeq": { "type": "int", "default": 3600, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, "resetPermit2Join": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, "Ping": {"type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True}, - "allowRemoveZigateDevice": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": True, "Advanced": True, "ZigpyRadio": "" }, "eraseZigatePDM": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": True, "Advanced": True, "ZigpyRadio": "" }, "Certification": { "type": "list", "list": {"CE regulation": "CE", "FCC regulation": "FCC"}, "default": "CE", "current": None, "restart": True, "hidden": False, "Advanced": False, "ZigpyRadio": "" }, "CertificationCode": { "type": "int", "default": 1, "current": None, "restart": 1, "hidden": True, "Advanced": False, "ZigpyRadio": "" }, @@ -211,110 +212,111 @@ # Verbose "VerboseLogging": { "Order": 13, - "param": { - "AbstractDz": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "BasicOutput": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Binding": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "CasaIA": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Cluster": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Command": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ConfigureReporting": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "DZDB": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Danfoss": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Database": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "DeviceAnnoucement": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Enki": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Garbage": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": True, "Advanced": True }, - "Gledopto": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Groups": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Heartbeat": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Heiman": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "IAS": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Ikea": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Input": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "LQIthreshold": { "type": "int", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "Legrand": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ListImportedModules": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Livolo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Lumi": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "MatchingNwkId": { "type": "str", "default": "ffff", "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "NXPExtendedErrorCode": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "NetworkEnergy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "NetworkMap": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "OTA": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Orvibo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "PDM": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Pairing": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Philips": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "PiZigate": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Plugin": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "PluginTools": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Pluzzy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "PollControl": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Profalux": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ReadAttributes": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Schneider": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Sonoff": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Thermostats": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ThreadCommunication": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ThreadDomoticz": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ThreadForwarder": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ThreadWriter": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Timing": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": True, "Advanced": True }, - "Transport": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Transport8000": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Transport8002": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Transport8011": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Transport8012": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportError": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportFrwder": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportPluginEncoder": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportProto": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportRder": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportSerial": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportTcpip": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportWrter": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TransportZigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Tuya": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Tuya0601": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "TuyaTS011F": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "WebServer": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Widget": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "WidgetCreation": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "WriteAttributes": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZLinky": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZclClusters": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZiGateReactTime": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "Zigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZigpyEZSP": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZigpyZNP": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZigpyZigate": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZigpydeCONZ": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "coordinatorCmd": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "enablePluginLogging": { "type": "bool", "default": 1, "current": None, "restart": 1, "hidden": False, "Advanced": False }, - "inRawAPS": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "logDeviceUpdate": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "logFORMAT": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": True, "Advanced": True }, - "logThreadName": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "loggingBackupCount": { "type": "int", "default": 7, "current": None, "restart": 1, "hidden": False, "Advanced": False }, - "loggingMaxMegaBytes": { "type": "int", "default": 0, "current": None, "restart": 1, "hidden": False, "Advanced": False }, - "occupancySettings": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "onoffSettings": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "outRawAPS": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "showTimeOutMsg": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "tuyaSettings": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "trackTransportError": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "trackZclClustersIn": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "trackZclClustersOut": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "trackZdpClustersIn": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "trackZdpClustersOut": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "z4dCertifiedDevices": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "zclCommand": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "zclDecoder": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "zdpCommand": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "zdpDecoder": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "zigateCommand": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True } - }, + "param": { + 'AbstractDz': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'BasicOutput': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Binding': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'CasaIA': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Cluster': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Command': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ConfigureReporting': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'DZDB': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Danfoss': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Database': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'DeviceAnnoucement': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Enki': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Garbage': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': True, 'Advanced': True }, + 'Gledopto': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Groups': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Heartbeat': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Heiman': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'IAS': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Ikea': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Input': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'LQIthreshold': { 'type': 'int', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'Legrand': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ListImportedModules': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Livolo': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Lumi': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'MatchingNwkId': { 'type': 'str', 'default': 'ffff', 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'NXPExtendedErrorCode': { 'type': 'bool', 'default': 1, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'NetworkEnergy': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'NetworkMap': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'OTA': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Orvibo': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'PDM': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Pairing': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Philips': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'PiZigate': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Plugin': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'PluginTools': {'type': 'bool','default': 0,'current': None,'restart': 0,'hidden': False,'Advanced': True}, + 'Pluzzy': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'PollControl': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Profalux': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ReadAttributes': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Schneider': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Sonoff': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Thermostats': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ThreadCommunication': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ThreadDomoticz': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ThreadForwarder': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ThreadWriter': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Timing': { 'type': 'bool', 'default': 1, 'current': None, 'restart': 0, 'hidden': True, 'Advanced': True }, + 'Transport': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Transport8000': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Transport8002': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Transport8011': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Transport8012': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportError': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportFrwder': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportPluginEncoder': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportProto': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportRder': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportSerial': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportTcpip': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportWrter': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TransportZigpy': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Tuya': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Tuya0601': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'TuyaTS011F': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WebServer': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Widget': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WidgetCreation': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WidgetLevel3': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WidgetUpdate': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WriteAttributes': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZLinky': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZclClusters': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZiGateReactTime': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'Zigpy': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZigpyEZSP': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZigpyZNP': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZigpyZigate': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'ZigpydeCONZ': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'coordinatorCmd': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'enablePluginLogging': { 'type': 'bool', 'default': 1, 'current': None, 'restart': 1, 'hidden': False, 'Advanced': False }, + 'inRawAPS': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'logDeviceUpdate': { 'type': 'bool', 'default': 1, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'logFORMAT': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': True, 'Advanced': True }, + 'logThreadName': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'loggingBackupCount': { 'type': 'int', 'default': 7, 'current': None, 'restart': 1, 'hidden': False, 'Advanced': False }, + 'loggingMaxMegaBytes': { 'type': 'int', 'default': 0, 'current': None, 'restart': 1, 'hidden': False, 'Advanced': False }, + 'occupancySettings': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'onoffSettings': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'outRawAPS': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'showTimeOutMsg': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'trackTransportError': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'trackZclClustersIn': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'trackZclClustersOut': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'trackZdpClustersIn': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'trackZdpClustersOut': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'z4dCertifiedDevices': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'zclCommand': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'zclDecoder': {'type': 'bool','default': 0,'current': None,'restart': 0,'hidden': False,'Advanced': True}, + 'zdpCommand': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'zdpDecoder': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'zigateCommand': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True } + } }, # Others "Others": { @@ -499,20 +501,17 @@ def _load_Settings(self): if "TimeStamp" in _domoticz_pluginConf: dz_timestamp = _domoticz_pluginConf["TimeStamp"] _domoticz_pluginConf = _domoticz_pluginConf["b64Settings"] - Domoticz.Log( - "Plugin data loaded where saved on %s" - % (time.strftime("%A, %Y-%m-%d %H:%M:%S", time.localtime(dz_timestamp))) - ) + domoticz_log_api( "Plugin data loaded where saved on %s" % (time.strftime("%A, %Y-%m-%d %H:%M:%S", time.localtime(dz_timestamp))) ) if not isinstance(_domoticz_pluginConf, dict): _domoticz_pluginConf = {} txt_timestamp = 0 if os.path.isfile(self.pluginConf["filename"]): txt_timestamp = os.path.getmtime(self.pluginConf["filename"]) - Domoticz.Log("%s timestamp is %s" % (self.pluginConf["filename"], txt_timestamp)) + domoticz_log_api("%s timestamp is %s" % (self.pluginConf["filename"], txt_timestamp)) if dz_timestamp < txt_timestamp: - Domoticz.Log("Dz PluginConf is older than Json Dz: %s Json: %s" % (dz_timestamp, txt_timestamp)) + domoticz_log_api("Dz PluginConf is older than Json Dz: %s Json: %s" % (dz_timestamp, txt_timestamp)) # We should load the json file with open(self.pluginConf["filename"], "rt") as handle: @@ -521,7 +520,7 @@ def _load_Settings(self): _pluginConf = json.load(handle) except json.decoder.JSONDecodeError as e: - Domoticz.Error("poorly-formed %s, not JSON: %s" % (self.pluginConf["filename"], e)) + domoticz_error_api("poorly-formed %s, not JSON: %s" % (self.pluginConf["filename"], e)) return for param in _pluginConf: @@ -531,13 +530,13 @@ def _load_Settings(self): # Check Load if is_domoticz_db_available(self) and self.pluginConf["useDomoticzDatabase"]: - Domoticz.Log("PluginConf Loaded from Dz: %s from Json: %s" % (len(_domoticz_pluginConf), len(_pluginConf))) + domoticz_log_api("PluginConf Loaded from Dz: %s from Json: %s" % (len(_domoticz_pluginConf), len(_pluginConf))) if _domoticz_pluginConf: for x in _pluginConf: if x not in _domoticz_pluginConf: - Domoticz.Error("-- %s is missing in Dz" % x) + domoticz_error_api("-- %s is missing in Dz" % x) elif _pluginConf[x] != _domoticz_pluginConf[x]: - Domoticz.Error( + domoticz_error_api( "++ %s is different in Dz: %s from Json: %s" % (x, _domoticz_pluginConf[x], _pluginConf[x]) ) @@ -569,9 +568,9 @@ def _import_oldfashon_param(self, tmpPluginConf, filename): try: PluginConf = eval(tmpPluginConf) except SyntaxError: - Domoticz.Error("Syntax Error in %s, all plugin parameters set to default" % filename) + domoticz_error_api("Syntax Error in %s, all plugin parameters set to default" % filename) except (NameError, TypeError, ZeroDivisionError): - Domoticz.Error("Error while importing %s, all plugin parameters set to default" % filename) + domoticz_error_api("Error while importing %s, all plugin parameters set to default" % filename) else: for theme in SETTINGS: for param in SETTINGS[theme]["param"]: @@ -580,7 +579,7 @@ def _import_oldfashon_param(self, tmpPluginConf, filename): if is_hex(PluginConf.get(param)): self.pluginConf[param] = int(PluginConf[param], 16) else: - Domoticz.Error( + domoticz_error_api( "Wrong parameter type for %s, keeping default %s" % (param, self.pluginConf[param]["default"]) ) @@ -590,7 +589,7 @@ def _import_oldfashon_param(self, tmpPluginConf, filename): if PluginConf.get(param).isdigit(): self.pluginConf[param] = int(PluginConf[param]) else: - Domoticz.Error( + domoticz_error_api( "Wrong parameter type for %s, keeping default %s" % (param, self.pluginConf[param]["default"]) ) @@ -612,14 +611,14 @@ def _path_check(self): continue _path_name = Path( self.pluginConf[param] ) if not os.path.exists(_path_name): - Domoticz.Error("Cannot access path: %s" % _path_name) + domoticz_error_api("Cannot access path: %s" % _path_name) if self.pluginConf[param] != str( _path_name ): if self.pluginConf["PosixPathUpdate"]: - Domoticz.Status("Updating path from %s to %s" %( self.pluginConf[param], _path_name)) + domoticz_status_api("Updating path from %s to %s" %( self.pluginConf[param], _path_name)) self.pluginConf[param] = str( _path_name ) update_done = True else: - Domoticz.Error("Updating path from %s to %s is required, but no backward compatibility" %( self.pluginConf[param], _path_name)) + domoticz_error_api("Updating path from %s to %s is required, but no backward compatibility" %( self.pluginConf[param], _path_name)) if update_done: self.write_Settings() @@ -634,9 +633,9 @@ def _param_checking(self): if SETTINGS[theme]["param"][param]["type"] == "hex": if isinstance(self.pluginConf[param], str): self.pluginConf[param] = int(self.pluginConf[param], 16) - Domoticz.Status("%s set to 0x%x" % (param, self.pluginConf[param])) + domoticz_status_api("%s set to 0x%x" % (param, self.pluginConf[param])) else: - Domoticz.Status("%s set to %s" % (param, self.pluginConf[param])) + domoticz_status_api("%s set to %s" % (param, self.pluginConf[param])) def zigpy_setup(self): diff --git a/Classes/TransportStats.py b/Classes/TransportStats.py index 0355c8e8c..d30aa3fbc 100644 --- a/Classes/TransportStats.py +++ b/Classes/TransportStats.py @@ -4,10 +4,14 @@ # Author: zaraki673 & pipiche38 # -import Domoticz + import json from time import time +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) + class TransportStatistics: def __init__(self, pluginconf): @@ -59,11 +63,11 @@ def add_timing_zigpy(self, timing): self._average_reading_zigpy_timing = int((self._cumul_reading_zigpy_timing / self._cnt_reading_zigpy_timing)) if timing > self._max_reading_zigpy_timing: self._max_reading_zigpy_timing = timing - Domoticz.Log( + domoticz_log_api( "Zigate Thread Serial Read Max: %s ms with an of average: %s ms" % (self._max_reading_zigpy_timing, self._average_reading_zigpy_timing) ) - Domoticz.Log( + domoticz_log_api( "Zigate Thread Serial Read Max: %s ms with an of average: %s ms" % (self._max_reading_zigpy_timing, self._average_reading_zigpy_timing) ) @@ -75,7 +79,7 @@ def add_timing_thread(self, timing): self._average_reading_thread_timing = int((self._cumul_reading_thread_timing / self._cnt_reading_thread_timing)) if timing > self._max_reading_thread_timing: self._max_reading_thread_timing = timing - Domoticz.Log( + domoticz_log_api( "Zigate Thread Serial Read Max: %s ms with an of average: %s ms" % (self._max_reading_thread_timing, self._average_reading_thread_timing) ) @@ -87,7 +91,7 @@ def add_timing8000(self, timing): self._averageTiming8000 = int((self._cumulTiming8000 / self._cntTiming8000)) if timing > self._maxTiming8000: self._maxTiming8000 = timing - Domoticz.Log( + domoticz_log_api( "Zigate command round trip 0x8000 Max: %s ms with an of average: %s ms" % (self._maxTiming8000, self._averageTiming8000) ) @@ -99,7 +103,7 @@ def add_timing8011(self, timing): self._averageTiming8011 = int((self._cumulTiming8011 / self._cntTiming8011)) if timing > self._maxTiming8011: self._maxTiming8011 = timing - Domoticz.Log( + domoticz_log_api( "Zigate command round trip 0x8011 Max: %s ms with an of average: %s ms" % (self._maxTiming8011, self._averageTiming8011) ) @@ -111,7 +115,7 @@ def add_timing8012(self, timing): self._averageTiming8012 = int((self._cumulTiming8012 / self._cntTiming8012)) if timing > self._maxTiming8012: self._maxTiming8012 = timing - Domoticz.Log( + domoticz_log_api( "Zigate command round trip 0x8012 Max: %s ms with an of average: %s ms" % (self._maxTiming8012, self._averageTiming8012) ) @@ -123,7 +127,7 @@ def add_rxTiming(self, timing): self._averageRxProcess = int((self._cumulRxProcess / self._cntRxProcess)) if timing > self._maxRxProcesses: self._maxRxProcesses = timing - Domoticz.Log( + domoticz_log_api( "Zigate receive message processing time Max: %s ms with an of average: %s ms" % (self._maxRxProcesses, self._averageRxProcess) ) @@ -194,55 +198,55 @@ def printSummary(self): return if self.sent() == 0 or self.received() == 0: return - Domoticz.Status("Statistics on message") - Domoticz.Status(" PDM load(s) : %s" % self._pdmLoads) - Domoticz.Status("ZiGate reacting time") - Domoticz.Status(" Max : %s sec" % (self._maxTiming8000)) - Domoticz.Status(" Average : %s sec" % (self._averageTiming8000)) - Domoticz.Status("ZiGate processing time on Rx") - Domoticz.Status(" Max : %s sec" % (self._maxRxProcesses)) - Domoticz.Status(" Average : %s sec" % (self._averageRxProcess)) - Domoticz.Status("Sent:") - Domoticz.Status(" TX commands : %s" % (self.sent())) - Domoticz.Status(" Max Load (Queue) : %s " % (self._MaxLoad)) - Domoticz.Status(" Max aPDU (Queue) : %s " % (self._MaxaPdu)) - Domoticz.Status(" Max nPDU (Queue) : %s " % (self._MaxnPdu)) - Domoticz.Status( + domoticz_status_api("Statistics on message") + domoticz_status_api(" PDM load(s) : %s" % self._pdmLoads) + domoticz_status_api("ZiGate reacting time") + domoticz_status_api(" Max : %s sec" % (self._maxTiming8000)) + domoticz_status_api(" Average : %s sec" % (self._averageTiming8000)) + domoticz_status_api("ZiGate processing time on Rx") + domoticz_status_api(" Max : %s sec" % (self._maxRxProcesses)) + domoticz_status_api(" Average : %s sec" % (self._averageRxProcess)) + domoticz_status_api("Sent:") + domoticz_status_api(" TX commands : %s" % (self.sent())) + domoticz_status_api(" Max Load (Queue) : %s " % (self._MaxLoad)) + domoticz_status_api(" Max aPDU (Queue) : %s " % (self._MaxaPdu)) + domoticz_status_api(" Max nPDU (Queue) : %s " % (self._MaxnPdu)) + domoticz_status_api( " TX failed : %s (%s" % (self.ackKOReceived(), round((self.ackKOReceived() / self.sent()) * 10, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " TX timeout : %s (%s" % (self.TOstatus(), round((self.TOstatus() / self.sent()) * 100, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " TX data timeout : %s (%s" % (self.TOdata(), round((self.TOdata() / self.sent()) * 100, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " TX reTransmit : %s (%s" % (self.reTx(), round((self.reTx() / self.sent()) * 100, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " TX APS Failure : %s (%s" % (self.APSFailure(), round((self.APSFailure() / self.sent()) * 100, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " TX APS Ack : %s (%s" % (self.APSAck(), round((self.APSAck() / self.sent()) * 100, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " TX APS Nck : %s (%s" % (self.APSNck(), round((self.APSNck() / self.sent()) * 100, 2)) + "%)" ) - Domoticz.Status("Received:") - Domoticz.Status(" RX frame : %s" % (self.received())) - Domoticz.Status( + domoticz_status_api("Received:") + domoticz_status_api(" RX frame : %s" % (self.received())) + domoticz_status_api( " RX crc errors : %s (%s" % (self.crcErrors(), round((self.crcErrors() / self.received()) * 100, 2)) + "%)" ) - Domoticz.Status( + domoticz_status_api( " RX lentgh errors : %s (%s" % (self.frameErrors(), round((self.frameErrors() / self.received()) * 100, 2)) + "%)" ) - Domoticz.Status(" RX clusters : %s" % (self.clusterOK())) - Domoticz.Status(" RX clusters KO : %s" % (self.clusterKO())) + domoticz_status_api(" RX clusters : %s" % (self.clusterOK())) + domoticz_status_api(" RX clusters KO : %s" % (self.clusterKO())) t0 = self.starttime() t1 = int(time()) _days = 0 @@ -255,7 +259,7 @@ def printSummary(self): _min = _duration // 60 _duration = _duration % 60 _sec = _duration % 60 - Domoticz.Status("Operating time : %s Hours %s Mins %s Secs" % (_hours, _min, _sec)) + domoticz_status_api("Operating time : %s Hours %s Mins %s Secs" % (_hours, _min, _sec)) def writeReport(self): diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 9ee63697f..3f6d83703 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -10,7 +10,6 @@ import os.path import time -import Domoticz from Classes.PluginConf import SETTINGS from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) @@ -18,6 +17,13 @@ from Modules.basicOutputs import (PermitToJoin, ZigatePermitToJoin, initiate_change_channel, setExtendedPANID, zigateBlueLed) +from Modules.domoticzAbstractLayer import (domo_read_BatteryLevel, + domo_read_nValue_sValue, + domo_read_SignalLevel, + domo_read_TimedOut, + domoticz_error_api, + domoticz_log_api, + domoticz_status_api) from Modules.sendZigateCommand import sendZigateCmd from Modules.tools import is_hex from Modules.txPower import set_TxPower @@ -113,6 +119,7 @@ def __init__( HomeDirectory, hardwareID, Devices, + ListOfDomoticzWidget, ListOfDevices, IEEE2NWK, DeviceConf, @@ -166,6 +173,7 @@ def __init__( self.IEEE2NWK = IEEE2NWK self.DeviceConf = DeviceConf self.Devices = Devices + self.ListOfDomoticzWidget = ListOfDomoticzWidget self.readZclClusters = readZclClusters self.ControllerIEEE = None @@ -247,7 +255,7 @@ def rest_zigate_erase_PDM(self, verb, data, parameters): _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" if verb == "GET": self.logging("Status", "Erase ZiGate PDM") - Domoticz.Error("Erase ZiGate PDM non implémenté pour l'instant") + domoticz_error_api("Erase ZiGate PDM non implémenté pour l'instant") if self.pluginconf.pluginConf["eraseZigatePDM"]: if self.pluginParameters["Mode2"] != "None" and self.zigbee_communication == "native": sendZigateCmd(self, "0012", "") @@ -402,7 +410,7 @@ def rest_nwk_stat(self, verb, data, parameters): action = {"Name": "Report %s removed" % timestamp} _response["Data"] = json.dumps(action, sort_keys=True) else: - Domoticz.Error("Removing Nwk-Energy %s not found" % timestamp) + domoticz_error_api("Removing Nwk-Energy %s not found" % timestamp) _response["Data"] = json.dumps([], sort_keys=True) elif verb == "GET": @@ -582,7 +590,6 @@ def rest_Settings(self, verb, data, parameters, sendDebug=False): } if SETTINGS[_theme]["param"][param]["type"] == "hex": - Domoticz.Debug("--> %s: %s - %s" % (param, self.pluginconf.pluginConf[param], type(self.pluginconf.pluginConf[param]))) if isinstance(self.pluginconf.pluginConf[param], int): setting["current_value"] = "%x" % self.pluginconf.pluginConf[param] else: @@ -640,7 +647,7 @@ def rest_Settings(self, verb, data, parameters, sendDebug=False): self.pluginconf.pluginConf["Certification"] = setting_lst[setting]["current"] self.pluginconf.pluginConf["CertificationCode"] = CERTIFICATION_CODE[setting_lst[setting]["current"]] else: - Domoticz.Error("Unknown Certification code %s (allow are CE and FCC)" % (setting_lst[setting]["current"])) + domoticz_error_api("Unknown Certification code %s (allow are CE and FCC)" % (setting_lst[setting]["current"])) continue elif param == "blueLedOnOff": @@ -678,13 +685,13 @@ def rest_Settings(self, verb, data, parameters, sendDebug=False): else: if SETTINGS[_theme]["param"][param]["type"] == "hex": - # Domoticz.Log("--> %s: %s - %s" %(param, self.pluginconf.pluginConf[param], type(self.pluginconf.pluginConf[param]))) + # domoticz_log_api("--> %s: %s - %s" %(param, self.pluginconf.pluginConf[param], type(self.pluginconf.pluginConf[param]))) self.pluginconf.pluginConf[param] = int(str(setting_lst[setting]["current"]), 16) else: self.pluginconf.pluginConf[param] = setting_lst[setting]["current"] if not found: - Domoticz.Error("Unexpected parameter: %s" % setting) + domoticz_error_api("Unexpected parameter: %s" % setting) _response["Data"] = {"unexpected parameters %s" % setting} if upd: @@ -738,64 +745,68 @@ def rest_PermitToJoin(self, verb, data, parameters): ZigatePermitToJoin(self, int(data["PermitToJoin"])) return _response + def rest_Device(self, verb, data, parameters): - def getDeviceInfos(self, UnitId): + + def getDeviceInfos(self, widget_idx): + device_id = self.ListOfDomoticzWidget[widget_idx]["DeviceID"] + unit = self.ListOfDomoticzWidget[widget_idx]["Unit"] + nValue, sValue = domo_read_nValue_sValue(self, self.Devices, device_id, unit) + SignalLevel = domo_read_SignalLevel(self, self.Devices, device_id, unit) + BatteryLevel = domo_read_BatteryLevel(self, self.Devices, device_id, unit) + TimedOut = domo_read_TimedOut(self, self.Devices, device_id) + return { - "_DeviceID": self.Devices[UnitId].DeviceID, - "Name": self.Devices[UnitId].Name, - "ID": self.Devices[UnitId].ID, - "sValue": self.Devices[UnitId].sValue, - "nValue": self.Devices[UnitId].nValue, - "SignaleLevel": self.Devices[UnitId].SignalLevel, - "BatteryLevel": self.Devices[UnitId].BatteryLevel, - "TimedOut": self.Devices[UnitId].TimedOut, - # _dictDevices['Type'] = self.Devices[UnitId].Type - # _dictDevices['SwitchType'] = self.Devices[UnitId].SwitchType + "_DeviceID": device_id, + "Name": device_id, + "ID": widget_idx, + "sValue": sValue, + "nValue": nValue, + "SignalLevel": SignalLevel, + "BatteryLevel": BatteryLevel, + "TimedOut": TimedOut, } - _dictDevices = {} _response = prepResponseMessage(self, setupHeadersResponse()) _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" - if verb == "GET": - if self.Devices is None or len(self.Devices) == 0: - return _response - - if len(parameters) == 0: - # Return the Full List of ZiGate Domoticz Widget - device_lst = [] - for x in self.Devices: - if len(self.Devices[x].DeviceID) != 16: - continue - - device_info = getDeviceInfos(self, x) - device_lst.append(device_info) - _response["Data"] = json.dumps(device_lst, sort_keys=True) - - elif len(parameters) == 1: - for x in self.Devices: - if len(self.Devices[x].DeviceID) != 16: - continue + if verb != "GET": + return _response + + if not self.ListOfDomoticzWidget or len(self.ListOfDomoticzWidget) == 0: + return _response - if parameters[0] == self.Devices[x].DeviceID: - _dictDevices = device_info = getDeviceInfos(self, x) - _response["Data"] = json.dumps(_dictDevices, sort_keys=True) - break + if len(parameters) == 0: + # Return the Full List of ZiGate Domoticz Widget + device_lst = [ + getDeviceInfos(widget_idx) + for widget_idx in self.ListOfDomoticzWidget + if len(self.ListOfDomoticzWidget[widget_idx]["DeviceID"]) == 16 + ] + _response["Data"] = json.dumps(device_lst, sort_keys=True) + + elif len(parameters) == 1: + for widget_idx in self.ListOfDomoticzWidget: + if ( + len(self.ListOfDomoticzWidget[widget_idx]["DeviceID"]) == 16 + and parameters[0] == self.ListOfDomoticzWidget[widget_idx]["DeviceID"] + ): + _response["Data"] = json.dumps(getDeviceInfos(widget_idx), sort_keys=True) + break - else: - device_lst = [] - for parm in parameters: - device_info = {} - for x in self.Devices: - if len(self.Devices[x].DeviceID) != 16: - continue + else: + device_lst = [ + getDeviceInfos(widget_idx) + for parm in parameters + for widget_idx in self.ListOfDomoticzWidget + if len(self.ListOfDomoticzWidget[widget_idx]["DeviceID"]) == 16 + and parm == self.ListOfDomoticzWidget[widget_idx]["DeviceID"] + ] + _response["Data"] = json.dumps(device_lst, sort_keys=True) - if parm == self.Devices[x].DeviceID: - device_info = getDeviceInfos(self, x) - device_lst.append(device_info) - _response["Data"] = json.dumps(device_lst, sort_keys=True) return _response + def rest_zDevice_name(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) @@ -807,16 +818,16 @@ def rest_zDevice_name(self, verb, data, parameters): deviceId = parameters[0] if len(deviceId) == 4: # Short Network Addr if deviceId not in self.ListOfDevices: - Domoticz.Error("rest_zDevice - Device: %s to be DELETED unknown LOD" % (deviceId)) - Domoticz.Error("Device %s to be removed unknown" % deviceId) + domoticz_error_api("rest_zDevice - Device: %s to be DELETED unknown LOD" % (deviceId)) + domoticz_error_api("Device %s to be removed unknown" % deviceId) _response["Data"] = json.dumps([], sort_keys=True) return _response nwkid = deviceId ieee = self.ListOfDevices[deviceId]["IEEE"] else: if deviceId not in self.IEEE2NWK: - Domoticz.Error("rest_zDevice - Device: %s to be DELETED unknown in IEEE22NWK" % (deviceId)) - Domoticz.Error("Device %s to be removed unknown" % deviceId) + domoticz_error_api("rest_zDevice - Device: %s to be DELETED unknown in IEEE22NWK" % (deviceId)) + domoticz_error_api("Device %s to be removed unknown" % deviceId) _response["Data"] = json.dumps([], sort_keys=True) return _response ieee = deviceId @@ -837,7 +848,7 @@ def rest_zDevice_name(self, verb, data, parameters): elif verb == "GET": _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" - + if self.fake_mode(): _response["Data"] = json.dumps(dummy_zdevice_name(), sort_keys=True) else: @@ -847,19 +858,7 @@ def rest_zDevice_name(self, verb, data, parameters): continue device = {"_NwkId": x} - for item in ( - "Param", - "ZDeviceName", - "IEEE", - "Model", - "MacCapa", - "Status", - "ConsistencyCheck", - "Health", - "LQI", - "Battery", - "CertifiedDevice" - ): + for item in ( "Param", "ZDeviceName", "IEEE", "Model", "MacCapa", "Status", "ConsistencyCheck", "Health", "LQI", "Battery", "CertifiedDevice" ): if item == "CertifiedDevice" and "CertifiedDevice" in self.ListOfDevices[x]: device[item] = self.ListOfDevices[x][item] @@ -905,21 +904,21 @@ def rest_zDevice_name(self, verb, data, parameters): for ep in self.ListOfDevices[x]["Ep"]: if "ClusterType" in self.ListOfDevices[x]["Ep"][ep]: clusterType = self.ListOfDevices[x]["Ep"][ep]["ClusterType"] - for widgetID in clusterType: - for widget in self.Devices: - if self.Devices[widget].ID == int(widgetID): - self.logging("Debug", "Widget Name: %s %s" % (widgetID, self.Devices[widget].Name)) - if self.Devices[widget].Name not in device["WidgetList"]: - device["WidgetList"].append(self.Devices[widget].Name) + for widget_idx in clusterType: + if int(widget_idx) in self.ListOfDomoticzWidget: + widget_name = self.ListOfDomoticzWidget[ int(widget_idx) ]["Name"] + + if widget_name not in device["WidgetList"]: + device["WidgetList"].append(widget_name) elif "ClusterType" in self.ListOfDevices[x]: clusterType = self.ListOfDevices[x]["ClusterType"] - for widgetID in clusterType: - for widget in self.Devices: - if self.Devices[widget].ID == int(widgetID): - self.logging("Debug", "Widget Name: %s %s" % (widgetID, self.Devices[widget].Name)) - if self.Devices[widget].Name not in device["WidgetList"]: - device["WidgetList"].append(self.Devices[widget].Name) + for widget_idx in clusterType: + if int(widget_idx) in self.ListOfDomoticzWidget: + widget_name = self.ListOfDomoticzWidget[ int(widget_idx) ]["Name"] + + if widget_name not in device["WidgetList"]: + device["WidgetList"].append(widget_name) if device not in device_lst: device_lst.append(device) @@ -962,7 +961,7 @@ def rest_zDevice_name(self, verb, data, parameters): self.ListOfDevices[dev]["Param"], self.ListOfDevices[dev]["IEEE"], dev), ) self.ListOfDevices[dev]["CheckParam"] = True else: - Domoticz.Error("wrong data received: %s" % data) + domoticz_error_api("wrong data received: %s" % data) return _response @@ -976,16 +975,16 @@ def rest_zDevice(self, verb, data, parameters): deviceId = parameters[0] if len(deviceId) == 4: # Short Network Addr if deviceId not in self.ListOfDevices: - Domoticz.Error("rest_zDevice - Device: %s to be DELETED unknown LOD" % (deviceId)) - Domoticz.Error("Device %s to be removed unknown" % deviceId) + domoticz_error_api("rest_zDevice - Device: %s to be DELETED unknown LOD" % (deviceId)) + domoticz_error_api("Device %s to be removed unknown" % deviceId) _response["Data"] = json.dumps([], sort_keys=True) return _response nwkid = deviceId ieee = self.ListOfDevice[deviceId]["IEEE"] else: if deviceId not in self.IEEE2NWK: - Domoticz.Error("rest_zDevice - Device: %s to be DELETED unknown in IEEE22NWK" % (deviceId)) - Domoticz.Error("Device %s to be removed unknown" % deviceId) + domoticz_error_api("rest_zDevice - Device: %s to be DELETED unknown in IEEE22NWK" % (deviceId)) + domoticz_error_api("Device %s to be removed unknown" % deviceId) _response["Data"] = json.dumps([], sort_keys=True) return _response ieee = deviceId @@ -1075,14 +1074,11 @@ def rest_zDevice(self, verb, data, parameters): # ClusterType _widget_lst = [] if "ClusterType" in self.ListOfDevices[item]: - for widgetId in self.ListOfDevices[item]["ClusterType"]: - widget = {"_WidgetID": widgetId, "WidgetName": ""} - for x in self.Devices: - if self.Devices[x].ID == int(widgetId): - widget["WidgetName"] = self.Devices[x].Name - break - - widget["WidgetType"] = self.ListOfDevices[item]["ClusterType"][widgetId] + for widget_idx in self.ListOfDevices[item]["ClusterType"]: + widget = {"_WidgetID": widget_idx, "WidgetName": ""} + if int(widget_idx) in self.ListOfDomoticzWidget: + widget["WidgetName"] = self.ListOfDomoticzWidget[int(widget_idx)]["Name"] + widget["WidgetType"] = self.ListOfDevices[item]["ClusterType"][widget_idx] _widget_lst.append(widget) # Ep informations @@ -1095,14 +1091,11 @@ def rest_zDevice(self, verb, data, parameters): continue if cluster == "ClusterType": - for widgetId in self.ListOfDevices[item]["Ep"][epId]["ClusterType"]: - widget = {"_WidgetID": widgetId, "WidgetName": ""} - for x in self.Devices: - if self.Devices[x].ID == int(widgetId): - widget["WidgetName"] = self.Devices[x].Name - break - - widget["WidgetType"] = self.ListOfDevices[item]["Ep"][epId]["ClusterType"][widgetId] + for widget_idx in self.ListOfDevices[item]["Ep"][epId]["ClusterType"]: + widget = {"_WidgetID": widget_idx, "WidgetName": ""} + if int(widget_idx) in self.ListOfDomoticzWidget: + widget["WidgetName"] = self.ListOfDomoticzWidget[int(widget_idx)]["Name"] + widget["WidgetType"] = self.ListOfDevices[item]["Ep"][epId]["ClusterType"][widget_idx] _widget_lst.append(widget) continue @@ -1166,7 +1159,7 @@ def rest_zDevice_raw(self, verb, data, parameters): return _response def rest_change_channel(self, verb, data, parameters): - Domoticz.Log("rest_change_channel - %s %s" % (verb, data)) + domoticz_log_api("rest_change_channel - %s %s" % (verb, data)) _response = prepResponseMessage(self, setupHeadersResponse()) _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" @@ -1178,9 +1171,9 @@ def rest_change_channel(self, verb, data, parameters): if len(parameters) == 0: data = data.decode("utf8") data = json.loads(data) - Domoticz.Log("---> Data: %s" % str(data)) + domoticz_log_api("---> Data: %s" % str(data)) if "Channel" not in data: - Domoticz.Error("Unexpected request: %s" % data) + domoticz_error_api("Unexpected request: %s" % data) _response["Data"] = {"Error": "Unknow verb"} return _response channel = data["Channel"] @@ -1194,7 +1187,7 @@ def rest_change_channel(self, verb, data, parameters): def rest_raw_command(self, verb, data, parameters): - Domoticz.Log("raw_command - %s %s" % (verb, data)) + domoticz_log_api("raw_command - %s %s" % (verb, data)) _response = prepResponseMessage(self, setupHeadersResponse()) _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" @@ -1203,14 +1196,14 @@ def rest_raw_command(self, verb, data, parameters): if len(parameters) == 0: data = data.decode("utf8") data = json.loads(data) - Domoticz.Log("---> Data: %s" % str(data)) + domoticz_log_api("---> Data: %s" % str(data)) if "Command" not in data and "payload" not in data: - Domoticz.Error("Unexpected request: %s" % data) + domoticz_error_api("Unexpected request: %s" % data) _response["Data"] = json.dumps("Executing %s on %s" % (data["Command"], data["payload"])) return _response if not is_hex(data["Command"]) or (is_hex(data["Command"]) and int(data["Command"], 16) not in ZIGATE_COMMANDS): - Domoticz.Error("raw_command - Unknown MessageType received %s" % data["Command"]) + domoticz_error_api("raw_command - Unknown MessageType received %s" % data["Command"]) _response["Data"] = json.dumps("Unknown MessageType received %s" % data["Command"]) return _response @@ -1310,7 +1303,7 @@ def rest_dev_command(self, verb, data, parameters): if len(parameters) == 0: data = data.decode("utf8") data = validateJSON( self, data) - Domoticz.Log("---> Data: %s" % str(data)) + domoticz_log_api("---> Data: %s" % str(data)) self.logging( "Log", "rest_dev_command - Command: %s on object: %s with extra %s %s" % (data["Command"], data["NwkId"], data["Value"], data["Color"]), @@ -1388,14 +1381,14 @@ def rest_dev_capabilities(self, verb, data, parameters): return _response if len(parameters) == 0: - Domoticz.Error("rest_dev_capabilities - expecting a device id! %s" % (parameters)) + domoticz_error_api("rest_dev_capabilities - expecting a device id! %s" % (parameters)) return _response if len(parameters) != 1: return if parameters[0] not in self.ListOfDevices and parameters[0] not in self.IEEE2NWK: - Domoticz.Error("rest_dev_capabilities - Device %s doesn't exist" % (parameters[0])) + domoticz_error_api("rest_dev_capabilities - Device %s doesn't exist" % (parameters[0])) return _response # Check Capabilities @@ -1468,7 +1461,7 @@ def rest_dev_capabilities(self, verb, data, parameters): def rest_zigate_mode(self, verb, data, parameters): - Domoticz.Log("rest_zigate_mode mode: %s" % parameters) + domoticz_log_api("rest_zigate_mode mode: %s" % parameters) _response = prepResponseMessage(self, setupHeadersResponse()) _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" if verb == "GET": diff --git a/Classes/WebServer/com.py b/Classes/WebServer/com.py index dfc931d45..4efe059f4 100644 --- a/Classes/WebServer/com.py +++ b/Classes/WebServer/com.py @@ -4,7 +4,7 @@ # Author: zaraki673 & pipiche38 # -import Domoticz +from Modules.domoticzAbstractLayer import domoticz_connection def startWebServer(self): @@ -14,20 +14,9 @@ def startWebServer(self): # self.httpPort = httpPort if self.httpIp is None: - self.httpServerConn = Domoticz.Connection( - Name="Zigate Server Connection", - Transport="TCP/IP", - Protocol="HTTP", - Port=self.httpPort - ) + self.httpServerConn = domoticz_connection( name="Zigate Server Connection", transport="TCP/IP", protocol="HTTP", port=self.httpPort) else: - self.httpServerConn = Domoticz.Connection( - Name="Zigate Server Connection", - Transport="TCP/IP", - Protocol="HTTP", - Address=str(self.httpIp), - Port=self.httpPort - ) + self.httpServerConn = domoticz_connection( name="Zigate Server Connection", transport="TCP/IP", protocol="HTTP", address=str(self.httpIp), port=self.httpPort ) self.httpServerConn.Listen() if self.httpIp is None: @@ -47,20 +36,11 @@ def onConnect(self, Connection, Status, Description): self.logging("Debug", "Connection: %s, description: %s" % (Connection, Description)) if Status != 0: - Domoticz.Error( - "onConnect - Failed to connect (" - + str(Status) - + ") to: " - + Connection.Address - + ":" - + Connection.Port - + " with error: " - + Description - ) + self.logging("Error", f"onConnect - Failed to connect ({str(Status)} to: {Connection.Address} : {Connection.Port} with error: {Description}") return if Connection is None: - Domoticz.Error("onConnect - Uninitialized Connection !!! %s %s %s" % (Connection, Status, Description)) + self.logging("Error", "onConnect - Uninitialized Connection !!! %s %s %s" % (Connection, Status, Description)) return # Search for Protocol @@ -81,7 +61,7 @@ def onConnect(self, Connection, Status, Description): self.logging("Debug", "New Connection: %s" % (Connection.Name)) self.httpServerConns[Connection.Name] = Connection else: - Domoticz.Error("onConnect - unexpected protocol for connection: %s" % (Connection)) + self.logging("Error","onConnect - unexpected protocol for connection: %s" % (Connection)) self.logging("Debug", "Number of http Connections : %s" % len(self.httpServerConns)) self.logging("Debug", "Number of https Connections : %s" % len(self.httpsServerConns)) @@ -110,8 +90,8 @@ def onStop(self): # Search for Protocol for connection in self.httpServerConns: self.logging("Log", "Closing %s" % connection) - self.httpServerConns[Connection.Name].close() + self.httpServerConns[connection.Name].close() for connection in self.httpsServerConns: self.logging("Log", "Closing %s" % connection) - self.httpServerConns[Connection.Name].close() + self.httpServerConns[connection.Name].close() diff --git a/Classes/WebServer/dispatcher.py b/Classes/WebServer/dispatcher.py index dd13a4e73..1005f50da 100644 --- a/Classes/WebServer/dispatcher.py +++ b/Classes/WebServer/dispatcher.py @@ -6,7 +6,6 @@ import json -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) diff --git a/Classes/WebServer/onMessage.py b/Classes/WebServer/onMessage.py index f2e8040b8..8e9de8094 100644 --- a/Classes/WebServer/onMessage.py +++ b/Classes/WebServer/onMessage.py @@ -6,15 +6,17 @@ import mimetypes import os import os.path -from pathlib import Path from datetime import datetime +from pathlib import Path from time import gmtime, strftime from urllib.parse import urlparse -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Classes.WebServer.tools import MAX_KB_TO_SEND, DumpHTTPResponseToLog +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) def onMessage(self, Connection, Data): @@ -24,15 +26,15 @@ def onMessage(self, Connection, Data): headerCode = "200 OK" if "Verb" not in Data: - Domoticz.Error("Invalid web request received, no Verb present") + domoticz_error_api("Invalid web request received, no Verb present") headerCode = "400 Bad Request" elif Data["Verb"] not in ("GET", "PUT", "POST", "DELETE"): - Domoticz.Error("Invalid web request received, only GET requests allowed (" + Data["Verb"] + ")") + domoticz_error_api("Invalid web request received, only GET requests allowed (" + Data["Verb"] + ")") headerCode = "405 Method Not Allowed" elif "URL" not in Data: - Domoticz.Error("Invalid web request received, no URL present") + domoticz_error_api("Invalid web request received, no URL present") headerCode = "400 Bad Request" parsed_url = urlparse(Data["URL"]) @@ -65,7 +67,7 @@ def onMessage(self, Connection, Data): # API Version 1 self.do_rest(Connection, Data["Verb"], Data["Data"], parsed_query[1], parsed_query[2], parsed_query[3:]) else: - Domoticz.Error("Unknown API %s" % parsed_query) + domoticz_error_api("Unknown API %s" % parsed_query) headerCode = "400 Bad Request" self.sendResponse(Connection, {"Status": headerCode}) return @@ -158,10 +160,10 @@ def send_file(self, Connection, webFilename, Data, _lastmodified, _response): _response["Status"] = "200 OK" if "Accept-Encoding" in Data["Headers"]: - self.logging( "Debug", "send_file sendResponse %s %s" %(webFilename, _response)) + #self.logging( "Debug", "send_file sendResponse %s %s" %(webFilename, _response)) self.sendResponse(Connection, _response, AcceptEncoding=Data["Headers"]["Accept-Encoding"]) else: - self.logging( "Debug", "send_file sendResponse %s %s" %(webFilename, _response)) + #self.logging( "Debug", "send_file sendResponse %s %s" %(webFilename, _response)) self.sendResponse(Connection, _response) def get__range_and_send(self,Connection, webFilename, Data, _response ): diff --git a/Classes/WebServer/rest_Bindings.py b/Classes/WebServer/rest_Bindings.py index e915604cd..83c926884 100644 --- a/Classes/WebServer/rest_Bindings.py +++ b/Classes/WebServer/rest_Bindings.py @@ -5,10 +5,12 @@ # import json -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.bindings import bindGroup, unbindGroup, webBind, webUnBind +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) from Modules.zb_tables_management import mgt_binding_table_req from Modules.zigateConsts import ZCL_CLUSTERS_ACT @@ -38,7 +40,7 @@ def rest_bindLSTdevice(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) if len(parameters) != 1: - Domoticz.Error("Must have 1 argument. %s" % parameters) + domoticz_error_api("Must have 1 argument. %s" % parameters) return _response listofdevices = [] @@ -83,7 +85,7 @@ def rest_binding(self, verb, data, parameters): data = json.loads(data) if "sourceIeee" not in data and "sourceEp" not in data and "destIeee" not in data and "destEp" not in data and "cluster" not in data: - Domoticz.Error("-----> uncomplet json %s" % data) + domoticz_error_api("-----> uncomplet json %s" % data) _response["Data"] = json.dumps("uncomplet json %s" % data) return _response @@ -109,7 +111,7 @@ def rest_unbinding(self, verb, data, parameters): data = json.loads(data) if "sourceIeee" not in data and "sourceEp" not in data and "destIeee" not in data and "destEp" not in data and "cluster" not in data: - Domoticz.Log("-----> uncomplet json %s" % data) + domoticz_log_api("-----> uncomplet json %s" % data) _response["Data"] = json.dumps("uncomplet json %s" % data) return _response @@ -137,7 +139,7 @@ def rest_group_binding(self, verb, data, parameters): data = json.loads(data) if "sourceIeee" not in data and "sourceEp" not in data and "groupId" not in data and "cluster" not in data: - Domoticz.Error("-----> uncomplet json %s" % data) + domoticz_error_api("-----> uncomplet json %s" % data) _response["Data"] = json.dumps("uncomplet json %s" % data) return _response @@ -166,7 +168,7 @@ def rest_group_unbinding(self, verb, data, parameters): data = json.loads(data) if "sourceIeee" not in data and "sourceEp" not in data and "groupId" not in data and "cluster" not in data: - Domoticz.Error("-----> uncomplet json %s" % data) + domoticz_error_api("-----> uncomplet json %s" % data) _response["Data"] = json.dumps("uncomplet json %s" % data) return _response diff --git a/Classes/WebServer/rest_Casaia.py b/Classes/WebServer/rest_Casaia.py index f6f33cea8..9270ad265 100644 --- a/Classes/WebServer/rest_Casaia.py +++ b/Classes/WebServer/rest_Casaia.py @@ -6,10 +6,12 @@ import json from time import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.casaia import DEVICE_ID +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) def rest_casa_device_list(self, verb, data, parameters): # Ok 10/11/2020 @@ -30,7 +32,7 @@ def rest_casa_device_list(self, verb, data, parameters): # Ok 10/11/2020 def fake_list_casaia_ac201(): - Domoticz.Log("fake_list_casaia_ac201") + domoticz_log_api("fake_list_casaia_ac201") return [ {"NwkId": "aef3", "IEEE": "3c6a2cfffed012345", "Model": "AC201A", "Name": "Clim Bureau", "IRCode": "1234"}, @@ -79,7 +81,7 @@ def rest_casa_device_ircode_update(self, verb, data, parameters): continue if x["NwkId"] in self.ListOfDevices and "CASA.IA" in self.ListOfDevices[x["NwkId"]]: - Domoticz.Log("Updating : %s with %s" % (x["NwkId"], x["IRCode"])) + domoticz_log_api("Updating : %s with %s" % (x["NwkId"], x["IRCode"])) if self.ListOfDevices[x["NwkId"]] and "Model" in self.ListOfDevices[x["NwkId"]]: self.ListOfDevices[x["NwkId"]]["CASA.IA"][DEVICE_ID]["IRCode"] = x["IRCode"] diff --git a/Classes/WebServer/rest_CfgReporting.py b/Classes/WebServer/rest_CfgReporting.py index 2cb8e19b6..a5866bd9e 100644 --- a/Classes/WebServer/rest_CfgReporting.py +++ b/Classes/WebServer/rest_CfgReporting.py @@ -6,11 +6,11 @@ import json import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) -from Modules.pluginDbAttributes import STORE_READ_CONFIGURE_REPORTING, STORE_CONFIGURE_REPORTING, STORE_CUSTOM_CONFIGURE_REPORTING - +from Modules.pluginDbAttributes import (STORE_CONFIGURE_REPORTING, + STORE_CUSTOM_CONFIGURE_REPORTING, + STORE_READ_CONFIGURE_REPORTING) from Modules.zigateConsts import SIZE_DATA_TYPE, analog_value diff --git a/Classes/WebServer/rest_Energy.py b/Classes/WebServer/rest_Energy.py index 398fbc82f..766e6ddf8 100644 --- a/Classes/WebServer/rest_Energy.py +++ b/Classes/WebServer/rest_Energy.py @@ -7,7 +7,6 @@ import json from time import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) diff --git a/Classes/WebServer/rest_Groups.py b/Classes/WebServer/rest_Groups.py index d64d332f2..7c5e602bd 100644 --- a/Classes/WebServer/rest_Groups.py +++ b/Classes/WebServer/rest_Groups.py @@ -1,16 +1,24 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import json -import os from time import time -import Domoticz -from Classes.WebServer.headerResponse import prepResponseMessage, setupHeadersResponse +from Classes.WebServer.headerResponse import (prepResponseMessage, + setupHeadersResponse) +from Modules.domoticzAbstractLayer import ( + domo_browse_widgets, domo_read_Device_Idx, domo_read_Name, + domoticz_error_api, retreive_widgetid_from_deviceId_unit) LIST_CLUSTERTYPE_FOR_GROUPS = ( "LvlControl", "Switch", "Plug", @@ -26,6 +34,8 @@ "FanControl", "CAC221ACMode", ) + + def rest_zGroup_lst_avlble_dev(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) @@ -33,134 +43,147 @@ def rest_zGroup_lst_avlble_dev(self, verb, data, parameters): if verb != "GET": return _response - device_lst = [] - _device = {} - _widget = {} - _device["_NwkId"] = "0000" - _device["WidgetList"] = [] + device_lst = [ _coordinator_infos(self) ] - _widget["_ID"] = "" - _widget["Name"] = "" - _widget["IEEE"] = "0000000000000000" - _widget["Ep"] = "01" - _widget["ZDeviceName"] = "Zigate (Coordinator)" - - if self.ControllerData and "IEEE" in self.ControllerData: - _widget["IEEE"] = self.ControllerData["IEEE"] - _device["_NwkId"] = self.ControllerData["Short Address"] - - _device["WidgetList"].append(_widget) - device_lst.append(_device) - - for x in self.ListOfDevices: - if x == "0000": + for nwkid in self.ListOfDevices: + if nwkid == "0000": + # Done just before entering in the loop continue - if "MacCapa" not in self.ListOfDevices[x]: - self.logging("Debug", "rest_zGroup_lst_avlble_dev - no 'MacCapa' info found for %s!!!!" % x) + if not _is_ikea_round_remote_or_battery_enabled_or_main_powered(self, nwkid): + self.logging("Debug", "rest_zGroup_lst_avlble_dev - %s not a Main Powered device." % nwkid) continue - IkeaRemote = False - if self.pluginconf.pluginConf["GroupOnBattery"] or ("Type" in self.ListOfDevices[x] and self.ListOfDevices[x]["Type"] == "Ikea_Round_5b"): - IkeaRemote = True - - if not (self.ListOfDevices[x]["MacCapa"] == "8e" or IkeaRemote): - self.logging("Debug", "rest_zGroup_lst_avlble_dev - %s not a Main Powered device. " % x) + if not is_ready_for_widget_infos(self, nwkid): + self.logging("Debug", "rest_zGroup_lst_avlble_dev - %s not all infos available skiping." % nwkid) continue - - if "Ep" in self.ListOfDevices[x] and "ZDeviceName" in self.ListOfDevices[x] and "IEEE" in self.ListOfDevices[x]: - _device = {"_NwkId": x, "WidgetList": []} - for ep in self.ListOfDevices[x]["Ep"]: - if "Type" in self.ListOfDevices[x] and self.ListOfDevices[x]["Type"] == "Ikea_Round_5b" and ep == "01" and "ClusterType" in self.ListOfDevices[x]["Ep"]["01"]: - widgetID = "" - for iterDev in self.ListOfDevices[x]["Ep"]["01"]["ClusterType"]: - if self.ListOfDevices[x]["Ep"]["01"]["ClusterType"][iterDev] == "Ikea_Round_5b": - widgetID = iterDev - for widget in self.Devices: - if self.Devices[widget].ID == int(widgetID): - _widget = { - "_ID": self.Devices[widget].ID, - "Name": self.Devices[widget].Name, - "IEEE": self.ListOfDevices[x]["IEEE"], - "Ep": ep, - "ZDeviceName": self.ListOfDevices[x]["ZDeviceName"], - } - - if _widget not in _device["WidgetList"]: - _device["WidgetList"].append(_widget) - break - if _device not in device_lst: - device_lst.append(_device) - continue # Next Ep - - if ( - "ClusterType" not in self.ListOfDevices[x] - and "ClusterType" not in self.ListOfDevices[x]["Ep"][ep] - and "0004" not in self.ListOfDevices[x]["Ep"][ep] - and "0006" not in self.ListOfDevices[x]["Ep"][ep] - and "0008" not in self.ListOfDevices[x]["Ep"][ep] - and "0102" not in self.ListOfDevices[x]["Ep"][ep] - and "0201" not in self.ListOfDevices[x]["Ep"][ep] - and "0202" not in self.ListOfDevices[x]["Ep"][ep] - ): + + device_entry = self.ListOfDevices[nwkid] + device_entry_endpoints = self.ListOfDevices[nwkid]["Ep"] + + _device = {"_NwkId": nwkid, "WidgetList": []} + for ep in device_entry_endpoints: + if _is_ikea_round_remote(self, nwkid, ep): + widgetID = "" + for iterDev in device_entry_endpoints["01"]["ClusterType"]: + if device_entry_endpoints["01"]["ClusterType"][iterDev] == "Ikea_Round_5b": + widgetID = iterDev + widget = _build_device_widgetList_infos( self, widgetID, ep, self.ListOfDevices[nwkid]["ZDeviceName"] ) + _device["WidgetList"].extend( widget ) + if _device not in device_lst: + device_lst.append(_device) + + continue # Next Ep, as we can have only 1 Ikea round per group + + if is_cluster_not_for_group( self, nwkid, ep): + continue + + if "ClusterType" in device_entry_endpoints[ep]: + clusterType = device_entry_endpoints[ep]["ClusterType"] + for widgetID in clusterType: + if clusterType[widgetID] not in LIST_CLUSTERTYPE_FOR_GROUPS: + continue + + widget = _build_device_widgetList_infos( self, widgetID, ep, self.ListOfDevices[nwkid]["ZDeviceName"] ) + _device["WidgetList"].extend( widget ) + + if "ClusterType" in device_entry: + clusterType = device_entry["ClusterType"] + + for widgetID in clusterType: + if clusterType[widgetID] not in LIST_CLUSTERTYPE_FOR_GROUPS: continue - if "ClusterType" in self.ListOfDevices[x]["Ep"][ep]: - clusterType = self.ListOfDevices[x]["Ep"][ep]["ClusterType"] - for widgetID in clusterType: - if clusterType[widgetID] not in LIST_CLUSTERTYPE_FOR_GROUPS: - continue - - for widget in self.Devices: - if self.Devices[widget].ID == int(widgetID): - _widget = {} - _widget["_ID"] = self.Devices[widget].ID - _widget["Name"] = self.Devices[widget].Name - _widget["IEEE"] = self.ListOfDevices[x]["IEEE"] - _widget["Ep"] = ep - _widget["ZDeviceName"] = self.ListOfDevices[x]["ZDeviceName"] - if _widget not in _device["WidgetList"]: - _device["WidgetList"].append(_widget) - - elif "ClusterType" in self.ListOfDevices[x]: - clusterType = self.ListOfDevices[x]["ClusterType"] - - for widgetID in clusterType: - if clusterType[widgetID] not in LIST_CLUSTERTYPE_FOR_GROUPS: - continue - - for widget in self.Devices: - if self.Devices[widget].ID == int(widgetID): - _widget = {} - _widget["_ID"] = self.Devices[widget].ID - _widget["Name"] = self.Devices[widget].Name - _widget["IEEE"] = self.ListOfDevices[x]["IEEE"] - _widget["Ep"] = ep - _widget["ZDeviceName"] = self.ListOfDevices[x]["ZDeviceName"] - if _widget not in _device["WidgetList"]: - _device["WidgetList"].append(_widget) + widget = _build_device_widgetList_infos( self, widgetID, ep, self.ListOfDevices[nwkid]["ZDeviceName"] ) + _device["WidgetList"].extend( widget) if _device not in device_lst: device_lst.append(_device) + self.logging("Debug", "Response: %s" % device_lst) _response["Data"] = json.dumps(device_lst, sort_keys=True) + return _response +def is_ready_for_widget_infos(self, nwkid): + return "Ep" in self.ListOfDevices[nwkid] and "ZDeviceName" in self.ListOfDevices[nwkid] and "IEEE" in self.ListOfDevices[nwkid] + + +def _is_ikea_round_remote_or_battery_enabled_or_main_powered(self, nwkid): + """ Check if Main Powered, GroupOnBattery is enabled or we have an Ikea Round 5B """ + return ( + "MacCapa" in self.ListOfDevices[nwkid] and self.ListOfDevices[nwkid]["MacCapa"] == "8e" + or self.pluginconf.pluginConf["GroupOnBattery"] + or "Type" in self.ListOfDevices[nwkid] and self.ListOfDevices[nwkid]["Type"] == "Ikea_Round_5b" + ) + + +def _is_ikea_round_remote(self, nwkid, ep): + return "Type" in self.ListOfDevices[nwkid] and self.ListOfDevices[nwkid]["Type"] == "Ikea_Round_5b" and ep == "01" and "ClusterType" in self.ListOfDevices[nwkid]["Ep"]["01"] + + +def _coordinator_infos(self): + _device = {"_NwkId": "0000", "WidgetList": []} + _widget = { + "_ID": "", + "Name": "", + "IEEE": "0000000000000000", + "Ep": "01", + "ZDeviceName": "Zigate (Coordinator)", + } + _device["WidgetList"].append(_widget) + if self.ControllerData and "IEEE" in self.ControllerData: + _widget["IEEE"] = self.ControllerData["IEEE"] + _device["_NwkId"] = self.ControllerData["Short Address"] + + return _device + + +def is_cluster_not_for_group( self, nwkid, ep): + + return ( + "ClusterType" not in self.ListOfDevices[nwkid] + and "ClusterType" not in self.ListOfDevices[nwkid]["Ep"][ep] + and "0004" not in self.ListOfDevices[nwkid]["Ep"][ep] + and "0006" not in self.ListOfDevices[nwkid]["Ep"][ep] + and "0008" not in self.ListOfDevices[nwkid]["Ep"][ep] + and "0102" not in self.ListOfDevices[nwkid]["Ep"][ep] + and "0201" not in self.ListOfDevices[nwkid]["Ep"][ep] + and "0202" not in self.ListOfDevices[nwkid]["Ep"][ep] + ) + + +def _build_device_widgetList_infos( self, widgetID, ep, ZDeviceName ): + self.logging("Debug", f"_build_device_widgetList_infos - for WidgetIdx {widgetID} ep {ep} Zname {ZDeviceName}") + widget_list = [] + + for device_ieee, unit in domo_browse_widgets(self, self.Devices): + widget_idx = retreive_widgetid_from_deviceId_unit(self, self.Devices, device_ieee, unit) + if widget_idx != int(widgetID): + continue + widget = { + "_ID": domo_read_Device_Idx(self,self.Devices,device_ieee,unit,), + "Name": domo_read_Name( self, self.Devices, device_ieee, unit, ), + "IEEE": device_ieee, + "Ep": ep, + "ZDeviceName": ZDeviceName, + } + widget_list.append( widget ) + return widget_list + + def rest_rescan_group(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" - action = {} if verb != "GET": return _response if self.groupmgt: self.groupmgt.ScanAllDevicesForGroupMemberShip() else: - Domoticz.Error("rest_rescan_group Group not enabled!!!") - action["Name"] = "Full Scan" - action["TimeStamp"] = int(time()) - + domoticz_error_api("rest_rescan_group Group not enabled!!!") + action = {"Name": "Full Scan", "TimeStamp": int(time())} _response["Data"] = json.dumps(action, sort_keys=True) return _response @@ -199,115 +222,69 @@ def rest_zGroup(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) - self.logging("Debug", "rest_zGroup - ListOfGroups = %s" % str(self.groupmgt)) + self.logging("Log", f"rest_zGroup {verb} {data} {parameters}") if verb == "GET": - if self.groupmgt is None: - return _response - - ListOfGroups = self.groupmgt.ListOfGroups - if ListOfGroups is None or len(ListOfGroups) == 0: - return _response - - if len(parameters) == 0: - zgroup_lst = [] - for itergrp in ListOfGroups: - #if int(itergrp,16) == self.pluginconf.pluginConf["pingViaGroup"]: - # continue - - self.logging("Debug", "Process Group: %s" % itergrp) - zgroup = { - "_GroupId": itergrp, - "GroupName": ListOfGroups[itergrp]["Name"], - "Devices": [], - } - for itemDevice in ListOfGroups[itergrp]["Devices"]: - if len(itemDevice) == 2: - dev, ep = itemDevice - ieee = self.ListOfDevices[dev]["IEEE"] - - elif len(itemDevice) == 3: - dev, ep, ieee = itemDevice - - self.logging("Debug", "--> add %s %s %s" % (dev, ep, ieee)) - _dev = {"_NwkId": dev, "Ep": ep, "IEEE": ieee} - zgroup["Devices"].append(_dev) - - if "WidgetStyle" in ListOfGroups[itergrp]: - zgroup["WidgetStyle"] = ListOfGroups[itergrp]["WidgetStyle"] - - if "Cluster" in ListOfGroups[itergrp]: - zgroup["Cluster"] = ListOfGroups[itergrp]["Cluster"] - - # Let's check if we don't have an Ikea Remote in the group - if "Tradfri Remote" in ListOfGroups[itergrp]: - self.logging("Debug", "--> add Ikea Tradfri Remote") - _dev = { - "_NwkId": ListOfGroups[itergrp]["Tradfri Remote"][ - "Device Addr" - ], - "Unit": ListOfGroups[itergrp]["Tradfri Remote"][ - "Device Id" - ], - "Ep": ListOfGroups[itergrp]["Tradfri Remote"]["Ep"], - "Color Mode": ListOfGroups[itergrp]["Tradfri Remote"][ - "Color Mode" - ], - } - zgroup["Devices"].append(_dev) - zgroup_lst.append(zgroup) - self.logging("Debug", "zGroup: %s" % zgroup_lst) - _response["Data"] = json.dumps(zgroup_lst, sort_keys=True) - - elif len(parameters) == 1: - if parameters[0] in ListOfGroups: - itemGroup = parameters[0] - zgroup = { - "_GroupId": itemGroup, - "GroupName": ListOfGroups[itemGroup]["Name"], - "Devices": {}, - } - for itemDevice in ListOfGroups[itemGroup]["Devices"]: - if len(itemDevice) == 2: - dev, ep = itemDevice - _ieee = self.ListOfDevices[dev]["IEEE"] - - elif len(itemDevice) == 3: - dev, ep, _ieee = itemDevice - - self.logging("Debug", "--> add %s %s" % (dev, ep)) - zgroup["Devices"][dev] = ep - - # Let's check if we don't have an Ikea Remote in the group - if "Tradfri Remote" in ListOfGroups[itemGroup]: - self.logging("Log", "--> add Ikea Tradfri Remote") - _dev = { - "_NwkId": ListOfGroups[itemGroup]["Tradfri Remote"][ - "Device Addr" - ], - "Ep": "01", - } - # zgroup["Devices"].append(_dev) This looks very bad. Don't know where it is coming from - zgroup["Devices"][ListOfGroups[itemGroup]["Tradfri Remote"]["Device Addr"]] = "01" - _response["Data"] = json.dumps(zgroup, sort_keys=True) + return _response if self.groupmgt is None else _zgroup_get(self, parameters) + + if verb == "PUT": + _zgroup_put( self, data, parameters) + +def _zgroup_put( self, data, parameters): + _response = prepResponseMessage(self, setupHeadersResponse()) + _response["Data"] = None + if not self.groupmgt: + domoticz_error_api("Looks like Group Management is not enabled") + _response["Data"] = {} return _response - if verb == "PUT": - _response["Data"] = None - if not self.groupmgt: - Domoticz.Error("Looks like Group Management is not enabled") - _response["Data"] = {} - return _response - - ListOfGroups = self.groupmgt.ListOfGroups - grp_lst = [] - if len(parameters) == 0: - data = data.decode("utf8") - _response["Data"] = {} - self.groupmgt.process_web_request(json.loads(data)) - - # end if len() - # end if Verb= + ListOfGroups = self.groupmgt.ListOfGroups + grp_lst = [] + if len(parameters) == 0: + data = data.decode("utf8") + _response["Data"] = {} + self.groupmgt.process_web_request(json.loads(data)) return _response + + +def _zgroup_get(self, parameters): + self.logging("Debug", f"zgroup_get - {parameters}") + _response = prepResponseMessage(self, setupHeadersResponse()) + + ListOfGroups = self.groupmgt.ListOfGroups + if ListOfGroups is None: + return _response + + zgroup_lst = [] + for itergrp, group_info in ListOfGroups.items(): + self.logging("Debug", f"_zgroup_get - {itergrp} {group_info}") + if len(parameters) == 1 and itergrp != parameters[0]: + continue + + zgroup = { + "_GroupId": itergrp, + "GroupName": group_info.get("Name", ""), + "Devices": [], + } + for itemDevice in group_info.get("Devices", []): + if len(itemDevice) == 2: + dev, ep = itemDevice + ieee = self.ListOfDevices.get(dev, {}).get("IEEE", "") + elif len(itemDevice) == 3: + dev, ep, ieee = itemDevice + zgroup["Devices"].append( {"_NwkId": dev, "Ep": ep, "IEEE": ieee} ) + + zgroup["WidgetStyle"] = group_info.get("WidgetStyle", "") + zgroup["Cluster"] = group_info.get("Cluster", "") + + if "Tradfri Remote" in group_info: + zgroup["Devices"].append( {"_NwkId": group_info["Tradfri Remote"]} ) + + self.logging("Debug", f"Processed Group: {itergrp} {zgroup}") + + zgroup_lst.append(zgroup) + + _response["Data"] = json.dumps(zgroup_lst, sort_keys=True) + return _response \ No newline at end of file diff --git a/Classes/WebServer/rest_Ota.py b/Classes/WebServer/rest_Ota.py index 8793df7e4..bfdebc306 100644 --- a/Classes/WebServer/rest_Ota.py +++ b/Classes/WebServer/rest_Ota.py @@ -6,10 +6,12 @@ import json from time import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.bindings import webBind, webUnBind +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) from Modules.zigateConsts import ZCL_CLUSTERS_ACT MATRIX_MANUFACTURER_NAME = { @@ -340,7 +342,7 @@ def rest_ota_devices_for_manufcode(self, verb, data, parameters): if not compatible and self.ListOfDevices[x]["Manufacturer"] != manuf_code: continue - Domoticz.Log("Found device: %s" % x) + domoticz_log_api("Found device: %s" % x) device_list.append(get_device_informations(self, x)) _response["Data"] = json.dumps(device_list, sort_keys=True) diff --git a/Classes/WebServer/rest_PluginUpgrade.py b/Classes/WebServer/rest_PluginUpgrade.py index f6945267a..394592950 100644 --- a/Classes/WebServer/rest_PluginUpgrade.py +++ b/Classes/WebServer/rest_PluginUpgrade.py @@ -1,11 +1,12 @@ import json -import subprocess # nosec import os -import z4d_certified_devices +import subprocess # nosec from pathlib import Path + import distro +import z4d_certified_devices from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) diff --git a/Classes/WebServer/rest_Provisioning.py b/Classes/WebServer/rest_Provisioning.py index f770e3149..a47e8072b 100644 --- a/Classes/WebServer/rest_Provisioning.py +++ b/Classes/WebServer/rest_Provisioning.py @@ -6,11 +6,13 @@ import json from time import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.basicOutputs import (ZigatePermitToJoin, setExtendedPANID, start_Zigate, zigateBlueLed) +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) from Modules.pluginDbAttributes import STORE_CONFIGURE_REPORTING from Modules.sendZigateCommand import (raw_APS_request, send_zigatecmd_raw, send_zigatecmd_zcl_ack, @@ -32,17 +34,17 @@ def rest_new_hrdwr(self, verb, data, parameters): data = {} if len(parameters) != 1: - Domoticz.Error("rest_new_hrdwr - unexpected parameter %s " % parameters) + domoticz_error_api("rest_new_hrdwr - unexpected parameter %s " % parameters) _response["Data"] = {"unexpected parameter %s " % parameters} return _response if parameters[0] not in ("enable", "cancel", "disable"): - Domoticz.Error("rest_new_hrdwr - unexpected parameter %s " % parameters[0]) + domoticz_error_api("rest_new_hrdwr - unexpected parameter %s " % parameters[0]) _response["Data"] = {"unexpected parameter %s " % parameters[0]} return _response if parameters[0] == "enable": - Domoticz.Log("Enable Assisted pairing") + domoticz_log_api("Enable Assisted pairing") if len(self.DevicesInPairingMode): del self.DevicesInPairingMode self.DevicesInPairingMode = [] @@ -57,7 +59,7 @@ def rest_new_hrdwr(self, verb, data, parameters): return _response if parameters[0] in ("cancel", "disable"): - Domoticz.Log("Disable Assisted pairing") + domoticz_log_api("Disable Assisted pairing") if len(self.DevicesInPairingMode) != 0: del self.DevicesInPairingMode self.DevicesInPairingMode = [] @@ -121,9 +123,9 @@ def rest_rcv_nw_hrdwr(self, verb, data, parameters): self.DevicesInPairingMode.append(list(self.ListOfDevices.keys())[1]) self.DevicesInPairingMode.append(list(self.ListOfDevices.keys())[2]) - Domoticz.Log("Assisted Pairing: Polling: %s" % str(self.DevicesInPairingMode)) + domoticz_log_api("Assisted Pairing: Polling: %s" % str(self.DevicesInPairingMode)) if len(self.DevicesInPairingMode) == 0: - Domoticz.Log("--> Empty queue") + domoticz_log_api("--> Empty queue") _response["Data"] = json.dumps(data) return _response @@ -137,9 +139,9 @@ def rest_rcv_nw_hrdwr(self, verb, data, parameters): newdev = {} newdev["NwkId"] = nwkid - Domoticz.Log("--> New device: %s" % nwkid) + domoticz_log_api("--> New device: %s" % nwkid) if "Status" not in self.ListOfDevices[nwkid]: - Domoticz.Error("Something went wrong as the device seems not be created") + domoticz_error_api("Something went wrong as the device seems not be created") data["NewDevices"].append(newdev) continue @@ -149,22 +151,22 @@ def rest_rcv_nw_hrdwr(self, verb, data, parameters): continue elif self.ListOfDevices[nwkid]["Status"] == "UNKNOW" or (_fake == 2): - Domoticz.Log("--> UNKNOW , removed %s from List" % nwkid) + domoticz_log_api("--> UNKNOW , removed %s from List" % nwkid) self.DevicesInPairingMode.remove(nwkid) newdev["ProvisionStatus"] = "Failed" newdev["ProvisionStatusDesc"] = "Failed" elif self.ListOfDevices[nwkid]["Status"] == "inDB": - Domoticz.Log("--> inDB , removed %s from List" % nwkid) + domoticz_log_api("--> inDB , removed %s from List" % nwkid) self.DevicesInPairingMode.remove(nwkid) newdev["ProvisionStatus"] = "inDB" newdev["ProvisionStatusDesc"] = "inDB" else: - Domoticz.Log("--> Unexpected , removed %s from List" % nwkid) + domoticz_log_api("--> Unexpected , removed %s from List" % nwkid) self.DevicesInPairingMode.remove(nwkid) newdev["ProvisionStatus"] = "Unexpected" newdev["ProvisionStatusDesc"] = "Unexpected" - Domoticz.Error("Unexpected") + domoticz_error_api("Unexpected") continue newdev["IEEE"] = "Unknown" @@ -220,11 +222,11 @@ def rest_rcv_nw_hrdwr(self, verb, data, parameters): else: cluster["ClusterDesc"] = "Unknown" ep["Clusters"].append(cluster) - Domoticz.Log("------> New Cluster: %s" % str(cluster)) + domoticz_log_api("------> New Cluster: %s" % str(cluster)) newdev["Ep"].append(ep) - Domoticz.Log("----> New Ep: %s" % str(ep)) + domoticz_log_api("----> New Ep: %s" % str(ep)) data["NewDevices"].append(newdev) - Domoticz.Log(" --> New Device: %s" % str(newdev)) + domoticz_log_api(" --> New Device: %s" % str(newdev)) # for nwkid in listOfPairedDevices: _response["Data"] = json.dumps(data) @@ -235,7 +237,7 @@ def rest_full_reprovisionning(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) - Domoticz.Log("rest_full_reprovisionning -->Verb: %s Data: %s Parameters: %s" % (verb, data, parameters)) + domoticz_log_api("rest_full_reprovisionning -->Verb: %s Data: %s Parameters: %s" % (verb, data, parameters)) if verb != "PUT": return _response @@ -245,21 +247,21 @@ def rest_full_reprovisionning(self, verb, data, parameters): self.logging("Log", "Data: %s" % data) if "IEEE" not in data and "NWKID" not in data: - Domoticz.Error("rest_full_reprovisionning - unexpected parameter %s " % parameters) + domoticz_error_api("rest_full_reprovisionning - unexpected parameter %s " % parameters) _response["Data"] = {"unexpected parameter %s " % parameters} return _response if "IEEE" in data: key = data["IEEE"] if key not in self.IEEE2NWK: - Domoticz.Error("rest_full_reprovisionning - Unknown device %s " % key) + domoticz_error_api("rest_full_reprovisionning - Unknown device %s " % key) return _response nwkid = self.IEEE2NWK[key] _response["Data"] = {"IEEE %s set to Provisioning Requested at %s" % (key, int(time()))} else: nwkid = data["NWKID"] if nwkid not in self.ListOfDevices: - Domoticz.Error("rest_full_reprovisionning - Unknown device %s " % nwkid) + domoticz_error_api("rest_full_reprovisionning - Unknown device %s " % nwkid) return _response _response["Data"] = {"NwkId %s set to Provisioning Requested at %s" % (nwkid, int(time()))} diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index ed96f04ad..aecbf94cd 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -7,12 +7,17 @@ import json import os import os.path -from time import time from pathlib import Path +from time import time -import Domoticz -from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) -from Modules.zb_tables_management import get_device_table_entry, get_list_of_timestamps, remove_entry_from_all_tables +from Classes.WebServer.headerResponse import (prepResponseMessage, + setupHeadersResponse) +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) +from Modules.zb_tables_management import (get_device_table_entry, + get_list_of_timestamps, + remove_entry_from_all_tables) def rest_req_topologie(self, verb, data, parameters): @@ -106,7 +111,7 @@ def rest_netTopologie(self, verb, data, parameters): _response["Data"] = json.dumps(action, sort_keys=True) else: - Domoticz.Error("Removing Topo Report %s not found" % timestamp) + domoticz_error_api("Removing Topo Report %s not found" % timestamp) _response["Data"] = json.dumps([], sort_keys=True) return _response @@ -284,17 +289,17 @@ def get_node_name( self, node): def check_sibbling(self, reportLQI): # for node1 in sorted(reportLQI): # for node2 in list(reportLQI[node1]['Neighbours']): - # Domoticz.Log("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) + # domoticz_log_api("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) for node1 in list(reportLQI): for node2 in list(reportLQI[node1]["Neighbours"]): if reportLQI[node1]["Neighbours"][node2]["_relationshp"] != "Sibling": continue - # Domoticz.Log("Search parent for sibling %s and %s" %(node1, node2)) + # domoticz_log_api("Search parent for sibling %s and %s" %(node1, node2)) parent1 = find_parent_for_node(reportLQI, node2) parent2 = find_parent_for_node(reportLQI, node1) - # Domoticz.Log("--parents found: %s + %s" %(parent1,parent2)) + # domoticz_log_api("--parents found: %s + %s" %(parent1,parent2)) if len(parent1) !=0 and len(parent2) == 0: continue @@ -316,7 +321,7 @@ def check_sibbling(self, reportLQI): # for node1 in sorted(reportLQI): # for node2 in list(reportLQI[node1]['Neighbours']): - # Domoticz.Log("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) + # domoticz_log_api("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) return reportLQI @@ -332,14 +337,14 @@ def find_parent_for_node(reportLQI, node): for y in list(reportLQI[node]["Neighbours"]): if reportLQI[node]["Neighbours"][y]["_relationshp"] == "Parent": - # Domoticz.Log("-- -- find %s Parent for %s" %(y, node)) + # domoticz_log_api("-- -- find %s Parent for %s" %(y, node)) if y not in parent: parent.append(y) for x in list(reportLQI): if node in reportLQI[x]["Neighbours"]: if reportLQI[x]["Neighbours"][node]["_relationshp"] == "Child": - # Domoticz.Log("-- -- find %s Child for %s" %(y, node)) + # domoticz_log_api("-- -- find %s Child for %s" %(y, node)) if x not in parent: parent.append(x) diff --git a/Classes/WebServer/rest_ZLinky.py b/Classes/WebServer/rest_ZLinky.py index 4029a42d1..bcb45cfce 100644 --- a/Classes/WebServer/rest_ZLinky.py +++ b/Classes/WebServer/rest_ZLinky.py @@ -1,6 +1,5 @@ import json -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.tools import get_device_nickname diff --git a/Classes/WebServer/rest_change_ModelName.py b/Classes/WebServer/rest_change_ModelName.py index 61797c03d..3b3f19265 100644 --- a/Classes/WebServer/rest_change_ModelName.py +++ b/Classes/WebServer/rest_change_ModelName.py @@ -5,7 +5,6 @@ # from time import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.domoCreate import (CreateDomoDevice, diff --git a/Classes/WebServer/rest_logging.py b/Classes/WebServer/rest_logging.py index 68d3db94d..803a2ee99 100644 --- a/Classes/WebServer/rest_logging.py +++ b/Classes/WebServer/rest_logging.py @@ -1,9 +1,15 @@ -import Domoticz + import json import os -from Classes.WebServer.headerResponse import prepResponseMessage, setupHeadersResponse + +from Classes.WebServer.headerResponse import (prepResponseMessage, + setupHeadersResponse) +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) + def rest_logErrorHistory(self, verb, data, parameters): @@ -15,7 +21,7 @@ def rest_logErrorHistory(self, verb, data, parameters): _response["Data"] = json.dumps(self.log.LogErrorHistory, sort_keys=False) self.log.reset_new_error() except Exception as e: - Domoticz.Error("rest_logErrorHistory - Exception %s while saving: %s" % (e, str(self.log.LogErrorHistory))) + domoticz_error_api("rest_logErrorHistory - Exception %s while saving: %s" % (e, str(self.log.LogErrorHistory))) return _response def rest_logErrorHistoryClear(self, verb, data, parameters): diff --git a/Classes/WebServer/rest_recreateWidget.py b/Classes/WebServer/rest_recreateWidget.py index 5913835cb..29c8888af 100644 --- a/Classes/WebServer/rest_recreateWidget.py +++ b/Classes/WebServer/rest_recreateWidget.py @@ -5,11 +5,13 @@ # from time import time -import Domoticz from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) from Modules.domoCreate import (CreateDomoDevice, over_write_type_from_deviceconf) +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) def rest_recreate_widgets(self, verb, data, parameters): @@ -18,7 +20,7 @@ def rest_recreate_widgets(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) - Domoticz.Log("rest_recreate_widgets -->Verb: %s Data: %s Parameters: %s" % (verb, data, parameters)) + domoticz_log_api("rest_recreate_widgets -->Verb: %s Data: %s Parameters: %s" % (verb, data, parameters)) if verb != "PUT": return _response @@ -28,21 +30,21 @@ def rest_recreate_widgets(self, verb, data, parameters): self.logging("Log", "rest_recreate_widgets - Data: %s" % data) if "IEEE" not in data and "NWKID" not in data: - Domoticz.Error("rest_recreate_widgets - unexpected parameter %s " % parameters) + domoticz_error_api("rest_recreate_widgets - unexpected parameter %s " % parameters) _response["Data"] = {"unexpected parameter %s " % parameters} return _response if "IEEE" in data: key = data["IEEE"] if key not in self.IEEE2NWK: - Domoticz.Error("rest_recreate_widgets - Unknown device %s " % key) + domoticz_error_api("rest_recreate_widgets - Unknown device %s " % key) return _response nwkid = self.IEEE2NWK[key] _response["Data"] = {"IEEE %s set to Provisioning Requested at %s" % (key, int(time()))} else: nwkid = data["NWKID"] if nwkid not in self.ListOfDevices: - Domoticz.Error("rest_recreate_widgets - Unknown device %s " % nwkid) + domoticz_error_api("rest_recreate_widgets - Unknown device %s " % nwkid) return _response _response["Data"] = {"NwkId %s set to Provisioning Requested at %s" % (nwkid, int(time()))} diff --git a/Classes/WebServer/sendresponse.py b/Classes/WebServer/sendresponse.py index 46c9ba7bd..5d3079375 100644 --- a/Classes/WebServer/sendresponse.py +++ b/Classes/WebServer/sendresponse.py @@ -4,17 +4,8 @@ # Author: zaraki673 & pipiche38 # -import Domoticz - -try: - import zlib -except Exception as Err: - Domoticz.Error("zlib import error: '" + str(Err) + "'") -try: - import gzip -except Exception as Err: - Domoticz.Error("gzip import error: '" + str(Err) + "'") - +import zlib +import gzip from Classes.WebServer.tools import MAX_KB_TO_SEND, DumpHTTPResponseToLog @@ -22,35 +13,31 @@ def sendResponse(self, Connection, Response, AcceptEncoding=None): if "Data" not in Response: - DumpHTTPResponseToLog(Response) + #DumpHTTPResponseToLog(Response) Connection.Send(Response) if not self.pluginconf.pluginConf["enableKeepalive"]: Connection.Disconnect() return if Response["Data"] is None: - DumpHTTPResponseToLog(Response) + #DumpHTTPResponseToLog(Response) Connection.Send(Response) if not self.pluginconf.pluginConf["enableKeepalive"]: Connection.Disconnect() return - self.logging("Debug", "Sending Response to : %s" % (Connection.Name)) + #self.logging("Debug", "Sending Response to : %s" % (Connection.Name)) # Compression allowgzip = self.pluginconf.pluginConf["enableGzip"] allowdeflate = self.pluginconf.pluginConf["enableDeflate"] if (allowgzip or allowdeflate) and "Data" in Response and AcceptEncoding: - self.logging( - "Debug", - "sendResponse - Accept-Encoding: %s, Chunk: %s, Deflate: %s , Gzip: %s" - % (AcceptEncoding, self.pluginconf.pluginConf["enableChunk"], allowdeflate, allowgzip), - ) + #self.logging( "Debug", "sendResponse - Accept-Encoding: %s, Chunk: %s, Deflate: %s , Gzip: %s" % (AcceptEncoding, self.pluginconf.pluginConf["enableChunk"], allowdeflate, allowgzip), ) if len(Response["Data"]) > MAX_KB_TO_SEND: orig_size = len(Response["Data"]) if allowdeflate and AcceptEncoding.find("deflate") != -1: - self.logging("Debug", "Compressing - deflate") + #self.logging("Debug", "Compressing - deflate") zlib_compress = zlib.compressobj(9, zlib.DEFLATED, -zlib.MAX_WBITS, zlib.DEF_MEM_LEVEL, 2) deflated = zlib_compress.compress(Response["Data"]) deflated += zlib_compress.flush() @@ -58,15 +45,11 @@ def sendResponse(self, Connection, Response, AcceptEncoding=None): Response["Data"] = deflated elif allowgzip and AcceptEncoding.find("gzip") != -1: - self.logging("Debug", "Compressing - gzip") + #self.logging("Debug", "Compressing - gzip") Response["Data"] = gzip.compress(Response["Data"]) Response["Headers"]["Content-Encoding"] = "gzip" - self.logging( - "Debug", - "Compression from %s to %s (%s %%)" - % (orig_size, len(Response["Data"]), int(100 - (len(Response["Data"]) / orig_size) * 100)), - ) + #self.logging( "Debug", "Compression from %s to %s (%s %%)" % (orig_size, len(Response["Data"]), int(100 - (len(Response["Data"]) / orig_size) * 100)), ) # Chunking, Follow the Domoticz Python Plugin Framework @@ -78,10 +61,10 @@ def sendResponse(self, Connection, Response, AcceptEncoding=None): HTTPchunk["Headers"] = {} HTTPchunk["Headers"] = dict(Response["Headers"]) HTTPchunk["Data"] = Response["Data"][0:MAX_KB_TO_SEND] - self.logging("Debug", "Sending: %s out of %s" % (idx, len((Response["Data"])))) + #self.logging("Debug", "Sending: %s out of %s" % (idx, len((Response["Data"])))) # Firs Chunk - DumpHTTPResponseToLog(HTTPchunk) + #DumpHTTPResponseToLog(HTTPchunk) Connection.Send(HTTPchunk) idx = MAX_KB_TO_SEND @@ -97,7 +80,7 @@ def sendResponse(self, Connection, Response, AcceptEncoding=None): tosend["Data"] = Response["Data"][idx:] idx = -1 - self.logging("Debug", "Sending Chunk: %s out of %s" % (idx, len((Response["Data"])))) + #self.logging("Debug", "Sending Chunk: %s out of %s" % (idx, len((Response["Data"])))) Connection.Send(tosend) # Closing Chunk @@ -108,7 +91,7 @@ def sendResponse(self, Connection, Response, AcceptEncoding=None): Connection.Disconnect() else: # Response['Headers']['Content-Length'] = len( Response['Data'] ) - DumpHTTPResponseToLog(Response) + #DumpHTTPResponseToLog(Response) Connection.Send(Response) if not self.pluginconf.pluginConf["enableKeepalive"]: Connection.Disconnect() diff --git a/Classes/WebServer/tools.py b/Classes/WebServer/tools.py index 7ffd18d4b..c7a8d4f3d 100644 --- a/Classes/WebServer/tools.py +++ b/Classes/WebServer/tools.py @@ -3,7 +3,10 @@ # # Author: zaraki673 & pipiche38 # -import Domoticz + +from Modules.domoticzAbstractLayer import (domoticz_error_api, + domoticz_log_api, + domoticz_status_api) MAX_KB_TO_SEND = 8 * 1024 # Chunk size DEBUG_HTTP = False @@ -19,14 +22,14 @@ def DumpHTTPResponseToLog(httpDict): if not DEBUG_HTTP: return if isinstance(httpDict, dict): - Domoticz.Log("HTTP Details (" + str(len(httpDict)) + "):") + domoticz_log_api("HTTP Details (" + str(len(httpDict)) + "):") for x in httpDict: if isinstance(httpDict[x], dict): - Domoticz.Log("--->'" + x + " (" + str(len(httpDict[x])) + "):") + domoticz_log_api("--->'" + x + " (" + str(len(httpDict[x])) + "):") for y in httpDict[x]: - Domoticz.Log("------->'" + y + "':'" + str(httpDict[x][y]) + "'") + domoticz_log_api("------->'" + y + "':'" + str(httpDict[x][y]) + "'") else: if x == "Data": - Domoticz.Log("--->'%s':'%.40s'" % (x, str(httpDict[x]))) + domoticz_log_api("--->'%s':'%.40s'" % (x, str(httpDict[x]))) else: - Domoticz.Log("--->'" + x + "':'" + str(httpDict[x]) + "'") + domoticz_log_api("--->'" + x + "':'" + str(httpDict[x]) + "'") diff --git a/Classes/ZigateTransport/Transport.py b/Classes/ZigateTransport/Transport.py index de8363d23..a5ab94a5a 100644 --- a/Classes/ZigateTransport/Transport.py +++ b/Classes/ZigateTransport/Transport.py @@ -11,7 +11,6 @@ from queue import PriorityQueue, Queue from threading import Semaphore -import Domoticz from Classes.ZigateTransport.forwarderThread import start_forwarder_thread from Classes.ZigateTransport.readDecoder import decode_and_split_message from Classes.ZigateTransport.readerThread import (open_zigate_and_start_reader, @@ -22,6 +21,7 @@ initialize_command_protocol_parameters, stop_waiting_on_queues, waiting_for_end_thread) from Classes.ZigateTransport.writerThread import start_writer_thread +from Modules.domoticzAbstractLayer import domoticz_connection from Modules.zigateConsts import MAX_SIMULTANEOUS_ZIGATE_COMMANDS @@ -131,7 +131,7 @@ def __init__( self._wifiPort = wifiPort else: - Domoticz.Error("Unknown Transport Mode: >%s<" % transport) + self.logging_transport("Error", "Unknown Transport Mode: >%s<" % transport) self._transp = "None" # for Statistics usage @@ -352,9 +352,7 @@ def open_connection(self): if self.pluginconf.pluginConf["byPassDzConnection"] and not self.force_dz_communication: result = open_zigate_and_start_reader(self, "serial") else: - self._connection = Domoticz.Connection( - Name="ZiGate", Transport="Serial", Protocol="None", Address=self._serialPort, Baud=115200 - ) + self._connection = domoticz_connection( name="ZiGate", transport="Serial", protocol="None", address=self._serialPort, port=None, baud=115200) result = self._connection if result: start_writer_thread(self) @@ -365,8 +363,8 @@ def open_connection(self): if self.pluginconf.pluginConf["byPassDzConnection"] and not self.force_dz_communication: result = open_zigate_and_start_reader(self, "tcpip") else: - self._connection = Domoticz.Connection( - Name="Zigate", Transport="TCP/IP", Protocol="None ", Address=self._wifiAddress, Port=self._wifiPort + self._connection = domoticz_connection( + name="Zigate", transport="TCP/IP", Protocol="None ", address=self._wifiAddress, port=self._wifiPort ) result = self._connection if result: diff --git a/Classes/ZigateTransport/readerThread.py b/Classes/ZigateTransport/readerThread.py index 5acec50cb..7e0409638 100644 --- a/Classes/ZigateTransport/readerThread.py +++ b/Classes/ZigateTransport/readerThread.py @@ -7,7 +7,6 @@ import socket from threading import Thread -import Domoticz import serial from Classes.ZigateTransport.readSerial import (open_serial, serial_read_write_from_zigate, @@ -74,4 +73,4 @@ def shutdown_reader_thread(self): self.logging_reader("Log", "close connection") if self._connection: self._connection.close() - Domoticz.Log("Connection closed") + self.logging_reader("Log", "Connection closed") diff --git a/Modules/casaia.py b/Modules/casaia.py index 297fee1af..b218552b0 100644 --- a/Modules/casaia.py +++ b/Modules/casaia.py @@ -428,16 +428,12 @@ def casaia_ac201_fan_control(self, NwkId, Level): if Level == 10: casaia_system_mode(self, NwkId, "FanAuto") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) elif Level == 20: casaia_system_mode(self, NwkId, "FanLow") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) elif Level == 30: casaia_system_mode(self, NwkId, "FanMedium") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) elif Level == 40: casaia_system_mode(self, NwkId, "FanHigh") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) # 0xFFAC Client to Server diff --git a/Modules/command.py b/Modules/command.py index 25f631f6c..7b6a6daa0 100644 --- a/Modules/command.py +++ b/Modules/command.py @@ -16,8 +16,13 @@ from Modules.casaia import (casaia_ac201_fan_control, casaia_setpoint, casaia_swing_OnOff, casaia_system_mode) from Modules.cmdsDoorLock import cluster0101_lock_door, cluster0101_unlock_door +from Modules.danfoss import danfoss_on_off +from Modules.domoticzAbstractLayer import ( + domo_read_Name, domo_read_nValue_sValue, domo_read_SwitchType_SubType_Type, + is_dimmable_blind, is_dimmable_light, is_dimmable_switch, + retreive_widgetid_from_deviceId_unit) from Modules.domoTools import (RetreiveSignalLvlBattery, - RetreiveWidgetTypeList, UpdateDevice_v2) + RetreiveWidgetTypeList, update_domoticz_widget) from Modules.fanControl import change_fan_mode from Modules.ikeaTradfri import ikea_air_purifier_mode from Modules.legrand_netatmo import cable_connected_mode, legrand_fc40 @@ -30,7 +35,7 @@ schneider_temp_Setcurrent) from Modules.switchSelectorWidgets import SWITCH_SELECTORS from Modules.thermostats import thermostat_Mode, thermostat_Setpoint -from Modules.tools import get_deviceconf_parameter_value +from Modules.tools import get_deviceconf_parameter_value, str_round from Modules.tuya import (tuya_curtain_lvl, tuya_curtain_openclose, tuya_dimmer_dimmer, tuya_dimmer_onoff, tuya_energy_onoff, tuya_garage_door_action, @@ -42,7 +47,6 @@ tuya_lidl_set_mode, tuya_trv_brt100_set_mode, tuya_trv_mode, tuya_trv_onoff, tuya_trv_switch_onoff) -from Modules.danfoss import danfoss_on_off from Modules.tuyaTS0601 import ts0601_actuator, ts0601_extract_data_point_infos from Modules.zigateConsts import (THERMOSTAT_LEVEL_2_MODE, THERMOSTAT_LEVEL_3_MODE, ZIGATE_EP) @@ -50,10 +54,7 @@ # Matrix between Domoticz Type, Subtype, SwitchType and Plugin DeviceType # Type, Subtype, Switchtype DEVICE_SWITCH_MATRIX = { - ( - 242, - 1, - ): ("ThermoSetpoint", "TempSetCurrent"), + ( 242, 1, ): ("ThermoSetpoint", "TempSetCurrent"), (241, 2, 7): ("ColorControlRGB",), (241, 4, 7): ("ColorControlRGBWW",), (241, 7, 7): ("ColorControlFull",), @@ -134,1261 +135,1202 @@ ] -def mgtCommand(self, Devices, Unit, Command, Level, Color): - - if Devices[Unit].DeviceID not in self.IEEE2NWK: - self.log.logging("Command", "Error", "mgtCommand - something strange the Device %s DeviceID: %s Unknown" % ( - Devices[Unit].Name, Devices[Unit].DeviceID) ) - return - - NWKID = self.IEEE2NWK[Devices[Unit].DeviceID] - self.log.logging( - "Command", - "Debug", - "mgtCommand (%s) Devices[%s].Name: %s Command: %s Level: %s Color: %s" - % (NWKID, Unit, Devices[Unit].Name, Command, Level, Color), - NWKID, - ) - deviceType = Devices[Unit].Type - deviceSubType = Devices[Unit].SubType - deviceSwitchType = Devices[Unit].SwitchType +def mgtCommand(self, Devices, DeviceID, Unit, Nwkid, Command, Level, Color): + + widget_name = domo_read_Name(self, Devices, DeviceID, Unit) - if (deviceType, deviceSubType, deviceSwitchType) in DEVICE_SWITCH_MATRIX: - domoticzType = DEVICE_SWITCH_MATRIX[(deviceType, deviceSubType, deviceSwitchType)] - self.log.logging("Command", "Debug", "---------> DeviceType: %s" % str(domoticzType), NWKID) + self.log.logging("Command", "Debug", f"mgtCommand ({Nwkid}) {DeviceID} {Unit} Name: {widget_name} Command: {Command} Level: {Level} Color: {Color}", Nwkid) - SignalLevel, BatteryLevel = RetreiveSignalLvlBattery(self, NWKID) + deviceSwitchType, deviceSubType, deviceType = domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit) - # Now we have to identify the Endpoint, DeviceType to be use for that command - # inputs are : Device.ID - # For each Ep of this Device we should find an entry ClusterType where is store Device.ID and DeviceType + # domoticzType = DEVICE_SWITCH_MATRIX.get((deviceType, deviceSubType, deviceSwitchType)) + # if domoticzType is not None: + # self.log.logging("Command", "Debug", f"---------> DeviceType: {domoticzType}", Nwkid) - ClusterTypeList = RetreiveWidgetTypeList(self, Devices, NWKID, Unit) + SignalLevel, BatteryLevel = RetreiveSignalLvlBattery(self, Nwkid) - if len(ClusterTypeList) == 0: # No match with ClusterType - # Should not happen. We didn't find any Widget references in the Device ClusterType! - self.log.logging("Command", "Error", "mgtCommand - no ClusterType found ! " + str(self.ListOfDevices[NWKID])) + ClusterTypeList = RetreiveWidgetTypeList(self, Devices, DeviceID, Nwkid, Unit) + if not ClusterTypeList: + self.log.logging("Command", "Error", f"mgtCommand - no ClusterType found ! {self.ListOfDevices[Nwkid]}") return - self.log.logging( - "Command", "Debug", "--------->1 ClusterType founds: %s for Unit: %s" % (ClusterTypeList, Unit), NWKID - ) + self.log.logging("Command", "Debug", f"--------->1 ClusterType founds: {ClusterTypeList} for Unit: {Unit}", Nwkid) - actionable = False if len(ClusterTypeList) != 1: - self.log.logging("Command", "Error", "mgtCommand - Not Expected. ClusterType: %s for NwkId: %s" % (ClusterTypeList, NWKID)) + self.log.logging("Command", "Error", f"mgtCommand - Not Expected. ClusterType: {ClusterTypeList} for Nwkid: {Nwkid}") return if ClusterTypeList[0][0] == "00": EPout = "01" - # One element found, we have Endpoint and DevicetypeÃ’ EPout, DeviceTypeWidgetId, DeviceType = ClusterTypeList[0] - self.log.logging( - "Command", - "Debug", - "--------->2 EPOut: %s DeviceType: %s WidgetID: %s" % (EPout, DeviceType, DeviceTypeWidgetId), - NWKID, - ) + self.log.logging("Command", "Debug", f"--------->2 EPOut: {EPout} DeviceType: {DeviceType} WidgetID: {DeviceTypeWidgetId}", Nwkid) - if ( - NWKID in self.ListOfDevices - and "Health" in self.ListOfDevices[NWKID] - and self.ListOfDevices[NWKID]["Health"] == "Disabled" - ): - self.log.logging("Command", "Error", "You tried to action a disabled device: %s/%s" % (Devices[Unit].Name, NWKID), NWKID) + if Nwkid in self.ListOfDevices and self.ListOfDevices[Nwkid].get("Health") == "Disabled": + self.log.logging("Command", "Error", f"You tried to action a disabled device: {widget_name}/{Nwkid}", Nwkid) return - - # Sanity Check forceUpdateDev = False - if DeviceType in SWITCH_SELECTORS and "ForceUpdate" in SWITCH_SELECTORS[DeviceType]: + if DeviceType in SWITCH_SELECTORS and SWITCH_SELECTORS[DeviceType].get("ForceUpdate"): forceUpdateDev = SWITCH_SELECTORS[DeviceType]["ForceUpdate"] - self.log.logging("Command", "Debug", "--------->3 forceUpdateDev: %s" % forceUpdateDev, NWKID) + self.log.logging("Command", "Debug", f"--------->3 forceUpdateDev: {forceUpdateDev}", Nwkid) - if DeviceType not in ACTIONATORS and not self.pluginconf.pluginConf["forcePassiveWidget"]: - self.log.logging( - "Command", - "Log", - "mgtCommand - You are trying to action not allowed for Device: %s Type: %s and DeviceType: %s Command: %s Level:%s" - % (Devices[Unit].Name, ClusterTypeList, DeviceType, Command, Level), - NWKID, - ) + if DeviceType not in ACTIONATORS and not self.pluginconf.pluginConf.get("forcePassiveWidget"): + self.log.logging("Command", "Log", f"mgtCommand - You are trying to action not allowed for Device: {widget_name} Type: {ClusterTypeList} and DeviceType: {DeviceType} Command: {Command} Level:{Level}", Nwkid) return - self.log.logging("Command", "Debug", "--------->4 Ready to action", NWKID) + + self.log.logging("Command", "Debug", "---------> Ready to action", Nwkid) - profalux = False - if "Manufacturer" in self.ListOfDevices[NWKID]: - profalux = self.ListOfDevices[NWKID]["Manufacturer"] == "1110" and self.ListOfDevices[NWKID]["ZDeviceID"] in ( - "0200", - "0202", - ) - self.log.logging("Command", "Debug", "--------->5 profalux: %s" % profalux, NWKID) - _model_name = self.ListOfDevices[NWKID]["Model"] if "Model" in self.ListOfDevices[NWKID] else "" - self.log.logging("Command", "Debug", "--------->6 Model Name: %s" % _model_name, NWKID) + profalux = self.ListOfDevices[Nwkid].get("Manufacturer") == "1110" and self.ListOfDevices[Nwkid].get("ZDeviceID") in ("0200", "0202") + self.log.logging("Command", "Debug", f"---------> profalux: {profalux}", Nwkid) - # If Health is Not Reachable, let's give it a chance to be updated - if "Health" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Health"] == "Not Reachable": - self.ListOfDevices[NWKID]["Health"] = "" - self.log.logging("Command", "Debug", "--------->7 Health: %s" % self.ListOfDevices[NWKID]["Health"], NWKID) + _model_name = self.ListOfDevices[Nwkid].get("Model", "") + self.log.logging("Command", "Debug", f"---------> Model Name: {_model_name}", Nwkid) - if Command == "Stop": # Manage the Stop command. For known seen only on BSO and Windowcoering - self.log.logging( - "Command", - "Debug", - "mgtCommand : Stop for Device: %s EPout: %s Unit: %s DeviceType: %s" % (NWKID, EPout, Unit, DeviceType), - NWKID, - ) + health_value = self.ListOfDevices[Nwkid].get("Health") + if health_value == "Not Reachable": + self.ListOfDevices[Nwkid]["Health"] = "" + self.log.logging("Command", "Debug", f"---------> Health: {health_value}", Nwkid) - if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": - tuya_curtain_openclose(self, NWKID, EPout, "01") + if Command == "Stop": + handle_command_stop(self, Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) - elif profalux: - # Profalux offer a Manufacturer command to make Stop on Cluster 0x0008 - profalux_stop(self, NWKID) + elif Command in ("Off", "Close"): + handle_command_off(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) - elif _model_name in ( "TS0601-_TZE200_nklqjk62", ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Garage Door %s" % NWKID) - tuya_garage_door_action( self, NWKID, "02") - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif Command in ("On", "Open"): + handle_command_on(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) - elif DeviceType in ("WindowCovering", "VenetianInverted", "Venetian", "Vanne", "VanneInverted", "Curtain", "CurtainInverted"): - if _model_name in ("PR412", "CPR412", "CPR412-E"): - profalux_stop(self, NWKID) - else: - # https://github.com/fairecasoimeme/ZiGate/issues/125#issuecomment-456085847 - actuator_stop( self, NWKID, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + NWKID + ZIGATE_EP + EPout + "02") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return + elif Command == "Set Level": + handle_command_setlevel(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) + + elif Command == "Set Color": + handle_command_setcolor(self, Devices, DeviceID, Unit, Level, Color, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) + + +def get_previous_switch_level(self, Nwkid, Ep): + + if Nwkid not in self.ListOfDevices: + return None + if Ep not in self.ListOfDevices[ Nwkid ][ 'Ep']: + return None + if "0008" not in self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep]: + return None + if "0000" not in self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]: + return None + if self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] in ( '', {} ): + return None + switch_level = self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] + if switch_level is None: + return None + if self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] in ( '', {} ): + return None + if isinstance( self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"], str): + return int( self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"], 16) + if isinstance( self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"], int): + return self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] + + self.log.logging( "Command", "Error", "get_previous_switch_level : level is bizarre >%s<" % ( + self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"]), Nwkid, ) + return None + + +def request_read_device_status(self, Nwkid): + # Purpose is to reset the Heartbeat in order to trigger a readattribute + + self.ListOfDevices[Nwkid]["Heartbeat"] = "-1" + + +def handle_command_stop(self,Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): + self.log.logging( "Command", "Debug", "mgtCommand : Stop for Device: %s EPout: %s Unit: %s DeviceType: %s" % (Nwkid, EPout, Unit, DeviceType), Nwkid, ) + + if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": + tuya_curtain_openclose(self, Nwkid, EPout, "01") + + elif profalux: + # Profalux offer a Manufacturer command to make Stop on Cluster 0x0008 + profalux_stop(self, Nwkid) - UpdateDevice_v2(self, Devices, Unit, 17, "0", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif _model_name in ( "TS0601-_TZE200_nklqjk62", ): + self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Garage Door %s" % Nwkid) + tuya_garage_door_action( self, Nwkid, "02") + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + + elif DeviceType in ("WindowCovering", "VenetianInverted", "Venetian", "Vanne", "VanneInverted", "Curtain", "CurtainInverted"): + if _model_name in ("PR412", "CPR412", "CPR412-E"): + profalux_stop(self, Nwkid) + else: + # https://github.com/fairecasoimeme/ZiGate/issues/125#issuecomment-456085847 + actuator_stop( self, Nwkid, EPout, "WindowCovering") + #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "02") + + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute + return + + update_domoticz_widget(self, Devices, DeviceID, Unit, 17, "0", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + else: + actuator_stop( self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0083", "02" + Nwkid + ZIGATE_EP + EPout + "02") + + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + + +def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): + # Let's force a refresh of Attribute in the next Heartbeat + if DeviceType not in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute + request_read_device_status(self, Nwkid) + + self.log.logging( + "Command", + "Debug", + "mgtCommand : Off for Device: %s EPout: %s Unit: %s DeviceType: %s modelName: %s" + % (Nwkid, EPout, Unit, DeviceType, _model_name), + Nwkid, + ) + + if _model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): + self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Switches Gang/EPout: %s" % EPout) + tuya_switch_command(self, Nwkid, "00", gang=int(EPout, 16)) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if _model_name in ( "TS0601-_TZE200_nklqjk62", ): + self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Garage Door %s" % Nwkid) + tuya_garage_door_action( self, Nwkid, "00") + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if _model_name == "TS0601-Parkside-Watering-Timer": + self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time") + if ( + "Param" in self.ListOfDevices[Nwkid] + and "TimerMode" in self.ListOfDevices[Nwkid]["Param"] + and self.ListOfDevices[Nwkid]["Param"]["TimerMode"] + ): + self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - Timer Mode") + tuya_watertimer_command(self, Nwkid, "00", gang=int(EPout, 16)) else: - actuator_stop( self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0083", "02" + NWKID + ZIGATE_EP + EPout + "02") + self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - OnOff Mode") + actuator_off(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "00") + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj": + tuya_siren2_trigger(self, Nwkid, '00') + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "SwitchAlarm" and _model_name == "SMSZB-120" and self.iaszonemgt: + self.iaszonemgt.iaswd_develco_warning(Nwkid, EPout, "00") + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "SwitchAlarm" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TuyaAlarmSwitch", 0) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "TamperSwitch" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TuyaTamperSwitch", 0) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if _model_name in ("TS0601-Energy",): + tuya_energy_onoff(self, Nwkid, "00") + # update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off",BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "LivoloSWL": + livolo_OnOff(self, Nwkid, EPout, "Left", "Off") + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + request_read_device_status(self, Nwkid) + return + + if DeviceType == "LivoloSWR": + livolo_OnOff(self, Nwkid, EPout, "Right", "Off") + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - if Command in ( "Off", "Close",): # Manage the Off command. # Let's force a refresh of Attribute in the next Heartbeat - if DeviceType not in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - request_read_device_status(self, NWKID) + request_read_device_status(self, Nwkid) + return + + if DeviceType == "DoorLock": + # Widget Doorlock seems to work in the oposit + cluster0101_unlock_door(self, Nwkid) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Closed", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + request_read_device_status(self, Nwkid) + return + + if DeviceType in ("ThermoMode", "ACMode", "ThermoMode_3", "CAC221ACMode"): + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) self.log.logging( "Command", "Debug", - "mgtCommand : Off for Device: %s EPout: %s Unit: %s DeviceType: %s modelName: %s" - % (NWKID, EPout, Unit, DeviceType, _model_name), - NWKID, + " - Set Thermostat Mode to : %s / %s" % (Level, THERMOSTAT_LEVEL_2_MODE[Level]), + Nwkid, ) + thermostat_Mode(self, Nwkid, "Off") + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - if _model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Switches Gang/EPout: %s" % EPout) - tuya_switch_command(self, NWKID, "00", gang=int(EPout, 16)) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return + + if DeviceType == ("ThermoMode_2", ): + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) + if ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TRV7SystemMode", 0) return + + tuya_trv_mode(self, Nwkid, 0) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType in ("ThermoMode_4", "ThermoMode_5", "ThermoMode_6", "ThermoMode_7"): + self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) - if _model_name in ( "TS0601-_TZE200_nklqjk62", ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Garage Door %s" % NWKID) - tuya_garage_door_action( self, NWKID, "00") - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TRV6SystemMode", 0) return - if _model_name == "TS0601-Parkside-Watering-Timer": - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time") - if ( - "Param" in self.ListOfDevices[NWKID] - and "TimerMode" in self.ListOfDevices[NWKID]["Param"] - and self.ListOfDevices[NWKID]["Param"]["TimerMode"] - ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - Timer Mode") - tuya_watertimer_command(self, NWKID, "00", gang=int(EPout, 16)) - else: - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - OnOff Mode") - actuator_off(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "00") - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + if _model_name in ( "TS0601-_TZE200_dzuqwsyg", "TS0601-eTRV5"): + tuya_trv_onoff(self, Nwkid, 0x01) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return + + if DeviceType == "ThermoModeEHZBRTS": + self.log.logging("Command", "Debug", "MajDomoDevice EHZBRTS Schneider Thermostat Mode Off", Nwkid) + schneider_EHZBRTS_thermoMode(self, Nwkid, 0) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj": - tuya_siren2_trigger(self, NWKID, '00') - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + if DeviceType in ("ACMode_2", "FanControl"): + casaia_system_mode(self, Nwkid, "Off") + return - if DeviceType == "SwitchAlarm" and _model_name == "SMSZB-120" and self.iaszonemgt: - self.iaszonemgt.iaswd_develco_warning(NWKID, EPout, "00") - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): + ikea_air_purifier_mode( self, Nwkid, EPout, 0 ) - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TuyaAlarmSwitch", 0) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - if DeviceType == "TamperSwitch" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TuyaTamperSwitch", 0) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - if _model_name in ("TS0601-Energy",): - tuya_energy_onoff(self, NWKID, "00") - # UpdateDevice_v2(self, Devices, Unit, 0, "Off",BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + if ( DeviceType == "ACSwing" and "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "AC201A" ): + casaia_swing_OnOff(self, Nwkid, "00") + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + return - if DeviceType == "LivoloSWL": - livolo_OnOff(self, NWKID, EPout, "Left", "Off") - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + if DeviceType == "LvlControl" and _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): + tuya_dimmer_onoff(self, Nwkid, EPout, "00") + _, cur_sValue = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, cur_sValue, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + return - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": + tuya_curtain_openclose(self, Nwkid, "02") - if DeviceType == "LivoloSWR": - livolo_OnOff(self, NWKID, EPout, "Right", "Off") - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif DeviceType == "BSO-Volet" and profalux: + profalux_MoveToLiftAndTilt(self, Nwkid, level=1) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + elif DeviceType == "TuyaSiren": + tuya_siren_alarm(self, Nwkid, 0x00) - if DeviceType == "DoorLock": - # Widget Doorlock seems to work in the oposit - cluster0101_unlock_door(self, NWKID) - UpdateDevice_v2(self, Devices, Unit, 0, "Closed", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - request_read_device_status(self, NWKID) - return + elif DeviceType == "TuyaSirenHumi": + tuya_siren_humi_alarm(self, Nwkid, 0x00) - if DeviceType in ("ThermoMode", "ACMode", "ThermoMode_3", "CAC221ACMode"): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) + elif DeviceType == "TuyaSirenTemp": + tuya_siren_temp_alarm(self, Nwkid, 0x00) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, NWKID) - self.log.logging( - "Command", - "Debug", - " - Set Thermostat Mode to : %s / %s" % (Level, THERMOSTAT_LEVEL_2_MODE[Level]), - NWKID, - ) - thermostat_Mode(self, NWKID, "Off") - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) + elif DeviceType == "WindowCovering": + actuator_off(self, Nwkid, EPout, "WindowCovering") + #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "01") # Blind inverted (On, for Close) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): + actuator_on(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") + else: + actuator_on(self, Nwkid, EPout, "WindowCovering") + #sendZigateCmd( self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "01") # Venetian Inverted/Blind (On, for Close) + + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute return - if DeviceType == ("ThermoMode_2", ): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, NWKID) - if ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TRV7SystemMode", 0) - return - tuya_trv_mode(self, NWKID, 0) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - if DeviceType in ("ThermoMode_4", "ThermoMode_5", "ThermoMode_6", "ThermoMode_7"): - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( - NWKID, EPout, Unit, DeviceType, Level), NWKID, ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, NWKID) + elif DeviceType in ( "Venetian", "Vanne", "Curtain"): + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "PR412", "CPR412", "CPR412-E"): + actuator_off(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "00") + elif ( + DeviceType in ("Vanne", "Curtain",) + or "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "TS130F",) + ): + actuator_off(self, Nwkid, EPout, "WindowCovering") - if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TRV6SystemMode", 0) - return - - if _model_name in ( "TS0601-_TZE200_dzuqwsyg", "TS0601-eTRV5"): - tuya_trv_onoff(self, NWKID, 0x01) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - if DeviceType == "ThermoModeEHZBRTS": - self.log.logging("Command", "Debug", "MajDomoDevice EHZBRTS Schneider Thermostat Mode Off", NWKID) - schneider_EHZBRTS_thermoMode(self, NWKID, 0) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute return - if DeviceType in ("ACMode_2", "FanControl"): - casaia_system_mode(self, NWKID, "Off") - return + else: + actuator_on(self, Nwkid, EPout, "WindowCovering") + #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "00") # Venetian /Blind (Off, for Close) - if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): - ikea_air_purifier_mode( self, NWKID, EPout, 0 ) + elif DeviceType == "AlarmWD": + self.iaszonemgt.alarm_off(Nwkid, EPout) - if ( DeviceType == "ACSwing" and "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] == "AC201A" ): - casaia_swing_OnOff(self, NWKID, "00") - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) - return + elif DeviceType == "HeatingSwitch": + thermostat_Mode(self, Nwkid, "Off") - if DeviceType == "LvlControl" and _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): - tuya_dimmer_onoff(self, NWKID, EPout, "00") - UpdateDevice_v2( self, Devices, Unit, 0, Devices[Unit].sValue, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - return + elif DeviceType == "ThermoOnOff": + self.log.logging("Command", "Debug", "ThermoOnOff - requested Off", Nwkid) + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("eTRV0100"): + danfoss_on_off(self, Nwkid, 0x00) + else: + tuya_trv_onoff(self, Nwkid, 0x00) + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": - tuya_curtain_openclose(self, NWKID, "02") + elif DeviceType == "ShutterCalibration": + self.log.logging("Command", "Debug", "mgtCommand : Disable Window Cover Calibration") + tuya_window_cover_calibration(self, Nwkid, "01") - elif DeviceType == "BSO-Volet" and profalux: - profalux_MoveToLiftAndTilt(self, NWKID, level=1) + elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "switch", 0) - elif DeviceType == "TuyaSiren": - tuya_siren_alarm(self, NWKID, 0x00) + else: + # Remaining Slider widget + if profalux: # Profalux are define as LvlControl but should be managed as Blind Inverted + actuator_setlevel(self, Nwkid, EPout, 0, "Light", "0000", withOnOff=False) + #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + "01" + "%02X" % 0 + "0000") + else: + if ( + "Param" in self.ListOfDevices[Nwkid] + and "fadingOff" in self.ListOfDevices[Nwkid]["Param"] + and self.ListOfDevices[Nwkid]["Param"]["fadingOff"] + ): + effect = "0000" + if self.ListOfDevices[Nwkid]["Param"]["fadingOff"] == 1: + effect = "0002" # 50% dim down in 0.8 seconds then fade to off in 12 seconds + elif self.ListOfDevices[Nwkid]["Param"]["fadingOff"] == 2: + effect = "0100" # 20% dim up in 0.5s then fade to off in 1 second + elif self.ListOfDevices[Nwkid]["Param"]["fadingOff"] == 255: + effect = "0001" # No fade + + self.log.logging("Command", "Debug", "mgtCommand : %s fading Off effect: %s" % (Nwkid, effect)) + # Increase brightness by 20% (if possible) in 0.5 seconds then fade to off in 1 second (default) + actuator_off(self, Nwkid, EPout, "Light", effect) + #sendZigateCmd(self, "0094", "02" + Nwkid + ZIGATE_EP + EPout + effect) + else: + actuator_off(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "00") - elif DeviceType == "TuyaSirenHumi": - tuya_siren_humi_alarm(self, NWKID, 0x00) + # Making a trick for the GLEDOPTO LED STRIP. + if _model_name == "GLEDOPTO" and EPout == "0a": + # When switching off the WW channel, make sure to switch Off the RGB channel + actuator_off(self, Nwkid, "0b", "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + "0b" + "00") - elif DeviceType == "TuyaSirenTemp": - tuya_siren_temp_alarm(self, NWKID, 0x00) + # Update Devices + if is_dimmable_blind(self, Devices, DeviceID, Unit): + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "0", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + else: + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif DeviceType == "WindowCovering": - actuator_off(self, NWKID, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + NWKID + ZIGATE_EP + EPout + "01") # Blind inverted (On, for Close) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) - elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ("PR412", "CPR412", "CPR412-E"): - actuator_on(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "01") - else: - actuator_on(self, NWKID, EPout, "WindowCovering") - #sendZigateCmd( self, "00FA", "02" + NWKID + ZIGATE_EP + EPout + "01") # Venetian Inverted/Blind (On, for Close) - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return - - - elif DeviceType in ( "Venetian", "Vanne", "Curtain"): - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ( "PR412", "CPR412", "CPR412-E"): - actuator_off(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "00") - elif ( - DeviceType in ("Vanne", "Curtain",) - or "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ( "TS130F",) - ): - actuator_off(self, NWKID, EPout, "WindowCovering") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return - else: - actuator_on(self, NWKID, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + NWKID + ZIGATE_EP + EPout + "00") # Venetian /Blind (Off, for Close) +def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + self.log.logging( + "Command", + "Debug", + "mgtCommand : On for Device: %s EPout: %s Unit: %s DeviceType: %s ModelName: %s" + % (Nwkid, EPout, Unit, DeviceType, _model_name), + Nwkid, + ) - elif DeviceType == "AlarmWD": - self.iaszonemgt.alarm_off(NWKID, EPout) + if _model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): + self.log.logging("Command", "Debug", "mgtCommand : On for Tuya Switches Gang/EPout: %s" % EPout) - elif DeviceType == "HeatingSwitch": - thermostat_Mode(self, NWKID, "Off") + tuya_switch_command(self, Nwkid, "01", gang=int(EPout, 16)) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return - elif DeviceType == "ThermoOnOff": - self.log.logging("Command", "Debug", "ThermoOnOff - requested Off", NWKID) - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ("eTRV0100"): - danfoss_on_off(self, NWKID, 0x00) - else: - tuya_trv_onoff(self, NWKID, 0x00) - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj": + tuya_siren2_trigger(self, Nwkid, '01') + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "SwitchAlarm" and _model_name == "SMSZB-120" and self.iaszonemgt: + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + self.iaszonemgt.iaswd_develco_warning(Nwkid, EPout, "01") + return + + if DeviceType == "SwitchAlarm" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TuyaAlarmSwitch", 1) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return - elif DeviceType == "ShutterCalibration": - self.log.logging("Command", "Debug", "mgtCommand : Disable Window Cover Calibration") - tuya_window_cover_calibration(self, NWKID, "01") + if DeviceType == "TamperSwitch" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TuyaTamperSwitch", 1) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return - elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "switch", 0) + if _model_name in ("TS0601-_TZE200_nklqjk62", ): + self.log.logging("Command", "Debug", "mgtCommand : On for Tuya Garage Door %s" % Nwkid) + tuya_garage_door_action( self, Nwkid, "01") + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + if _model_name == "TS0601-Parkside-Watering-Timer": + self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time") + if ( + "Param" in self.ListOfDevices[Nwkid] + and "TimerMode" in self.ListOfDevices[Nwkid]["Param"] + and self.ListOfDevices[Nwkid]["Param"]["TimerMode"] + ): + self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - Timer Mode") + tuya_watertimer_command(self, Nwkid, "01", gang=int(EPout, 16)) else: - # Remaining Slider widget - if profalux: # Profalux are define as LvlControl but should be managed as Blind Inverted - actuator_setlevel(self, NWKID, EPout, 0, "Light", "0000", withOnOff=False) - #sendZigateCmd(self, "0081", "02" + NWKID + ZIGATE_EP + EPout + "01" + "%02X" % 0 + "0000") - else: - if ( - "Param" in self.ListOfDevices[NWKID] - and "fadingOff" in self.ListOfDevices[NWKID]["Param"] - and self.ListOfDevices[NWKID]["Param"]["fadingOff"] - ): - effect = "0000" - if self.ListOfDevices[NWKID]["Param"]["fadingOff"] == 1: - effect = "0002" # 50% dim down in 0.8 seconds then fade to off in 12 seconds - elif self.ListOfDevices[NWKID]["Param"]["fadingOff"] == 2: - effect = "0100" # 20% dim up in 0.5s then fade to off in 1 second - elif self.ListOfDevices[NWKID]["Param"]["fadingOff"] == 255: - effect = "0001" # No fade - - self.log.logging("Command", "Debug", "mgtCommand : %s fading Off effect: %s" % (NWKID, effect)) - # Increase brightness by 20% (if possible) in 0.5 seconds then fade to off in 1 second (default) - actuator_off(self, NWKID, EPout, "Light", effect) - #sendZigateCmd(self, "0094", "02" + NWKID + ZIGATE_EP + EPout + effect) - else: - actuator_off(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "00") - - # Making a trick for the GLEDOPTO LED STRIP. - if _model_name == "GLEDOPTO" and EPout == "0a": - # When switching off the WW channel, make sure to switch Off the RGB channel - actuator_off(self, NWKID, "0b", "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + "0b" + "00") - - # Update Devices - if Devices[Unit].SwitchType in (13, 14, 15, 16): - UpdateDevice_v2(self, Devices, Unit, 0, "0", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - else: - UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - OnOff Mode") + actuator_on(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") + + if _model_name in ("TS0601-Energy",): + tuya_energy_onoff(self, Nwkid, "01") + # update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On",BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): + ikea_air_purifier_mode( self, Nwkid, EPout, 1 ) + if DeviceType == "LivoloSWL": + livolo_OnOff(self, Nwkid, EPout, "Left", "On") + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + request_read_device_status(self, Nwkid) + return - if Command in ( "On", "Open", ): # Manage the On command. + if DeviceType == "LivoloSWR": + livolo_OnOff(self, Nwkid, EPout, "Right", "On") + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - self.log.logging( - "Command", - "Debug", - "mgtCommand : On for Device: %s EPout: %s Unit: %s DeviceType: %s ModelName: %s" - % (NWKID, EPout, Unit, DeviceType, _model_name), - NWKID, - ) + request_read_device_status(self, Nwkid) + return - if _model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya Switches Gang/EPout: %s" % EPout) + if DeviceType == "DoorLock": + cluster0101_lock_door(self, Nwkid) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "Open", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + self.ListOfDevices[Nwkid]["Heartbeat"] = 0 + return - tuya_switch_command(self, NWKID, "01", gang=int(EPout, 16)) - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + if DeviceType == "LvlControl" and _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): + tuya_dimmer_onoff(self, Nwkid, EPout, "01") + _, cur_sValue = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, cur_sValue, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj": - tuya_siren2_trigger(self, NWKID, '01') - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - if DeviceType == "SwitchAlarm" and _model_name == "SMSZB-120" and self.iaszonemgt: - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - self.iaszonemgt.iaswd_develco_warning(NWKID, EPout, "01") - return - - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TuyaAlarmSwitch", 1) - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": + tuya_curtain_openclose(self, Nwkid, "00") - if DeviceType == "TamperSwitch" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TuyaTamperSwitch", 1) - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - if _model_name in ("TS0601-_TZE200_nklqjk62", ): - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya Garage Door %s" % NWKID) - tuya_garage_door_action( self, NWKID, "01") - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + elif DeviceType == "BSO-Volet" and profalux: + # On translated into a Move to 254 + profalux_MoveToLiftAndTilt(self, Nwkid, level=255) - if _model_name == "TS0601-Parkside-Watering-Timer": - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time") - if ( - "Param" in self.ListOfDevices[NWKID] - and "TimerMode" in self.ListOfDevices[NWKID]["Param"] - and self.ListOfDevices[NWKID]["Param"]["TimerMode"] - ): - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - Timer Mode") - tuya_watertimer_command(self, NWKID, "01", gang=int(EPout, 16)) - else: - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - OnOff Mode") - actuator_on(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "01") + elif DeviceType == "WindowCovering": + # https://github.com/fairecasoimeme/ZiGate/issues/125#issuecomment-456085847 + actuator_on(self, Nwkid, EPout, "WindowCovering") + #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "00") # Blind inverted (Off, for Open) - if _model_name in ("TS0601-Energy",): - tuya_energy_onoff(self, NWKID, "01") - # UpdateDevice_v2(self, Devices, Unit, 1, "On",BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): + actuator_off(self, Nwkid, EPout, "Light") + else: + actuator_off(self, Nwkid, EPout, "WindowCovering") + + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute return - if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): - ikea_air_purifier_mode( self, NWKID, EPout, 1 ) + elif DeviceType in ("Venetian", "Vanne", "Curtain"): + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): + actuator_on(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") + + elif DeviceType in ( "Vanne", "Curtain",) or "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "TS130F",): + actuator_on(self, Nwkid, EPout, "WindowCovering") - if DeviceType == "LivoloSWL": - livolo_OnOff(self, NWKID, EPout, "Left", "On") - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + else: + actuator_off(self, Nwkid, EPout, "WindowCovering") + #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "01") # Venetian/Blind (On, for Open) + + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute return - if DeviceType == "LivoloSWR": - livolo_OnOff(self, NWKID, EPout, "Right", "On") - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + elif DeviceType == "HeatingSwitch": + thermostat_Mode(self, Nwkid, "Heat") - if DeviceType == "DoorLock": - cluster0101_lock_door(self, NWKID) - UpdateDevice_v2(self, Devices, Unit, 1, "Open", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - self.ListOfDevices[NWKID]["Heartbeat"] = 0 - return + elif DeviceType == "ThermoOnOff": + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("eTRV0100"): + danfoss_on_off(self, Nwkid, 0x01) + else: + tuya_trv_onoff(self, Nwkid, 0x01) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - if DeviceType == "LvlControl" and _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): - tuya_dimmer_onoff(self, NWKID, EPout, "01") - UpdateDevice_v2( self, Devices, Unit, 1, Devices[Unit].sValue, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + elif DeviceType == "ShutterCalibration": + self.log.logging("Command", "Debug", "mgtCommand : Enable Window Cover Calibration") + tuya_window_cover_calibration(self, Nwkid, "00") - if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": - tuya_curtain_openclose(self, NWKID, "00") + elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "switch", 1) - elif DeviceType == "BSO-Volet" and profalux: - # On translated into a Move to 254 - profalux_MoveToLiftAndTilt(self, NWKID, level=255) + else: + # Remaining Slider widget + if profalux: + actuator_setlevel(self, Nwkid, EPout, 255, "Light", "0000", withOnOff=False) + #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + "01" + "%02X" % 255 + "0000") + else: + actuator_on(self, Nwkid, EPout, "Light") + #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") + + if is_dimmable_blind(self, Devices, DeviceID, Unit): + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "100", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + else: + previous_level = get_previous_switch_level(self, Nwkid, EPout) + self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" % ( + previous_level), Nwkid, ) + + if previous_level is None: + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + + elif is_dimmable_light(self, Devices, DeviceID, Unit): + percentage_level = int(( (previous_level * 100 )/ 255)) + self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" %previous_level) + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, str(percentage_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + + else: + percentage_level = int(( (previous_level * 100 )/ 255)) + self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" %(previous_level,)) + update_domoticz_widget(self, Devices, DeviceID, Unit, 2, str(percentage_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + + # Let's force a refresh of Attribute in the next Heartbeat + self.log.logging( "Command", "Debug", "mgtCommand : request_read_device_status()") + request_read_device_status(self, Nwkid) + + +def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): + # Level is normally an integer but may be a floating point number if the Unit is linked to a thermostat device + # There is too, move max level, mode = 00/01 for 0%/100% + self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + + if DeviceType == "ThermoSetpoint": + self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + value = int(float(Level) * 100) + thermostat_Setpoint(self, Nwkid, value) + Level = round(float(Level), 2) + # Normalize SetPoint value with 2 digits + Level = str_round(float(Level), 2) # 2 decimals + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, str(Level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif DeviceType == "WindowCovering": - # https://github.com/fairecasoimeme/ZiGate/issues/125#issuecomment-456085847 - actuator_on(self, NWKID, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + NWKID + ZIGATE_EP + EPout + "00") # Blind inverted (Off, for Open) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ("PR412", "CPR412", "CPR412-E"): - actuator_off(self, NWKID, EPout, "Light") - else: - actuator_off(self, NWKID, EPout, "WindowCovering") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return - - elif DeviceType in ("Venetian", "Vanne", "Curtain"): - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ("PR412", "CPR412", "CPR412-E"): - actuator_on(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "01") - - elif DeviceType in ( "Vanne", "Curtain",) or "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ( "TS130F",): - actuator_on(self, NWKID, EPout, "WindowCovering") + if DeviceType == "TempSetCurrent": + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Temp for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + value = int(float(Level) * 100) + schneider_temp_Setcurrent(self, Nwkid, value) + Level = round(float(Level), 2) + # Normalize SetPoint value with 2 digits + Level = str_round(float(Level), 2) # 2 decimals + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, str(Level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - else: - actuator_off(self, NWKID, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + NWKID + ZIGATE_EP + EPout + "01") # Venetian/Blind (On, for Open) - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - elif DeviceType == "HeatingSwitch": - thermostat_Mode(self, NWKID, "Heat") + if DeviceType == "ThermoModeEHZBRTS": + self.log.logging("Command", "Debug", "MajDomoDevice EHZBRTS Schneider Thermostat Mode %s" % Level, Nwkid) + schneider_EHZBRTS_thermoMode(self, Nwkid, Level) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - elif DeviceType == "ThermoOnOff": - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] in ("eTRV0100"): - danfoss_on_off(self, NWKID, 0x01) - else: - tuya_trv_onoff(self, NWKID, 0x01) - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - elif DeviceType == "ShutterCalibration": - self.log.logging("Command", "Debug", "mgtCommand : Enable Window Cover Calibration") - tuya_window_cover_calibration(self, NWKID, "00") + if DeviceType == "HACTMODE": + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for HACT Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + if "Schneider Wiser" not in self.ListOfDevices[Nwkid]: + self.ListOfDevices[Nwkid]["Schneider Wiser"] = {} - elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "switch", 1) + if "HACT Mode" not in self.ListOfDevices[Nwkid]["Schneider Wiser"]: + self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT Mode"] = "" - else: - # Remaining Slider widget - if profalux: - actuator_setlevel(self, NWKID, EPout, 255, "Light", "0000", withOnOff=False) - #sendZigateCmd(self, "0081", "02" + NWKID + ZIGATE_EP + EPout + "01" + "%02X" % 255 + "0000") - else: - actuator_on(self, NWKID, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + NWKID + ZIGATE_EP + EPout + "01") + if Level == 10: # Conventional + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT Mode"] = "conventional" + schneider_hact_heater_type(self, Nwkid, "conventional") + + elif Level == 20: # fip + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT Mode"] = "FIP" + schneider_hact_heater_type(self, Nwkid, "fip") - if Devices[Unit].SwitchType in (13, 14, 15, 16): - UpdateDevice_v2(self, Devices, Unit, 1, "100", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) else: - previous_level = get_previous_switch_level(self, NWKID, EPout) - self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" % ( - previous_level), NWKID, ) - - if previous_level is None: - UpdateDevice_v2(self, Devices, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Devices[Unit].SubType in (1,2,4,6,7,8): - percentage_level = int(( (previous_level * 100 )/ 255)) - self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s and Subtype Color" %previous_level) - UpdateDevice_v2(self, Devices, Unit, 1, str(percentage_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - else: - percentage_level = int(( (previous_level * 100 )/ 255)) - self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s and Subtype %sr" %(previous_level, Devices[Unit].SubType)) - UpdateDevice_v2(self, Devices, Unit, 2, str(percentage_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - + self.log.logging("Command", "Error", "Unknown mode %s for HACTMODE for device %s" % (Level, Nwkid)) + # Let's force a refresh of Attribute in the next Heartbeat - self.log.logging( "Command", "Debug", "mgtCommand : request_read_device_status()") - request_read_device_status(self, NWKID) + request_read_device_status(self, Nwkid) + return - if Command == "Set Level": - # Level is normally an integer but may be a floating point number if the Unit is linked to a thermostat device - # There is too, move max level, mode = 00/01 for 0%/100% + if DeviceType == "LegranCableMode": self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, + "mgtCommand : Set Level for Legrand Cable Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, ) + cable_connected_mode(self, Nwkid, str(Level)) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + request_read_device_status(self, Nwkid) + return - if DeviceType == "ThermoSetpoint": - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (NWKID, EPout, Unit, DeviceType, Level), NWKID, ) - value = int(float(Level) * 100) - thermostat_Setpoint(self, NWKID, value) - Level = round(float(Level), 2) - # Normalize SetPoint value with 2 digits - Round = lambda x, n: eval('"%.' + str(int(n)) + 'f" % ' + repr(x)) - Level = Round(float(Level), 2) - UpdateDevice_v2(self, Devices, Unit, 0, str(Level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return - - if DeviceType == "TempSetCurrent": + if DeviceType == "ContractPower": + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for ContractPower Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + CONTRACT_MODE = { + 10: 3, + 20: 6, + 30: 9, + 40: 12, + 50: 15, + } + if "Schneider Wiser" not in self.ListOfDevices[Nwkid]: + self.ListOfDevices[Nwkid]["Schneider Wiser"] = {} + + if Level in CONTRACT_MODE: self.log.logging( "Command", "Debug", - "mgtCommand : Set Temp for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, + "mgtCommand : -----> Contract Power : %s - %s KVA" % (Level, CONTRACT_MODE[Level]), + Nwkid, ) - value = int(float(Level) * 100) - schneider_temp_Setcurrent(self, NWKID, value) - Level = round(float(Level), 2) - # Normalize SetPoint value with 2 digits - Round = lambda x, n: eval('"%.' + str(int(n)) + 'f" % ' + repr(x)) - Level = Round(float(Level), 2) - UpdateDevice_v2(self, Devices, Unit, 0, str(Level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + if ( + "Model" in self.ListOfDevices[Nwkid] + and self.ListOfDevices[Nwkid]["Model"] == "EH-ZB-BMS" + ): + self.ListOfDevices[Nwkid]["Schneider Wiser"]["Contract Power"] = CONTRACT_MODE[Level] + schneider_set_contract(self, Nwkid, EPout, CONTRACT_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - if DeviceType == "ThermoModeEHZBRTS": - self.log.logging("Command", "Debug", "MajDomoDevice EHZBRTS Schneider Thermostat Mode %s" % Level, NWKID) - schneider_EHZBRTS_thermoMode(self, NWKID, Level) - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + if DeviceType == "FIP": + FIL_PILOT_MODE = { + 10: "Confort", + 20: "Confort -1", + 30: "Confort -2", + 40: "Eco", + 50: "Frost Protection", + 60: "Off", + } + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for FIP: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + if "Schneider Wiser" not in self.ListOfDevices[Nwkid]: + self.ListOfDevices[Nwkid]["Schneider Wiser"] = {} + + if ( Level in FIL_PILOT_MODE and "Model" in self.ListOfDevices[Nwkid] ): + if self.ListOfDevices[Nwkid]["Model"] == "EH-ZB-HACT": + self.log.logging( "Command", "Debug","mgtCommand : -----> HACT -> Fil Pilote mode: %s - %s" % ( + Level, FIL_PILOT_MODE[Level]),Nwkid, ) + self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT FIP Mode"] = FIL_PILOT_MODE[Level] + schneider_hact_fip_mode(self, Nwkid, FIL_PILOT_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) + + elif self.ListOfDevices[Nwkid]["Model"] == "Cable outlet": + self.log.logging( "Command", "Debug", "mgtCommand : -----> Fil Pilote mode: %s - %s" % ( + Level, FIL_PILOT_MODE[Level]), Nwkid, ) + legrand_fc40(self, Nwkid, FIL_PILOT_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) + + elif self.ListOfDevices[Nwkid]["Model"] in ( "SIN-4-FP-21_EQU", "SIN-4-FP-21"): + ADEO_FIP_ONOFF_COMMAND = { + 10: 1, + 20: 4, + 30: 5, + 40: 2, + 50: 3, + 60: 0, + } + self.log.logging( "Command", "Log", "mgtCommand : -----> Adeo/Nodon/Enky Fil Pilote mode: %s - %s" % ( + Level, ADEO_FIP_ONOFF_COMMAND[Level]), Nwkid, ) + + adeo_fip(self, Nwkid, EPout, ADEO_FIP_ONOFF_COMMAND[ Level ]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - if DeviceType == "HACTMODE": + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return + + if DeviceType in ("ThermoMode_3", ): + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + self.log.logging("Command", "Debug", "ThermoMode_3 (Acova) - requested Level: %s" % Level, Nwkid) + if Level in THERMOSTAT_LEVEL_3_MODE: self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for HACT Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, + " - Set Thermostat Mode to : %s / T2:%s " % (Level, THERMOSTAT_LEVEL_3_MODE[Level]), + Nwkid, ) - if "Schneider Wiser" not in self.ListOfDevices[NWKID]: - self.ListOfDevices[NWKID]["Schneider Wiser"] = {} - - if "HACT Mode" not in self.ListOfDevices[NWKID]["Schneider Wiser"]: - self.ListOfDevices[NWKID]["Schneider Wiser"]["HACT Mode"] = "" - - if Level == 10: # Conventional - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) - self.ListOfDevices[NWKID]["Schneider Wiser"]["HACT Mode"] = "conventional" - schneider_hact_heater_type(self, NWKID, "conventional") - - elif Level == 20: # fip - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) - self.ListOfDevices[NWKID]["Schneider Wiser"]["HACT Mode"] = "FIP" - schneider_hact_heater_type(self, NWKID, "fip") - - else: - self.log.logging("Command", "Error", "Unknown mode %s for HACTMODE for device %s" % (Level, NWKID)) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + thermostat_Mode(self, Nwkid, THERMOSTAT_LEVEL_3_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - if DeviceType == "LegranCableMode": + if DeviceType in ("ThermoMode", ): + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) + if Level in THERMOSTAT_LEVEL_2_MODE: self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for Legrand Cable Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - cable_connected_mode(self, NWKID, str(Level)) - UpdateDevice_v2( - self, Devices, Unit, int(Level), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev + " - Set Thermostat Mode to : %s / %s" % (Level, THERMOSTAT_LEVEL_2_MODE[Level]), + Nwkid, ) - request_read_device_status(self, NWKID) - return + thermostat_Mode(self, Nwkid, THERMOSTAT_LEVEL_2_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - if DeviceType == "ContractPower": + if DeviceType == "ACMode": + ACLEVEL_TO_MODE = { + 0: "Off", + 10: "Cool", + 20: "Heat", + 30: "Dry", + 40: "Fan Only", + } + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) + if Level in ACLEVEL_TO_MODE: self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for ContractPower Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, + "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, ACLEVEL_TO_MODE[Level]), Nwkid ) - CONTRACT_MODE = { - 10: 3, - 20: 6, - 30: 9, - 40: 12, - 50: 15, - } - if "Schneider Wiser" not in self.ListOfDevices[NWKID]: - self.ListOfDevices[NWKID]["Schneider Wiser"] = {} - - if Level in CONTRACT_MODE: - self.log.logging( - "Command", - "Debug", - "mgtCommand : -----> Contract Power : %s - %s KVA" % (Level, CONTRACT_MODE[Level]), - NWKID, - ) - if ( - "Model" in self.ListOfDevices[NWKID] - and self.ListOfDevices[NWKID]["Model"] == "EH-ZB-BMS" - ): - self.ListOfDevices[NWKID]["Schneider Wiser"]["Contract Power"] = CONTRACT_MODE[Level] - schneider_set_contract(self, NWKID, EPout, CONTRACT_MODE[Level]) - UpdateDevice_v2( - self, - Devices, - Unit, - int(Level) // 10, - Level, - BatteryLevel, - SignalLevel, - ForceUpdate_=forceUpdateDev, - ) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + thermostat_Mode(self, Nwkid, ACLEVEL_TO_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return - if DeviceType == "FIP": - FIL_PILOT_MODE = { - 10: "Confort", - 20: "Confort -1", - 30: "Confort -2", - 40: "Eco", - 50: "Frost Protection", - 60: "Off", - } - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for FIP: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - if "Schneider Wiser" not in self.ListOfDevices[NWKID]: - self.ListOfDevices[NWKID]["Schneider Wiser"] = {} - - if ( Level in FIL_PILOT_MODE and "Model" in self.ListOfDevices[NWKID] ): - if self.ListOfDevices[NWKID]["Model"] == "EH-ZB-HACT": - self.log.logging( "Command", "Debug","mgtCommand : -----> HACT -> Fil Pilote mode: %s - %s" % ( - Level, FIL_PILOT_MODE[Level]),NWKID, ) - self.ListOfDevices[NWKID]["Schneider Wiser"]["HACT FIP Mode"] = FIL_PILOT_MODE[Level] - schneider_hact_fip_mode(self, NWKID, FIL_PILOT_MODE[Level]) - UpdateDevice_v2( self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - - elif self.ListOfDevices[NWKID]["Model"] == "Cable outlet": - self.log.logging( "Command", "Debug", "mgtCommand : -----> Fil Pilote mode: %s - %s" % ( - Level, FIL_PILOT_MODE[Level]), NWKID, ) - legrand_fc40(self, NWKID, FIL_PILOT_MODE[Level]) - UpdateDevice_v2( self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - - elif self.ListOfDevices[NWKID]["Model"] in ( "SIN-4-FP-21_EQU", "SIN-4-FP-21"): - ADEO_FIP_ONOFF_COMMAND = { - 10: 1, - 20: 4, - 30: 5, - 40: 2, - 50: 3, - 60: 0, - } - self.log.logging( "Command", "Log", "mgtCommand : -----> Adeo/Nodon/Enky Fil Pilote mode: %s - %s" % ( - Level, ADEO_FIP_ONOFF_COMMAND[Level]), NWKID, ) - - adeo_fip(self, NWKID, EPout, ADEO_FIP_ONOFF_COMMAND[ Level ]) - UpdateDevice_v2( self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + if DeviceType == "CAC221ACMode": + CAC221ACLevel_TO_MODE = { + 0: "Off", + 10: "Auto", + 20: "Cool", + 30: "Heat", + 40: "Dry", + 50: "Fan Only", + } + self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) + if Level in CAC221ACLevel_TO_MODE: + self.log.logging( "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, CAC221ACLevel_TO_MODE[Level]), Nwkid ) + thermostat_Mode(self, Nwkid, CAC221ACLevel_TO_MODE[Level]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return + + if DeviceType == "ThermoMode_2": + self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + self.log.logging("Command", "Debug", "ThermoMode_2 - requested Level: %s" % Level, Nwkid) + if ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TRV7SystemMode", int(Level // 10)) return - if DeviceType in ("ThermoMode_3", ): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - self.log.logging("Command", "Debug", "ThermoMode_3 (Acova) - requested Level: %s" % Level, NWKID) - if Level in THERMOSTAT_LEVEL_3_MODE: - self.log.logging( - "Command", - "Debug", - " - Set Thermostat Mode to : %s / T2:%s " % (Level, THERMOSTAT_LEVEL_3_MODE[Level]), - NWKID, - ) - - thermostat_Mode(self, NWKID, THERMOSTAT_LEVEL_3_MODE[Level]) - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + tuya_trv_mode(self, Nwkid, Level) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level // 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + return - if DeviceType in ("ThermoMode", ): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, NWKID) - if Level in THERMOSTAT_LEVEL_2_MODE: - self.log.logging( - "Command", - "Debug", - " - Set Thermostat Mode to : %s / %s" % (Level, THERMOSTAT_LEVEL_2_MODE[Level]), - NWKID, - ) - thermostat_Mode(self, NWKID, THERMOSTAT_LEVEL_2_MODE[Level]) - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + if DeviceType == "ThermoMode_4": + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + + if "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-_TZE200_b6wax7g0": + self.log.logging("Command", "Debug", "ThermoMode_4 - requested Level: %s" % Level, Nwkid) + # 0x00 - Auto, 0x01 - Manual, 0x02 - Temp Hand, 0x03 - Holliday + tuya_trv_brt100_set_mode(self, Nwkid, int(Level / 10) - 1) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "ACMode": - ACLEVEL_TO_MODE = { - 0: "Off", - 10: "Cool", - 20: "Heat", - 30: "Dry", - 40: "Fan Only", - } - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, NWKID) - if Level in ACLEVEL_TO_MODE: - self.log.logging( - "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, ACLEVEL_TO_MODE[Level]), NWKID - ) - thermostat_Mode(self, NWKID, ACLEVEL_TO_MODE[Level]) - UpdateDevice_v2( - self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev - ) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - return + if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, _model_name): + ts0601_actuator(self, Nwkid, "TRV6SystemMode", int(Level // 10)) + return - if DeviceType == "CAC221ACMode": - CAC221ACLevel_TO_MODE = { - 0: "Off", - 10: "Auto", - 20: "Cool", - 30: "Heat", - 40: "Dry", - 50: "Fan Only", - } - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (NWKID, EPout, Unit, DeviceType, Level), NWKID, ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, NWKID) - if Level in CAC221ACLevel_TO_MODE: - self.log.logging( "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, CAC221ACLevel_TO_MODE[Level]), NWKID ) - thermostat_Mode(self, NWKID, CAC221ACLevel_TO_MODE[Level]) - UpdateDevice_v2( self, Devices, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) + if DeviceType in ("ThermoMode_5", "ThermoMode_6"): + self.log.logging( + "Command", + "Debug", + "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, + ) + + if "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-_TZE200_chyvmhay": + # 1: // manual 2: // away 0: // auto + tuya_lidl_set_mode( self, Nwkid, int(Level / 10) - 1 ) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + + elif "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-_TZE200_dzuqwsyg": + tuya_trv_onoff(self, Nwkid, 0x01) + + tuya_coil_fan_thermostat(self, Nwkid, int(Level / 10) - 1) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + + elif "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-eTRV5": + # "fr-FR": {"LevelNames": "Arrêt|Auto|Manual|Away"}}, + # Off: 00 -> Will get Command Off, so not here + # Auto:10 -> 00 [0] Scheduled/auto + # Manual:20 --> 01 [1] manual + # Away:30 -> 02 [2] Holiday + + if Level >= 10: + self.log.logging( "Command", "Debug", " Selector: %s" % ( Level ), Nwkid,) + _tuya_mode = ( Level - 10 ) + self.log.logging( "Command", "Debug", " Selector: %s translated into Mode: %s" % ( Level, _tuya_mode ), Nwkid,) + tuya_trv_mode(self, Nwkid, _tuya_mode) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level // 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) return - - if DeviceType == "ThermoMode_2": - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (NWKID, EPout, Unit, DeviceType, Level), NWKID, ) - self.log.logging("Command", "Debug", "ThermoMode_2 - requested Level: %s" % Level, NWKID) - if ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TRV7SystemMode", int(Level // 10)) - return - - tuya_trv_mode(self, NWKID, Level) - UpdateDevice_v2( self, Devices, Unit, int(Level // 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + + if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): + self.log.logging( "Command", "Debug", " Air Purifier Mode: %s" % ( Level ), Nwkid,) + + if Level == 10: + ikea_air_purifier_mode( self, Nwkid, EPout, 1 ) + elif Level in ( 20, 30, 40, 50, 60): + mode = Level - 10 + ikea_air_purifier_mode( self, Nwkid, EPout, mode) + + if DeviceType == "FanControl": + + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "AC201A": + casaia_ac201_fan_control(self, Nwkid, Level) return - if DeviceType == "ThermoMode_4": + if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "TS0601-_TZE200_dzuqwsyg": self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, + "mgtCommand : Fan Control: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, ) - - if "Model" in self.ListOfDevices[ NWKID ] and self.ListOfDevices[ NWKID ][ "Model" ] == "TS0601-_TZE200_b6wax7g0": - self.log.logging("Command", "Debug", "ThermoMode_4 - requested Level: %s" % Level, NWKID) - # 0x00 - Auto, 0x01 - Manual, 0x02 - Temp Hand, 0x03 - Holliday - tuya_trv_brt100_set_mode(self, NWKID, int(Level / 10) - 1) - UpdateDevice_v2(self, Devices, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, _model_name): - ts0601_actuator(self, NWKID, "TRV6SystemMode", int(Level // 10)) - return - - if DeviceType in ("ThermoMode_5", "ThermoMode_6"): + FAN_SPEED_MAPPING = { + 10: 0x03, + 20: 0x00, + 30: 0x01, + 40: 0x02, + } + if Level in FAN_SPEED_MAPPING: + tuya_fan_speed(self, Nwkid, FAN_SPEED_MAPPING[ Level ]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, + "mgtCommand : Fan Control not expected Level : %s EPout: %s Unit: %s DeviceType: %s Level: %s " + % (Nwkid, EPout, Unit, DeviceType, Level), + Nwkid, ) - if "Model" in self.ListOfDevices[ NWKID ] and self.ListOfDevices[ NWKID ][ "Model" ] == "TS0601-_TZE200_chyvmhay": - # 1: // manual 2: // away 0: // auto - tuya_lidl_set_mode( self, NWKID, int(Level / 10) - 1 ) - UpdateDevice_v2(self, Devices, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - - elif "Model" in self.ListOfDevices[ NWKID ] and self.ListOfDevices[ NWKID ][ "Model" ] == "TS0601-_TZE200_dzuqwsyg": - tuya_trv_onoff(self, NWKID, 0x01) - - tuya_coil_fan_thermostat(self, NWKID, int(Level / 10) - 1) - UpdateDevice_v2(self, Devices, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - - elif "Model" in self.ListOfDevices[ NWKID ] and self.ListOfDevices[ NWKID ][ "Model" ] == "TS0601-eTRV5": - # "fr-FR": {"LevelNames": "Arrêt|Auto|Manual|Away"}}, - # Off: 00 -> Will get Command Off, so not here - # Auto:10 -> 00 [0] Scheduled/auto - # Manual:20 --> 01 [1] manual - # Away:30 -> 02 [2] Holiday - - if Level >= 10: - self.log.logging( "Command", "Debug", " Selector: %s" % ( Level ), NWKID,) - _tuya_mode = ( Level - 10 ) - self.log.logging( "Command", "Debug", " Selector: %s translated into Mode: %s" % ( Level, _tuya_mode ), NWKID,) - tuya_trv_mode(self, NWKID, _tuya_mode) - UpdateDevice_v2( self, Devices, Unit, int(Level // 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - return - - if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): - self.log.logging( "Command", "Debug", " Air Purifier Mode: %s" % ( Level ), NWKID,) - - if Level == 10: - ikea_air_purifier_mode( self, NWKID, EPout, 1 ) - elif Level in ( 20, 30, 40, 50, 60): - mode = Level - 10 - ikea_air_purifier_mode( self, NWKID, EPout, mode) - - if DeviceType == "FanControl": - - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] == "AC201A": - casaia_ac201_fan_control(self, NWKID, Level) - return - - if "Model" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["Model"] == "TS0601-_TZE200_dzuqwsyg": - self.log.logging( - "Command", - "Debug", - "mgtCommand : Fan Control: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - - FAN_SPEED_MAPPING = { - 10: 0x03, - 20: 0x00, - 30: 0x01, - 40: 0x02, - } - if Level in FAN_SPEED_MAPPING: - tuya_fan_speed(self, NWKID, FAN_SPEED_MAPPING[ Level ]) - UpdateDevice_v2(self, Devices, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - self.log.logging( - "Command", - "Debug", - "mgtCommand : Fan Control not expected Level : %s EPout: %s Unit: %s DeviceType: %s Level: %s " - % (NWKID, EPout, Unit, DeviceType, Level), - NWKID, - ) - - FAN_MODE = { - 0: "Off", - 20: "Low", - 30: "Medium", - 40: "High", - 10: "Auto", - } - - if Level in FAN_MODE: - change_fan_mode(self, NWKID, EPout, FAN_MODE[Level]) - request_read_device_status(self, NWKID) - - if DeviceType == "ACSwing": - if Level == 10: - casaia_swing_OnOff(self, NWKID, "01") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + FAN_MODE = { + 0: "Off", + 20: "Low", + 30: "Medium", + 40: "High", + 10: "Auto", + } + + if Level in FAN_MODE: + change_fan_mode(self, Nwkid, EPout, FAN_MODE[Level]) + request_read_device_status(self, Nwkid) + + if DeviceType == "ACSwing": + if Level == 10: + casaia_swing_OnOff(self, Nwkid, "01") + # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return - if DeviceType == "ACMode_2": - if Level == 10: - casaia_system_mode(self, NWKID, "Cool") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Level == 20: - casaia_system_mode(self, NWKID, "Heat") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Level == 30: - casaia_system_mode(self, NWKID, "Dry") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Level == 40: - casaia_system_mode(self, NWKID, "Fan") - # UpdateDevice_v2(self, Devices, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return + if DeviceType == "ACMode_2": + if Level == 10: + casaia_system_mode(self, Nwkid, "Cool") + # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif Level == 20: + casaia_system_mode(self, Nwkid, "Heat") + # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif Level == 30: + casaia_system_mode(self, Nwkid, "Dry") + # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + elif Level == 40: + casaia_system_mode(self, Nwkid, "Fan") + # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return - if DeviceType == "BSO-Volet": - if profalux: - # Transform slider % into analog value - lift = (255 * Level) // 100 - if Level == 0: - lift = 1 - elif Level > 255: - lift = 255 - - self.log.logging( - "Command", - "Debug", - "mgtCommand : profalux_MoveToLiftAndTilt: %s BSO-Volet Lift: Level:%s Lift: %s" - % (NWKID, Level, lift), - NWKID, - ) - profalux_MoveToLiftAndTilt(self, NWKID, level=lift) - - elif DeviceType == "BSO-Orientation": - if profalux: - Tilt = Level - 10 - self.log.logging( - "Command", - "Debug", - "mgtCommand : profalux_MoveToLiftAndTilt: %s BSO-Orientation : Level: %s Tilt: %s" - % (NWKID, Level, Tilt), - NWKID, - ) - profalux_MoveToLiftAndTilt(self, NWKID, tilt=Tilt) - - elif DeviceType == "WindowCovering": # Blind Inverted + if DeviceType == "BSO-Volet": + if profalux: + # Transform slider % into analog value + lift = (255 * Level) // 100 if Level == 0: - Level = 1 - elif Level >= 100: - Level = 99 - value = "%02x" % Level - self.log.logging( - "Command", - "Debug", - "WindowCovering - Lift Percentage Command - %s/%s Level: 0x%s %s" % (NWKID, EPout, value, Level), - NWKID, - ) - actuator_setlevel(self, NWKID, EPout, Level, "WindowCovering") + lift = 1 + elif Level > 255: + lift = 255 - elif DeviceType in ("Venetian", "Vanne", "Curtain",): - if Level == 0: - Level = 1 - elif Level >= 100: - Level = 99 - value = "%02x" % Level self.log.logging( "Command", "Debug", - "Venetian blind - Lift Percentage Command - %s/%s Level: 0x%s %s" % (NWKID, EPout, value, Level), - NWKID, + "mgtCommand : profalux_MoveToLiftAndTilt: %s BSO-Volet Lift: Level:%s Lift: %s" + % (Nwkid, Level, lift), + Nwkid, ) - actuator_setlevel(self, NWKID, EPout, Level, "WindowCovering") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return + profalux_MoveToLiftAndTilt(self, Nwkid, level=lift) - elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - Level = 100 - Level - if Level == 0: - Level = 1 - elif Level >= 100: - Level = 99 - value = "%02x" % Level + elif DeviceType == "BSO-Orientation": + if profalux: + Tilt = Level - 10 self.log.logging( "Command", "Debug", - "VenetianInverted blind - Lift Percentage Command - %s/%s Level: 0x%s %s" - % (NWKID, EPout, value, Level), - NWKID, + "mgtCommand : profalux_MoveToLiftAndTilt: %s BSO-Orientation : Level: %s Tilt: %s" + % (Nwkid, Level, Tilt), + Nwkid, ) - actuator_setlevel(self, NWKID, EPout, Level, "WindowCovering") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return - - elif DeviceType == "AlarmWD": - self.log.logging("Command", "Debug", "Alarm WarningDevice - value: %s" % Level) - if Level == 0: # Stop - self.iaszonemgt.alarm_off(NWKID, EPout) - elif Level == 10: # Alarm - self.iaszonemgt.alarm_on(NWKID, EPout) - elif Level == 20: # Siren Only - self.iaszonemgt.siren_only(NWKID, EPout) - elif Level == 30: # Strobe Only - self.iaszonemgt.strobe_only(NWKID, EPout) - elif Level == 40: # Armed - Squawk - self.iaszonemgt.write_IAS_WD_Squawk(NWKID, EPout, "armed") - elif Level == 50: # Disarmed - self.iaszonemgt.write_IAS_WD_Squawk(NWKID, EPout, "disarmed") - - elif DeviceType == "TuyaSiren": - if Level == 10: - tuya_siren_alarm(self, NWKID, 0x01, 1) - elif Level == 20: - tuya_siren_alarm(self, NWKID, 0x01, 2) - elif Level == 30: - tuya_siren_alarm(self, NWKID, 0x01, 3) - elif Level == 40: - tuya_siren_alarm(self, NWKID, 0x01, 4) - elif Level == 50: - tuya_siren_alarm(self, NWKID, 0x01, 5) - - elif DeviceType == "TuyaSirenHumi": - if Level == 10: - tuya_siren_humi_alarm(self, NWKID, 0x01) - - elif DeviceType == "TuyaSirenTemp": - if Level == 10: - tuya_siren_temp_alarm(self, NWKID, 0x01) - - elif DeviceType == "Toggle": - self.log.logging("Command", "Debug", "Toggle switch - value: %s" % Level) - if Level == 10: # Off - actuators(self, NWKID, EPout, "Off", "Switch") - elif Level == 20: # On - actuators(self, NWKID, EPout, "On", "Switch") - elif Level == 30: # Toggle - actuators(self, NWKID, EPout, "Toggle", "Switch") - - elif _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): - if Devices[Unit].nValue == 0: - tuya_dimmer_onoff(self, NWKID, EPout, "01") - Level = max(Level, 1) - tuya_dimmer_dimmer(self, NWKID, EPout, Level) - - elif _model_name == "TS0601-curtain": - tuya_curtain_lvl(self, NWKID, (Level)) + profalux_MoveToLiftAndTilt(self, Nwkid, tilt=Tilt) + + elif DeviceType == "WindowCovering": # Blind Inverted + if Level == 0: + Level = 1 + elif Level >= 100: + Level = 99 + value = "%02x" % Level + self.log.logging( + "Command", + "Debug", + "WindowCovering - Lift Percentage Command - %s/%s Level: 0x%s %s" % (Nwkid, EPout, value, Level), + Nwkid, + ) + actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") + + elif DeviceType in ("Venetian", "Vanne", "Curtain",): + if Level == 0: + Level = 1 + elif Level >= 100: + Level = 99 + value = "%02x" % Level + self.log.logging( + "Command", + "Debug", + "Venetian blind - Lift Percentage Command - %s/%s Level: 0x%s %s" % (Nwkid, EPout, value, Level), + Nwkid, + ) + actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") + + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute + return - else: - if profalux: - actuator_setlevel(self, NWKID, EPout, Level, "Light", "0000", withOnOff=False) - #sendZigateCmd(self, "0081", "02" + NWKID + ZIGATE_EP + EPout + OnOff + value + "0000") - else: - if Level > 1 and get_deviceconf_parameter_value(self, _model_name, "ForceSwitchOnformoveToLevel", return_default=False): - actuator_on(self, NWKID, EPout, "Light") - transitionMoveLevel = "0010" # Compatibility. It was 0010 before - if "Param" in self.ListOfDevices[NWKID] and "moveToLevel" in self.ListOfDevices[NWKID]["Param"]: - transitionMoveLevel = "%04x" % int(self.ListOfDevices[NWKID]["Param"]["moveToLevel"]) - actuator_setlevel(self, NWKID, EPout, Level, "Light", transitionMoveLevel, withOnOff=True ) - #sendZigateCmd(self, "0081", "02" + NWKID + ZIGATE_EP + EPout + OnOff + value + transitionMoveLevel) - - if Devices[Unit].SwitchType in (13, 16): - UpdateDevice_v2(self, Devices, Unit, 2, str(Level), BatteryLevel, SignalLevel) - - elif Devices[Unit].SwitchType in (14, 15): - if Level == 0: - UpdateDevice_v2(self, Devices, Unit, 0, "0", BatteryLevel, SignalLevel) - elif Level == 100: - UpdateDevice_v2(self, Devices, Unit, 1, "1", BatteryLevel, SignalLevel) - elif Level == 50: - UpdateDevice_v2(self, Devices, Unit, 17, "0", BatteryLevel, SignalLevel) - else: - UpdateDevice_v2(self, Devices, Unit, 2, str(Level), BatteryLevel, SignalLevel) + elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): + Level = 100 - Level + if Level == 0: + Level = 1 + elif Level >= 100: + Level = 99 + value = "%02x" % Level + self.log.logging( + "Command", + "Debug", + "VenetianInverted blind - Lift Percentage Command - %s/%s Level: 0x%s %s" + % (Nwkid, EPout, value, Level), + Nwkid, + ) + actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") + + if DeviceType in ( "CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute + return + elif DeviceType == "AlarmWD": + self.log.logging("Command", "Debug", "Alarm WarningDevice - value: %s" % Level) + if Level == 0: # Stop + self.iaszonemgt.alarm_off(Nwkid, EPout) + elif Level == 10: # Alarm + self.iaszonemgt.alarm_on(Nwkid, EPout) + elif Level == 20: # Siren Only + self.iaszonemgt.siren_only(Nwkid, EPout) + elif Level == 30: # Strobe Only + self.iaszonemgt.strobe_only(Nwkid, EPout) + elif Level == 40: # Armed - Squawk + self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "armed") + elif Level == 50: # Disarmed + self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "disarmed") + + elif DeviceType == "TuyaSiren": + if Level == 10: + tuya_siren_alarm(self, Nwkid, 0x01, 1) + elif Level == 20: + tuya_siren_alarm(self, Nwkid, 0x01, 2) + elif Level == 30: + tuya_siren_alarm(self, Nwkid, 0x01, 3) + elif Level == 40: + tuya_siren_alarm(self, Nwkid, 0x01, 4) + elif Level == 50: + tuya_siren_alarm(self, Nwkid, 0x01, 5) + + elif DeviceType == "TuyaSirenHumi": + if Level == 10: + tuya_siren_humi_alarm(self, Nwkid, 0x01) + + elif DeviceType == "TuyaSirenTemp": + if Level == 10: + tuya_siren_temp_alarm(self, Nwkid, 0x01) + + elif DeviceType == "Toggle": + self.log.logging("Command", "Debug", "Toggle switch - value: %s" % Level) + if Level == 10: # Off + actuators(self, Nwkid, EPout, "Off", "Switch") + elif Level == 20: # On + actuators(self, Nwkid, EPout, "On", "Switch") + elif Level == 30: # Toggle + actuators(self, Nwkid, EPout, "Toggle", "Switch") + + elif _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): + cur_nValue, _ = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) + if cur_nValue == 0: + tuya_dimmer_onoff(self, Nwkid, EPout, "01") + Level = max(Level, 1) + tuya_dimmer_dimmer(self, Nwkid, EPout, Level) + + elif _model_name == "TS0601-curtain": + tuya_curtain_lvl(self, Nwkid, (Level)) + + else: + if profalux: + actuator_setlevel(self, Nwkid, EPout, Level, "Light", "0000", withOnOff=False) + #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + OnOff + value + "0000") else: - # A bit hugly, but '1' instead of '2' is needed for the ColorSwitch dimmer to behave correctky - UpdateDevice_v2(self, Devices, Unit, 1, str(Level), BatteryLevel, SignalLevel) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, NWKID) - - if Command == "Set Color": - # RGBW --> Action on W Level (bri) setcolbrightnessvalue: ID: d9, bri: 96, color: '{m: 3, RGB: ffffff, CWWW: 0000, CT: 0}' - # --> Action on RGB (RGB) setcolbrightnessvalue: ID: d9, bri: 59, color: '{m: 3, RGB: 53ff42, CWWW: 0000, CT: 0}' - - self.log.logging( "Command", "Debug", "mgtCommand : Set Color for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s Color: %s" % ( - NWKID, EPout, Unit, DeviceType, Level, Color), NWKID, - ) + if Level > 1 and get_deviceconf_parameter_value(self, _model_name, "ForceSwitchOnformoveToLevel", return_default=False): + actuator_on(self, Nwkid, EPout, "Light") + transitionMoveLevel = "0010" # Compatibility. It was 0010 before + if "Param" in self.ListOfDevices[Nwkid] and "moveToLevel" in self.ListOfDevices[Nwkid]["Param"]: + transitionMoveLevel = "%04x" % int(self.ListOfDevices[Nwkid]["Param"]["moveToLevel"]) + actuator_setlevel(self, Nwkid, EPout, Level, "Light", transitionMoveLevel, withOnOff=True ) + #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + OnOff + value + transitionMoveLevel) + + + if is_dimmable_blind(self, Devices, DeviceID, Unit) and Level in ( 0, 50, 100): + if Level == 0: + update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "0", BatteryLevel, SignalLevel) + + elif Level == 100: + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "1", BatteryLevel, SignalLevel) - actuator_setcolor(self, NWKID, EPout, Level, Color) - request_read_device_status(self, NWKID) + elif Level == 50: + update_domoticz_widget(self, Devices, DeviceID, Unit, 17, "0", BatteryLevel, SignalLevel) + + else: + partially_opened_nValue = is_dimmable_blind(self, Devices, DeviceID, Unit) or is_dimmable_light(self, Devices, DeviceID, Unit) or is_dimmable_switch(self, Devices, DeviceID, Unit) + update_domoticz_widget(self, Devices, DeviceID, Unit, partially_opened_nValue, str(Level), BatteryLevel, SignalLevel) - UpdateDevice_v2(self, Devices, Unit, 1, str(Level), BatteryLevel, SignalLevel, str(Color)) + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) - - -def get_previous_switch_level(self, NwkId, Ep): - - if NwkId not in self.ListOfDevices: - return None - if Ep not in self.ListOfDevices[ NwkId ][ 'Ep']: - return None - if "0008" not in self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep]: - return None - if "0000" not in self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]: - return None - if self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"] in ( '', {} ): - return None - switch_level = self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"] - if switch_level is None: - return None - if self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"] in ( '', {} ): - return None - if isinstance( self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"], str): - return int( self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"], 16) - if isinstance( self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"], int): - return self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"] - self.log.logging( "Command", "Error", "get_previous_switch_level : level is bizarre >%s<" % ( - self.ListOfDevices[ NwkId ][ 'Ep' ][ Ep][ "0008" ]["0000"]), NwkId, ) - return None +def handle_command_setcolor(self,Devices, DeviceID, Unit, Level, Color, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): -def request_read_device_status(self, Nwkid): - # Purpose is to reset the Heartbeat in order to trigger a readattribute + self.log.logging( "Command", "Debug", "mgtCommand : Set Color for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s Color: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level, Color), Nwkid, + ) - self.ListOfDevices[Nwkid]["Heartbeat"] = "-1" + actuator_setcolor(self, Nwkid, EPout, Level, Color) + request_read_device_status(self, Nwkid) + + update_domoticz_widget(self, Devices, DeviceID, Unit, 1, str(Level), BatteryLevel, SignalLevel, str(Color)) diff --git a/Modules/database.py b/Modules/database.py index 8253354bd..cbb01e3c3 100644 --- a/Modules/database.py +++ b/Modules/database.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: z_database.py @@ -18,7 +25,7 @@ from typing import Dict import Modules.tools -from Modules.domoticzAPI import setConfigItem, getConfigItem +from Modules.domoticzAbstractLayer import getConfigItem, setConfigItem from Modules.manufacturer_code import check_and_update_manufcode from Modules.pluginDbAttributes import (STORE_CONFIGURE_REPORTING, STORE_CUSTOM_CONFIGURE_REPORTING, @@ -488,60 +495,27 @@ def checkDevices2LOD(self, Devices): if self.ListOfDevices[nwkid]["Status"] == "inDB": self.ListOfDevices[nwkid]["ConsistencyCheck"] = next(("ok" for dev in Devices if Devices[dev].DeviceID == self.ListOfDevices[nwkid]["IEEE"]), "not in DZ") - def checkListOfDevice2Devices(self, Devices): + for widget_idx, widget_info in self.ListOfDomoticzWidget.items(): + self.log.logging("Database", "Debug", f"checkListOfDevice2Devices - {widget_idx} {type(widget_idx)} - {widget_info} {type(widget_info)}") + + device_id = widget_info["DeviceID"] + widget_name = widget_info["Name"] - # As of V3 we will be loading only the IEEE information as that is the only one existing in Domoticz area. - # It is also expected that the ListOfDevices is already loaded. + self.log.logging("Database", "Debug", f"checkListOfDevice2Devices - {widget_idx} {device_id} {widget_name}") - # At that stage the ListOfDevices has beene initialized. - for x in Devices: # initialise listeofdevices avec les devices en bases domoticz - ID = Devices[x].DeviceID - if len(str(ID)) == 4: - # This is a Group Id (short address) + if len(device_id) == 4 or device_id.startswith(("Zigate-01-", "Zigate-02-", "Zigate-03-")): continue - elif ID.find("Zigate-01-") != -1 or ID.find("Zigate-02-") != -1 or ID.find("Zigate-03-") != -1: - continue # This is a Widget ID - - # Let's check if this is End Node - if str(ID) not in self.IEEE2NWK: - if self.pluginconf.pluginConf["allowForceCreationDomoDevice"] == 1: - self.log.logging( - "Database", - "Log", - "checkListOfDevice2Devices - " - + str(Devices[x].Name) - + " - " - + str(ID) - + " not found in Plugin Database", - ) - else: - self.log.logging( - "Database", - "Error", - "checkListOfDevice2Devices - " - + str(Devices[x].Name) - + " - " - + str(ID) - + " not found in Plugin Database" - ) - self.log.logging( - "Database", - "Debug", - "checkListOfDevice2Devices - " + str(ID) + " not found in " + str(self.IEEE2NWK), - ) + + if device_id not in self.IEEE2NWK: + self.log.logging("Database", "Log", f"checkListOfDevice2Devices - {widget_name} not found in the plugin!") continue - NWKID = self.IEEE2NWK[ID] - if str(NWKID) in self.ListOfDevices: - self.log.logging( - "Database", - "Debug", - "checkListOfDevice2Devices - we found a matching entry for ID %2s as DeviceID = %s NWK_ID = %s" - % (x, ID, NWKID), - NWKID, - ) + + nwkid = self.IEEE2NWK[device_id] + if nwkid in self.ListOfDevices: + self.log.logging("Database", "Debug", f"checkListOfDevice2Devices - found a matching entry for ID {widget_idx} as DeviceID {device_id} NWK_ID {nwkid}", nwkid) else: - self.log.logging("Database", "Error", "loadListOfDevices - : " + Devices[x].Name + " with IEEE = " + str(ID) + " not found in Zigate plugin Database!") + self.log.logging("Database", "Error", f"loadListOfDevices - {widget_name} with IEEE = {device_id} not found in the Zigate plugin Database!") def saveZigateNetworkData(self, nkwdata): diff --git a/Modules/domoCreate.py b/Modules/domoCreate.py index 87d19a2f1..323137dcf 100644 --- a/Modules/domoCreate.py +++ b/Modules/domoCreate.py @@ -9,13 +9,12 @@ """ -import Domoticz -from Modules.domoTools import (GetType, UpdateDevice_v2, - subtypeRGB_FromProfile_Device_IDs, - subtypeRGB_FromProfile_Device_IDs_onEp2) +from Modules.domoticzAbstractLayer import (FreeUnit, domo_create_api) +from Modules.domoTools import (GetType, subtypeRGB_FromProfile_Device_IDs, + subtypeRGB_FromProfile_Device_IDs_onEp2, + update_domoticz_widget) from Modules.switchSelectorWidgets import SWITCH_SELECTORS from Modules.tools import is_domoticz_new_blind -from Modules.domoticzAbstractLayer import domo_create_api, FreeUnit def cleanup_widget_Type(widget_type_list): @@ -146,7 +145,7 @@ def createDomoticzWidget( self, Devices, nwkid, ieee, ep, cType, widgetType=None if myDev_ID == -1: self.ListOfDevices[nwkid]["Status"] = "failDB" - Domoticz.Error("Domoticz widget creation failed. Check that Domoticz can Accept New Hardware [%s]" % myDev_ID) + self.log.logging("WidgetCreation", "Error", "Domoticz widget creation failed. Check that Domoticz can Accept New Hardware [%s]" % myDev_ID) return None self.ListOfDevices[nwkid]["Status"] = "inDB" @@ -247,7 +246,7 @@ def CreateDomoDevice(self, Devices, NWKID): # Sanity check before starting the processing if NWKID == "" or NWKID not in self.ListOfDevices: - Domoticz.Error("CreateDomoDevice - Cannot create a Device without an IEEE or not in ListOfDevice .") + self.log.logging("WidgetCreation", "Error", "CreateDomoDevice - Cannot create a Device without an IEEE or not in ListOfDevice .") return DeviceID_IEEE = self.ListOfDevices[NWKID]["IEEE"] @@ -350,33 +349,29 @@ def update_widget_type_if_possible( self, Nwkid, widget_type): def create_xcube_widgets(self, Devices, NWKID, DeviceID_IEEE, Ep, t): - - # Do not use the generic createDomoticzWidget , because this one required 2 continuous widget. - # usage later on is based on that assumption - # - # Xiaomi Magic Cube + # Xiaomi Magic Cube, this one required 2 continuous widget. self.ListOfDevices[NWKID]["Status"] = "inDB" + # Create the XCube Widget Options = createSwitchSelector(self, 10, DeviceType=t, OffHidden=True, SelectorStyle=1) - unit = FreeUnit(self, Devices, nbunit_=2) # Look for 2 consecutive slots - myDev = Domoticz.Device( DeviceID=str(DeviceID_IEEE), Name=deviceName(self, NWKID, t, DeviceID_IEEE, Ep), Unit=unit, Type=244, Subtype=62, Switchtype=18, Options=Options, ) - myDev.Create() - ID = myDev.ID - if myDev.ID == -1: + unit = FreeUnit(self, Devices, DeviceID_IEEE, nbunit_=2) # Look for 2 consecutive slots + + idx = domo_create_api(self, Devices, DeviceID_IEEE, unit, deviceName(self, NWKID, t, DeviceID_IEEE, Ep), Type_=244, Subtype_=62, Switchtype_=18, widgetOptions=Options) + + if idx == -1: self.ListOfDevices[NWKID]["Status"] = "failDB" - Domoticz.Error("Domoticz widget creation failed. %s" % (str(myDev))) + self.log.logging("WidgetCreation", "Error", f"Domoticz widget creation failed. {DeviceID_IEEE} {Ep} {t} {unit}") else: - self.ListOfDevices[NWKID]["Ep"][Ep]["ClusterType"][str(ID)] = t + self.ListOfDevices[NWKID]["Ep"][Ep]["ClusterType"][str(idx)] = t # Create the Status (Text) Widget to report Rotation angle unit += 1 - myDev = Domoticz.Device( DeviceID=str(DeviceID_IEEE), Name=deviceName(self, NWKID, t, DeviceID_IEEE, Ep), Unit=unit, Type=243, Subtype=19, Switchtype=0, ) - myDev.Create() - ID = myDev.ID - if myDev.ID == -1: - Domoticz.Error("Domoticz widget creation failed. %s" % (str(myDev))) + idx = domo_create_api(self, Devices, DeviceID_IEEE, unit, deviceName(self, NWKID, t, DeviceID_IEEE, Ep), Type_=243, Subtype_=19, Switchtype_=0,) + + if idx == -1: + self.log.logging("WidgetCreation", "Error", f"Domoticz widget creation failed. {DeviceID_IEEE} {Ep} {t} {unit}") else: - self.ListOfDevices[NWKID]["Ep"][Ep]["ClusterType"][str(ID)] = "Text" + self.ListOfDevices[NWKID]["Ep"][Ep]["ClusterType"][str(idx)] = "Text" def number_switch_selectors( widget_type ): @@ -467,7 +462,7 @@ def create_native_widget( self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name): widget_name, widget_record[ "widgetType" ], NwkId), NwkId) unit = createDomoticzWidget(self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name, widget_record[ "widgetType" ]) if unit: - set_default_value( self, Devices, unit, widget_record) + set_default_value( self, Devices, DeviceID_IEEE, unit, widget_record) return True @@ -478,7 +473,7 @@ def create_native_widget( self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name): widget_name, widget_record[ "widgetType" ], NwkId), NwkId) unit = createDomoticzWidget(self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name, widget_record[ "widgetType" ]) if unit: - set_default_value( self, Devices, unit, widget_record) + set_default_value( self, Devices,DeviceID_IEEE, unit, widget_record) return True @@ -489,7 +484,7 @@ def create_native_widget( self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name): widget_name, widget_record[ "widgetType" ], NwkId), NwkId) unit = createDomoticzWidget(self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name, widget_record[ "widgetType" ]) if unit: - set_default_value( self, Devices, unit, widget_record) + set_default_value( self, Devices, DeviceID_IEEE, unit, widget_record) return True @@ -512,15 +507,15 @@ def create_native_widget( self, Devices, NwkId, DeviceID_IEEE, Ep, widget_name): ForceClusterType=ForceClusterType ) if unit: - set_default_value( self, Devices, unit, widget_record) + set_default_value( self, Devices, DeviceID_IEEE, unit, widget_record) return True -def set_default_value( self, Devices, unit, widget_record): +def set_default_value( self, Devices, device_id_ieee, device_unit, widget_record): # Check if we need to initialize the Widget immediatly - if unit and "sValue" in widget_record and "nValue" in widget_record: + if device_unit and "sValue" in widget_record and "nValue" in widget_record: sValue = widget_record["sValue"] nValue = widget_record["nValue"] - UpdateDevice_v2(self, Devices, unit, nValue, sValue, 0, 0, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, 0, 0, ForceUpdate_=True) SIMPLE_WIDGET = { "AirPurifierAlarm": { diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index 532feb97e..ff3c82714 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -20,10 +20,12 @@ is_dimmable_switch) from Modules.domoTools import (RetreiveSignalLvlBattery, RetreiveWidgetTypeList, TypeFromCluster, - UpdateDevice_v2, remove_bad_cluster_type_entry) + remove_bad_cluster_type_entry, + update_domoticz_widget) from Modules.switchSelectorWidgets import (SWITCH_SELECTORS, get_force_update_value_mapping) -from Modules.tools import zigpy_plugin_sanity_check, get_deviceconf_parameter_value +from Modules.tools import (get_deviceconf_parameter_value, str_round, + zigpy_plugin_sanity_check) from Modules.zigateConsts import THERMOSTAT_MODE_2_LEVEL from Modules.zlinky import (ZLINK_CONF_MODEL, get_instant_power, get_tarif_color, zlinky_sum_all_indexes) @@ -53,7 +55,7 @@ def MajDomoDevice(self, Devices, NwkId, Ep, ClusterId, value, Attribute_="", Col ClusterType = TypeFromCluster(self, ClusterId) self.log.logging("Widget", "Debug", "------> ClusterType = " + str(ClusterType), NwkId) - ClusterTypeList = RetreiveWidgetTypeList(self, Devices, NwkId) + ClusterTypeList = RetreiveWidgetTypeList(self, Devices, device_id_ieee, NwkId) self.log.logging("Widget", "Debug", "------> ClusterTypeList = " + str(ClusterTypeList), NwkId) if len(ClusterTypeList) == 0: @@ -61,15 +63,15 @@ def MajDomoDevice(self, Devices, NwkId, Ep, ClusterId, value, Attribute_="", Col return # Look for each entry in ClusterTypeList - for WidgetEp, WidgetId, WidgetType in ClusterTypeList: - _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, model_name, ClusterType, ClusterTypeList, ClusterId, value, Attribute_, Color_, WidgetEp, WidgetId, WidgetType ) + for WidgetEp, Widget_Idx, WidgetType in ClusterTypeList: + _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, model_name, ClusterType, ClusterTypeList, ClusterId, value, Attribute_, Color_, WidgetEp, Widget_Idx, WidgetType ) -def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, model_name, ClusterType, ClusterTypeList, ClusterId, value, Attribute_, Color_, WidgetEp, WidgetId, WidgetType ): +def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, model_name, ClusterType, ClusterTypeList, ClusterId, value, Attribute_, Color_, WidgetEp, Widget_Idx, WidgetType ): # device_unit is the Device unit # WidgetEp is the Endpoint to which the widget is linked to - # WidgetId is the Device ID + # Widget_Idx is the Device ID # WidgetType is the Widget Type at creation # ClusterType is the Type based on clusters # ClusterType: This the Cluster action extracted for the particular Endpoint based on Clusters. @@ -78,8 +80,8 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # Attribute_ : If used This is the Attribute from readCluster. Will help to route to the right action # Color_ : If used This is the color value to be set - self.log.logging( "Widget", "Debug", "_domo_maj_one_cluster_type_entry WidgetEp: %s, WidgetId: %s, WidgetType: %s" % ( - WidgetEp, WidgetId, WidgetType), NwkId, ) + self.log.logging( "Widget", "Debug", "_domo_maj_one_cluster_type_entry WidgetEp: %s, Widget_Idx: %s, WidgetType: %s Value: %s Color: %s" % ( + WidgetEp, Widget_Idx, WidgetType, value, Color_), NwkId, ) if WidgetEp == "00": # Old fashion / keep it for backward compatibility @@ -90,15 +92,15 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging( "Widget", "Debug", "------> skiping this WidgetEp as do not match Ep : %s %s" % (WidgetEp, Ep), NwkId,) return - device_unit = retreive_device_unit( self, Devices, NwkId, Ep, device_id_ieee, ClusterId, WidgetId ) + device_unit = retreive_device_unit( self, Devices, NwkId, Ep, device_id_ieee, ClusterId, Widget_Idx ) if device_unit is None: return prev_nValue, prev_sValue = domo_read_nValue_sValue(self, Devices, device_id_ieee, device_unit) switchType, Subtype, _ = domo_read_SwitchType_SubType_Type(self, Devices, device_id_ieee, device_unit) - self.log.logging( "Widget", "Debug", "------> ClusterType: %s WidgetEp: %s WidgetId: %s WidgetType: %s Attribute_: %s" % ( - ClusterType, WidgetEp, WidgetId, WidgetType, Attribute_), NwkId, ) + self.log.logging( "Widget", "Debug", "------> ClusterType: %s WidgetEp: %s Widget_Idx: %s WidgetType: %s Attribute_: %s" % ( + ClusterType, WidgetEp, Widget_Idx, WidgetType, Attribute_), NwkId, ) SignalLevel, BatteryLevel = RetreiveSignalLvlBattery(self, NwkId) self.log.logging("Widget", "Debug", "------> SignalLevel: %s , BatteryLevel: %s" % (SignalLevel, BatteryLevel), NwkId) @@ -107,7 +109,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # This is Alarm3 for ZLinky Intensity alert value, text = value.split("|") nValue = int(value) - UpdateDevice_v2(self, Devices, device_unit, nValue, text, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, text, BatteryLevel, SignalLevel) if ClusterType == "Alarm" and WidgetType == "Alarm_ZL2" and Attribute_ == "0001": # Notification Next Day Color and Peak @@ -125,7 +127,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, value, text = tuple_value nValue = int(value) - UpdateDevice_v2(self, Devices, device_unit, nValue, text, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, text, BatteryLevel, SignalLevel) if ClusterType == "Alarm" and WidgetType == "Alarm_ZL3" and Attribute_ == "0020": if value is None or len(value) == 0: @@ -195,12 +197,12 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # Unknow nValue = 3 sValue = "Unknown" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if "Ampere" in ClusterType and WidgetType == "Ampere" and Attribute_ == "0508": sValue = "%s" % (round(float(value), 2)) self.log.logging("Widget", "Debug", "------> Ampere : %s" % sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "Ampere" in ClusterType and WidgetType == "Ampere3" and Attribute_ in ("0508", "0908", "0a08"): # Retreive the previous values @@ -222,7 +224,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "%s;%s;%s" % (ampere1, ampere2, ampere) self.log.logging("Widget", "Debug", "------> Ampere3 : %s from Attribute: %s" % (sValue, Attribute_), NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "PWFactor" == ClusterType and WidgetType == "PowerFactor": self.log.logging("Widget", "Debug", "PowerFactor %s WidgetType: %s Value: %s (%s)" % ( @@ -230,7 +232,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, nValue = round(value, 1) sValue = str(nValue) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if "Power" in ClusterType: # Instant Power/Watts # Power and Meter usage are triggered only with the Instant Power usage. @@ -241,24 +243,22 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if WidgetType == "Power" and (Attribute_ in ("", "050f") or ClusterId == "000c"): # kWh if (( isinstance( value, (int, float)) and value < 0) or (float(value) < 0) ) and is_PowerNegative_widget( ClusterTypeList): self.log.logging("Widget", "Debug", "------>There is a PowerNegative widget and the value is negative. Skiping here", NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, "0", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) return - nValue = round(float(value), 2) sValue = value self.log.logging("Widget", "Debug", "------>Power : %s" % sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, str(sValue), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if WidgetType == "ProdPower" and Attribute_ == "": if value > 0: self.log.logging("Widget", "Debug", "------>the value is Positive. Skiping here", NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, "0", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) return - nValue = abs( round(float(value), 2) ) sValue = abs(value) self.log.logging("Widget", "Debug", "------>PowerNegative : %s" % sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, str(sValue), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if WidgetType == "P1Meter" and Attribute_ == "0000": self.log.logging("Widget", "Debug", "------> P1Meter : %s (%s)" % (value, type(value)), NwkId) @@ -272,7 +272,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, prod) self.log.logging("Widget", "Debug", "------> P1Meter : " + sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if ( WidgetType == "P1Meter_ZL" @@ -329,30 +329,30 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, cur_prod) self.log.logging("ZLinky", "Debug", "------> P1Meter_ZL (%s): %s" % (Ep, sValue), NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "Meter" in ClusterType: # Meter Usage. if WidgetType == "GazMeter" and Attribute_ == "0000": # Gaz Meter sValue = "%s" %value - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "Counter" and Attribute_ == "0000": sValue = "%s" %int(value) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "ConsoMeter" and Attribute_ == "0000": # Consummed Energy sValue = "%s" %int(value) self.log.logging("Widget", "Debug", "------>ConsoMeter : %s" % sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "ProdMeter" and Attribute_ == "0001": # Produced Energy injected sValue = "%s" %int(value) self.log.logging("Widget", "Debug", "------>ProdMeter : %s" % sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) # value is string an represent the Instant Usage elif ( @@ -373,7 +373,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "%s;%s" % (instant, summation) self.log.logging("ZLinky", "Debug", "------> : " + sValue) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "Meter" and Attribute_ == "050f": # We receive Instant Power @@ -381,24 +381,24 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, _instant, summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") instant = round(float(value), 2) sValue = "%s;%s" % (instant, summation) - self.log.logging("Widget", "Debug", "------> : " + sValue) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + self.log.logging("Widget", "Debug", f"- {device_id_ieee} {device_unit} Instant Power received {value} converted to {instant} and {summation} resulting in {sValue}") + + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif (WidgetType == "Meter" and Attribute_ == "") or (WidgetType == "Power" and ClusterId == "000c"): # kWh # We receive Instant - # Let's check if we have Summation in the datastructutre - summation = 0 - if ( - "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] - and "0000" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"] - and self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0000"] not in ({}, "", "0") - ): - # summation = int(self.ListOfDevices[NwkId]['Ep'][Ep]['0702']['0000']) - summation = self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0000"] + self.log.logging("Widget", "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: {Attribute_} received {value}") + + summation = None + ep_data = self.ListOfDevices[NwkId].get("Ep", {}).get(Ep, {}) + if "0702" in ep_data and "0000" in ep_data["0702"]: + value_0000 = ep_data["0702"]["0000"] + if value_0000 not in ({}, "", "0"): + summation = int(float(value_0000)) instant = round(float(value), 2) # Did we get Summation from Data Structure - if summation != 0: + if summation is not None and summation != 0: summation = int(float(summation)) sValue = "%s;%s" % (instant, summation) # We got summation from Device, let's check that EnergyMeterMode is @@ -410,8 +410,6 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # No summation retreive, so we make sure that EnergyMeterMode is # correctly set to 1 (compute), if not adjust - self.log.logging("Widget", "Debug", "------> : " + sValue) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) if "WaterCounter" in ClusterType and WidgetType == "WaterCounter": # /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=INCREMENT @@ -421,13 +419,13 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # To reset an incremental counter, set the svalue to a negative integer equal to the current total of the counter. sValue = "%s" %value self.log.logging("Widget", "Log", "WaterCounter ------> : %s" %sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) if "Voltage" in ClusterType and (WidgetType == "Voltage" and Attribute_ == ""): nValue = round(float(value), 2) sValue = "%s;%s" % (nValue, nValue) self.log.logging("Widget", "Debug", "------> : " + sValue, NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) if "ThermoSetpoint" in ClusterType and (WidgetType == "ThermoSetpoint" and Attribute_ in ("4003", "0012")): setpoint = round(float(value), 2) @@ -435,22 +433,22 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, nValue = 0 sValue = str_round(float(setpoint), 2) # 2 decimals self.log.logging("Widget", "Debug", "------> Thermostat Setpoint: %s %s" % (0, setpoint), NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) if "Analog" in ClusterType: if WidgetType == "Voc" and Attribute_ == "": sValue = str( value ) - UpdateDevice_v2(self, Devices, device_unit, 0, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "Motionac01" and Ep == "01": # Motionac01 if value <= 7: nValue= value + 1 sValue = str(nValue * 10) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) elif WidgetType == "Analog": # Analog Value from Analog Input cluster - UpdateDevice_v2(self, Devices, device_unit, 0, value, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, value, BatteryLevel, SignalLevel) if ("XCube" in ClusterType) or ("Analog" in ClusterType and model_name in ("lumi.sensor_cube.aqgl01", "lumi.sensor_cube")): # XCube Aqara or Xcube if WidgetType == "Aqara" : @@ -464,7 +462,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging("Widget", "Debug", "----------> XCube update device with data = " + str(value), NwkId) nValue = int(value) sValue = value - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) elif Ep == "03": # Magic Cube Aqara Rotation if Attribute_ == "0055": # Rotation Angle @@ -477,7 +475,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # Update Text widget ( unit + 1 ) nValue = 0 sValue = value - UpdateDevice_v2(self, Devices, device_unit + 1, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_unit + 1, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) else: self.log.logging("Widget", "Debug", "----------> XCube update with data = " + str(value), NwkId) @@ -495,43 +493,43 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, "--------> XCube update device with data = %s , nValue: %s sValue: %s" % (value, nValue, sValue), NwkId, ) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) elif WidgetType == "XCube" and Ep == "02": # cube xiaomi if value == "0000": # shake state = "10" data = "01" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif value in ("0204", "0200", "0203", "0201", "0202", "0205"): state = "50" data = "05" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif value in ("0103", "0100", "0104", "0101", "0102", "0105"): # Slide/M%ove state = "20" data = "02" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif value == "0003": # Free Fall state = "70" data = "07" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif "0004" <= value <= "0059": # 90° state = "30" data = "03" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif value >= "0060": # 180° state = "90" data = "09" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) if "Valve" in ClusterType and (WidgetType == "Valve" and Attribute_ in ("026d", "4001", "0008")): nValue = round(value, 1) sValue = str(nValue) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if "ThermoMode" in ClusterType: # Thermostat Mode self.log.logging("Widget", "Debug", "ThermoMode %s WidgetType: %s Value: %s (%s) Attribute_: %s" % ( @@ -553,28 +551,28 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if _mode in THERMOSTAT_MODE: nValue = _mode sValue = THERMOSTAT_MODE[_mode] - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "HeatingSwitch" and Attribute_ == "001c": self.log.logging("Widget", "Debug", "------> HeatingSwitch %s" % value, NwkId) if value == 0: - UpdateDevice_v2(self, Devices, device_unit, 0, "Off", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "Off", BatteryLevel, SignalLevel) elif value == 4: - UpdateDevice_v2(self, Devices, device_unit, 1, "On", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "On", BatteryLevel, SignalLevel) elif WidgetType == "HeatingStatus" and Attribute_ == "0124": self.log.logging("Widget", "Debug", "------> HeatingStatus %s" % value, NwkId) if value == 0: - UpdateDevice_v2(self, Devices, device_unit, 0, "Not Heating", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "Not Heating", BatteryLevel, SignalLevel) elif value == 1: - UpdateDevice_v2(self, Devices, device_unit, 1, "Heating", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "Heating", BatteryLevel, SignalLevel) elif WidgetType == "ThermoOnOff" and Attribute_ == "6501": self.log.logging("Widget", "Debug", "------> Thermo On/Off %s" % value, NwkId) if value == 0: - UpdateDevice_v2(self, Devices, device_unit, 0, "Off", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "Off", BatteryLevel, SignalLevel) elif value == 1: - UpdateDevice_v2(self, Devices, device_unit, 1, "On", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "On", BatteryLevel, SignalLevel) elif WidgetType == "HACTMODE" and Attribute_ == "e011": # Wiser specific Fil Pilote # value is str @@ -585,7 +583,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if _mode in THERMOSTAT_MODE: sValue = THERMOSTAT_MODE[_mode] nValue = _mode + 1 - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "LegranCableMode" and ClusterId == "fc01": # Legrand # value is str @@ -598,7 +596,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = THERMOSTAT_MODE[_mode] nValue = int(sValue) // 10 - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "FIP" and Attribute_ in ("0000", "e020"): # Wiser specific Fil Pilote # value is str @@ -626,10 +624,10 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if _mode_hact == 0: self.log.logging("Widget", "Debug", "------> Disable FIP widget: %s" % (value), NwkId) nValue = 0 - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif ClusterId == "fc40": # Legrand FIP - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "ThermoMode_3" and Attribute_ == "001c": # 0x00: Off @@ -654,7 +652,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging("Widget", "Error", "MajDomoDevice - Unknown value for %s/%s, ClusterId: %s, value: %s, Attribute_=%s," % (NwkId, Ep, ClusterId, value, Attribute_), NwkId) return self.log.logging("Widget", "Log", "------> Thermostat Mode 3 %s %s:%s" % (value, nValue, sValue), NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "ThermoMode_2" and Attribute_ == "001c": # Use by Tuya TRV @@ -666,67 +664,67 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, nValue = SWITCH_SELECTORS["ThermoMode_2"][value][0] sValue = SWITCH_SELECTORS["ThermoMode_2"][value][1] self.log.logging("Widget", "Debug", "------> Thermostat Mode 2 %s %s:%s" % (value, nValue, sValue), NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "ThermoMode_4" and Attribute_ == "001c": # Use by Tuya TRV nValue = value sValue = '%02d' %( nValue * 10) self.log.logging("Widget", "Debug", "------> Thermostat Mode 4 %s %s:%s" % (value, nValue, sValue), NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType in ("ThermoMode_5", "ThermoMode_6") and Attribute_ == "001c": # Use by Tuya TRV nValue = value sValue = '%02d' %( nValue * 10) self.log.logging("Widget", "Debug", "------> Thermostat Mode 5 %s %s:%s" % (value, nValue, sValue), NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif model_name == "TS0601-eTRV5" and WidgetType in ("ThermoMode_5",) and Attribute_ == "6501": if value == 0: self.log.logging("Widget", "Debug", "------> Thermostat Mode 5 %s %s:%s" % (value, 0, '00'), NwkId) - UpdateDevice_v2(self, Devices, device_unit, 0, '00', BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, '00', BatteryLevel, SignalLevel) elif WidgetType in ("ThermoMode", "ACMode", ) and Attribute_ == "001c": # value seems to come as int or str. To be fixed self.log.logging("Widget", "Debug", "------> Thermostat Mode %s type: %s" % (value, type(value)), NwkId) if value in THERMOSTAT_MODE_2_LEVEL: if THERMOSTAT_MODE_2_LEVEL[value] == "00": # Off - UpdateDevice_v2(self, Devices, device_unit, 0, "00", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "00", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "20": # Cool - UpdateDevice_v2(self, Devices, device_unit, 1, "10", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "10", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "30": # Heat - UpdateDevice_v2(self, Devices, device_unit, 2, "20", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 2, "20", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "40": # Dry - UpdateDevice_v2(self, Devices, device_unit, 3, "30", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 3, "30", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "50": # Fan - UpdateDevice_v2(self, Devices, device_unit, 4, "40", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 4, "40", BatteryLevel, SignalLevel) elif WidgetType in ("CAC221ACMode", ) and Attribute_ == "001c": self.log.logging("Widget", "Debug", "------> Thermostat CAC221ACMode %s type: %s" % (value, type(value)), NwkId) if value in THERMOSTAT_MODE_2_LEVEL: if THERMOSTAT_MODE_2_LEVEL[value] == "00": # Off - UpdateDevice_v2(self, Devices, device_unit, 0, "00", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "00", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "10": # Auto - UpdateDevice_v2(self, Devices, device_unit, 1, "10", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "10", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "20": # Cool - UpdateDevice_v2(self, Devices, device_unit, 2, "20", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 2, "20", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "30": # Heat - UpdateDevice_v2(self, Devices, device_unit, 3, "30", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 3, "30", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "40": # Dry - UpdateDevice_v2(self, Devices, device_unit, 4, "40", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 4, "40", BatteryLevel, SignalLevel) elif THERMOSTAT_MODE_2_LEVEL[value] == "50": # Fan - UpdateDevice_v2(self, Devices, device_unit, 5, "50", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 5, "50", BatteryLevel, SignalLevel) if ClusterType == "PM25" and WidgetType == "PM25": nvalue = round(value, 0) svalue = "%s" % (nvalue,) - UpdateDevice_v2(self, Devices, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) if ClusterType == "PM25" and WidgetType == "SmokePPM": nvalue = int(value) svalue = "%s" % (nvalue,) - UpdateDevice_v2(self, Devices, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) if ClusterType == "Alarm" and WidgetType == "AirPurifierAlarm": nValue = 0 @@ -744,38 +742,38 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, else: # Green nValue = 1 - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if Attribute_ == "0006" and ClusterType == "FanControl" and WidgetType == "AirPurifierMode": nValue = value sValue = "%s" %(10 * value,) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if Attribute_ == "0007" and ClusterType == "FanControl" and WidgetType == "FanSpeed": nValue = round(value, 1) sValue = str(nValue) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if ClusterType == "Temp" and WidgetType == "AirQuality" and Attribute_ == "0002": # eco2 for VOC_Sensor from Nexturn is provided via Temp cluster nvalue = round(value, 0) svalue = "%s" % (nvalue) - UpdateDevice_v2(self, Devices, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) if ClusterType == "Temp" and WidgetType == "Voc" and Attribute_ == "0003": # voc for VOC_Sensor from Nexturn is provided via Temp cluster svalue = "%s" % (round(value, 1)) - UpdateDevice_v2(self, Devices, device_unit, 0, svalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, svalue, BatteryLevel, SignalLevel) if ClusterType == "Temp" and WidgetType == "CH2O" and Attribute_ == "0004": # ch2o for Tuya Smart Air fis provided via Temp cluster svalue = "%s" % (round(value, 2)) - UpdateDevice_v2(self, Devices, device_unit, 0, svalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, svalue, BatteryLevel, SignalLevel) if ClusterType == "Temp" and WidgetType == "CarbonDioxyde" and Attribute_ == "0005": # CarbonDioxyde for Tuya Smart Air provided via Temp cluster svalue = "%s" % (round(value, 1)) - UpdateDevice_v2(self, Devices, device_unit, 0, svalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, svalue, BatteryLevel, SignalLevel) if ClusterType == "Temp" and WidgetType in ("Temp", "Temp+Hum", "Temp+Hum+Baro") and Attribute_ == "": # temperature @@ -791,19 +789,18 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") if WidgetType == "Temp": - NewNvalue = round(value + adjvalue, 1) NewSvalue = str(round(value + adjvalue, 1)) - self.log.logging("Widget", "Debug", "------> Temp update: %s - %s" % (NewNvalue, NewSvalue)) - UpdateDevice_v2(self, Devices, device_unit, NewNvalue, NewSvalue, BatteryLevel, SignalLevel) + self.log.logging("Widget", "Debug", "------> Temp update: %s" % (NewSvalue)) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum": NewSvalue = f"{round(value + adjvalue, 1)};{current_humi};{current_hum_stat}" self.log.logging("Widget", "Debug", "------> Temp+Hum update: %s" % (NewSvalue)) - UpdateDevice_v2(self, Devices, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum+Baro": NewSvalue = f"{round(value + adjvalue, 1)};{current_humi};{current_hum_stat};{current_baro};{current_baro_forecast}" - UpdateDevice_v2(self, Devices, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) if ClusterType == "Humi" and WidgetType in ("Humi", "Temp+Hum", "Temp+Hum+Baro"): # humidite self.log.logging("Widget", "Debug", "------> Humi: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) @@ -814,16 +811,16 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if WidgetType == "Humi": NewSvalue = "%s" % humi_status self.log.logging("Widget", "Debug", "------> Humi update: %s - %s" % (value, NewSvalue)) - UpdateDevice_v2(self, Devices, device_unit, value, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum": NewSvalue = f"{current_temp};{value};{humi_status}" self.log.logging("Widget", "Debug", "------> Temp+Hum update: %s" % (NewSvalue)) - UpdateDevice_v2(self, Devices, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum+Baro": NewSvalue = f"{current_temp};{value};{humi_status};{current_baro};{current_baro_forecast}" - UpdateDevice_v2(self, Devices, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) if ClusterType == "Baro" and WidgetType in ("Baro", "Temp+Hum+Baro"): self.log.logging("Widget", "Debug", "------> Baro: %s, WidgetType: %s" % (value, WidgetType), NwkId) @@ -838,11 +835,11 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if WidgetType == "Baro": NewSvalue = f"{baroValue};{Bar_forecast}" - UpdateDevice_v2(self, Devices, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum+Baro": NewSvalue = f"{current_temp};{current_humi};{current_hum_stat};{baroValue};{Bar_forecast}" - UpdateDevice_v2(self, Devices, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) if "BSO-Orientation" in ClusterType and WidgetType == "BSO-Orientation": nValue = 1 + (round(int(value, 16) / 10)) @@ -851,7 +848,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = str(nValue * 10) self.log.logging("Widget", "Debug", " BSO-Orientation Angle: 0x%s/%s Converted into nValue: %s sValue: %s" % (value, int(value, 16), nValue, sValue)) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) return if ClusterType == "Switch" and WidgetType == "SwitchAlarm": @@ -863,19 +860,19 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, nValue = value sValue = "%02x" %nValue - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if ClusterType == "TamperSwitch" and WidgetType == "SwitchAlarm": nValue = value sValue = "%02x" %nValue - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if "Notification" in ClusterType and WidgetType == "Notification": # Notification # value is a str containing all Orientation information to be updated on Text Widget nValue = 0 sValue = value - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) if ClusterType in ( "Motion", "Door",) and WidgetType == "Motion": self.log.logging("Widget", "Debug", "------> Motion %s" % (value), NwkId) @@ -887,9 +884,9 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, nValue = value if nValue == 1: - UpdateDevice_v2(self, Devices, device_unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=True) else: - UpdateDevice_v2(self, Devices, device_unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=False) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=False) return if ( @@ -931,7 +928,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "100" else: nValue = 2 - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif ClusterType == "Switch" and WidgetType == "Alarm": pass @@ -942,7 +939,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "Off" else: sValue = "On" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType == "DSwitch": # double switch avec EP different @@ -951,17 +948,17 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if Ep == "01": nValue = 1 sValue = "10" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif Ep == "02": nValue = 2 sValue = "20" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif Ep == "03": nValue = 3 sValue = "30" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif (WidgetType == "TuyaSirenHumi" and Attribute_ != "0172") or (WidgetType == "TuyaSirenTemp" and Attribute_ != "0171") or (WidgetType == "TuyaSiren" and Attribute_ != "0168"): return @@ -972,7 +969,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "Off" else: sValue = "On" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=False) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=False) elif WidgetType == "DButton": # double bouttons avec EP different lumi.sensor_86sw2 @@ -981,17 +978,17 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if Ep == "01": nValue = 1 sValue = "10" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) elif Ep == "02": nValue = 2 sValue = "20" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) elif Ep == "03": nValue = 3 sValue = "30" - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) elif WidgetType == "DButton_3": # double bouttons avec EP different lumi.sensor_86sw2 @@ -1011,7 +1008,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, state = "30" data = "03" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif Ep == "02": if _value == 1: @@ -1026,7 +1023,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, state = "60" data = "06" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif Ep == "03": if _value == 1: @@ -1041,28 +1038,28 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, state = "90" data = "09" - UpdateDevice_v2(self, Devices, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, int(data), str(state), BatteryLevel, SignalLevel, ForceUpdate_=True) elif WidgetType == "LvlControl" or WidgetType in ( "ColorControlRGB", "ColorControlWW", "ColorControlRGBWW", "ColorControlFull", "ColorControl", ): if switchType in (13, 14, 15, 16): # Required Numeric value if value == "00": - UpdateDevice_v2(self, Devices, device_unit, 0, "0", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) else: # We are in the case of a Shutter/Blind inverse. If we receieve a Read Attribute telling it is On, great # We only update if the shutter was off before, otherwise we will keep its Level. if prev_nValue == 0 and prev_sValue == "Off": - UpdateDevice_v2(self, Devices, device_unit, 1, "100", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "100", BatteryLevel, SignalLevel) else: # Required Off and On if value == "00": - UpdateDevice_v2(self, Devices, device_unit, 0, "Off", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "Off", BatteryLevel, SignalLevel) else: if prev_sValue == "Off": # We do update only if this is a On/off - UpdateDevice_v2(self, Devices, device_unit, 1, "On", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 1, "On", BatteryLevel, SignalLevel) elif WidgetType == "VenetianInverted" and model_name in ( "PR412", "CPR412", "CPR412-E") and ClusterId == "0006": self.log.logging( "Widget", "Debug", "--++-> %s/%s ClusterType: %s Updating %s Value: %s" % (NwkId, Ep, ClusterType, WidgetType, value), NwkId, ) @@ -1080,7 +1077,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "0" self.log.logging("Widget", "Debug", "------> %s %s/%s Value: %s:%s" % (WidgetType, NwkId, Ep, nValue, sValue), NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) elif WidgetType in ("VenetianInverted", "Venetian", "WindowCovering", "VanneInverted", "Vanne", "Curtain", "CurtainInverted"): _value = int(value, 16) @@ -1098,7 +1095,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, nValue = 17 else: nValue = 2 - UpdateDevice_v2(self, Devices, device_unit, nValue, str(_value), BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, str(_value), BatteryLevel, SignalLevel) elif ( ((ClusterType == "FanControl" and WidgetType == "FanControl") or ("ThermoMode" in ClusterType and WidgetType == "ACSwing" and Attribute_ == "fd00")) @@ -1111,7 +1108,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, ): # Thermo mode is Off, let's switch off Wing and Fan self.log.logging("Widget", "Debug", "------> Switch off as System Mode is Off") - UpdateDevice_v2(self, Devices, device_unit, 0, "00", BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "00", BatteryLevel, SignalLevel) else: if WidgetType in SWITCH_SELECTORS and value in SWITCH_SELECTORS[WidgetType]: @@ -1124,7 +1121,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, _ForceUpdate = SWITCH_SELECTORS[WidgetType]["ForceUpdate"] self.log.logging("Widget", "Debug", f"------> Switch update WidgetType: {WidgetType} with {str(SWITCH_SELECTORS[WidgetType])}", NwkId) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=_ForceUpdate) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=_ForceUpdate) else: self.log.logging("Widget", "Error", f"------> len(SWITCH_SELECTORS[{WidgetType}][{value}]) == {len(selector_values)}", NwkId) else: @@ -1133,37 +1130,37 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if "WindowCovering" in ClusterType and WidgetType in ("VenetianInverted", "Venetian", "Vanne", "VanneInverted", "WindowCovering", "Curtain", "CurtainInverted", "Blind"): nValue, sValue = _domo_convert_windows_covering( self, value, Devices, device_id_ieee, device_unit, NwkId, WidgetType ) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel) if "LvlControl" in ClusterType: # LvlControl ( 0x0008) tuple_value = _domo_convert_level_control( self, Devices, device_id_ieee, device_unit, value, NwkId, switchType, WidgetType, prev_nValue, prev_sValue) if tuple_value : - UpdateDevice_v2(self, Devices, device_unit, tuple_value[0], tuple_value[1], BatteryLevel, SignalLevel, ForceUpdate_=tuple_value[2]) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, tuple_value[0], tuple_value[1], BatteryLevel, SignalLevel, ForceUpdate_=tuple_value[2]) if ClusterType in ( "ColorControlRGB", "ColorControlWW", "ColorControlRGBWW", "ColorControlFull", "ColorControl", ) and ClusterType == WidgetType: # We just manage the update of the Dimmer (Control Level) nValue, sValue = _domo_convert_colorcontrol( self, value ) - UpdateDevice_v2(self, Devices, device_unit, nValue, str(sValue), BatteryLevel, SignalLevel, Color_) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, str(sValue), BatteryLevel, SignalLevel, Color_) if "Orientation" in ClusterType and WidgetType == "Orientation": # Xiaomi Vibration # value is a str containing all Orientation information to be updated on Text Widget nValue, sValue = _domo_convert_orientation( value) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) if "Strenght" in ClusterType and WidgetType == "Strenght": # value is a str containing all Orientation information to be updated on Text Widget nValue, sValue = _domo_convert_strenght( value) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) if "Distance" in ClusterType and WidgetType == "Distance": # value is a str containing all Distance information in cm nValue, sValue = _domo_convert_distance( value ) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) if "Lux" in ClusterType and WidgetType == "Lux": nValue, sValue = _domo_convert_lux( value) - UpdateDevice_v2(self, Devices, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=False) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=False) # Check if this Device belongs to a Group. In that case update group CheckUpdateGroup(self, NwkId, Ep, ClusterId) @@ -1432,18 +1429,18 @@ def is_time_to_domo_update(self, NwkId, Ep): return True -def retreive_device_unit( self, Devices, NwkId, Ep, device_id_ieee, ClusterId, WidgetId ): +def retreive_device_unit( self, Devices, NwkId, Ep, device_id_ieee, ClusterId, Widget_Idx ): """ Retreive the Device Unit from the Plugin Database (ClusterType information), then check that unit exists in the Domoticz Devices """ - device_unit = find_widget_unit_from_WidgetID(self, Devices, WidgetId ) + device_unit = find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ) if device_unit is None: - self.log.logging( "Widget", "Error", "Device %s not found !!!" % WidgetId, NwkId) + self.log.logging( "Widget", "Error", "Device %s not found !!!" % Widget_Idx, NwkId) # House keeping, we need to remove this bad clusterType - if remove_bad_cluster_type_entry(self, NwkId, Ep, ClusterId, WidgetId ): - self.log.logging( "Widget", "Log", "WidgetID %s not found, successfully remove the entry from device" % WidgetId, NwkId) + if remove_bad_cluster_type_entry(self, NwkId, Ep, ClusterId, Widget_Idx ): + self.log.logging( "Widget", "Log", "Widget_Idx %s not found, successfully remove the entry from device" % Widget_Idx, NwkId) else: - self.log.logging( "Widget", "Error", "WidgetID %s not found, unable to remove the entry from device" % WidgetId, NwkId) + self.log.logging( "Widget", "Error", "Widget_Idx %s not found, unable to remove the entry from device" % Widget_Idx, NwkId) return None elif not domo_check_unit(self, Devices, device_id_ieee, device_unit): @@ -1645,10 +1642,6 @@ def calculate_baro_forecast(baroValue): return 1 # SUNNY -def str_round(value, n): - return "{:.{n}f}".format(value, n=int(n)) - - def baro_adjustement_value(self, Devices, NwkId, DeviceId, Device_Unit): if self.domoticzdb_DeviceStatus: try: diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 3833f9631..fb97a7edb 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -11,66 +11,68 @@ import time -from Modules.domoticzAbstractLayer import (device_touch_api, domo_update_api, - domoticz_log_api, - timeout_widget_api) +from Modules.domoticzAbstractLayer import ( + device_touch_api, domo_read_BatteryLevel, domo_read_Color, + domo_read_Device_Idx, domo_read_LastUpdate, domo_read_Name, + domo_read_nValue_sValue, domo_read_Options, domo_read_TimedOut, + domo_update_api, domoticz_log_api, is_domoticz_extended, + retreive_widgetid_from_deviceId_unit, timeout_widget_api, + update_battery_api) from Modules.switchSelectorWidgets import SWITCH_SELECTORS from Modules.tools import (is_domoticz_touch, is_domoticz_update_SuppressTriggers, lookupForIEEE) -def RetreiveWidgetTypeList(self, Devices, NwkId, DeviceUnit=None): +def RetreiveWidgetTypeList(self, Devices, device_id_ieee, NwkId, DeviceUnit=None): """ Return a list of tuple ( EndPoint, WidgetType, DeviceId) If DeviceUnit provides we have to return the WidgetType matching this Device Unit. """ - + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList DeviceId: {device_id_ieee} Unit {DeviceUnit}" , NwkId) # Let's retreive All Widgets entries for the entire entry. - ClusterTypeList = [] + to_return_list = [] if DeviceUnit: - WidgetId = str(Devices[DeviceUnit].ID) - self.log.logging("Widget", "Debug", "------> Looking for %s" % WidgetId, NwkId) + Widget_Idx = str(retreive_widgetid_from_deviceId_unit(self, Devices, device_id_ieee, DeviceUnit)) + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList Looking for Device Idx {Widget_Idx}" , NwkId) + + if "ClusterType" not in self.ListOfDevices[NwkId] or self.ListOfDevices[NwkId]["ClusterType"] in ( "", {}): + for iterEp in self.ListOfDevices[NwkId]["Ep"]: + if "ClusterType" in self.ListOfDevices[NwkId]["Ep"][iterEp]: + device_cluster_type_list = self.ListOfDevices[NwkId]["Ep"][iterEp]["ClusterType"] + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList 'ClusterType': {device_cluster_type_list}", NwkId,) + + if DeviceUnit: + if Widget_Idx in device_cluster_type_list: + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList {Widget_Idx} found", NwkId,) + WidgetType = device_cluster_type_list[Widget_Idx] + to_return_list.append((iterEp, Widget_Idx, WidgetType)) + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList returning {to_return_list}", NwkId,) + return to_return_list - if ( - "ClusterType" in self.ListOfDevices[NwkId] - and self.ListOfDevices[NwkId]["ClusterType"] != "" - and self.ListOfDevices[NwkId]["ClusterType"] != {} - ): - # we are on the old fashion with Type at the global level like for the ( Xiaomi lumi.remote.n286acn01 ) - # In that case we don't need a match with the incoming Ep as the correct one is the Widget EndPoint - self.log.logging( - "Widget", "Debug", "------> OldFashion 'ClusterType': %s" % self.ListOfDevices[NwkId]["ClusterType"], NwkId - ) - if DeviceUnit: - if WidgetId in self.ListOfDevices[NwkId]["ClusterType"]: - WidgetType = self.ListOfDevices[NwkId]["ClusterType"][WidgetId] - ClusterTypeList.append(("00", WidgetId, WidgetType)) - return ClusterTypeList - else: - for WidgetId in self.ListOfDevices[NwkId]["ClusterType"]: - WidgetType = self.ListOfDevices[NwkId]["ClusterType"][WidgetId] - ClusterTypeList.append(("00", WidgetId, WidgetType)) + else: + for Widget_Idx in device_cluster_type_list: + WidgetType = device_cluster_type_list[Widget_Idx] + to_return_list.append((iterEp, Widget_Idx, WidgetType)) - for iterEp in self.ListOfDevices[NwkId]["Ep"]: - if "ClusterType" in self.ListOfDevices[NwkId]["Ep"][iterEp]: - self.log.logging( - "Widget", - "Debug", - "------> 'ClusterType': %s" % self.ListOfDevices[NwkId]["Ep"][iterEp]["ClusterType"], - NwkId, - ) - if DeviceUnit: - if WidgetId in self.ListOfDevices[NwkId]["Ep"][iterEp]["ClusterType"]: - WidgetType = self.ListOfDevices[NwkId]["Ep"][iterEp]["ClusterType"][WidgetId] - ClusterTypeList.append((iterEp, WidgetId, WidgetType)) - return ClusterTypeList - else: - for WidgetId in self.ListOfDevices[NwkId]["Ep"][iterEp]["ClusterType"]: - WidgetType = self.ListOfDevices[NwkId]["Ep"][iterEp]["ClusterType"][WidgetId] - ClusterTypeList.append((iterEp, WidgetId, WidgetType)) + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList returning {to_return_list}", NwkId,) + return to_return_list - return ClusterTypeList + # we are on the old fashion with Type at the global level like for the ( Xiaomi lumi.remote.n286acn01 ) + # In that case we don't need a match with the incoming Ep as the correct one is the Widget EndPoint + self.log.logging( "Widget", "Debug", "------> OldFashion 'ClusterType': %s" % self.ListOfDevices[NwkId]["ClusterType"], NwkId ) + if DeviceUnit: + if Widget_Idx in self.ListOfDevices[NwkId]["ClusterType"]: + WidgetType = self.ListOfDevices[NwkId]["ClusterType"][Widget_Idx] + to_return_list.append(("00", Widget_Idx, WidgetType)) + return to_return_list + else: + for Widget_Idx in self.ListOfDevices[NwkId]["ClusterType"]: + WidgetType = self.ListOfDevices[NwkId]["ClusterType"][Widget_Idx] + to_return_list.append(("00", Widget_Idx, WidgetType)) + + self.log.logging("Widget", "Debug", f"RetreiveWidgetTypeList returning {to_return_list}", NwkId,) + return to_return_list def RetreiveSignalLvlBattery(self, NwkID): @@ -81,74 +83,46 @@ def RetreiveSignalLvlBattery(self, NwkID): return ( get_signal_level(self, NwkID), get_battery_level(self, NwkID)) + def get_signal_level(self, NwkID): - - SignalLevel = "" - if "LQI" in self.ListOfDevices[NwkID]: - SignalLevel = self.ListOfDevices[NwkID]["LQI"] + SignalLevel = self.ListOfDevices[NwkID].get("LQI", "") DomoticzRSSI = 12 # Unknown - + # La ZiGate+ USB n'a pas d'amplificateur contrairement à la V1. # Le LQI max de la ZiGate+ (V2) est de 170. Cependant, # la ZiGate+ est moins sensible aux perturbations. # D'après les tests, la portée entre la v1 et la v2 est sensiblement identique même si le LQI n'est pas gérer de la même manière. # La ZiGate v1 par exemple a des pertes de paquets à partir de 50-60 en LQI alors que sur la v2 elle commence à perdre des paquets à 25 LQI. - if self.ZiGateModel and self.ZiGateModel == 2: - SEUIL1 = 15 - SEUIL2 = 35 - SEUIL3 = 120 - else: - SEUIL1 = 30 - SEUIL2 = 75 - SEUIL3 = 180 + + SEUIL1, SEUIL2, SEUIL3 = (15, 35, 120) if self.ZiGateModel and self.ZiGateModel == 2 else (30, 75, 180) if isinstance(SignalLevel, int): - # rssi = round((SignalLevel * 11) / 255) - DomoticzRSSI = 0 if SignalLevel >= SEUIL3: - # SEUIL3 < ZiGate LQI < 255 -> 11 DomoticzRSSI = 11 + elif SignalLevel >= SEUIL2: - # SEUIL2 <= ZiGate LQI <= SEUIL3 --> 4 - 10 ( 6 ) gamme = SEUIL3 - SEUIL2 - SignalLevel = SignalLevel - SEUIL2 - DomoticzRSSI = 4 + round((SignalLevel * 6) / gamme) + DomoticzRSSI = 4 + round((SignalLevel - SEUIL2) * 6 / gamme) + elif SignalLevel >= SEUIL1: - # SEUIL1 < ZiGate LQI < SEUIL2 --> 1 - 3 ( 3 ) gamme = SEUIL2 - SEUIL1 - SignalLevel = SignalLevel - SEUIL1 - DomoticzRSSI = 1 + round((SignalLevel * 3) / gamme) + DomoticzRSSI = 1 + round((SignalLevel - SEUIL1) * 3 / gamme) return DomoticzRSSI def get_battery_level(self, NwkID): - - if "Battery" in self.ListOfDevices[NwkID] and self.ListOfDevices[NwkID]["Battery"] not in ( {}, ): - self.log.logging( - "Widget", - "Debug", - "------> From Battery NwkId: %s Battery: %s Type: %s" - % (NwkID, self.ListOfDevices[NwkID]["Battery"], type(self.ListOfDevices[NwkID]["Battery"])), - NwkID, - ) - if isinstance(self.ListOfDevices[NwkID]["Battery"], (float)): - return int(round((self.ListOfDevices[NwkID]["Battery"]))) - if isinstance(self.ListOfDevices[NwkID]["Battery"], (int)): - return self.ListOfDevices[NwkID]["Battery"] - elif ( - "IASBattery" in self.ListOfDevices[NwkID] - and isinstance(self.ListOfDevices[NwkID]["IASBattery"], int) - ): - self.log.logging( - "Widget", - "Debug", - "------> From IASBattery NwkId: %s Battery: %s Type: %s" - % (NwkID, self.ListOfDevices[NwkID]["IASBattery"], type(self.ListOfDevices[NwkID]["IASBattery"])), - NwkID, - ) - + battery_info = self.ListOfDevices[NwkID].get("Battery", {}) + + if battery_info and battery_info != {}: + self.log.logging( "Widget", "Debug", f"------> From Battery NwkId: {NwkID} Battery: {battery_info} Type: {type(battery_info)}", NwkID, ) + if isinstance(battery_info, (float)): + return int(round(battery_info)) + if isinstance(battery_info, (int)): + return battery_info + elif "IASBattery" in self.ListOfDevices[NwkID] and isinstance(self.ListOfDevices[NwkID]["IASBattery"], int): + self.log.logging( "Widget", "Debug", f"------> From IASBattery NwkId: {NwkID} Battery: {self.ListOfDevices[NwkID]['IASBattery']} Type: {type(self.ListOfDevices[NwkID]['IASBattery'])}", NwkID, ) return self.ListOfDevices[NwkID]["IASBattery"] return 255 @@ -174,269 +148,211 @@ def WidgetForDeviceId(self, NwkId, DeviceId): return WidgetType -def ResetDevice(self, Devices): - # - # Reset all Devices from the ClusterType Motion after 30s - # - self.log.logging( "Widget", "Debug", "ResetDevice") - +def browse_and_reset_devices_if_needed(self, Devices): now = time.time() + if is_domoticz_extended(): + browse_extended_domoticz_devices(self, Devices, now) + + else: + browse_legacy_domoticz_devices(self, Devices, now) + + +def browse_extended_domoticz_devices(self, Devices, now): - for unit in list(Devices): - TimedOutMotion = self.pluginconf.pluginConf["resetMotiondelay"] - TimedOutSwitchButton = self.pluginconf.pluginConf["resetSwitchSelectorPushButton"] - if unit not in Devices: - continue - Ieee = Devices[unit].DeviceID - if Ieee not in self.IEEE2NWK: - # Unknown ! + for device_ieee in Devices: + if device_ieee not in self.IEEE2NWK: continue + for device_unit in Devices[ device_ieee ].Units: + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now) - LUpdate = Devices[unit].LastUpdate - try: - LUpdate = time.mktime(time.strptime(LUpdate, "%Y-%m-%d %H:%M:%S")) - except Exception as e: - self.log.logging( "Widget", "Error", "Something wrong to decode Domoticz LastUpdate %s for Unit: %s Ieee: %s" % (LUpdate, unit, Ieee), ) + +def browse_legacy_domoticz_devices(self, Devices, now): + + for device_unit in list(Devices): + device_ieee = Devices[device_unit].DeviceID + if device_ieee not in self.IEEE2NWK: + # Unknown ! continue + + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now) + - # Look for the corresponding Widget - NWKID = self.IEEE2NWK[Ieee] - if NWKID not in self.ListOfDevices: - # If the NwkId is not found, it may have switch, let's check - ieee_retreived_from_nwkid = lookupForIEEE(self, NWKID, True) - if ieee_retreived_from_nwkid is None or Ieee != ieee_retreived_from_nwkid: - # self.log.logging( "Widget", "Error", "ResetDevice inconsistency %s/%s not in plugin db: %s, Ieee: %s" %( - # NWKID, Ieee, self.ListOfDevices.keys(), str(self.IEEE2NWK) ), NWKID) - continue +def _convert_LastUpdate( last_update ): + try: + return time.mktime(time.strptime(last_update, "%Y-%m-%d %H:%M:%S")) + except Exception as e: + return None - if "Param" in self.ListOfDevices[NWKID]: - if "resetMotiondelay" in self.ListOfDevices[NWKID]["Param"]: - TimedOutMotion = int(self.ListOfDevices[NWKID]["Param"]["resetMotiondelay"]) - if "resetSwitchSelectorPushButton" in self.ListOfDevices[NWKID]["Param"]: - TimedOutSwitchButton = self.ListOfDevices[NWKID]["Param"]["resetSwitchSelectorPushButton"] - ID = Devices[unit].ID - WidgetType = "" - WidgetType = WidgetForDeviceId(self, NWKID, ID) - if WidgetType == "": - continue +def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now): - SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, NWKID) + last_update = _convert_LastUpdate( domo_read_LastUpdate(self, Devices, device_ieee, device_unit,) ) + if last_update is None: + return - if TimedOutMotion and WidgetType in ("Motion", "Vibration"): - resetMotion(self, Devices, NWKID, WidgetType, unit, SignalLevel, BatteryLvl, now, LUpdate, TimedOutMotion) + # Look for the corresponding Widget + nwkid = self.IEEE2NWK[device_ieee] + if nwkid not in self.ListOfDevices: + # If the NwkId is not found, it may have switch, let's check + ieee_retreived_from_nwkid = lookupForIEEE(self, nwkid, True) + if ieee_retreived_from_nwkid is None or device_ieee != ieee_retreived_from_nwkid: + return - elif TimedOutSwitchButton and WidgetType in SWITCH_SELECTORS: - if "ForceUpdate" in SWITCH_SELECTORS[WidgetType] and SWITCH_SELECTORS[WidgetType]["ForceUpdate"]: - resetSwitchSelectorPushButton( self, Devices, NWKID, WidgetType, unit, SignalLevel, BatteryLvl, now, LUpdate, TimedOutSwitchButton, ) - self.log.logging( "Widget", "Debug", "ResetDevice end") + TimedOutMotion, TimedOutSwitchButton = retreive_reset_delays(self, nwkid) + ID = domo_read_Device_Idx(self, Devices, device_ieee, device_unit,) -def resetMotion(self, Devices, NwkId, WidgetType, unit, SignalLevel, BatteryLvl, now, lastupdate, TimedOut): - self.log.logging( "Widget", "Debug", "resetMotion %s %s %s" %( NwkId, WidgetType, unit)) - if Devices[unit].nValue == 0 and Devices[unit].sValue == "Off": - # Nothing to Reset + WidgetType = WidgetForDeviceId(self, nwkid, ID) + if WidgetType == "": return - if self.domoticzdb_DeviceStatus: - from Classes.DomoticzDB import DomoticzDB_DeviceStatus - # Let's check if we have a Device TimeOut specified by end user - if self.domoticzdb_DeviceStatus.retreiveTimeOut_Motion(Devices[unit].ID) > 0: - return + SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, nwkid) + + if TimedOutMotion and WidgetType in ("Motion", "Vibration"): + reset_motion(self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, ID, now, last_update, TimedOutMotion) + + elif TimedOutSwitchButton and WidgetType in SWITCH_SELECTORS: + if "ForceUpdate" in SWITCH_SELECTORS[WidgetType] and SWITCH_SELECTORS[WidgetType]["ForceUpdate"]: + reset_switch_selector_PushButton( self, Devices, nwkid, WidgetType, device_unit, SignalLevel, BatteryLvl, now, last_update, TimedOutSwitchButton, ) - if (now - lastupdate) >= TimedOut: - Devices[unit].Update(nValue=0, sValue="Off") - self.log.logging( "Widget", "Debug", "Last update of the devices %s %s was %s ago" % (unit, WidgetType, (now - lastupdate)), NwkId, ) +def retreive_reset_delays(self, nwkid): + TimedOutMotion = self.pluginconf.pluginConf.get("resetMotiondelay", None) + TimedOutSwitchButton = self.pluginconf.pluginConf.get("resetSwitchSelectorPushButton", None) -def resetSwitchSelectorPushButton( self, Devices, NwkId, WidgetType, unit, SignalLevel, BatteryLvl, now, lastupdate, TimedOut ): - self.log.logging( "Widget", "Debug", "resetSwitchSelectorPushButton %s %s %s" %( NwkId, WidgetType, unit)) + if "Param" in self.ListOfDevices.get(nwkid, {}): + params = self.ListOfDevices[nwkid]["Param"] + TimedOutMotion = int(params.get("resetMotiondelay", TimedOutMotion)) + TimedOutSwitchButton = params.get("resetSwitchSelectorPushButton", TimedOutSwitchButton) - if Devices[unit].nValue == 0: + return TimedOutMotion, TimedOutSwitchButton + + +def reset_motion(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel, BatteryLvl, ID, now, lastupdate, TimedOut): + nValue, sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) + + if nValue == 0 and sValue == "Off" or (now - lastupdate) < TimedOut or (self.domoticzdb_DeviceStatus and self.domoticzdb_DeviceStatus.retreiveTimeOut_Motion(ID) > 0): return - if (now - lastupdate) < TimedOut: + + domo_update_api(self, Devices, DeviceId_, Unit_, nValue=0, sValue="Off") + self.log.logging("WidgetLevel3", "Debug", "Last update of the device %s %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) + + +def reset_switch_selector_PushButton(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel, BatteryLvl, now, lastupdate, TimedOut): + nValue, sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) + + if nValue == 0 or (now - lastupdate) < TimedOut: return - # Domoticz.Log("Options: %s" %Devices[unit].Options) - nValue = 0 + sValue = "0" - if "LevelOffHidden" in Devices[unit].Options and Devices[unit].Options["LevelOffHidden"] == "false": + options = domo_read_Options(self, Devices, DeviceId_, Unit_) + + if "LevelOffHidden" in options and options["LevelOffHidden"] == "false": sValue = "00" - Devices[unit].Update(nValue=nValue, sValue=sValue) - self.log.logging( "Widget", "Debug", "Last update of the devices %s WidgetType: %s was %s ago" % (unit, WidgetType, (now - lastupdate)), NwkId, ) - # Domoticz.Log(" Update nValue: %s sValue: %s" %(nValue, sValue)) + domo_update_api(self, Devices, DeviceId_, Unit_, nValue=0, sValue=sValue) + self.log.logging("WidgetLevel2", "Debug", "Last update of the device %s WidgetType: %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) + -def UpdateDevice_v2(self, Devices, Unit, nValue, sValue, BatteryLvl, SignalLvl, Color_="", ForceUpdate_=False): +def update_domoticz_widget(self, Devices, DeviceId, Unit, nValue, sValue, BatteryLvl, SignalLvl, Color_="", ForceUpdate_=False): - if Unit not in Devices: - self.log.logging("Widget", "Error", "Droping Update to Device due to Unit %s not found" % Unit) + if DeviceId not in self.IEEE2NWK: return - if Devices[Unit].DeviceID not in self.IEEE2NWK: - self.log.logging("Widget", "Error", "Droping Update to Device due to DeviceID %s not found in IEEE2NWK %s" % ( - Devices[Unit].DeviceID, str(self.IEEE2NWK)) ) + _current_battery_level = domo_read_BatteryLevel( self, Devices, DeviceId, Unit, ) + _current_TimedOut = domo_read_TimedOut( self, Devices, DeviceId, ) + _current_color = domo_read_Color( self, Devices, DeviceId, Unit, ) + _cur_nValue, cur_sValue = domo_read_nValue_sValue(self, Devices, DeviceId, Unit) + widget_name = domo_read_Name( self, Devices, DeviceId, Unit, ) + + self.log.logging( "WidgetUpdate", "Debug", "update_domoticz_widget %s:%s:%s %3s:%3s:%5s (%15s)" % ( + nValue, sValue, Color_, BatteryLvl, SignalLvl, ForceUpdate_, widget_name), self.IEEE2NWK[ DeviceId ]) + + update_needed = ( + _cur_nValue != int(nValue) + or cur_sValue != sValue + or (Color_ != "" and _current_color != Color_) + or ForceUpdate_ + or _current_battery_level != int(BatteryLvl) + or _current_TimedOut + ) + + if not update_needed: return + + force_update_conf = self.pluginconf.pluginConf["forceSwitchSelectorPushButton"] and ForceUpdate_ and _cur_nValue == int(nValue) and cur_sValue == sValue - self.log.logging( "Widget", "Debug", "UpdateDevice_v2 %s:%s:%s %3s:%3s:%5s (%15s)" % ( - nValue, sValue, Color_, BatteryLvl, SignalLvl, ForceUpdate_, Devices[Unit].Name), self.IEEE2NWK[Devices[Unit].DeviceID], ) + if force_update_conf: + nReset = 0 + sReset = "0" + if "LevelOffHidden" in Devices[Unit].Options and Devices[Unit].Options["LevelOffHidden"] == "false": + sReset = "00" + domo_update_api(self, Devices, DeviceId, Unit, nReset, sReset) - # Make sure that the Domoticz device still exists (they can be deleted) before updating it - if Unit not in Devices: - return + domo_update_api(self, Devices, DeviceId, Unit, nValue, sValue, SignalLevel=SignalLvl, BatteryLevel=BatteryLvl, TimedOut=0, Color=Color_) - if ( - (Devices[Unit].nValue != int(nValue)) - or (Devices[Unit].sValue != sValue) - or (Color_ != "" and Devices[Unit].Color != Color_) - or ForceUpdate_ - or Devices[Unit].BatteryLevel != int(BatteryLvl) - or Devices[Unit].TimedOut - ): + if self.pluginconf.pluginConf["logDeviceUpdate"]: + self.log.logging( "Widget", "Log", "UpdateDevice - (%15s) %s:%s" % (widget_name, nValue, sValue)) + domoticz_log_api("UpdateDevice - (%15s) %s:%s" % (widget_name, nValue, sValue)) + + self.log.logging( "Widget", "Debug", "---> [Unit: %s] %s:%s:%s %s:%s %s (%15s)" % ( + Unit, nValue, sValue, Color_, BatteryLvl, SignalLvl, ForceUpdate_, widget_name), DeviceId, ) - DeviceID_ = None # This is required when we will use The Extended Framework - if ( - self.pluginconf.pluginConf["forceSwitchSelectorPushButton"] - and ForceUpdate_ - and (Devices[Unit].nValue == int(nValue)) - and (Devices[Unit].sValue == sValue) - ): - - # Due to new version of Domoticz which do not log in case we Update the same value - nReset = 0 - sReset = "0" - if "LevelOffHidden" in Devices[Unit].Options: - LevelOffHidden = Devices[Unit].Options["LevelOffHidden"] - if LevelOffHidden == "false": - sReset = "00" - domo_update_api(self, Devices, DeviceID_, Unit, nReset, sReset) - - domo_update_api(self, Devices, DeviceID_, Unit, nValue, sValue, SignalLevel=SignalLvl, BatteryLevel=BatteryLvl, TimedOut=0, Color=Color_,) - - if self.pluginconf.pluginConf["logDeviceUpdate"]: - domoticz_log_api( "UpdateDevice - (%15s) %s:%s" % (Devices[Unit].Name, nValue, sValue)) - self.log.logging( "Widget", "Debug", "---> [Unit: %s] %s:%s:%s %s:%s %s (%15s)" % ( - Unit, nValue, sValue, Color_, BatteryLvl, SignalLvl, ForceUpdate_, Devices[Unit].Name), self.IEEE2NWK[Devices[Unit].DeviceID], ) def Update_Battery_Device( self, Devices, NwkId, BatteryLvl, ): if not is_domoticz_update_SuppressTriggers( self ): return - if NwkId not in self.ListOfDevices: + ieee = self.ListOfDevices.get(NwkId, {}).get("IEEE") + if ieee is None: return - if "IEEE" not in self.ListOfDevices[NwkId]: - return - ieee = self.ListOfDevices[NwkId]["IEEE"] - - for device_unit in Devices: - if Devices[device_unit].DeviceID != ieee: - continue - self.log.logging( "Widget", "Debug", "Update_Battery_Device Battery: now: %s prev: %s (%15s)" % ( - BatteryLvl, Devices[device_unit].BatteryLevel, Devices[device_unit].Name), ) - - if Devices[device_unit].BatteryLevel == int(BatteryLvl): - continue - - self.log.logging( "Widget", "Debug", "Update_Battery_Device Battery: %s (%15s)" % (BatteryLvl, Devices[device_unit].Name) ) - Devices[device_unit].Update( - nValue=Devices[device_unit].nValue, - sValue=Devices[device_unit].sValue, - BatteryLevel=int(BatteryLvl), - SuppressTriggers=True, - ) - + update_battery_api(self, Devices, ieee, int(BatteryLvl)) + -def timedOutDevice(self, Devices, Unit=None, NwkId=None, MarkTimedOut=True): - - self.log.logging( "Widget", "Debug", "timedOutDevice unit %s nwkid: %s MarkTimedOut: %s" % ( - Unit, NwkId, MarkTimedOut), NwkId, ) +def timedOutDevice(self, Devices, NwkId=None, MarkTimedOut=True): + device_info = self.ListOfDevices.get(NwkId, {}) + if not device_info.get("IEEE") or device_info.get("Health") == "Disabled": + return - _Unit = _nValue = _sValue = None + device_info["Health"] = "TimedOut" if MarkTimedOut else "Live" + self.log.logging("WidgetLevel3", "Debug", f"timedOutDevice Object {NwkId} MarkTimedOut: {MarkTimedOut}") - if Unit: - DeviceID = None - if MarkTimedOut and not Devices[Unit].TimedOut: - timeout_widget_api(self, Devices, DeviceID, Unit, 1) + _IEEE = device_info["IEEE"] + timeout_widget_api(self, Devices, _IEEE, 1) if MarkTimedOut and not domo_read_TimedOut(self, Devices, _IEEE) else timeout_widget_api(self, Devices, _IEEE, 0) - elif not MarkTimedOut and Devices[Unit].TimedOut: - timeout_widget_api(self, Devices, DeviceID, Unit, 0) - elif NwkId: - if NwkId not in self.ListOfDevices: - return - if "IEEE" not in self.ListOfDevices[NwkId]: - return - _IEEE = self.ListOfDevices[NwkId]["IEEE"] - if self.ListOfDevices[NwkId]["Health"] == "Disabled": - return - - self.ListOfDevices[NwkId]["Health"] = "TimedOut" if MarkTimedOut else "Live" - for x in list(Devices): - if Devices[x].DeviceID != _IEEE: - continue - if Devices[x].TimedOut: - if MarkTimedOut: - continue - timeout_widget_api(self, Devices, _IEEE, x, 0) - self.log.logging( "Widget", "Debug", "reset timedOutDevice unit %s nwkid: %s " % ( - Devices[x].Name, NwkId), NwkId, ) +def lastSeenUpdate(self, Devices, NwkId=None): + """Just touch the device widgets and if needed remove TimedOut flag""" + + self.log.logging("WidgetLevel3", "Debug", f"lastSeenUpdate Nwkid {NwkId}") - elif MarkTimedOut: - timeout_widget_api(self, Devices, _IEEE, x, 1) - self.log.logging( "Widget", "Debug", "timedOutDevice unit %s nwkid: %s " % ( - Devices[x].Name, NwkId), NwkId, ) + device_data = self.ListOfDevices.get(NwkId, {}) + if not device_data or "IEEE" not in device_data: + return + device_data.setdefault("Stamp", {"Time": {}, "MsgType": {}, "LastSeen": 0}) + device_data["Stamp"].setdefault("LastSeen", 0) + device_data.setdefault("ErrorManagement", 0) -def lastSeenUpdate(self, Devices, Unit=None, NwkId=None): + health_data = device_data.get("Health") + if health_data not in ("Disabled", ): + device_data["Health"] = "Live" - # Purpose is here just to touch the device and update the Last Seen - # It might required to call Touch everytime we receive a message from the device and not only when update is requested. + device_data["Stamp"]["LastSeen"] = int(time.time()) + _IEEE = device_data.get("IEEE", "") - if Unit: - # self.log.logging( "Widget", "Debug2", "Touch unit %s" %( Devices[Unit].Name )) - if not is_domoticz_touch(self): - self.log.logging( "Widget", "Log", "Not the good Domoticz level for lastSeenUpdate %s %s %s" % ( - self.VersionNewFashion, self.DomoticzMajor, self.DomoticzMinor), NwkId, ) - return - # Extract NwkId from Device Unit - IEEE = Devices[Unit].DeviceID - if Devices[Unit].TimedOut: - timedOutDevice(self, Devices, Unit=Unit, MarkTimedOut=0) - else: - device_touch_api( self, Devices, IEEE, Unit) - if NwkId is None and "IEEE" in self.IEEE2NWK: - NwkId = self.IEEE2NWK[IEEE] + if not is_domoticz_touch(self): + self.log.logging("WidgetLevel3", "Debug", f"Not the good Domoticz level for Touch {self.VersionNewFashion} {self.DomoticzMajor} {self.DomoticzMinor}", NwkId) + return + + self.log.logging("WidgetLevel3", "Debug", f"lastSeenUpdate Nwkid {NwkId} DeviceId {_IEEE}") - if NwkId: - if NwkId not in self.ListOfDevices: - return - if "IEEE" not in self.ListOfDevices[NwkId]: - return - if "Stamp" not in self.ListOfDevices[NwkId]: - self.ListOfDevices[NwkId]["Stamp"] = {"Time": {}, "MsgType": {}, "LastSeen": 0} - if "LastSeen" not in self.ListOfDevices[NwkId]["Stamp"]: - self.ListOfDevices[NwkId]["Stamp"]["LastSeen"] = 0 - if "ErrorManagement" in self.ListOfDevices[NwkId]: - self.ListOfDevices[NwkId]["ErrorManagement"] = 0 - if "Health" in self.ListOfDevices[NwkId] and self.ListOfDevices[NwkId]["Health"] not in ( "Disabled", ): - self.ListOfDevices[NwkId]["Health"] = "Live" - - self.ListOfDevices[NwkId]["Stamp"]["LastSeen"] = int(time.time()) - _IEEE = self.ListOfDevices[NwkId]["IEEE"] - if not is_domoticz_touch(self): - self.log.logging( "Widget", "Log", "Not the good Domoticz level for Touch %s %s %s" % ( - self.VersionNewFashion, self.DomoticzMajor, self.DomoticzMinor), NwkId, ) - return - for x in list(Devices): - if x in Devices and Devices[x].DeviceID == _IEEE: - if Devices[x].TimedOut: - timedOutDevice(self, Devices, Unit=x, MarkTimedOut=0) - else: - device_touch_api( self, Devices, _IEEE, x) + timeout_widget_api(self, Devices, _IEEE, 0) if domo_read_TimedOut(self, Devices, _IEEE) else device_touch_api(self, Devices, _IEEE) def GetType(self, Addr, Ep): Type = "" self.log.logging( - "Widget", + "WidgetLevel3", "Debug", "GetType - Model " + str(self.ListOfDevices[Addr]["Model"]) @@ -451,12 +367,12 @@ def GetType(self, Addr, Ep): if _Model != {} and _Model in list(self.DeviceConf.keys()): # verifie si le model a ete detecte et est connu dans le fichier DeviceConf.txt if Ep in self.DeviceConf[_Model]["Ep"]: - self.log.logging("Widget", "Debug", "Ep: %s found in DeviceConf" % Ep) + self.log.logging("WidgetLevel3", "Debug", "Ep: %s found in DeviceConf" % Ep) if "Type" in self.DeviceConf[_Model]["Ep"][Ep]: - self.log.logging("Widget", "Debug", " 'Type' entry found inf DeviceConf") + self.log.logging("WidgetLevel3", "Debug", " 'Type' entry found inf DeviceConf") if self.DeviceConf[_Model]["Ep"][Ep]["Type"] != "": self.log.logging( - "Widget", + "WidgetLevel3", "Debug", "GetType - Found Type in DeviceConf : %s" % self.DeviceConf[_Model]["Ep"][Ep]["Type"], Addr, @@ -465,26 +381,26 @@ def GetType(self, Addr, Ep): Type = str(Type) else: self.log.logging( - "Widget", "Debug" "GetType - Found EpEmpty Type in DeviceConf for %s/%s" % (Addr, Ep), Addr + "WidgetLevel3", "Debug" "GetType - Found EpEmpty Type in DeviceConf for %s/%s" % (Addr, Ep), Addr ) else: self.log.logging( - "Widget", "Debug" "GetType - EpType not found in DeviceConf for %s/%s" % (Addr, Ep), Addr + "WidgetLevel3", "Debug" "GetType - EpType not found in DeviceConf for %s/%s" % (Addr, Ep), Addr ) else: Type = self.DeviceConf[_Model]["Type"] self.log.logging( - "Widget", "Debug", "GetType - Found Type in DeviceConf for %s/%s: %s " % (Addr, Ep, Type), Addr + "WidgetLevel3", "Debug", "GetType - Found Type in DeviceConf for %s/%s: %s " % (Addr, Ep, Type), Addr ) else: self.log.logging( - "Widget", + "WidgetLevel3", "Debug", "GetType - Model: >%s< not found with Ep: %s in DeviceConf. Continue with ClusterSearch" % (self.ListOfDevices[Addr]["Model"], Ep), Addr, ) - self.log.logging("Widget", "Debug", " - List of Entries: %s" % str(self.DeviceConf.keys()), Addr) + self.log.logging("WidgetLevel3", "Debug", " - List of Entries: %s" % str(self.DeviceConf.keys()), Addr) Type = "" # Check ProfileID/ZDeviceD @@ -499,7 +415,7 @@ def GetType(self, Addr, Ep): elif self.ListOfDevices[Addr]["Manufacturer"] == "100b": # Philipps Hue pass elif str(self.ListOfDevices[Addr]["Manufacturer"]).find("LIVOLO") != -1: - self.log.logging("Widget", "Debug", "GetType - Found Livolo based on Manufacturer", Addr) + self.log.logging("WidgetLevel3", "Debug", "GetType - Found Livolo based on Manufacturer", Addr) return "LivoloSWL/LivoloSWR" # Finaly Chec on Cluster @@ -507,13 +423,13 @@ def GetType(self, Addr, Ep): if cluster in ("Type", "ClusterType", "ColorMode"): continue - self.log.logging("Widget", "Debug", "GetType - check Type for Cluster : " + str(cluster)) + self.log.logging("WidgetLevel3", "Debug", "GetType - check Type for Cluster : " + str(cluster)) if Type != "" and Type[:1] != "/": Type += "/" Type += TypeFromCluster(self, cluster, create_=True, ModelName=_Model) - self.log.logging("Widget", "Debug", "GetType - Type will be set to : " + str(Type)) + self.log.logging("WidgetLevel3", "Debug", "GetType - Type will be set to : " + str(Type)) # Type+=Type # Ne serait-il pas plus simple de faire un .split( '/' ), puis un join ('/') @@ -529,9 +445,9 @@ def GetType(self, Addr, Ep): if Type[0:] == "/": Type = Type[1:] - self.log.logging("Widget", "Debug", "GetType - ClusterSearch return : %s" % Type, Addr) + self.log.logging("WidgetLevel3", "Debug", "GetType - ClusterSearch return : %s" % Type, Addr) - self.log.logging("Widget", "Debug", "GetType returning: %s" % Type, Addr) + self.log.logging("WidgetLevel3", "Debug", "GetType returning: %s" % Type, Addr) return Type @@ -575,7 +491,7 @@ def GetType(self, Addr, Ep): def TypeFromCluster(self, cluster, create_=False, ProfileID_="", ZDeviceID_="", ModelName=""): self.log.logging( - "Widget", + "WidgetLevel3", "Debug", "---> ClusterSearch - Cluster: %s, ProfileID: %s, ZDeviceID: %s, create: %s" % (cluster, ProfileID_, ZDeviceID_, create_), @@ -711,7 +627,7 @@ def subtypeRGB_FromProfile_Device_IDs(EndPoints, Model, ProfileID, ZDeviceID, Co return Subtype -def remove_bad_cluster_type_entry(self, NwkId, Ep, clusterID, WidgetId ): +def remove_bad_cluster_type_entry(self, NwkId, Ep, clusterID, Widget_Idx ): if NwkId not in self.ListOfDevices: return @@ -720,9 +636,9 @@ def remove_bad_cluster_type_entry(self, NwkId, Ep, clusterID, WidgetId ): if ( Ep in self.ListOfDevices[NwkId]["Ep"] and "ClusterType" in self.ListOfDevices[NwkId]["Ep"][Ep] - and WidgetId in self.ListOfDevices[NwkId]["Ep"][Ep]["ClusterType"] + and Widget_Idx in self.ListOfDevices[NwkId]["Ep"][Ep]["ClusterType"] ): - del self.ListOfDevices[ NwkId ][ "Ep"][ Ep ][ "ClusterType" ][ WidgetId ] + del self.ListOfDevices[ NwkId ][ "Ep"][ Ep ][ "ClusterType" ][ Widget_Idx ] return True return False diff --git a/Modules/domoticzAPI.py b/Modules/domoticzAPI.py deleted file mode 100644 index 234f326ca..000000000 --- a/Modules/domoticzAPI.py +++ /dev/null @@ -1,73 +0,0 @@ - -import Domoticz - -# Configuration Helpers -def setConfigItem(Key=None, Attribute="", Value=None): - - Config = {} - if not isinstance(Value, (str, int, float, bool, bytes, bytearray, list, dict)): - Domoticz.Error("setConfigItem - A value is specified of a not allowed type: '" + str(type(Value)) + "'") - return Config - - if isinstance(Value, dict): - # There is an issue that Configuration doesn't allow None value in dictionary ! - # Replace none value to 'null' - Value = prepare_dict_for_storage(Value, Attribute) - - try: - Config = Domoticz.Configuration() - if Key is None: - Config = Value # set whole configuration if no key specified - else: - Config[Key] = Value - - Config = Domoticz.Configuration(Config) - except Exception as inst: - Domoticz.Error("setConfigItem - Domoticz.Configuration operation failed: '" + str(inst) + "'") - return None - return Config - - -def getConfigItem(Key=None, Attribute="", Default=None): - - Domoticz.Log("Loading %s - %s from Domoticz sqlite Db" %( Key, Attribute)) - - if Default is None: - Default = {} - Value = Default - try: - Config = Domoticz.Configuration() - Value = Config if Key is None else Config[Key] - except KeyError: - Value = Default - except Exception as inst: - Domoticz.Error( - "getConfigItem - Domoticz.Configuration read failed: '" - + str(inst) - + "'" - ) - - return repair_dict_after_load(Value, Attribute) - - -def prepare_dict_for_storage(dict_items, Attribute): - - from base64 import b64encode - - if Attribute in dict_items: - dict_items[Attribute] = b64encode(str(dict_items[Attribute]).encode("utf-8")) - dict_items["Version"] = 1 - return dict_items - - -def repair_dict_after_load(b64_dict, Attribute): - if b64_dict in ("", {}): - return {} - if "Version" not in b64_dict: - Domoticz.Log("repair_dict_after_load - Not supported storage") - return {} - if Attribute in b64_dict: - from base64 import b64decode - - b64_dict[Attribute] = eval(b64decode(b64_dict[Attribute])) - return b64_dict diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 120427855..bf58dd5d7 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: domoAbstractLayer.py Description: Set of functions which abstract Domoticz Legacy and Extended framework API @@ -10,52 +17,181 @@ import time -import Domoticz - +#import DomoticzEx as Domoticz +#DOMOTICZ_EXTENDED_API = True# +import Domoticz as Domoticz DOMOTICZ_EXTENDED_API = False DELAY_BETWEEN_TOUCH = 60 +def is_domoticz_extended(): + return DOMOTICZ_EXTENDED_API + +# Communication Helpers +def domoticz_connection( name, transport, protocol, address=None, port=None, baud=None): + if address and baud: + return Domoticz.Connection( Name=name, Transport=transport, Protocol=protocol, Address=address, Port=port, Baud=baud) + + if address: + return Domoticz.Connection( Name=name, Transport=transport, Protocol=protocol, Address=address, Port=port) + + return Domoticz.Connection( Name=name, Transport=transport, Protocol=protocol, Port=port ) + + +# Configuration Helpers +def setConfigItem(Key=None, Attribute="", Value=None): + + Config = {} + if not isinstance(Value, (str, int, float, bool, bytes, bytearray, list, dict)): + domoticz_error_api("setConfigItem - A value is specified of a not allowed type: '" + str(type(Value)) + "'") + return Config + + if isinstance(Value, dict): + # There is an issue that Configuration doesn't allow None value in dictionary ! + # Replace none value to 'null' + Value = prepare_dict_for_storage(Value, Attribute) + + try: + Config = Domoticz.Configuration() + if Key is None: + Config = Value # set whole configuration if no key specified + else: + Config[Key] = Value + + Config = Domoticz.Configuration(Config) + except Exception as inst: + domoticz_error_api("setConfigItem - Domoticz.Configuration operation failed: '" + str(inst) + "'") + return None + return Config + + +def getConfigItem(Key=None, Attribute="", Default=None): + + Domoticz.Log("Loading %s - %s from Domoticz sqlite Db" %( Key, Attribute)) + + if Default is None: + Default = {} + Value = Default + try: + Config = Domoticz.Configuration() + Value = Config if Key is None else Config[Key] + except KeyError: + Value = Default + except Exception as inst: + domoticz_error_api( + "getConfigItem - Domoticz.Configuration read failed: '" + + str(inst) + + "'" + ) + + return repair_dict_after_load(Value, Attribute) + + +def prepare_dict_for_storage(dict_items, Attribute): + + from base64 import b64encode + + if Attribute in dict_items: + dict_items[Attribute] = b64encode(str(dict_items[Attribute]).encode("utf-8")) + dict_items["Version"] = 1 + return dict_items + + +def repair_dict_after_load(b64_dict, Attribute): + if b64_dict in ("", {}): + return {} + if "Version" not in b64_dict: + Domoticz.Log("repair_dict_after_load - Not supported storage") + return {} + if Attribute in b64_dict: + from base64 import b64decode + + b64_dict[Attribute] = eval(b64decode(b64_dict[Attribute])) + return b64_dict + + +# Devices helpers +#def load_list_of_domoticz_widget(self, Devices): +# """Use at plugin start to creat an index of Domoticz Widget. It is also called after a Widget removal and when a new device has been paired. +# +# Args: +# Devices (dictionary): Devices dictionary provided by the Domoticz framework +# """ +# self.log.logging("AbstractDz", "Debug", "load_list_of_domoticz_widget") +# +# if DOMOTICZ_EXTENDED_API: +# for device_key, device in Devices.items(): +# unit_data = device.Units +# for unit_key, unit in unit_data.items(): +# self.ListOfDomoticzWidget[unit.ID] = { +# "Name": unit.Name, +# "Unit": unit_key, +# "DeviceID": device_key, +# "Switchtype": unit.SwitchType, +# "Subtype": unit.SubType, +# } +# else: +# for unit_key in Devices: +# self.log.logging( "AbstractDz", "Debug", f"Loading {unit_key}") +# unit_id = Devices[unit_key].ID +# self.ListOfDomoticzWidget[unit_id] = { +# "Name": Devices[unit_key].Name, +# "Unit": unit_key, +# "DeviceID": Devices[unit_key].DeviceID, +# "Switchtype": Devices[unit_key].SwitchType, +# "Subtype": Devices[unit_key].SubType, +# } +# +# +# +# for x in self.ListOfDomoticzWidget: +# self.log.logging( "AbstractDz", "Log", f"Loading Devices[{x}]: {self.ListOfDomoticzWidget[ x ]}") def load_list_of_domoticz_widget(self, Devices): - """Use at plugin start to creat an index of Domoticz Widget. It is also called after a Widget removal and when a new device has been paired. + """ + Use at plugin start to create an index of Domoticz Widgets. + It is also called after a Widget removal and when a new device has been paired. Args: Devices (dictionary): Devices dictionary provided by the Domoticz framework """ + self.log.logging("AbstractDz", "Debug", "load_list_of_domoticz_widget") - for x in list(Devices): - if DOMOTICZ_EXTENDED_API: - for y in list(Devices[x].Units): - self.log.logging( "AbstractDz", "Debug", "Loading Devices[%s].Units[%s]: %s" % ( - x, y, Devices[x].Units[y].Name) ) - self.ListOfDomoticzWidget[ x ] = { - "Name": Devices[x].Units[y].Name, - "Unit": y, - "DeviceID": Devices[x].Units[y].DeviceID, - "Switchtype": Devices[x].Units[y].SwitchType, - "Subtype": Devices[x].Units[y].SubType, + if DOMOTICZ_EXTENDED_API: + for device_ieee in Devices: + for unit_key in Devices[ device_ieee ].Units: + unit_data = Devices[ device_ieee ].Units[ unit_key ] + widget_info = { + "Name": unit_data.Name, + "Unit": unit_key, + "DeviceID": device_ieee, + "Switchtype": unit_data.SwitchType, + "Subtype": unit_data.SubType, } - else: - # Legacy - self.ListOfDomoticzWidget[ Devices[x].ID ] = { - "Name": Devices[x].Name, - "Unit": x, - "DeviceID": Devices[x].DeviceID, - "Switchtype": Devices[x].SwitchType, - "Subtype": Devices[x].SubType, + self.ListOfDomoticzWidget[unit_data.ID] = widget_info + else: + for unit_key, device in Devices.items(): + widget_info = { + "Name": device.Name, + "Unit": unit_key, + "DeviceID": device.DeviceID, + "Switchtype": device.SwitchType, + "Subtype": device.SubType, } + self.log.logging("AbstractDz", "Debug", f"Loading {unit_key}") + unit_id = device.ID + self.ListOfDomoticzWidget[unit_id] = widget_info - self.log.logging( "AbstractDz", "Debug", "Loading Devices[%s]: %s" % ( - Devices[x].ID,str(self.ListOfDomoticzWidget[ Devices[x].ID] )) ) + for x in self.ListOfDomoticzWidget: + self.log.logging( "AbstractDz", "Debug", f"Loading Devices[{x}]: {self.ListOfDomoticzWidget[ x ]}") -def find_widget_unit_from_WidgetID(self, Devices, WidgetID ): +def find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ): """Find the Widget Unit with Legay framework, the tuple ( DeviceID, Unit ) with the Extended Framework Args: Devices (dict): Devices dictionary provided by the Domoticz framework - WidgetID (str): Domoticz Widget Idx, usally store in the "ClusterType" attribute associated to each Ep + Widget_Idx (str): Domoticz Widget Idx, usally store in the "ClusterType" attribute associated to each Ep Should be used in domoMaj, when looking for the 'DeviceUnit' Returns: @@ -64,56 +200,60 @@ def find_widget_unit_from_WidgetID(self, Devices, WidgetID ): """ - #self.log.logging( "AbstractDz", "Debug", "find_widget_unit - WidgetId: %s (%s)" % (WidgetID, type(WidgetID))) - WidgetID = int(WidgetID) - if WidgetID in self.ListOfDomoticzWidget: - self.log.logging( "AbstractDz", "Debug", "- Found in ListOfDomoticzWidget" ) - if DOMOTICZ_EXTENDED_API: - # TO-DO - self.log.logging( "AbstractDz", "Error", "find_widget_unit() Extended Framework Not IMPLEMENTED") - return None - - else: - #Legacy - self.log.logging( "AbstractDz", "Debug", "- returning %s (%s)" %( - self.ListOfDomoticzWidget[WidgetID]['Unit'], type(self.ListOfDomoticzWidget[WidgetID]['Unit']))) - return self.ListOfDomoticzWidget[WidgetID]['Unit'] + self.log.logging( "AbstractDz", "Debug", f"find_widget_unit_from_WidgetID - Widget_Idx: {Widget_Idx} ({type(Widget_Idx)})") + + Widget_Idx = int(Widget_Idx) + if Widget_Idx in self.ListOfDomoticzWidget: + unit = self.ListOfDomoticzWidget[Widget_Idx]['Unit'] + self.log.logging("AbstractDz", "Debug", f"- returning {unit} ({type(unit)})") + return unit - self.log.logging( "AbstractDz", "Log", "- Not Found in ListOfDomoticzWidget, looking the old way" ) + self.log.logging( "AbstractDz", "Log", f"- {Widget_Idx} Not Found in ListOfDomoticzWidget, looking the old way" ) # In case it is not found with the new way, let's keep the old way # TO-DO: Remove for x in list(Devices): if DOMOTICZ_EXTENDED_API: for y in list(Devices[x].Units): - if Devices[x].Units[y].ID == WidgetID: - return ( x, y ) + if Devices[x].Units[y].ID == Widget_Idx: + return y - elif Devices[x].ID == WidgetID: + elif Devices[x].ID == Widget_Idx: return x return None -def how_many_slot_available( Devices, DeviceId=None): +def retreive_widgetid_from_deviceId_unit(self, Devices, DeviceId, Unit): + return next( ( x for x in self.ListOfDomoticzWidget if self.ListOfDomoticzWidget[x]["DeviceID"] == DeviceId and self.ListOfDomoticzWidget[x]["Unit"] == Unit ), None, ) + + +def find_first_unit_widget_from_deviceID(self, Devices, DeviceID): + """ return the first unit for a specific DeviceID else return None""" + if DOMOTICZ_EXTENDED_API: + if DeviceID in Devices: + for unit in Devices[DeviceID].Units: + return unit + return None + + return next((x for x in Devices if Devices[x].DeviceID == DeviceID), None) + + +def find_legacy_DeviceID_from_unit(self, Devices, Unit): + return Devices[ Unit ].DeviceID if Unit in Devices else None + + +def how_many_legacy_slot_available( Devices): """Return the number of unit slot available Args: Devices (dictionary): Devices dictionary provided by the Domoticz framework - DeviceId (str, optional): DeviceID (ieee). Defaults to None (means Legacy framework) Returns: int: number of available unit slot """ - # If DeviceId is None, then we are in Legacy mode - if DeviceId is None: - return sum(x not in Devices for x in range( 1, 255 )) - - if DeviceId in Devices: - # Look for how many entries left for this specific DeviceID ( IEEE ) - return sum( y not in Devices[ DeviceId ].Units[ y ] for y in range(1, 255) ) - - return None + return sum(x not in Devices for x in range( 1, 255 )) + def FreeUnit(self, Devices, DeviceId, nbunit_=1): """Look for a Free Unit number. If nbunit > 1 then we look for nbunit consecutive slots @@ -156,8 +296,10 @@ def _free_unit_in_device( list_of_units, nbunit_): return None if DOMOTICZ_EXTENDED_API: - available_units = set(Devices[DeviceId].Units.keys()) + self.log.logging("AbstractDz", "Debug", f"FreeUnit - looking for a free unit in {DeviceId}") + available_units = set(Devices[DeviceId].Units.keys()) if DeviceId in Devices else [] return _free_unit_in_device( available_units, nbunit_ ) + # Legacy framework available_units = set(Devices.keys()) @@ -165,6 +307,12 @@ def _free_unit_in_device( list_of_units, nbunit_): return _free_unit_in_device( available_units, nbunit_ ) +def is_device_ieee_in_domoticz_db(self, Devices, DeviceID_): + self.log.logging("AbstractDz", "Debug", f"is_device_ieee_in_domoticz_db: DeviceID: {DeviceID_}") + + return DOMOTICZ_EXTENDED_API and DeviceID_ in Devices or any(DeviceID_ == device.DeviceID for device in Devices.values()) + + def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Type_=None, Subtype_=None, Switchtype_=None, widgetOptions=None, Image=None): """abstract layer to be used for Legacy or Extended framework in order to create a Domoticz Widget @@ -188,6 +336,8 @@ def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Typ self.log.logging("AbstractDz", "Debug", "domo_create_api DeviceID: %s,Name: %s,Unit: %s,TypeName: %s,Type: %s,Subtype: %s,Switchtype: %s, widgetOptions= %s, Image: %s" %( DeviceID_, Name_, Unit_, widgetType, Type_, Subtype_, Switchtype_, widgetOptions, Image,)) + Name_ = f"{self.pluginParameters['Name']} - {Name_}" + # Determine the correct class to use based on the API type domoticz_device_api_class = Domoticz.Unit if DOMOTICZ_EXTENDED_API else Domoticz.Device @@ -206,14 +356,7 @@ def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Typ Type_ = 244 Subtype_ = 62 Switchtype_ = 18 - myDev = domoticz_device_api_class( - DeviceID=DeviceID_, - Name=Name_, - Unit=Unit_, - Type=Type_, - Subtype=Subtype_, - Switchtype=Switchtype_, - Options=widgetOptions,) + myDev = domoticz_device_api_class( DeviceID=DeviceID_, Name=Name_, Unit=Unit_, Type=Type_, Subtype=Subtype_, Switchtype=Switchtype_,Options=widgetOptions,) elif Image: self.log.logging("AbstractDz", "Debug", "- based on Image %s" %Image) @@ -238,7 +381,17 @@ def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Typ return myDev.ID -def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel=None, BatteryLevel=None, TimedOut=None, Color="", Options=None): +def domo_delete_widget( self, Devices, DeviceID_, Unit_): + self.log.logging("AbstractDz", "Log", "domo_delete_widget: DeviceID_ : %s Unit_: %s " %( DeviceID_, Unit_)) + + if DOMOTICZ_EXTENDED_API: + Devices[DeviceID_].Units[Unit_].Delete() + return + if Unit_ in self.Devices: + self.Devices[Unit_].Delete() + + +def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel=None, BatteryLevel=None, TimedOut=None, Color="", Options=None, SuppressTriggers=False): """ Does a widget (domoticz device) value update ( nValue,sValue, Color, Battery and Signal Level) Calls from UpdateDevice_v2 @@ -262,21 +415,25 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel if Color != "": Devices[DeviceID_].Units[Unit_].Color = Color - Devices[DeviceID_].Units[Unit_].TimedOut = 0 + Devices[DeviceID_].TimedOut = 0 if BatteryLevel is not None: Devices[DeviceID_].Units[Unit_].BatteryLevel = BatteryLevel - Devices[DeviceID_].Units[Unit_].TimedOut = 0 + Devices[DeviceID_].TimedOut = 0 if SignalLevel is not None: Devices[DeviceID_].Units[Unit_].SignalLevel = SignalLevel - Devices[DeviceID_].Units[Unit_].TimedOut = 0 + Devices[DeviceID_].TimedOut = 0 if TimedOut is not None: - Devices[DeviceID_].Units[Unit_].TimedOut = TimedOut + Devices[DeviceID_].TimedOut = TimedOut - if Options is not None: - Devices[DeviceID_].Units[Unit_].Options = Options + try: + if Options is not None: + Devices[DeviceID_].Units[Unit_].Options = Options + + except Exception as e: + self.log.logging("AbstractDz", "Debug", f"domo_update_api: Cannot Write Attribute Option with {Options}") Devices[DeviceID_].Units[Unit_].Update(Log=True) return @@ -301,9 +458,58 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel # Perform the update with the defined parameters self.log.logging("AbstractDz", "Debug", "domo_update_api: update_params %s" %(update_params)) - Devices[Unit_].Update(**update_params) + if SuppressTriggers: + Devices[Unit_].Update(**update_params, SuppressTriggers=True,) + else: + Devices[Unit_].Update(**update_params,) + +def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): + self.log.logging("AbstractDz", "Log", "domo_update_name: DeviceID_ : %s Unit_: %s Name: %s" %(DeviceID_, Unit_, Name_)) + + if DOMOTICZ_EXTENDED_API and Devices[DeviceID_].Units[Unit_].Name != Name_: + Devices[DeviceID_].Units[Unit_].Name = Name_ + Devices[DeviceID_].Units[Unit_].Update(Log=True) + return + + nValue = Devices[Unit_].nValue + sValue = Devices[Unit_].sValue + Devices[Unit_].Update(nValue, sValue, Name=Name_) + +def domo_update_witchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): + + self.log.logging("AbstractDz", "Log", "domo_update_witchType_SubType_Type DeviceID: %s,Unit: %s,Type: %s,Subtype: %s,Switchtype: %s" %( + DeviceID_, Unit_, Type_, Subtype_, Switchtype_)) + + if DOMOTICZ_EXTENDED_API: + # Due to bug https://github.com/domoticz/domoticz/issues/6027 (on extended Framework ) + return + # Devices[DeviceID_].Units[Unit_].Type = Type_ + # Devices[DeviceID_].Units[Unit_].SubType = Subtype_ + # Devices[DeviceID_].Units[Unit_].SwitchType = Switchtype_ + # Devices[DeviceID_].Units[Unit_].Update(Log=True) + # return + + nValue = Devices[Unit_].nValue + sValue = Devices[Unit_].sValue + Devices[Unit_].Update(nValue, sValue, Type=Type_, SubType=Subtype_, SwitchType=Switchtype_) + + +def domo_browse_widgets(self, Devices): + """ return list of DeviceId, Unit """ + self.log.logging("AbstractDz", "Log", "domo_browse_widgets") + + list_domoticz_widgets = [] + if DOMOTICZ_EXTENDED_API: + for deviceId in Devices: + list_domoticz_widgets.extend((deviceId, unit) for unit in Devices[deviceId].Units) + return list_domoticz_widgets + + list_domoticz_widgets.extend( (Devices[unit].DeviceID, unit) for unit in Devices ) + return list_domoticz_widgets + + def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): """ Read the nValue and sValue of a device unit. @@ -316,6 +522,7 @@ def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): Returns: Tuple: A tuple containing the nValue and sValue of the device unit. """ + self.log.logging("AbstractDz", "Debug", "domo_read_nValue_sValue: DeviceID: %s Unit: %s" %(DeviceID, Unit)) if DOMOTICZ_EXTENDED_API: _unit = Devices[DeviceID].Units[Unit] @@ -324,22 +531,63 @@ def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): return _unit.nValue, _unit.sValue -def domo_read_TimedOut( self, Devices, DeviceId_, Unit_, ): - return ( Devices[DeviceId_].Units[Unit_].TimedOut if DOMOTICZ_EXTENDED_API else Devices[Unit_].TimedOut ) + +def domo_read_TimedOut( self, Devices, DeviceId_ ): + """ Retreive TimedOut flag, stop as soon as 1 TimedOut widget detected """ + self.log.logging("AbstractDz", "Debug", f"domo_read_TimedOut: DeviceID: {DeviceId_}") + if DOMOTICZ_EXTENDED_API and DeviceId_ in Devices: + return Devices[ DeviceId_].TimedOut + + # Legacy + return next( + ( 1 for x in Devices if Devices[x].DeviceID == DeviceId_ and Devices[x].TimedOut ), 0, ) + + +def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_,): + #self.log.logging("AbstractDz", "Debug", f"domo_read_LastUpdate: DeviceID: {DeviceId_} Unit {Unit_}") + return ( Devices[DeviceId_].Units[Unit_].LastUpdate if DOMOTICZ_EXTENDED_API else Devices[Unit_].LastUpdate ) + + +def domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ): + self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") + return ( Devices[DeviceId_].Units[Unit_].BatteryLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].BatteryLevel ) + + +def domo_read_SignalLevel( self, Devices, DeviceId_, Unit_, ): + self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") + return ( Devices[DeviceId_].Units[Unit_].SignalLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].SignalLevel ) + + +def domo_read_Color( self, Devices, DeviceId_, Unit_, ): + self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceId_} Unit {Unit_}") + return ( Devices[DeviceId_].Units[Unit_].Color if DOMOTICZ_EXTENDED_API else Devices[Unit_].Color ) + + +def domo_read_Name( self, Devices, DeviceId_, Unit_, ): + self.log.logging("AbstractDz", "Debug", f"domo_read_Name: DeviceID: {DeviceId_} Unit {Unit_}") + return Devices[DeviceId_].Units[Unit_].Name if DOMOTICZ_EXTENDED_API else Devices[Unit_].Name + def domo_read_Options( self, Devices, DeviceId_, Unit_,): + self.log.logging("AbstractDz", "Debug", f"domo_read_Options: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].Options if DOMOTICZ_EXTENDED_API else Devices[Unit_].Options ) + def domo_read_Device_Idx(self, Devices, DeviceId_, Unit_,): + self.log.logging("AbstractDz", "Debug", f"domo_read_Device_Idx: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].ID if DOMOTICZ_EXTENDED_API else Devices[Unit_].ID ) - + + def domo_check_unit(self, Devices, DeviceId_, Unit_): + self.log.logging("AbstractDz", "Debug", f"domo_check_unit: DeviceID: {DeviceId_} Unit {Unit_}") if DOMOTICZ_EXTENDED_API: return Unit_ in Devices[DeviceId_].Units else: return Unit_ in Devices + def domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit): + self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceID} Unit {Unit}") if DOMOTICZ_EXTENDED_API: _unit = Devices[DeviceID].Units[Unit] else: @@ -348,40 +596,58 @@ def domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit): return _unit.SwitchType, _unit.SubType, _unit.Type -def _is_meter_widget( self, Devices,DeviceID_, Unit_): - # self.log.logging("AbstractDz", "Debug", "_is_meter_widget: %s %s" %(DeviceID_, Unit_)) +def _is_meter_widget(self, Devices, DeviceID_, Unit_): if DOMOTICZ_EXTENDED_API: + device = Devices.get(DeviceID_) + unit = device.Units[Unit_] if device and Unit_ in device.Units else None + else: + unit = Devices.get(Unit_) + + if unit: return ( - Devices[DeviceID_].Units[Unit_].SwitchType == 0 - and Devices[DeviceID_].Units[Unit_].SubType == 29 - and Devices[DeviceID_].Units[Unit_].Type == 243 + unit.SwitchType == 0 + and unit.SubType == 29 + and unit.Type == 243 ) - return ( - Devices[Unit_].SwitchType == 0 - and Devices[Unit_].SubType == 29 - and Devices[Unit_].Type == 243 - ) + return False -def _is_device_tobe_switched_off(self, Devices,DeviceID_, Unit_): - self.log.logging("AbstractDz", "Debug", "is_device_tobe_switched_off: %s %s" %(DeviceID_, Unit_)) +def _is_device_tobe_switched_off(self, Devices, DeviceID_, Unit_): + self.log.logging("AbstractDz", "Debug", f"is_device_tobe_switched_off: {DeviceID_} {Unit_}") + if DOMOTICZ_EXTENDED_API: + unit = Devices.get(DeviceID_).Units.get(Unit_) if Devices.get(DeviceID_) else None + else: + unit = Devices.get(Unit_) + + if unit: return ( - (Devices[DeviceID_].Units[Unit_].Type == 244 and Devices[DeviceID_].Units[Unit_].SubType == 73 and Devices[DeviceID_].Units[Unit_].SwitchType == 7) - or (Devices[DeviceID_].Units[Unit_].Type == 241 and Devices[DeviceID_].Units[Unit_].SwitchType == 7) + (unit.Type == 244 and unit.SubType == 73 and unit.SwitchType == 7) + or (unit.Type == 241 and unit.SwitchType == 7) ) - return ( - (Devices[Unit_].Type == 244 and Devices[Unit_].SubType == 73 and Devices[Unit_].SwitchType == 7) - or (Devices[Unit_].Type == 241 and Devices[Unit_].SwitchType == 7) - ) + return False + + +def device_touch_api(self, Devices, DeviceId_): + """Touch all Devices Widgets""" + #self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") + + units = Devices[DeviceId_].Units if DOMOTICZ_EXTENDED_API and DeviceId_ in Devices else Devices + + for unit in list(units): + device_touch_unit_api(self, Devices, DeviceId_, unit) + -def device_touch_api(self, Devices, DeviceId_, Unit_): - #self.log.logging("AbstractDz", "Debug", f"device_touch: {DeviceId_} {Unit_}") +def device_touch_unit_api(self, Devices, DeviceId_, Unit_): + """ Touch one widget for a particular Device """ + #self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") # In case of Meter Device (kWh), we must not touch it, otherwise it will destroy the metering # Type, Subtype, SwitchType # 243|29|0 - + if _sanity_check_device_unit(self, Devices, DeviceId_, Unit_): + return + if _is_meter_widget(self, Devices, DeviceId_, Unit_): return @@ -397,37 +663,85 @@ def device_touch_api(self, Devices, DeviceId_, Unit_): # Last Touch was done more than 30 seconds ago. Devices[DeviceId_].Units[Unit_].Touch() if DOMOTICZ_EXTENDED_API else Devices[Unit_].Touch() return - #self.log.logging("AbstractDz", "Debug", f"device_touch too early: {DeviceId_} {Unit_}") -def timeout_widget_api(self, Devices, DeviceId_, Unit_, timeout_value): +def timeout_widget_api(self, Devices, DeviceId_, timeout_value): + """ TimedOut all Device Widgets """ + self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId_}") + + if DOMOTICZ_EXTENDED_API: + Devices[ DeviceId_].TimedOut = timeout_value + if timeout_value == 1 and self.pluginconf.pluginConf["deviceOffWhenTimeOut"]: + # Then we will switch off as per User setting + for unit in Devices[ DeviceId_].Units: + _switch_off_widget_due_to_timedout(self, Devices, DeviceId_, unit) + else: + for unit in Devices: + if Devices[ unit ].DeviceID == DeviceId_: + timeout_legacy_device_unit_api(self, Devices, DeviceId_, unit, timeout_value) + + +def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_value): + """ TimedOut one Device widget """ + + self.log.logging("AbstractDz", "Debug", f"timeout_legacy_device_unit_api: {DeviceId_} {Unit_} {timeout_value}") if _is_meter_widget( self, Devices, DeviceId_, Unit_): return _nValue, _sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) - _TimedOut = domo_read_TimedOut( self, Devices, DeviceId_, Unit_, ) + _TimedOut = domo_read_TimedOut( self, Devices, DeviceId_, ) - self.log.logging("Widget", "Debug", "timeout_widget unit %s -> %s from %s:%s %s" % ( + self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api unit %s -> %s from %s:%s %s" % ( Devices[Unit_].Name, bool(timeout_value), _nValue, _sValue, Devices[Unit_].TimedOut)) if _TimedOut != timeout_value: # Update is required - if ( - timeout_value == 1 - and self.pluginconf.pluginConf["deviceOffWhenTimeOut"] - and ( (_nValue == 1 and _sValue == "On") or _is_device_tobe_switched_off(self, Devices,DeviceId_, Unit_) ) - ): - # Then we will switch off as per User setting - domo_update_api(self, Devices, DeviceId_, Unit_, 0, "Off", TimedOut=timeout_value) + if timeout_value == 1 and self.pluginconf.pluginConf["deviceOffWhenTimeOut"]: + _switch_off_widget_due_to_timedout(self, Devices, DeviceId_, Unit_) else: domo_update_api(self, Devices, DeviceId_, Unit_, _nValue, _sValue, TimedOut=timeout_value) - self.log.logging("Widget", "Debug", "timeout_widget DeviceId %s unit %s -> %s completed" % (DeviceId_, Unit_, bool(timeout_value))) + self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api DeviceId %s unit %s -> %s completed" % (DeviceId_, Unit_, bool(timeout_value))) -def domoticz_log_api( message): +def update_battery_api(self, Devices, DeviceId, battery_level): + self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId} to {battery_level}") + + units = Devices[DeviceId].Units if DOMOTICZ_EXTENDED_API and DeviceId in Devices else Devices - Domoticz.Log( message ) + for unit in units: + update_battery_device_unit_api(self, Devices, DeviceId, unit,battery_level) + + +def update_battery_device_unit_api(self, Devices, DeviceId_, Unit_, battery_level): + + if domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ) == battery_level: + return + + nValue, sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) + + domo_update_api(self, Devices, DeviceId_, Unit_, nValue, sValue, BatteryLevel=battery_level,SuppressTriggers=True) + + +def _switch_off_widget_due_to_timedout(self, Devices, DevicesId, Unit): + self.log.logging("Widget", "Debug", f"_switch_off_widget_due_to_timedout DeviceId {DevicesId} unit {Unit}") + _nValue, _sValue = domo_read_nValue_sValue(self, Devices, DevicesId, Unit) + if (_nValue == 1 and _sValue == "On") or _is_device_tobe_switched_off(self, Devices, DevicesId, Unit): + domo_update_api(self, Devices, DevicesId, Unit, 0, "Off", TimedOut=1) + + +def domoticz_log_api( message): + Domoticz.Log( message ) + + +def domoticz_error_api( message): + Domoticz.Error( message ) + + +def domoticz_status_api( message): + Domoticz.Status( message ) + + def is_dimmable_switch(self, Devices, DeviceId, Unit): _switchType, _subType, _type = domo_read_SwitchType_SubType_Type(self, Devices, DeviceId, Unit) if check_widget(_switchType, _subType, _type) == "Dimmable_Switch": @@ -470,3 +784,11 @@ def find_partially_opened_nValue(switch_type, sub_type, widget_type): def check_widget(switch_type, sub_type, widget_type): key = (switch_type, sub_type, widget_type) return DIMMABLE_WIDGETS.get(key,{}).get("Widget") + + +def _sanity_check_device_unit(self, Devices, device_ieee, unit): + """ check that device_ieee, unit exist in Domoticz Db""" + return ( + (DOMOTICZ_EXTENDED_API and (device_ieee not in Devices or unit not in Devices[device_ieee].Units)) + or (not DOMOTICZ_EXTENDED_API and unit not in Devices) + ) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index df1048849..cce4b1f58 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -16,6 +16,7 @@ from Modules.basicOutputs import getListofAttribute from Modules.casaia import pollingCasaia from Modules.danfoss import danfoss_room_sensor_polling +from Modules.domoticzAbstractLayer import is_device_ieee_in_domoticz_db from Modules.domoTools import timedOutDevice from Modules.pairingProcess import (binding_needed_clusters_with_zigate, processNotinDBDevices) @@ -23,6 +24,7 @@ from Modules.pluginDbAttributes import STORE_CONFIGURE_REPORTING from Modules.readAttributes import (READ_ATTRIBUTES_REQUEST, ReadAttribute_ZLinkyIndex, + ReadAttributeReq, ReadAttributeReq_Scheduled_ZLinky, ReadAttributeReq_ZLinky, ReadAttributeRequest_0b04_050b_0505_0508, @@ -39,19 +41,18 @@ ReadAttributeRequest_0702_ZLinky_TIC, ReadAttributeRequest_ff66, ping_device_with_read_attribute, - ping_tuya_device, - ping_devices_via_group) + ping_devices_via_group, ping_tuya_device) from Modules.schneider_wiser import schneiderRenforceent from Modules.tools import (ReArrangeMacCapaBasedOnModel, deviceconf_device, - get_device_nickname, getListOfEpForCluster, is_hex, + get_device_nickname, getAttributeValue, + getListOfEpForCluster, is_hex, is_time_to_perform_work, mainPoweredDevice, - night_shift_jobs, removeNwkInList, getAttributeValue) + night_shift_jobs, removeNwkInList) from Modules.tuyaTRV import tuya_switch_online from Modules.zb_tables_management import mgmt_rtg, mgtm_binding from Modules.zigateConsts import HEARTBEAT, MAX_LOAD_ZIGATE from Zigbee.zdpCommands import (zdp_node_descriptor_request, zdp_NWK_address_request) -from Modules.readAttributes import ReadAttributeReq # Read Attribute trigger: Every 10" # Configure Reporting trigger: Every 15 @@ -901,26 +902,7 @@ def processListOfDevices(self, Devices): NWKID, ) # Let's check if the device still exist in Domoticz - for Unit in Devices: - if self.ListOfDevices[NWKID]["IEEE"] == Devices[Unit].DeviceID: - self.log.logging( - "Heartbeat", - "Debug", - "processListOfDevices - %s is still connected cannot remove. NwkId: %s IEEE: %s " - % (Devices[Unit].Name, NWKID, self.ListOfDevices[NWKID]["IEEE"]), - NWKID, - ) - fnd = True - break - else: # We browse the all Devices and didn't find any IEEE. - if "IEEE" in self.ListOfDevices[NWKID]: - self.log.logging( "Heartbeat", "Log", "processListOfDevices - No corresponding device in Domoticz for %s/%s" % ( - NWKID, str(self.ListOfDevices[NWKID]["IEEE"])) ) - else: - self.log.logging( "Heartbeat", "Log", "processListOfDevices - No corresponding device in Domoticz for %s" % (NWKID)) - fnd = False - - if not fnd: + if not is_device_ieee_in_domoticz_db(self, Devices, self.ListOfDevices[NWKID]["IEEE"]): # Not devices found in Domoticz, so we are safe to remove it from Plugin if self.ListOfDevices[NWKID]["IEEE"] in self.IEEE2NWK: self.log.logging( "Heartbeat", "Status", "processListOfDevices - Removing %s / %s from IEEE2NWK." % ( diff --git a/Modules/pairingProcess.py b/Modules/pairingProcess.py index 167802812..3a6d69c40 100644 --- a/Modules/pairingProcess.py +++ b/Modules/pairingProcess.py @@ -24,6 +24,7 @@ from Modules.bindings import bindDevice, reWebBind_Clusters, unbindDevice from Modules.casaia import casaia_pairing from Modules.domoCreate import CreateDomoDevice +from Modules.domoticzAbstractLayer import is_device_ieee_in_domoticz_db from Modules.domoTools import CLUSTER_TO_TYPE from Modules.livolo import livolo_bind from Modules.lumi import enable_click_mode_aqara, enableOppleSwitch @@ -337,12 +338,11 @@ def interview_state_createDB(self, Devices, NWKID, RIA, status): self.log.logging("Pairing", "Debug", "[%s] NEW OBJECT: %s Trying to create Domoticz device(s)" % (RIA, NWKID)) IsCreated = False # Let's check if the IEEE is not known in Domoticz - for x in Devices: - if self.ListOfDevices[NWKID].get("IEEE") and Devices[ x ].DeviceID == str(self.ListOfDevices[NWKID]["IEEE"]): - IsCreated = True - self.log.logging("Pairing", "Error", "processNotinDBDevices - Devices already exist. " + Devices[x].Name + " with " + str(self.ListOfDevices[NWKID])) - self.log.logging("Pairing", "Error", "processNotinDBDevices - Please cross check the consistency of the Domoticz and Plugin database.") - break + + if is_device_ieee_in_domoticz_db(self, Devices, self.ListOfDevices[NWKID].get("IEEE")): + IsCreated = True + self.log.logging("Pairing", "Error", "There are alreday Widget(s) associated for this objet %s in Domoticz" % str(self.ListOfDevices[NWKID]) ) + return if not IsCreated: full_provision_device(self, Devices, NWKID, RIA, status) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 09e7d3f91..d5d8c925e 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -15,8 +15,11 @@ import sys from pathlib import Path -import Domoticz +#import DomoticzEx as Domoticz +import Domoticz as Domoticz + from Modules.tools import how_many_devices +from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { "zigpy": "0.63.0", @@ -76,7 +79,7 @@ def get_domoticz_version( self, domoticz_version ): return _old_fashon_domoticz(self, lst_version, domoticz_version) if len(lst_version) != 3: - Domoticz.Error( "Domoticz version %s unknown not supported, please upgrade to a more recent"% ( + domoticz_error_api( "Domoticz version %s unknown not supported, please upgrade to a more recent"% ( domoticz_version) ) return _domoticz_not_compatible(self) @@ -97,7 +100,7 @@ def _old_fashon_domoticz(self, lst_version, domoticz_version): return True # Old fashon Versioning - Domoticz.Error( "Domoticz version %s %s %s not supported, please upgrade to a more recent" % ( + domoticz_error_api( "Domoticz version %s %s %s not supported, please upgrade to a more recent" % ( domoticz_version, major, minor) ) return _domoticz_not_compatible(self) diff --git a/Modules/restartPlugin.py b/Modules/restartPlugin.py index 916b9ebd7..44c4ff7f3 100644 --- a/Modules/restartPlugin.py +++ b/Modules/restartPlugin.py @@ -5,9 +5,9 @@ # import os -import urllib.parse +import urllib.parse -import Domoticz +from Modules.domoticzAbstractLayer import domoticz_log_api, domoticz_status_api LINUX_CURL_COMMAND = "/usr/bin/curl" WINDOWS_CURL_COMMAND = r"c:\Windows\System32\curl.exe" @@ -17,7 +17,7 @@ def restartPluginViaDomoticzJsonApi(self, stop=False, erasePDM=False, url_base_a curl_command = WINDOWS_CURL_COMMAND if os.name == 'nt' else LINUX_CURL_COMMAND if not os.path.isfile(curl_command): - Domoticz.Log("Unable to restart the plugin, %s not available" % curl_command) + domoticz_log_api("Unable to restart the plugin, %s not available" % curl_command) return erasePDM = "True" if erasePDM else "False" @@ -48,10 +48,10 @@ def restartPluginViaDomoticzJsonApi(self, stop=False, erasePDM=False, url_base_a if "LogLevel" in self.pluginParameters: url_infos["loglevel"] = self.pluginParameters["LogLevel"] - Domoticz.Log("URL INFOS %s" %url_infos) + domoticz_log_api("URL INFOS %s" %url_infos) url += urllib.parse.urlencode(url_infos, quote_via=urllib.parse.quote ) - Domoticz.Status("Plugin Restart command : %s" % url) + domoticz_status_api("Plugin Restart command : %s" % url) _cmd = curl_command + " '%s' &" % url os.system(_cmd) # nosec diff --git a/Modules/tools.py b/Modules/tools.py index f9920e1a0..88cc465c1 100644 --- a/Modules/tools.py +++ b/Modules/tools.py @@ -25,6 +25,7 @@ from Modules.database import WriteDeviceList from Modules.pluginDbAttributes import STORE_CONFIGURE_REPORTING from Modules.zigateConsts import HEARTBEAT +from Modules.domoticzAbstractLayer import domo_read_Device_Idx, domo_read_Name HEX_DIGIT = "0123456789abcdefABCDEF" INT_DIGIT = "0123456789" @@ -48,6 +49,9 @@ def Hex_Format(taille, value): value = "0" + value return str(value) +def str_round(value, n): + return "{:.{n}f}".format(value, n=int(n)) + def voltage2batteryP(voltage, volt_max, volt_min): if voltage > volt_max: @@ -251,13 +255,7 @@ def DeviceExist(self, Devices, lookupNwkId, lookupIEEE=""): found = True reconnectNWkDevice(self, lookupNwkId, lookupIEEE, exitsingNwkId) - # Let's send a Notfification - devName = "" - for x in list(Devices.keys()): - if Devices[x].DeviceID == lookupIEEE: - devName = Devices[x].Name - break - self.adminWidgets.updateNotificationWidget( Devices, "Reconnect %s with %s/%s" % (devName, lookupNwkId, lookupIEEE)) + self.adminWidgets.updateNotificationWidget( Devices, "Reconnect %s %s with %s" % (lookupNwkId, lookupIEEE, exitsingNwkId)) return found @@ -335,47 +333,47 @@ def removeDeviceInList(self, Devices, IEEE, Unit): if IEEE not in self.IEEE2NWK: return - key = self.IEEE2NWK[IEEE] - ID = Devices[Unit].ID - - if ( "ClusterTye" in self.ListOfDevices[key] ): + nwkid = self.IEEE2NWK[IEEE] + ID = domo_read_Device_Idx(self, Devices, IEEE, Unit,) + widget_name = domo_read_Name( self, Devices, IEEE, Unit, ) + if ( "ClusterTye" in self.ListOfDevices[nwkid] ): # We are in the old fasho V. 3.0.x Where ClusterType has been migrated from Domoticz - if str(ID) in self.ListOfDevices[key]["ClusterType"]: - del self.ListOfDevices[key]["ClusterType"][ID] # Let's remove that entry - self.log.logging("PluginTools", "Log", "removeDeviceInList - removing : %s in %s" % (ID, str(self.ListOfDevices[key]["ClusterType"]))) + if str(ID) in self.ListOfDevices[nwkid]["ClusterType"]: + del self.ListOfDevices[nwkid]["ClusterType"][ID] # Let's remove that entry + self.log.logging("PluginTools", "Log", "removeDeviceInList - removing : %s in %s" % (ID, str(self.ListOfDevices[nwkid]["ClusterType"]))) else: - for tmpEp in list(self.ListOfDevices[key]["Ep"].keys()): + for tmpEp in list(self.ListOfDevices[nwkid]["Ep"].keys()): # Search this DeviceID in ClusterType if ( - "ClusterType" in self.ListOfDevices[key]["Ep"][tmpEp] - and str(ID) in self.ListOfDevices[key]["Ep"][tmpEp]["ClusterType"] + "ClusterType" in self.ListOfDevices[nwkid]["Ep"][tmpEp] + and str(ID) in self.ListOfDevices[nwkid]["Ep"][tmpEp]["ClusterType"] ): - del self.ListOfDevices[key]["Ep"][tmpEp]["ClusterType"][str(ID)] + del self.ListOfDevices[nwkid]["Ep"][tmpEp]["ClusterType"][str(ID)] self.log.logging("PluginTools", "Log", "removeDeviceInList - removing : %s with Ep: %s in - %s" % ( - ID, tmpEp, str(self.ListOfDevices[key]["Ep"][tmpEp]["ClusterType"])) ) + ID, tmpEp, str(self.ListOfDevices[nwkid]["Ep"][tmpEp]["ClusterType"])) ) # Finaly let's see if there is any Devices left in this . emptyCT = True - if "ClusterType" in self.ListOfDevices[key]: # Empty or Doesn't exist + if "ClusterType" in self.ListOfDevices[nwkid]: # Empty or Doesn't exist self.log.logging("PluginTools", "Log", "removeDeviceInList - existing Global 'ClusterTpe'") - if self.ListOfDevices[key]["ClusterType"] != {}: + if self.ListOfDevices[nwkid]["ClusterType"] != {}: emptyCT = False - for tmpEp in list(self.ListOfDevices[key]["Ep"].keys()): - if "ClusterType" in self.ListOfDevices[key]["Ep"][tmpEp]: + for tmpEp in list(self.ListOfDevices[nwkid]["Ep"].keys()): + if "ClusterType" in self.ListOfDevices[nwkid]["Ep"][tmpEp]: self.log.logging("PluginTools", "Log", "removeDeviceInList - existing Ep 'ClusterTpe'") - if self.ListOfDevices[key]["Ep"][tmpEp]["ClusterType"] != {}: + if self.ListOfDevices[nwkid]["Ep"][tmpEp]["ClusterType"] != {}: emptyCT = False if emptyCT: #del self.ListOfDevices[key] #del self.IEEE2NWK[IEEE] - self.ListOfDevices[key]["Status"] = "Removed" + self.ListOfDevices[nwkid]["Status"] = "Removed" self.adminWidgets.updateNotificationWidget( - Devices, "Device fully removed %s with IEEE: %s" % (Devices[Unit].Name, IEEE) + Devices, "Device fully removed %s with IEEE: %s" % (widget_name, IEEE) ) - self.log.logging("PluginTools", "Status", "Device %s with IEEE: %s fully removed from the system." % (Devices[Unit].Name, IEEE)) + self.log.logging("PluginTools", "Status", "Device %s with IEEE: %s fully removed from the system." % (widget_name, IEEE)) return True return False @@ -455,16 +453,8 @@ def get_and_increment_generic_SQN(self, nwkid, sqn_type): def updSQN(self, key, newSQN): - - if key not in self.ListOfDevices: - return - if newSQN == {}: - return - if newSQN is None: - return - - self.ListOfDevices[key]["SQN"] = newSQN - return + if key in self.ListOfDevices and newSQN: + self.ListOfDevices[key]["SQN"] = newSQN def updLQI(self, key, LQI): @@ -1389,32 +1379,28 @@ def is_domoticz_db_available(self): return True -def get_device_nickname( self, NwkId=None, Ieee=None): +def get_device_nickname(self, NwkId=None, Ieee=None): if Ieee and Ieee in self.IEEE2NWK: - NwkId = self.IEEE2NWK[ Ieee ] + NwkId = self.IEEE2NWK[Ieee] - if ( - NwkId in self.ListOfDevices - and 'ZDeviceName' in self.ListOfDevices[NwkId] - and self.ListOfDevices[NwkId]['ZDeviceName'] not in ('', {}) - ): - return self.ListOfDevices[ NwkId]['ZDeviceName'] + device_name = self.ListOfDevices.get(NwkId, {}).get('ZDeviceName', None) + + if device_name and device_name not in ('', {}): + return device_name return None + def extract_info_from_8085(MsgData): step_mod = MsgData[14:16] - up_down = step_size = transition = None - if len(MsgData) >= 18: - up_down = MsgData[16:18] - if len(MsgData) >= 20: - step_size = MsgData[18:20] - if len(MsgData) >= 22: - transition = MsgData[20:22] + up_down = MsgData[16:18] if len(MsgData) >= 18 else None + step_size = MsgData[18:20] if len(MsgData) >= 20 else None + transition = MsgData[20:22] if len(MsgData) >= 22 else None return (step_mod, up_down, step_size, transition) + def how_many_devices(self): routers = enddevices = 0 @@ -1445,6 +1431,7 @@ def how_many_devices(self): return routers, enddevices + def get_deviceconf_parameter_value(self, model, attribute, return_default=None): if model in ( '', {}): diff --git a/Z4D_decoders/z4d_decoder_Data_Indication.py b/Z4D_decoders/z4d_decoder_Data_Indication.py index 0c0f97a01..00fe6de37 100644 --- a/Z4D_decoders/z4d_decoder_Data_Indication.py +++ b/Z4D_decoders/z4d_decoder_Data_Indication.py @@ -5,6 +5,7 @@ updSQN) from Modules.zb_tables_management import mgmt_rtg_rsp from Modules.zigateConsts import ADDRESS_MODE, ZIGBEE_COMMAND_IDENTIFIER +from Z4D_decoders.z4d_decoder_helpers import set_health_after_message_received from Z4D_decoders.z4d_decoder_Remotes import Decode80A7 @@ -87,9 +88,10 @@ def Decode8002(self, Devices, MsgData, MsgLQI): self.log.logging('Input', 'Debug', 'Decode8002 - Unknown NwkId: %s Ep: %s Cluster: %s Payload: %s' % (srcnwkid, MsgSourcePoint, MsgClusterID, MsgPayload)) return - timeStamped(self, srcnwkid, 32770) + timeStamped(self, srcnwkid, 0x8002) lastSeenUpdate(self, Devices, NwkId=srcnwkid) updLQI(self, srcnwkid, MsgLQI) + set_health_after_message_received(self, srcnwkid) if MsgClusterID in ('8032', '8033'): mgmt_rtg_rsp(self, srcnwkid, MsgSourcePoint, MsgClusterID, dstnwkid, MsgDestPoint, MsgPayload) return diff --git a/Z4D_decoders/z4d_decoder_IEEE_addr_req.py b/Z4D_decoders/z4d_decoder_IEEE_addr_req.py index 2c63962dc..abc8ed351 100644 --- a/Z4D_decoders/z4d_decoder_IEEE_addr_req.py +++ b/Z4D_decoders/z4d_decoder_IEEE_addr_req.py @@ -4,7 +4,8 @@ def Decode0041(self, Devices, MsgData, MsgLQI): - self.log.logging('Input', 'Debug', 'Decode0041 - IEEE_addr_req: %s' % MsgData) + self.log.logging('Input', 'Debug', 'Decode0041 - IEEE_addr_req: %s %s %s' % (MsgData, self.ControllerNWKID, self.ControllerIEEE)) + sqn = MsgData[:2] srcNwkId = MsgData[2:6] srcEp = MsgData[6:8] diff --git a/Z4D_decoders/z4d_decoder_helpers.py b/Z4D_decoders/z4d_decoder_helpers.py index 3b8465f1e..deea58215 100644 --- a/Z4D_decoders/z4d_decoder_helpers.py +++ b/Z4D_decoders/z4d_decoder_helpers.py @@ -124,3 +124,16 @@ def check_duplicate_sqn(self, nwk_id, ep, cluster, sqn): ep_cluster[cluster]["0000"] = {} return sqn != "00" and "SQN" in self.ListOfDevices.get(nwk_id, {}) and sqn == self.ListOfDevices[nwk_id]["SQN"] + + +def set_health_after_message_received(self, Nwkid): + device = self.ListOfDevices.get(Nwkid, {}) + + if "Health" not in device: + device["Health"] = "Live" + + if device.get("Health") == "Disabled": + return + + if device.get("Status") != "inDB": + device["Status"] = "inDB" diff --git a/plugin.py b/plugin.py index 4007d0c73..3f6b3cbe0 100644 --- a/plugin.py +++ b/plugin.py @@ -90,12 +90,11 @@
""" -import pathlib -import sys +#import DomoticzEx as Domoticz import Domoticz - try: + #from DomoticzEx import Devices, Images, Parameters, Settings from Domoticz import Devices, Images, Parameters, Settings except ImportError: pass @@ -104,6 +103,8 @@ import json import os import os.path +import pathlib +import sys import threading import time @@ -132,9 +133,11 @@ from Modules.database import (LoadDeviceList, WriteDeviceList, checkDevices2LOD, checkListOfDevice2Devices, import_local_device_conf) -from Modules.domoticzAbstractLayer import (how_many_slot_available, - load_list_of_domoticz_widget) -from Modules.domoTools import ResetDevice +from Modules.domoticzAbstractLayer import ( + domo_read_Name, find_legacy_DeviceID_from_unit, + how_many_legacy_slot_available, is_domoticz_extended, + load_list_of_domoticz_widget, retreive_widgetid_from_deviceId_unit) +from Modules.domoTools import browse_and_reset_devices_if_needed from Modules.heartbeat import processListOfDevices from Modules.input import zigbee_receive_message from Modules.piZigate import switchPiZigate_mode @@ -375,7 +378,6 @@ def onStart(self): if not get_domoticz_version( self, Parameters["DomoticzVersion"] ): return - # Import PluginConf.txt Domoticz.Log("load PluginConf") self.pluginconf = PluginConf( @@ -474,7 +476,7 @@ def onStart(self): self.WebUsername, self.WebPassword = self.domoticzdb_Preferences.retreiveWebUserNamePassword() # Domoticz.Status("Domoticz Website credentials %s/%s" %(self.WebUsername, self.WebPassword)) - self.adminWidgets = AdminWidgets(self.pluginconf, Devices, self.ListOfDevices, self.HardwareID) + self.adminWidgets = AdminWidgets( self.log , self.pluginconf, self.pluginParameters, Devices, self.ListOfDevices, self.HardwareID) self.adminWidgets.updateStatusWidget(Devices, "Startup") self.DeviceListName = "DeviceList-" + str(Parameters["HardwareID"]) + ".txt" @@ -497,7 +499,7 @@ def onStart(self): return # Import List of Domoticz Widgets - self.ListOfDomoticzWidget = {} + load_list_of_domoticz_widget(self, Devices) # Import DeviceList.txt Filename is : DeviceListName @@ -566,8 +568,14 @@ def onStart(self): "Plugin", "Error", "WebServer disabled du to Parameter Mode4 set to %s" % Parameters["Mode4"] ) - self.log.logging("Plugin", "Status", "Domoticz Widgets usage is at %s %% (%s units free)" % ( - round( ( ( 255 - how_many_slot_available( Devices )) / 255 ) * 100, 1 ), how_many_slot_available( Devices ) )) + if is_domoticz_extended(): + self.log.logging( "Plugin", "Status", "Plugin is using Extended Framework") + else: + self.log.logging( "Plugin", "Status", "Plugin is using legacy Framework") + + if not is_domoticz_extended(): + self.log.logging("Plugin", "Status", "Domoticz Widgets usage is at %s %% (%s units free)" % ( + round( ( ( 255 - how_many_legacy_slot_available( Devices)) / 255 ) * 100, 1 ), how_many_legacy_slot_available( Devices) )) self.busy = False @@ -626,77 +634,46 @@ def onStop(self): # sourcery skip: class-extract-method if self.adminWidgets: self.adminWidgets.updateStatusWidget(Devices, "No Communication") - #if self.pluginconf.pluginConf["Garbage"]: - # - # # Domoticz.Log( "Garbage Collected objects:") - # # objects = gc.get_objects() - # # for item in objects: - # # Domoticz.Log( "- %s" %str(item)) -# - # # Print detected cycles (garbage collectors) - # Domoticz.Log( "Garbage Collected detected cycles:") - # for item in gc.garbage: - # Domoticz.Log("- %s" %str(item)) - - def onDeviceRemoved(self, Unit): + # def onDeviceRemoved(self, DeviceID, Unit): + if not self.ControllerIEEE: + self.log.logging( "Plugin", "Error", "onDeviceRemoved - too early, coordinator and plugin initialisation not completed", ) + if self.log: self.log.logging("Plugin", "Debug", "onDeviceRemoved called") + if not is_domoticz_extended(): + DeviceID = find_legacy_DeviceID_from_unit(self, Devices, Unit) + + device_name = domo_read_Name( self, Devices, DeviceID, Unit, ) + # Let's check if this is End Node, or Group related. - if Devices[Unit].DeviceID in self.IEEE2NWK: - IEEE = Devices[Unit].DeviceID - NwkId = self.IEEE2NWK[IEEE] + if DeviceID in self.IEEE2NWK: + NwkId = self.IEEE2NWK[DeviceID] - # Command belongs to a end node - self.log.logging("Plugin", "Status", "onDeviceRemoved - removing End Device") - fullyremoved = removeDeviceInList(self, Devices, Devices[Unit].DeviceID, Unit) + self.log.logging("Plugin", "Status", f"Removing Device {DeviceID} {device_name} in progress") + fullyremoved = removeDeviceInList(self, Devices, DeviceID, Unit) # We might have to remove also the Device from Groups - if fullyremoved and self.groupmgt: - self.groupmgt.RemoveNwkIdFromAllGroups(NwkId) - - # We should call this only if All Widgets have been remved ! if fullyremoved: - # Let see if enabled if we can fully remove this object from Zigate - if self.pluginconf.pluginConf["allowRemoveZigateDevice"]: - IEEE = Devices[Unit].DeviceID - # sending a Leave Request to device, so the device will send a leave - leaveRequest(self, ShortAddr=NwkId, IEEE=IEEE) - - # for a remove in case device didn't send the leave - if self.ControllerIEEE: - #sendZigateCmd(self, "0026", self.ControllerIEEE + IEEE) - zigate_remove_device(self, str(self.ControllerIEEE), str(IEEE) ) - self.log.logging( - "Plugin", - "Status", - "onDeviceRemoved - removing Device %s -> %s from coordinator" % (Devices[Unit].Name, IEEE), - ) - else: - self.log.logging( - "Plugin", - "Error", - "onDeviceRemoved - too early, coordinator and plugin initialisation not completed", - ) - else: - self.log.logging( - "Plugin", - "Status", - "onDeviceRemoved - device entry %s from coordinator not removed. You need to enable 'allowRemoveZigateDevice' parameter. Do consider that it works only for main powered devices." - % Devices[Unit].DeviceID, - ) - - self.log.logging("Plugin", "Debug", "ListOfDevices :After REMOVE " + str(self.ListOfDevices)) - self.ListOfDomoticzWidget = {} + if self.groupmgt: + self.groupmgt.RemoveNwkIdFromAllGroups(NwkId) + + # sending a Leave Request to device, so the device will send a leave + leaveRequest(self, ShortAddr=NwkId, IEEE=DeviceID) + + # for a remove in case device didn't send the leave + zigate_remove_device(self, str(self.ControllerIEEE), str(DeviceID) ) + self.log.logging( "Plugin", "Status", f"Request device {device_name} -> {DeviceID} to be removed from coordinator" ) + + self.log.logging("Plugin", "Debug", f"ListOfDevices :After REMOVE {self.ListOfDevices}") load_list_of_domoticz_widget(self, Devices) return - if self.groupmgt and Devices[Unit].DeviceID in self.groupmgt.ListOfGroups: - self.log.logging("Plugin", "Status", "onDeviceRemoved - removing Group of Devices") - # Command belongs to a Zigate group - self.groupmgt.FullRemoveOfGroup(Unit, Devices[Unit].DeviceID) + if self.groupmgt and DeviceID in self.groupmgt.ListOfGroups: + self.log.logging("Plugin", "Status", f"Request device {DeviceID} to be remove from Group(s)") + self.groupmgt.FullRemoveOfGroup(Unit, DeviceID) def onConnect(self, Connection, Status, Description): @@ -800,35 +777,36 @@ def zigpy_get_device(self, ieee=None, nwkid=None): def zigpy_backup_available(self, backups): handle_zigpy_backup(self, backups) - + #def onCommand(self, DeviceID, Unit, Command, Level, Color): def onCommand(self, Unit, Command, Level, Color): - if ( - not self.VersionNewFashion - or self.pluginconf is None - or not self.log - ): - # Not yet ready + + if ( not self.VersionNewFashion or self.pluginconf is None or not self.log ): + # Not yet ready, plugin not fully started, we drop the command return self.log.logging( "Command", "Debug", "onCommand - unit: %s, command: %s, level: %s, color: %s" % (Unit, Command, Level, Color) ) + if not is_domoticz_extended(): + DeviceID = find_legacy_DeviceID_from_unit(self, Devices, Unit) + + self.log.logging( "Command", "Log", f"Command: {DeviceID} {Unit}" ) + # Let's check if this is End Node, or Group related. - if Devices[Unit].DeviceID in self.IEEE2NWK: + if DeviceID in self.IEEE2NWK: # Command belongs to a end node - mgtCommand(self, Devices, Unit, Command, Level, Color) + mgtCommand(self, Devices, DeviceID, Unit, self.IEEE2NWK[ DeviceID], Command, Level, Color) - elif self.groupmgt: - # if Devices[Unit].DeviceID in self.groupmgt.ListOfGroups: - # # Command belongs to a Zigate group - self.log.logging( "Command", "Debug", "Command: %s/%s/%s to Group: %s" % (Command, Level, Color, Devices[Unit].DeviceID), ) - self.groupmgt.processCommand(Unit, Devices[Unit].DeviceID, Command, Level, Color) + elif self.groupmgt and DeviceID in self.groupmgt.ListOfGroups: + # Command belongs to a Zigate group + self.log.logging( "Command", "Log", "Command: %s/%s/%s to Group: %s" % (Command, Level, Color, DeviceID), ) + self.groupmgt.processCommand(Unit, DeviceID, Command, Level, Color) - elif Devices[Unit].DeviceID.find("Zigate-01-") != -1: + elif DeviceID.find("Zigate-01-") != -1: self.log.logging("Command", "Debug", "onCommand - Command adminWidget: %s " % Command) self.adminWidgets.handleCommand(self, Command) else: - self.log.logging( "Command", "Error", "onCommand - Unknown device or GrpMgr not enabled %s, unit %s , id %s" % (Devices[Unit].Name, Unit, Devices[Unit].DeviceID), ) + self.log.logging( "Command", "Error", "onCommand - Unknown device or GrpMgr not enabled %s, unit %s , id %s" % (domo_read_Name( self, Devices, DeviceID, Unit, ), Unit, DeviceID), ) def onDisconnect(self, Connection): @@ -903,7 +881,7 @@ def onHeartbeat(self): processListOfDevices(self, Devices) # Reset Motion sensors - ResetDevice(self, Devices) + browse_and_reset_devices_if_needed(self, Devices) # Check and Update Heating demand for Wiser if applicable (this will be check in the call) wiser_thermostat_monitoring_heating_demand(self, Devices) @@ -1051,7 +1029,8 @@ def _start_native_wifi_zigate(self): def _start_zigpy_ZNP(self): import zigpy import zigpy_znp - from zigpy.config import (CONF_DEVICE, CONF_DEVICE_PATH, CONFIG_SCHEMA, SCHEMA_DEVICE) + from zigpy.config import (CONF_DEVICE, CONF_DEVICE_PATH, CONFIG_SCHEMA, + SCHEMA_DEVICE) from Classes.ZigpyTransport.Transport import ZigpyTransport @@ -1072,7 +1051,8 @@ def _start_zigpy_ZNP(self): def _start_zigpy_deConz(self): import zigpy import zigpy_deconz - from zigpy.config import (CONF_DEVICE, CONF_DEVICE_PATH, CONFIG_SCHEMA, SCHEMA_DEVICE) + from zigpy.config import (CONF_DEVICE, CONF_DEVICE_PATH, CONFIG_SCHEMA, + SCHEMA_DEVICE) from Classes.ZigpyTransport.Transport import ZigpyTransport @@ -1089,7 +1069,8 @@ def _start_zigpy_deConz(self): def _start_zigpy_EZSP(self): import bellows import zigpy - from zigpy.config import (CONF_DEVICE, CONF_DEVICE_PATH, CONFIG_SCHEMA, SCHEMA_DEVICE) + from zigpy.config import (CONF_DEVICE, CONF_DEVICE_PATH, CONFIG_SCHEMA, + SCHEMA_DEVICE) from Classes.ZigpyTransport.Transport import ZigpyTransport @@ -1329,7 +1310,8 @@ def start_GrpManagement(self, homefolder): self.IEEE2NWK, self.DeviceConf, self.log, - self.readZclClusters + self.readZclClusters, + self.pluginParameters, ) if self.groupmgt and self.ControllerIEEE: self.groupmgt.updateZigateIEEE(self.ControllerIEEE) @@ -1369,7 +1351,7 @@ def start_OTAManagement(self, homefolder): def start_web_server(self, webserver_port, webserver_homefolder): - + self.log.logging("Plugin", "Status", "Start Web Server connection") self.webserver = WebServer( self.zigbee_communication, @@ -1382,6 +1364,7 @@ def start_web_server(self, webserver_port, webserver_homefolder): webserver_homefolder, self.HardwareID, Devices, + self.ListOfDomoticzWidget, self.ListOfDevices, self.IEEE2NWK, self.DeviceConf, @@ -1520,9 +1503,11 @@ def onStop(): _plugin.onStop() -def onDeviceRemoved(Unit): +#def onDeviceRemoved(DeviceID, Unit): +def onDeviceRemoved( Unit): global _plugin # pylint: disable=global-variable-not-assigned - _plugin.onDeviceRemoved(Unit) + #_plugin.onDeviceRemoved(DeviceID, Unit) + _plugin.onDeviceRemoved( Unit) def onConnect(Connection, Status, Description): @@ -1535,9 +1520,11 @@ def onMessage(Connection, Data): _plugin.onMessage(Connection, Data) -def onCommand(Unit, Command, Level, Hue): - global _plugin # pylint: disable=global-variable-not-assigned - _plugin.onCommand(Unit, Command, Level, Hue) +#def onCommand(DeviceID, Unit, Command, Level, Color): +def onCommand(Unit, Command, Level, Color): + global _plugin + #_plugin.onCommand(DeviceID, Unit, Command, Level, Color) + _plugin.onCommand( Unit, Command, Level, Color) def onDisconnect(Connection): @@ -1712,7 +1699,7 @@ def _coordinator_ready( self ): ) and (self.internalHB % 10) == 0 ): - self.log.logging( "Plugin", "Error", "[%3s] I have hard time to get Coordinator Version. Mostlikly there is a communication issue" % (self.internalHB), ) + self.log.logging( "Plugin", "Error", "[%3s] I have hard time to get Coordinator Version. Most likely there is a communication issue" % (self.internalHB), ) if ( ( self.transport == "ZigpyZNP" and self.internalHB > ZNP_STARTUP_TIMEOUT_DELAY_FOR_STOP ) From fb99ea6fd034077901daf14deb9b8f86886922be Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 25 Feb 2024 21:30:29 +0100 Subject: [PATCH 020/301] Plugin wip-develop version 7.2.009 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 6965b4971..1a61a2a2d 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.008"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.009"} \ No newline at end of file From 41447a87bbdb3c8e149d55287c9b56a34d2f1849 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 25 Feb 2024 21:37:33 +0100 Subject: [PATCH 021/301] Plugin wip-develop version 7.2.010 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 1a61a2a2d..9cd0ba5c8 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.009"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.010"} \ No newline at end of file From da5db07dd6fab2f2c9c7a44edd4c4167ae49e864 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 27 Feb 2024 18:51:34 +0100 Subject: [PATCH 022/301] adding missing tuyaSettings debug level --- Classes/PluginConf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index c12f271c3..47e478af8 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -310,6 +310,7 @@ 'trackZclClustersOut': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, 'trackZdpClustersIn': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, 'trackZdpClustersOut': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, + 'tuyaSettings': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'z4dCertifiedDevices': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'zclCommand': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'zclDecoder': {'type': 'bool','default': 0,'current': None,'restart': 0,'hidden': False,'Advanced': True}, From a548b362c37402bf90592da9e4975969cc54d74c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 28 Feb 2024 20:09:36 +0100 Subject: [PATCH 023/301] Code to enable persistent zigpy db (file, memory or disable) #1334 --- Classes/ZigpyTransport/AppBellows.py | 16 ++++---- Classes/ZigpyTransport/AppDeconz.py | 18 +++++---- Classes/ZigpyTransport/AppGeneric.py | 54 ++++++++++++++++++++++++++- Classes/ZigpyTransport/AppZnp.py | 17 +++++---- Classes/ZigpyTransport/zigpyThread.py | 14 ++++++- 5 files changed, 94 insertions(+), 25 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index ae0c38279..ef32f6af3 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -36,6 +36,14 @@ async def _load_db(self) -> None: await Classes.ZigpyTransport.AppGeneric._load_db(self) + def _add_db_listeners(self): + Classes.ZigpyTransport.AppGeneric._add_db_listeners(self) + + + def _remove_db_listeners(self): + Classes.ZigpyTransport.AppGeneric._remove_db_listeners(self) + + async def initialize(self, *, auto_form: bool = False, force_form: bool = False): await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) LOGGER.info("EZSP Configuration: %s", self.config) @@ -103,13 +111,7 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU async def shutdown(self) -> None: """Shutdown controller.""" - if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: - self.callBackBackup(await self.backups.create_backup(load_devices=True)) - - if self._watchdog_task is not None: - self._watchdog_task.cancel() - - await self.disconnect() + await Classes.ZigpyTransport.AppGeneric.shutdown(self) # Only needed if the device require simple node descriptor from the coordinator async def register_endpoints(self, endpoint=1): diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index f780cb86b..410309d7f 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -32,6 +32,15 @@ async def _load_db(self) -> None: await Classes.ZigpyTransport.AppGeneric._load_db(self) LOGGER.debug("_load_db") + + def _add_db_listeners(self): + Classes.ZigpyTransport.AppGeneric._add_db_listeners(self) + + + def _remove_db_listeners(self): + Classes.ZigpyTransport.AppGeneric._remove_db_listeners(self) + + async def initialize(self, *, auto_form: bool = False, force_form: bool = False): await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) LOGGER.info("deCONZ Configuration: %s", self.config) @@ -85,15 +94,8 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU async def shutdown(self) -> None: """Shutdown controller.""" - if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: - self.callBackBackup(await self.backups.create_backup(load_devices=True)) + await Classes.ZigpyTransport.AppGeneric.shutdown(self) - if self._watchdog_task is not None: - self._watchdog_task.cancel() - - await self.disconnect() - - await asyncio.sleep( 1 ) async def register_endpoints(self): """ diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 2aac59b04..43f223a44 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -41,7 +41,37 @@ async def _load_db(self) -> None: - pass + LOGGER.info("_load_db") + database_file = self.config[zigpy_conf.CONF_DATABASE] + if not database_file: + return + + LOGGER.info("PersistingListener on %s" %database_file) + self._dblistener = await zigpy.appdb.PersistingListener.new(database_file, self) + await self._dblistener.load() + self._add_db_listeners() + + +def _add_db_listeners(self): + LOGGER.info("_add_db_listeners") + if self._dblistener is None: + return + + self.add_listener(self._dblistener) + self.groups.add_listener(self._dblistener) + self.backups.add_listener(self._dblistener) + self.topology.add_listener(self._dblistener) + + +def _remove_db_listeners(self): + LOGGER.info("_remove_db_listeners") + if self._dblistener is None: + return + + self.topology.remove_listener(self._dblistener) + self.backups.remove_listener(self._dblistener) + self.groups.remove_listener(self._dblistener) + self.remove_listener(self._dblistener) async def initialize(self, *, auto_form: bool = False, force_form: bool = False): @@ -132,6 +162,28 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) # Config specifies the period in minutes, not seconds self.topology.start_periodic_scans( period=(60 * self.config[zigpy.config.CONF_TOPO_SCAN_PERIOD]) ) +async def shutdown(self) -> None: + """Shutdown controller.""" + if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: + self.callBackBackup(await self.backups.create_backup(load_devices=True)) + + if self._watchdog_task is not None: + self._watchdog_task.cancel() + + try: + await self.disconnect() + except Exception: + LOGGER.warning("Failed to disconnect from radio", exc_info=True) + + await asyncio.sleep( 1 ) + + if self._dblistener: + self._remove_db_listeners() + + try: + await self._dblistener.shutdown() + except Exception: + LOGGER.warning("Failed to disconnect from database", exc_info=True) def _retreive_previous_backup(self): _retreived_backup = None diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index f566fbd14..537c9a9cc 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -33,6 +33,15 @@ async def new(cls, config: dict, auto_form: bool = False, start_radio: bool = Tr async def _load_db(self) -> None: await Classes.ZigpyTransport.AppGeneric._load_db(self) + + def _add_db_listeners(self): + Classes.ZigpyTransport.AppGeneric._add_db_listeners(self) + + + def _remove_db_listeners(self): + Classes.ZigpyTransport.AppGeneric._remove_db_listeners(self) + + async def initialize(self, *, auto_form: bool = False, force_form: bool = False): await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) LOGGER.info("ZNP Configuration: %s", self.config) @@ -87,13 +96,7 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU async def shutdown(self) -> None: """Shutdown controller.""" - if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: - self.callBackBackup(await self.backups.create_backup(load_devices=True)) - - if self._watchdog_task is not None: - self._watchdog_task.cancel() - - await self.disconnect() + await Classes.ZigpyTransport.AppGeneric.shutdown(self) async def register_endpoints(self): diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 1edef87e2..0c09ed80d 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -55,6 +55,10 @@ VERIFY_KEY_DELAY = 6 WAITING_TIME_BETWEEN_ATTEMPTS = 0.250 +#ZIGPY_SAVE_STATE_DB = "zigpy.db" +ZIGPY_SAVE_STATE_DB = ":memory:" +ZIGPY_SAVE_STATE_DB = None + def stop_zigpy_thread(self): """ will send a STOP message to the writer_queue in order to stop the thread """ @@ -147,7 +151,7 @@ async def _shutdown_remaining_task(self): await asyncio.gather(*tasks, return_exceptions=True) await asyncio.sleep(1) - + async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False, set_channel=0, set_extendedPanId=0): @@ -186,7 +190,7 @@ async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False except Exception as e: self.log.logging("TransportZigpy", "Error", "Error while starting Radio: %s on port %s with %s" %( radiomodule, serialPort, e)) - self.log.logging("%s" %traceback.format_exc()) + self.log.logging("TransportZigpy", "Error", "%s" %traceback.format_exc()) optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel) @@ -212,12 +216,16 @@ async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False else: new_network = False + self.log.logging( "TransportZigpy", "Log", "restore save state") + await self.app._load_db() + await _radio_startup(self, pluginconf, new_network, radiomodule) self.log.logging( "TransportZigpy", "Debug", "Exiting co-rounting radio_start") def ezsp_configuration_setup(self, conf, serialPort): config = { + zigpy.config.CONF_DATABASE: ZIGPY_SAVE_STATE_DB, conf.CONF_DEVICE: { "path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, conf.CONF_EZSP_CONFIG: { @@ -240,6 +248,7 @@ def ezsp_configuration_setup(self, conf, serialPort): def znp_configuration_setup(self, conf, serialPort): config = { + zigpy.config.CONF_DATABASE: ZIGPY_SAVE_STATE_DB, conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, conf.CONF_ZNP_CONFIG: { }, @@ -256,6 +265,7 @@ def znp_configuration_setup(self, conf, serialPort): def deconz_configuration_setup(self, conf, serialPort): return { + zigpy.config.CONF_DATABASE: ZIGPY_SAVE_STATE_DB, conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, zigpy.config.CONF_TOPO_SCAN_ENABLED: False, From aeeae98ddbfc7b7ab2a1852adcb9b6b1b0578b57 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 28 Feb 2024 20:10:00 +0100 Subject: [PATCH 024/301] upgrade to recent zigpy libs --- Modules/pluginHelpers.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index d5d8c925e..18e182b32 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -22,7 +22,7 @@ from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { - "zigpy": "0.63.0", + "zigpy": "0.63.1", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", "bellows": "0.38.1", diff --git a/requirements.txt b/requirements.txt index ce4ded8fa..7c6bbfae2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -zigpy==0.63.0 +zigpy==0.63.1 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 From d929c772d31d69ebdefed84cab550f044a868110 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 28 Feb 2024 20:27:09 +0100 Subject: [PATCH 025/301] disable aiosqlite logging --- Classes/LoggingManagement.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index 0be33ea26..ab5890c6b 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -508,6 +508,7 @@ def configure_loggers(logger_names, mode): # Loggers configurations def configure_zigpy_loggers(mode): logger_names = [ + "aiosqlite", "zigpy.application", "zigpy", "zigpy.zdo", "zigpy.zcl", "zigpy.profiles", "zigpy.quirks", "zigpy.ota", "zigpy.appdb_schemas", "zigpy.backups", "zigpy.device", From 2583e2f99364cd373b75253409e20ae1b4860d4d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 28 Feb 2024 20:36:32 +0100 Subject: [PATCH 026/301] make the Zigpy Persistent Db inside the Plugin/Data folder --- Classes/ZigpyTransport/zigpyThread.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 0c09ed80d..5b5886f85 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -19,6 +19,7 @@ import sys import time import traceback +from pathlib import Path from threading import Thread from typing import Any, Optional @@ -55,10 +56,6 @@ VERIFY_KEY_DELAY = 6 WAITING_TIME_BETWEEN_ATTEMPTS = 0.250 -#ZIGPY_SAVE_STATE_DB = "zigpy.db" -ZIGPY_SAVE_STATE_DB = ":memory:" -ZIGPY_SAVE_STATE_DB = None - def stop_zigpy_thread(self): """ will send a STOP message to the writer_queue in order to stop the thread """ @@ -192,6 +189,7 @@ async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False self.log.logging("TransportZigpy", "Error", "Error while starting Radio: %s on port %s with %s" %( radiomodule, serialPort, e)) self.log.logging("TransportZigpy", "Error", "%s" %traceback.format_exc()) + optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel) try: @@ -225,7 +223,6 @@ async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False def ezsp_configuration_setup(self, conf, serialPort): config = { - zigpy.config.CONF_DATABASE: ZIGPY_SAVE_STATE_DB, conf.CONF_DEVICE: { "path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, conf.CONF_EZSP_CONFIG: { @@ -248,7 +245,6 @@ def ezsp_configuration_setup(self, conf, serialPort): def znp_configuration_setup(self, conf, serialPort): config = { - zigpy.config.CONF_DATABASE: ZIGPY_SAVE_STATE_DB, conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, conf.CONF_ZNP_CONFIG: { }, @@ -265,7 +261,6 @@ def znp_configuration_setup(self, conf, serialPort): def deconz_configuration_setup(self, conf, serialPort): return { - zigpy.config.CONF_DATABASE: ZIGPY_SAVE_STATE_DB, conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, zigpy.config.CONF_TOPO_SCAN_ENABLED: False, @@ -275,6 +270,13 @@ def deconz_configuration_setup(self, conf, serialPort): def optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel): config[zigpy.config.CONF_SOURCE_ROUTING] = bool( self.pluginconf.pluginConf["zigpySourceRouting"] ) + if "enableZigpyPersistentInMemory" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInMemory"]: + config[zigpy.config.CONF_DATABASE] = ":memory:" + + elif "enableZigpyPersistentInFile" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInFile"]: + data_folder = Path( self.pluginconf.pluginConf["pluginData"] ) + config[zigpy.config.CONF_DATABASE] = str(data_folder / "zigpy_persistent.db") + if "autoBackup" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoBackup"]: config[zigpy.config.CONF_NWK_BACKUP_ENABLED] = True config[zigpy.config.CONF_NWK_BACKUP_PERIOD] = self.pluginconf.pluginConf["autoBackup"] From f51affcc1219a94cfe48a405fdc8c83d78450be4 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 28 Feb 2024 20:36:43 +0100 Subject: [PATCH 027/301] Plugin wip-develop version 7.2.011 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 9cd0ba5c8..d534780ba 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.010"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.011"} \ No newline at end of file From 01f0986869b36b38fafabf8808b6ab9fb316ec4f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 29 Feb 2024 19:35:40 +0100 Subject: [PATCH 028/301] Use Domoticz Hardware Id for the naming of the Zigpy persistent Db --- Classes/ZigpyTransport/zigpyThread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 5b5886f85..a0107fa77 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -275,7 +275,7 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan elif "enableZigpyPersistentInFile" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInFile"]: data_folder = Path( self.pluginconf.pluginConf["pluginData"] ) - config[zigpy.config.CONF_DATABASE] = str(data_folder / "zigpy_persistent.db") + config[zigpy.config.CONF_DATABASE] = str(data_folder / ("zigpy_persistent_%02d.db"% self.hardwareid) ) if "autoBackup" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoBackup"]: config[zigpy.config.CONF_NWK_BACKUP_ENABLED] = True From db165e1fa7c0348fc1e484f58d1ecb6bb9655380 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 3 Mar 2024 16:14:25 +0100 Subject: [PATCH 029/301] Fix missing DeviceId for updating XCube --- Modules/domoMaj.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index ff3c82714..a648b40a2 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -475,7 +475,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # Update Text widget ( unit + 1 ) nValue = 0 sValue = value - update_domoticz_widget(self, Devices, device_unit + 1, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit + 1, nValue, sValue, BatteryLevel, SignalLevel, ForceUpdate_=True) else: self.log.logging("Widget", "Debug", "----------> XCube update with data = " + str(value), NwkId) From 0d3e182c2b973f850c287af126222490c532c347 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 11:51:49 +0100 Subject: [PATCH 030/301] Trace route for received packet --- Classes/PluginConf.py | 1 + Classes/ZigpyTransport/AppGeneric.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 47e478af8..8e2e44103 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -305,6 +305,7 @@ 'onoffSettings': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'outRawAPS': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'showTimeOutMsg': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'trackReceivedRoute': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, 'trackTransportError': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, 'trackZclClustersIn': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, 'trackZclClustersOut': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': False }, diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 43f223a44..859141bdc 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -300,6 +300,10 @@ def packet_received( cluster = int(packet.cluster_id) if packet.cluster_id is not None else None src_ep = int(packet.src_ep) if packet.src_ep is not None else None dst_ep = int(packet.dst_ep) if packet.dst_ep is not None else None + source_route = packet.source_route + + if source_route: + self.log.logging("trackReceivedRoute", "Log", f"packet_received from {sender} via {source_route}") # self.log.logging("TransportZigpy", "Log", " Src : %s (%s)" %(sender,type(sender))) # self.log.logging("TransportZigpy", "Log", " AddrMod : %02X" %(addr_mode)) From b307f7794d13375ee1ee375ee26a884e5e6a2e57 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 12:10:20 +0100 Subject: [PATCH 031/301] handle_relays --- Classes/ZigpyTransport/AppBellows.py | 3 +++ Classes/ZigpyTransport/AppDeconz.py | 3 +++ Classes/ZigpyTransport/AppGeneric.py | 6 ++++++ Classes/ZigpyTransport/AppZnp.py | 3 +++ 4 files changed, 15 insertions(+) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index ef32f6af3..9ec7befb5 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -152,6 +152,9 @@ def get_device_ieee(self, nwk): def handle_leave(self, nwk, ieee): Classes.ZigpyTransport.AppGeneric.handle_leave(self, nwk, ieee) + def handle_relays(self, nwk, relays) -> None: + Classes.ZigpyTransport.AppGeneric.handle_relays(self, nwk, relays) + def get_zigpy_version(self): return Classes.ZigpyTransport.AppGeneric.get_zigpy_version(self) diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 410309d7f..1dd66c7c9 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -154,6 +154,9 @@ def get_device_ieee(self, nwk): def handle_leave(self, nwk, ieee): Classes.ZigpyTransport.AppGeneric.handle_leave(self, nwk, ieee) + def handle_relays(self, nwk, relays) -> None: + Classes.ZigpyTransport.AppGeneric.handle_relays(self, nwk, relays) + def packet_received(self, packet: t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 859141bdc..5f127caba 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -286,6 +286,12 @@ def handle_leave(self, nwk, ieee): super(type(self),self).handle_leave(nwk, ieee) +def handle_relays(self, nwk, relays) -> None: + self.log.logging("TransportZigpy", "Log","handle_relays (0x%04x %s)" %(nwk, str(relays))) + """Called when a list of relaying devices is received.""" + super(type(self),self).handle_relays(nwk, relays) + + def packet_received( self, packet: t.ZigbeePacket diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 537c9a9cc..41ce76c34 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -123,6 +123,9 @@ def get_device_ieee(self, nwk): def handle_leave(self, nwk, ieee): Classes.ZigpyTransport.AppGeneric.handle_leave(self, nwk, ieee) + def handle_relays(self, nwk, relays) -> None: + Classes.ZigpyTransport.AppGeneric.handle_relays(self, nwk, relays) + def get_zigpy_version(self): return Classes.ZigpyTransport.AppGeneric.get_zigpy_version(self) From db82307d221c2f8852eae09ea624294790f3d2c6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 13:03:32 +0100 Subject: [PATCH 032/301] Lig to Debug --- Classes/ZigpyTransport/AppGeneric.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 5f127caba..35ef23fa0 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -287,11 +287,11 @@ def handle_leave(self, nwk, ieee): def handle_relays(self, nwk, relays) -> None: - self.log.logging("TransportZigpy", "Log","handle_relays (0x%04x %s)" %(nwk, str(relays))) + self.log.logging("TransportZigpy", "Debug","handle_relays (0x%04x %s)" %(nwk, str(relays))) """Called when a list of relaying devices is received.""" super(type(self),self).handle_relays(nwk, relays) - + def packet_received( self, packet: t.ZigbeePacket From 01e7b9e3c81cd983ef2b1952bd6de3cc330267cf Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 21:55:08 +0100 Subject: [PATCH 033/301] fix missing device_ieee --- Modules/domoTools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index fb97a7edb..2d9c0f683 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -212,7 +212,7 @@ def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, n elif TimedOutSwitchButton and WidgetType in SWITCH_SELECTORS: if "ForceUpdate" in SWITCH_SELECTORS[WidgetType] and SWITCH_SELECTORS[WidgetType]["ForceUpdate"]: - reset_switch_selector_PushButton( self, Devices, nwkid, WidgetType, device_unit, SignalLevel, BatteryLvl, now, last_update, TimedOutSwitchButton, ) + reset_switch_selector_PushButton( self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, now, last_update, TimedOutSwitchButton, ) def retreive_reset_delays(self, nwkid): From 73b82bdaf561216843bef516ed0102da9a0c7cc0 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 21:56:10 +0100 Subject: [PATCH 034/301] Plugin wip-develop version 7.2.012 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index d534780ba..07d92fb4a 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.011"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.012"} \ No newline at end of file From 9580d48f4f519f4aea5cf2c426e50328626d1775 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 22:11:57 +0100 Subject: [PATCH 035/301] more debug for Reset --- Classes/PluginConf.py | 2 ++ Modules/domoTools.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 8e2e44103..52163f4f1 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -282,7 +282,9 @@ 'WebServer': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'Widget': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'WidgetCreation': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WidgetLevel2': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'WidgetLevel3': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, + 'WidgetReset': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'WidgetUpdate': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'WriteAttributes': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, 'ZLinky': { 'type': 'bool', 'default': 0, 'current': None, 'restart': 0, 'hidden': False, 'Advanced': True }, diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 2d9c0f683..eb0749ae7 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -186,6 +186,8 @@ def _convert_LastUpdate( last_update ): def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now): + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {device_ieee} {device_unit}") + last_update = _convert_LastUpdate( domo_read_LastUpdate(self, Devices, device_ieee, device_unit,) ) if last_update is None: return @@ -207,11 +209,15 @@ def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, n SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, nwkid) + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} WidgetType: {WidgetType} TimedOutMotion: {TimedOutMotion} TimedOutSwitchButton: {TimedOutSwitchButton}", nwkid) + if TimedOutMotion and WidgetType in ("Motion", "Vibration"): + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_motion", nwkid) reset_motion(self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, ID, now, last_update, TimedOutMotion) elif TimedOutSwitchButton and WidgetType in SWITCH_SELECTORS: if "ForceUpdate" in SWITCH_SELECTORS[WidgetType] and SWITCH_SELECTORS[WidgetType]["ForceUpdate"]: + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_switch_selector", nwkid) reset_switch_selector_PushButton( self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, now, last_update, TimedOutSwitchButton, ) @@ -224,6 +230,7 @@ def retreive_reset_delays(self, nwkid): TimedOutMotion = int(params.get("resetMotiondelay", TimedOutMotion)) TimedOutSwitchButton = params.get("resetSwitchSelectorPushButton", TimedOutSwitchButton) + self.log.logging("WidgetReset", "Debug", f"retreive_reset_delays {nwkid} {TimedOutMotion} {TimedOutSwitchButton}", nwkid) return TimedOutMotion, TimedOutSwitchButton @@ -234,7 +241,7 @@ def reset_motion(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel return domo_update_api(self, Devices, DeviceId_, Unit_, nValue=0, sValue="Off") - self.log.logging("WidgetLevel3", "Debug", "Last update of the device %s %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) + self.log.logging("WidgetReset", "Debug", "Last update of the device %s %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) def reset_switch_selector_PushButton(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel, BatteryLvl, now, lastupdate, TimedOut): @@ -250,7 +257,7 @@ def reset_switch_selector_PushButton(self, Devices, NwkId, WidgetType, DeviceId_ sValue = "00" domo_update_api(self, Devices, DeviceId_, Unit_, nValue=0, sValue=sValue) - self.log.logging("WidgetLevel2", "Debug", "Last update of the device %s WidgetType: %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) + self.log.logging("WidgetReset", "Debug", "Last update of the device %s WidgetType: %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) def update_domoticz_widget(self, Devices, DeviceId, Unit, nValue, sValue, BatteryLvl, SignalLvl, Color_="", ForceUpdate_=False): From 9a6bacac32a21a69c0006e1586faa84267a73af6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 4 Mar 2024 22:18:29 +0100 Subject: [PATCH 036/301] One more log --- Modules/domoTools.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index eb0749ae7..34fbc5e21 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -247,6 +247,7 @@ def reset_motion(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel def reset_switch_selector_PushButton(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel, BatteryLvl, now, lastupdate, TimedOut): nValue, sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) + self.log.logging("WidgetReset", "Debug", f"reset_switch_selector_PushButton {NwkId} {nValue}:{sValue} ({now} - {lastupdate}) = {(now - lastupdate)} Date: Mon, 4 Mar 2024 22:18:37 +0100 Subject: [PATCH 037/301] Plugin wip-develop version 7.2.013 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 07d92fb4a..ddeee10d7 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.012"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.013"} \ No newline at end of file From a17d7185c0c6bae01c894ac83adfb21aa9d58090 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 10:28:29 +0100 Subject: [PATCH 038/301] new version of zigpy --- Modules/pluginHelpers.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 18e182b32..ac62b8a50 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -22,7 +22,7 @@ from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { - "zigpy": "0.63.1", + "zigpy": "0.63.4", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", "bellows": "0.38.1", diff --git a/requirements.txt b/requirements.txt index 7c6bbfae2..4e7b95c81 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -zigpy==0.63.1 +zigpy==0.63.4 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 From dc8b0be7b1cbc1ea03856193130e93a0bac11bd2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 10:28:51 +0100 Subject: [PATCH 039/301] fix issue from previous merge --- Classes/PluginConf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 4445a83ab..8778b83d9 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -17,7 +17,7 @@ from pathlib import Path import Domoticz -from Modules.domoticzAPI import getConfigItem, setConfigItem +from Modules.domoticzAbstractLayer import getConfigItem, setConfigItem from Modules.tools import is_domoticz_db_available, is_hex SETTINGS = { From 4d1a11558631f8eb36058d7624748a58de971f05 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 10:28:56 +0100 Subject: [PATCH 040/301] Plugin wip-develop version 7.2.014 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index ddeee10d7..e16b65cdf 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.013"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.014"} \ No newline at end of file From ca4acfa6b8cc7dbaf55fb85339b9e166aae58285 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 10:32:45 +0100 Subject: [PATCH 041/301] add missing debug param --- Classes/PluginConf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 8778b83d9..b2789f834 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -281,6 +281,8 @@ "WebServer": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Widget": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WidgetCreation": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "WidgetLevel3": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "WidgetReset": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WriteAttributes": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZLinky": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZclClusters": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, From 956941ff26c848cccebfae9f98def79ae6e36f44 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 12:10:19 +0100 Subject: [PATCH 042/301] add more debug parameters --- Classes/PluginConf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index b2789f834..dfbf713fc 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -281,6 +281,7 @@ "WebServer": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Widget": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WidgetCreation": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "WidgetUpdate": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WidgetLevel3": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WidgetReset": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WriteAttributes": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -346,6 +347,8 @@ "expJsonDatabase": {"type": "bool","default": 1,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, "TryFindingIeeeOfUnknownNwkid": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, "useDomoticzDatabase": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": False,"Advanced": True,}, + "enableZigpyPersistentInFile": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, + "enableZigpyPersistentInMemory": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, }, }, "Reserved": { From 2f13de59ba832bda806701f7ade18a369f61cad9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 12:10:48 +0100 Subject: [PATCH 043/301] Clear the self.ListOfDomoticzWidget before repopulating it --- Modules/domoticzAbstractLayer.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index bf58dd5d7..494ef72b1 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -157,6 +157,9 @@ def load_list_of_domoticz_widget(self, Devices): """ self.log.logging("AbstractDz", "Debug", "load_list_of_domoticz_widget") + # clean + self.ListOfDomoticzWidget.clear() + if DOMOTICZ_EXTENDED_API: for device_ieee in Devices: for unit_key in Devices[ device_ieee ].Units: @@ -169,6 +172,7 @@ def load_list_of_domoticz_widget(self, Devices): "Subtype": unit_data.SubType, } self.ListOfDomoticzWidget[unit_data.ID] = widget_info + else: for unit_key, device in Devices.items(): widget_info = { From 842657b5e3b655e269ce887aea0d7216d5a52c55 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 12:11:35 +0100 Subject: [PATCH 044/301] prevent doing self.callBackUpdDevice() for non ZigpyTransport object --- Classes/ZigpyTransport/AppGeneric.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 35ef23fa0..52be7cb6b 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -34,6 +34,7 @@ from Classes.ZigpyTransport.plugin_encoders import ( build_plugin_8002_frame_content, build_plugin_8014_frame_content, build_plugin_8047_frame_content, build_plugin_8048_frame_content) +from Classes.ZigpyTransport.Transport import ZigpyTransport LOGGER = logging.getLogger(__name__) @@ -162,6 +163,7 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) # Config specifies the period in minutes, not seconds self.topology.start_periodic_scans( period=(60 * self.config[zigpy.config.CONF_TOPO_SCAN_PERIOD]) ) + async def shutdown(self) -> None: """Shutdown controller.""" if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: @@ -185,6 +187,7 @@ async def shutdown(self) -> None: except Exception: LOGGER.warning("Failed to disconnect from database", exc_info=True) + def _retreive_previous_backup(self): _retreived_backup = None if "autoRestore" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoRestore"]: @@ -215,6 +218,7 @@ def get_device(self, ieee=None, nwk=None): # We might have to check that the plugin and zigpy Dbs are in sync # Let's check if the tupple (dev.ieee, dev.nwk ) are aligned with plugin Db _update_nkdids_if_needed(self, dev.ieee, dev.nwk ) + except KeyError: # Not found in zigpy Db, let see if we can get it into the Plugin Db if self.callBackGetDevice: @@ -250,13 +254,20 @@ def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK) -> None: dev = self.get_device(ieee) time.sleep(1.0) self.log.logging("TransportZigpy", "Debug", "Device 0x%04x (%s) joined the network" %(nwk, ieee)) + except KeyError: dev = self.add_device(ieee, nwk) + dev.update_last_seen() + new_join = True time.sleep(1.0) self.log.logging("TransportZigpy", "Debug", "New device 0x%04x (%s) joined the network" %(nwk, ieee)) + else: + new_join = False + if dev.nwk != nwk: dev.nwk = nwk + new_join = True _update_nkdids_if_needed(self, ieee, dev.nwk ) self.log.logging("TransportZigpy", "Debug", "Device %s changed id (0x%04x => 0x%04x)" %(ieee, dev.nwk, nwk)) @@ -366,6 +377,8 @@ def packet_received( def _update_nkdids_if_needed( self, ieee, new_nwkid ): + if not isinstance(self, ZigpyTransport): + return _ieee = "%016x" % t.uint64_t.deserialize(ieee.serialize())[0] _nwk = new_nwkid.serialize()[::-1].hex() self.callBackUpdDevice(_ieee, _nwk) @@ -499,6 +512,7 @@ def do_retreive_backup( self ): LOGGER.debug("Retreiving last backup") return handle_zigpy_retreive_last_backup( self ) + async def network_interference_scan(self): self.log.logging( "NetworkEnergy", "Debug", "network_interference_scan") @@ -553,6 +567,7 @@ def build_json_to_store(self, scan_result): } return {timestamp: [ router, ] } + def scan_channel( self, scan_result ): list_channels = [] From e5b22177fea05c8e47ae113e5a9b09b31ca6f0ea Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 12:12:00 +0100 Subject: [PATCH 045/301] change the log message --- Classes/ZigpyTransport/zigpyThread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index a0107fa77..33b9891d0 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -214,7 +214,7 @@ async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False else: new_network = False - self.log.logging( "TransportZigpy", "Log", "restore save state") + self.log.logging( "TransportZigpy", "Status", "load zigpy db to restor last save state") await self.app._load_db() await _radio_startup(self, pluginconf, new_network, radiomodule) From 08ce40e4bb170348206847cb6757cfd7c07a1504 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 13:12:45 +0100 Subject: [PATCH 046/301] reload ListOfWidgets index after dom_creat and domo_remove --- Modules/domoticzAbstractLayer.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 494ef72b1..e76025f4a 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -373,26 +373,32 @@ def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Typ else: self.log.logging("AbstractDz", "Debug", "- default") myDev = domoticz_device_api_class( DeviceID=DeviceID_, Name=Name_, Unit=Unit_, Type=Type_, Subtype=Subtype_, ) - myDev.Create() - + if DOMOTICZ_EXTENDED_API: self.log.logging("AbstractDz", "Debug", "domo_create_api status %s" %Devices[DeviceID_].Units[Unit_].ID) return Devices[DeviceID_].Units[Unit_].ID self.log.logging("AbstractDz", "Debug", "domo_create_api status %s" %myDev.ID) + + # Update the ListOfWidgets index + load_list_of_domoticz_widget(self, Devices) return myDev.ID def domo_delete_widget( self, Devices, DeviceID_, Unit_): self.log.logging("AbstractDz", "Log", "domo_delete_widget: DeviceID_ : %s Unit_: %s " %( DeviceID_, Unit_)) - + if DOMOTICZ_EXTENDED_API: Devices[DeviceID_].Units[Unit_].Delete() - return - if Unit_ in self.Devices: + # Update the ListOfWidgets index + load_list_of_domoticz_widget(self, Devices) + + elif Unit_ in self.Devices: self.Devices[Unit_].Delete() + # Update the ListOfWidgets index + load_list_of_domoticz_widget(self, Devices) def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel=None, BatteryLevel=None, TimedOut=None, Color="", Options=None, SuppressTriggers=False): From 8ed0f62fafa37c125096eeb49e6951eb444df718 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 13:13:19 +0100 Subject: [PATCH 047/301] do not update the Status to inDB if we are in a pairing steps --- Z4D_decoders/z4d_decoder_helpers.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Z4D_decoders/z4d_decoder_helpers.py b/Z4D_decoders/z4d_decoder_helpers.py index deea58215..3ffad6628 100644 --- a/Z4D_decoders/z4d_decoder_helpers.py +++ b/Z4D_decoders/z4d_decoder_helpers.py @@ -129,6 +129,10 @@ def check_duplicate_sqn(self, nwk_id, ep, cluster, sqn): def set_health_after_message_received(self, Nwkid): device = self.ListOfDevices.get(Nwkid, {}) + if device.get("Status") in ("004d", "0043", "0045", "8045", "8043"): + # Pairing phase + return + if "Health" not in device: device["Health"] = "Live" From 55330a2f243b483c80e26193aaa50bf7efc7e092 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 13:13:52 +0100 Subject: [PATCH 048/301] do not reload ListOfWidgets index after a DeviceList change --- plugin.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugin.py b/plugin.py index 3f6b3cbe0..345fc0519 100644 --- a/plugin.py +++ b/plugin.py @@ -498,8 +498,7 @@ def onStart(self): self.onStop() return - # Import List of Domoticz Widgets - + # Initialize List of Domoticz Widgets load_list_of_domoticz_widget(self, Devices) # Import DeviceList.txt Filename is : DeviceListName @@ -896,7 +895,6 @@ def onHeartbeat(self): self.log.logging("Plugin", "Debug", "Devices size has changed , let's write ListOfDevices on disk") WriteDeviceList(self, 0) # write immediatly networksize_update(self) - load_list_of_domoticz_widget(self, Devices) _trigger_coordinator_backup( self ) From 141cb23931ea0023f63b1bc1a3d6f8cffe6a2a92 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 6 Mar 2024 13:14:02 +0100 Subject: [PATCH 049/301] Plugin wip-develop version 7.2.015 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index e16b65cdf..65142f497 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.014"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.015"} \ No newline at end of file From 3abbe34566b81efd00d1f80b0004f4d8eef15391 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 12:28:28 +0100 Subject: [PATCH 050/301] makes enableZigpyPersistentInMemory before enableZigpyPersistentInMemory --- Classes/ZigpyTransport/zigpyThread.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 33b9891d0..73ba4c93e 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -270,13 +270,13 @@ def deconz_configuration_setup(self, conf, serialPort): def optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel): config[zigpy.config.CONF_SOURCE_ROUTING] = bool( self.pluginconf.pluginConf["zigpySourceRouting"] ) - if "enableZigpyPersistentInMemory" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInMemory"]: - config[zigpy.config.CONF_DATABASE] = ":memory:" - - elif "enableZigpyPersistentInFile" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInFile"]: + if "enableZigpyPersistentInFile" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInFile"]: data_folder = Path( self.pluginconf.pluginConf["pluginData"] ) config[zigpy.config.CONF_DATABASE] = str(data_folder / ("zigpy_persistent_%02d.db"% self.hardwareid) ) + elif "enableZigpyPersistentInMemory" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInMemory"]: + config[zigpy.config.CONF_DATABASE] = ":memory:" + if "autoBackup" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoBackup"]: config[zigpy.config.CONF_NWK_BACKUP_ENABLED] = True config[zigpy.config.CONF_NWK_BACKUP_PERIOD] = self.pluginconf.pluginConf["autoBackup"] From 5a6bc97e5c3dc19d5548a685c80fb056ca7491d0 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 12:29:14 +0100 Subject: [PATCH 051/301] Use ListOfWidgets in Group --- Classes/GroupMgtv2/GroupManagement.py | 3 +++ plugin.py | 1 + 2 files changed, 4 insertions(+) diff --git a/Classes/GroupMgtv2/GroupManagement.py b/Classes/GroupMgtv2/GroupManagement.py index 4f3bab9be..ea509a0f0 100644 --- a/Classes/GroupMgtv2/GroupManagement.py +++ b/Classes/GroupMgtv2/GroupManagement.py @@ -95,6 +95,7 @@ def __init__( Devices, ListOfDevices, IEEE2NWK, + ListOfDomoticzWidget, DeviceConf, log, readZclClusters, @@ -122,6 +123,8 @@ def __init__( self.DomoticzMinor = DomoticzMinor self.readZclClusters = readZclClusters self.pluginParameters = pluginParameters + self.ListOfDomoticzWidget = ListOfDomoticzWidget + # Check if we have to open the old format if os.path.isfile(self.pluginconf.pluginConf["pluginData"] + "/GroupsList-%02d.pck" % hardwareID): # We are in the Migration from Old Group Managemet to new. diff --git a/plugin.py b/plugin.py index 345fc0519..d1c4e24fe 100644 --- a/plugin.py +++ b/plugin.py @@ -1306,6 +1306,7 @@ def start_GrpManagement(self, homefolder): Devices, self.ListOfDevices, self.IEEE2NWK, + self.ListOfDomoticzWidget, self.DeviceConf, self.log, self.readZclClusters, From 9ea0dcd6d71f21b5c0356559497a07e6990fd5e6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 12:29:41 +0100 Subject: [PATCH 052/301] remove unused variable --- Classes/ZigpyTransport/AppGeneric.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 52be7cb6b..f8c979e2b 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -258,16 +258,11 @@ def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK) -> None: except KeyError: dev = self.add_device(ieee, nwk) dev.update_last_seen() - new_join = True time.sleep(1.0) self.log.logging("TransportZigpy", "Debug", "New device 0x%04x (%s) joined the network" %(nwk, ieee)) - else: - new_join = False - if dev.nwk != nwk: dev.nwk = nwk - new_join = True _update_nkdids_if_needed(self, ieee, dev.nwk ) self.log.logging("TransportZigpy", "Debug", "Device %s changed id (0x%04x => 0x%04x)" %(ieee, dev.nwk, nwk)) From 509de5eb2188b86cf6763628028c4a46dbecbc77 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 12:31:09 +0100 Subject: [PATCH 053/301] Plugin wip-develop version 7.2.016 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 65142f497..30aeae7dc 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.015"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.016"} \ No newline at end of file From f12604118044a924f31940b32aabe3ae89f0a387 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 18:09:00 +0100 Subject: [PATCH 054/301] fix some zigpy debuging modules --- Classes/LoggingManagement.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index 13179c249..0b60d1aa7 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -505,18 +505,23 @@ def configure_loggers(logger_names, mode): # Loggers configurations def configure_zigpy_loggers(mode): logger_names = [ + "Classes.ZigpyTransport.AppGeneric", "aiosqlite", - "zigpy.application", "zigpy", "zigpy.zdo", "zigpy.zcl", - "zigpy.profiles", "zigpy.quirks", "zigpy.ota", - "zigpy.appdb_schemas", "zigpy.backups", "zigpy.device", - "zigpy.application", "zigpy.appdb", "zigpy.endpoint", - "zigpy.group", "zigpy.neighbor", "zigpy.topology" + "zigpy.appdb", "zigpy.application", "zigpy.backups", "zigpy.device", + "zigpy.endpoint", "zigpy.group", "zigpy.listeners", "zigpy.state", "zigpy.topology", + "zigpy.util", + "zigpy.config", + "zigpy.ota", + "zigpy.profiles", + "zigpy.quirks", + "zigpy.zcl", "zigpy.zco" ] configure_loggers(logger_names, mode) def configure_zigpy_znp_loggers(mode): logger_names = [ + "AppZnp", "zigpy_znp", "zigpy_znp.zigbee", "zigpy_znp.zigbee.application", @@ -529,12 +534,13 @@ def configure_zigpy_znp_loggers(mode): def configure_zigpy_ezsp_loggers(mode): logger_names = [ + "AppBellows", "bellows", "bellows.zigbee", "bellows.zigbee.application", "bellows.zigbee.device", "bellows.uart", - "Classes.ZigpyTransport.AppBellows", + "ZigpyTransport.AppBellows", "Classes.ZigpyTransport.AppGeneric" ] configure_loggers(logger_names, mode) @@ -551,7 +557,8 @@ def configure_zigpy_zigate_loggers(mode): def configure_zigpy_deconz_loggers(mode): logger_names = [ "zigpy_deconz", - "Classes.ZigpyTransport.AppDeconz" + "ZigpyTransport.AppDeconz", + "Classes.ZigpyTransport.AppGeneric" ] configure_loggers(logger_names, mode) From 6bf415ce01b8d79a1fc59251a4cc3c1b2efa6d0f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 18:09:51 +0100 Subject: [PATCH 055/301] Zigpy Persistent Db --- Classes/ZigpyTransport/AppBellows.py | 47 +++++++++++++++++++++------ Classes/ZigpyTransport/AppDeconz.py | 29 +++++++++++++++-- Classes/ZigpyTransport/AppGeneric.py | 39 ++++++++++++++++++++-- Classes/ZigpyTransport/AppZnp.py | 42 ++++++++++++++++++------ Classes/ZigpyTransport/Transport.py | 2 ++ Classes/ZigpyTransport/zigpyThread.py | 19 ++++++----- 6 files changed, 146 insertions(+), 32 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 9ec7befb5..d39ee3f99 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -4,17 +4,17 @@ # Author: deufo, badz & pipiche38 # +import asyncio import logging import bellows.config as bellows_conf import bellows.types as t -import zigpy.types as zigpy_t import bellows.zigbee.application import zigpy.config as zigpy_conf import zigpy.device +import zigpy.types as zigpy_t import zigpy.zdo.types as zdo_types from bellows.exception import EzspError -from zigpy.types import Addressing import Classes.ZigpyTransport.AppGeneric from Classes.ZigpyTransport.firmwareversionHelper import \ @@ -48,7 +48,8 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) LOGGER.info("EZSP Configuration: %s", self.config) - async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + + async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): # If set to != 0 (default) extended PanId will be use when forming the network. # If set to !=0 (default) channel will be use when formin the network self.log = log @@ -60,6 +61,7 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU self.callBackBackup = callBackBackup self.HardwareID = HardwareID self.captureRxFrame = captureRxFrame + self.use_of_zigpy_persistent_db = use_of_zigpy_persistent_db """ Starts a network, optionally forming one with random settings if necessary. @@ -108,13 +110,15 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU status = await coordinator.add_to_group( 0x4004, name="Default Tint Group 4004", ) status = await coordinator.add_to_group( 0x4005, name="Default Tint Group 4005", ) status = await coordinator.add_to_group( 0x4006, name="Default Tint Group 4006", ) + async def shutdown(self) -> None: """Shutdown controller.""" await Classes.ZigpyTransport.AppGeneric.shutdown(self) - # Only needed if the device require simple node descriptor from the coordinator + async def register_endpoints(self, endpoint=1): + # Only needed if the device require simple node descriptor from the coordinator self.log.logging("TransportZigpy", "Status", "Bellows Radio register default Ep") await self.add_endpoint( zdo_types.SimpleDescriptor( @@ -139,28 +143,36 @@ async def register_endpoints(self, endpoint=1): ], ) ) - + + def get_device(self, ieee=None, nwk=None): return Classes.ZigpyTransport.AppGeneric.get_device(self, ieee, nwk) + def handle_join(self, nwk: t.EmberNodeId, ieee: t.EmberEUI64, parent_nwk: t.EmberNodeId, *, handle_rejoin: bool = True,) -> None: return Classes.ZigpyTransport.AppGeneric.handle_join(self, nwk, ieee, parent_nwk) + def get_device_ieee(self, nwk): return Classes.ZigpyTransport.AppGeneric.get_device_ieee(self, nwk) + def handle_leave(self, nwk, ieee): Classes.ZigpyTransport.AppGeneric.handle_leave(self, nwk, ieee) + def handle_relays(self, nwk, relays) -> None: Classes.ZigpyTransport.AppGeneric.handle_relays(self, nwk, relays) - + + def get_zigpy_version(self): return Classes.ZigpyTransport.AppGeneric.get_zigpy_version(self) + def packet_received(self, packet: zigpy_t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) + def handle_message( self, sender: zigpy.device.Device, @@ -173,7 +185,8 @@ def handle_message( dst_addressing=None, )->None: return Classes.ZigpyTransport.AppGeneric.handle_message(self,sender,profile,cluster,src_ep,dst_ep,message, dst_addressing=dst_addressing) - + + async def set_zigpy_tx_power(self, power): # EmberConfigTxPowerMode - EZSP_CONFIG_TX_POWER_MODE in EzspConfigId # 0x00: Normal mode @@ -187,49 +200,63 @@ async def set_zigpy_tx_power(self, power): await self._ezsp.setConfigurationValue(0x17,0) self.log.logging("TransportZigpy", "Debug", "set_tx_power: normal mode") + async def set_led(self, mode): self.log.logging("TransportZigpy", "Debug", "set_led not available on EZSP") + async def set_certification(self, mode): self.log.logging("TransportZigpy", "Debug", "set_certification not implemented yet") + async def get_time_server(self): self.log.logging("TransportZigpy", "Debug", "get_time_server not implemented yet") + async def set_time_server(self, newtime): self.log.logging("TransportZigpy", "Debug", "set_time_server not implemented yet") + async def get_firmware_version(self): return self.bellows.version + async def erase_pdm(self): pass + async def set_extended_pan_id(self,extended_pan_ip): self.config[bellows_conf.CONF_NWK][bellows_conf.CONF_NWK_EXTENDED_PAN_ID] = extended_pan_ip await self._ezsp.leaveNetwork() await super().form_network() + async def set_channel(self,channel): # BE CAREFUL - NEW network formed self.config[bellows_conf.CONF_NWK][bellows_conf.CONF_NWK_CHANNEL] = channel await self._ezsp.leaveNetwork() await super().form_network() + async def remove_ieee(self, ieee): await self.remove( ieee ) - + + async def coordinator_backup( self ): if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=self.pluginconf.pluginConf["BackupFullDevices"])) + async def network_interference_scan(self): await Classes.ZigpyTransport.AppGeneric.network_interference_scan(self) + def is_bellows(self): return True - + + def is_znp(self): return False - + + def is_deconz(self): return False diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 1dd66c7c9..3cd3f8109 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -28,6 +28,7 @@ class App_deconz(zigpy_deconz.zigbee.application.ControllerApplication): async def new(cls, config: dict, auto_form: bool = False, start_radio: bool = True) -> zigpy.application.ControllerApplication: LOGGER.debug("new") + async def _load_db(self) -> None: await Classes.ZigpyTransport.AppGeneric._load_db(self) LOGGER.debug("_load_db") @@ -45,7 +46,8 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) LOGGER.info("deCONZ Configuration: %s", self.config) - async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + + async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): self.log = log self.pluginconf = pluginconf self.permit_to_join_timer = permit_to_join_timer @@ -55,6 +57,7 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU self.callBackBackup = callBackBackup self.HardwareID = HardwareID self.captureRxFrame = captureRxFrame + self.use_of_zigpy_persistent_db = use_of_zigpy_persistent_db await asyncio.sleep( 3 ) @@ -145,21 +148,27 @@ async def register_endpoints(self): def get_device(self, ieee=None, nwk=None): return Classes.ZigpyTransport.AppGeneric.get_device(self, ieee, nwk) + def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK, *, handle_rejoin: bool = True,) -> None: return Classes.ZigpyTransport.AppGeneric.handle_join(self, nwk, ieee, parent_nwk) + def get_device_ieee(self, nwk): return Classes.ZigpyTransport.AppGeneric.get_device_ieee(self, nwk) + def handle_leave(self, nwk, ieee): Classes.ZigpyTransport.AppGeneric.handle_leave(self, nwk, ieee) + def handle_relays(self, nwk, relays) -> None: Classes.ZigpyTransport.AppGeneric.handle_relays(self, nwk, relays) + def packet_received(self, packet: t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) + def handle_message( self, sender: zigpy.device.Device, @@ -173,56 +182,72 @@ def handle_message( ) -> None: return Classes.ZigpyTransport.AppGeneric.handle_message(self,sender,profile,cluster,src_ep,dst_ep,message,dst_addressing=dst_addressing) + async def set_zigpy_tx_power(self, power): pass #await self._api.set_tx_power(power) + async def set_led(self, mode): pass #await self._api.set_led(mode) + async def set_certification(self, mode): pass #await self._api.set_certification(mode) + async def get_time_server(self): pass #await self._api.get_time_server() + async def set_time_server(self, newtime): pass #await self._api.set_time() + async def get_firmware_version(self): pass + async def erase_pdm(self): pass + async def soft_reset(self): pass + async def set_extended_pan_id(self, extended_pan_ip): pass + async def set_channel(self): pass + async def remove_ieee(self, ieee): pass + async def coordinator_backup( self ): if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=self.pluginconf.pluginConf["BackupFullDevices"])) + async def network_interference_scan(self): await Classes.ZigpyTransport.AppGeneric.network_interference_scan(self) + def is_bellows(self): return False + def is_znp(self): return False + def is_deconz(self): - return True \ No newline at end of file + return True diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index f8c979e2b..9178ff8e8 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -80,7 +80,7 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) Starts the network on a connected radio, optionally forming one with random settings if necessary. """ - self.log.logging("TransportZigpy", "Log", "AppGeneric:initialize auto_form: %s force_form: %s Class: %s" %( auto_form, force_form, type(self))) + self.log.logging("TransportZigpy", "Log", "AppGeneric:initialize auto_form: %s force_form: %s Class: %s Logger: %s" %( auto_form, force_form, type(self), LOGGER)) # Make sure the first thing we do is feed the watchdog if self.config[zigpy_conf.CONF_WATCHDOG_ENABLED]: @@ -350,6 +350,22 @@ def packet_received( super(type(self),self).packet_received(packet) return + if self.use_of_zigpy_persistent_db: + try: + device = self.get_device_with_address(packet.src) + self.log.logging("TransportZigpy", "Debug", f"Known device {device}") + + except KeyError: + self.log.logging("TransportZigpy", "Debug", "Unknown device %r", packet.src) + + if packet.src.addr_mode == t.AddrMode.NWK: + # Manually send a ZDO IEEE address request to discover the device + task = asyncio.create_task( + self._discover_unknown_device(packet.src.address), + name=f"discover_unknown_device_from_packet-nwk={packet.src.address!r}", + ) + return + if cluster == 0x8034: # This has been handle via on_zdo_mgmt_leave_rsp() self.log.logging("TransportZigpy", "Debug", "handle_message 0x8036: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( @@ -367,8 +383,16 @@ def packet_received( plugin_frame = build_plugin_8002_frame_content(self, sender, profile, cluster, src_ep, dst_ep, message, packet.lqi, src_addrmode=addr_mode) self.log.logging("TransportZigpy", "Debug", "handle_message Sender: %s frame for plugin: %s" % (sender, plugin_frame)) self.callBackFunction(plugin_frame) + + if self.use_of_zigpy_persistent_db and not device.initializing and not device.is_initialized: + self.log.logging("TransportZigpy", "Debug", f"Schedule initialize for {device}") + device.schedule_initialize() - return + if self.use_of_zigpy_persistent_db and device.is_initialized: + #TODO + # This trigger the write in the Persistent Db. + # This is a bit too much as we will do for every packet received + self.device_initialized( device ) def _update_nkdids_if_needed( self, ieee, new_nwkid ): @@ -384,6 +408,17 @@ def get_zigpy_version(self): LOGGER.debug("get_zigpy_version ake version number. !!") return self.version +def get_device_with_address( self, address: t.AddrModeAddress ) -> zigpy.device.Device: + """Gets a `Device` object using the provided address mode address.""" + + if address.addr_mode == t.AddrMode.NWK: + return self.get_device(nwk=address.address) + + elif address.addr_mode == t.AddrMode.IEEE: + return self.get_device(ieee=address.address) + + else: + raise ValueError(f"Invalid address: {address!r}") async def register_specific_endpoints(self): """ diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 41ce76c34..4859fe493 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -6,22 +6,23 @@ import logging -import Classes.ZigpyTransport.AppGeneric import zigpy.config as zigpy_conf import zigpy.device import zigpy.profiles +import zigpy.types as zigpy_t import zigpy.zdo.types as zdo_types import zigpy_znp.commands.util import zigpy_znp.config as znp_conf import zigpy_znp.types as t -import zigpy.types as zigpy_t import zigpy_znp.zigbee.application +from zigpy.zcl import clusters + +import Classes.ZigpyTransport.AppGeneric from Classes.ZigpyTransport.firmwareversionHelper import \ znp_extract_versioning_for_plugin from Classes.ZigpyTransport.plugin_encoders import ( build_plugin_8010_frame_content, build_plugin_8015_frame_content) from Modules.zigbeeVersionTable import ZNP_MODEL -from zigpy.zcl import clusters LOGGER = logging.getLogger(__name__) @@ -30,6 +31,7 @@ class App_znp(zigpy_znp.zigbee.application.ControllerApplication): async def new(cls, config: dict, auto_form: bool = False, start_radio: bool = True) -> zigpy.application.ControllerApplication: LOGGER.debug("new") + async def _load_db(self) -> None: await Classes.ZigpyTransport.AppGeneric._load_db(self) @@ -46,7 +48,8 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) LOGGER.info("ZNP Configuration: %s", self.config) - async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + + async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): # If set to != 0 (default) extended PanId will be use when forming the network. # If set to !=0 (default) channel will be use when formin the network self.log = log @@ -58,6 +61,7 @@ async def startup(self, HardwareID, pluginconf, callBackHandleMessage, callBackU self.callBackBackup = callBackBackup self.HardwareID = HardwareID self.captureRxFrame = captureRxFrame + self.use_of_zigpy_persistent_db = use_of_zigpy_persistent_db # Pipiche : 24-Oct-2022 Disabling CONF_MAX_CONCURRENT_REQUESTS so the default will be used ( 16 ) # self.znp_config[znp_conf.CONF_MAX_CONCURRENT_REQUESTS] = 2 @@ -106,31 +110,34 @@ async def register_endpoints(self): self.log.logging("TransportZigpy", "Status", "ZNP Radio register any additional/specific Ep") await Classes.ZigpyTransport.AppGeneric.register_specific_endpoints(self) - #def device_initialized(self, device): - # self.log.logging("TransportZigpy", "Log","device_initialized (0x%04x %s)" %(device.nwk, device.ieee)) - # super().device_initialized(device) - def get_device(self, ieee=None, nwk=None): return Classes.ZigpyTransport.AppGeneric.get_device(self, ieee, nwk) + def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK, *, handle_rejoin: bool = True,) -> None: return Classes.ZigpyTransport.AppGeneric.handle_join(self, nwk, ieee, parent_nwk) + def get_device_ieee(self, nwk): return Classes.ZigpyTransport.AppGeneric.get_device_ieee(self, nwk) + def handle_leave(self, nwk, ieee): Classes.ZigpyTransport.AppGeneric.handle_leave(self, nwk, ieee) + def handle_relays(self, nwk, relays) -> None: Classes.ZigpyTransport.AppGeneric.handle_relays(self, nwk, relays) + def get_zigpy_version(self): return Classes.ZigpyTransport.AppGeneric.get_zigpy_version(self) + def packet_received(self, packet: zigpy_t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) + def handle_message( self, @@ -144,54 +151,69 @@ def handle_message( ) -> None: return Classes.ZigpyTransport.AppGeneric.handle_message(self,sender,profile,cluster,src_ep,dst_ep,message, dst_addressing=dst_addressing) + async def set_zigpy_tx_power(self, power): self.log.logging("TransportZigpy", "Debug", "set_tx_power %s" %power) await self.set_tx_power(dbm=power) + async def set_led(self, mode): if mode == 1: await self._set_led_mode(led=0xFF, mode=zigpy_znp.commands.util.LEDMode.ON) else: await self._set_led_mode(led=0xFF, mode=zigpy_znp.commands.util.LEDMode.OFF) + async def set_certification(self, mode): self.log.logging("TransportZigpy", "Debug", "set_certification not implemented yet") + async def get_time_server(self): self.log.logging("TransportZigpy", "Debug", "get_time_server not implemented yet") + async def set_time_server(self, newtime): self.log.logging("TransportZigpy", "Debug", "set_time_server not implemented yet") + async def get_firmware_version(self): return self.znp.version + async def erase_pdm(self): pass + async def set_extended_pan_id(self,extended_pan_ip): self.config[znp_conf.CONF_NWK][znp_conf.CONF_NWK_EXTENDED_PAN_ID] = extended_pan_ip self.startup(self.callBackFunction,self.callBackGetDevice,auto_form=True,force_form=True,log=self.log) + async def set_channel(self,channel): self.config[znp_conf.CONF_NWK][znp_conf.CONF_NWK_EXTENDED_PAN_ID] = channel self.startup(self.callBackFunction,self.callBackGetDevice,auto_form=True,force_form=True,log=self.log) + async def remove_ieee(self, ieee): await self.remove( ieee ) + async def coordinator_backup( self ): if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=self.pluginconf.pluginConf["BackupFullDevices"])) + async def network_interference_scan(self): await Classes.ZigpyTransport.AppGeneric.network_interference_scan(self) + def is_bellows(self): return False - + + def is_znp(self): return True - + + def is_deconz(self): return False \ No newline at end of file diff --git a/Classes/ZigpyTransport/Transport.py b/Classes/ZigpyTransport/Transport.py index 44b1891cf..7aaf6faca 100644 --- a/Classes/ZigpyTransport/Transport.py +++ b/Classes/ZigpyTransport/Transport.py @@ -71,6 +71,8 @@ def __init__(self, ControllerData, pluginParameters, pluginconf, F_out, zigpy_up self.structured_log_command_file_handler = None instrument_log_command_open( self) + + self.use_of_zigpy_persistent_db = self.pluginconf.pluginConf["enableZigpyPersistentInFile"] or self.pluginconf.pluginConf["enableZigpyPersistentInMemory"] def open_cie_connection(self): diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 73ba4c93e..c5f0f985b 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -126,7 +126,7 @@ async def start_zigpy_task(self, channel, extended_pan_id): self.log.logging( "TransportZigpy", "Debug", f"start_zigpy_task -extendedPANID {self.pluginconf.pluginConf['extendedPANID']} {extended_pan_id}", ) task = asyncio.create_task( - radio_start(self, self.pluginconf, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), + radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), name=f"radio_start-{self._radiomodule}-{self._serialPort}" ) await asyncio.gather(task, return_exceptions=False) @@ -150,7 +150,7 @@ async def _shutdown_remaining_task(self): await asyncio.sleep(1) -async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False, set_channel=0, set_extendedPanId=0): +async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, serialPort, auto_form=False, set_channel=0, set_extendedPanId=0): self.log.logging("TransportZigpy", "Debug", "In radio_start %s" %radiomodule) @@ -214,10 +214,11 @@ async def radio_start(self, pluginconf, radiomodule, serialPort, auto_form=False else: new_network = False - self.log.logging( "TransportZigpy", "Status", "load zigpy db to restor last save state") - await self.app._load_db() + if self.use_of_zigpy_persistent_db: + self.log.logging( "TransportZigpy", "Status", "Use of zigpy Persistent Db") + await self.app._load_db() - await _radio_startup(self, pluginconf, new_network, radiomodule) + await _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule) self.log.logging( "TransportZigpy", "Debug", "Exiting co-rounting radio_start") @@ -266,7 +267,8 @@ def deconz_configuration_setup(self, conf, serialPort): zigpy.config.CONF_TOPO_SCAN_ENABLED: False, # zigpy.config.CONF_STARTUP_ENERGY_SCAN: False } - + + def optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel): config[zigpy.config.CONF_SOURCE_ROUTING] = bool( self.pluginconf.pluginConf["zigpySourceRouting"] ) @@ -292,12 +294,14 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan if "EnergyScanAtStatup" in self.pluginconf.pluginConf and not self.pluginconf.pluginConf["EnergyScanAtStatup"]: config[zigpy.config.CONF_STARTUP_ENERGY_SCAN] = False -async def _radio_startup(self, pluginconf, new_network, radiomodule): + +async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule): try: await self.app.startup( self.hardwareid, pluginconf, + use_of_zigpy_persistent_db, callBackHandleMessage=self.receiveData, callBackUpdDevice=self.ZigpyUpdDevice, callBackGetDevice=self.ZigpyGetDevice, @@ -347,7 +351,6 @@ def post_coordinator_startup(self, radiomodule): self.forwarder_queue.put( build_plugin_0302_frame_content( self, ) ) - def display_network_infos(self): self.log.logging( "TransportZigpy", "Status", "Network settings") self.log.logging( "TransportZigpy", "Status", " Device IEEE: %s" %self.app.state.node_info.ieee) From 113e4ee8719ad30dc9fb62811779ff97e12a9707 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 19:15:59 +0100 Subject: [PATCH 056/301] Enable debuging/logging Python modules --- Classes/LoggingManagement.py | 25 ++++++++++++++++++++----- Classes/PluginConf.py | 25 ++++++++++++++++++++++++- Classes/WebServer/WebServer.py | 6 ++---- 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index 0b60d1aa7..a108ff0c0 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -52,6 +52,8 @@ def __init__(self, pluginconf, PluginHealth, HardwareID, ListOfDevices, permitTo self.debugZigate = False self.debugdeconz = False + self.reload_debug_settings = False + configure_zigpy_loggers("warning") configure_zigpy_znp_loggers("warning") configure_zigpy_ezsp_loggers("warning") @@ -59,7 +61,7 @@ def __init__(self, pluginconf, PluginHealth, HardwareID, ListOfDevices, permitTo configure_zigpy_deconz_loggers("warning") self.zigpy_login() - + start_logging_thread(self) # Thread log filter configuration @@ -75,15 +77,26 @@ def __init__(self, pluginconf, PluginHealth, HardwareID, ListOfDevices, permitTo def reset_new_error(self): self._newError = False + def is_new_error(self): return bool(self._newError and bool(self.LogErrorHistory)) + def zigpy_login(self): _configure_debug_mode(self, self.debugzigpy, "Zigpy", configure_zigpy_loggers) _configure_debug_mode(self, self.debugZNP, "ZigpyZNP", configure_zigpy_znp_loggers) _configure_debug_mode(self, self.debugEZSP, "ZigpyEZSP", configure_zigpy_ezsp_loggers) _configure_debug_mode(self, self.debugZigate, "ZigpyZigate", configure_zigpy_zigate_loggers) _configure_debug_mode(self, self.debugdeconz, "ZigpydeCONZ", configure_zigpy_deconz_loggers) + + for param in self.pluginconf.pluginConf: + if 'Python/' in param: + logger_name = param.split('/')[1] + logger_name = logger_name.replace( '-', '.') + mode = self.pluginconf.pluginConf[param] + + _set_logging_level = logging.DEBUG if mode == 1 else logging.WARNING + logging.getLogger(logger_name).setLevel(_set_logging_level) def loggingUpdatePluginVersion(self, Version): self.PluginVersion = Version @@ -246,7 +259,9 @@ def loggingClearErrorHistory(self): def logging(self, module, logType, message, nwkid=None, context=None): #domoticz_log_api("%s %s %s %s %s %s %s" % (module, logType, message, nwkid, context, self.logging_thread, self.logging_queue)) # Set python3 modules logging if required - self.zigpy_login() + if self.reload_debug_settings: + self.zigpy_login() + self.reload_debug_settings = False try: thread_id = threading.current_thread().native_id @@ -494,8 +509,9 @@ def logging_thread(self): domoticz_error_api("logging_thread unexpected tuple %s" % (str(logging_tuple))) domoticz_log_api("logging_thread - ended") + def configure_loggers(logger_names, mode): - #domoticz_log_api(f"configure_loggers({logger_names} with {_set_logging_level})") + domoticz_log_api(f"configure_loggers({logger_names} with {mode})") _set_logging_level = logging.DEBUG if mode == "debug" else logging.WARNING for logger_name in logger_names: @@ -514,7 +530,7 @@ def configure_zigpy_loggers(mode): "zigpy.ota", "zigpy.profiles", "zigpy.quirks", - "zigpy.zcl", "zigpy.zco" + "zigpy.zcl", "zigpy.zdo" ] configure_loggers(logger_names, mode) @@ -562,7 +578,6 @@ def configure_zigpy_deconz_loggers(mode): ] configure_loggers(logger_names, mode) - # Main configuration function def _configure_debug_mode(self, debug_flag, config_name, config_function): diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index dfbf713fc..4dd24d453 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -252,6 +252,27 @@ "Pluzzy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "PollControl": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Profalux": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + + "Python/aiosqlite": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-appdb": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-application": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-backups": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-device": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-endpoint": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-group": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-listeners": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-state": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-topology": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-util": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-config": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-ota": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-profiles": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-quirks": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-zcl": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/zigpy-zdo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Python/Classes-ZigpyTransport-AppGeneric": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "ReadAttributes": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Schneider": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Sonoff": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -630,6 +651,7 @@ def _path_check(self): if update_done: self.write_Settings() + def _param_checking(self): # Let"s check the Type for theme in SETTINGS: @@ -657,7 +679,8 @@ def zigpy_setup(self): "hidden": False, "Advanced": True, } - + + def setup_folder_parameters(self, homedir): for theme in SETTINGS: diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 3f6d83703..523552b38 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -620,7 +620,7 @@ def rest_Settings(self, verb, data, parameters, sendDebug=False): for setting in setting_lst: found = False self.logging("Debug", "setting: %s = %s" % (setting, setting_lst[setting]["current"])) - + self.log.reload_debug_settings = True # Do we have to update ? for _theme in SETTINGS: for param in SETTINGS[_theme]["param"]: @@ -682,7 +682,7 @@ def rest_Settings(self, verb, data, parameters, sendDebug=False): if self.pluginconf.pluginConf[param] != setting_lst[setting]["current"]: self.pluginconf.pluginConf[param] = setting_lst[setting]["current"] set_TxPower(self, self.pluginconf.pluginConf[param]) - + else: if SETTINGS[_theme]["param"][param]["type"] == "hex": # domoticz_log_api("--> %s: %s - %s" %(param, self.pluginconf.pluginConf[param], type(self.pluginconf.pluginConf[param]))) @@ -1511,8 +1511,6 @@ def rest_battery_state(self, verb, data, parameters): _response["Data"] = json.dumps(_battEnv, sort_keys=True) return _response - - def logging(self, logType, message): self.log.logging("WebServer", logType, message) From 4a551b5303938cfd2d0c01899c62f6f1ae8e3f67 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 9 Mar 2024 19:16:29 +0100 Subject: [PATCH 057/301] Plugin wip-develop version 7.2.017 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 30aeae7dc..7e7002ec6 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.016"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.017"} \ No newline at end of file From 77f45a9a7ce7bb928199270242cc9358a6cbc46b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 10 Mar 2024 18:15:50 +0100 Subject: [PATCH 058/301] Allow possibility to have several debug Parameter for one debug message. --- Classes/LoggingManagement.py | 70 +++++++++++++++++++++++------------- Classes/PluginConf.py | 1 + Modules/domoMaj.py | 29 +++++++-------- 3 files changed, 61 insertions(+), 39 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index a108ff0c0..0c39726fc 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -274,22 +274,44 @@ def logging(self, module, logType, message, nwkid=None, context=None): context["StackTrace"] = get_stack_trace() else: context = { "StackTrace": get_stack_trace() } + + # Do not enqueue if there is nothing to log. + if isinstance( module, str): + if _is_to_be_logged(self, logType, module): + enqueue_logging( self, thread_id, module, logType, message, nwkid, context ) + + elif isinstance( module, list): + for module_instance in module: + if _is_to_be_logged(self, logType, module_instance): + enqueue_logging( self, thread_id, module_instance, logType, message, nwkid, context ) - if self.logging_thread and self.logging_queue: - logging_tuple = [ - str(time.time()), - str(threading.current_thread().name), - str(thread_id), - str(module), - str(logType), - str(message), - str(nwkid), - str(context), - ] - self.logging_queue.put(logging_tuple) - else: - domoticz_log_api("%s" % message) - +def _is_to_be_logged(self, logType, module): + if logType in ( "Log", "Status", "Error"): + return True + if module in self.pluginconf.pluginConf: + if self.pluginconf.pluginConf[module]: + return True + else: + domoticz_error_api("%s debug module unknown %s" % (module, module)) + return True + return False + +def enqueue_logging( self, thread_id, module, logType, message, nwkid, context ): + if self.logging_thread and self.logging_queue: + logging_tuple = [ + str(time.time()), + str(threading.current_thread().name), + str(thread_id), + str(module), + str(logType), + str(message), + str(nwkid), + str(context), + ] + self.logging_queue.put(logging_tuple) + else: + domoticz_log_api("%s" % message) + def _loggingStatus(self, thread_name, message): if self.pluginconf.pluginConf["logThreadName"]: @@ -485,23 +507,19 @@ def logging_thread(self): domoticz_error_api(" logging_thread unexpected tuple %s" % (str(logging_tuple))) domoticz_error_api(" Error %s" % (str(e))) return + if logType == "Error": loggingError(self, thread_name, module, message, nwkid, context) + elif logType == "Debug": # thread filter - threadFilter = [ - x for x in self.threadLogConfig if self.pluginconf.pluginConf["Thread" + self.threadLogConfig[x]] == 1 - ] + threadFilter = [ x for x in self.threadLogConfig if self.pluginconf.pluginConf["Thread" + self.threadLogConfig[x]] == 1 ] if threadFilter and thread_name not in threadFilter: continue + thread_name=thread_name + " " + thread_id - pluginConfModule = str(module) - if pluginConfModule in self.pluginconf.pluginConf: - if self.pluginconf.pluginConf[pluginConfModule]: - _logginfilter(self, thread_name, message, nwkid) - else: - domoticz_error_api("%s debug module unknown %s" % (pluginConfModule, module)) - _loggingDebug(self, thread_name, message) + _logginfilter(self, thread_name, message, nwkid) + else: thread_name=thread_name + " " + thread_id loggingDirector(self, thread_name, logType, message) @@ -510,6 +528,8 @@ def logging_thread(self): domoticz_log_api("logging_thread - ended") + + def configure_loggers(logger_names, mode): domoticz_log_api(f"configure_loggers({logger_names} with {mode})") _set_logging_level = logging.DEBUG if mode == "debug" else logging.WARNING diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 4dd24d453..cbcf9826c 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -238,6 +238,7 @@ "Livolo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Lumi": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "MatchingNwkId": { "type": "str", "default": "ffff", "current": None, "restart": 0, "hidden": False, "Advanced": False }, + "Metering": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NXPExtendedErrorCode": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NetworkEnergy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NetworkMap": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index a648b40a2..4be66f64f 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -242,28 +242,29 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if WidgetType == "Power" and (Attribute_ in ("", "050f") or ClusterId == "000c"): # kWh if (( isinstance( value, (int, float)) and value < 0) or (float(value) < 0) ) and is_PowerNegative_widget( ClusterTypeList): - self.log.logging("Widget", "Debug", "------>There is a PowerNegative widget and the value is negative. Skiping here", NwkId) + self.log.logging(["Widget","Metering"], "Debug", "------>There is a PowerNegative widget and the value is negative. Skiping here", NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) return sValue = value - self.log.logging("Widget", "Debug", "------>Power : %s" % sValue, NwkId) + self.log.logging(["Widget","Metering"], "Debug", "------>Power : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if WidgetType == "ProdPower" and Attribute_ == "": if value > 0: - self.log.logging("Widget", "Debug", "------>the value is Positive. Skiping here", NwkId) + self.log.logging(["Widget","Metering"], "Debug", "------>the value is Positive. Skiping here", NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) return sValue = abs(value) - self.log.logging("Widget", "Debug", "------>PowerNegative : %s" % sValue, NwkId) + self.log.logging(["Widget","Metering"], "Debug", "------>PowerNegative : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if WidgetType == "P1Meter" and Attribute_ == "0000": - self.log.logging("Widget", "Debug", "------> P1Meter : %s (%s)" % (value, type(value)), NwkId) + self.log.logging(["Widget","Metering"], "Debug", "------> P1Meter : %s (%s)" % (value, type(value)), NwkId) # P1Meter report Instant and Cummulative Power. - # We need to retreive the Cummulative Power. + # Cummulative comes from Attribute 0000 + # Instant Power needs to be retreived cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0;0") usage1 = usage2 = return1 = return2 = cons = prod = 0 if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0400" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: @@ -271,7 +272,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, usage1 = int(float(value)) sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, prod) - self.log.logging("Widget", "Debug", "------> P1Meter : " + sValue, NwkId) + self.log.logging(["Widget","Metering"], "Debug", "------> P1Meter : " + sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if ( @@ -292,7 +293,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, tarif_color = get_tarif_color( self, NwkId ) - self.log.logging("ZLinky", "Debug", "------> P1Meter_ZL : %s Attribute: %s Color: %s (%s)" % ( + self.log.logging(["ZLinky","Metering"], "Debug", "------> P1Meter_ZL : %s Attribute: %s Color: %s (%s)" % ( value, Attribute_, tarif_color, type(value)), NwkId) # P1Meter report Instant and Cummulative Power. @@ -302,7 +303,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging("ZLinky", "Debug", "------> P1Meter_ZL (%s): retreive value: %s;%s;%s;%s;%s;%s" % (Ep, cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod), NwkId) # We are so receiving a usage update - self.log.logging( "ZLinky", "Debug", "------> P1Meter_ZL : Trigger by Index Update %s Ep: %s" % (Attribute_, Ep), NwkId, ) + self.log.logging( ["ZLinky","Metering"], "Debug", "------> P1Meter_ZL : Trigger by Index Update %s Ep: %s" % (Attribute_, Ep), NwkId, ) cons = get_instant_power(self, NwkId) if Attribute_ in ("0000", "0100", "0104", "0108"): # Usage 1 @@ -328,7 +329,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, cons = 0.0 sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, cur_prod) - self.log.logging("ZLinky", "Debug", "------> P1Meter_ZL (%s): %s" % (Ep, sValue), NwkId) + self.log.logging(["ZLinky","Metering"], "Debug", "------> P1Meter_ZL (%s): %s" % (Ep, sValue), NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "Meter" in ClusterType: # Meter Usage. @@ -369,10 +370,10 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, 0) instant, _summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") summation = round(float(zlinky_sum_all_indexes( self, NwkId )), 2) - self.log.logging("ZLinky", "Debug", "------> Summation for Meter : %s" %summation) + self.log.logging(["ZLinky","Metering"], "Debug", "------> Summation for Meter : %s" %summation) sValue = "%s;%s" % (instant, summation) - self.log.logging("ZLinky", "Debug", "------> : " + sValue) + self.log.logging(["ZLinky","Metering"], "Debug", "------> : " + sValue) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "Meter" and Attribute_ == "050f": @@ -381,13 +382,13 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, _instant, summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") instant = round(float(value), 2) sValue = "%s;%s" % (instant, summation) - self.log.logging("Widget", "Debug", f"- {device_id_ieee} {device_unit} Instant Power received {value} converted to {instant} and {summation} resulting in {sValue}") + self.log.logging(["Widget","Metering"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power received {value} converted to {instant} and {summation} resulting in {sValue}") update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif (WidgetType == "Meter" and Attribute_ == "") or (WidgetType == "Power" and ClusterId == "000c"): # kWh # We receive Instant - self.log.logging("Widget", "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: {Attribute_} received {value}") + self.log.logging(["Widget","Metering"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: {Attribute_} received {value}") summation = None ep_data = self.ListOfDevices[NwkId].get("Ep", {}).get(Ep, {}) From a799ecfff4b86bc8450cf2f1797e465d3dffc601 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 10 Mar 2024 18:20:44 +0100 Subject: [PATCH 059/301] Electric debug param --- Classes/PluginConf.py | 2 +- Modules/domoMaj.py | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index cbcf9826c..f9193d73f 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -238,7 +238,7 @@ "Livolo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Lumi": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "MatchingNwkId": { "type": "str", "default": "ffff", "current": None, "restart": 0, "hidden": False, "Advanced": False }, - "Metering": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Electric": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NXPExtendedErrorCode": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NetworkEnergy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NetworkMap": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index 4be66f64f..7733bc0c8 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -201,7 +201,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if "Ampere" in ClusterType and WidgetType == "Ampere" and Attribute_ == "0508": sValue = "%s" % (round(float(value), 2)) - self.log.logging("Widget", "Debug", "------> Ampere : %s" % sValue, NwkId) + self.log.logging(["Widget", "Electric"], "Debug", "------> Ampere : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "Ampere" in ClusterType and WidgetType == "Ampere3" and Attribute_ in ("0508", "0908", "0a08"): @@ -209,7 +209,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "%s;%s;%s" % (0, 0, 0) ampere1, ampere2, ampere3 = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0") if ampere2 == ampere3 == '65535.0': - self.log.logging("Widget", "Debug", "------> Something going wrong ..... ampere %s %s %s" %(ampere1, ampere2, ampere3)) + self.log.logging(["Widget", "Electric"], "Debug", "------> Something going wrong ..... ampere %s %s %s" %(ampere1, ampere2, ampere3)) ampere2 = '0.0' ampere3 = '0.0' ampere = round(float(value), 2) @@ -223,11 +223,11 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # Line 3 sValue = "%s;%s;%s" % (ampere1, ampere2, ampere) - self.log.logging("Widget", "Debug", "------> Ampere3 : %s from Attribute: %s" % (sValue, Attribute_), NwkId) + self.log.logging(["Widget", "Electric"], "Debug", "------> Ampere3 : %s from Attribute: %s" % (sValue, Attribute_), NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "PWFactor" == ClusterType and WidgetType == "PowerFactor": - self.log.logging("Widget", "Debug", "PowerFactor %s WidgetType: %s Value: %s (%s)" % ( + self.log.logging(["Widget", "Electric"], "Debug", "PowerFactor %s WidgetType: %s Value: %s (%s)" % ( NwkId, WidgetType, value, type(value)), NwkId) nValue = round(value, 1) @@ -242,26 +242,26 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if WidgetType == "Power" and (Attribute_ in ("", "050f") or ClusterId == "000c"): # kWh if (( isinstance( value, (int, float)) and value < 0) or (float(value) < 0) ) and is_PowerNegative_widget( ClusterTypeList): - self.log.logging(["Widget","Metering"], "Debug", "------>There is a PowerNegative widget and the value is negative. Skiping here", NwkId) + self.log.logging(["Widget","Electric"], "Debug", "------>There is a PowerNegative widget and the value is negative. Skiping here", NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) return sValue = value - self.log.logging(["Widget","Metering"], "Debug", "------>Power : %s" % sValue, NwkId) + self.log.logging(["Widget","Electric"], "Debug", "------>Power : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if WidgetType == "ProdPower" and Attribute_ == "": if value > 0: - self.log.logging(["Widget","Metering"], "Debug", "------>the value is Positive. Skiping here", NwkId) + self.log.logging(["Widget","Electric"], "Debug", "------>the value is Positive. Skiping here", NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, "0", BatteryLevel, SignalLevel) return sValue = abs(value) - self.log.logging(["Widget","Metering"], "Debug", "------>PowerNegative : %s" % sValue, NwkId) + self.log.logging(["Widget","Electric"], "Debug", "------>PowerNegative : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if WidgetType == "P1Meter" and Attribute_ == "0000": - self.log.logging(["Widget","Metering"], "Debug", "------> P1Meter : %s (%s)" % (value, type(value)), NwkId) + self.log.logging(["Widget","Electric"], "Debug", "------> P1Meter : %s (%s)" % (value, type(value)), NwkId) # P1Meter report Instant and Cummulative Power. # Cummulative comes from Attribute 0000 # Instant Power needs to be retreived @@ -272,7 +272,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, usage1 = int(float(value)) sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, prod) - self.log.logging(["Widget","Metering"], "Debug", "------> P1Meter : " + sValue, NwkId) + self.log.logging(["Widget","Electric"], "Debug", "------> P1Meter : " + sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if ( @@ -293,7 +293,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, tarif_color = get_tarif_color( self, NwkId ) - self.log.logging(["ZLinky","Metering"], "Debug", "------> P1Meter_ZL : %s Attribute: %s Color: %s (%s)" % ( + self.log.logging(["ZLinky","Electric"], "Debug", "------> P1Meter_ZL : %s Attribute: %s Color: %s (%s)" % ( value, Attribute_, tarif_color, type(value)), NwkId) # P1Meter report Instant and Cummulative Power. @@ -303,7 +303,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging("ZLinky", "Debug", "------> P1Meter_ZL (%s): retreive value: %s;%s;%s;%s;%s;%s" % (Ep, cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod), NwkId) # We are so receiving a usage update - self.log.logging( ["ZLinky","Metering"], "Debug", "------> P1Meter_ZL : Trigger by Index Update %s Ep: %s" % (Attribute_, Ep), NwkId, ) + self.log.logging( ["ZLinky","Electric"], "Debug", "------> P1Meter_ZL : Trigger by Index Update %s Ep: %s" % (Attribute_, Ep), NwkId, ) cons = get_instant_power(self, NwkId) if Attribute_ in ("0000", "0100", "0104", "0108"): # Usage 1 @@ -329,7 +329,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, cons = 0.0 sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, cur_prod) - self.log.logging(["ZLinky","Metering"], "Debug", "------> P1Meter_ZL (%s): %s" % (Ep, sValue), NwkId) + self.log.logging(["ZLinky","Electric"], "Debug", "------> P1Meter_ZL (%s): %s" % (Ep, sValue), NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, str(sValue), BatteryLevel, SignalLevel) if "Meter" in ClusterType: # Meter Usage. @@ -346,13 +346,13 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, elif WidgetType == "ConsoMeter" and Attribute_ == "0000": # Consummed Energy sValue = "%s" %int(value) - self.log.logging("Widget", "Debug", "------>ConsoMeter : %s" % sValue, NwkId) + self.log.logging(["Widget", "Electric"], "Debug", "------>ConsoMeter : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "ProdMeter" and Attribute_ == "0001": # Produced Energy injected sValue = "%s" %int(value) - self.log.logging("Widget", "Debug", "------>ProdMeter : %s" % sValue, NwkId) + self.log.logging(["Widget", "Electric"], "Debug", "------>ProdMeter : %s" % sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) # value is string an represent the Instant Usage @@ -370,10 +370,10 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, 0) instant, _summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") summation = round(float(zlinky_sum_all_indexes( self, NwkId )), 2) - self.log.logging(["ZLinky","Metering"], "Debug", "------> Summation for Meter : %s" %summation) + self.log.logging(["ZLinky","Electric"], "Debug", "------> Summation for Meter : %s" %summation) sValue = "%s;%s" % (instant, summation) - self.log.logging(["ZLinky","Metering"], "Debug", "------> : " + sValue) + self.log.logging(["ZLinky","Electric"], "Debug", "------> : " + sValue) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif WidgetType == "Meter" and Attribute_ == "050f": @@ -382,13 +382,13 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, _instant, summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") instant = round(float(value), 2) sValue = "%s;%s" % (instant, summation) - self.log.logging(["Widget","Metering"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power received {value} converted to {instant} and {summation} resulting in {sValue}") + self.log.logging(["Widget","Electric"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power received {value} converted to {instant} and {summation} resulting in {sValue}") update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) elif (WidgetType == "Meter" and Attribute_ == "") or (WidgetType == "Power" and ClusterId == "000c"): # kWh # We receive Instant - self.log.logging(["Widget","Metering"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: {Attribute_} received {value}") + self.log.logging(["Widget","Electric"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: {Attribute_} received {value}") summation = None ep_data = self.ListOfDevices[NwkId].get("Ep", {}).get(Ep, {}) @@ -425,7 +425,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if "Voltage" in ClusterType and (WidgetType == "Voltage" and Attribute_ == ""): nValue = round(float(value), 2) sValue = "%s;%s" % (nValue, nValue) - self.log.logging("Widget", "Debug", "------> : " + sValue, NwkId) + self.log.logging(["Widget", "Electric"], "Debug", "------> : " + sValue, NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) if "ThermoSetpoint" in ClusterType and (WidgetType == "ThermoSetpoint" and Attribute_ in ("4003", "0012")): From b6f1cc9105f832072a13057f4eee93e35236c8ce Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 10 Mar 2024 23:25:57 +0100 Subject: [PATCH 060/301] Adding a Debug parameter, to allow debuging incoming messages for that Cluster --- Conf/ZclDefinitions/0702.json | 1 + Conf/ZclDefinitions/0b04.json | 1 + 2 files changed, 2 insertions(+) diff --git a/Conf/ZclDefinitions/0702.json b/Conf/ZclDefinitions/0702.json index 3d5a88128..48ba2387c 100644 --- a/Conf/ZclDefinitions/0702.json +++ b/Conf/ZclDefinitions/0702.json @@ -3,6 +3,7 @@ "Description": "Metering (Smart Energy)", "Version": 1, "Enabled": true, + "Debug": "Electric", "Attributes": { "0000": { "Enabled": true, diff --git a/Conf/ZclDefinitions/0b04.json b/Conf/ZclDefinitions/0b04.json index 4bf8e1e15..26c9822d4 100644 --- a/Conf/ZclDefinitions/0b04.json +++ b/Conf/ZclDefinitions/0b04.json @@ -3,6 +3,7 @@ "Description": "Electrical Measurement", "Version": "1", "Enabled": true, + "Debug": "Electric", "Attributes": { "0000": { "Enabled": true, From d7a3ba41d5825c24959625a720d10550e380d58d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 10 Mar 2024 23:26:56 +0100 Subject: [PATCH 061/301] Fix missing Domo_Update for Metering (thanks to @SylvainPer ) --- Modules/domoMaj.py | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index 7733bc0c8..e71fd0c6e 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -267,8 +267,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # Instant Power needs to be retreived cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0;0") usage1 = usage2 = return1 = return2 = cons = prod = 0 - if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0400" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: - cons = round(float(self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0400"]), 2) + cons = _retreive_instant_power(self, NwkId, Ep) usage1 = int(float(value)) sValue = "%s;%s;%s;%s;%s;%s" % (usage1, usage2, return1, return2, cons, prod) @@ -388,16 +387,11 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, elif (WidgetType == "Meter" and Attribute_ == "") or (WidgetType == "Power" and ClusterId == "000c"): # kWh # We receive Instant - self.log.logging(["Widget","Electric"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: {Attribute_} received {value}") - - summation = None - ep_data = self.ListOfDevices[NwkId].get("Ep", {}).get(Ep, {}) - if "0702" in ep_data and "0000" in ep_data["0702"]: - value_0000 = ep_data["0702"]["0000"] - if value_0000 not in ({}, "", "0"): - summation = int(float(value_0000)) + self.log.logging(["Widget","Electric"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power via Attribute: '{Attribute_}' received {value}") + summation = _retreive_summation_power(self, NwkId, Ep) instant = round(float(value), 2) + # Did we get Summation from Data Structure if summation is not None and summation != 0: summation = int(float(summation)) @@ -410,7 +404,9 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, 1) # No summation retreive, so we make sure that EnergyMeterMode is # correctly set to 1 (compute), if not adjust - + + self.log.logging("Widget", "Debug", f"------> Update Meter/Meter : {device_id_ieee} {device_unit} {sValue}") + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) if "WaterCounter" in ClusterType and WidgetType == "WaterCounter": # /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=INCREMENT @@ -1660,3 +1656,24 @@ def temp_adjustement_value(self, Devices, NwkId, DeviceId, Device_Unit): self.log.logging("Widget", "Error", "Error while trying to get Adjusted Value for Temp %s %s" % ( NwkId, e), NwkId) return 0 + + +def _retreive_instant_power(self, NwkId, Ep): + """ retreive Instant Power in 0x0702/0x0400 or 0x0b04/0x050b""" + + if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0400" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: + return round(float(self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0400"]), 2) + + if "0b04" in self.ListOfDevices[NwkId]["Ep"][Ep] and "050b" in self.ListOfDevices[NwkId]["Ep"][Ep]["0b04"]: + return round(float(self.ListOfDevices[NwkId]["Ep"][Ep]["050b"]["0b04"]), 2) + + return 0 + +def _retreive_summation_power(self, NwkId, Ep): + + if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0000" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: + value_0000 = self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0000"] + if value_0000 not in ({}, "", "0"): + return int(float(value_0000)) + + return None From 02ba7fd397ff06da6bbdbb2b55ab6c0605efa608 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 10 Mar 2024 23:27:13 +0100 Subject: [PATCH 062/301] enable debuging of ZclClusters --- Modules/readZclClusters.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/Modules/readZclClusters.py b/Modules/readZclClusters.py index c55bf0759..2f131dc85 100644 --- a/Modules/readZclClusters.py +++ b/Modules/readZclClusters.py @@ -113,6 +113,7 @@ def process_cluster_attribute_response( self, Devices, MsgSQN, MsgSrcAddr, MsgSr _action_list = cluster_attribute_retrieval( self, MsgSrcEp, MsgClusterId, MsgAttrID, "ActionList", model=device_model ) formated_logging( self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source, device_model, _name, _datatype, _ranges, _special_values, _eval_formula, _action_list, _eval_inputs, _force_value, value) + debug_logging(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, value) if value is None: self.log.logging("ZclClusters", "Debug", "---> Value is None") return @@ -284,7 +285,11 @@ def load_zcl_cluster(self): "Version": cluster_definition[ "Version" ], "Attributes": dict( cluster_definition[ "Attributes" ] ) } + + if "Debug" in cluster_definition: + self.readZclClusters[ cluster_definition[ "ClusterId"] ]["Debug"] = cluster_definition[ "Debug" ] + self.log.logging("ZclClusters", "Status", " - ZCL Cluster %s - (V%s) %s loaded" %( cluster_definition[ "ClusterId"], cluster_definition[ "Version" ], cluster_definition["Description"],)) @@ -326,9 +331,8 @@ def is_cluster_zcl_config_available( self, nwkid, ep, cluster, attribute=None): return True return is_generic_zcl_cluster( self, cluster, attribute) - - - + + def is_manufacturer_specific_cluster(self, nwkid, ep, cluster): cluster_info = self.readZclClusters.get(cluster, {}).get("ManufSpecificCluster", False) @@ -518,3 +522,23 @@ def formated_logging( self, nwkid, ep, cluster, attribute, dt, dz, d, Source, de cluster_description = self.readZclClusters[ cluster ]["Description"] if self.readZclClusters and cluster in self.readZclClusters else "Unknown cluster" self.log.logging( "ZclClusters", "Log", "Attribute Report | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s | %s " %( nwkid, ep, cluster, cluster_description, attribute, attr_name, dt, dz, device_model, eval_formula, eval_inputs, action_list, force_value, d, value, lqi )) + +def debug_logging(self, nwkid, ep, cluster, attribute, dtype, attsize, raw_data, value): + + if not is_cluster_debug_mode(self, cluster): + return + + cluster_description = self.readZclClusters.get(cluster, {}).get("Description", "Unknown cluster") + attribute_description = self.readZclClusters.get(cluster, {}).get("Attributes", {}).get(attribute, {}).get("Name", "Unknown attribute") + + self.log.logging( "ZclClusters", "Log", f"readZclCluster - 0x{cluster} {cluster_description} - attribute: 0x{attribute} {attribute_description} raw_data: {raw_data} value: {value}") + + +def is_cluster_debug_mode(self, cluster): + if "Debug" not in self.readZclClusters[ cluster ]: + return False + + debug_flag = self.readZclClusters[ cluster ]["Debug"] + if debug_flag in self.pluginconf.pluginConf: + return self.pluginconf.pluginConf[ debug_flag ] + return False From 5ebcdd3ccceabb3395f3cc8b2c62d23ba442f34e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 10:17:06 +0100 Subject: [PATCH 063/301] Add Debug flag --- Conf/ZclDefinitions/0400.json | 1 + Conf/ZclDefinitions/0402.json | 1 + Conf/ZclDefinitions/0403.json | 1 + Conf/ZclDefinitions/0405.json | 1 + Conf/ZclDefinitions/0406.json | 1 + 5 files changed, 5 insertions(+) diff --git a/Conf/ZclDefinitions/0400.json b/Conf/ZclDefinitions/0400.json index f9668bf99..5472b77f6 100644 --- a/Conf/ZclDefinitions/0400.json +++ b/Conf/ZclDefinitions/0400.json @@ -3,6 +3,7 @@ "Description": "Illuminance Level Sensing", "Version": "1", "Enabled": true, + "Debug": "Illuminance", "Attributes": { "0000": { "Enabled": true, diff --git a/Conf/ZclDefinitions/0402.json b/Conf/ZclDefinitions/0402.json index 6d8a45094..314bdef4b 100644 --- a/Conf/ZclDefinitions/0402.json +++ b/Conf/ZclDefinitions/0402.json @@ -3,6 +3,7 @@ "Description": "Temperature Measurement", "Version": "1", "Enabled": true, + "Debug": "Temperature", "Attributes": { "0000": { "Enabled": true, diff --git a/Conf/ZclDefinitions/0403.json b/Conf/ZclDefinitions/0403.json index 61b66e234..5ee0284e8 100644 --- a/Conf/ZclDefinitions/0403.json +++ b/Conf/ZclDefinitions/0403.json @@ -3,6 +3,7 @@ "Description": "Pressure Measurement", "Version": "1", "Enabled": true, + "Debug": "Barometer", "Attributes": { "0000": { "Enabled": true, diff --git a/Conf/ZclDefinitions/0405.json b/Conf/ZclDefinitions/0405.json index 47f366aba..531e2012c 100644 --- a/Conf/ZclDefinitions/0405.json +++ b/Conf/ZclDefinitions/0405.json @@ -3,6 +3,7 @@ "Description": "Relative Humidity Measurement", "Version": "1", "Enabled": true, + "Debug": "Humidity", "Attributes": { "0000": { "Enabled": true, diff --git a/Conf/ZclDefinitions/0406.json b/Conf/ZclDefinitions/0406.json index e6eadad76..3dbafe577 100644 --- a/Conf/ZclDefinitions/0406.json +++ b/Conf/ZclDefinitions/0406.json @@ -3,6 +3,7 @@ "Description": "Occupancy Sensing", "Version": "1", "Enabled": true, + "Debug": "Occupancy", "Attributes": { "0000": { "Enabled": true, From e38ecb8aa28e16e2b09979b3f1b8d24f62098a35 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 10:17:42 +0100 Subject: [PATCH 064/301] Add Barometer, Humidity, Illuminance, Occupancy, Temperature debug parameter --- Classes/PluginConf.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index f9193d73f..94d26d3a4 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -213,6 +213,7 @@ "Order": 13, "param": { "AbstractDz": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Barometer": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "BasicOutput": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Binding": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "CasaIA": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -229,8 +230,10 @@ "Groups": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Heartbeat": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Heiman": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Humidity": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "IAS": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Ikea": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Illuminance": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Input": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "LQIthreshold": { "type": "int", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, "Legrand": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -242,6 +245,7 @@ "NXPExtendedErrorCode": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NetworkEnergy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "NetworkMap": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Occupancy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "OTA": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Orvibo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "PDM": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -277,6 +281,7 @@ "ReadAttributes": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Schneider": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Sonoff": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "Temperature": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Thermostats": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ThreadCommunication": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ThreadDomoticz": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, From 2368a52c38c7b4a3cff7bc37b3906c206b2e06cd Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 10:18:26 +0100 Subject: [PATCH 065/301] fix Humidity which was not updated and add debug Humidity, Temperature, Barometer debug --- Modules/domoMaj.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index e71fd0c6e..e96dd1a0a 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -405,7 +405,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # No summation retreive, so we make sure that EnergyMeterMode is # correctly set to 1 (compute), if not adjust - self.log.logging("Widget", "Debug", f"------> Update Meter/Meter : {device_id_ieee} {device_unit} {sValue}") + self.log.logging(["Widget","Electric"], "Debug", f"------> Update Meter/Meter : {device_id_ieee} {device_unit} {sValue}") update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, sValue, BatteryLevel, SignalLevel) if "WaterCounter" in ClusterType and WidgetType == "WaterCounter": @@ -780,19 +780,19 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, NwkId, value, WidgetType), NwkId) return - self.log.logging("Widget", "Debug", "------> Temp: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) + self.log.logging(["Widget", "Temperature"], "Debug", "------> Temp: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) adjvalue = temp_adjustement_value(self, Devices, NwkId, device_id_ieee, device_unit) current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") if WidgetType == "Temp": NewSvalue = str(round(value + adjvalue, 1)) - self.log.logging("Widget", "Debug", "------> Temp update: %s" % (NewSvalue)) + self.log.logging(["Widget", "Temperature"], "Debug", "------> Temp update: %s" % (NewSvalue)) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum": NewSvalue = f"{round(value + adjvalue, 1)};{current_humi};{current_hum_stat}" - self.log.logging("Widget", "Debug", "------> Temp+Hum update: %s" % (NewSvalue)) + self.log.logging(["Widget", "Temperature", "Humidity"], "Debug", "------> Temp+Hum update: %s" % (NewSvalue)) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum+Baro": @@ -800,42 +800,45 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) if ClusterType == "Humi" and WidgetType in ("Humi", "Temp+Hum", "Temp+Hum+Baro"): # humidite - self.log.logging("Widget", "Debug", "------> Humi: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) + self.log.logging(["Widget", "Humidity"], "Debug", "------> Humi: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) # Humidity Status humi_status = calculate_humidity_status(value) current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") if WidgetType == "Humi": NewSvalue = "%s" % humi_status - self.log.logging("Widget", "Debug", "------> Humi update: %s - %s" % (value, NewSvalue)) - update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) + self.log.logging(["Widget", "Humidity"], "Debug", "------> Humi update: %s - %s" % (value, NewSvalue)) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, value, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum": NewSvalue = f"{current_temp};{value};{humi_status}" - self.log.logging("Widget", "Debug", "------> Temp+Hum update: %s" % (NewSvalue)) + self.log.logging(["Widget", "Temperature", "Humidity"], "Debug", "------> Temp+Hum update: %s" % (NewSvalue)) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum+Baro": NewSvalue = f"{current_temp};{value};{humi_status};{current_baro};{current_baro_forecast}" + self.log.logging(["Widget", "Temperature", "Humidity", "Barometer"], "Debug", "------> Temp+Hum+Baro update: %s" % (NewSvalue)) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) if ClusterType == "Baro" and WidgetType in ("Baro", "Temp+Hum+Baro"): - self.log.logging("Widget", "Debug", "------> Baro: %s, WidgetType: %s" % (value, WidgetType), NwkId) + self.log.logging(["Widget","Barometer"], "Debug", "------> Baro: %s, WidgetType: %s" % (value, WidgetType), NwkId) adjvalue = baro_adjustement_value(self, Devices, NwkId, device_id_ieee, device_unit) baroValue = round((value + adjvalue), 1) - self.log.logging("Widget", "Debug", "------> Adj Value : %s from: %s to %s " % (adjvalue, value, baroValue), NwkId) + self.log.logging(["Widget","Barometer"], "Debug", "------> Adj Value : %s from: %s to %s " % (adjvalue, value, baroValue), NwkId) Bar_forecast = calculate_baro_forecast(baroValue) current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") if WidgetType == "Baro": NewSvalue = f"{baroValue};{Bar_forecast}" + self.log.logging(["Widget","Barometer"], "Debug", "------> Baro: %s, WidgetType: %s" % (NewSvalue, WidgetType), NwkId) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) elif WidgetType == "Temp+Hum+Baro": NewSvalue = f"{current_temp};{current_humi};{current_hum_stat};{baroValue};{Bar_forecast}" + self.log.logging(["Widget", "Temperature", "Humidity", "Barometer"], "Debug", "------> Temp+Hum+Baro update: %s" % (NewSvalue)) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, 0, NewSvalue, BatteryLevel, SignalLevel) if "BSO-Orientation" in ClusterType and WidgetType == "BSO-Orientation": From 17fa89aaeac0c3b9315e597024c7d8c2f2b0c672 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 10:18:33 +0100 Subject: [PATCH 066/301] Plugin wip-develop version 7.2.018 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 7e7002ec6..3f78daec2 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.017"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.018"} \ No newline at end of file From 2ea8f4bc2f8f46e621fcc771c20b4f61ea72f69d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 14:14:26 +0100 Subject: [PATCH 067/301] update/cosmetics --- Modules/domoTools.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 34fbc5e21..068e8c041 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -151,13 +151,13 @@ def WidgetForDeviceId(self, NwkId, DeviceId): def browse_and_reset_devices_if_needed(self, Devices): now = time.time() if is_domoticz_extended(): - browse_extended_domoticz_devices(self, Devices, now) + browse_and_rese_extended_domoticz_devices(self, Devices, now) else: - browse_legacy_domoticz_devices(self, Devices, now) + browse_and_rese_legacy_domoticz_devices(self, Devices, now) -def browse_extended_domoticz_devices(self, Devices, now): +def browse_and_rese_extended_domoticz_devices(self, Devices, now): for device_ieee in Devices: if device_ieee not in self.IEEE2NWK: @@ -166,7 +166,7 @@ def browse_extended_domoticz_devices(self, Devices, now): reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now) -def browse_legacy_domoticz_devices(self, Devices, now): +def browse_and_rese_legacy_domoticz_devices(self, Devices, now): for device_unit in list(Devices): device_ieee = Devices[device_unit].DeviceID @@ -207,17 +207,21 @@ def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, n if WidgetType == "": return - SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, nwkid) - self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} WidgetType: {WidgetType} TimedOutMotion: {TimedOutMotion} TimedOutSwitchButton: {TimedOutSwitchButton}", nwkid) - if TimedOutMotion and WidgetType in ("Motion", "Vibration"): - self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_motion", nwkid) + if WidgetType in ("Motion", "Vibration"): + if TimedOutMotion is None or TimedOutMotion == 0: + return + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_motion {TimedOutMotion}", nwkid) + SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, nwkid) reset_motion(self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, ID, now, last_update, TimedOutMotion) - elif TimedOutSwitchButton and WidgetType in SWITCH_SELECTORS: + elif WidgetType in SWITCH_SELECTORS: + if TimedOutSwitchButton is None or TimedOutSwitchButton == 0: + return if "ForceUpdate" in SWITCH_SELECTORS[WidgetType] and SWITCH_SELECTORS[WidgetType]["ForceUpdate"]: - self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_switch_selector", nwkid) + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_switch_selector {TimedOutSwitchButton}", nwkid) + SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, nwkid) reset_switch_selector_PushButton( self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, now, last_update, TimedOutSwitchButton, ) @@ -241,24 +245,22 @@ def reset_motion(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel return domo_update_api(self, Devices, DeviceId_, Unit_, nValue=0, sValue="Off") - self.log.logging("WidgetReset", "Debug", "Last update of the device %s %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) + self.log.logging("WidgetReset", "Debug", "reset_motion - Last update of the device %s %s was %s ago" % (Unit_, WidgetType, (now - lastupdate)), NwkId) def reset_switch_selector_PushButton(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel, BatteryLvl, now, lastupdate, TimedOut): nValue, sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) - self.log.logging("WidgetReset", "Debug", f"reset_switch_selector_PushButton {NwkId} {nValue}:{sValue} ({now} - {lastupdate}) = {(now - lastupdate)} Date: Mon, 11 Mar 2024 14:16:38 +0100 Subject: [PATCH 068/301] fix bug in Touch() --- Modules/domoticzAbstractLayer.py | 71 ++++++++++---------------------- 1 file changed, 21 insertions(+), 50 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index e76025f4a..5703e133b 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -111,41 +111,6 @@ def repair_dict_after_load(b64_dict, Attribute): # Devices helpers -#def load_list_of_domoticz_widget(self, Devices): -# """Use at plugin start to creat an index of Domoticz Widget. It is also called after a Widget removal and when a new device has been paired. -# -# Args: -# Devices (dictionary): Devices dictionary provided by the Domoticz framework -# """ -# self.log.logging("AbstractDz", "Debug", "load_list_of_domoticz_widget") -# -# if DOMOTICZ_EXTENDED_API: -# for device_key, device in Devices.items(): -# unit_data = device.Units -# for unit_key, unit in unit_data.items(): -# self.ListOfDomoticzWidget[unit.ID] = { -# "Name": unit.Name, -# "Unit": unit_key, -# "DeviceID": device_key, -# "Switchtype": unit.SwitchType, -# "Subtype": unit.SubType, -# } -# else: -# for unit_key in Devices: -# self.log.logging( "AbstractDz", "Debug", f"Loading {unit_key}") -# unit_id = Devices[unit_key].ID -# self.ListOfDomoticzWidget[unit_id] = { -# "Name": Devices[unit_key].Name, -# "Unit": unit_key, -# "DeviceID": Devices[unit_key].DeviceID, -# "Switchtype": Devices[unit_key].SwitchType, -# "Subtype": Devices[unit_key].SubType, -# } -# -# -# -# for x in self.ListOfDomoticzWidget: -# self.log.logging( "AbstractDz", "Log", f"Loading Devices[{x}]: {self.ListOfDomoticzWidget[ x ]}") def load_list_of_domoticz_widget(self, Devices): """ @@ -340,7 +305,7 @@ def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Typ self.log.logging("AbstractDz", "Debug", "domo_create_api DeviceID: %s,Name: %s,Unit: %s,TypeName: %s,Type: %s,Subtype: %s,Switchtype: %s, widgetOptions= %s, Image: %s" %( DeviceID_, Name_, Unit_, widgetType, Type_, Subtype_, Switchtype_, widgetOptions, Image,)) - Name_ = f"{self.pluginParameters['Name']} - {Name_}" + Name_ = f"{self.pluginParameters['Name']} - {Name_}" if DOMOTICZ_EXTENDED_API else Name_ # Determine the correct class to use based on the API type domoticz_device_api_class = Domoticz.Unit if DOMOTICZ_EXTENDED_API else Domoticz.Device @@ -388,7 +353,7 @@ def domo_create_api(self, Devices, DeviceID_, Unit_, Name_, widgetType=None, Typ def domo_delete_widget( self, Devices, DeviceID_, Unit_): - self.log.logging("AbstractDz", "Log", "domo_delete_widget: DeviceID_ : %s Unit_: %s " %( DeviceID_, Unit_)) + self.log.logging("AbstractDz", "Debug", "domo_delete_widget: DeviceID_ : %s Unit_: %s " %( DeviceID_, Unit_)) if DOMOTICZ_EXTENDED_API: Devices[DeviceID_].Units[Unit_].Delete() @@ -417,7 +382,7 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel Color (str, optional): Color . Defaults to "". """ self.log.logging("AbstractDz", "Debug", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( - DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options)) + DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) if DOMOTICZ_EXTENDED_API: Devices[DeviceID_].Units[Unit_].nValue = nValue @@ -475,7 +440,7 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): - self.log.logging("AbstractDz", "Log", "domo_update_name: DeviceID_ : %s Unit_: %s Name: %s" %(DeviceID_, Unit_, Name_)) + self.log.logging("AbstractDz", "Debug", "domo_update_name: DeviceID_ : %s Unit_: %s Name: %s" %(DeviceID_, Unit_, Name_)) if DOMOTICZ_EXTENDED_API and Devices[DeviceID_].Units[Unit_].Name != Name_: Devices[DeviceID_].Units[Unit_].Name = Name_ @@ -489,7 +454,7 @@ def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): def domo_update_witchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): - self.log.logging("AbstractDz", "Log", "domo_update_witchType_SubType_Type DeviceID: %s,Unit: %s,Type: %s,Subtype: %s,Switchtype: %s" %( + self.log.logging("AbstractDz", "Debug", "domo_update_witchType_SubType_Type DeviceID: %s,Unit: %s,Type: %s,Subtype: %s,Switchtype: %s" %( DeviceID_, Unit_, Type_, Subtype_, Switchtype_)) if DOMOTICZ_EXTENDED_API: @@ -508,7 +473,7 @@ def domo_update_witchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, def domo_browse_widgets(self, Devices): """ return list of DeviceId, Unit """ - self.log.logging("AbstractDz", "Log", "domo_browse_widgets") + self.log.logging("AbstractDz", "Debug", "domo_browse_widgets") list_domoticz_widgets = [] if DOMOTICZ_EXTENDED_API: @@ -640,17 +605,23 @@ def _is_device_tobe_switched_off(self, Devices, DeviceID_, Unit_): def device_touch_api(self, Devices, DeviceId_): """Touch all Devices Widgets""" - #self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") - - units = Devices[DeviceId_].Units if DOMOTICZ_EXTENDED_API and DeviceId_ in Devices else Devices - - for unit in list(units): - device_touch_unit_api(self, Devices, DeviceId_, unit) - + self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") + + if DOMOTICZ_EXTENDED_API: + if DeviceId_ in Devices: + units = Devices[DeviceId_].Units + for unit in list(units): + _device_touch_unit_api(self, Devices, DeviceId_, unit) + + else: + for unit in list(Devices): + if Devices[ unit ].DeviceID == DeviceId_: + _device_touch_unit_api(self, Devices, DeviceId_, unit) + -def device_touch_unit_api(self, Devices, DeviceId_, Unit_): +def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): """ Touch one widget for a particular Device """ - #self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") + self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") # In case of Meter Device (kWh), we must not touch it, otherwise it will destroy the metering # Type, Subtype, SwitchType From c43f1687a161cfeff5deb9714f19550000349349 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 14:16:46 +0100 Subject: [PATCH 069/301] Plugin wip-develop version 7.2.019 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 3f78daec2..ac36047a6 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.018"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.019"} \ No newline at end of file From 34bcb1dead65792f448ef63738f3ea55f9f8d405 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 15:36:06 +0100 Subject: [PATCH 070/301] In legacy framework we must check unit against DeviceId --- Modules/domoticzAbstractLayer.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 5703e133b..cfb3ebf63 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -657,7 +657,7 @@ def timeout_widget_api(self, Devices, DeviceId_, timeout_value): for unit in Devices[ DeviceId_].Units: _switch_off_widget_due_to_timedout(self, Devices, DeviceId_, unit) else: - for unit in Devices: + for unit in list(Devices): if Devices[ unit ].DeviceID == DeviceId_: timeout_legacy_device_unit_api(self, Devices, DeviceId_, unit, timeout_value) @@ -686,12 +686,17 @@ def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_valu def update_battery_api(self, Devices, DeviceId, battery_level): self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId} to {battery_level}") - - units = Devices[DeviceId].Units if DOMOTICZ_EXTENDED_API and DeviceId in Devices else Devices - - for unit in units: - update_battery_device_unit_api(self, Devices, DeviceId, unit,battery_level) - + + if DOMOTICZ_EXTENDED_API: + if DeviceId in Devices: + units = Devices[DeviceId].Units + for unit in units: + update_battery_device_unit_api(self, Devices, DeviceId, unit,battery_level) + else: + for unit in list(Devices): + if Devices[ unit ].DeviceID == DeviceId: + update_battery_device_unit_api(self, Devices, DeviceId, unit,battery_level) + def update_battery_device_unit_api(self, Devices, DeviceId_, Unit_, battery_level): From ed3e84eca2ede2f38109cf5b6d0d23f90ab4ce36 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 15:37:22 +0100 Subject: [PATCH 071/301] Plugin wip-develop version 7.2.020 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index ac36047a6..adbae991c 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.019"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.020"} \ No newline at end of file From 6ab6554affac9b75f1c6c2370a86871bc6678825 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 15:40:33 +0100 Subject: [PATCH 072/301] check that cluster is existing in readZclClusters --- Modules/readZclClusters.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Modules/readZclClusters.py b/Modules/readZclClusters.py index 2f131dc85..244bac52f 100644 --- a/Modules/readZclClusters.py +++ b/Modules/readZclClusters.py @@ -535,6 +535,10 @@ def debug_logging(self, nwkid, ep, cluster, attribute, dtype, attsize, raw_data, def is_cluster_debug_mode(self, cluster): + if cluster not in self.readZclClusters: + self.log.logging( "ZclClusters", "Log", f"readZclCluster {cluster} not found !") + return + if "Debug" not in self.readZclClusters[ cluster ]: return False From 81a2c30665ec4dc0bca1cf463a9758705a847e21 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 15:40:39 +0100 Subject: [PATCH 073/301] Plugin wip-develop version 7.2.021 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index adbae991c..e30091566 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.020"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.021"} \ No newline at end of file From 586cb8977aa49df5ce0f7eedc5f62b0137f9a702 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 17:14:00 +0100 Subject: [PATCH 074/301] comment low level debug, and fix reset_switch_selector_PushButton --- Modules/domoTools.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 068e8c041..3b93bc035 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -116,13 +116,13 @@ def get_battery_level(self, NwkID): battery_info = self.ListOfDevices[NwkID].get("Battery", {}) if battery_info and battery_info != {}: - self.log.logging( "Widget", "Debug", f"------> From Battery NwkId: {NwkID} Battery: {battery_info} Type: {type(battery_info)}", NwkID, ) + #self.log.logging( "Widget", "Debug", f"------> From Battery NwkId: {NwkID} Battery: {battery_info} Type: {type(battery_info)}", NwkID, ) if isinstance(battery_info, (float)): return int(round(battery_info)) if isinstance(battery_info, (int)): return battery_info elif "IASBattery" in self.ListOfDevices[NwkID] and isinstance(self.ListOfDevices[NwkID]["IASBattery"], int): - self.log.logging( "Widget", "Debug", f"------> From IASBattery NwkId: {NwkID} Battery: {self.ListOfDevices[NwkID]['IASBattery']} Type: {type(self.ListOfDevices[NwkID]['IASBattery'])}", NwkID, ) + #self.log.logging( "Widget", "Debug", f"------> From IASBattery NwkId: {NwkID} Battery: {self.ListOfDevices[NwkID]['IASBattery']} Type: {type(self.ListOfDevices[NwkID]['IASBattery'])}", NwkID, ) return self.ListOfDevices[NwkID]["IASBattery"] return 255 @@ -186,7 +186,7 @@ def _convert_LastUpdate( last_update ): def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now): - self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {device_ieee} {device_unit}") + #self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {device_ieee} {device_unit}") last_update = _convert_LastUpdate( domo_read_LastUpdate(self, Devices, device_ieee, device_unit,) ) if last_update is None: @@ -207,7 +207,7 @@ def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, n if WidgetType == "": return - self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} WidgetType: {WidgetType} TimedOutMotion: {TimedOutMotion} TimedOutSwitchButton: {TimedOutSwitchButton}", nwkid) + #self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} WidgetType: {WidgetType} TimedOutMotion: {TimedOutMotion} TimedOutSwitchButton: {TimedOutSwitchButton}", nwkid) if WidgetType in ("Motion", "Vibration"): if TimedOutMotion is None or TimedOutMotion == 0: @@ -234,7 +234,7 @@ def retreive_reset_delays(self, nwkid): TimedOutMotion = int(params.get("resetMotiondelay", TimedOutMotion)) TimedOutSwitchButton = params.get("resetSwitchSelectorPushButton", TimedOutSwitchButton) - self.log.logging("WidgetReset", "Debug", f"retreive_reset_delays {nwkid} {TimedOutMotion} {TimedOutSwitchButton}", nwkid) + #self.log.logging("WidgetReset", "Debug", f"retreive_reset_delays {nwkid} {TimedOutMotion} {TimedOutSwitchButton}", nwkid) return TimedOutMotion, TimedOutSwitchButton @@ -251,13 +251,14 @@ def reset_motion(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel def reset_switch_selector_PushButton(self, Devices, NwkId, WidgetType, DeviceId_, Unit_, SignalLevel, BatteryLvl, now, lastupdate, TimedOut): nValue, sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) - self.log.logging("WidgetReset", "Debug", f"reset_switch_selector_PushButton {NwkId} {nValue}:{sValue} ({now} - {lastupdate}) = {(now - lastupdate)} Date: Mon, 11 Mar 2024 17:14:31 +0100 Subject: [PATCH 075/301] remove logging of configure loggers setup --- Classes/LoggingManagement.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index 0c39726fc..ecebad7ca 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -528,10 +528,7 @@ def logging_thread(self): domoticz_log_api("logging_thread - ended") - - def configure_loggers(logger_names, mode): - domoticz_log_api(f"configure_loggers({logger_names} with {mode})") _set_logging_level = logging.DEBUG if mode == "debug" else logging.WARNING for logger_name in logger_names: From f7da54fbf8c8f2cf1832b73c578472ff0e8ed358 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 17:14:52 +0100 Subject: [PATCH 076/301] Add Temperature debug --- Modules/domoMaj.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index e96dd1a0a..910cda720 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -776,7 +776,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if check_erratic_value(self, NwkId, "Temp", value, -50, 100): # We got an erratic value, no update to Domoticz - self.log.logging("Widget", "Debug", "%s Receive an erratic Temp: %s, WidgetType: >%s<" % ( + self.log.logging(["Widget", "Temperature"], "Debug", "%s Receive an erratic Temp: %s, WidgetType: >%s<" % ( NwkId, value, WidgetType), NwkId) return From 9c1ea5b675a4cf763afe9dd61a865c867a3367b7 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 17:15:39 +0100 Subject: [PATCH 077/301] disable some of the comment and Touch device only every 120s --- Modules/domoticzAbstractLayer.py | 60 +++++++++++++++----------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index cfb3ebf63..30471047d 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -22,7 +22,7 @@ import Domoticz as Domoticz DOMOTICZ_EXTENDED_API = False -DELAY_BETWEEN_TOUCH = 60 +DELAY_BETWEEN_TOUCH = 120 def is_domoticz_extended(): return DOMOTICZ_EXTENDED_API @@ -67,7 +67,7 @@ def setConfigItem(Key=None, Attribute="", Value=None): def getConfigItem(Key=None, Attribute="", Default=None): - Domoticz.Log("Loading %s - %s from Domoticz sqlite Db" %( Key, Attribute)) + domoticz_log_api("Loading %s - %s from Domoticz sqlite Db" %( Key, Attribute)) if Default is None: Default = {} @@ -101,7 +101,7 @@ def repair_dict_after_load(b64_dict, Attribute): if b64_dict in ("", {}): return {} if "Version" not in b64_dict: - Domoticz.Log("repair_dict_after_load - Not supported storage") + domoticz_log_api("repair_dict_after_load - Not supported storage") return {} if Attribute in b64_dict: from base64 import b64decode @@ -169,15 +169,13 @@ def find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ): """ - self.log.logging( "AbstractDz", "Debug", f"find_widget_unit_from_WidgetID - Widget_Idx: {Widget_Idx} ({type(Widget_Idx)})") + #self.log.logging( "AbstractDz", "Debug", f"find_widget_unit_from_WidgetID - Widget_Idx: {Widget_Idx} ({type(Widget_Idx)})") Widget_Idx = int(Widget_Idx) if Widget_Idx in self.ListOfDomoticzWidget: - unit = self.ListOfDomoticzWidget[Widget_Idx]['Unit'] - self.log.logging("AbstractDz", "Debug", f"- returning {unit} ({type(unit)})") - return unit + return self.ListOfDomoticzWidget[Widget_Idx]['Unit'] - self.log.logging( "AbstractDz", "Log", f"- {Widget_Idx} Not Found in ListOfDomoticzWidget, looking the old way" ) + #self.log.logging( "AbstractDz", "Log", f"- {Widget_Idx} Not Found in ListOfDomoticzWidget, looking the old way" ) # In case it is not found with the new way, let's keep the old way # TO-DO: Remove @@ -277,7 +275,7 @@ def _free_unit_in_device( list_of_units, nbunit_): def is_device_ieee_in_domoticz_db(self, Devices, DeviceID_): - self.log.logging("AbstractDz", "Debug", f"is_device_ieee_in_domoticz_db: DeviceID: {DeviceID_}") + #self.log.logging("AbstractDz", "Debug", f"is_device_ieee_in_domoticz_db: DeviceID: {DeviceID_}") return DOMOTICZ_EXTENDED_API and DeviceID_ in Devices or any(DeviceID_ == device.DeviceID for device in Devices.values()) @@ -381,8 +379,8 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel TimedOut (int, optional): Timeoud flag 0 to unset the Timeout. Defaults to None. Color (str, optional): Color . Defaults to "". """ - self.log.logging("AbstractDz", "Debug", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( - DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) + #self.log.logging("AbstractDz", "Debug", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( + # DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) if DOMOTICZ_EXTENDED_API: Devices[DeviceID_].Units[Unit_].nValue = nValue @@ -431,7 +429,7 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel update_params['Color'] = Color # Perform the update with the defined parameters - self.log.logging("AbstractDz", "Debug", "domo_update_api: update_params %s" %(update_params)) + #self.log.logging("AbstractDz", "Debug", "domo_update_api: update_params %s" %(update_params)) if SuppressTriggers: Devices[Unit_].Update(**update_params, SuppressTriggers=True,) @@ -497,7 +495,7 @@ def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): Returns: Tuple: A tuple containing the nValue and sValue of the device unit. """ - self.log.logging("AbstractDz", "Debug", "domo_read_nValue_sValue: DeviceID: %s Unit: %s" %(DeviceID, Unit)) + #self.log.logging("AbstractDz", "Debug", "domo_read_nValue_sValue: DeviceID: %s Unit: %s" %(DeviceID, Unit)) if DOMOTICZ_EXTENDED_API: _unit = Devices[DeviceID].Units[Unit] @@ -509,7 +507,7 @@ def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): def domo_read_TimedOut( self, Devices, DeviceId_ ): """ Retreive TimedOut flag, stop as soon as 1 TimedOut widget detected """ - self.log.logging("AbstractDz", "Debug", f"domo_read_TimedOut: DeviceID: {DeviceId_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_TimedOut: DeviceID: {DeviceId_}") if DOMOTICZ_EXTENDED_API and DeviceId_ in Devices: return Devices[ DeviceId_].TimedOut @@ -524,37 +522,37 @@ def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_,): def domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ): - self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].BatteryLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].BatteryLevel ) def domo_read_SignalLevel( self, Devices, DeviceId_, Unit_, ): - self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].SignalLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].SignalLevel ) def domo_read_Color( self, Devices, DeviceId_, Unit_, ): - self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].Color if DOMOTICZ_EXTENDED_API else Devices[Unit_].Color ) def domo_read_Name( self, Devices, DeviceId_, Unit_, ): - self.log.logging("AbstractDz", "Debug", f"domo_read_Name: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_Name: DeviceID: {DeviceId_} Unit {Unit_}") return Devices[DeviceId_].Units[Unit_].Name if DOMOTICZ_EXTENDED_API else Devices[Unit_].Name def domo_read_Options( self, Devices, DeviceId_, Unit_,): - self.log.logging("AbstractDz", "Debug", f"domo_read_Options: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_Options: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].Options if DOMOTICZ_EXTENDED_API else Devices[Unit_].Options ) def domo_read_Device_Idx(self, Devices, DeviceId_, Unit_,): - self.log.logging("AbstractDz", "Debug", f"domo_read_Device_Idx: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_Device_Idx: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].ID if DOMOTICZ_EXTENDED_API else Devices[Unit_].ID ) def domo_check_unit(self, Devices, DeviceId_, Unit_): - self.log.logging("AbstractDz", "Debug", f"domo_check_unit: DeviceID: {DeviceId_} Unit {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"domo_check_unit: DeviceID: {DeviceId_} Unit {Unit_}") if DOMOTICZ_EXTENDED_API: return Unit_ in Devices[DeviceId_].Units else: @@ -562,7 +560,7 @@ def domo_check_unit(self, Devices, DeviceId_, Unit_): def domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit): - self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceID} Unit {Unit}") + #self.log.logging("AbstractDz", "Debug", f"domo_read_SwitchType_SubType_Type: DeviceID: {DeviceID} Unit {Unit}") if DOMOTICZ_EXTENDED_API: _unit = Devices[DeviceID].Units[Unit] else: @@ -605,7 +603,7 @@ def _is_device_tobe_switched_off(self, Devices, DeviceID_, Unit_): def device_touch_api(self, Devices, DeviceId_): """Touch all Devices Widgets""" - self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") + #self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") if DOMOTICZ_EXTENDED_API: if DeviceId_ in Devices: @@ -621,7 +619,7 @@ def device_touch_api(self, Devices, DeviceId_): def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): """ Touch one widget for a particular Device """ - self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") # In case of Meter Device (kWh), we must not touch it, otherwise it will destroy the metering # Type, Subtype, SwitchType @@ -648,7 +646,7 @@ def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): def timeout_widget_api(self, Devices, DeviceId_, timeout_value): """ TimedOut all Device Widgets """ - self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId_}") + #self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId_}") if DOMOTICZ_EXTENDED_API: Devices[ DeviceId_].TimedOut = timeout_value @@ -665,15 +663,15 @@ def timeout_widget_api(self, Devices, DeviceId_, timeout_value): def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_value): """ TimedOut one Device widget """ - self.log.logging("AbstractDz", "Debug", f"timeout_legacy_device_unit_api: {DeviceId_} {Unit_} {timeout_value}") + #self.log.logging("AbstractDz", "Debug", f"timeout_legacy_device_unit_api: {DeviceId_} {Unit_} {timeout_value}") if _is_meter_widget( self, Devices, DeviceId_, Unit_): return _nValue, _sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) _TimedOut = domo_read_TimedOut( self, Devices, DeviceId_, ) - self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api unit %s -> %s from %s:%s %s" % ( - Devices[Unit_].Name, bool(timeout_value), _nValue, _sValue, Devices[Unit_].TimedOut)) + #self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api unit %s -> %s from %s:%s %s" % ( + # Devices[Unit_].Name, bool(timeout_value), _nValue, _sValue, Devices[Unit_].TimedOut)) if _TimedOut != timeout_value: # Update is required @@ -681,11 +679,11 @@ def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_valu _switch_off_widget_due_to_timedout(self, Devices, DeviceId_, Unit_) else: domo_update_api(self, Devices, DeviceId_, Unit_, _nValue, _sValue, TimedOut=timeout_value) - self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api DeviceId %s unit %s -> %s completed" % (DeviceId_, Unit_, bool(timeout_value))) + #self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api DeviceId %s unit %s -> %s completed" % (DeviceId_, Unit_, bool(timeout_value))) def update_battery_api(self, Devices, DeviceId, battery_level): - self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId} to {battery_level}") + #self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId} to {battery_level}") if DOMOTICZ_EXTENDED_API: if DeviceId in Devices: @@ -709,7 +707,7 @@ def update_battery_device_unit_api(self, Devices, DeviceId_, Unit_, battery_leve def _switch_off_widget_due_to_timedout(self, Devices, DevicesId, Unit): - self.log.logging("Widget", "Debug", f"_switch_off_widget_due_to_timedout DeviceId {DevicesId} unit {Unit}") + #self.log.logging("Widget", "Debug", f"_switch_off_widget_due_to_timedout DeviceId {DevicesId} unit {Unit}") _nValue, _sValue = domo_read_nValue_sValue(self, Devices, DevicesId, Unit) if (_nValue == 1 and _sValue == "On") or _is_device_tobe_switched_off(self, Devices, DevicesId, Unit): From ebc93ff6b7874d9aa5933ad2efe4108a16642213 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 11 Mar 2024 17:16:06 +0100 Subject: [PATCH 078/301] Plugin wip-develop version 7.2.022 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index e30091566..2f2b34b00 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.021"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.022"} \ No newline at end of file From 5697361dc8e30c46f459844e1dcaaf82837dae1f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 14:47:40 +0100 Subject: [PATCH 079/301] Add ListOfDomoticzWidget --- Classes/AdminWidgets.py | 3 ++- plugin.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Classes/AdminWidgets.py b/Classes/AdminWidgets.py index 8deb91539..87ad01d61 100644 --- a/Classes/AdminWidgets.py +++ b/Classes/AdminWidgets.py @@ -39,10 +39,11 @@ def _get_switch_selector_options(self, ): } class AdminWidgets: - def __init__(self, log, PluginConf, pluginParameters, Devices, ListOfDevices, HardwareID): + def __init__(self, log, PluginConf, pluginParameters, ListOfDomoticzWidget, Devices, ListOfDevices, HardwareID): self.pluginconf = PluginConf self.pluginParameters = pluginParameters + self.ListOfDomoticzWidget = ListOfDomoticzWidget self.Devices = Devices # Point to the List of Domoticz Devices self.ListOfDevices = ListOfDevices # Point to the Global ListOfDevices self.HardwareID = HardwareID diff --git a/plugin.py b/plugin.py index d1c4e24fe..ced959df2 100644 --- a/plugin.py +++ b/plugin.py @@ -476,7 +476,7 @@ def onStart(self): self.WebUsername, self.WebPassword = self.domoticzdb_Preferences.retreiveWebUserNamePassword() # Domoticz.Status("Domoticz Website credentials %s/%s" %(self.WebUsername, self.WebPassword)) - self.adminWidgets = AdminWidgets( self.log , self.pluginconf, self.pluginParameters, Devices, self.ListOfDevices, self.HardwareID) + self.adminWidgets = AdminWidgets( self.log , self.pluginconf, self.pluginParameters, self.ListOfDomoticzWidget, Devices, self.ListOfDevices, self.HardwareID) self.adminWidgets.updateStatusWidget(Devices, "Startup") self.DeviceListName = "DeviceList-" + str(Parameters["HardwareID"]) + ".txt" From b8d2441ca9378419ad7cba07193290eae2d816e1 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 14:49:55 +0100 Subject: [PATCH 080/301] refactor send and retry request() --- Classes/ZigpyTransport/zigpyThread.py | 98 +++++++++++++-------------- 1 file changed, 47 insertions(+), 51 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index c5f0f985b..7f4b570a2 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -477,7 +477,7 @@ async def _permit_to_joint(self, data): app = self.app permit_to_join_timer = self.permit_to_join_timer - log.logging("TransportZigpy", "Log", f"PERMIT-TO-JOIN: {data}") + log.logging("TransportZigpy", "Debug", f"PERMIT-TO-JOIN: {data}") duration = data["datas"]["Duration"] target_router = data["datas"]["targetRouter"] @@ -487,14 +487,14 @@ async def _permit_to_joint(self, data): permit_to_join_timer["Timer"] = time.time() permit_to_join_timer["Duration"] = duration - log.logging("TransportZigpy", "Log", f"PERMIT-TO-JOIN: duration: {duration} for Radio: {self._radiomodule} for node: {target_router}") + log.logging("TransportZigpy", "Status", f"PERMIT-TO-JOIN: duration: {duration} for Radio: {self._radiomodule} for node: {target_router}") if radiomodule == "deCONZ": return await app.permit_ncp(time_s=duration) - log.logging("TransportZigpy", "Log", f"Calling app.permit(time_s={duration}, node={target_router})") + log.logging("TransportZigpy", "Debug", f"Calling app.permit(time_s={duration}, node={target_router})") await app.permit(time_s=duration, node=target_router) - log.logging("TransportZigpy", "Log", f"Returning from app.permit(time_s={duration}, node={target_router})") + log.logging("TransportZigpy", "Debug", f"Returning from app.permit(time_s={duration}, node={target_router})") async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): @@ -547,8 +547,8 @@ async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): try: task = asyncio.create_task( - transport_request( self, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=AckIsDisable, use_ieee=False, delay=delay, extended_timeout=extended_timeout), - name=f"transport_request-{destination}-{Cluster}-{Sqn}" + transport_request( self, Function,destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=AckIsDisable, use_ieee=False, delay=delay, extended_timeout=extended_timeout), + name=f"transport_request-{Function}-{destination}-{Cluster}-{Sqn}" ) self.statistics._sent += 1 @@ -609,6 +609,7 @@ def _get_destination(self, NwkId, addressmode, Profile, Cluster, sEp, dEp, seque def push_APS_ACK_NACKto_plugin(self, nwkid, result, lqi): # Looks like Zigate return an int, while ZNP returns a status.type + self.log.logging("TransportZigpy", "Debug", f"push_APS_ACK_NACK to_plugin - {nwkid} - Result: {result} LQI: {lqi}") if nwkid == "0000": # No Ack/Nack for Controller return @@ -677,7 +678,7 @@ def check_transport_readiness(self): return False -async def transport_request(self, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False): +async def transport_request(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False): """Send a zigbee message based on different arguments Args: @@ -696,12 +697,12 @@ async def transport_request(self, destination, Profile, Cluster, sEp, dEp, seque _nwkid = destination.nwk.serialize()[::-1].hex() _ieee = str(destination.ieee) - + if not check_transport_readiness(self): return if Profile == 0x0000 and Cluster == 0x0005 and _ieee and _ieee[:8] in DELAY_FOR_VERY_KEY: - self.log.logging("TransportZigpy", "Log", "transport_request: process_raw_command waiting 6 seconds for CASA.IA Confirm Key") + self.log.logging("TransportZigpy", "Log", "Waiting 6 seconds for CASA.IA Confirm Key") delay = VERIFY_KEY_DELAY if delay: @@ -709,58 +710,57 @@ async def transport_request(self, destination, Profile, Cluster, sEp, dEp, seque await asyncio.sleep(delay) async with _limit_concurrency(self, destination, sequence): - self.log.logging("TransportZigpy", "Debug", f"transport_request: _limit_concurrency {destination} {sequence}") if _ieee in self._currently_not_reachable and self._currently_waiting_requests_list[_ieee]: - self.log.logging("TransportZigpy", "Debug", f"transport_request: process_raw_command Request {sequence} skipped NwkId: {_nwkid} not reachable - {_ieee} {str(self._currently_not_reachable)} {self._currently_waiting_requests_list[_ieee]}", _nwkid) + self.log.logging("TransportZigpy", "Debug", f"transport_request: Request {sequence} skipped NwkId: {_nwkid} not reachable - {_ieee} {str(self._currently_not_reachable)} {self._currently_waiting_requests_list[_ieee]}", _nwkid) return - max_retry = MAX_ATTEMPS_REQUEST if self.pluginconf.pluginConf["PluginRetrys"] else 1 - - self.log.logging("TransportZigpy", "Debug", f"transport_request: process_raw_command {_ieee} {Profile} {type(Profile)} {Cluster} {type(Cluster)} - Max Attempts: {max_retry}") + await _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, sEp, dEp, sequence, payload, use_ieee, _ieee,ack_is_disable, extended_timeout ) - for attempt in range(max_retry): - try: - result, msg = await self.app.request(destination, Profile, Cluster, sEp, dEp, sequence, payload, expect_reply=not ack_is_disable, use_ieee=use_ieee, extended_timeout=extended_timeout) - - # Slow down the throughput when too many commands. Try not to overload the coordinators - multi = 1.5 if self._currently_waiting_requests_list[_ieee] else 1 - await asyncio.sleep(multi * WAITING_TIME_BETWEEN_ATTEMPTS) - except (asyncio.exceptions.CancelledError, asyncio.CancelledError, asyncio.exceptions.TimeoutError, asyncio.TimeoutError, AttributeError, ): - # Stop here, we have a communication issue - raise - - except DeliveryError as e: - result = await handle_delivery_error(self, e, destination, Profile, Cluster, payload, ack_is_disable, use_ieee, extended_timeout, attempt, max_retry, _ieee, _nwkid) +async def _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, sEp, dEp, sequence, payload, use_ieee, _ieee,ack_is_disable, extended_timeout ): - handle_transport_result(self, sequence, result, ack_is_disable, _ieee, _nwkid, destination.lqi) + max_retry = MAX_ATTEMPS_REQUEST if self.pluginconf.pluginConf["PluginRetrys"] else 1 + for attempt in range(1, (max_retry + 1)): + try: + self.log.logging("TransportZigpy", "Debug", f"_send_and_retry: {_ieee} {Profile} {Cluster} - Expect_Reply: {ack_is_disable} extended_timeout: {extended_timeout} Attempts: {attempt}/{max_retry}") + result, msg = await self.app.request(destination, Profile, Cluster, sEp, dEp, sequence, payload, expect_reply=not ack_is_disable, use_ieee=use_ieee, extended_timeout=extended_timeout) -async def handle_delivery_error(self, e, destination, Profile, Cluster, payload, ack_is_disable, use_ieee, extended_timeout, attempt, max_retry, _ieee, _nwkid): - self.log.logging("TransportError", "Debug", f"transport_request failed | {e} | {destination} | {Profile:04X} | {Cluster:04X} | {payload} | {ack_is_disable} | {use_ieee} | {extended_timeout}", _nwkid) + except (asyncio.exceptions.CancelledError, asyncio.CancelledError, asyncio.exceptions.TimeoutError, asyncio.TimeoutError, AttributeError, asyncio.exceptions.CancelledError, asyncio.exceptions.TimeoutError, DeliveryError) as e: + self.log.logging("TransportZigpy", "Log", f"{Function} {_ieee}/0x{_nwkid} 0x{Profile} 0x{Cluster}:16 Ack: {ack_is_disable} RETRY: {attempt}/{max_retry} - {e}") - if attempt != (max_retry - 1): - await asyncio.sleep(WAITING_TIME_BETWEEN_ATTEMPTS) - self.log.logging("TransportZigpy", "Debug", f"ZigyTransport: process_raw_command {_ieee} {Profile} {type(Profile)} {Cluster} {type(Cluster)} RETRY: {attempt + 1}") - return None + if attempt < max_retry: + # Slow down the throughput when too many commands. Try not to overload the coordinators + multi = 1.5 if self._currently_waiting_requests_list[_ieee] else 1 + await asyncio.sleep(multi * WAITING_TIME_BETWEEN_ATTEMPTS) + continue - result = int(e.status) if hasattr(e, 'status') else 0xB6 + # Stop here as we have exceed the max retrys + result = int(e.status) if hasattr(e, 'status') else 0xB6 + handle_transport_result(self, Function, sequence, result, ack_is_disable, _ieee, _nwkid, destination.lqi) + break - if _ieee not in self._currently_not_reachable: - self._currently_not_reachable.append(_ieee) - - return result + else: + # Success + handle_transport_result(self, Function, sequence, result, ack_is_disable, _ieee, _nwkid, destination.lqi) + self.log.logging("TransportZigpy", "Debug", f"transport_request: result: {result}") + break -def handle_transport_result(self, sequence, result, ack_is_disable, _ieee, _nwkid, lqi): - if not ack_is_disable: - push_APS_ACK_NACKto_plugin(self, _nwkid, result, lqi) +def handle_transport_result(self, Function, sequence, result, ack_is_disable, _ieee, _nwkid, lqi): + self.log.logging("TransportZigpy", "Debug", f"handle_transport_result - {Function} - {_nwkid} - Ack: {ack_is_disable} Result: {result}") + #if not ack_is_disable: + push_APS_ACK_NACKto_plugin(self, _nwkid, result, lqi) if result == 0x00 and _ieee in self._currently_not_reachable: self._currently_not_reachable.remove(_ieee) + self.log.logging("TransportZigpy", "Debug", f"handle_transport_result -removing {_ieee} to not_reachable queue") - self.log.logging("TransportZigpy", "Debug", f"ZigyTransport: process_raw_command completed {sequence} NwkId: {_nwkid} result: {result}", _nwkid) + elif result != 0x00 and _ieee not in self._currently_not_reachable: + # Mark the ieee has not reachable. + self.log.logging("TransportZigpy", "Debug", f"handle_transport_result -adding {_ieee} to not_reachable queue") + self._currently_not_reachable.append(_ieee) @contextlib.asynccontextmanager @@ -781,18 +781,14 @@ async def _limit_concurrency(self, destination, sequence): if was_locked: self._currently_waiting_requests_list[_ieee] += 1 - self.log.logging( - "TransportZigpy", - "Debug", - "Max concurrency reached for %s, delaying request %s (%s enqueued)" - % (_nwkid, sequence, self._currently_waiting_requests_list[_ieee]), - _nwkid, - ) + self.log.logging( "TransportZigpy", "Debug", "Max concurrency reached for %s, delaying request %s (%s enqueued)" % ( + _nwkid, sequence, self._currently_waiting_requests_list[_ieee]), _nwkid, ) try: async with self._concurrent_requests_semaphores_list[_ieee]: if was_locked: - self.log.logging( "TransportZigpy", "Debug", "Previously delayed request %s is now running, " "delayed by %0.2f seconds for %s" % (sequence, (time.monotonic() - start_time), _nwkid), _nwkid, ) + self.log.logging( "TransportZigpy", "Debug", "Previously delayed request %s is now running, " "delayed by %0.2f seconds for %s" % ( + sequence, (time.monotonic() - start_time), _nwkid), _nwkid, ) yield finally: From 94d15283ef2a3b673edf1c1186d7c998002723d0 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 14:51:43 +0100 Subject: [PATCH 081/301] Fix timeout of device --- Modules/domoTools.py | 8 +++++++- Modules/domoticzAbstractLayer.py | 15 +++++++------- Z4D_decoders/z4d_decoder_Zigate_Cmd_Rsp.py | 24 +++++++++++++++++----- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 3b93bc035..432a47183 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -320,6 +320,8 @@ def Update_Battery_Device( self, Devices, NwkId, BatteryLvl, ): def timedOutDevice(self, Devices, NwkId=None, MarkTimedOut=True): + self.log.logging("WidgetLevel3", "Debug", f"timedOutDevice Object {NwkId} {MarkTimedOut}") + device_info = self.ListOfDevices.get(NwkId, {}) if not device_info.get("IEEE") or device_info.get("Health") == "Disabled": return @@ -328,7 +330,11 @@ def timedOutDevice(self, Devices, NwkId=None, MarkTimedOut=True): self.log.logging("WidgetLevel3", "Debug", f"timedOutDevice Object {NwkId} MarkTimedOut: {MarkTimedOut}") _IEEE = device_info["IEEE"] - timeout_widget_api(self, Devices, _IEEE, 1) if MarkTimedOut and not domo_read_TimedOut(self, Devices, _IEEE) else timeout_widget_api(self, Devices, _IEEE, 0) + + if MarkTimedOut and not domo_read_TimedOut(self, Devices, _IEEE): + timeout_widget_api(self, Devices, _IEEE, 1) + else: + timeout_widget_api(self, Devices, _IEEE, 0) def lastSeenUpdate(self, Devices, NwkId=None): diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 30471047d..dacf0a2f1 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -512,8 +512,7 @@ def domo_read_TimedOut( self, Devices, DeviceId_ ): return Devices[ DeviceId_].TimedOut # Legacy - return next( - ( 1 for x in Devices if Devices[x].DeviceID == DeviceId_ and Devices[x].TimedOut ), 0, ) + return next( ( 1 for x in Devices if Devices[x].DeviceID == DeviceId_ and Devices[x].TimedOut ), 0, ) def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_,): @@ -586,7 +585,7 @@ def _is_meter_widget(self, Devices, DeviceID_, Unit_): def _is_device_tobe_switched_off(self, Devices, DeviceID_, Unit_): - self.log.logging("AbstractDz", "Debug", f"is_device_tobe_switched_off: {DeviceID_} {Unit_}") + #self.log.logging("AbstractDz", "Debug", f"is_device_tobe_switched_off: {DeviceID_} {Unit_}") if DOMOTICZ_EXTENDED_API: unit = Devices.get(DeviceID_).Units.get(Unit_) if Devices.get(DeviceID_) else None @@ -676,14 +675,13 @@ def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_valu if _TimedOut != timeout_value: # Update is required if timeout_value == 1 and self.pluginconf.pluginConf["deviceOffWhenTimeOut"]: - _switch_off_widget_due_to_timedout(self, Devices, DeviceId_, Unit_) + _switch_off_widget_due_to_timedout(self, Devices, DeviceId_, Unit_, _nValue, _sValue,) else: domo_update_api(self, Devices, DeviceId_, Unit_, _nValue, _sValue, TimedOut=timeout_value) - #self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api DeviceId %s unit %s -> %s completed" % (DeviceId_, Unit_, bool(timeout_value))) def update_battery_api(self, Devices, DeviceId, battery_level): - #self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId} to {battery_level}") + #self.log.logging("AbstractDz", "Debug", f"update_battery_api: {DeviceId} to {battery_level}") if DOMOTICZ_EXTENDED_API: if DeviceId in Devices: @@ -706,12 +704,13 @@ def update_battery_device_unit_api(self, Devices, DeviceId_, Unit_, battery_leve domo_update_api(self, Devices, DeviceId_, Unit_, nValue, sValue, BatteryLevel=battery_level,SuppressTriggers=True) -def _switch_off_widget_due_to_timedout(self, Devices, DevicesId, Unit): +def _switch_off_widget_due_to_timedout(self, Devices, DevicesId, Unit, _nValue, _sValue,): #self.log.logging("Widget", "Debug", f"_switch_off_widget_due_to_timedout DeviceId {DevicesId} unit {Unit}") - _nValue, _sValue = domo_read_nValue_sValue(self, Devices, DevicesId, Unit) if (_nValue == 1 and _sValue == "On") or _is_device_tobe_switched_off(self, Devices, DevicesId, Unit): domo_update_api(self, Devices, DevicesId, Unit, 0, "Off", TimedOut=1) + else: + domo_update_api(self, Devices, DevicesId, Unit, _nValue, _sValue, TimedOut=1) def domoticz_log_api( message): diff --git a/Z4D_decoders/z4d_decoder_Zigate_Cmd_Rsp.py b/Z4D_decoders/z4d_decoder_Zigate_Cmd_Rsp.py index c8807af28..f3a92075e 100644 --- a/Z4D_decoders/z4d_decoder_Zigate_Cmd_Rsp.py +++ b/Z4D_decoders/z4d_decoder_Zigate_Cmd_Rsp.py @@ -61,33 +61,47 @@ def Decode8000_v2(self, Devices, MsgData, MsgLQI): self.internalError = 0 def Decode8011(self, Devices, MsgData, MsgLQI, TransportInfos=None): - self.log.logging('Input', 'Debug2', 'Decode8011 - APS ACK: %s' % MsgData) + self.log.logging('Input', 'Debug', 'Decode8011 - APS ACK: %s' % MsgData) MsgLen = len(MsgData) MsgStatus = MsgData[:2] MsgSrcAddr = MsgData[2:6] - MsgSEQ = MsgData[12:14] if MsgLen > 12 else None - i_sqn = sqn_get_internal_sqn_from_aps_sqn(self.ControllerLink, MsgSEQ) + if MsgSrcAddr not in self.ListOfDevices: if not zigpy_plugin_sanity_check(self, MsgSrcAddr): + self.log.logging('Input', 'Debug', f"Decode8011 - not zigpy_plugin_sanity_check {MsgSrcAddr} {MsgStatus}") handle_unknow_device(self, MsgSrcAddr) return - updLQI(self, MsgSrcAddr, MsgLQI) - _powered = mainPoweredDevice(self, MsgSrcAddr) + + MsgSEQ = MsgData[12:14] if MsgLen > 12 else None + i_sqn = sqn_get_internal_sqn_from_aps_sqn(self.ControllerLink, MsgSEQ) + + self.log.logging('Input', 'Debug', f"Decode8011 - {MsgSrcAddr} {MsgStatus}") + if self.pluginconf.pluginConf['coordinatorCmd']: if MsgSEQ: self.log.logging('Input', 'Log', 'Decod8011 Received [%s] for Nwkid: %s with status: %s e_sqn: 0x%02x/%s' % (i_sqn, MsgSrcAddr, MsgStatus, int(MsgSEQ, 16), int(MsgSEQ, 16)), MsgSrcAddr) else: self.log.logging('Input', 'Log', 'Decod8011 Received [%s] for Nwkid: %s with status: %s' % (i_sqn, MsgSrcAddr, MsgStatus), MsgSrcAddr) + if MsgStatus == '00': + updLQI(self, MsgSrcAddr, MsgLQI) timeStamped(self, MsgSrcAddr, 32785) lastSeenUpdate(self, Devices, NwkId=MsgSrcAddr) if 'Health' in self.ListOfDevices[MsgSrcAddr] and self.ListOfDevices[MsgSrcAddr]['Health'] not in ('Live', 'Disabled'): self.log.logging('Input', 'Log', "Receive an APS Ack from %s, let's put the device back to Live" % MsgSrcAddr, MsgSrcAddr) self.ListOfDevices[MsgSrcAddr]['Health'] = 'Live' return + + _powered = mainPoweredDevice(self, MsgSrcAddr) + self.log.logging('Input', 'Debug', f"Decode8011 - {MsgSrcAddr} MainPowered: {_powered}") + if not _powered: return + + self.log.logging('Input', 'Debug', f"Decode8011 - Timedout {MsgSrcAddr}") + timedOutDevice(self, Devices, NwkId=MsgSrcAddr) + set_health_state(self, MsgSrcAddr, MsgData[8:12], MsgStatus) From 876400193aabcfecce3e23c99ebecf67528d6178 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 14:51:54 +0100 Subject: [PATCH 082/301] remove Log --- Modules/readZclClusters.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/readZclClusters.py b/Modules/readZclClusters.py index 244bac52f..1c1a667e8 100644 --- a/Modules/readZclClusters.py +++ b/Modules/readZclClusters.py @@ -114,6 +114,7 @@ def process_cluster_attribute_response( self, Devices, MsgSQN, MsgSrcAddr, MsgSr _action_list = cluster_attribute_retrieval( self, MsgSrcEp, MsgClusterId, MsgAttrID, "ActionList", model=device_model ) formated_logging( self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source, device_model, _name, _datatype, _ranges, _special_values, _eval_formula, _action_list, _eval_inputs, _force_value, value) debug_logging(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, value) + if value is None: self.log.logging("ZclClusters", "Debug", "---> Value is None") return @@ -536,7 +537,7 @@ def debug_logging(self, nwkid, ep, cluster, attribute, dtype, attsize, raw_data, def is_cluster_debug_mode(self, cluster): if cluster not in self.readZclClusters: - self.log.logging( "ZclClusters", "Log", f"readZclCluster {cluster} not found !") + self.log.logging( "ZclClusters", "Debug", f"readZclCluster {cluster} not found !") return if "Debug" not in self.readZclClusters[ cluster ]: From 04a731018ac1372fb280358adee9beb846e250fb Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 18:59:05 +0100 Subject: [PATCH 083/301] prevent calling several times domo_abstract layer --- Modules/domoMaj.py | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index 910cda720..e8f5350b5 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -207,7 +207,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, if "Ampere" in ClusterType and WidgetType == "Ampere3" and Attribute_ in ("0508", "0908", "0a08"): # Retreive the previous values sValue = "%s;%s;%s" % (0, 0, 0) - ampere1, ampere2, ampere3 = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0") + ampere1, ampere2, ampere3 = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0;0") if ampere2 == ampere3 == '65535.0': self.log.logging(["Widget", "Electric"], "Debug", "------> Something going wrong ..... ampere %s %s %s" %(ampere1, ampere2, ampere3)) ampere2 = '0.0' @@ -265,7 +265,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # P1Meter report Instant and Cummulative Power. # Cummulative comes from Attribute 0000 # Instant Power needs to be retreived - cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0;0") + cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0;0;0;0;0") usage1 = usage2 = return1 = return2 = cons = prod = 0 cons = _retreive_instant_power(self, NwkId, Ep) usage1 = int(float(value)) @@ -297,7 +297,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, # P1Meter report Instant and Cummulative Power. # We need to retreive the Cummulative Power. - cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0;0") + cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0;0;0;0;0") usage1 = usage2 = return1 = return2 = cons = prod = 0 self.log.logging("ZLinky", "Debug", "------> P1Meter_ZL (%s): retreive value: %s;%s;%s;%s;%s;%s" % (Ep, cur_usage1, cur_usage2, cur_return1, cur_return2, cur_cons, cur_prod), NwkId) @@ -366,8 +366,8 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, or ( Attribute_ in ("0108", "010a") and Ep == "f3") ) ): - check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, 0) - instant, _summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") + check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, prev_nValue, prev_sValue, 0) + instant, _summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0") summation = round(float(zlinky_sum_all_indexes( self, NwkId )), 2) self.log.logging(["ZLinky","Electric"], "Debug", "------> Summation for Meter : %s" %summation) @@ -377,8 +377,8 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, elif WidgetType == "Meter" and Attribute_ == "050f": # We receive Instant Power - check_set_meter_widget(self, Devices, NwkId, device_id_ieee, device_unit, 0) - _instant, summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0") + check_set_meter_widget(self, Devices, NwkId, device_id_ieee, device_unit, prev_nValue, prev_sValue, 0) + _instant, summation = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0") instant = round(float(value), 2) sValue = "%s;%s" % (instant, summation) self.log.logging(["Widget","Electric"], "Debug", f"- {device_id_ieee} {device_unit} Instant Power received {value} converted to {instant} and {summation} resulting in {sValue}") @@ -398,10 +398,10 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, sValue = "%s;%s" % (instant, summation) # We got summation from Device, let's check that EnergyMeterMode is # correctly set to 0, if not adjust - check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, 0) + check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, prev_nValue, prev_sValue, 0) else: sValue = "%s;" % (instant) - check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, 1) + check_set_meter_widget( self, Devices, NwkId, device_id_ieee, device_unit, prev_nValue, prev_sValue, 1) # No summation retreive, so we make sure that EnergyMeterMode is # correctly set to 1 (compute), if not adjust @@ -783,7 +783,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging(["Widget", "Temperature"], "Debug", "------> Temp: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) adjvalue = temp_adjustement_value(self, Devices, NwkId, device_id_ieee, device_unit) - current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") + current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0;0;0;0") if WidgetType == "Temp": NewSvalue = str(round(value + adjvalue, 1)) @@ -803,7 +803,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging(["Widget", "Humidity"], "Debug", "------> Humi: %s, WidgetType: >%s<" % (value, WidgetType), NwkId) # Humidity Status humi_status = calculate_humidity_status(value) - current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") + current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0;0;0;0") if WidgetType == "Humi": NewSvalue = "%s" % humi_status @@ -829,7 +829,7 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, self.log.logging(["Widget","Barometer"], "Debug", "------> Adj Value : %s from: %s to %s " % (adjvalue, value, baroValue), NwkId) Bar_forecast = calculate_baro_forecast(baroValue) - current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, "0;0;0;0;0") + current_temp, current_humi, current_hum_stat, current_baro, current_baro_forecast = retrieve_data_from_current(self, Devices, device_id_ieee, device_unit, prev_nValue, prev_sValue, "0;0;0;0;0") if WidgetType == "Baro": NewSvalue = f"{baroValue};{Bar_forecast}" @@ -1526,7 +1526,7 @@ def _log_erratic_value_debug(self, NwkId, value_type, value, expected_min, expec self.log.logging("Widget", "Debug", f"Aberrant {value_type}: {value} (below {expected_min} or above {expected_max}) for device: {NwkId} [{consecutive_erratic_value}]", NwkId) -def check_set_meter_widget( self, Devices, NwkId, DeviceId, Unit, mode): +def check_set_meter_widget( self, Devices, NwkId, DeviceId, Unit, oldnValue, oldsValue, mode): # Mode = 0 - From device (default) # Mode = 1 - Computed @@ -1546,13 +1546,12 @@ def check_set_meter_widget( self, Devices, NwkId, DeviceId, Unit, mode): sMode = "%s" %mode if Options["EnergyMeterMode"] != sMode: - oldnValue, oldsValue = domo_read_nValue_sValue(self, Devices, DeviceId, Unit) Options = { "EnergyMeterMode": sMode } domo_update_api(self, Devices, DeviceId, Unit, oldnValue, oldsValue, Options=Options ,) -def retrieve_data_from_current(self, Devices, DeviceID, Unit, _format): +def retrieve_data_from_current(self, Devices, DeviceID, Unit, current_nValue, current_svalue, _format): """ Retrieve data from current. @@ -1569,8 +1568,6 @@ def retrieve_data_from_current(self, Devices, DeviceID, Unit, _format): retrieve_data_from_current(self, "Device1", 123, 1, "A;B;C") ['0', '0', '0'] """ - _, current_svalue = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) - if current_svalue == "": current_svalue = "0" From e174aa8d1df32f383275029a22024bc16e109e6b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 19:00:08 +0100 Subject: [PATCH 084/301] prevent LastSeen to stress if the last was done in the last DELAY_BETWEEN_TOUCH --- Modules/domoTools.py | 84 ++++++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 432a47183..296048146 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -22,6 +22,7 @@ from Modules.tools import (is_domoticz_touch, is_domoticz_update_SuppressTriggers, lookupForIEEE) +DELAY_BETWEEN_TOUCH = 120 def RetreiveWidgetTypeList(self, Devices, device_id_ieee, NwkId, DeviceUnit=None): """ @@ -149,33 +150,58 @@ def WidgetForDeviceId(self, NwkId, DeviceId): def browse_and_reset_devices_if_needed(self, Devices): + self.log.logging("WidgetReset", "Debug", "browse_and_reset_devices_if_needed") + now = time.time() if is_domoticz_extended(): - browse_and_rese_extended_domoticz_devices(self, Devices, now) + browse_and_reset_extended_domoticz_devices(self, Devices, now) else: - browse_and_rese_legacy_domoticz_devices(self, Devices, now) + browse_and_reset_legacy_domoticz_devices(self, Devices, now) -def browse_and_rese_extended_domoticz_devices(self, Devices, now): - +def browse_and_reset_extended_domoticz_devices(self, Devices, now): + for device_ieee in Devices: if device_ieee not in self.IEEE2NWK: continue for device_unit in Devices[ device_ieee ].Units: - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now) + device_ieee, nwkid, WidgetType = _get_device_ieee_nwkid_widget(self, Devices, device_ieee=device_ieee, device_unit=device_unit) + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, now) - -def browse_and_rese_legacy_domoticz_devices(self, Devices, now): +def browse_and_reset_legacy_domoticz_devices(self, Devices, now): + + self.log.logging("WidgetReset", "Debug", "browse_and_reset_legacy_domoticz_devices") for device_unit in list(Devices): + device_ieee, nwkid, WidgetType = _get_device_ieee_nwkid_widget(self, Devices, device_unit=device_unit) + if WidgetType is device_ieee is nwkid is None: + continue + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, now) + + +def _get_device_ieee_nwkid_widget(self, Devices, device_ieee=None, device_unit=None): + + if device_ieee is None: device_ieee = Devices[device_unit].DeviceID if device_ieee not in self.IEEE2NWK: - # Unknown ! - continue - - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now) - + return None, None, None + + nwkid = self.IEEE2NWK[device_ieee] + if nwkid not in self.ListOfDevices: + # If the NwkId is not found, it may have switch, let's check + ieee_retreived_from_nwkid = lookupForIEEE(self, nwkid, True) + if ieee_retreived_from_nwkid is None or device_ieee != ieee_retreived_from_nwkid: + return None, None, None + + widget_idx = domo_read_Device_Idx(self, Devices, device_ieee, device_unit,) + WidgetType = WidgetForDeviceId(self, nwkid, widget_idx) + + if WidgetType == "" or WidgetType not in ("Motion", "Vibration", SWITCH_SELECTORS): + return None, None, None + + return device_ieee, nwkid, WidgetType + def _convert_LastUpdate( last_update ): try: @@ -184,29 +210,16 @@ def _convert_LastUpdate( last_update ): return None -def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, now): +def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid,WidgetType, now): - #self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {device_ieee} {device_unit}") + self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {device_ieee} {device_unit}") last_update = _convert_LastUpdate( domo_read_LastUpdate(self, Devices, device_ieee, device_unit,) ) if last_update is None: return - # Look for the corresponding Widget - nwkid = self.IEEE2NWK[device_ieee] - if nwkid not in self.ListOfDevices: - # If the NwkId is not found, it may have switch, let's check - ieee_retreived_from_nwkid = lookupForIEEE(self, nwkid, True) - if ieee_retreived_from_nwkid is None or device_ieee != ieee_retreived_from_nwkid: - return - TimedOutMotion, TimedOutSwitchButton = retreive_reset_delays(self, nwkid) - ID = domo_read_Device_Idx(self, Devices, device_ieee, device_unit,) - - WidgetType = WidgetForDeviceId(self, nwkid, ID) - if WidgetType == "": - return - + #self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} WidgetType: {WidgetType} TimedOutMotion: {TimedOutMotion} TimedOutSwitchButton: {TimedOutSwitchButton}", nwkid) if WidgetType in ("Motion", "Vibration"): @@ -339,22 +352,25 @@ def timedOutDevice(self, Devices, NwkId=None, MarkTimedOut=True): def lastSeenUpdate(self, Devices, NwkId=None): """Just touch the device widgets and if needed remove TimedOut flag""" - - #self.log.logging("WidgetLevel3", "Debug", f"lastSeenUpdate Nwkid {NwkId}") + + now = int(time.time()) device_data = self.ListOfDevices.get(NwkId, {}) if not device_data or "IEEE" not in device_data: return - device_data.setdefault("Stamp", {"Time": {}, "MsgType": {}, "LastSeen": 0}) - device_data["Stamp"].setdefault("LastSeen", 0) device_data.setdefault("ErrorManagement", 0) - health_data = device_data.get("Health") if health_data not in ("Disabled", ): device_data["Health"] = "Live" - device_data["Stamp"]["LastSeen"] = int(time.time()) + device_data_stamp = device_data.get( 'Stamp') + device_data_stamp.setdefault("LastSeen", 0) + if device_data_stamp.get("LastSeen") and now < ( int(device_data_stamp.get("LastSeen")) + DELAY_BETWEEN_TOUCH): + self.log.logging("WidgetLevel3", "Debug", f"lastSeenUpdate Nwkid {NwkId} too early {device_data_stamp.get('LastSeen')}") + return + + device_data_stamp["LastSeen"] = now _IEEE = device_data.get("IEEE", "") if not is_domoticz_touch(self): From b9ef6e9c6a43a5b02052d8c842b48c4a355102d5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 19:00:45 +0100 Subject: [PATCH 085/301] Change log message when device coming back to live --- Modules/heartbeat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index cce4b1f58..221f2b411 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -604,7 +604,7 @@ def processKnownDevices(self, Devices, NWKID): # If we reach this step, the device health is Live if "pingDeviceRetry" in self.ListOfDevices[NWKID]: - self.log.logging("Heartbeat", "Log", "processKnownDevices - %s recover from Non Reachable" % NWKID, NWKID) + self.log.logging("Heartbeat", "Log", f"Device {NWKID} '{get_device_nickname(self, NwkId=NWKID)}' recover from Non Reachable", NWKID) del self.ListOfDevices[NWKID]["pingDeviceRetry"] model = self.ListOfDevices[NWKID]["Model"] if "Model" in self.ListOfDevices[NWKID] else "" From 601cd9425cc1b934835ecc39f9f6b5e8e827a71e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 19:01:18 +0100 Subject: [PATCH 086/301] prevent doing look for reset devices every second, and delay to each 5 seconds --- plugin.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugin.py b/plugin.py index ced959df2..8b8b403ac 100644 --- a/plugin.py +++ b/plugin.py @@ -880,7 +880,9 @@ def onHeartbeat(self): processListOfDevices(self, Devices) # Reset Motion sensors - browse_and_reset_devices_if_needed(self, Devices) + if ( self.internalHB % 5 ) == 0: + # Will reset only every 5 seconds + browse_and_reset_devices_if_needed(self, Devices) # Check and Update Heating demand for Wiser if applicable (this will be check in the call) wiser_thermostat_monitoring_heating_demand(self, Devices) From 79a5c52eef2d7d24e1dcd38ab1ed03501987e1d2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 19:04:00 +0100 Subject: [PATCH 087/301] update Domoticz abbstract layer --- Modules/domoticzAbstractLayer.py | 61 +++++++++++++++++--------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index dacf0a2f1..df27482d5 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -120,7 +120,7 @@ def load_list_of_domoticz_widget(self, Devices): Args: Devices (dictionary): Devices dictionary provided by the Domoticz framework """ - self.log.logging("AbstractDz", "Debug", "load_list_of_domoticz_widget") + self.log.logging("AbstractDz", "Log", "load_list_of_domoticz_widget") # clean self.ListOfDomoticzWidget.clear() @@ -169,13 +169,13 @@ def find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ): """ - #self.log.logging( "AbstractDz", "Debug", f"find_widget_unit_from_WidgetID - Widget_Idx: {Widget_Idx} ({type(Widget_Idx)})") + self.log.logging( "AbstractDz", "Debug", f"find_widget_unit_from_WidgetID - Widget_Idx: {Widget_Idx} ({type(Widget_Idx)})") Widget_Idx = int(Widget_Idx) if Widget_Idx in self.ListOfDomoticzWidget: return self.ListOfDomoticzWidget[Widget_Idx]['Unit'] - #self.log.logging( "AbstractDz", "Log", f"- {Widget_Idx} Not Found in ListOfDomoticzWidget, looking the old way" ) + self.log.logging( "AbstractDz", "Log", f"- {Widget_Idx} Not Found in ListOfDomoticzWidget, looking the old way" ) # In case it is not found with the new way, let's keep the old way # TO-DO: Remove @@ -191,11 +191,13 @@ def find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ): def retreive_widgetid_from_deviceId_unit(self, Devices, DeviceId, Unit): + self.log.logging("AbstractDz", "Debug", f"retreive_widgetid_from_deviceId_unit: DeviceId: {DeviceId} Unit: {Unit}") return next( ( x for x in self.ListOfDomoticzWidget if self.ListOfDomoticzWidget[x]["DeviceID"] == DeviceId and self.ListOfDomoticzWidget[x]["Unit"] == Unit ), None, ) def find_first_unit_widget_from_deviceID(self, Devices, DeviceID): """ return the first unit for a specific DeviceID else return None""" + self.log.logging("AbstractDz", "Debug", f"find_first_unit_widget_from_deviceID: {DeviceID}") if DOMOTICZ_EXTENDED_API: if DeviceID in Devices: for unit in Devices[DeviceID].Units: @@ -206,6 +208,8 @@ def find_first_unit_widget_from_deviceID(self, Devices, DeviceID): def find_legacy_DeviceID_from_unit(self, Devices, Unit): + self.log.logging("AbstractDz", "Debug", f"find_legacy_DeviceID_from_unit: Unit: {Unit}") + return Devices[ Unit ].DeviceID if Unit in Devices else None @@ -218,7 +222,6 @@ def how_many_legacy_slot_available( Devices): Returns: int: number of available unit slot """ - return sum(x not in Devices for x in range( 1, 255 )) @@ -275,7 +278,7 @@ def _free_unit_in_device( list_of_units, nbunit_): def is_device_ieee_in_domoticz_db(self, Devices, DeviceID_): - #self.log.logging("AbstractDz", "Debug", f"is_device_ieee_in_domoticz_db: DeviceID: {DeviceID_}") + self.log.logging("AbstractDz", "Debug", f"is_device_ieee_in_domoticz_db: DeviceID: {DeviceID_}") return DOMOTICZ_EXTENDED_API and DeviceID_ in Devices or any(DeviceID_ == device.DeviceID for device in Devices.values()) @@ -379,8 +382,8 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel TimedOut (int, optional): Timeoud flag 0 to unset the Timeout. Defaults to None. Color (str, optional): Color . Defaults to "". """ - #self.log.logging("AbstractDz", "Debug", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( - # DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) + self.log.logging("AbstractDz", "Debug", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( + DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) if DOMOTICZ_EXTENDED_API: Devices[DeviceID_].Units[Unit_].nValue = nValue @@ -429,7 +432,7 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel update_params['Color'] = Color # Perform the update with the defined parameters - #self.log.logging("AbstractDz", "Debug", "domo_update_api: update_params %s" %(update_params)) + self.log.logging("AbstractDz", "Debug", "domo_update_api: update_params %s" %(update_params)) if SuppressTriggers: Devices[Unit_].Update(**update_params, SuppressTriggers=True,) @@ -495,7 +498,7 @@ def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): Returns: Tuple: A tuple containing the nValue and sValue of the device unit. """ - #self.log.logging("AbstractDz", "Debug", "domo_read_nValue_sValue: DeviceID: %s Unit: %s" %(DeviceID, Unit)) + self.log.logging("AbstractDz", "Debug", "domo_read_nValue_sValue: DeviceID: %s Unit: %s" %(DeviceID, Unit)) if DOMOTICZ_EXTENDED_API: _unit = Devices[DeviceID].Units[Unit] @@ -507,7 +510,7 @@ def domo_read_nValue_sValue(self, Devices, DeviceID, Unit): def domo_read_TimedOut( self, Devices, DeviceId_ ): """ Retreive TimedOut flag, stop as soon as 1 TimedOut widget detected """ - #self.log.logging("AbstractDz", "Debug", f"domo_read_TimedOut: DeviceID: {DeviceId_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_TimedOut: DeviceID: {DeviceId_}") if DOMOTICZ_EXTENDED_API and DeviceId_ in Devices: return Devices[ DeviceId_].TimedOut @@ -516,42 +519,42 @@ def domo_read_TimedOut( self, Devices, DeviceId_ ): def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_,): - #self.log.logging("AbstractDz", "Debug", f"domo_read_LastUpdate: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_LastUpdate: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].LastUpdate if DOMOTICZ_EXTENDED_API else Devices[Unit_].LastUpdate ) def domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ): - #self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].BatteryLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].BatteryLevel ) def domo_read_SignalLevel( self, Devices, DeviceId_, Unit_, ): - #self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].SignalLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].SignalLevel ) def domo_read_Color( self, Devices, DeviceId_, Unit_, ): - #self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].Color if DOMOTICZ_EXTENDED_API else Devices[Unit_].Color ) def domo_read_Name( self, Devices, DeviceId_, Unit_, ): - #self.log.logging("AbstractDz", "Debug", f"domo_read_Name: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_Name: DeviceID: {DeviceId_} Unit {Unit_}") return Devices[DeviceId_].Units[Unit_].Name if DOMOTICZ_EXTENDED_API else Devices[Unit_].Name def domo_read_Options( self, Devices, DeviceId_, Unit_,): - #self.log.logging("AbstractDz", "Debug", f"domo_read_Options: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_Options: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].Options if DOMOTICZ_EXTENDED_API else Devices[Unit_].Options ) def domo_read_Device_Idx(self, Devices, DeviceId_, Unit_,): - #self.log.logging("AbstractDz", "Debug", f"domo_read_Device_Idx: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_read_Device_Idx: DeviceID: {DeviceId_} Unit {Unit_}") return ( Devices[DeviceId_].Units[Unit_].ID if DOMOTICZ_EXTENDED_API else Devices[Unit_].ID ) def domo_check_unit(self, Devices, DeviceId_, Unit_): - #self.log.logging("AbstractDz", "Debug", f"domo_check_unit: DeviceID: {DeviceId_} Unit {Unit_}") + self.log.logging("AbstractDz", "Debug", f"domo_check_unit: DeviceID: {DeviceId_} Unit {Unit_}") if DOMOTICZ_EXTENDED_API: return Unit_ in Devices[DeviceId_].Units else: @@ -559,7 +562,7 @@ def domo_check_unit(self, Devices, DeviceId_, Unit_): def domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit): - #self.log.logging("AbstractDz", "Debug", f"domo_read_SwitchType_SubType_Type: DeviceID: {DeviceID} Unit {Unit}") + self.log.logging("AbstractDz", "Debug", f"domo_read_SwitchType_SubType_Type: DeviceID: {DeviceID} Unit {Unit}") if DOMOTICZ_EXTENDED_API: _unit = Devices[DeviceID].Units[Unit] else: @@ -585,7 +588,7 @@ def _is_meter_widget(self, Devices, DeviceID_, Unit_): def _is_device_tobe_switched_off(self, Devices, DeviceID_, Unit_): - #self.log.logging("AbstractDz", "Debug", f"is_device_tobe_switched_off: {DeviceID_} {Unit_}") + self.log.logging("AbstractDz", "Debug", f"is_device_tobe_switched_off: {DeviceID_} {Unit_}") if DOMOTICZ_EXTENDED_API: unit = Devices.get(DeviceID_).Units.get(Unit_) if Devices.get(DeviceID_) else None @@ -602,7 +605,7 @@ def _is_device_tobe_switched_off(self, Devices, DeviceID_, Unit_): def device_touch_api(self, Devices, DeviceId_): """Touch all Devices Widgets""" - #self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") + self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") if DOMOTICZ_EXTENDED_API: if DeviceId_ in Devices: @@ -618,7 +621,7 @@ def device_touch_api(self, Devices, DeviceId_): def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): """ Touch one widget for a particular Device """ - #self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") + self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") # In case of Meter Device (kWh), we must not touch it, otherwise it will destroy the metering # Type, Subtype, SwitchType @@ -645,7 +648,7 @@ def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): def timeout_widget_api(self, Devices, DeviceId_, timeout_value): """ TimedOut all Device Widgets """ - #self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId_}") + self.log.logging("AbstractDz", "Debug", f"timeout_widget_api: {DeviceId_}") if DOMOTICZ_EXTENDED_API: Devices[ DeviceId_].TimedOut = timeout_value @@ -662,15 +665,15 @@ def timeout_widget_api(self, Devices, DeviceId_, timeout_value): def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_value): """ TimedOut one Device widget """ - #self.log.logging("AbstractDz", "Debug", f"timeout_legacy_device_unit_api: {DeviceId_} {Unit_} {timeout_value}") + self.log.logging("AbstractDz", "Debug", f"timeout_legacy_device_unit_api: {DeviceId_} {Unit_} {timeout_value}") if _is_meter_widget( self, Devices, DeviceId_, Unit_): return _nValue, _sValue = domo_read_nValue_sValue(self, Devices, DeviceId_, Unit_) _TimedOut = domo_read_TimedOut( self, Devices, DeviceId_, ) - #self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api unit %s -> %s from %s:%s %s" % ( - # Devices[Unit_].Name, bool(timeout_value), _nValue, _sValue, Devices[Unit_].TimedOut)) + self.log.logging("Widget", "Debug", "timeout_legacy_device_unit_api unit %s -> %s from %s:%s %s" % ( + Devices[Unit_].Name, bool(timeout_value), _nValue, _sValue, Devices[Unit_].TimedOut)) if _TimedOut != timeout_value: # Update is required @@ -681,7 +684,7 @@ def timeout_legacy_device_unit_api(self, Devices, DeviceId_, Unit_, timeout_valu def update_battery_api(self, Devices, DeviceId, battery_level): - #self.log.logging("AbstractDz", "Debug", f"update_battery_api: {DeviceId} to {battery_level}") + self.log.logging("AbstractDz", "Debug", f"update_battery_api: {DeviceId} to {battery_level}") if DOMOTICZ_EXTENDED_API: if DeviceId in Devices: @@ -695,7 +698,7 @@ def update_battery_api(self, Devices, DeviceId, battery_level): def update_battery_device_unit_api(self, Devices, DeviceId_, Unit_, battery_level): - + self.log.logging("AbstractDz", "Debug", f"update_battery_device_unit_api: {DeviceId_} / {Unit_} to {battery_level}") if domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ) == battery_level: return @@ -705,7 +708,7 @@ def update_battery_device_unit_api(self, Devices, DeviceId_, Unit_, battery_leve def _switch_off_widget_due_to_timedout(self, Devices, DevicesId, Unit, _nValue, _sValue,): - #self.log.logging("Widget", "Debug", f"_switch_off_widget_due_to_timedout DeviceId {DevicesId} unit {Unit}") + self.log.logging("Widget", "Debug", f"_switch_off_widget_due_to_timedout DeviceId {DevicesId} unit {Unit}") if (_nValue == 1 and _sValue == "On") or _is_device_tobe_switched_off(self, Devices, DevicesId, Unit): domo_update_api(self, Devices, DevicesId, Unit, 0, "Off", TimedOut=1) From 3b80a359581d151ec66958681da0f399f3a3af35 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 19:51:20 +0100 Subject: [PATCH 088/301] Plugin wip-develop version 7.2.023 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 2f2b34b00..fe1367783 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.022"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.023"} \ No newline at end of file From 4839df3c2ee858e9c6d5f3b51951022f87d38faa Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 19:59:28 +0100 Subject: [PATCH 089/301] fix missing Widget_Idx --- Modules/domoTools.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 296048146..a7b271036 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -166,18 +166,18 @@ def browse_and_reset_extended_domoticz_devices(self, Devices, now): if device_ieee not in self.IEEE2NWK: continue for device_unit in Devices[ device_ieee ].Units: - device_ieee, nwkid, WidgetType = _get_device_ieee_nwkid_widget(self, Devices, device_ieee=device_ieee, device_unit=device_unit) - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, now) + device_ieee, nwkid, WidgetType, widget_idx = _get_device_ieee_nwkid_widget(self, Devices, device_ieee=device_ieee, device_unit=device_unit) + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, widget_idx, now) def browse_and_reset_legacy_domoticz_devices(self, Devices, now): self.log.logging("WidgetReset", "Debug", "browse_and_reset_legacy_domoticz_devices") for device_unit in list(Devices): - device_ieee, nwkid, WidgetType = _get_device_ieee_nwkid_widget(self, Devices, device_unit=device_unit) + device_ieee, nwkid, WidgetType, widget_idx = _get_device_ieee_nwkid_widget(self, Devices, device_unit=device_unit) if WidgetType is device_ieee is nwkid is None: continue - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, now) + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, widget_idx, now) def _get_device_ieee_nwkid_widget(self, Devices, device_ieee=None, device_unit=None): @@ -200,7 +200,7 @@ def _get_device_ieee_nwkid_widget(self, Devices, device_ieee=None, device_unit=N if WidgetType == "" or WidgetType not in ("Motion", "Vibration", SWITCH_SELECTORS): return None, None, None - return device_ieee, nwkid, WidgetType + return device_ieee, nwkid, WidgetType, widget_idx def _convert_LastUpdate( last_update ): @@ -210,7 +210,7 @@ def _convert_LastUpdate( last_update ): return None -def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid,WidgetType, now): +def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, widget_idx, now): self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {device_ieee} {device_unit}") @@ -227,7 +227,7 @@ def reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, n return self.log.logging("WidgetReset", "Debug", f"reset_device_ieee_unit_if_needed {nwkid} reset_motion {TimedOutMotion}", nwkid) SignalLevel, BatteryLvl = RetreiveSignalLvlBattery(self, nwkid) - reset_motion(self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, ID, now, last_update, TimedOutMotion) + reset_motion(self, Devices, nwkid, WidgetType, device_ieee, device_unit, SignalLevel, BatteryLvl, widget_idx, now, last_update, TimedOutMotion) elif WidgetType in SWITCH_SELECTORS: if TimedOutSwitchButton is None or TimedOutSwitchButton == 0: From 36c598946bdc76ce37a124b9307975ae10bd2981 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 20:01:03 +0100 Subject: [PATCH 090/301] Plugin wip-develop version 7.2.024 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index fe1367783..1531a7c86 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.023"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.024"} \ No newline at end of file From c6ac4befc850ca4c3a7aec9ab4e5472400e94542 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 20:01:55 +0100 Subject: [PATCH 091/301] fix missing None value --- Modules/domoTools.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index a7b271036..8f4c7ab32 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -185,20 +185,20 @@ def _get_device_ieee_nwkid_widget(self, Devices, device_ieee=None, device_unit=N if device_ieee is None: device_ieee = Devices[device_unit].DeviceID if device_ieee not in self.IEEE2NWK: - return None, None, None + return None, None, None, None nwkid = self.IEEE2NWK[device_ieee] if nwkid not in self.ListOfDevices: # If the NwkId is not found, it may have switch, let's check ieee_retreived_from_nwkid = lookupForIEEE(self, nwkid, True) if ieee_retreived_from_nwkid is None or device_ieee != ieee_retreived_from_nwkid: - return None, None, None + return None, None, None, None widget_idx = domo_read_Device_Idx(self, Devices, device_ieee, device_unit,) WidgetType = WidgetForDeviceId(self, nwkid, widget_idx) if WidgetType == "" or WidgetType not in ("Motion", "Vibration", SWITCH_SELECTORS): - return None, None, None + return None, None, None, None return device_ieee, nwkid, WidgetType, widget_idx From 795df7cd15d3893d37fdbb7eb16d0eac70a097e5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 20:02:00 +0100 Subject: [PATCH 092/301] Plugin wip-develop version 7.2.025 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 1531a7c86..90ccfb694 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.024"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.025"} \ No newline at end of file From 58c8c2892f5f7783d247320ef97d170b00bd3413 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 22:46:39 +0100 Subject: [PATCH 093/301] refactor browse_and_reset_devices_if_needed --- Modules/domoTools.py | 54 +++++++------------------------------------- 1 file changed, 8 insertions(+), 46 deletions(-) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 8f4c7ab32..c2ce228d3 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -151,56 +151,18 @@ def WidgetForDeviceId(self, NwkId, DeviceId): def browse_and_reset_devices_if_needed(self, Devices): self.log.logging("WidgetReset", "Debug", "browse_and_reset_devices_if_needed") - - now = time.time() - if is_domoticz_extended(): - browse_and_reset_extended_domoticz_devices(self, Devices, now) - - else: - browse_and_reset_legacy_domoticz_devices(self, Devices, now) - -def browse_and_reset_extended_domoticz_devices(self, Devices, now): - - for device_ieee in Devices: + for widget_idx in list(self.ListOfDomoticzWidget): + widget_info = self.ListOfDomoticzWidget[ widget_idx ] + unit_key = widget_info[ "Unit" ] + device_ieee = widget_info[ "DeviceID" ] if device_ieee not in self.IEEE2NWK: continue - for device_unit in Devices[ device_ieee ].Units: - device_ieee, nwkid, WidgetType, widget_idx = _get_device_ieee_nwkid_widget(self, Devices, device_ieee=device_ieee, device_unit=device_unit) - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, widget_idx, now) - - -def browse_and_reset_legacy_domoticz_devices(self, Devices, now): - - self.log.logging("WidgetReset", "Debug", "browse_and_reset_legacy_domoticz_devices") - for device_unit in list(Devices): - device_ieee, nwkid, WidgetType, widget_idx = _get_device_ieee_nwkid_widget(self, Devices, device_unit=device_unit) - if WidgetType is device_ieee is nwkid is None: - continue - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, nwkid, WidgetType, widget_idx, now) - - -def _get_device_ieee_nwkid_widget(self, Devices, device_ieee=None, device_unit=None): - - if device_ieee is None: - device_ieee = Devices[device_unit].DeviceID - if device_ieee not in self.IEEE2NWK: - return None, None, None, None - - nwkid = self.IEEE2NWK[device_ieee] - if nwkid not in self.ListOfDevices: - # If the NwkId is not found, it may have switch, let's check - ieee_retreived_from_nwkid = lookupForIEEE(self, nwkid, True) - if ieee_retreived_from_nwkid is None or device_ieee != ieee_retreived_from_nwkid: - return None, None, None, None - widget_idx = domo_read_Device_Idx(self, Devices, device_ieee, device_unit,) - WidgetType = WidgetForDeviceId(self, nwkid, widget_idx) - - if WidgetType == "" or WidgetType not in ("Motion", "Vibration", SWITCH_SELECTORS): - return None, None, None, None - - return device_ieee, nwkid, WidgetType, widget_idx + nwkid = self.IEEE2NWK[device_ieee] + WidgetType = WidgetForDeviceId(self, nwkid, widget_idx) + if WidgetType in ( "Motion", "Vibration", SWITCH_SELECTORS): + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, unit_key, nwkid, WidgetType, widget_idx, time.time()) def _convert_LastUpdate( last_update ): From 8888b69c64630caa3612ddd8ce8ec4d1e4fdb60b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 12 Mar 2024 22:47:15 +0100 Subject: [PATCH 094/301] Plugin wip-develop version 7.2.026 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 90ccfb694..a96945b6f 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.025"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.026"} \ No newline at end of file From 593c95b29bfb92e3feb81060bdbced67172ceb59 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 09:32:06 +0100 Subject: [PATCH 095/301] refactor the reset of Motion, Vibration and Switch Selector. Do it when processing ListOfDevices, so prevent an other loop --- Modules/heartbeat.py | 15 +++++++++++++++ plugin.py | 6 ------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 221f2b411..17971bd2b 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -54,6 +54,11 @@ from Zigbee.zdpCommands import (zdp_node_descriptor_request, zdp_NWK_address_request) +from Modules.domoticzAbstractLayer import find_widget_unit_from_WidgetID +from Modules.domoTools import reset_device_ieee_unit_if_needed, RetreiveWidgetTypeList +from Modules.switchSelectorWidgets import SWITCH_SELECTORS + + # Read Attribute trigger: Every 10" # Configure Reporting trigger: Every 15 # Network Topology start: 15' after plugin start @@ -877,6 +882,16 @@ def processListOfDevices(self, Devices): # Known Devices if status == "inDB": processKnownDevices(self, Devices, NWKID) + self.log.logging( "Heartbeat", "Debug", "Check for reseting %s" %NWKID) + + now = time.time() + device_ieee = self.ListOfDevices[NWKID]["IEEE"] + ClusterTypeList = RetreiveWidgetTypeList(self, Devices, device_ieee, NWKID) + for WidgetEp, Widget_Idx, WidgetType in ClusterTypeList: + device_unit = find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ) + if WidgetType in ( "Motion", "Vibration", SWITCH_SELECTORS): + self.log.logging( "Heartbeat", "Log", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, NWKID, WidgetType, Widget_Idx)) + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, NWKID, WidgetType, Widget_Idx, now) elif status == "Leave": timedOutDevice(self, Devices, NwkId=NWKID) diff --git a/plugin.py b/plugin.py index 8b8b403ac..9f883c618 100644 --- a/plugin.py +++ b/plugin.py @@ -137,7 +137,6 @@ domo_read_Name, find_legacy_DeviceID_from_unit, how_many_legacy_slot_available, is_domoticz_extended, load_list_of_domoticz_widget, retreive_widgetid_from_deviceId_unit) -from Modules.domoTools import browse_and_reset_devices_if_needed from Modules.heartbeat import processListOfDevices from Modules.input import zigbee_receive_message from Modules.piZigate import switchPiZigate_mode @@ -879,11 +878,6 @@ def onHeartbeat(self): # Manage all entries in ListOfDevices (existing and up-coming devices) processListOfDevices(self, Devices) - # Reset Motion sensors - if ( self.internalHB % 5 ) == 0: - # Will reset only every 5 seconds - browse_and_reset_devices_if_needed(self, Devices) - # Check and Update Heating demand for Wiser if applicable (this will be check in the call) wiser_thermostat_monitoring_heating_demand(self, Devices) # Group Management From 6e95bebb282109acfba2a0f67dcf79a709e993dd Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 09:32:27 +0100 Subject: [PATCH 096/301] Plugin wip-develop version 7.2.027 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index a96945b6f..eb6fb3128 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.026"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.027"} \ No newline at end of file From ac88d7e594aeb1204df538c2591514df8b302082 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 19:00:11 +0100 Subject: [PATCH 097/301] dedicate a function for the check and reset --- Modules/heartbeat.py | 49 +++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 17971bd2b..b89eaa733 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -882,16 +882,9 @@ def processListOfDevices(self, Devices): # Known Devices if status == "inDB": processKnownDevices(self, Devices, NWKID) - self.log.logging( "Heartbeat", "Debug", "Check for reseting %s" %NWKID) - now = time.time() - device_ieee = self.ListOfDevices[NWKID]["IEEE"] - ClusterTypeList = RetreiveWidgetTypeList(self, Devices, device_ieee, NWKID) - for WidgetEp, Widget_Idx, WidgetType in ClusterTypeList: - device_unit = find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ) - if WidgetType in ( "Motion", "Vibration", SWITCH_SELECTORS): - self.log.logging( "Heartbeat", "Log", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, NWKID, WidgetType, Widget_Idx)) - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, NWKID, WidgetType, Widget_Idx, now) + # Check and reset if needed Motion, Vibrator and Switch Selector + check_and_reset_device_if_needed(self, Devices, NWKID) elif status == "Leave": timedOutDevice(self, Devices, NwkId=NWKID) @@ -901,21 +894,11 @@ def processListOfDevices(self, Devices): # We might have to remove this entry if the device get not reconnected. if ((int(self.ListOfDevices[NWKID]["Heartbeat"]) % 36) and int(self.ListOfDevices[NWKID]["Heartbeat"]) != 0) == 0: if "ZDeviceName" in self.ListOfDevices[NWKID]: - self.log.logging( - "Heartbeat", - "Debug", - "processListOfDevices - Device: %s (%s) is in Status = 'Left' for %s HB" - % (self.ListOfDevices[NWKID]["ZDeviceName"], NWKID, self.ListOfDevices[NWKID]["Heartbeat"]), - NWKID, - ) + self.log.logging( "Heartbeat", "Debug", "processListOfDevices - Device: %s (%s) is in Status = 'Left' for %s HB" % ( + self.ListOfDevices[NWKID]["ZDeviceName"], NWKID, self.ListOfDevices[NWKID]["Heartbeat"]), NWKID, ) else: - self.log.logging( - "Heartbeat", - "Debug", - "processListOfDevices - Device: (%s) is in Status = 'Left' for %s HB" - % (NWKID, self.ListOfDevices[NWKID]["Heartbeat"]), - NWKID, - ) + self.log.logging( "Heartbeat", "Debug", "processListOfDevices - Device: (%s) is in Status = 'Left' for %s HB" % ( + NWKID, self.ListOfDevices[NWKID]["Heartbeat"]), NWKID, ) # Let's check if the device still exist in Domoticz if not is_device_ieee_in_domoticz_db(self, Devices, self.ListOfDevices[NWKID]["IEEE"]): # Not devices found in Domoticz, so we are safe to remove it from Plugin @@ -962,11 +945,7 @@ def processListOfDevices(self, Devices): self.log.logging("Heartbeat", "Status", "Starting Network Topology") self.networkmap.start_scan() elif phase == 2: - self.log.logging( - "Heartbeat", - "Debug", - "processListOfDevices Topology scan is possible %s" % self.ControllerLink.loadTransmit(), - ) + self.log.logging( "Heartbeat", "Debug", "processListOfDevices Topology scan is possible %s" % self.ControllerLink.loadTransmit(), ) if self.ControllerLink.loadTransmit() < MAX_LOAD_ZIGATE: self.networkmap.continue_scan() @@ -979,6 +958,20 @@ def processListOfDevices(self, Devices): self.HeartbeatCount, self.busy, self.CommiSSionning, self.ControllerLink.loadTransmit()), ) return +def check_and_reset_device_if_needed(self, Devices, Nwkid): + + self.log.logging( "Heartbeat", "Debug", "Check for reseting %s" %Nwkid) + + now = time.time() + device_ieee = self.ListOfDevices[Nwkid]["IEEE"] + ClusterTypeList = RetreiveWidgetTypeList(self, Devices, device_ieee, Nwkid) + for WidgetEp, Widget_Idx, WidgetType in ClusterTypeList: + + if WidgetType in ( "Motion", "Vibration", SWITCH_SELECTORS): + device_unit = find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ) + self.log.logging( "Heartbeat", "Log", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx)) + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx, now) + def add_device_group_for_ping(self, NWKID): From 670f6e533b37ab96b01deb98b67178cecae6714a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 19:00:28 +0100 Subject: [PATCH 098/301] cosmetic --- Modules/domoticzAbstractLayer.py | 64 +++++++++++++++++--------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index df27482d5..c1b28336e 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -16,10 +16,23 @@ """ import time - #import DomoticzEx as Domoticz #DOMOTICZ_EXTENDED_API = True# import Domoticz as Domoticz + +DIMMABLE_WIDGETS = { + (7, 1, 241): { "Widget": "Dimmable_Light", "Name": "RGBW", "partially_opened_nValue": 15}, + (7, 2, 241): { "Widget": "Dimmable_Light", "Name": "RGB", "partially_opened_nValue": 15}, + (7, 4, 241): { "Widget": "Dimmable_Light", "Name": "RGBWW", "partially_opened_nValue": 15}, + (7, 7, 241): { "Widget": "Dimmable_Light", "Name": "RGBWWZ", "partially_opened_nValue": 15}, + (7, 8, 241): { "Widget": "Dimmable_Light", "Name": "WW Switch", "partially_opened_nValue": 15}, + (7, 73, 244): { "Widget": "Dimmable_Switch", "Name": "Dimmer", "partially_opened_nValue": 2}, + (14, 73, 244): { "Widget": "Blind", "Name": "Venetian Blinds US", "partially_opened_nValue": 17}, + (13, 73, 244): { "Widget": "Blind", "Name": "Blind Percentage", "partially_opened_nValue": 2}, + (15, 73, 244): { "Widget": "Blind", "Name": "Venetian Blinds EU", "partially_opened_nValue": 17}, + (21, 73, 244): { "Widget": "Blind", "Name": "Blinds + Stop", "partially_opened_nValue": 2}, +} + DOMOTICZ_EXTENDED_API = False DELAY_BETWEEN_TOUCH = 120 @@ -411,7 +424,7 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel except Exception as e: self.log.logging("AbstractDz", "Debug", f"domo_update_api: Cannot Write Attribute Option with {Options}") - Devices[DeviceID_].Units[Unit_].Update(Log=True) + Devices[DeviceID_].Units[Unit_].Update(Log=(not SuppressTriggers) ) return # Legacy @@ -422,22 +435,26 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel } if SignalLevel is not None: update_params['SignalLevel'] = int(SignalLevel) + if BatteryLevel is not None: update_params['BatteryLevel'] = int(BatteryLevel) + if TimedOut is not None: update_params['TimedOut'] = TimedOut + if Options is not None: update_params['Options'] = Options + if Color != "": update_params['Color'] = Color + + if SuppressTriggers: + update_params['SuppressTriggers'] = True # Perform the update with the defined parameters self.log.logging("AbstractDz", "Debug", "domo_update_api: update_params %s" %(update_params)) - - if SuppressTriggers: - Devices[Unit_].Update(**update_params, SuppressTriggers=True,) - else: - Devices[Unit_].Update(**update_params,) + + Devices[Unit_].Update(**update_params) def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): @@ -520,22 +537,22 @@ def domo_read_TimedOut( self, Devices, DeviceId_ ): def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_,): self.log.logging("AbstractDz", "Debug", f"domo_read_LastUpdate: DeviceID: {DeviceId_} Unit {Unit_}") - return ( Devices[DeviceId_].Units[Unit_].LastUpdate if DOMOTICZ_EXTENDED_API else Devices[Unit_].LastUpdate ) + return Devices[DeviceId_].Units[Unit_].LastUpdate if DOMOTICZ_EXTENDED_API else Devices[Unit_].LastUpdate def domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ): self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") - return ( Devices[DeviceId_].Units[Unit_].BatteryLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].BatteryLevel ) + return Devices[DeviceId_].Units[Unit_].BatteryLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].BatteryLevel def domo_read_SignalLevel( self, Devices, DeviceId_, Unit_, ): self.log.logging("AbstractDz", "Debug", f"domo_read_BatteryLevel: DeviceID: {DeviceId_} Unit {Unit_}") - return ( Devices[DeviceId_].Units[Unit_].SignalLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].SignalLevel ) + return Devices[DeviceId_].Units[Unit_].SignalLevel if DOMOTICZ_EXTENDED_API else Devices[Unit_].SignalLevel def domo_read_Color( self, Devices, DeviceId_, Unit_, ): self.log.logging("AbstractDz", "Debug", f"domo_read_Color: DeviceID: {DeviceId_} Unit {Unit_}") - return ( Devices[DeviceId_].Units[Unit_].Color if DOMOTICZ_EXTENDED_API else Devices[Unit_].Color ) + return Devices[DeviceId_].Units[Unit_].Color if DOMOTICZ_EXTENDED_API else Devices[Unit_].Color def domo_read_Name( self, Devices, DeviceId_, Unit_, ): @@ -545,12 +562,12 @@ def domo_read_Name( self, Devices, DeviceId_, Unit_, ): def domo_read_Options( self, Devices, DeviceId_, Unit_,): self.log.logging("AbstractDz", "Debug", f"domo_read_Options: DeviceID: {DeviceId_} Unit {Unit_}") - return ( Devices[DeviceId_].Units[Unit_].Options if DOMOTICZ_EXTENDED_API else Devices[Unit_].Options ) + return Devices[DeviceId_].Units[Unit_].Options if DOMOTICZ_EXTENDED_API else Devices[Unit_].Options def domo_read_Device_Idx(self, Devices, DeviceId_, Unit_,): self.log.logging("AbstractDz", "Debug", f"domo_read_Device_Idx: DeviceID: {DeviceId_} Unit {Unit_}") - return ( Devices[DeviceId_].Units[Unit_].ID if DOMOTICZ_EXTENDED_API else Devices[Unit_].ID ) + return Devices[DeviceId_].Units[Unit_].ID if DOMOTICZ_EXTENDED_API else Devices[Unit_].ID def domo_check_unit(self, Devices, DeviceId_, Unit_): @@ -607,19 +624,20 @@ def device_touch_api(self, Devices, DeviceId_): """Touch all Devices Widgets""" self.log.logging("AbstractDz", "Debug", f"device_touch_api: {DeviceId_}") + now = time.time() if DOMOTICZ_EXTENDED_API: if DeviceId_ in Devices: units = Devices[DeviceId_].Units for unit in list(units): - _device_touch_unit_api(self, Devices, DeviceId_, unit) + _device_touch_unit_api(self, Devices, DeviceId_, unit, now) else: for unit in list(Devices): if Devices[ unit ].DeviceID == DeviceId_: - _device_touch_unit_api(self, Devices, DeviceId_, unit) + _device_touch_unit_api(self, Devices, DeviceId_, unit, now) -def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): +def _device_touch_unit_api(self, Devices, DeviceId_, Unit_, now): """ Touch one widget for a particular Device """ self.log.logging("AbstractDz", "Debug", f"device_touch_unit_api: {DeviceId_} {Unit_}") @@ -640,7 +658,7 @@ def _device_touch_unit_api(self, Devices, DeviceId_, Unit_): last_update_time_seconds = time.mktime(time.strptime(last_time, "%Y-%m-%d %H:%M:%S")) - if time.time() > ( last_update_time_seconds + DELAY_BETWEEN_TOUCH): + if now > ( last_update_time_seconds + DELAY_BETWEEN_TOUCH): # Last Touch was done more than 30 seconds ago. Devices[DeviceId_].Units[Unit_].Touch() if DOMOTICZ_EXTENDED_API else Devices[Unit_].Touch() return @@ -749,18 +767,6 @@ def is_dimmable_blind(self, Devices, DeviceId, Unit): return None -DIMMABLE_WIDGETS = { - (7, 1, 241): { "Widget": "Dimmable_Light", "Name": "RGBW", "partially_opened_nValue": 15}, - (7, 2, 241): { "Widget": "Dimmable_Light", "Name": "RGB", "partially_opened_nValue": 15}, - (7, 4, 241): { "Widget": "Dimmable_Light", "Name": "RGBWW", "partially_opened_nValue": 15}, - (7, 7, 241): { "Widget": "Dimmable_Light", "Name": "RGBWWZ", "partially_opened_nValue": 15}, - (7, 8, 241): { "Widget": "Dimmable_Light", "Name": "WW Switch", "partially_opened_nValue": 15}, - (7, 73, 244): { "Widget": "Dimmable_Switch", "Name": "Dimmer", "partially_opened_nValue": 2}, - (14, 73, 244): { "Widget": "Blind", "Name": "Venetian Blinds US", "partially_opened_nValue": 17}, - (13, 73, 244): { "Widget": "Blind", "Name": "Blind Percentage", "partially_opened_nValue": 2}, - (15, 73, 244): { "Widget": "Blind", "Name": "Venetian Blinds EU", "partially_opened_nValue": 17}, - (21, 73, 244): { "Widget": "Blind", "Name": "Blinds + Stop", "partially_opened_nValue": 2}, -} def find_partially_opened_nValue(switch_type, sub_type, widget_type): key = (switch_type, sub_type, widget_type) From 511efd069a7c1173749b041e150321842b63dd7d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 22:17:12 +0100 Subject: [PATCH 099/301] move Log to Debug --- Modules/heartbeat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index b89eaa733..4bfe98d2a 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -969,7 +969,7 @@ def check_and_reset_device_if_needed(self, Devices, Nwkid): if WidgetType in ( "Motion", "Vibration", SWITCH_SELECTORS): device_unit = find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ) - self.log.logging( "Heartbeat", "Log", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx)) + self.log.logging( "Heartbeat", "Debug", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx)) reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx, now) From d4a570461deeb8c898148b1c83ad44b926a4ca1c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 22:24:58 +0100 Subject: [PATCH 100/301] refactor the way to handle received_packet and get the zigpy persistent db managed --- Classes/ZigpyTransport/AppGeneric.py | 38 ++-------------------------- 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 9178ff8e8..10d820526 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -317,13 +317,6 @@ def packet_received( if source_route: self.log.logging("trackReceivedRoute", "Log", f"packet_received from {sender} via {source_route}") - # self.log.logging("TransportZigpy", "Log", " Src : %s (%s)" %(sender,type(sender))) - # self.log.logging("TransportZigpy", "Log", " AddrMod : %02X" %(addr_mode)) - # self.log.logging("TransportZigpy", "Log", " src Ep : %02X" %(dst_ep)) - # self.log.logging("TransportZigpy", "Log", " dst Ep : %02x" %(dst_ep)) - # self.log.logging("TransportZigpy", "Log", " Profile : %04X" %(profile)) - # self.log.logging("TransportZigpy", "Log", " Cluster : %04X" %(cluster)) - message = packet.data.serialize() hex_message = binascii.hexlify(message).decode("utf-8") dst_addressing = packet.dst.addr_mode if packet.dst else None @@ -334,9 +327,6 @@ def packet_received( hex_message = binascii.hexlify(message).decode("utf-8") write_capture_rx_frames( self, packet.src, profile, cluster, src_ep, dst_ep, message, hex_message, dst_addressing) - if sender is None or profile is None or cluster is None: - super(type(self),self).packet_received(packet) - if sender == 0x0000 or ( zigpy.zdo.ZDO_ENDPOINT in (packet.src_ep, packet.dst_ep)): self.log.logging("TransportZigpy", "Debug", "handle_message from Controller Sender: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( sender, profile, cluster, src_ep, dst_ep, hex_message)) @@ -350,27 +340,12 @@ def packet_received( super(type(self),self).packet_received(packet) return - if self.use_of_zigpy_persistent_db: - try: - device = self.get_device_with_address(packet.src) - self.log.logging("TransportZigpy", "Debug", f"Known device {device}") - - except KeyError: - self.log.logging("TransportZigpy", "Debug", "Unknown device %r", packet.src) - - if packet.src.addr_mode == t.AddrMode.NWK: - # Manually send a ZDO IEEE address request to discover the device - task = asyncio.create_task( - self._discover_unknown_device(packet.src.address), - name=f"discover_unknown_device_from_packet-nwk={packet.src.address!r}", - ) - return - if cluster == 0x8034: # This has been handle via on_zdo_mgmt_leave_rsp() self.log.logging("TransportZigpy", "Debug", "handle_message 0x8036: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( sender, profile, cluster, src_ep, dst_ep, hex_message)) self.callBackFunction( build_plugin_8047_frame_content(self, sender, hex_message) ) + super(type(self),self).packet_received(packet) return packet.lqi = 0x00 if packet.lqi is None else packet.lqi @@ -383,17 +358,8 @@ def packet_received( plugin_frame = build_plugin_8002_frame_content(self, sender, profile, cluster, src_ep, dst_ep, message, packet.lqi, src_addrmode=addr_mode) self.log.logging("TransportZigpy", "Debug", "handle_message Sender: %s frame for plugin: %s" % (sender, plugin_frame)) self.callBackFunction(plugin_frame) + super(type(self),self).packet_received(packet) - if self.use_of_zigpy_persistent_db and not device.initializing and not device.is_initialized: - self.log.logging("TransportZigpy", "Debug", f"Schedule initialize for {device}") - device.schedule_initialize() - - if self.use_of_zigpy_persistent_db and device.is_initialized: - #TODO - # This trigger the write in the Persistent Db. - # This is a bit too much as we will do for every packet received - self.device_initialized( device ) - def _update_nkdids_if_needed( self, ieee, new_nwkid ): if not isinstance(self, ZigpyTransport): From 28599177d5d8f7630be32c8675d8758e76b83611 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 13 Mar 2024 22:38:52 +0100 Subject: [PATCH 101/301] Plugin wip-develop version 7.2.028 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index eb6fb3128..26cdbc594 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.027"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.028"} \ No newline at end of file From a2c40ca36f903ccdc463c7ada203720a56ff0c63 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 15 Mar 2024 21:17:56 +0100 Subject: [PATCH 102/301] update debug messages --- Classes/ZigpyTransport/AppGeneric.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 10d820526..37e153830 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -328,13 +328,13 @@ def packet_received( write_capture_rx_frames( self, packet.src, profile, cluster, src_ep, dst_ep, message, hex_message, dst_addressing) if sender == 0x0000 or ( zigpy.zdo.ZDO_ENDPOINT in (packet.src_ep, packet.dst_ep)): - self.log.logging("TransportZigpy", "Debug", "handle_message from Controller Sender: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( + self.log.logging("TransportZigpy", "Debug", "packet_received from Controller Sender: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( sender, profile, cluster, src_ep, dst_ep, hex_message)) super(type(self),self).packet_received(packet) if cluster == 0x8036: # This has been handle via on_zdo_mgmt_permitjoin_rsp() - self.log.logging("TransportZigpy", "Debug", "handle_message 0x8036: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( + self.log.logging("TransportZigpy", "Debug", "packet_received 0x8036: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( sender, profile, cluster, src_ep, dst_ep, hex_message)) self.callBackFunction( build_plugin_8014_frame_content(self, sender, hex_message ) ) super(type(self),self).packet_received(packet) @@ -342,7 +342,7 @@ def packet_received( if cluster == 0x8034: # This has been handle via on_zdo_mgmt_leave_rsp() - self.log.logging("TransportZigpy", "Debug", "handle_message 0x8036: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( + self.log.logging("TransportZigpy", "Debug", "packet_received 0x8036: %s Profile: %04x Cluster: %04x srcEp: %02x dstEp: %02x message: %s" %( sender, profile, cluster, src_ep, dst_ep, hex_message)) self.callBackFunction( build_plugin_8047_frame_content(self, sender, hex_message) ) super(type(self),self).packet_received(packet) @@ -352,11 +352,11 @@ def packet_received( profile = 0x0000 if src_ep == dst_ep == 0x00 else profile if profile and cluster: - self.log.logging( "TransportZigpy", "Debug", "handle_message device 2: %s Profile: %04x Cluster: %04x sEP: %s dEp: %s message: %s lqi: %s" %( + self.log.logging( "TransportZigpy", "Debug", "packet_received device: %s Profile: %04x Cluster: %04x sEP: %s dEp: %s message: %s lqi: %s" %( sender, profile, cluster, src_ep, dst_ep, hex_message, packet.lqi), ) plugin_frame = build_plugin_8002_frame_content(self, sender, profile, cluster, src_ep, dst_ep, message, packet.lqi, src_addrmode=addr_mode) - self.log.logging("TransportZigpy", "Debug", "handle_message Sender: %s frame for plugin: %s" % (sender, plugin_frame)) + self.log.logging("TransportZigpy", "Debug", "packet_received Sender: %s frame for plugin: %s" % (sender, plugin_frame)) self.callBackFunction(plugin_frame) super(type(self),self).packet_received(packet) From 575a0c76f515b55f6234064de1bd1f05ac892660 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 15 Mar 2024 21:45:06 +0100 Subject: [PATCH 103/301] hotfix to fix TypeError object of type function has no len --- Modules/onoff_settings.py | 2 +- Modules/tuyaTS0601.py | 13 ++++++++----- ReleaseNotes.md | 3 +++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Modules/onoff_settings.py b/Modules/onoff_settings.py index d471fab24..6b30b5885 100644 --- a/Modules/onoff_settings.py +++ b/Modules/onoff_settings.py @@ -71,7 +71,7 @@ def onoff_startup_onoff_mode(self, nwkid, ep, value): if is_int(value): old_value = value value = int(value) - self.log.logging( "onoffSettings", "Log", f"onoff_startup_onoff_mode for {nwkid}/{ep} - value: {old_value} converted to {value}", nwkid ) + self.log.logging( "onoffSettings", "Debug", f"onoff_startup_onoff_mode for {nwkid}/{ep} - value: {old_value} converted to {value}", nwkid ) else: self.log.logging( "onoffSettings", "Error", f"onoff_startup_onoff_mode for {nwkid}/{ep} - value error {value}", nwkid ) return diff --git a/Modules/tuyaTS0601.py b/Modules/tuyaTS0601.py index d4b368d89..c83671bba 100644 --- a/Modules/tuyaTS0601.py +++ b/Modules/tuyaTS0601.py @@ -125,15 +125,18 @@ def ts0601_actuator( self, NwkId, command, value=None): self.log.logging("Tuya0601", "Debug", "ts0601_actuator - requesting %s %s %s" %( command, dp, value)) - if command in TS0601_COMMANDS: - if len(TS0601_COMMANDS[ command ]) == 2: - dt = TS0601_COMMANDS[ command ][1] - ts0601_tuya_action(self, NwkId, "01", command, dp, dt, value) - return + if command in TS0601_COMMANDS and isinstance(TS0601_COMMANDS[ command ], list): + dt = TS0601_COMMANDS[ command ][1] + ts0601_tuya_action(self, NwkId, "01", command, dp, dt, value) + return + if command in TS0601_COMMANDS: + # TS0601_COMMANDS[ command ] is callable func = TS0601_COMMANDS[ command ] + else: func = DP_ACTION_FUNCTION[ command ] + if value is not None: func(self, NwkId, "01", dp, value ) else: diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 588447f3e..561ea85d9 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -18,6 +18,9 @@ Release Numbering - Odd numbers --> Stable/6 - Even numbers --> Beta/6 (dev branch) +## March 2024 - stable7.1.009 (hotfix) +- [Bug] - fix bugs generating error and preventing some Tuya features working + ## February 2024 - stable7 7.1.009 (2024.02) - [Technical] - Allow decoupled by Endpoint (for Aqara relay T2) From 2e25ef3fc61ab5d8da2199cb5cd7fd076853a819 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 16 Mar 2024 14:59:22 +0100 Subject: [PATCH 104/301] relys on zigpy 0.65.5 --- Modules/pluginHelpers.py | 2 +- requirements.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index ac62b8a50..086b96872 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -22,7 +22,7 @@ from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { - "zigpy": "0.63.4", + "zigpy": "0.63.5", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", "bellows": "0.38.1", diff --git a/requirements.txt b/requirements.txt index 4e7b95c81..54caf410d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -zigpy==0.63.4 +zigpy==0.63.5 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 @@ -8,4 +8,4 @@ pyserial>=3.5 z4d-certified-devices charset-normalizer==2.0.11 distro -pyserial-asyncio-fast \ No newline at end of file +pyserial-asyncio-fast From 238e8b507859a5c7a783fbc677fb803aa913bd36 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 16 Mar 2024 15:00:15 +0100 Subject: [PATCH 105/301] #1709 and move device settings to the proper python modules --- Modules/paramDevice.py | 57 +++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 37 deletions(-) diff --git a/Modules/paramDevice.py b/Modules/paramDevice.py index 110cb4187..f5a600700 100644 --- a/Modules/paramDevice.py +++ b/Modules/paramDevice.py @@ -12,53 +12,25 @@ from DevicesModules.custom_sonoff import SONOFF_DEVICE_PARAMETERS -from Modules.basicOutputs import (ballast_Configuration_max_level, - ballast_Configuration_min_level) -from Modules.danfoss import (danfoss_covered, danfoss_exercise_day_of_week, - danfoss_exercise_trigger_time, - danfoss_orientation, danfoss_viewdirection) +from Modules.ballast_settings import BALLAST_DEVICE_PARAMETERS +from Modules.danfoss import DANFOSS_DEVICE_PARAMETERS from Modules.ias_settings import IAS_DEVICE_PARAMETERS -from Modules.legrand_netatmo import (legrand_Dimmer_by_nwkid, - legrand_enable_Led_IfOn_by_nwkid, - legrand_enable_Led_InDark_by_nwkid, - legrand_enable_Led_Shutter_by_nwkid) +from Modules.legrand_netatmo import LEGRAND_DEVICE_PARAMETERS from Modules.lumi import LUMI_DEVICE_PARAMETERS from Modules.occupancy_settings import OCCUPANCY_DEVICE_PARAMETERS from Modules.onoff_settings import ONOFF_DEVICE_PARAMETERS -from Modules.philips import philips_led_indication +from Modules.philips import PHILIPS_DEVICE_PARAMETERS from Modules.schneider_wiser import SCHNEIDER_DEVICE_PARAMETERS -from Modules.tools import getEpForCluster from Modules.tuya import TUYA_DEVICE_PARAMETERS from Modules.tuyaSiren import TUYA_SIREN_DEVICE_PARAMETERS from Modules.tuyaTRV import TUYA_TRV_DEVICE_PARAMETERS from Modules.tuyaTS011F import TUYA_TS011F_DEVICE_PARAMETERS from Modules.tuyaTS0601 import ts0601_extract_data_point_infos, ts0601_settings - -def Ballast_max_level(self, nwkid, max_level): - ballast_Configuration_max_level(self, nwkid, max_level) - - -def Ballast_min_level(self, nwkid, min_level): - ballast_Configuration_min_level(self, nwkid, min_level) - - DEVICE_PARAMETERS = { - "HueLedIndication": philips_led_indication, - "netatmoLedIfOn": legrand_enable_Led_IfOn_by_nwkid, - "netatmoLedInDark": legrand_enable_Led_InDark_by_nwkid, - "netatmoLedShutter": legrand_enable_Led_Shutter_by_nwkid, - "netatmoEnableDimmer": legrand_Dimmer_by_nwkid, - "BallastMaxLevel": Ballast_max_level, - "BallastMinLevel": Ballast_min_level, - "eTRVExerciseDay": danfoss_exercise_day_of_week, - "eTRVExerciseTime": danfoss_exercise_trigger_time, - "DanfossCovered": danfoss_covered, - "DanfossTRVOrientation": danfoss_orientation, - "DanfossViewDirection": danfoss_viewdirection, } - + def sanity_check_of_param(self, NwkId): self.log.logging("Heartbeat", "Debug", f"sanity_check_of_param {NwkId}") @@ -67,8 +39,17 @@ def sanity_check_of_param(self, NwkId): DEVICE_PARAMETERS.update(ONOFF_DEVICE_PARAMETERS) DEVICE_PARAMETERS.update(OCCUPANCY_DEVICE_PARAMETERS) DEVICE_PARAMETERS.update(IAS_DEVICE_PARAMETERS) - + DEVICE_PARAMETERS.update(BALLAST_DEVICE_PARAMETERS) + # Load Manufacturer specific settings + DEVICE_PARAMETERS.update(DANFOSS_DEVICE_PARAMETERS) + + DEVICE_PARAMETERS.update(LEGRAND_DEVICE_PARAMETERS) + + DEVICE_PARAMETERS.update(LUMI_DEVICE_PARAMETERS) + + DEVICE_PARAMETERS.update(PHILIPS_DEVICE_PARAMETERS) + DEVICE_PARAMETERS.update(SONOFF_DEVICE_PARAMETERS) DEVICE_PARAMETERS.update(TUYA_DEVICE_PARAMETERS) @@ -77,8 +58,6 @@ def sanity_check_of_param(self, NwkId): DEVICE_PARAMETERS.update(TUYA_SIREN_DEVICE_PARAMETERS) DEVICE_PARAMETERS.update(SCHNEIDER_DEVICE_PARAMETERS) - - DEVICE_PARAMETERS.update(LUMI_DEVICE_PARAMETERS) param_data = self.ListOfDevices.get(NwkId, {}).get("Param", {}) model_name = self.ListOfDevices.get(NwkId, {}).get("Model", "") @@ -91,4 +70,8 @@ def sanity_check_of_param(self, NwkId): ts0601_settings( self, NwkId, dps_mapping, param, value) elif param in DEVICE_PARAMETERS: - DEVICE_PARAMETERS[param](self, NwkId, value) \ No newline at end of file + if callable( DEVICE_PARAMETERS[param] ): + DEVICE_PARAMETERS[param](self, NwkId, value) + + elif "callable" in DEVICE_PARAMETERS[param]: + DEVICE_PARAMETERS[param]["callable"](self, NwkId, value) \ No newline at end of file From b93e2695667a5cdc13a92e89b02b74e4824bfdf5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 16 Mar 2024 15:01:00 +0100 Subject: [PATCH 106/301] document as per #1709, the various settings --- Modules/ballast_settings.py | 63 +++++++++++++++++++++++++++++++++++ Modules/danfoss.py | 8 +++++ Modules/legrand_netatmo.py | 9 +++++ Modules/occupancy_settings.py | 10 +++--- Modules/onoff_settings.py | 6 ++-- Modules/philips.py | 5 +++ 6 files changed, 93 insertions(+), 8 deletions(-) create mode 100644 Modules/ballast_settings.py diff --git a/Modules/ballast_settings.py b/Modules/ballast_settings.py new file mode 100644 index 000000000..04866bc8e --- /dev/null +++ b/Modules/ballast_settings.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + + + +from Modules.basicOutputs import read_attribute, write_attribute +from Modules.tools import (get_deviceconf_parameter_value, + getListOfEpForCluster, is_int) +from Modules.zigateConsts import ZIGATE_EP + +BALLAST_CLUSTERID = "0301" + +BALLAST_CONFIG_SET = { + "PhysicalMinLevel": ( "0000", "21"), + "PhysicalMaxLevel": ( "0001", "21"), + "BallastStatus": ( "0002", "30"), + "MinLevel": ( "0010", "20"), + "MaxLevel": ( "0011", "20"), + "PowerOnLevel": ( "0012", "20"), + "PowerOnFadeTime": ( "0013", ""), + "IntrinsicBallastFactor": ("0014", "20"), + "BallastFactorAdjustment": ( "0015", "20") +} + + +def Ballast_max_level(self, nwkid, max_level): + ballast_Configuration_max_level(self, nwkid, max_level) + + +def Ballast_min_level(self, nwkid, min_level): + ballast_Configuration_min_level(self, nwkid, min_level) + +def ballast_Configuration_max_level(self, nwkid, value): + ListOfEp = getListOfEpForCluster(self, nwkid, BALLAST_CLUSTERID) + if ListOfEp: + for EPout in ListOfEp: + write_attribute( + self, nwkid, ZIGATE_EP, EPout, BALLAST_CLUSTERID, "0000", "00", BALLAST_CONFIG_SET["MaxLevel"][0], BALLAST_CONFIG_SET["MaxLevel"][1], "%02x" % value, ackIsDisabled=False + ) + read_attribute(self, nwkid, ZIGATE_EP, EPout, BALLAST_CLUSTERID, "00", "00", "0000", 1, BALLAST_CONFIG_SET["MaxLevel"][0], ackIsDisabled=False) + + +def ballast_Configuration_min_level(self, nwkid, value): + ListOfEp = getListOfEpForCluster(self, nwkid, BALLAST_CLUSTERID) + if ListOfEp: + for EPout in ListOfEp: + write_attribute( self, nwkid, ZIGATE_EP, EPout, BALLAST_CLUSTERID, "0000", "00", BALLAST_CONFIG_SET["MinLevel"][0], BALLAST_CONFIG_SET["MaxLevel"][1], "%02x" % value, ackIsDisabled=False) + read_attribute(self, nwkid, ZIGATE_EP, EPout, BALLAST_CLUSTERID, "00", "00", "0000", 1, BALLAST_CONFIG_SET["MinLevel"][0], ackIsDisabled=False) + + +BALLAST_DEVICE_PARAMETERS = { + "BallastMaxLevel": { "callable": Ballast_max_level, "description": "The MinLevel attribute is 8 bits in length and specifies the light output of the ballast according to the dimming light curve"}, + "BallastMinLevel": { "callable": Ballast_min_level, "description": "The MaxLevel attribute is 8 bits in length and specifies the light output of the ballast according to the dimming light curve"}, +} \ No newline at end of file diff --git a/Modules/danfoss.py b/Modules/danfoss.py index 84e6d5bd1..cc3481ddf 100644 --- a/Modules/danfoss.py +++ b/Modules/danfoss.py @@ -423,3 +423,11 @@ def danfoss_on_off(self, NwkId, on): write_attribute(self, NwkId, ZIGATE_EP, EPout, cluster_id, manuf_id, manuf_spec, Hattribute, data_type, Hdata, ackIsDisabled=False) read_attribute(self, NwkId, ZIGATE_EP, EPout, cluster_id, "00", manuf_spec, manuf_id, 1, Hattribute, ackIsDisabled=False) + +DANFOSS_DEVICE_PARAMETERS = { + "eTRVExerciseDay":{ "callable": danfoss_exercise_day_of_week, "description": "0-6: (Sun-Sat) The day to do weekly exercising of radiator valve"}, + "eTRVExerciseTime":{ "callable": danfoss_exercise_trigger_time, "description": "Minutes after midnight to do weekly exercising of radiator valve"}, + "DanfossCovered": { "callable": danfoss_covered, "description": "‘F’ or ‘T’: ‘T’ indicates that radiator is covered."}, + "DanfossTRVOrientation": { "callable": danfoss_orientation, "description": "‘H’ or ‘V’: Orientation of thermostat, Horizontal or Vertical"}, + "DanfossViewDirection": { "callable": danfoss_viewdirection, "description": "1 or 2: The viewing direction of thermostat LCD"}, +} \ No newline at end of file diff --git a/Modules/legrand_netatmo.py b/Modules/legrand_netatmo.py index 95d06d134..1c07e1a1f 100755 --- a/Modules/legrand_netatmo.py +++ b/Modules/legrand_netatmo.py @@ -860,3 +860,12 @@ def is_zigate_below_31d(self): def is_zigate_bellow_or_equal_31c(self): return self.zigbee_communication == "native" and self.FirmwareVersion and int(self.FirmwareVersion, 16) <= 0x31C + + +LEGRAND_DEVICE_PARAMETERS = { + "netatmoLedIfOn": { "callable": legrand_enable_Led_IfOn_by_nwkid,"description": "Enable Led if On, valid for model 'Connected outlet', 'Mobile outlet', 'Dimmer switch wo neutral', 'Shutter switch with neutral', 'Micromodule switch'. (0 or 1)"}, + "netatmoLedInDark": { "callable": legrand_enable_Led_InDark_by_nwkid, "Enable Led if On, valid for model 'Connected outlet', 'Mobile outlet', 'Dimmer switch wo neutral', 'Shutter switch with neutral', 'Micromodule switch'. (0 or 1)": ""}, + "netatmoLedShutter": { "callable": legrand_enable_Led_Shutter_by_nwkid, "Enable Led if On, valid for model 'Connected outlet', 'Shutter switch with neutral'. (0 or 1)": ""}, + "netatmoEnableDimmer": { "callable": legrand_Dimmer_by_nwkid, "description": "Enable dimming for 'Dimmer switch wo neutral'. (0 or 1)"}, + +} \ No newline at end of file diff --git a/Modules/occupancy_settings.py b/Modules/occupancy_settings.py index e68a01138..78558b261 100644 --- a/Modules/occupancy_settings.py +++ b/Modules/occupancy_settings.py @@ -271,9 +271,9 @@ def common_Ultrasonic_occupancySensibility(self, nwkid, sensibility): OCCUPANCY_DEVICE_PARAMETERS = { - "PIROccupiedToUnoccupiedDelay": common_PIROccupiedToUnoccupiedDelay, - "PIRoccupancySensibility": common_PIR_occupancySensibility, - "occupancySensibility": common_PIR_occupancySensibility, - "UltrasonicOccupiedToUnoccupiedDelay": common_Ultrasnonic_OccupiedToUnoccupiedDelay, - "UltrasonicOccupancySensibility": common_Ultrasonic_occupancySensibility, + "PIROccupiedToUnoccupiedDelay": { "callable": "common_PIROccupiedToUnoccupiedDelay", "description": "The PIROccupiedToUnoccupiedDelay attribute specifies the time delay, in seconds,before the PIR sensor changes to its unoccupied state after the last detection of movement in the sensed area."}, + "PIRoccupancySensibility": { "callable": "common_PIR_occupancySensibility", "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"}, + "occupancySensibility": { "callable": "common_PIR_occupancySensibility", "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"}, + "UltrasonicOccupiedToUnoccupiedDelay": { "callable": "common_Ultrasnonic_OccupiedToUnoccupiedDelay", "description": "specifies the time delay, in seconds,before the sensor changes to its unoccupied state after the last detection of movement in the sensed area."}, + "UltrasonicOccupancySensibility": { "callable": "common_Ultrasonic_occupancySensibility", "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"} } \ No newline at end of file diff --git a/Modules/onoff_settings.py b/Modules/onoff_settings.py index 6b30b5885..92e37e89e 100644 --- a/Modules/onoff_settings.py +++ b/Modules/onoff_settings.py @@ -158,7 +158,7 @@ def common_onoff_startup_onoff_mode(self, nwkid, mode): ONOFF_DEVICE_PARAMETERS = { - "PowerOnAfterOffOn": common_onoff_startup_onoff_mode, - "OnOffOnTimeDelay": common_onoff_off_wait_time, - "OnOffOffWaitTime": common_onoff_off_wait_time + "PowerOnAfterOffOn": { "callable": common_onoff_startup_onoff_mode, "description": "If managed by the device, the device will go to a desired state after an electric Off/On. 0 stands for stay Off, 1 stands for switch On, 255 stands for previous state" }, + "OnOffOnTimeDelay": { "callable": common_onoff_off_wait_time, "description": ""}, + "OnOffOffWaitTime": { "callable": common_onoff_off_wait_time, "description": ""} } \ No newline at end of file diff --git a/Modules/philips.py b/Modules/philips.py index e459be222..da79170c4 100644 --- a/Modules/philips.py +++ b/Modules/philips.py @@ -281,3 +281,8 @@ def _retreive_current_position( self, MsgSrcAddr, MsgSrcEp, MsgClusterId): prev_Value = "0;80;0".split(";") break return prev_Value + + +PHILIPS_DEVICE_PARAMETERS = { + "HueLedIndication": { "callable": philips_led_indication, "description": "Hue Led indicatio (0 or 1)"}, +} \ No newline at end of file From 316ff7c5ceca22966b09c0c2f5a2b6ac6116e496 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 16 Mar 2024 15:01:22 +0100 Subject: [PATCH 107/301] Plugin wip-develop version 7.2.029 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 26cdbc594..7840bd590 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.028"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.029"} \ No newline at end of file From bba8e7acee05ff198c0a096d7e7d23d8fb32fab9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 16 Mar 2024 15:32:33 +0100 Subject: [PATCH 108/301] make a rest api to list all parameters and their descriptions if any ( #1709) --- Classes/WebServer/WebServer.py | 6 ++-- Classes/WebServer/dispatcher.py | 1 + Modules/basicOutputs.py | 16 ----------- Modules/legrand_netatmo.py | 4 +-- Modules/occupancy_settings.py | 10 +++---- Modules/paramDevice.py | 51 ++++++++++++++++----------------- plugin.py | 8 +++++- 7 files changed, 44 insertions(+), 52 deletions(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 523552b38..72ef993ba 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -104,6 +104,7 @@ class WebServer(object): from Classes.WebServer.sendresponse import sendResponse from Classes.WebServer.tools import (DumpHTTPResponseToLog, keepConnectionAlive) + from Classes.WebServer.rest_Device_Settings_Help import rest_device_settings_help hearbeats = 0 @@ -133,7 +134,8 @@ def __init__( ModelManufMapping, DomoticzMajor, DomoticzMinor, - readZclClusters + readZclClusters, + device_settings ): self.zigbee_communication = zigbee_communitation self.httpServerConn = None @@ -191,7 +193,7 @@ def __init__( self.httpPort = httpPort mimetypes.init() - + self.device_settings = device_settings self.FirmwareVersion = None # Start the WebServer self.startWebServer() diff --git a/Classes/WebServer/dispatcher.py b/Classes/WebServer/dispatcher.py index 1005f50da..f53105a15 100644 --- a/Classes/WebServer/dispatcher.py +++ b/Classes/WebServer/dispatcher.py @@ -30,6 +30,7 @@ def do_rest(self, Connection, verb, data, version, command, parameters): "dev-cap": {"Name": "dev-cap", "Verbs": {"GET"}, "function": self.rest_dev_capabilities}, "dev-command": {"Name": "dev-command", "Verbs": {"PUT"}, "function": self.rest_dev_command}, "device": {"Name": "device", "Verbs": {"GET"}, "function": self.rest_Device}, + "device-settings-help": {"Name": "device-settings-help", "Verbs": {"GET"}, "function": self.rest_device_settings_help}, "domoticz-env": {"Name": "domoticz-env", "Verbs": {"GET"}, "function": self.rest_domoticz_env}, "help": {"Name": "help", "Verbs": {"GET"}, "function": None}, "full-reprovisionning": {"Name": "full-reprovisionning", "Verbs": {"PUT"}, "function": self.rest_full_reprovisionning}, diff --git a/Modules/basicOutputs.py b/Modules/basicOutputs.py index 684e20f12..efd28d6ae 100644 --- a/Modules/basicOutputs.py +++ b/Modules/basicOutputs.py @@ -513,22 +513,6 @@ def removeZigateDevice(self, IEEE): #return send_zigatecmd_raw(self, "0026", ParentAddr + ChildAddr) -def ballast_Configuration_max_level(self, nwkid, value): - ListOfEp = getListOfEpForCluster(self, nwkid, "0301") - if ListOfEp: - for EPout in ListOfEp: - write_attribute( - self, nwkid, ZIGATE_EP, EPout, "0301", "0000", "00", "0011", "20", "%02x" % value, ackIsDisabled=False - ) - read_attribute(self, nwkid, ZIGATE_EP, EPout, "0301", "00", "00", "0000", 1, "0011", ackIsDisabled=False) - - -def ballast_Configuration_min_level(self, nwkid, value): - ListOfEp = getListOfEpForCluster(self, nwkid, "0301") - if ListOfEp: - for EPout in ListOfEp: - write_attribute( self, nwkid, ZIGATE_EP, EPout, "0301", "0000", "00", "0010", "20", "%02x" % value, ackIsDisabled=False) - read_attribute(self, nwkid, ZIGATE_EP, EPout, "0301", "00", "00", "0000", 1, "0010", ackIsDisabled=False) def read_attribute(self, nwkid, EpIn, EpOut, Cluster, direction, manufacturer_spec, manufacturer, lenAttr, Attr, ackIsDisabled=False): return zcl_read_attribute(self, nwkid, EpIn, EpOut, Cluster, direction, manufacturer_spec, manufacturer, lenAttr, Attr, ackIsDisabled) diff --git a/Modules/legrand_netatmo.py b/Modules/legrand_netatmo.py index 1c07e1a1f..74f99d5df 100755 --- a/Modules/legrand_netatmo.py +++ b/Modules/legrand_netatmo.py @@ -864,8 +864,8 @@ def is_zigate_bellow_or_equal_31c(self): LEGRAND_DEVICE_PARAMETERS = { "netatmoLedIfOn": { "callable": legrand_enable_Led_IfOn_by_nwkid,"description": "Enable Led if On, valid for model 'Connected outlet', 'Mobile outlet', 'Dimmer switch wo neutral', 'Shutter switch with neutral', 'Micromodule switch'. (0 or 1)"}, - "netatmoLedInDark": { "callable": legrand_enable_Led_InDark_by_nwkid, "Enable Led if On, valid for model 'Connected outlet', 'Mobile outlet', 'Dimmer switch wo neutral', 'Shutter switch with neutral', 'Micromodule switch'. (0 or 1)": ""}, - "netatmoLedShutter": { "callable": legrand_enable_Led_Shutter_by_nwkid, "Enable Led if On, valid for model 'Connected outlet', 'Shutter switch with neutral'. (0 or 1)": ""}, + "netatmoLedInDark": { "callable": legrand_enable_Led_InDark_by_nwkid, "description": "Enable Led if On, valid for model 'Connected outlet', 'Mobile outlet', 'Dimmer switch wo neutral', 'Shutter switch with neutral', 'Micromodule switch'. (0 or 1)"}, + "netatmoLedShutter": { "callable": legrand_enable_Led_Shutter_by_nwkid, "description": "Enable Led if On, valid for model 'Connected outlet', 'Shutter switch with neutral'. (0 or 1)"}, "netatmoEnableDimmer": { "callable": legrand_Dimmer_by_nwkid, "description": "Enable dimming for 'Dimmer switch wo neutral'. (0 or 1)"}, } \ No newline at end of file diff --git a/Modules/occupancy_settings.py b/Modules/occupancy_settings.py index 78558b261..4986705f8 100644 --- a/Modules/occupancy_settings.py +++ b/Modules/occupancy_settings.py @@ -271,9 +271,9 @@ def common_Ultrasonic_occupancySensibility(self, nwkid, sensibility): OCCUPANCY_DEVICE_PARAMETERS = { - "PIROccupiedToUnoccupiedDelay": { "callable": "common_PIROccupiedToUnoccupiedDelay", "description": "The PIROccupiedToUnoccupiedDelay attribute specifies the time delay, in seconds,before the PIR sensor changes to its unoccupied state after the last detection of movement in the sensed area."}, - "PIRoccupancySensibility": { "callable": "common_PIR_occupancySensibility", "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"}, - "occupancySensibility": { "callable": "common_PIR_occupancySensibility", "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"}, - "UltrasonicOccupiedToUnoccupiedDelay": { "callable": "common_Ultrasnonic_OccupiedToUnoccupiedDelay", "description": "specifies the time delay, in seconds,before the sensor changes to its unoccupied state after the last detection of movement in the sensed area."}, - "UltrasonicOccupancySensibility": { "callable": "common_Ultrasonic_occupancySensibility", "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"} + "PIROccupiedToUnoccupiedDelay": { "callable": common_PIROccupiedToUnoccupiedDelay, "description": "The PIROccupiedToUnoccupiedDelay attribute specifies the time delay, in seconds,before the PIR sensor changes to its unoccupied state after the last detection of movement in the sensed area."}, + "PIRoccupancySensibility": { "callable": common_PIR_occupancySensibility, "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"}, + "occupancySensibility": { "callable": common_PIR_occupancySensibility, "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"}, + "UltrasonicOccupiedToUnoccupiedDelay": { "callable": common_Ultrasnonic_OccupiedToUnoccupiedDelay, "description": "specifies the time delay, in seconds,before the sensor changes to its unoccupied state after the last detection of movement in the sensed area."}, + "UltrasonicOccupancySensibility": { "callable": common_Ultrasonic_occupancySensibility, "description": "Sensitivity level of the Sensor 0 default, 1, High, 2 Max"} } \ No newline at end of file diff --git a/Modules/paramDevice.py b/Modules/paramDevice.py index f5a600700..b5863dc7c 100644 --- a/Modules/paramDevice.py +++ b/Modules/paramDevice.py @@ -27,37 +27,36 @@ from Modules.tuyaTS011F import TUYA_TS011F_DEVICE_PARAMETERS from Modules.tuyaTS0601 import ts0601_extract_data_point_infos, ts0601_settings -DEVICE_PARAMETERS = { -} - - -def sanity_check_of_param(self, NwkId): - - self.log.logging("Heartbeat", "Debug", f"sanity_check_of_param {NwkId}") +def initialize_device_settings(self): + self.device_settings = {} # Load specific settings - DEVICE_PARAMETERS.update(ONOFF_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(OCCUPANCY_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(IAS_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(BALLAST_DEVICE_PARAMETERS) + self.device_settings.update(ONOFF_DEVICE_PARAMETERS) + self.device_settings.update(OCCUPANCY_DEVICE_PARAMETERS) + self.device_settings.update(IAS_DEVICE_PARAMETERS) + self.device_settings.update(BALLAST_DEVICE_PARAMETERS) # Load Manufacturer specific settings - DEVICE_PARAMETERS.update(DANFOSS_DEVICE_PARAMETERS) + self.device_settings.update(DANFOSS_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(LEGRAND_DEVICE_PARAMETERS) + self.device_settings.update(LEGRAND_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(LUMI_DEVICE_PARAMETERS) + self.device_settings.update(LUMI_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(PHILIPS_DEVICE_PARAMETERS) + self.device_settings.update(PHILIPS_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(SONOFF_DEVICE_PARAMETERS) + self.device_settings.update(SONOFF_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(TUYA_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(TUYA_TS011F_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(TUYA_TRV_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(TUYA_SIREN_DEVICE_PARAMETERS) + self.device_settings.update(TUYA_DEVICE_PARAMETERS) + self.device_settings.update(TUYA_TS011F_DEVICE_PARAMETERS) + self.device_settings.update(TUYA_TRV_DEVICE_PARAMETERS) + self.device_settings.update(TUYA_SIREN_DEVICE_PARAMETERS) - DEVICE_PARAMETERS.update(SCHNEIDER_DEVICE_PARAMETERS) + self.device_settings.update(SCHNEIDER_DEVICE_PARAMETERS) + +def sanity_check_of_param(self, NwkId): + + self.log.logging("Heartbeat", "Debug", f"sanity_check_of_param {NwkId}") param_data = self.ListOfDevices.get(NwkId, {}).get("Param", {}) model_name = self.ListOfDevices.get(NwkId, {}).get("Model", "") @@ -69,9 +68,9 @@ def sanity_check_of_param(self, NwkId): if dps_mapping: ts0601_settings( self, NwkId, dps_mapping, param, value) - elif param in DEVICE_PARAMETERS: - if callable( DEVICE_PARAMETERS[param] ): - DEVICE_PARAMETERS[param](self, NwkId, value) + elif param in self.device_settings: + if callable( self.device_settings[param] ): + self.device_settings[param](self, NwkId, value) - elif "callable" in DEVICE_PARAMETERS[param]: - DEVICE_PARAMETERS[param]["callable"](self, NwkId, value) \ No newline at end of file + elif "callable" in self.device_settings[param]: + self.device_settings[param]["callable"](self, NwkId, value) \ No newline at end of file diff --git a/plugin.py b/plugin.py index 9f883c618..e8fb9f628 100644 --- a/plugin.py +++ b/plugin.py @@ -93,6 +93,7 @@ #import DomoticzEx as Domoticz import Domoticz + try: #from DomoticzEx import Devices, Images, Parameters, Settings from Domoticz import Devices, Images, Parameters, Settings @@ -139,6 +140,7 @@ load_list_of_domoticz_widget, retreive_widgetid_from_deviceId_unit) from Modules.heartbeat import processListOfDevices from Modules.input import zigbee_receive_message +from Modules.paramDevice import initialize_device_settings from Modules.piZigate import switchPiZigate_mode from Modules.pluginHelpers import (check_firmware_level, check_python_modules_version, @@ -291,6 +293,9 @@ def __init__(self): # Zigpy self.zigbee_communication = None # "zigpy" or "native" #self.pythonModuleVersion = {} + + self.device_settings = {} + initialize_device_settings(self) def onStart(self): Domoticz.Status( "Zigbee for Domoticz plugin starting") @@ -1373,7 +1378,8 @@ def start_web_server(self, webserver_port, webserver_homefolder): self.ModelManufMapping, self.DomoticzMajor, self.DomoticzMinor, - self.readZclClusters + self.readZclClusters, + self.device_settings ) if self.FirmwareVersion: self.webserver.update_firmware(self.FirmwareVersion) From 9bad37e82cabb5afee8affafe3dd0a3f1a23697a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 16 Mar 2024 15:32:43 +0100 Subject: [PATCH 109/301] Plugin wip-develop version 7.2.030 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 7840bd590..ff4960ea2 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.029"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.030"} \ No newline at end of file From a8655eda6363a4c7d464822d92b1573f665ee69d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 11:03:46 +0100 Subject: [PATCH 110/301] refactor dispatch and prevent to reinitialize the list of Rest API --- Classes/WebServer/WebServer.py | 7 +- Classes/WebServer/dispatcher.py | 235 +++++++++++++++++--------------- 2 files changed, 133 insertions(+), 109 deletions(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 72ef993ba..c6951f5f9 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -62,7 +62,7 @@ class WebServer(object): from Classes.WebServer.com import (onConnect, onDisconnect, onStop, startWebServer) - from Classes.WebServer.dispatcher import do_rest + from Classes.WebServer.dispatcher import do_rest, setup_list_rest_commands from Classes.WebServer.onMessage import onMessage from Classes.WebServer.rest_Bindings import (rest_binding, rest_binding_table_disp, @@ -77,6 +77,8 @@ class WebServer(object): from Classes.WebServer.rest_CfgReporting import ( rest_cfgrpt_ondemand, rest_cfgrpt_ondemand_with_config) from Classes.WebServer.rest_change_ModelName import rest_change_model_name + from Classes.WebServer.rest_Device_Settings_Help import \ + rest_device_settings_help from Classes.WebServer.rest_Energy import (rest_req_nwk_full, rest_req_nwk_inter) from Classes.WebServer.rest_Groups import (rest_rescan_group, @@ -104,7 +106,6 @@ class WebServer(object): from Classes.WebServer.sendresponse import sendResponse from Classes.WebServer.tools import (DumpHTTPResponseToLog, keepConnectionAlive) - from Classes.WebServer.rest_Device_Settings_Help import rest_device_settings_help hearbeats = 0 @@ -195,7 +196,9 @@ def __init__( mimetypes.init() self.device_settings = device_settings self.FirmwareVersion = None + # Start the WebServer + self.setup_list_rest_commands( ) self.startWebServer() self.certified_devices_update() diff --git a/Classes/WebServer/dispatcher.py b/Classes/WebServer/dispatcher.py index f53105a15..b02c0e5ea 100644 --- a/Classes/WebServer/dispatcher.py +++ b/Classes/WebServer/dispatcher.py @@ -9,129 +9,150 @@ from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) +REST_COMMANDS = {} -def do_rest(self, Connection, verb, data, version, command, parameters): - REST_COMMANDS = { - "battery-state": {"Name": "battery-state", "Verbs": {"GET"}, "function": self.rest_battery_state}, - "bind-lst-cluster": {"Name": "bind-lst-cluster", "Verbs": {"GET"}, "function": self.rest_bindLSTcluster}, - "bind-lst-device": {"Name": "bind-lst-device", "Verbs": {"GET"}, "function": self.rest_bindLSTdevice}, - "binding": {"Name": "binding", "Verbs": {"PUT"}, "function": self.rest_binding}, - "binding-table-req": {"Name": "binding", "Verbs": {"GET"}, "function": self.rest_binding_table_req}, - "binding-table-disp": {"Name": "binding", "Verbs": {"GET"}, "function": self.rest_binding_table_disp}, - "binding-group": {"Name": "binding-group", "Verbs": {"PUT"}, "function": self.rest_group_binding}, - "casaia-list-devices": { "Name": "casaia-list-devices", "Verbs": {"GET"}, "function": self.rest_casa_device_list }, - "casaia-update-ircode": { "Name": "casaia-list-devices", "Verbs": {"PUT"}, "function": self.rest_casa_device_ircode_update }, - "cfgrpt-ondemand": {"Name": "cfgrpt-ondemand", "Verbs": {"GET"}, "function": self.rest_cfgrpt_ondemand}, - "cfgrpt-ondemand-config": {"Name": "cfgrpt-ondemand-config", "Verbs": { "GET", "PUT", "DELETE" }, "function": self.rest_cfgrpt_ondemand_with_config}, - "change-channel": {"Name": "change-channel", "Verbs": {"PUT"}, "function": self.rest_change_channel}, - "change-model": {"Name": "change-model", "Verbs": {"PUT"}, "function": self.rest_change_model_name}, - "clear-error-history": { "Name": "clear-error-history", "Verbs": {"GET"}, "function": self.rest_logErrorHistoryClear }, - "dev-cap": {"Name": "dev-cap", "Verbs": {"GET"}, "function": self.rest_dev_capabilities}, - "dev-command": {"Name": "dev-command", "Verbs": {"PUT"}, "function": self.rest_dev_command}, - "device": {"Name": "device", "Verbs": {"GET"}, "function": self.rest_Device}, - "device-settings-help": {"Name": "device-settings-help", "Verbs": {"GET"}, "function": self.rest_device_settings_help}, - "domoticz-env": {"Name": "domoticz-env", "Verbs": {"GET"}, "function": self.rest_domoticz_env}, - "help": {"Name": "help", "Verbs": {"GET"}, "function": None}, - "full-reprovisionning": {"Name": "full-reprovisionning", "Verbs": {"PUT"}, "function": self.rest_full_reprovisionning}, - "log-error-history": {"Name": "log-error-history", "Verbs": {"GET"}, "function": self.rest_logErrorHistory}, - "new-hrdwr": {"Name": "new-hrdwr", "Verbs": {"GET"}, "function": self.rest_new_hrdwr}, - "nwk-stat": {"Name": "nwk_stat", "Verbs": {"GET", "DELETE"}, "function": self.rest_nwk_stat}, - "non-optmize-device-configuration": {"Name": "non-optmize-device-configuration", "Verbs": {"GET"}, "function": self.non_optmize_device_configuration}, - "ota-firmware-device-list": { "Name": "ota-firmware-list", "Verbs": {"GET"}, "function": self.rest_ota_devices_for_manufcode }, - "ota-firmware-list": {"Name": "ota-firmware-list", "Verbs": {"GET"}, "function": self.rest_ota_firmware_list}, - "ota-firmware-update": { "Name": "ota-firmware-update", "Verbs": {"PUT"}, "function": self.rest_ota_firmware_update }, - "permit-to-join": {"Name": "permit-to-join", "Verbs": {"GET", "PUT"}, "function": self.rest_PermitToJoin}, - "plugin-health": {"Name": "plugin-health", "Verbs": {"GET"}, "function": self.rest_plugin_health}, - "plugin-log": {"Name": "plugin-log", "Verbs": {"GET"}, "function": self.rest_logPlugin}, - "plugin-upgrade": {"Name": "plugin-upgrade", "Verbs": {"GET"}, "function": self.rest_plugin_upgrade}, - "plugin-restart": {"Name": "plugin-restart", "Verbs": {"GET"}, "function": self.rest_plugin_restart}, - "plugin-stat": {"Name": "plugin-stat", "Verbs": {"GET"}, "function": self.rest_plugin_stat}, - "plugin": {"Name": "plugin", "Verbs": {"GET"}, "function": self.rest_PluginEnv}, - "raw-command": {"Name": "raw-command", "Verbs": {"PUT"}, "function": self.rest_raw_command}, - "raw-zigbee": {"Name": "raw-zigbee", "Verbs": {"PUT"}, "function": self.rest_raw_zigbee}, - "rcv-nw-hrdwr": {"Name": "rcv-nw-hrdwr", "Verbs": {"GET"}, "function": self.rest_rcv_nw_hrdwr}, - "recreate-widgets": {"Name": "recreate-widgets", "Verbs": {"PUT"}, "function": self.rest_recreate_widgets}, - "reload-device-conf": {"Name": "reload-device-conf", "Verbs": {"GET"}, "function": self.rest_reload_device_conf}, - "req-nwk-full": {"Name": "req-nwk-full", "Verbs": {"GET"}, "function": self.rest_req_nwk_full}, - "req-nwk-inter": {"Name": "req-nwk-inter", "Verbs": {"GET"}, "function": self.rest_req_nwk_inter}, - "req-topologie": {"Name": "req-topologie", "Verbs": {"GET"}, "function": self.rest_req_topologie}, - "rescan-groups": {"Name": "rescan-groups", "Verbs": {"GET"}, "function": self.rest_rescan_group}, - "restart-needed": {"Name": "restart-needed", "Verbs": {"GET"}, "function": self.rest_restart_needed}, - "scan-device-for-grp": { "Name": "ScanDevscan-device-for-grpiceForGrp", "Verbs": {"PUT"}, "function": self.rest_scan_devices_for_group }, - "setting-debug": {"Name": "setting", "Verbs": {"GET", "PUT"}, "function": self.rest_Settings_with_debug}, - "setting": {"Name": "setting", "Verbs": {"GET", "PUT"}, "function": self.rest_Settings_wo_debug}, - "sw-reset-zigate": {"Name": "sw-reset-zigate", "Verbs": {"GET"}, "function": self.rest_reset_zigate}, - "sw-reset-coordinator": {"Name": "sw-reset-coordinator", "Verbs": {"GET"}, "function": self.rest_reset_zigate}, - "topologie": {"Name": "topologie", "Verbs": {"GET", "DELETE"}, "function": self.rest_netTopologie}, - "unbinding": {"Name": "unbinding", "Verbs": {"PUT"}, "function": self.rest_unbinding}, - "unbinding-group": {"Name": "unbinding-group", "Verbs": {"PUT"}, "function": self.rest_group_unbinding}, - "upgrade-certified-devices" : {"Name": "upgrade-certified-devices", "Verbs": {"GET"}, "function": self.rest_certified_devices_update}, - "zdevice-name": {"Name": "zdevice-name", "Verbs": {"GET", "PUT", "DELETE"}, "function": self.rest_zDevice_name}, - "zdevice-raw": {"Name": "zdevice-raw", "Verbs": {"GET", "PUT"}, "function": self.rest_zDevice_raw}, - "zdevice": {"Name": "zdevice", "Verbs": {"GET", "DELETE"}, "function": self.rest_zDevice}, - "zgroup-list-available-device": { "Name": "zgroup-list-available-device", "Verbs": {"GET"}, "function": self.rest_zGroup_lst_avlble_dev }, - "zgroup": {"Name": "device", "Verbs": {"GET", "PUT"}, "function": self.rest_zGroup}, - "zigate-erase-PDM": {"Name": "zigate-erase-PDM", "Verbs": {"GET"}, "function": self.rest_zigate_erase_PDM}, - "zigate-mode": {"Name": "zigate-mode", "Verbs": {"GET"}, "function": self.rest_zigate_mode}, - "zigate": { "Name": "zigate", "Verbs": {"GET"}, "function": self.rest_zigate }, - "zlinky": { "Name": "zlinky", "Verbs": {"GET"}, "function": self.rest_zlinky }, - "coordinator-erase-PDM": {"Name": "coordinator-erase-PDM", "Verbs": {"GET"}, "function": self.rest_zigate_erase_PDM}, - "coordinator-mode": {"Name": "coordinator-mode", "Verbs": {"GET"}, "function": self.rest_zigate_mode}, - "coordinator": {"Name": "coordinator", "Verbs": {"GET"}, "function": self.rest_zigate}, - } +def setup_list_rest_commands( self ): + + list_rest_commands = [ + ( {"Name": "battery-state", "Verbs": {"GET"}, "function": self.rest_battery_state} ), + ( {"Name": "bind-lst-cluster", "Verbs": {"GET"}, "function": self.rest_bindLSTcluster} ), + ( {"Name": "bind-lst-device", "Verbs": {"GET"}, "function": self.rest_bindLSTdevice} ), + ( {"Name": "binding", "Verbs": {"PUT"}, "function": self.rest_binding} ), + ( {"Name": "binding-table-req", "Verbs": {"GET"}, "function": self.rest_binding_table_req} ), + ( {"Name": "binding-table-disp", "Verbs": {"GET"}, "function": self.rest_binding_table_disp} ), + ( {"Name": "binding-group", "Verbs": {"PUT"}, "function": self.rest_group_binding} ), + ( {"Name": "casaia-list-devices", "Verbs": {"GET"}, "function": self.rest_casa_device_list } ), + ( {"Name": "casaia-update-ircode", "Verbs": {"PUT"}, "function": self.rest_casa_device_ircode_update } ), + ( {"Name": "cfgrpt-ondemand", "Verbs": {"GET"}, "function": self.rest_cfgrpt_ondemand} ), + ( {"Name": "cfgrpt-ondemand-config", "Verbs": { "GET", "PUT", "DELETE" }, "function": self.rest_cfgrpt_ondemand_with_config} ), + ( {"Name": "change-channel", "Verbs": {"PUT"}, "function": self.rest_change_channel} ), + ( {"Name": "change-model", "Verbs": {"PUT"}, "function": self.rest_change_model_name} ), + ( {"Name": "clear-error-history", "Verbs": {"GET"}, "function": self.rest_logErrorHistoryClear } ), + ( {"Name": "dev-cap", "Verbs": {"GET"}, "function": self.rest_dev_capabilities} ), + ( {"Name": "dev-command", "Verbs": {"PUT"}, "function": self.rest_dev_command} ), + ( {"Name": "device", "Verbs": {"GET"}, "function": self.rest_Device} ), + ( {"Name": "device-settings-help", "Verbs": {"GET"}, "function": self.rest_device_settings_help} ), + ( {"Name": "domoticz-env", "Verbs": {"GET"}, "function": self.rest_domoticz_env} ), + ( {"Name": "help", "Verbs": {"GET"}, "function": None} ), + ( {"Name": "full-reprovisionning", "Verbs": {"PUT"}, "function": self.rest_full_reprovisionning} ), + ( {"Name": "log-error-history", "Verbs": {"GET"}, "function": self.rest_logErrorHistory} ), + ( {"Name": "new-hrdwr", "Verbs": {"GET"}, "function": self.rest_new_hrdwr} ), + ( {"Name": "nwk-stat", "Verbs": {"GET", "DELETE"}, "function": self.rest_nwk_stat} ), + ( {"Name": "non-optmize-device-configuration", "Verbs": {"GET"}, "function": self.non_optmize_device_configuration} ), + ( {"Name": "ota-firmware-device-list", "Verbs": {"GET"}, "function": self.rest_ota_devices_for_manufcode } ), + ( {"Name": "ota-firmware-list", "Verbs": {"GET"}, "function": self.rest_ota_firmware_list} ), + ( {"Name": "ota-firmware-update", "Verbs": {"PUT"}, "function": self.rest_ota_firmware_update } ), + ( {"Name": "permit-to-join", "Verbs": {"GET", "PUT"}, "function": self.rest_PermitToJoin} ), + ( {"Name": "plugin-health", "Verbs": {"GET"}, "function": self.rest_plugin_health} ), + ( {"Name": "plugin-log", "Verbs": {"GET"}, "function": self.rest_logPlugin} ), + ( {"Name": "plugin-upgrade", "Verbs": {"GET"}, "function": self.rest_plugin_upgrade} ), + ( {"Name": "plugin-restart", "Verbs": {"GET"}, "function": self.rest_plugin_restart} ), + ( {"Name": "plugin-stat", "Verbs": {"GET"}, "function": self.rest_plugin_stat} ), + ( {"Name": "plugin", "Verbs": {"GET"}, "function": self.rest_PluginEnv} ), + ( {"Name": "raw-command", "Verbs": {"PUT"}, "function": self.rest_raw_command} ), + ( {"Name": "raw-zigbee", "Verbs": {"PUT"}, "function": self.rest_raw_zigbee} ), + ( {"Name": "rcv-nw-hrdwr", "Verbs": {"GET"}, "function": self.rest_rcv_nw_hrdwr} ), + ( {"Name": "recreate-widgets", "Verbs": {"PUT"}, "function": self.rest_recreate_widgets} ), + ( {"Name": "reload-device-conf", "Verbs": {"GET"}, "function": self.rest_reload_device_conf} ), + ( {"Name": "req-nwk-full", "Verbs": {"GET"}, "function": self.rest_req_nwk_full} ), + ( {"Name": "req-nwk-inter", "Verbs": {"GET"}, "function": self.rest_req_nwk_inter} ), + ( {"Name": "req-topologie", "Verbs": {"GET"}, "function": self.rest_req_topologie} ), + ( {"Name": "rescan-groups", "Verbs": {"GET"}, "function": self.rest_rescan_group} ), + ( {"Name": "restart-needed", "Verbs": {"GET"}, "function": self.rest_restart_needed} ), + ( {"Name": "ScanDevscan-device-for-grpiceForGrp", "Verbs": {"PUT"}, "function": self.rest_scan_devices_for_group } ), + ( {"Name": "setting-debug", "Verbs": {"GET", "PUT"}, "function": self.rest_Settings_with_debug} ), + ( {"Name": "setting", "Verbs": {"GET", "PUT"}, "function": self.rest_Settings_wo_debug} ), + ( {"Name": "sw-reset-zigate", "Verbs": {"GET"}, "function": self.rest_reset_zigate} ), + ( {"Name": "sw-reset-coordinator", "Verbs": {"GET"}, "function": self.rest_reset_zigate} ), + ( {"Name": "topologie", "Verbs": {"GET", "DELETE"}, "function": self.rest_netTopologie} ), + ( {"Name": "unbinding", "Verbs": {"PUT"}, "function": self.rest_unbinding} ), + ( {"Name": "unbinding-group", "Verbs": {"PUT"}, "function": self.rest_group_unbinding} ), + ( {"Name": "upgrade-certified-devices", "Verbs": {"GET"}, "function": self.rest_certified_devices_update} ), + ( {"Name": "zdevice-name", "Verbs": {"GET", "PUT", "DELETE"}, "function": self.rest_zDevice_name} ), + ( {"Name": "zdevice-raw", "Verbs": {"GET", "PUT"}, "function": self.rest_zDevice_raw} ), + ( {"Name": "zdevice", "Verbs": {"GET", "DELETE"}, "function": self.rest_zDevice} ), + ( {"Name": "zgroup-list-available-device", "Verbs": {"GET"}, "function": self.rest_zGroup_lst_avlble_dev } ), + ( {"Name": "zgroup", "Verbs": {"GET", "PUT"}, "function": self.rest_zGroup} ), + ( {"Name": "zigate-erase-PDM", "Verbs": {"GET"}, "function": self.rest_zigate_erase_PDM} ), + ( {"Name": "zigate-mode", "Verbs": {"GET"}, "function": self.rest_zigate_mode} ), + ( {"Name": "zigate", "Verbs": {"GET"}, "function": self.rest_zigate } ), + ( {"Name": "zlinky", "Verbs": {"GET"}, "function": self.rest_zlinky } ), + ( {"Name": "coordinator-erase-PDM", "Verbs": {"GET"}, "function": self.rest_zigate_erase_PDM} ), + ( {"Name": "coordinator-mode", "Verbs": {"GET"}, "function": self.rest_zigate_mode} ), + ( {"Name": "coordinator", "Verbs": {"GET"}, "function": self.rest_zigate} ), + ] + + for command in list_rest_commands: + _name = command["Name"] + _verbs = command["Verbs"] + _function = command["function"] + if _name in REST_COMMANDS: + self.logging("Error", "setup_list_rest_commands - %s already loaded" %_name) + REST_COMMANDS[ _name ] = { "Name": _name, "Verbs": _verbs, "function": _function} +def do_rest(self, Connection, verb, data, version, command, parameters): + self.logging("Debug", "do_rest - Verb: %s, Command: %s, Param: %s" % (verb, command, parameters)) HTTPresponse = {} - if command not in REST_COMMANDS: - self.logging("Error", "do_rest - Verb: %s, Command: %s, Param: %s not found !" % (verb, command, parameters)) - - elif verb not in REST_COMMANDS[command]["Verbs"]: - self.logging("Error", "do_rest - Verb: %s, Command: %s, Param: %s not found !!" % (verb, command, parameters)) - - elif command in REST_COMMANDS and verb in REST_COMMANDS[command]["Verbs"]: + if command in REST_COMMANDS and verb in REST_COMMANDS[command]["Verbs"]: self.logging("Debug", "do_rest - Verb: %s, Command: %s, Param: %s found ready to execute" % (verb, command, parameters)) - HTTPresponse = setupHeadersResponse() - if self.pluginconf.pluginConf["enableKeepalive"]: - HTTPresponse["Headers"]["Connection"] = "Keep-alive" - else: - HTTPresponse["Headers"]["Connection"] = "Close" - HTTPresponse["Headers"]["Cache-Control"] = "no-cache, no-store, must-revalidate" - HTTPresponse["Headers"]["Pragma"] = "no-cache" - HTTPresponse["Headers"]["Expires"] = "0" - HTTPresponse["Headers"]["Accept"] = "*/*" - - if command == "help": - _response = prepResponseMessage(self, setupHeadersResponse()) - _data = {} - for x in REST_COMMANDS: - _data[x] = {"Verbs": []} - for y in REST_COMMANDS[x]["Verbs"]: - _data[x]["Verbs"].append(y) - _response["Data"] = json.dumps(_data) - HTTPresponse = _response - - elif version == "1" and REST_COMMANDS[command]["function"]: - self.logging("Debug", "do_rest - calling REST_COMMANDS[%s]['function'] with %s %s %s" % (command, verb, data, parameters)) - HTTPresponse = REST_COMMANDS[command]["function"](verb, data, parameters) - - elif version == "2" and REST_COMMANDS[command]["functionv2"]: - HTTPresponse = REST_COMMANDS[command]["functionv2"](verb, data, parameters) + HTTPresponse = execute_rest_command(self, verb, data, version, command, parameters) + + else: + self.logging("Error", "do_rest - Verb: %s, Command: %s, Param: %s not found !" % (verb, command, parameters)) self.logging("Debug", "==> return HTTPresponse: %s" % (HTTPresponse)) - if HTTPresponse == {} or HTTPresponse is None: # We reach here due to failure ! - HTTPresponse = prepResponseMessage(self, setupHeadersResponse()) - HTTPresponse["Status"] = "400 BAD REQUEST" - HTTPresponse["Data"] = "Unknown REST command: %s" % command - HTTPresponse["Headers"]["Content-Type"] = "text/plain; charset=utf-8" + HTTPresponse = prepare_error_message(self, command) self.logging("Debug", "==> sending HTTPresponse: %s to %s" % (HTTPresponse, Connection)) self.sendResponse(Connection, HTTPresponse) +def execute_rest_command(self, verb, data, version, command, parameters): + response = setupHeadersResponse() + if self.pluginconf.pluginConf["enableKeepalive"]: + response["Headers"]["Connection"] = "Keep-alive" + else: + response["Headers"]["Connection"] = "Close" + response["Headers"]["Cache-Control"] = "no-cache, no-store, must-revalidate" + response["Headers"]["Pragma"] = "no-cache" + response["Headers"]["Expires"] = "0" + response["Headers"]["Accept"] = "*/*" + + if command == "help": + response = prepare_help_response(self) + + elif version == "1" and REST_COMMANDS[command]["function"]: + self.logging("Debug", "do_rest - calling REST_COMMANDS[%s]['function'] with %s %s %s" % (command, verb, data, parameters)) + response = REST_COMMANDS[command]["function"](verb, data, parameters) + + elif version == "2" and REST_COMMANDS[command]["functionv2"]: + response = REST_COMMANDS[command]["functionv2"](verb, data, parameters) + + return response + +def prepare_help_response(self): + response = prepResponseMessage(self, setupHeadersResponse()) + _data = {} + for x in REST_COMMANDS: + _data[x] = {"Verbs": []} + for y in REST_COMMANDS[x]["Verbs"]: + _data[x]["Verbs"].append(y) + response["Data"] = json.dumps(_data) + return response + + +def prepare_error_message(self, command): + response = prepResponseMessage(self, setupHeadersResponse()) + response["Status"] = "400 BAD REQUEST" + response["Data"] = "Unknown REST command: %s" % command + response["Headers"]["Content-Type"] = "text/plain; charset=utf-8" + return response + def do_nothing(self, verb, data, parameters): pass From 3300126f9f8d37baa98cc0ebc9681e7925518d92 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 11:04:32 +0100 Subject: [PATCH 111/301] Plugin wip-develop version 7.2.031 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index ff4960ea2..c8b6fba5e 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.030"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.031"} \ No newline at end of file From 4a5601b063c4df57c0d69d617dc8c9ae05da9819 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 11:06:47 +0100 Subject: [PATCH 112/301] rest api for Device settings --- .../WebServer/rest_Device_Settings_Help.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Classes/WebServer/rest_Device_Settings_Help.py diff --git a/Classes/WebServer/rest_Device_Settings_Help.py b/Classes/WebServer/rest_Device_Settings_Help.py new file mode 100644 index 000000000..055a51779 --- /dev/null +++ b/Classes/WebServer/rest_Device_Settings_Help.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + +import json +from Classes.WebServer.headerResponse import (prepResponseMessage, + setupHeadersResponse) + + +def rest_device_settings_help(self, verb, data, parameters): + self.logging("Debug", "rest_device_settings_help") + _response = prepResponseMessage(self, setupHeadersResponse()) + if verb == "GET": + list_of_settings = [] + for setting, setting_info in self.device_settings.items(): + self.logging("Debug", "rest_device_settings_help %s %s" %(setting, str(setting_info))) + if not callable(setting_info) and setting not in list_of_settings: + self.logging("Debug", "rest_device_settings_help %s %s" %(setting, str(setting_info))) + list_of_settings.append( ( setting, setting_info[ "description"])) + else: + list_of_settings.append( ( setting, "")) + + _response["Data"] = json.dumps(list_of_settings, sort_keys=True) + + return _response From fbdd77f33a4c9df9cb63a95599edf7500cffc08e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 11:06:56 +0100 Subject: [PATCH 113/301] Plugin wip-develop version 7.2.032 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index c8b6fba5e..f655fcc82 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.031"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.032"} \ No newline at end of file From a5bed2c3e9cbd7be969f0a52fefb3d4268385340 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 14:29:19 +0100 Subject: [PATCH 114/301] Send CheckParam attribute to zdevice-name --- Classes/WebServer/WebServer.py | 93 ++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 39 deletions(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index c6951f5f9..37bc78928 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -784,7 +784,7 @@ def getDeviceInfos(self, widget_idx): if len(parameters) == 0: # Return the Full List of ZiGate Domoticz Widget device_lst = [ - getDeviceInfos(widget_idx) + getDeviceInfos(self, widget_idx) for widget_idx in self.ListOfDomoticzWidget if len(self.ListOfDomoticzWidget[widget_idx]["DeviceID"]) == 16 ] @@ -796,12 +796,12 @@ def getDeviceInfos(self, widget_idx): len(self.ListOfDomoticzWidget[widget_idx]["DeviceID"]) == 16 and parameters[0] == self.ListOfDomoticzWidget[widget_idx]["DeviceID"] ): - _response["Data"] = json.dumps(getDeviceInfos(widget_idx), sort_keys=True) + _response["Data"] = json.dumps(getDeviceInfos(self, widget_idx), sort_keys=True) break else: device_lst = [ - getDeviceInfos(widget_idx) + getDeviceInfos(self, widget_idx) for parm in parameters for widget_idx in self.ListOfDomoticzWidget if len(self.ListOfDomoticzWidget[widget_idx]["DeviceID"]) == 16 @@ -863,47 +863,54 @@ def rest_zDevice_name(self, verb, data, parameters): continue device = {"_NwkId": x} - for item in ( "Param", "ZDeviceName", "IEEE", "Model", "MacCapa", "Status", "ConsistencyCheck", "Health", "LQI", "Battery", "CertifiedDevice" ): - if item == "CertifiedDevice" and "CertifiedDevice" in self.ListOfDevices[x]: - device[item] = self.ListOfDevices[x][item] + for item in ( "CheckParam", "Param", "ZDeviceName", "IEEE", "Model", "MacCapa", "Status", "ConsistencyCheck", "Health", "LQI", "Battery", "CertifiedDevice" ): + if item not in self.ListOfDevices[x]: + if item == "Param": + device[item] = str({}) + if item == "CheckParam": + device[item] = False + else: + device[item] = "" + continue + if item == "CertifiedDevice": + device[item] = self.ListOfDevices[x][item] - elif item in self.ListOfDevices[x]: - if item == "Battery" and self.ListOfDevices[x]["Battery"] in ( {}, ) and "IASBattery" in self.ListOfDevices[x]: - device[item] = str(self.ListOfDevices[x][ "IASBattery" ]) - elif item == "MacCapa": - device["MacCapa"] = [] - mac_capability = int(self.ListOfDevices[x][item], 16) - AltPAN = mac_capability & 0x00000001 - DeviceType = (mac_capability >> 1) & 1 - PowerSource = (mac_capability >> 2) & 1 - ReceiveonIdle = (mac_capability >> 3) & 1 - if DeviceType == 1: - device["MacCapa"].append("FFD") - else: - device["MacCapa"].append("RFD") - if ReceiveonIdle == 1: - device["MacCapa"].append("RxonIdle") - if PowerSource == 1: - device["MacCapa"].append("MainPower") - else: - device["MacCapa"].append("Battery") - self.logging( - "Debug", - "decoded MacCapa from: %s to %s" % (self.ListOfDevices[x][item], str(device["MacCapa"])), - ) - elif item == "Param": - device[item] = str(self.ListOfDevices[x][item]) + elif item == "Battery" and self.ListOfDevices[x]["Battery"] in ( {}, "") and "IASBattery" in self.ListOfDevices[x]: + device[item] = str(self.ListOfDevices[x][ "IASBattery" ]) + + elif item == "CheckParam": + device["CheckParam"] = True if self.ListOfDevices[x]["CheckParam"] else False + + elif item == "MacCapa": + device["MacCapa"] = [] + mac_capability = int(self.ListOfDevices[x][item], 16) + AltPAN = mac_capability & 0x00000001 + DeviceType = (mac_capability >> 1) & 1 + PowerSource = (mac_capability >> 2) & 1 + ReceiveonIdle = (mac_capability >> 3) & 1 + if DeviceType == 1: + device["MacCapa"].append("FFD") else: - if self.ListOfDevices[x][item] == {}: - device[item] = "" - else: - device[item] = self.ListOfDevices[x][item] + device["MacCapa"].append("RFD") + if ReceiveonIdle == 1: + device["MacCapa"].append("RxonIdle") + if PowerSource == 1: + device["MacCapa"].append("MainPower") + else: + device["MacCapa"].append("Battery") + self.logging( "Debug", "decoded MacCapa from: %s to %s" % ( + self.ListOfDevices[x][item], str(device["MacCapa"])), ) + elif item == "Param": - # Seems unknown, so let's create it - device[item] = str({}) + device[item] = str(self.ListOfDevices[x][item]) + else: - device[item] = "" + if self.ListOfDevices[x][item] == {}: + device[item] = "" + else: + device[item] = self.ListOfDevices[x][item] + device["WidgetList"] = [] for ep in self.ListOfDevices[x]["Ep"]: @@ -1033,6 +1040,8 @@ def rest_zDevice(self, verb, data, parameters): "App Version", "Stack Version", "HW Version", + "Param", + "CheckParam" ): if attribut == "Battery" and attribut in self.ListOfDevices[item]: if self.ListOfDevices[item]["Battery"] in ( {}, ) and "IASBattery" in self.ListOfDevices[item]: @@ -1040,6 +1049,12 @@ def rest_zDevice(self, verb, data, parameters): elif isinstance( self.ListOfDevices[item]["Battery"], int): device[attribut] = self.ListOfDevices[item]["Battery"] device["BatteryInside"] = True + + elif item == "CheckParam": + device[attribut] = True if "CheckParam" in self.ListOfDevices[item] and self.ListOfDevices[item]["CheckParam"] else False + + elif item == "Param": + device[attribut] = str(self.ListOfDevices[item][attribut]) elif attribut in self.ListOfDevices[item]: if self.ListOfDevices[item][attribut] == {}: From 99c75150851ef3016e1ae4deaf4b7c73953e83c5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 16:49:46 +0100 Subject: [PATCH 115/301] codefactor fixes --- Modules/domoMaj.py | 3 +-- Modules/domoticzAbstractLayer.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index e8f5350b5..f858e4402 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -1674,6 +1674,5 @@ def _retreive_summation_power(self, NwkId, Ep): if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0000" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: value_0000 = self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0000"] if value_0000 not in ({}, "", "0"): - return int(float(value_0000)) - + return int(float(value_0000)) return None diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index c1b28336e..56daa2a19 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -705,7 +705,7 @@ def update_battery_api(self, Devices, DeviceId, battery_level): self.log.logging("AbstractDz", "Debug", f"update_battery_api: {DeviceId} to {battery_level}") if DOMOTICZ_EXTENDED_API: - if DeviceId in Devices: + if DeviceId in Devices: units = Devices[DeviceId].Units for unit in units: update_battery_device_unit_api(self, Devices, DeviceId, unit,battery_level) From 0dceaeea40df61c252cb2132b66d69c8d335ac3c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 18:29:42 +0100 Subject: [PATCH 116/301] Move zigpy persistent settings visible in the Experimental settings section --- Classes/PluginConf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 94d26d3a4..c86281ed8 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -374,8 +374,8 @@ "expJsonDatabase": {"type": "bool","default": 1,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, "TryFindingIeeeOfUnknownNwkid": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, "useDomoticzDatabase": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": False,"Advanced": True,}, - "enableZigpyPersistentInFile": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, - "enableZigpyPersistentInMemory": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, + "enableZigpyPersistentInFile": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, + "enableZigpyPersistentInMemory": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, }, }, "Reserved": { From cae9373fe4246d3c218159fd187fc755d1e73bae Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 18:30:27 +0100 Subject: [PATCH 117/301] refactor the read_attributes function --- Modules/heartbeat.py | 138 +++++++++++++++++++------------------------ 1 file changed, 62 insertions(+), 76 deletions(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 4bfe98d2a..9b6bfaa87 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -80,6 +80,7 @@ PING_DEVICE_VIA_GROUPID = 3567 // HEARTBEAT # Secondes ( 59minutes et 45 secondes ) FIRST_PING_VIA_GROUP = 127 // HEARTBEAT + def attributeDiscovery(self, NwkId): rescheduleAction = False @@ -599,12 +600,7 @@ def processKnownDevices(self, Devices, NWKID): # If device flag as Not Reachable, don't do anything if not health: - self.log.logging( - "Heartbeat", - "Debug", - "processKnownDevices - %s stop here due to Health %s" % (NWKID, self.ListOfDevices[NWKID]["Health"]), - NWKID, - ) + self.log.logging( "Heartbeat", "Debug", "processKnownDevices - %s stop here due to Health %s" % (NWKID, self.ListOfDevices[NWKID]["Health"]), NWKID, ) return # If we reach this step, the device health is Live @@ -612,10 +608,12 @@ def processKnownDevices(self, Devices, NWKID): self.log.logging("Heartbeat", "Log", f"Device {NWKID} '{get_device_nickname(self, NwkId=NWKID)}' recover from Non Reachable", NWKID) del self.ListOfDevices[NWKID]["pingDeviceRetry"] - model = self.ListOfDevices[NWKID]["Model"] if "Model" in self.ListOfDevices[NWKID] else "" - enabledEndDevicePolling = bool(model in self.DeviceConf and "PollingEnabled" in self.DeviceConf[model] and self.DeviceConf[model]["PollingEnabled"]) + model = self.ListOfDevices[NWKID].get("Model", "") + + enabledEndDevicePolling = bool(self.DeviceConf.get(model, {}).get("PollingEnabled", False)) - if "CheckParam" in self.ListOfDevices[NWKID] and self.ListOfDevices[NWKID]["CheckParam"] and intHB > (60 // HEARTBEAT): + check_param = self.ListOfDevices.get(NWKID, {}).get("CheckParam", False) + if check_param and self.HeartbeatCount > QUIET_AFTER_START and self.ControllerLink.loadTransmit() < 5: sanity_check_of_param(self, NWKID) self.ListOfDevices[NWKID]["CheckParam"] = False @@ -662,75 +660,14 @@ def processKnownDevices(self, Devices, NWKID): and time.time() <= ( self.ListOfDevices[ NWKID ]["PairingTime"] + ( self.ControllerLink.loadTransmit() // 5 ) + 15 ) ): # In case we have just finished the pairing give 3 minutes to finish. - self.log.logging( - "Heartbeat", - "Debug", - "processKnownDevices - %s delay the next ReadAttribute to closed to the pairing %s" % (NWKID, self.ListOfDevices[ NWKID ]["PairingTime"],), - NWKID, - ) + self.log.logging( "Heartbeat", "Debug", "processKnownDevices - %s delay the next ReadAttribute to closed to the pairing %s" % ( + NWKID, self.ListOfDevices[ NWKID ]["PairingTime"],), NWKID, ) return if _doReadAttribute: - self.log.logging( - "Heartbeat", - "Log", - "processKnownDevices - %s intHB: %s _mainPowered: %s doReadAttr: %s" % (NWKID, intHB, _mainPowered, _doReadAttribute), - NWKID, - ) - - - # Read Attributes if enabled - now = int(time.time()) # Will be used to trigger ReadAttributes - for tmpEp in self.ListOfDevices[NWKID]["Ep"]: - if tmpEp == "ClusterType": - continue - - for Cluster in READ_ATTRIBUTES_REQUEST: - if Cluster in ("Type", "ClusterType", "ColorMode"): - continue - if Cluster not in self.ListOfDevices[NWKID]["Ep"][tmpEp]: - continue - - if "Model" in self.ListOfDevices[NWKID]: - if ( - self.ListOfDevices[NWKID]["Model"] == "lumi.ctrl_neutral1" and tmpEp != "02" - ): # All Eps other than '02' are blacklisted - continue - if self.ListOfDevices[NWKID]["Model"] == "lumi.ctrl_neutral2" and tmpEp not in ("02", "03"): - continue - - if self.busy or self.ControllerLink.loadTransmit() > MAX_LOAD_ZIGATE: - self.log.logging( - "Heartbeat", - "Debug", - "-- - %s skip ReadAttribute for now ... system too busy (%s/%s)" - % (NWKID, self.busy, self.ControllerLink.loadTransmit()), - NWKID, - ) - rescheduleAction = True - continue # Do not break, so we can keep all clusters on the same states - - func = READ_ATTRIBUTES_REQUEST[Cluster][0] - # For now it is a hack, but later we might put all parameters - if READ_ATTRIBUTES_REQUEST[Cluster][1] in self.pluginconf.pluginConf: - timing = self.pluginconf.pluginConf[READ_ATTRIBUTES_REQUEST[Cluster][1]] - else: - self.log.logging( "Heartbeat", "Error", "processKnownDevices - missing timing attribute for Cluster: %s - %s" % ( - Cluster, READ_ATTRIBUTES_REQUEST[Cluster][1]) ) - continue - - # Let's check the timing - if not is_time_to_perform_work(self, "ReadAttributes", NWKID, tmpEp, Cluster, now, timing): - continue - - self.log.logging( - "Heartbeat", - "Debug", - "-- - %s/%s and time to request ReadAttribute for %s" % (NWKID, tmpEp, Cluster), - NWKID, - ) - - func(self, NWKID) + self.log.logging( "Heartbeat", "Log", "processKnownDevices - %s intHB: %s _mainPowered: %s doReadAttr: %s" % ( + NWKID, intHB, _mainPowered, _doReadAttribute), NWKID, ) + rescheduleAction = rescheduleAction or process_read_attributes(self, NWKID, model) # Call Schneider Reenforcement if needed if self.pluginconf.pluginConf["reenforcementWiser"] and (self.HeartbeatCount % self.pluginconf.pluginConf["reenforcementWiser"]) == 0: @@ -770,12 +707,61 @@ def processKnownDevices(self, Devices, NWKID): else: if "LastPollingManufSpecificDevices" in self.ListOfDevices[ NWKID ]: del self.ListOfDevices[ NWKID ][ "LastPollingManufSpecificDevices"] + if "LastCustomPolling" in self.ListOfDevices[ NWKID ]: del self.ListOfDevices[ NWKID ][ "LastCustomPolling"] - return + +def process_read_attributes(self, Nwkid, model): + self.log.logging( "Heartbeat", "Log", f"process_read_attributes - for {Nwkid} {model}") + process_next_ep_later = False + now = int(time.time()) # Will be used to trigger ReadAttributes + + device_infos = self.ListOfDevices[Nwkid] + for ep in device_infos["Ep"]: + if ep == "ClusterType": + continue + + if model == "lumi.ctrl_neutral1" and ep != "02" : # All Eps other than '02' are blacklisted + continue + + if model == "lumi.ctrl_neutral2" and ep not in ("02", "03"): + continue + + for Cluster in READ_ATTRIBUTES_REQUEST: + # We process ALL available clusters for a particular EndPoint + + if ( Cluster not in READ_ATTRIBUTES_REQUEST or Cluster not in device_infos["Ep"][ep] ): + continue + + if self.busy or self.ControllerLink.loadTransmit() > MAX_LOAD_ZIGATE: + self.log.logging( "Heartbeat", "Debug", "process_read_attributes - %s skip ReadAttribute for now ... system too busy (%s/%s)" % ( + Nwkid, self.busy, self.ControllerLink.loadTransmit()), Nwkid, ) + process_next_ep_later = True + + if READ_ATTRIBUTES_REQUEST[Cluster][1] in self.pluginconf.pluginConf: + timing = self.pluginconf.pluginConf[READ_ATTRIBUTES_REQUEST[Cluster][1]] + else: + self.log.logging( "Heartbeat", "Error", "proprocess_read_attributescessKnownDevices - missing timing attribute for Cluster: %s - %s" % ( + Cluster, READ_ATTRIBUTES_REQUEST[Cluster][1]) ) + continue + + # Let's check the timing + if not is_time_to_perform_work(self, "ReadAttributes", Nwkid, ep, Cluster, now, timing): + continue + + self.log.logging( "Heartbeat", "Debug", "process_read_attributes - %s/%s and time to request ReadAttribute for %s" % ( + Nwkid, ep, Cluster), Nwkid, ) + + func = READ_ATTRIBUTES_REQUEST[Cluster][0] + func(self, Nwkid) + + if process_next_ep_later: + return True + return False + def check_configuration_reporting(self, NWKID, _mainPowered, intHB): self.log.logging( "ConfigureReporting", "Debug", "check_configuration_reporting for %s %s %s %s %s >%s<" %( From da99de90bf1ad432a5a423ae8744a5b83f768c17 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 18:30:52 +0100 Subject: [PATCH 118/301] fix error on ReadAttributeRequest_fc11 --- Modules/readAttributes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/readAttributes.py b/Modules/readAttributes.py index f923de269..8d8f30251 100644 --- a/Modules/readAttributes.py +++ b/Modules/readAttributes.py @@ -1667,7 +1667,7 @@ def ReadAttributeRequest_fc11(self, key): f"Request Legrand attributes info via Read Attribute request: {key} EPout = {ep_out}", nwkid=key, ) - ReadAttributeReq(self, key, ZIGATE_EP, ep_out, "fc11", list_attributes, ack_is_disabled=is_ack_tobe_disabled(self, key)) + ReadAttributeReq(self, key, ZIGATE_EP, ep_out, "fc11", list_attributes, ackIsDisabled=is_ack_tobe_disabled(self, key)) def ReadAttributeRequest_fc21(self, key): # Cluster PFX Profalux/ Manufacturer specific From c2add8f07ff912f6450535620a0c1f988fac1f64 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 18:33:33 +0100 Subject: [PATCH 119/301] enable zigpy.config.CONF_TOPO_SCAN_ENABLED if zigpy persistent Db enabled --- Classes/ZigpyTransport/zigpyThread.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 7f4b570a2..af48b8dca 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -205,6 +205,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, except Exception as e: self.log.logging( "TransportZigpy", "Error", "Error while starting radio %s on port: %s - Error: %s" %( radiomodule, serialPort, e) ) + return if self.pluginParameters["Mode3"] == "True": self.log.logging( "TransportZigpy", "Status", "Coordinator initialisation requested Channel %s(0x%02x) ExtendedPanId: 0x%016x" % ( @@ -214,7 +215,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, else: new_network = False - if self.use_of_zigpy_persistent_db: + if self.use_of_zigpy_persistent_db and self.app: self.log.logging( "TransportZigpy", "Status", "Use of zigpy Persistent Db") await self.app._load_db() @@ -226,11 +227,9 @@ def ezsp_configuration_setup(self, conf, serialPort): config = { conf.CONF_DEVICE: { "path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, - conf.CONF_EZSP_CONFIG: { - }, - zigpy.config.CONF_TOPO_SCAN_ENABLED: False, + conf.CONF_EZSP_CONFIG: {}, "handle_unknown_devices": True, - } + } if "BellowsNoMoreEndDeviceChildren" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["BellowsNoMoreEndDeviceChildren"]: self.log.logging("TransportZigpy", "Status", "Set The maximum number of end device children that Coordinater will support to 0") @@ -249,8 +248,7 @@ def znp_configuration_setup(self, conf, serialPort): conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, conf.CONF_ZNP_CONFIG: { }, - zigpy.config.CONF_TOPO_SCAN_ENABLED: False, - } + } if specific_endpoints(self): config[ conf.CONF_ZNP_CONFIG][ "prefer_endpoint_1" ] = False @@ -264,21 +262,29 @@ def deconz_configuration_setup(self, conf, serialPort): return { conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, conf.CONF_NWK: {}, - zigpy.config.CONF_TOPO_SCAN_ENABLED: False, # zigpy.config.CONF_STARTUP_ENERGY_SCAN: False } def optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel): + + # Enable or not Source Routing based on zigpySourceRouting setting config[zigpy.config.CONF_SOURCE_ROUTING] = bool( self.pluginconf.pluginConf["zigpySourceRouting"] ) + # Disable zigpy conf topo scan by default + config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = False + + # Config Zigpy db. if not defined, there is no persistent Db. if "enableZigpyPersistentInFile" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInFile"]: data_folder = Path( self.pluginconf.pluginConf["pluginData"] ) config[zigpy.config.CONF_DATABASE] = str(data_folder / ("zigpy_persistent_%02d.db"% self.hardwareid) ) + config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = True elif "enableZigpyPersistentInMemory" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInMemory"]: config[zigpy.config.CONF_DATABASE] = ":memory:" - + config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = True + + # Manage coordinator auto backup if "autoBackup" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoBackup"]: config[zigpy.config.CONF_NWK_BACKUP_ENABLED] = True config[zigpy.config.CONF_NWK_BACKUP_PERIOD] = self.pluginconf.pluginConf["autoBackup"] @@ -287,10 +293,11 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan if set_extendedPanId != 0: config[conf.CONF_NWK][conf.CONF_NWK_EXTENDED_PAN_ID] = "%s" % ( t.EUI64(t.uint64_t(set_extendedPanId).serialize()) ) - + if set_channel != 0: config[conf.CONF_NWK][conf.CONF_NWK_CHANNEL] = set_channel + # Do we do energy scan at startup. By default it is set to False. Plugin might override it in the case of low number of devices. if "EnergyScanAtStatup" in self.pluginconf.pluginConf and not self.pluginconf.pluginConf["EnergyScanAtStatup"]: config[zigpy.config.CONF_STARTUP_ENERGY_SCAN] = False From 463034274b246bbf32a766c43facd6aeff927b6f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 17 Mar 2024 18:34:09 +0100 Subject: [PATCH 120/301] Plugin wip-develop version 7.2.033 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index f655fcc82..a468a5419 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.032"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.033"} \ No newline at end of file From cad9588d9f812ffd1430868874388420c506bf3e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 18 Mar 2024 12:38:13 +0100 Subject: [PATCH 121/301] move some logs to debug, and when error provide _context --- Modules/heartbeat.py | 6 +++--- Modules/readAttributes.py | 26 +++++++++++++------------- Modules/readZclClusters.py | 14 +++++++++++++- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 9b6bfaa87..3d455bfc2 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -665,7 +665,7 @@ def processKnownDevices(self, Devices, NWKID): return if _doReadAttribute: - self.log.logging( "Heartbeat", "Log", "processKnownDevices - %s intHB: %s _mainPowered: %s doReadAttr: %s" % ( + self.log.logging( "Heartbeat", "Debug", "processKnownDevices - %s intHB: %s _mainPowered: %s doReadAttr: %s" % ( NWKID, intHB, _mainPowered, _doReadAttribute), NWKID, ) rescheduleAction = rescheduleAction or process_read_attributes(self, NWKID, model) @@ -715,7 +715,7 @@ def processKnownDevices(self, Devices, NWKID): def process_read_attributes(self, Nwkid, model): - self.log.logging( "Heartbeat", "Log", f"process_read_attributes - for {Nwkid} {model}") + self.log.logging( "Heartbeat", "Debug", f"process_read_attributes - for {Nwkid} {model}") process_next_ep_later = False now = int(time.time()) # Will be used to trigger ReadAttributes @@ -745,7 +745,7 @@ def process_read_attributes(self, Nwkid, model): timing = self.pluginconf.pluginConf[READ_ATTRIBUTES_REQUEST[Cluster][1]] else: self.log.logging( "Heartbeat", "Error", "proprocess_read_attributescessKnownDevices - missing timing attribute for Cluster: %s - %s" % ( - Cluster, READ_ATTRIBUTES_REQUEST[Cluster][1]) ) + Cluster, READ_ATTRIBUTES_REQUEST[Cluster][1]), Nwkid ) continue # Let's check the timing diff --git a/Modules/readAttributes.py b/Modules/readAttributes.py index 8d8f30251..7893a0086 100644 --- a/Modules/readAttributes.py +++ b/Modules/readAttributes.py @@ -356,27 +356,27 @@ def ReadAttributeRequest_0000(self, key, fullScope=True): def ReadAttributeRequest_0000_for_pairing(self, key): - self.log.logging("ReadAttributes", "Log", "--> Not full scope", nwkid=key) - self.log.logging("ReadAttributes", "Log", "--> Build list of Attributes", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "--> Not full scope", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "--> Build list of Attributes", nwkid=key) listAttributes = [] ListOfEp = getListOfEpForCluster(self, key, "0000") - self.log.logging("ReadAttributes", "Log", "--> ListOfEp with 0x0000: %s" %str(ListOfEp), nwkid=key) + self.log.logging("ReadAttributes", "Debug", "--> ListOfEp with 0x0000: %s" %str(ListOfEp), nwkid=key) if len(ListOfEp) == 0 and "Ep" in self.ListOfDevices[key]: for x in self.ListOfDevices[ key ]["Ep"]: ListOfEp.append( x ) - self.log.logging("ReadAttributes", "Log", "--> Build list Eps for Cluster Basic %s" %str(ListOfEp), nwkid=key) + self.log.logging("ReadAttributes", "Debug", "--> Build list Eps for Cluster Basic %s" %str(ListOfEp), nwkid=key) # Do we Have Manufacturer if ListOfEp and self.ListOfDevices[key]["Manufacturer Name"] in [ {}, ""]: - self.log.logging("ReadAttributes", "Log", "Request Basic Manufacturer via Read Attribute request: %s" % "0004", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "Request Basic Manufacturer via Read Attribute request: %s" % "0004", nwkid=key) if 0x0004 not in listAttributes: listAttributes.append(0x0004) # Do We have Model Name if ( ListOfEp and self.ListOfDevices[key]["Model"] in [ {}, ""] ): - self.log.logging("ReadAttributes", "Log", "Request Basic Model Name via Read Attribute request: %s" % "0005", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "Request Basic Model Name via Read Attribute request: %s" % "0005", nwkid=key) if 0x0005 not in listAttributes: listAttributes.append(0x0005) @@ -386,14 +386,14 @@ def ReadAttributeRequest_0000_for_pairing(self, key): listAttributes.append(0x0010) elif self.ListOfDevices[key]["Manufacturer"] == "Legrand": - self.log.logging("ReadAttributes", "Log", "----> Adding: %s" % "f000", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "----> Adding: %s" % "f000", nwkid=key) if 0x4000 not in listAttributes: listAttributes.append(0x4000) if 0xF000 not in listAttributes: listAttributes.append(0xF000) elif self.ListOfDevices[key]['IEEE'][:PREFIX_MAC_LEN] in PREFIX_MACADDR_TUYA: - self.log.logging("ReadAttributes", "Log", "----> Tuya Hardware: %s" % "fffe", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "----> Tuya Hardware: %s" % "fffe", nwkid=key) listAttributes = [ 0x0004, 0x0000, 0x0001, 0x0005, 0x0007, 0xfffe] listAttributes = add_attributes_from_device_certified_conf(self, key, "0000", listAttributes) @@ -402,18 +402,18 @@ def ReadAttributeRequest_0000_for_pairing(self, key): ieee = self.ListOfDevices[ key ]['IEEE'] if len(ListOfEp) == 0: # We don't have yet any Endpoint information , we will then try several known Endpoint, and luckly we will get some answers - self.log.logging( "ReadAttributes", "Log", "Request Basic via Read Attribute request: " + key + " EPout = " + "01, 02, 03, 06, 09, 0b", nwkid=key, ) + self.log.logging( "ReadAttributes", "Debug", "Request Basic via Read Attribute request: " + key + " EPout = " + "01, 02, 03, 06, 09, 0b", nwkid=key, ) if ( ieee[: PREFIX_MAC_LEN] in PREFIX_MACADDR_XIAOMI or ieee[: PREFIX_MAC_LEN] in PREFIX_MACADDR_OPPLE): - self.log.logging( "ReadAttributes", "Log", "Request Basic Opple : " + key + " EPout = " + "01, 02, 03, 06, 09, 0b", nwkid=key, ) + self.log.logging( "ReadAttributes", "Debug", "Request Basic Opple : " + key + " EPout = " + "01, 02, 03, 06, 09, 0b", nwkid=key, ) ReadAttributeReq(self, key, ZIGATE_EP, "01", "0000", listAttributes, ackIsDisabled=False, checkTime=False) elif ( ieee[: len(DEVELCO_PREFIX)] in DEVELCO_PREFIX): - self.log.logging( "ReadAttributes", "Log", "Request Basic Develco : " + key + " EPout = " + "01, 02, 03, 06, 09, 0b", nwkid=key, ) + self.log.logging( "ReadAttributes", "Debug", "Request Basic Develco : " + key + " EPout = " + "01, 02, 03, 06, 09, 0b", nwkid=key, ) ReadAttributeReq(self, key, ZIGATE_EP, "02", "0000", listAttributes, ackIsDisabled=False, checkTime=False) elif ieee[:PREFIX_MAC_LEN] in PREFIX_MACADDR_TUYA: - self.log.logging( "ReadAttributes", "Log", "Request Basic Tuya : " + key + " EPout = " + "01", nwkid=key, ) + self.log.logging( "ReadAttributes", "Debug", "Request Basic Tuya : " + key + " EPout = " + "01", nwkid=key, ) ReadAttributeReq(self, key, ZIGATE_EP, "01", "0000", listAttributes, ackIsDisabled=False, checkTime=False) ReadAttributeReq(self, key, ZIGATE_EP, "01", "0000", listAttributes, ackIsDisabled=False, checkTime=False) @@ -494,7 +494,7 @@ def ReadAttributeRequest_0000_for_general(self, key): manufacturer_code = "0000" if self.ListOfDevices[key]['IEEE'][:PREFIX_MAC_LEN] in PREFIX_MACADDR_TUYA: - self.log.logging("ReadAttributes", "Log", "----> Tuya Hardware: %s" % "fffe", nwkid=key) + self.log.logging("ReadAttributes", "Debug", "----> Tuya Hardware: %s" % "fffe", nwkid=key) listAttributes = [ 0x0004, 0x0000, 0x0001, 0x0005, 0x0007, 0xfffe] elif ( diff --git a/Modules/readZclClusters.py b/Modules/readZclClusters.py index 1c1a667e8..2c46a349f 100644 --- a/Modules/readZclClusters.py +++ b/Modules/readZclClusters.py @@ -91,8 +91,20 @@ def process_cluster_attribute_response( self, Devices, MsgSQN, MsgSrcAddr, MsgSr if _ranges is not None: checking_ranges = _check_range( self, value, MsgAttType, _ranges, ) if checking_ranges is not None and not checking_ranges: + _context = { + "Source": str(Source), + "Model": str(device_model), + "MsgClusterId": str(MsgClusterId), + "MsgSrcEp": str(MsgSrcEp), + "MsgAttrID": str(MsgAttrID), + "MsgAttType": str(MsgAttType), + "MsgAttSize": str(MsgAttSize), + "MsgClusterData": str(MsgClusterData), + "checking_ranges": str(checking_ranges), + "ranges": str(_ranges), + } self.log.logging("ZclClusters", "Error", " %s/%s %s %s . value out of ranges : %s -> %s" %( - MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, value, str(_ranges) )) + MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, value, str(_ranges) ),nwkid=MsgSrcAddr, context=_context ) _eval_inputs = cluster_attribute_retrieval( self, MsgSrcEp, MsgClusterId, MsgAttrID, "EvalExpCustomVariables", model=device_model) _function = cluster_attribute_retrieval( self, MsgSrcEp, MsgClusterId, MsgAttrID, "EvalFunc", model=device_model) From 05a592a21e93fd06f07919ab4bb60bead2703dfa Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 18 Mar 2024 20:38:42 +0100 Subject: [PATCH 122/301] =?UTF-8?q?=C3=B9make=20sure=20to=20use=20nValue?= =?UTF-8?q?=20and=20sValue=20when=20calling=20.Update()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/domoticzAbstractLayer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 56daa2a19..bfe5a1407 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -467,7 +467,7 @@ def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): nValue = Devices[Unit_].nValue sValue = Devices[Unit_].sValue - Devices[Unit_].Update(nValue, sValue, Name=Name_) + Devices[Unit_].Update(nValue=nValue, sValue=sValue, Name=Name_) def domo_update_witchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): @@ -486,7 +486,7 @@ def domo_update_witchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, nValue = Devices[Unit_].nValue sValue = Devices[Unit_].sValue - Devices[Unit_].Update(nValue, sValue, Type=Type_, SubType=Subtype_, SwitchType=Switchtype_) + Devices[Unit_].Update(nValue=nValue, sValue=sValue, Type=Type_, SubType=Subtype_, SwitchType=Switchtype_) def domo_browse_widgets(self, Devices): From 319220c8a91a91b663084e9a21cc7032a697e1fe Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 18 Mar 2024 22:05:26 +0100 Subject: [PATCH 123/301] WebUi based on Angular 17, and info on the update or not of the device parameters --- www/z4d/12.7c65ce0f2e107a01.js | 1 + www/z4d/165.9a741377e6b4d9fd.js | 1 - www/z4d/192.38a6743354cc7f80.js | 1 - www/z4d/317.95ec4836cce099fe.js | 1 + www/z4d/3rdpartylicenses.txt | 979 +++++------------- www/z4d/506.7929b1bd86ff980c.js | 1 - www/z4d/508.fa5a169d0b5d66b9.js | 1 - www/z4d/521.4a2e700ea1ed6d2d.js | 1 + www/z4d/577.291f6dcdf5a2bbd5.js | 1 + www/z4d/580.471384bb1b9a988c.js | 1 - www/z4d/644.e5bbcc7e1d18b79d.js | 1 + www/z4d/829.982ce78bd826f057.js | 1 - www/z4d/837.657d2f41ff2a0f41.js | 1 + www/z4d/846.b75ced3ca2bc41c3.js | 1 + www/z4d/908.08c26a5f1272a6a5.js | 1 + www/z4d/922.81d21780f2a4312a.js | 1 - www/z4d/977.1a68b94d282d26ca.js | 1 - .../Inter-italic.var.958a0b9742fb3ae8.woff2 | Bin 0 -> 245036 bytes .../Inter-roman.var.b2129c009ce46d43.woff2 | Bin 0 -> 227180 bytes www/z4d/common.481b903deeb9dee7.js | 1 + www/z4d/common.e1b00f88e623886f.js | 1 - www/z4d/fa-brands-400.0ad87b221b2a302b.woff2 | Bin 107656 -> 0 bytes www/z4d/fa-brands-400.8bf6ccf0176a7567.ttf | Bin 0 -> 207972 bytes www/z4d/fa-brands-400.aaa8e2177da4fbb8.ttf | Bin 186124 -> 0 bytes www/z4d/fa-brands-400.e465758e13df1d72.woff2 | Bin 0 -> 117372 bytes www/z4d/fa-regular-400.0c4a336f909e1eaa.woff2 | Bin 25236 -> 0 bytes www/z4d/fa-regular-400.a937b755f79cb30d.ttf | Bin 0 -> 68004 bytes www/z4d/fa-regular-400.f386b6b7c6bf65a5.woff2 | Bin 0 -> 25452 bytes www/z4d/fa-regular-400.f7cc78e99baa2bf5.ttf | Bin 62320 -> 0 bytes www/z4d/fa-solid-900.081655f2111aa667.ttf | Bin 0 -> 419720 bytes www/z4d/fa-solid-900.43a87668a828405a.ttf | Bin 397420 -> 0 bytes www/z4d/fa-solid-900.71ed02b437225dbb.woff2 | Bin 150516 -> 0 bytes www/z4d/fa-solid-900.ce4938a30389d90a.woff2 | Bin 0 -> 156496 bytes www/z4d/index.html | 11 +- www/z4d/main.7de301e6ee08d349.js | 1 - www/z4d/main.ed02e8e4f42d3a49.js | 1 + www/z4d/polyfills.43d8bf88a73d5232.js | 1 + www/z4d/polyfills.c10a787808c97975.js | 1 - www/z4d/runtime.48f94f53b806b2fe.js | 1 + www/z4d/runtime.ae9075e96359e873.js | 1 - www/z4d/styles.00f90ba6d3590bca.css | 13 + www/z4d/styles.6d3ee1d65bd93be8.css | 18 - 42 files changed, 273 insertions(+), 772 deletions(-) create mode 100644 www/z4d/12.7c65ce0f2e107a01.js delete mode 100644 www/z4d/165.9a741377e6b4d9fd.js delete mode 100644 www/z4d/192.38a6743354cc7f80.js create mode 100644 www/z4d/317.95ec4836cce099fe.js delete mode 100644 www/z4d/506.7929b1bd86ff980c.js delete mode 100644 www/z4d/508.fa5a169d0b5d66b9.js create mode 100644 www/z4d/521.4a2e700ea1ed6d2d.js create mode 100644 www/z4d/577.291f6dcdf5a2bbd5.js delete mode 100644 www/z4d/580.471384bb1b9a988c.js create mode 100644 www/z4d/644.e5bbcc7e1d18b79d.js delete mode 100644 www/z4d/829.982ce78bd826f057.js create mode 100644 www/z4d/837.657d2f41ff2a0f41.js create mode 100644 www/z4d/846.b75ced3ca2bc41c3.js create mode 100644 www/z4d/908.08c26a5f1272a6a5.js delete mode 100644 www/z4d/922.81d21780f2a4312a.js delete mode 100644 www/z4d/977.1a68b94d282d26ca.js create mode 100644 www/z4d/Inter-italic.var.958a0b9742fb3ae8.woff2 create mode 100644 www/z4d/Inter-roman.var.b2129c009ce46d43.woff2 create mode 100644 www/z4d/common.481b903deeb9dee7.js delete mode 100644 www/z4d/common.e1b00f88e623886f.js delete mode 100644 www/z4d/fa-brands-400.0ad87b221b2a302b.woff2 create mode 100644 www/z4d/fa-brands-400.8bf6ccf0176a7567.ttf delete mode 100644 www/z4d/fa-brands-400.aaa8e2177da4fbb8.ttf create mode 100644 www/z4d/fa-brands-400.e465758e13df1d72.woff2 delete mode 100644 www/z4d/fa-regular-400.0c4a336f909e1eaa.woff2 create mode 100644 www/z4d/fa-regular-400.a937b755f79cb30d.ttf create mode 100644 www/z4d/fa-regular-400.f386b6b7c6bf65a5.woff2 delete mode 100644 www/z4d/fa-regular-400.f7cc78e99baa2bf5.ttf create mode 100644 www/z4d/fa-solid-900.081655f2111aa667.ttf delete mode 100644 www/z4d/fa-solid-900.43a87668a828405a.ttf delete mode 100644 www/z4d/fa-solid-900.71ed02b437225dbb.woff2 create mode 100644 www/z4d/fa-solid-900.ce4938a30389d90a.woff2 delete mode 100644 www/z4d/main.7de301e6ee08d349.js create mode 100644 www/z4d/main.ed02e8e4f42d3a49.js create mode 100644 www/z4d/polyfills.43d8bf88a73d5232.js delete mode 100644 www/z4d/polyfills.c10a787808c97975.js create mode 100644 www/z4d/runtime.48f94f53b806b2fe.js delete mode 100644 www/z4d/runtime.ae9075e96359e873.js create mode 100644 www/z4d/styles.00f90ba6d3590bca.css delete mode 100644 www/z4d/styles.6d3ee1d65bd93be8.css diff --git a/www/z4d/12.7c65ce0f2e107a01.js b/www/z4d/12.7c65ce0f2e107a01.js new file mode 100644 index 000000000..8d355adbc --- /dev/null +++ b/www/z4d/12.7c65ce0f2e107a01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&n&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"device.byname.placeholder")))}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function $(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function S(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,$,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,S,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.title")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.text"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,3,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/165.9a741377e6b4d9fd.js b/www/z4d/165.9a741377e6b4d9fd.js deleted file mode 100644 index 946577355..000000000 --- a/www/z4d/165.9a741377e6b4d9fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[165],{25165:(be,A,l)=>{l.r(A),l.d(A,{AdminModule:()=>ve});var J=l(44466),h=l(96749),d=l(88648),f=l(22995),e=l(94650),g=l(36895),p=l(97185),m=l(5830),c=l(54463);new d.Yd("PermitToJoinComponent");let x=(()=>{class n{constructor(t,i,s){this.toastr=t,this.apiService=i,this.translate=s}ngOnInit(){this.apiService.getPermitToJoin().subscribe(t=>{this.permitToJoin=t})}updatePermitToJoin(t){this.permitToJoin.PermitToJoin=t,this.apiService.putPermitToJoin(this.permitToJoin).subscribe(i=>{switch(t){case 240:this.toastr.success(this.translate.instant("admin.permittojoin.4min.notify"));break;case 0:this.toastr.success(this.translate.instant("admin.permittojoin.stop.notify"));break;default:this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))}})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-permit-to-join"]],decls:18,vars:4,consts:[[1,"card"],["translate","admin.permittojoin.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.permittojoin.stop.button",1,"btn","btn-secondary",3,"disabled","click"],["translate","admin.permittojoin.4min.button",1,"ms-2","btn","btn-success",3,"click"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e.TgZ(12,"button",5),e.NdJ("click",function(){return i.updatePermitToJoin(0)}),e.qZA(),e._uU(13,"\n "),e.TgZ(14,"button",6),e.NdJ("click",function(){return i.updatePermitToJoin(240)}),e.qZA(),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n"),e.qZA(),e._uU(17,"\n")),2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,2,"admin.permittojoin.subtitle"),e.oJD),e.xp6(6),e.Q6J("disabled",0===(null==i.permitToJoin?null:i.permitToJoin.PermitToJoin)))},dependencies:[c.Pi,c.X$]}),n})();var r=l(24006),y=l(4128),_=l(91835);function N(n,o){if(1&n&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&n){const t=o.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t._NwkId,"")}}new d.Yd("PermitToJoinRouterComponent");let S=(()=>{class n extends f.n{constructor(t,i,s,a){super(),this.toastr=t,this.formBuilder=i,this.apiService=s,this.translate=a}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,r.kI.required]}),this.subs.sink=(0,y.D)([this.apiService.getPermitToJoin(),this.apiService.getZDevices(!0)]).subscribe(([t,i])=>{this.permitToJoin=t,this.routers=i.filter(s=>"Router"===s.LogicalType||"Coordinator"===s.LogicalType)})}updatePermitToJoin(t){this.permitToJoin.PermitToJoin=t,this.permitToJoin.Router=this.form.get("deviceSelected").value._NwkId,this.apiService.putPermitToJoin(this.permitToJoin).subscribe(i=>{switch(t){case 240:this.toastr.success(this.translate.instant("admin.permittojoin.4min.notify"));break;case 0:this.toastr.success(this.translate.instant("admin.permittojoin.stop.notify"));break;default:this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))}})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(r.qu),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-permit-to-join-router"]],features:[e.qOj],decls:36,vars:13,consts:[[3,"formGroup"],[1,"card"],["translate","admin.permittojoinrouter.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm"],["bindLabel","ZDeviceName","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.permittojoin.4min.button",1,"btn","btn-success",3,"disabled","click"],["translate","admin.permittojoin.stop.button",1,"ms-2","btn","btn-secondary",3,"disabled","click"]],template:function(t,i){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"ng-select",8),e.ALo(18,"translate"),e._uU(19,"\n "),e.YNc(20,N,10,2,"ng-template",9),e._uU(21,"\n "),e.qZA(),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.TgZ(27,"div",10),e._uU(28,"\n "),e.TgZ(29,"button",11),e.NdJ("click",function(){return i.updatePermitToJoin(240)}),e.qZA(),e._uU(30,"\n "),e.TgZ(31,"button",12),e.NdJ("click",function(){return i.updatePermitToJoin(0)}),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n "),e.qZA(),e._uU(34,"\n"),e.qZA(),e._uU(35,"\n")),2&t&&(e.Q6J("formGroup",i.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,9,"admin.permittojoinrouter.subtitle"),e.oJD),e.xp6(9),e.s9C("placeholder",e.lcZ(18,11,"tools.debugcommand.device")),e.Q6J("items",i.routers)("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(12),e.Q6J("disabled",!i.form.valid),e.xp6(2),e.Q6J("disabled",0===(null==i.permitToJoin?null:i.permitToJoin.PermitToJoin)))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,_.w9,_.ir,c.Pi,c.X$]}),n})();new d.Yd("SwResetComponent");let k=(()=>{class n{constructor(t,i,s){this.toastr=t,this.apiService=i,this.translate=s}ngOnInit(){}swReset(t){this.apiService.getSwReset().subscribe(()=>{this.toastr.success(this.translate.instant("admin.coordinator.swreset.notify"))})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-sw-reset"]],decls:16,vars:3,consts:[[1,"card"],["translate","admin.coordinator.swreset.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.coordinator.swreset.button",1,"btn","btn-primary",3,"click"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e.TgZ(12,"button",5),e.NdJ("click",function(a){return i.swReset(a)}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n"),e.qZA(),e._uU(15,"\n")),2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,1,"admin.coordinator.swreset.subtitle"),e.oJD))},dependencies:[c.Pi,c.X$]}),n})();var v=l(19513),b=l(75958);function L(n,o){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",7),e._uU(2,"\n "),e._UZ(3,"h4",8),e._uU(4,"\n "),e.TgZ(5,"button",9),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("Cross click"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e._UZ(8,"div",10),e._uU(9,"\n "),e.TgZ(10,"div",11),e._uU(11,"\n "),e.TgZ(12,"button",12),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("erase"))}),e.qZA(),e._uU(13,"\n "),e.TgZ(14,"button",13),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("cancel"))}),e.qZA(),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n")}}new d.Yd("ReloadPluginComponent");let P=(()=>{class n{constructor(t,i,s,a,u){this.headerService=t,this.modalService=i,this.toastr=s,this.apiService=a,this.translate=u}ngOnInit(){}reloadPlugin(){this.apiService.getReloadPlugin().subscribe(t=>{this.toastr.success(this.translate.instant("admin.plugin.reload.notify")),this.headerService.setRestart(!1)})}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(i=>{this.reloadPlugin()},i=>{})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(v.r),e.Y36(b.FF),e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-reload-plugin"]],decls:19,vars:3,consts:[[1,"card"],["translate","admin.plugin.reload.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.plugin.reload.button",1,"btn","btn-primary","mt-3",3,"click"],["content",""],[1,"modal-header"],["id","modal-basic-title","translate","admin.plugin.reload.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","admin.plugin.reload.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","admin.plugin.reload.alert.erase",1,"btn","btn-primary",3,"click"],["type","button","translate","admin.plugin.reload.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(t,i){if(1&t){const s=e.EpF();e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e.TgZ(12,"button",5),e.NdJ("click",function(){e.CHM(s);const u=e.MAs(17);return e.KtG(i.open(u))}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n"),e.qZA(),e._uU(15,"\n\n"),e.YNc(16,L,17,0,"ng-template",null,6,e.W1O),e._uU(18,"\n")}2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,1,"admin.plugin.reload.subtitle"),e.oJD))},dependencies:[c.Pi,c.X$]}),n})();new d.Yd("ReloadPluginComponent");let Y=(()=>{class n{constructor(t,i,s,a){this.toastr=t,this.apiService=i,this.translate=s,this.headerService=a}ngOnInit(){}rescanGroup(){this.apiService.getRescanGroup().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify")),this.apiService.getRestartNeeded().subscribe(t=>{1===t.RestartNeeded&&this.headerService.setRestart(!0)})})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK),e.Y36(v.r))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-rescan-group"]],decls:16,vars:3,consts:[[1,"card"],["translate","admin.rescan.group.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.rescan.group.button",1,"btn","btn-primary",3,"click"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e.TgZ(12,"button",5),e.NdJ("click",function(){return i.rescanGroup()}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n"),e.qZA(),e._uU(15,"\n")),2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,1,"admin.rescan.group.subtitle"),e.oJD))},dependencies:[c.Pi,c.X$]}),n})();var F=l(5963),C=l(24351),T=l(54004),U=l(68423);function I(n,o){if(1&n&&(e.TgZ(0,"span",23),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"b"),e._uU(4),e.qZA(),e._uU(5,"\n "),e.qZA()),2&n){const t=o.$implicit;e.xp6(1),e.hij("\n - ",e.lcZ(2,3,"admin.assistprovisionning.alert.cluster"),"\xa0"),e.xp6(3),e.AsE("",t.ClusterId," (",t.ClusterDesc,")")}}function R(n,o){if(1&n&&(e.TgZ(0,"div"),e._uU(1),e.ALo(2,"translate"),e.TgZ(3,"b"),e._uU(4),e.qZA(),e._uU(5,"\n "),e.YNc(6,I,6,5,"span",22),e._uU(7,"\n "),e.qZA()),2&n){const t=o.$implicit;e.xp6(1),e.hij("\n ",e.lcZ(2,3,"admin.assistprovisionning.alert.ep"),"\xa0"),e.xp6(3),e.Oqu(t.Ep),e.xp6(2),e.Q6J("ngForOf",t.Clusters)}}function O(n,o){if(1&n&&(e.TgZ(0,"div",17),e._uU(1,"\n "),e.TgZ(2,"fieldset",18),e._uU(3,"\n "),e.TgZ(4,"div",19),e._uU(5,"\n "),e.TgZ(6,"div",20),e._uU(7),e.ALo(8,"translate"),e.TgZ(9,"b"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e._uU(12,"\n "),e.qZA(),e._uU(13,"\n "),e.TgZ(14,"div",20),e._uU(15),e.ALo(16,"translate"),e.TgZ(17,"b"),e._uU(18),e.qZA(),e._uU(19,"\n "),e.qZA(),e._uU(20,"\n "),e.TgZ(21,"div",20),e._uU(22),e.ALo(23,"translate"),e.TgZ(24,"b"),e._uU(25),e.qZA(),e._uU(26,"\n "),e.qZA(),e._uU(27,"\n "),e.TgZ(28,"div",20),e._uU(29),e.ALo(30,"translate"),e.TgZ(31,"b"),e._uU(32),e.qZA(),e._uU(33,"\n "),e.qZA(),e._uU(34,"\n "),e.TgZ(35,"div",20),e._uU(36),e.ALo(37,"translate"),e.TgZ(38,"b"),e._uU(39),e.qZA(),e._uU(40,"\n "),e.qZA(),e._uU(41,"\n "),e.TgZ(42,"div",20),e._uU(43),e.ALo(44,"translate"),e.TgZ(45,"b"),e._uU(46),e.qZA(),e._uU(47,"\n "),e.qZA(),e._uU(48,"\n "),e.TgZ(49,"div",20),e._uU(50),e.ALo(51,"translate"),e.TgZ(52,"b"),e._uU(53),e.qZA(),e._uU(54,"\n "),e.qZA(),e._uU(55,"\n "),e.TgZ(56,"div",20),e._uU(57,"\n "),e.YNc(58,R,8,5,"div",21),e._uU(59,"\n "),e.qZA(),e._uU(60,"\n "),e.TgZ(61,"div",20),e._uU(62),e.ALo(63,"translate"),e.TgZ(64,"b"),e._uU(65),e.qZA(),e._uU(66,"\n "),e.qZA(),e._uU(67,"\n "),e.qZA(),e._uU(68,"\n "),e.qZA(),e._uU(69,"\n "),e.qZA()),2&n){const t=o.$implicit;e.xp6(7),e.hij("\n ",e.lcZ(8,20,"admin.assistprovisionning.alert.state"),"\xa0"),e.xp6(3),e.AsE("",t.ProvisionStatus," (",e.lcZ(11,22,"admin.assistprovisionning.alert."+t.ProvisionStatus),")"),e.xp6(5),e.hij("\n ",e.lcZ(16,24,"admin.assistprovisionning.alert.nwkid"),"\xa0"),e.xp6(3),e.Oqu(t.NwkId),e.xp6(4),e.hij("\n ",e.lcZ(23,26,"admin.assistprovisionning.alert.ieee"),"\xa0"),e.xp6(3),e.Oqu(t.IEEE),e.xp6(4),e.hij("\n ",e.lcZ(30,28,"admin.assistprovisionning.alert.profile"),"\xa0"),e.xp6(3),e.AsE("",t.ProfileId," (",t.ProfileIdDesc,")"),e.xp6(4),e.hij("\n ",e.lcZ(37,30,"admin.assistprovisionning.alert.device"),"\xa0"),e.xp6(3),e.AsE("",t.ZDeviceID," (",t.ZDeviceIDDesc,")"),e.xp6(4),e.hij("\n ",e.lcZ(44,32,"admin.assistprovisionning.alert.model"),"\xa0"),e.xp6(3),e.Oqu(t.Model),e.xp6(4),e.hij("\n ",e.lcZ(51,34,"admin.assistprovisionning.alert.plugincertified"),"\xa0"),e.xp6(3),e.Oqu(t.PluginCertified),e.xp6(5),e.Q6J("ngForOf",t.Ep),e.xp6(4),e.hij("\n ",e.lcZ(63,36,"admin.assistprovisionning.alert.widgets"),"\xa0"),e.xp6(3),e.Oqu(null==t||null==t.device?null:t.device.WidgetList)}}function j(n,o){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",7),e._uU(2,"\n "),e._UZ(3,"h4",8),e._uU(4,"\n "),e.TgZ(5,"button",9),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("cancel"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n\n "),e.TgZ(8,"div",10),e._uU(9,"\n "),e._UZ(10,"ngx-spinner",11),e._uU(11,"\n "),e.qZA(),e._uU(12,"\n "),e.TgZ(13,"div",12),e._uU(14,"\n "),e._UZ(15,"span",13),e._uU(16,"\n "),e.YNc(17,O,70,38,"div",14),e._uU(18,"\n "),e.qZA(),e._uU(19,"\n "),e.TgZ(20,"div",15),e._uU(21,"\n "),e.TgZ(22,"button",16),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("cancel"))}),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n")}if(2&n){const t=e.oxw();e.xp6(10),e.Q6J("name","assist")("fullScreen",!1),e.xp6(7),e.Q6J("ngForOf",t.devicePaired)}}new d.Yd("PermitToJoinComponent");let D=(()=>{class n extends f.n{constructor(t,i,s,a){super(),this.toastr=t,this.apiService=i,this.modalService=s,this.spinner=a}ngOnInit(){this.newDevices=null,this.devices=null,this.devicePaired=[]}open(t){this.newDevices=null,this.devices=null,this.devicePaired=[],this.spinner.show("assist"),this.subs.sink=this.apiService.getNewHardware(!0).pipe((0,C.b)(()=>(0,F.H)(0,1e4).pipe((0,C.b)(()=>this.apiService.getReceiveNewHardware())).pipe((0,T.U)(i=>{this.newDevices=i,this.newDevices.NewDevices&&this.newDevices.NewDevices.length>0&&this.createwidgets()})))).subscribe(),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title",size:"lg",backdrop:"static",keyboard:!1}).result.then(i=>{this.spinner.hide("assist"),this.apiService.getNewHardware(!1).subscribe(),this.subs.unsubscribe()},i=>{})}createwidgets(){this.newDevices.NewDevices.forEach(t=>{t.ProvisionStatus&&this.apiService.getZDeviceName().subscribe(i=>{this.devices=i,t.device=this.devices.find(s=>s._NwkId===t.NwkId),this.devicePaired.push(t)})})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(m.s),e.Y36(b.FF),e.Y36(U.t2))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-assist-provisionning"]],features:[e.qOj],decls:19,vars:3,consts:[[1,"card"],["translate","admin.assistprovisionning.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.assistprovisionning.go.button",1,"btn","btn-primary",3,"click"],["content",""],[1,"modal-header"],["id","modal-basic-title","translate","admin.assistprovisionning.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],[1,"modal-body","mt-3"],["type","line-scale","size","medium","bdColor","white","color","red",3,"name","fullScreen"],[1,"modal-body"],["translate","admin.assistprovisionning.alert.subject",1,"row","ms-2"],["class","mt-1",4,"ngFor","ngForOf"],[1,"modal-footer"],["type","button","translate","admin.assistprovisionning.alert.cancel",1,"btn","btn-primary",3,"click"],[1,"mt-1"],[1,"border","p-2"],[1,"ms-2"],[1,"row"],[4,"ngFor","ngForOf"],["class","ms-2 row",4,"ngFor","ngForOf"],[1,"ms-2","row"]],template:function(t,i){if(1&t){const s=e.EpF();e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e.TgZ(12,"button",5),e.NdJ("click",function(){e.CHM(s);const u=e.MAs(17);return e.KtG(i.open(u))}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n"),e.qZA(),e._uU(15,"\n\n"),e.YNc(16,j,25,3,"ng-template",null,6,e.W1O),e._uU(18,"\n")}2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,1,"admin.assistprovisionning.subtitle"),e.oJD))},dependencies:[g.sg,c.Pi,U.Ro,c.X$]}),n})();var M=l(62554);function Q(n,o){if(1&n&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2,"\n "),e.TgZ(3,"b"),e._uU(4,"Widget"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"IEEE"),e.qZA(),e._uU(8),e.TgZ(9,"b"),e._uU(10,"Ep"),e.qZA(),e._uU(11),e.TgZ(12,"b"),e._uU(13,"Id"),e.qZA(),e._uU(14),e.TgZ(15,"b"),e._uU(16),e.qZA(),e._uU(17,"\n "),e.qZA(),e._uU(18,"\n ")),2&n){const t=o.item;e.xp6(5),e.hij(" : ",t.Name," - "),e.xp6(3),e.hij(" : ",t.IEEE," - "),e.xp6(3),e.hij(" : ",t.Ep," - "),e.xp6(3),e.hij(" :\n ",t._ID," -\n "),e.xp6(2),e.Oqu(t.ZDeviceName)}}new d.Yd("ReloadPluginComponent");let E=(()=>{class n{constructor(t,i,s,a){this.toastr=t,this.apiService=i,this.translate=s,this.formBuilder=a}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,r.kI.required]}),this.apiService.getZGroupDevicesAvalaible().subscribe(t=>{const i=[];t&&t.length>0&&(t.forEach(s=>{s.WidgetList.forEach(a=>{if("0000"!==s._NwkId){const u=new M.zL;u.Ep=a.Ep,u.IEEE=a.IEEE,u.Name=a.Name,u.ZDeviceName=a.ZDeviceName,u._ID=a._ID,u._NwkId=s._NwkId,i.push(u)}})}),this.devices=[...i])})}scan(){const t=[];this.form.get("deviceSelected").value.forEach(s=>t.push(s._NwkId)),this.apiService.putScanDeviceForGrp(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK),e.Y36(r.qu))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-scan-group-device"]],decls:28,vars:12,consts:[[3,"formGroup"],[1,"card"],["translate","admin.scan.group.device.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["bindLabel","Name","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.scan.group.device.button",1,"btn","btn-primary",3,"disabled","click"]],template:function(t,i){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"ng-select",6),e.ALo(14,"translate"),e._uU(15,"\n "),e.YNc(16,Q,19,5,"ng-template",7),e._uU(17,"\n "),e.qZA(),e._uU(18,"\n "),e.qZA(),e._uU(19,"\n "),e.qZA(),e._uU(20,"\n "),e.TgZ(21,"div",8),e._uU(22,"\n "),e.TgZ(23,"button",9),e.NdJ("click",function(){return i.scan()}),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n"),e.qZA(),e._uU(27,"\n")),2&t&&(e.Q6J("formGroup",i.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,8,"admin.scan.group.device.subtitle"),e.oJD),e.xp6(5),e.s9C("placeholder",e.lcZ(14,10,"admin.scan.group.device.placeholder")),e.Q6J("items",i.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),e.xp6(10),e.Q6J("disabled",!i.form.valid))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,_.w9,_.ir,c.Pi,c.X$]}),n})();function H(n,o){if(1&n){const t=e.EpF();e.TgZ(0,"div",7),e._uU(1,"\n "),e._UZ(2,"label",8),e._uU(3,"\n "),e.TgZ(4,"div",9),e._uU(5,"\n "),e.TgZ(6,"ng-select",10),e.NdJ("ngModelChange",function(s){e.CHM(t);const a=e.oxw();return e.KtG(a.selectedChannel=s)}),e._uU(7,"\n >\n "),e.qZA(),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.qZA()}if(2&n){const t=e.oxw();e.xp6(6),e.Q6J("items",t.list)("compareWith",t.compareNumeric)("closeOnSelect",!0)("ngModel",t.selectedChannel)}}new d.Yd("SwitchChannelComponent");let G=(()=>{class n{constructor(t,i,s){this.toastr=t,this.apiService=i,this.translate=s,this.list=[]}ngOnInit(){this.apiService.getSettings().subscribe(t=>{this.settings=t;const i=this.settings.find(s=>"CoordinatorConfiguration"===s._Theme);this.channel=i.ListOfSettings.find(s=>"channel"===s.Name),this.selectedChannel=this.channel.current_value,this.channel.list.forEach(s=>{const a=Object.keys(s)[0],u=Object.values(s)[0];this.list.push({label:a,value:u})})})}compareNumeric(t,i){return isNaN(t.value)?t.value===i:t.value===Number(i)}switchChannel(t){this.apiService.putChangeChannel(this.selectedChannel).subscribe(()=>{this.toastr.success(this.translate.instant("admin.coordinator.switchchannel.notify"))})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-switch-channel"]],decls:18,vars:5,consts:[[1,"card"],["translate","admin.coordinator.switchchannel.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],["class","form-group row mt-2",4,"ngIf"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.coordinator.switchchannel.button",1,"btn","btn-primary",3,"disabled","click"],[1,"form-group","row","mt-2"],["for","current","translate","admin.coordinator.switchchannel.placeholder",1,"col-sm-6","col-form-label"],[1,"col-sm"],["bindLabel","label","bindValue","value",3,"items","compareWith","closeOnSelect","ngModel","ngModelChange"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.YNc(9,H,10,4,"div",4),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n "),e.TgZ(12,"div",5),e._uU(13,"\n "),e.TgZ(14,"button",6),e.NdJ("click",function(a){return i.switchChannel(a)}),e.qZA(),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n"),e.qZA(),e._uU(17,"\n")),2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,3,"admin.coordinator.switchchannel.subtitle"),e.oJD),e.xp6(3),e.Q6J("ngIf",i.channel),e.xp6(5),e.Q6J("disabled",!i.selectedChannel))},dependencies:[g.O5,r.JJ,r.On,_.w9,c.Pi,c.X$]}),n})();function $(n,o){if(1&n&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&n){const t=o.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t._NwkId,"")}}new d.Yd("PairingFullResetComponent");let W=(()=>{class n extends f.n{constructor(t,i,s,a){super(),this.toastr=t,this.formBuilder=i,this.apiService=s,this.translate=a}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,r.kI.required]}),this.devices$=this.apiService.getZDeviceName()}fullReset(){this.apiService.putPairingFullReset(this.form.get("deviceSelected").value._NwkId).subscribe(t=>{this.toastr.success(this.translate.instant("admin.fullreset.notify"))})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(r.qu),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-pairing-full-reset"]],features:[e.qOj],decls:35,vars:14,consts:[[3,"formGroup"],[1,"card"],["translate","admin.fullreset.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm"],["bindLabel","ZDeviceName","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.fullreset.button",1,"btn","btn-primary",3,"disabled","click"]],template:function(t,i){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"ng-select",8),e.ALo(18,"async"),e.ALo(19,"translate"),e._uU(20,"\n "),e.YNc(21,$,10,2,"ng-template",9),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.qZA(),e._uU(27,"\n "),e.TgZ(28,"div",10),e._uU(29,"\n "),e.TgZ(30,"button",11),e.NdJ("click",function(){return i.fullReset()}),e.qZA(),e._uU(31,"\n "),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n"),e.qZA(),e._uU(34,"\n")),2&t&&(e.Q6J("formGroup",i.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,8,"admin.fullreset.subtitle"),e.oJD),e.xp6(9),e.s9C("placeholder",e.lcZ(19,12,"admin.fullreset.device.placeholder")),e.Q6J("items",e.lcZ(18,10,i.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(13),e.Q6J("disabled",i.form.invalid))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,_.w9,_.ir,c.Pi,g.Ov,c.X$]}),n})();function B(n,o){if(1&n&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&n){const t=o.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t._NwkId,"")}}new d.Yd("RecreateWidgetComponent");let K=(()=>{class n extends f.n{constructor(t,i,s,a){super(),this.toastr=t,this.formBuilder=i,this.apiService=s,this.translate=a}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,r.kI.required]}),this.devices$=this.apiService.getZDeviceName()}recreate(){this.apiService.putRecreateWidgets(this.form.get("deviceSelected").value._NwkId).subscribe(t=>{this.toastr.success(this.translate.instant("admin.recreate.notify"))})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(p._W),e.Y36(r.qu),e.Y36(m.s),e.Y36(c.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-recreate-widget"]],features:[e.qOj],decls:35,vars:14,consts:[[3,"formGroup"],[1,"card"],["translate","admin.recreate.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm"],["bindLabel","ZDeviceName","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.recreate.button",1,"btn","btn-primary",3,"disabled","click"]],template:function(t,i){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"ng-select",8),e.ALo(18,"async"),e.ALo(19,"translate"),e._uU(20,"\n "),e.YNc(21,B,10,2,"ng-template",9),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.qZA(),e._uU(27,"\n "),e.TgZ(28,"div",10),e._uU(29,"\n "),e.TgZ(30,"button",11),e.NdJ("click",function(){return i.recreate()}),e.qZA(),e._uU(31,"\n "),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n"),e.qZA(),e._uU(34,"\n")),2&t&&(e.Q6J("formGroup",i.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,8,"admin.recreate.subtitle"),e.oJD),e.xp6(9),e.s9C("placeholder",e.lcZ(19,12,"admin.recreate.device.placeholder")),e.Q6J("items",e.lcZ(18,10,i.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(13),e.Q6J("disabled",i.form.invalid))},dependencies:[r._Y,r.JJ,r.JL,r.sg,r.u,_.w9,_.ir,c.Pi,g.Ov,c.X$]}),n})();var X=l(28746);let z=(()=>{class n{transform(t){return t?t.replace(/\n/g,"
"):null}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"nl2br",type:n,pure:!0}),n})();new d.Yd("UpdatePluginComponent");let V=(()=>{class n{constructor(t,i,s,a,u){this.headerService=t,this.toastr=i,this.apiService=s,this.translate=a,this.spinner=u,this.load=!1}ngOnInit(){}updatePlugin(){this.load=!0,this.message="",this.spinner.show("update-plugin"),this.apiService.getUpgradePlugin().pipe((0,X.x)(()=>this.spinner.hide("update-plugin"))).subscribe(t=>{this.load=!1,this.message=t.result,0===t.ReturnCode?(this.toastr.success(this.translate.instant("admin.plugin.update.success")),this.headerService.setRestart(!0)):this.toastr.error(this.translate.instant("admin.plugin.update.error"))})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(v.r),e.Y36(p._W),e.Y36(m.s),e.Y36(c.sK),e.Y36(U.t2))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-update-plugin"]],decls:31,vars:9,consts:[[1,"card"],["translate","admin.plugin.update.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["bdColor","rgba(0, 0, 0, 0.5)","size","small","color","#fff","type","line-spin-clockwise-fade-rotating",3,"fullScreen","name"],[1,"text-white"],[1,"mt-3",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.plugin.update.button",1,"btn","btn-primary",3,"disabled","click"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"p",3),e.ALo(7,"translate"),e._uU(8,"\n "),e.TgZ(9,"div",4),e._uU(10,"\n "),e.TgZ(11,"ngx-spinner",5),e._uU(12,"\n "),e.TgZ(13,"p"),e._uU(14,"\xa0"),e.qZA(),e._uU(15,"\n "),e.TgZ(16,"p",6),e._uU(17,"Loading..."),e.qZA(),e._uU(18,"\n "),e.qZA(),e._uU(19,"\n "),e._UZ(20,"span",7),e.ALo(21,"nl2br"),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.TgZ(25,"div",8),e._uU(26,"\n "),e.TgZ(27,"button",9),e.NdJ("click",function(){return i.updatePlugin()}),e.qZA(),e._uU(28,"\n "),e.qZA(),e._uU(29,"\n"),e.qZA(),e._uU(30,"\n")),2&t&&(e.xp6(6),e.Q6J("innerHTML",e.lcZ(7,5,"admin.plugin.update.subtitle"),e.oJD),e.xp6(5),e.Q6J("fullScreen",!1)("name","update-plugin"),e.xp6(9),e.Q6J("innerHTML",e.lcZ(21,7,i.message),e.oJD),e.xp6(7),e.Q6J("disabled",i.load))},dependencies:[c.Pi,U.Ro,c.X$,z]}),n})();function ee(n,o){1&n&&e._UZ(0,"app-assist-provisionning")}function te(n,o){1&n&&e._UZ(0,"app-permit-to-join")}function ne(n,o){1&n&&e._UZ(0,"app-permit-to-join-router")}function ie(n,o){1&n&&e._UZ(0,"app-pairing-full-reset")}function oe(n,o){1&n&&e._UZ(0,"app-recreate-widget")}function se(n,o){1&n&&e._UZ(0,"app-sw-reset")}function ae(n,o){1&n&&e._UZ(0,"app-switch-channel")}function re(n,o){1&n&&e._UZ(0,"app-rescan-group")}function ce(n,o){1&n&&e._UZ(0,"app-scan-group-device")}function le(n,o){1&n&&(e.TgZ(0,"div",4),e._uU(1,"\n "),e._UZ(2,"app-update-plugin"),e._uU(3,"\n "),e.qZA())}function ue(n,o){1&n&&(e.TgZ(0,"div",5),e._UZ(1,"app-reload-plugin"),e.qZA())}new d.Yd("AdminComponent");let de=(()=>{class n extends f.n{constructor(t){super(),this.activatedRoute=t}ngOnInit(){this.subs.sink=this.activatedRoute.queryParamMap.subscribe(t=>{this.action=t.get("action")})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(h.gz))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-admin"]],features:[e.qOj],decls:25,vars:11,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[4,"ngIf"],["class","col-md-12 col-lg-12 col-xl-12 col-xxl-6",4,"ngIf"],["class","col",4,"ngIf"],[1,"col-md-12","col-lg-12","col-xl-12","col-xxl-6"],[1,"col"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.YNc(2,ee,1,0,"app-assist-provisionning",1),e._uU(3,"\n "),e.YNc(4,te,1,0,"app-permit-to-join",1),e._uU(5,"\n "),e.YNc(6,ne,1,0,"app-permit-to-join-router",1),e._uU(7,"\n "),e.YNc(8,ie,1,0,"app-pairing-full-reset",1),e._uU(9,"\n "),e.YNc(10,oe,1,0,"app-recreate-widget",1),e._uU(11,"\n "),e.YNc(12,se,1,0,"app-sw-reset",1),e._uU(13,"\n "),e.YNc(14,ae,1,0,"app-switch-channel",1),e._uU(15,"\n "),e.YNc(16,re,1,0,"app-rescan-group",1),e._uU(17,"\n "),e.YNc(18,ce,1,0,"app-scan-group-device",1),e._uU(19,"\n "),e.YNc(20,le,4,0,"div",2),e._uU(21,"\n "),e.YNc(22,ue,2,0,"div",3),e._uU(23,"\n"),e.qZA(),e._uU(24,"\n")),2&t&&(e.xp6(2),e.Q6J("ngIf","pairing"===i.action),e.xp6(2),e.Q6J("ngIf","pairing"===i.action),e.xp6(2),e.Q6J("ngIf","pairing"===i.action),e.xp6(2),e.Q6J("ngIf","pairing"===i.action),e.xp6(2),e.Q6J("ngIf","pairing"===i.action),e.xp6(2),e.Q6J("ngIf","coordinator"===i.action),e.xp6(2),e.Q6J("ngIf","coordinator"===i.action),e.xp6(2),e.Q6J("ngIf","group"===i.action),e.xp6(2),e.Q6J("ngIf","group"===i.action),e.xp6(2),e.Q6J("ngIf","plugin"===i.action),e.xp6(2),e.Q6J("ngIf","plugin"===i.action))},dependencies:[g.O5,x,S,k,P,Y,D,E,G,W,K,V]}),n})();var w=l(78372),q=l(71884);class pe{}function me(n,o){if(1&n&&(e.TgZ(0,"div"),e._uU(1,"\n "),e.TgZ(2,"ng-select",17),e.ALo(3,"translate"),e._uU(4,"\n "),e.qZA(),e._uU(5,"\n "),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.s9C("placeholder",e.lcZ(3,4,"admin.firmware.list")),e.Q6J("items",t.firmwares)("multiple",!1)("closeOnSelect",!0)}}function _e(n,o){if(1&n&&(e.TgZ(0,"div"),e._uU(1,"\n "),e.TgZ(2,"ng-select",18),e.ALo(3,"async"),e.ALo(4,"translate"),e._uU(5,"\n "),e.qZA(),e._uU(6,"\n "),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.s9C("placeholder",e.lcZ(4,6,"admin.firmware.devices.list")),e.Q6J("items",e.lcZ(3,4,t.devicesList$))("multiple",!0)("closeOnSelect",!0)}}function ge(n,o){if(1&n&&(e.TgZ(0,"div",23),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&n){const t=o.$implicit;e.xp6(1),e.lnq("\n ",e.lcZ(2,3,"admin.firmware.alert.device")," : ",t.DeviceName," - Nwkid : ",t.Nwkid,"\n ")}}function fe(n,o){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",19),e._uU(2,"\n "),e._UZ(3,"h4",20),e._uU(4,"\n "),e.TgZ(5,"button",21),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("Cross click"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e.TgZ(8,"div",22),e._uU(9),e.ALo(10,"translate"),e.TgZ(11,"div",23),e._uU(12),e.ALo(13,"translate"),e.qZA(),e._uU(14,"\n "),e.TgZ(15,"div",23),e._uU(16),e.ALo(17,"translate"),e.qZA(),e._uU(18,"\n "),e.TgZ(19,"div",23),e._uU(20),e.ALo(21,"translate"),e.YNc(22,ge,3,5,"div",24),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.TgZ(26,"div",25),e._uU(27,"\n "),e.TgZ(28,"button",26),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("ok"))}),e.qZA(),e._uU(29,"\n "),e.TgZ(30,"button",27),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("cancel"))}),e.qZA(),e._uU(31,"\n "),e.qZA(),e._uU(32,"\n ")}if(2&n){const t=e.oxw();e.xp6(9),e.hij("\n ",e.lcZ(10,7,"admin.firmware.alert.subject"),"\n "),e.xp6(3),e.AsE("",e.lcZ(13,9,"admin.firmware.alert.brand")," ",t.form.get("manufacturer").value,""),e.xp6(4),e.AsE("",e.lcZ(17,11,"admin.firmware.alert.filename")," ",t.firmwareModal.FileName,""),e.xp6(4),e.hij("\n ",e.lcZ(21,13,"admin.firmware.alert.list.devices"),"\n "),e.xp6(2),e.Q6J("ngForOf",t.devicesModal)}}new d.Yd("BindingComponent");let Ze=(()=>{class n extends f.n{constructor(t,i,s,a,u){super(),this.apiService=t,this.formBuilder=i,this.translate=s,this.toastr=a,this.modalService=u}ngOnInit(){this.form=this.formBuilder.group({manufacturer:[null,r.kI.required],firmware:[null,r.kI.required],device:[null,r.kI.required],force:[!1]}),this.manufacturerList$=this.apiService.getOtaFirmware().pipe((0,T.U)(t=>(this.tempFirmwares=t[0],Object.keys(this.tempFirmwares)))),this.subs.sink=this.form.get("manufacturer").valueChanges.pipe((0,w.b)(300),(0,q.x)()).subscribe(t=>{this.form.get("firmware").reset(),this.form.get("device").reset(),t?(this.firmwares=this.tempFirmwares[t],this.firmwares.forEach(i=>{i.label=this.getLabelFirmware(i)})):this.firmwares=null}),this.subs.sink=this.form.get("firmware").valueChanges.pipe((0,w.b)(300),(0,q.x)()).subscribe(t=>{this.form.get("device").reset(),this.devicesList$=t?this.apiService.getDeviceByOtaFirmware(t.ManufCode).pipe((0,T.U)(i=>(i.forEach(s=>{s.label=this.getLabelDevice(s)}),i))):null})}updateFirmware(){const t=[],i=this.form.get("manufacturer").value,s=this.form.get("firmware").value.FileName;this.form.get("device").value.forEach(u=>{const Z=new pe;Z.Brand=i,Z.Ep=u.Ep,Z.FileName=s,Z.NwkId=u.Nwkid,Z.ForceUpdate=this.form.get("force").value,t.push(Z)}),this.apiService.putOtaFirmware(t).subscribe(()=>{this.devicesList$=null,this.firmwares=null,this.toastr.success(this.translate.instant("admin.firmware.notify")),this.form.reset()})}open(t){this.firmwareModal=this.form.get("firmware").value,this.devicesModal=this.form.get("device").value,this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(i=>{this.updateFirmware()},i=>{})}getLabelFirmware(t){return"FileName : ".concat(t.FileName).concat(" - ImageType : ").concat(t.ImageType).concat(" - ApplicationBuild : ").concat(t.ApplicationBuild).concat(" - ApplicationRelease : ").concat(t.ApplicationRelease).concat(" - StackBuild : ").concat(t.StackBuild).concat(" - StackRelease : ").concat(t.StackRelease)}getLabelDevice(t){return"DeviceName : ".concat(t.DeviceName).concat(" - Ep : ").concat(t.Ep).concat(" - Nwkid : ").concat(t.Nwkid).concat(" - OTALastTime : ").concat(t.OTALastTime).concat(" - OTAType : ").concat(t.OTAType).concat(" - OTAVersion : ").concat(t.OTAVersion).concat(" - SWBUILD_1 : ").concat(t.SWBUILD_1).concat(" - SWBUILD_3 : ").concat(t.SWBUILD_3)}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(m.s),e.Y36(r.qu),e.Y36(c.sK),e.Y36(p._W),e.Y36(b.FF))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-firmware"]],features:[e.qOj],decls:59,vars:15,consts:[[1,"row","row-cols-1","row-cols-md-3","g-4"],[1,"col"],[1,"card","h-100",3,"formGroup"],["translate","admin.firmware.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"row"],[1,"col-sm"],["appendTo","body","formControlName","manufacturer",3,"items","multiple","closeOnSelect","placeholder"],[1,"row","mt-2"],[4,"ngIf"],[1,"col-auto","mt-2"],["formControlName","force","id","force","type","checkbox",1,"form-control-checkbox"],["for","force","translate","admin.firmware.force",1,"col-form-label"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.firmware.button.update",1,"btn","btn-primary",3,"disabled","click"],["content",""],["appendTo","body","bindLabel","label","formControlName","firmware",3,"items","multiple","closeOnSelect","placeholder"],["appendTo","body","bindLabel","label","formControlName","device",3,"items","multiple","closeOnSelect","placeholder"],[1,"modal-header"],["id","modal-basic-title","translate","admin.firmware.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],[1,"modal-body"],[1,"col-sm","mt-2"],["class","col-sm mt-2",4,"ngFor","ngForOf"],[1,"modal-footer"],["type","button","translate","admin.firmware.alert.ok",1,"btn","btn-primary",3,"click"],["type","button","translate","admin.firmware.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(t,i){if(1&t){const s=e.EpF();e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"div",3),e._uU(7,"\n "),e.TgZ(8,"div",4),e._uU(9,"\n "),e._UZ(10,"p",5),e.ALo(11,"translate"),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"ng-select",8),e.ALo(18,"async"),e.ALo(19,"translate"),e._uU(20,"\n "),e.qZA(),e._uU(21,"\n "),e.qZA(),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.TgZ(24,"div",9),e._uU(25,"\n "),e.TgZ(26,"div",7),e._uU(27,"\n "),e.YNc(28,me,6,6,"div",10),e._uU(29,"\n "),e.qZA(),e._uU(30,"\n "),e.qZA(),e._uU(31,"\n "),e.TgZ(32,"div",9),e._uU(33,"\n "),e.TgZ(34,"div",7),e._uU(35,"\n "),e.YNc(36,_e,7,8,"div",10),e._uU(37,"\n "),e.qZA(),e._uU(38,"\n "),e.qZA(),e._uU(39,"\n "),e.TgZ(40,"div",11),e._uU(41,"\n "),e._UZ(42,"input",12),e._uU(43,"\n "),e._UZ(44,"label",13),e._uU(45,"\n "),e.qZA(),e._uU(46,"\n\n "),e.TgZ(47,"div",14),e._uU(48,"\n "),e.TgZ(49,"button",15),e.NdJ("click",function(){e.CHM(s);const u=e.MAs(56);return e.KtG(i.open(u))}),e.qZA(),e._uU(50,"\n "),e.qZA(),e._uU(51,"\n "),e.qZA(),e._uU(52,"\n "),e.qZA(),e._uU(53,"\n "),e.qZA(),e._uU(54,"\n\n "),e.YNc(55,fe,33,15,"ng-template",null,16,e.W1O),e._uU(57,"\n"),e.qZA(),e._uU(58,"\n")}2&t&&(e.xp6(4),e.Q6J("formGroup",i.form),e.xp6(6),e.Q6J("innerHTML",e.lcZ(11,9,"admin.firmware.subtitle"),e.oJD),e.xp6(7),e.s9C("placeholder",e.lcZ(19,13,"admin.firmware.manufacturer.list")),e.Q6J("items",e.lcZ(18,11,i.manufacturerList$))("multiple",!1)("closeOnSelect",!0),e.xp6(11),e.Q6J("ngIf",i.firmwares),e.xp6(8),e.Q6J("ngIf",i.devicesList$),e.xp6(13),e.Q6J("disabled",!i.form.valid))},dependencies:[g.sg,g.O5,r.Wl,r.JJ,r.JL,r.sg,r.u,_.w9,c.Pi,g.Ov,c.X$]}),n})();const Ue=[{path:"",component:de,data:{title:(0,d.Kl)("admin")}},{path:"firmware",component:Ze,data:{title:(0,d.Kl)("admin.firmware")}}];let he=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[h.Bz.forChild(Ue),h.Bz]}),n})(),ve=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[he,J.m]}),n})()}}]); \ No newline at end of file diff --git a/www/z4d/192.38a6743354cc7f80.js b/www/z4d/192.38a6743354cc7f80.js deleted file mode 100644 index a19fc152f..000000000 --- a/www/z4d/192.38a6743354cc7f80.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[192],{31192:(F,p,a)=>{a.r(p),a.d(p,{SettingsModule:()=>R});var v=a(44466),f=a(96749),_=a(88648),t=a(94650),h=a(75958),U=a(5830),c=a(24006),Z=a(97185),T=a(19513),l=a(54463),C=a(42543),g=a(36895),x=a(91835);function b(n,o){if(1&n&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"label",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"input",7),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.qZA()),2&n){const e=t.oxw(2);t.xp6(2),t.s9C("translate",e.setting.Name)}}function S(n,o){if(1&n&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"label",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"input",7),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.qZA()),2&n){const e=t.oxw(2);t.xp6(2),t.s9C("translate",e.setting.Name)}}function A(n,o){if(1&n&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"label",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"input",8),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.qZA()),2&n){const e=t.oxw(2);t.xp6(2),t.s9C("translate",e.setting.Name)}}function N(n,o){if(1&n&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"label",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"input",9),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.qZA()),2&n){const e=t.oxw(2);t.xp6(2),t.s9C("translate",e.setting.Name)}}function k(n,o){if(1&n&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"label",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t.TgZ(6,"ng-select",10),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.qZA(),t._uU(9,"\n "),t.qZA()),2&n){const e=t.oxw(2);t.xp6(2),t.s9C("translate",e.setting.Name),t.xp6(4),t.Q6J("items",e.list)("compareWith",e.compareNumeric)("closeOnSelect",!0)}}function y(n,o){if(1&n&&(t.TgZ(0,"div",11),t._uU(1,"\n "),t._UZ(2,"input",12),t._uU(3,"\n "),t._UZ(4,"label",13),t._uU(5,"\n "),t.qZA()),2&n){const e=t.oxw(2);t.xp6(2),t.s9C("id",e.setting.Name),t.xp6(2),t.s9C("for",e.setting.Name),t.s9C("translate",e.setting.Name)}}function J(n,o){if(1&n&&(t.TgZ(0,"div",1),t._uU(1,"\n "),t.YNc(2,b,9,1,"div",2),t._uU(3,"\n "),t.YNc(4,S,9,1,"div",2),t._uU(5,"\n "),t.YNc(6,A,9,1,"div",2),t._uU(7,"\n "),t.YNc(8,N,9,1,"div",2),t._uU(9,"\n "),t.YNc(10,k,10,4,"div",2),t._uU(11,"\n "),t.YNc(12,y,6,3,"div",3),t._uU(13,"\n"),t.qZA()),2&n){const e=t.oxw();t.Q6J("formGroupName",e.setting.Name),t.xp6(2),t.Q6J("ngIf","str"===e.setting.DataType),t.xp6(2),t.Q6J("ngIf","path"===e.setting.DataType),t.xp6(2),t.Q6J("ngIf","int"===e.setting.DataType),t.xp6(2),t.Q6J("ngIf","hex"===e.setting.DataType),t.xp6(2),t.Q6J("ngIf","list"===e.setting.DataType),t.xp6(2),t.Q6J("ngIf","bool"===e.setting.DataType)}}new _.Yd("SettingComponent");let q=(()=>{class n{constructor(e,i,s){this.formBuilder=e,this.fgd=i,this.translate=s,this.list=[]}ngOnChanges(e){let i;if(e.setting&&e.setting.currentValue){this.setting=e.setting.currentValue,"hex"===this.setting.DataType?i=this.formBuilder.group({current:["",c.kI.compose([c.kI.required,c.kI.pattern("^[0-9A-Fa-f]+")])]}):"bool"===this.setting.DataType?i=this.formBuilder.group({current:[]}):"list"===this.setting.DataType?(i=this.formBuilder.group({current:[null,c.kI.required]}),this.list=[],this.setting.list.forEach(r=>{const u=Object.keys(r)[0],m=Object.values(r)[0];this.list.push({label:u,value:m})})):i=this.formBuilder.group({current:["",c.kI.required]}),this.fgd.form.addControl(this.setting.Name,i);const s=""!==this.setting.current_value?this.setting.current_value:this.setting.default_value;this.fgd.form.get(this.setting.Name).get("current").patchValue(s)}}compareNumeric(e,i){return isNaN(e.value)?e.value===i:e.value===Number(i)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(c.qu),t.Y36(c.sg),t.Y36(l.sK))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-setting"]],inputs:{setting:"setting",advanced:"advanced"},features:[t._Bn([],[{provide:c.gN,useExisting:c.sg}]),t.TTD],decls:2,vars:1,consts:[[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["class","form-group row mt-2",4,"ngIf"],["class","form-check form-check-inline mt-2",4,"ngIf"],[1,"form-group","row","mt-2"],["for","current",1,"col-sm-6","col-form-label",3,"translate"],[1,"col-sm"],["type","text","formControlName","current",1,"w-100","form-control"],["type","number","formControlName","current",1,"w-50","form-control"],["type","text","formControlName","current",1,"w-50","form-control"],["bindLabel","label","bindValue","value","formControlName","current",3,"items","compareWith","closeOnSelect"],[1,"form-check","form-check-inline","mt-2"],["formControlName","current","type","checkbox",1,"form-check-input",3,"id"],[1,"form-check-label",3,"for","translate"]],template:function(e,i){1&e&&(t.YNc(0,J,14,7,"div",0),t._uU(1,"\n")),2&e&&t.Q6J("ngIf",!1===i.setting.Advanced||i.advanced===i.setting.Advanced)},dependencies:[g.O5,c.Fj,c.wV,c.Wl,c.JJ,c.JL,c.u,c.x0,x.w9,l.Pi],styles:["was-validated[_ngcontent-%COMP%] .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]{color:#000}"]}),n})();const d=["contentRestart"];function O(n,o){if(1&n&&(t.ynx(0),t._uU(1,"\n "),t._UZ(2,"app-setting",25),t._uU(3,"\n "),t.BQk()),2&n){const e=o.$implicit,i=t.oxw(4);t.xp6(2),t.Q6J("setting",e)("advanced",i.advanced)}}function M(n,o){if(1&n&&(t.TgZ(0,"div",21),t._uU(1,"\n "),t._UZ(2,"div",22),t._uU(3,"\n "),t.TgZ(4,"div",23),t._uU(5,"\n "),t._UZ(6,"p",17),t._uU(7,"\n "),t.TgZ(8,"div",24),t._uU(9,"\n "),t.YNc(10,O,4,2,"ng-container",19),t._uU(11,"\n "),t.qZA(),t._uU(12,"\n "),t.qZA(),t._uU(13,"\n "),t.qZA()),2&n){const e=t.oxw().$implicit,i=t.oxw(2);t.xp6(2),t.Q6J("innerHTML",i.getTranslation("setting.header.",e._Theme),t.oJD),t.xp6(4),t.Q6J("innerHTML",i.getTranslation("setting.subtitle.",e._Theme),t.oJD),t.xp6(4),t.Q6J("ngForOf",e.ListOfSettings)}}function w(n,o){if(1&n&&(t.TgZ(0,"div"),t._uU(1,"\n "),t.YNc(2,M,14,3,"div",20),t._uU(3,"\n "),t.qZA()),2&n){const e=o.$implicit,i=t.oxw(2);t.xp6(2),t.Q6J("ngIf",i.hasBasicSettings(e.ListOfSettings))}}function Y(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"form",4),t._uU(1,"\n "),t.TgZ(2,"fieldset",5),t._uU(3,"\n "),t.TgZ(4,"legend"),t._uU(5,"\n "),t.TgZ(6,"div",6),t._uU(7,"\n "),t._UZ(8,"h5",7),t.ALo(9,"translate"),t._uU(10,"\n "),t.TgZ(11,"div",8),t._uU(12,"\n "),t.TgZ(13,"div",9),t._uU(14,"\n "),t.TgZ(15,"div",10),t._uU(16,"\n "),t.TgZ(17,"button",11),t.NdJ("click",function(){t.CHM(e);const s=t.oxw();return t.KtG(s.updateSettings())}),t.qZA(),t._uU(18,"\n "),t.qZA(),t._uU(19,"\n "),t.TgZ(20,"div",12),t._uU(21,"\n "),t.TgZ(22,"button",13),t.NdJ("click",function(){t.CHM(e);const s=t.oxw();return t.KtG(s.reinitSettings())}),t.qZA(),t._uU(23,"\n "),t.qZA(),t._uU(24,"\n "),t.TgZ(25,"div",14),t._uU(26,"\n "),t.TgZ(27,"input",15),t.NdJ("click",function(s){t.CHM(e);const r=t.oxw();return t.KtG(r.advancedSettings(s))}),t.qZA(),t._uU(28,"\n "),t._UZ(29,"label",16),t._uU(30,"\n "),t.qZA(),t._uU(31,"\n "),t.qZA(),t._uU(32,"\n "),t.qZA(),t._uU(33,"\n "),t.qZA(),t._uU(34,"\n "),t.qZA(),t._uU(35,"\n "),t._UZ(36,"p",17),t.ALo(37,"translate"),t._uU(38,"\n "),t.qZA(),t._uU(39,"\n "),t.TgZ(40,"div",18),t._uU(41,"\n "),t.YNc(42,w,4,1,"div",19),t._uU(43,"\n "),t.qZA(),t._uU(44,"\n"),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("formGroup",e.form),t.xp6(8),t.Q6J("innerHTML",t.lcZ(9,6,"setting.help.legend"),t.oJD),t.xp6(9),t.Q6J("disabled",!e.form.valid),t.xp6(10),t.Q6J("checked",e.advanced),t.xp6(9),t.Q6J("innerHTML",t.lcZ(37,8,"setting.help.link"),t.oJD),t.xp6(6),t.Q6J("ngForOf",e.settings)}}function G(n,o){if(1&n){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"div",26),t._uU(2,"\n "),t._UZ(3,"h4",27),t._uU(4,"\n "),t.TgZ(5,"button",28),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.KtG(r.dismiss("Cross click"))}),t.qZA(),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t._UZ(8,"div",29),t._uU(9,"\n "),t.TgZ(10,"div",30),t._uU(11,"\n "),t.TgZ(12,"button",31),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.KtG(r.dismiss("cancel"))}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n")}}function Q(n,o){if(1&n){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"div",26),t._uU(2,"\n "),t._UZ(3,"h4",32),t._uU(4,"\n "),t.TgZ(5,"button",28),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.KtG(r.dismiss("Cross click"))}),t.qZA(),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t._UZ(8,"div",33),t._uU(9,"\n "),t.TgZ(10,"div",30),t._uU(11,"\n "),t.TgZ(12,"button",34),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.KtG(r.dismiss("cancel"))}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n")}}function I(n,o){if(1&n){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"div",26),t._uU(2,"\n "),t._UZ(3,"h4",35),t._uU(4,"\n "),t.TgZ(5,"button",28),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.KtG(r.dismiss("Cross click"))}),t.qZA(),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t._UZ(8,"div",36),t._uU(9,"\n "),t.TgZ(10,"div",30),t._uU(11,"\n "),t.TgZ(12,"button",37),t.NdJ("click",function(){const r=t.CHM(e).$implicit;return t.KtG(r.dismiss("cancel"))}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n")}}new _.Yd("SettingsComponent");const H=[{path:"",component:(()=>{class n{constructor(e,i,s,r,u,m,B){this.modalService=e,this.apiService=i,this.formBuilder=s,this.toastr=r,this.headerService=u,this.translate=m,this.tracker=B,this.advanced=!1}ngOnInit(){this.form=this.formBuilder.group({}),this.apiService.getSettings().subscribe(e=>{this.settings=e,this.settings.sort((i,s)=>i._Order-s._Order)})}reinitSettings(){this.settings.forEach(e=>{const i=[];e.ListOfSettings.forEach(s=>{"path"!==s.DataType&&(s.current_value=s.default_value),i.push(Object.assign({},s))}),e.ListOfSettings=i}),this.settings=[...this.settings],this.form.markAsTouched()}advancedSettings(e){this.advanced=!!e.currentTarget.checked}updateSettings(){this.form.invalid?this.form.markAsTouched():(Object.keys(this.form.value).forEach(e=>{!0===this.form.value[e].current?this.form.value[e].current=1:!1===this.form.value[e].current&&(this.form.value[e].current=0)}),this.apiService.putSettings(this.form.value).subscribe(()=>{this.form.markAsPristine(),this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getSettings().subscribe(e=>{this.settings=e,this.settings.sort((i,s)=>i._Order-s._Order),e.forEach(i=>{i.ListOfSettings.forEach(r=>{"PluginAnalytics"===r.Name&&(1===r.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.apiService.getRestartNeeded().subscribe(e=>{1===e.RestartNeeded?(this.headerService.setRestart(!0),this.open(this.contentRestart)):2===e.RestartNeeded?this.open(this.contentReset):3===e.RestartNeeded&&this.open(this.contentErase)})}))}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then(i=>{},i=>{})}hasBasicSettings(e){return!!this.advanced||e.filter(i=>!1===i.Advanced).length>0}getTranslation(e,i){return this.translate.instant(e.concat(i))}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(h.FF),t.Y36(U.s),t.Y36(c.qu),t.Y36(Z._W),t.Y36(T.r),t.Y36(l.sK),t.Y36(C.ws))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-settings"]],viewQuery:function(e,i){if(1&e&&(t.Gf(d,5),t.Gf(d,5),t.Gf(d,5)),2&e){let s;t.iGM(s=t.CRH())&&(i.contentRestart=s.first),t.iGM(s=t.CRH())&&(i.contentReset=s.first),t.iGM(s=t.CRH())&&(i.contentErase=s.first)}},decls:11,vars:1,consts:[[3,"formGroup",4,"ngIf"],["contentRestart",""],["contentReset",""],["contentErase",""],[3,"formGroup"],[1,"h-100"],[1,"row"],[1,"col-sm-8",3,"innerHTML"],[1,"col-sm-4"],[1,"d-flex","flex-row-reverse","align-items-center"],[1,"p-2"],["translate","setting.validate.button",1,"btn","btn-primary",3,"disabled","click"],[1,"p-2","ms-3"],["translate","setting.reinit.button",1,"btn","btn-secondary",3,"click"],[1,"switch","switch-sm"],["type","checkbox","id","switch-advanced",1,"switch",3,"checked","click"],["for","switch-advanced","translate","setting.advanced.button",1,"mb-0"],[1,"card-text",3,"innerHTML"],[1,"row","row-cols-1","row-cols-md-3","g-4","mt-2"],[4,"ngFor","ngForOf"],["class","card h-100",4,"ngIf"],[1,"card","h-100"],[1,"card-header","fw-bold",3,"innerHTML"],[1,"card-body"],[1,"card-text"],[3,"setting","advanced"],[1,"modal-header"],["id","modal-basic-title","translate","setting.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","setting.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","setting.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.resetplugin.alert.title",1,"modal-title"],["translate","setting.resetplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.resetplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.eraseplugin.alert.title",1,"modal-title"],["translate","setting.eraseplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.eraseplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(e,i){1&e&&(t.YNc(0,Y,45,10,"form",0),t._uU(1,"\n\n"),t.YNc(2,G,15,0,"ng-template",null,1,t.W1O),t._uU(4,"\n\n"),t.YNc(5,Q,15,0,"ng-template",null,2,t.W1O),t._uU(7,"\n\n"),t.YNc(8,I,15,0,"ng-template",null,3,t.W1O),t._uU(10,"\n")),2&e&&t.Q6J("ngIf",i.settings)},dependencies:[g.sg,g.O5,c._Y,c.JL,c.sg,l.Pi,q,l.X$],styles:[".btn-secondary[_ngcontent-%COMP%]{--bs-btn-color: white}"]}),n})(),data:{title:(0,_.Kl)("settings")}}];let L=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[f.Bz.forChild(H),f.Bz]}),n})(),R=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[L,v.m]}),n})()}}]); \ No newline at end of file diff --git a/www/z4d/317.95ec4836cce099fe.js b/www/z4d/317.95ec4836cce099fe.js new file mode 100644 index 000000000..8b085e91e --- /dev/null +++ b/www/z4d/317.95ec4836cce099fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[317],{22317:(z,m,o)=>{o.r(m),o.d(m,{ManufacturerModule:()=>V});var h=o(93887),d=o(93331),u=o(38117);class _{IRCode;NwkId;constructor(l,n){this.IRCode=l,this.NwkId=n}}var e=o(54438),E=o(3366),g=o(45794),p=o(19664),F=o(89417),i=o(46247),I=o(5779),k=o(22242);const v=()=>["NwkId","Name","IEEE","Model","IRCode"],b=()=>[10,25,50];function T(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",13),e.EFF(2,"\n "),e.j41(3,"span",14),e.EFF(4,"\n "),e.nrm(5,"i",15),e.EFF(6,"\n "),e.j41(7,"input",16),e.nI1(8,"translate"),e.bIt("input",function(r){e.eBV(n),e.XpG();const s=e.sdS(21);return e.Njj(s.filterGlobal(r.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&t&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"manufacturer.casaia.placeholder")))}function R(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",17),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",18),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",19),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",20),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",21),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",22),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",23),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",24),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",25),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",26),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,5,"manufacturer.casaia.nwkid"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,7,"manufacturer.casaia.name"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,9,"manufacturer.casaia.ieee"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,11,"manufacturer.casaia.model"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,13,"manufacturer.casaia.ircode"),""))}function j(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function y(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function w(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",27),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,j,3,1,"ng-template",28),e.EFF(20,"\n "),e.DNE(21,y,3,1,"ng-template",29),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s()()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",n.NwkId,"\n "),e.R7$(3),e.SpI("\n ",n.Name,"\n "),e.R7$(3),e.SpI("\n ",n.IEEE,"\n "),e.R7$(3),e.SpI("\n ",n.Model,"\n "),e.R7$(2),e.Y8G("pEditableColumn",n.IRCode)}}let S=(()=>{class t{apiService;toastr;translate;rows;temp=[];hasEditing=!1;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.getCasaiaDevices()}updateIRCode(n,a){this.hasEditing=!0,this.rows.find(s=>s.NwkId===a).IRCode=n.target.value}updateCasaiaDevices(){const n=[];this.rows.forEach(a=>{n.push(new _(a.IRCode,a.NwkId))}),this.apiService.putCasiaIrcode(n).subscribe(()=>{this.hasEditing=!1,this.getCasaiaDevices(),this.toastr.success(this.translate.instant("api.global.succes.update.notify"))})}getCasaiaDevices(){this.apiService.getCasiaDevices().subscribe(n=>{this.rows=n,this.temp=[...this.rows]})}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-casaia"]],decls:36,vars:23,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","NwkId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],["pSortableColumn","NwkId"],["field","NwkId"],["pSortableColumn","Name"],["field","Name"],["pSortableColumn","IEEE"],["field","IEEE"],["pSortableColumn","Model"],["field","Model"],["pSortableColumn","IRCode",2,"width","8rem"],["field","IRCode"],["pEditableColumnField","IRCode",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"]],template:function(a,r){if(1&a){const s=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.j41(9,"button",5),e.nI1(10,"translate"),e.bIt("click",function(){return e.eBV(s),e.Njj(r.updateCasaiaDevices())}),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.nrm(15,"h5",7),e.nI1(16,"translate"),e.EFF(17,"\n "),e.j41(18,"div",8),e.EFF(19,"\n "),e.j41(20,"p-table",9,0),e.nI1(22,"translate"),e.EFF(23,"\n "),e.DNE(24,T,12,3,"ng-template",10),e.EFF(25,"\n "),e.DNE(26,R,34,15,"ng-template",11),e.EFF(27,"\n "),e.DNE(28,w,24,5,"ng-template",12),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n"),e.k0s(),e.EFF(35,"\n")}2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,13,"manufacturer.casaia.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(10,15,"manufacturer.casaia.validate.button")),e.Y8G("disabled",!r.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(16,17,"manufacturer.casaia.subtitle"),e.npT),e.R7$(5),e.FS9("currentPageReportTemplate",e.bMT(22,19,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(21,v))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(22,b))("value",r.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[F.me,F.BC,F.vS,p.Mm,i.XI,I.Ei,i.Tg,i.hp,i.c5,i.yc,k.S,p.D9]})}return t})();class M{key;value}var N=o(96354),f=o(60177),C=o(97013);const $=()=>[10,25,50];function D(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&t){const n=l.item;e.R7$(5),e.SpI(" : ",n.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",n.Nwkid,"")}}function P(t,l){if(1&t&&(e.j41(0,"p",12),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&t){const n=e.XpG();e.R7$(),e.SpI("\n ",e.bMT(2,1,"manufacturer.zlinky.".concat(n.deviceSelected.protocole)),"\n ")}}function G(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th"),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.key"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,4,"manufacturer.zlinky.value"),"\n "))}function x(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"td"),e.EFF(8),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.".concat(n.key)),"\n "),e.R7$(4),e.SpI("\n ",n.value,"\n ")}}function O(t,l){if(1&t&&(e.j41(0,"p-table",13,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,G,12,6,"ng-template",14),e.EFF(5,"\n "),e.DNE(6,x,10,4,"ng-template",15),e.EFF(7,"\n "),e.k0s()),2&t){const n=e.XpG();e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,$))("value",n.deviceSelected.ParametersForDisplay)("rows",10)("paginator",!0)("scrollable",!0)}}let X=(()=>{class t{apiService;toastr;translate;zlinkys$;deviceSelected;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.zlinkys$=this.apiService.getZlinky().pipe((0,N.T)(n=>(n.forEach(a=>{a.protocole="PROTOCOL_LINKY_"+a["PROTOCOL Linky"],a.ParametersForDisplay=[],a.Parameters.forEach(r=>{const s=new M;s.key=Object.keys(r)[0],s.value=Object.values(r)[0],a.ParametersForDisplay.push(s)})}),n)))}getConfiguration(n){this.deviceSelected=n}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-zlinky"]],decls:33,vars:17,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["bindLabel","ZDeviceName","appendTo","body",1,"w-25",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],["class","mt-3 mb-3 font-weight-bold",4,"ngIf"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable",4,"ngIf"],[1,"mt-3","mb-3","font-weight-bold"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"]],template:function(a,r){1&a&&(e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.nrm(12,"h5",6),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.bIt("change",function(c){return r.getConfiguration(c)})("clear",function(){return r.deviceSelected=null}),e.EFF(20,"\n "),e.DNE(21,D,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n\n "),e.DNE(24,P,3,3,"p",10),e.EFF(25,"\n\n "),e.DNE(26,O,8,11,"p-table",11),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n")),2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,9,"manufacturer.zlinky.header"),"\n "),e.R7$(5),e.Y8G("innerHTML",e.bMT(13,11,"manufacturer.zlinky.subtitle"),e.npT),e.R7$(5),e.FS9("placeholder",e.bMT(18,13,"manufacturer.zlinky.placeholder")),e.Y8G("items",e.bMT(19,15,r.zlinkys$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(7),e.Y8G("ngIf",r.deviceSelected),e.R7$(2),e.Y8G("ngIf",r.deviceSelected))},dependencies:[f.bT,C.vr,C.Uq,i.XI,I.Ei,f.Jj,p.D9]})}return t})();const L=[{path:"casaia",component:S,data:{title:(0,u.o6)("manufacturer.casaia")}},{path:"zlinky",component:X,data:{title:(0,u.o6)("manufacturer.zlinky")}}];let Z=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[d.iI.forChild(L),d.iI]})}return t})(),V=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[Z,h.G]})}return t})()}}]); \ No newline at end of file diff --git a/www/z4d/3rdpartylicenses.txt b/www/z4d/3rdpartylicenses.txt index 73f2e76bc..f0beee021 100644 --- a/www/z4d/3rdpartylicenses.txt +++ b/www/z4d/3rdpartylicenses.txt @@ -5,7 +5,7 @@ MIT MIT The MIT License -Copyright (c) 2022 Google LLC. +Copyright (c) 2024 Google LLC. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,9 +29,6 @@ THE SOFTWARE. @angular/common MIT -@angular/compiler -MIT - @angular/core MIT @@ -47,6 +44,32 @@ MIT @angular/router MIT +@babel/runtime +MIT +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @ng-bootstrap/ng-bootstrap MIT The MIT License (MIT) @@ -75,14 +98,11 @@ THE SOFTWARE. @ng-select/ng-select MIT -@ngx-matomo/router -MIT - -@ngx-matomo/tracker +@ngneat/hotkeys MIT @ngx-translate/core -MIT +SEE LICENSE IN LICENSE @popperjs/core MIT @@ -136,11 +156,11 @@ SOFTWARE. angular-highcharts MIT -clone-deep +bootstrap MIT The MIT License (MIT) -Copyright (c) 2014-2018, Jon Schlinkert. +Copyright (c) 2011-2024 The Bootstrap Authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -163,7 +183,7 @@ THE SOFTWARE. core-js MIT -Copyright (c) 2014-2022 Denis Pushkarev +Copyright (c) 2014-2024 Denis Pushkarev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -185,163 +205,93 @@ THE SOFTWARE. d3-array -BSD-3-Clause -Copyright 2010-2020 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2023 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-brush -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +ISC +Copyright 2010-2021 Mike Bostock -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-color -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2022 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-dispatch -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. +ISC +Copyright 2010-2021 Mike Bostock -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-drag -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. +ISC +Copyright 2010-2021 Mike Bostock -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-ease BSD-3-Clause -Copyright 2010-2016 Mike Bostock +Copyright 2010-2021 Mike Bostock Copyright 2001 Robert Penner All rights reserved. @@ -372,219 +322,122 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. d3-format -BSD-3-Clause -Copyright 2010-2015 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2021 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-interpolate -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. +ISC +Copyright 2010-2021 Mike Bostock -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-path -BSD-3-Clause -Copyright 2015-2016 Mike Bostock -All rights reserved. +ISC +Copyright 2015-2022 Mike Bostock -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-scale -BSD-3-Clause -Copyright 2010-2015 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2021 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-selection -BSD-3-Clause -Copyright (c) 2010-2018, Michael Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2021 Mike Bostock -* The name Michael Bostock may not be used to endorse or promote products - derived from this software without specific prior written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-shape -BSD-3-Clause -Copyright 2010-2015 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2022 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-time -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2022 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-time-format @@ -619,96 +472,37 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. d3-timer -BSD-3-Clause -Copyright 2010-2016 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2021 Mike Bostock -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. d3-transition -BSD-3-Clause -Copyright (c) 2010-2015, Michael Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +ISC +Copyright 2010-2021 Mike Bostock -* The name Michael Bostock may not be used to endorse or promote products - derived from this software without specific prior written permission. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -TERMS OF USE - EASING EQUATIONS - -Open source under the BSD License. - -Copyright 2001 Robert Penner -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -- Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -- Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. file-saver @@ -729,275 +523,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI highcharts https://www.highcharts.com/license -is-plain-object -MIT -The MIT License (MIT) +internmap +ISC +Copyright 2021 Mike Bostock -Copyright (c) 2014-2017, Jon Schlinkert. +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -isobject -MIT -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -kind-of -MIT -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -mousetrap -Apache-2.0 WITH LLVM-exception - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - ---- Exceptions to the Apache 2.0 License ---- - -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. - -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. ngx-color-picker @@ -1031,19 +571,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -ngx-mousetrap - -ngx-perfect-scrollbar +ngx-matomo-client MIT -ngx-spinner +ngx-scrollbar MIT -ngx-toastr +ngx-spinner MIT The MIT License (MIT) - -Copyright (c) Scott Cooper +Copyright (c) 2023 Yuvraj Chauhan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1064,16 +601,18 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -perfect-scrollbar +ngx-toastr MIT -The MIT License (MIT) Copyright (c) 2012-2019 Hyunje Jun, MDBootstrap.com and other contributors +The MIT License (MIT) -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +Copyright (c) Scott Cooper + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. @@ -1115,29 +654,23 @@ SOFTWARE. primeng MIT -resize-observer-polyfill +rfdc MIT -The MIT License (MIT) +Copyright 2019 "David Mark Clements " -Copyright (c) 2016 Denis Rul +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and +to permit persons to whom the Software is furnished to do so, subject to the following conditions: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions +of the Software. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. rxjs @@ -1346,31 +879,6 @@ Apache-2.0 -shallow-clone -MIT -The MIT License (MIT) - -Copyright (c) 2015-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - subsink MIT MIT License @@ -1396,9 +904,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -toppy -MIT - tslib 0BSD Copyright (c) Microsoft Corporation. @@ -1418,7 +923,7 @@ zone.js MIT The MIT License -Copyright (c) 2010-2022 Google LLC. https://angular.io/license +Copyright (c) 2010-2023 Google LLC. https://angular.io/license Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/www/z4d/506.7929b1bd86ff980c.js b/www/z4d/506.7929b1bd86ff980c.js deleted file mode 100644 index 0f3365dfe..000000000 --- a/www/z4d/506.7929b1bd86ff980c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[506],{90506:(F,m,r)=>{r.r(m),r.d(m,{ManufacturerModule:()=>D});var f=r(44466),d=r(96749),c=r(88648);class T{constructor(o,n){this.IRCode=o,this.NwkId=n}}var e=r(94650),g=r(5830),Z=r(97185),u=r(54463),p=r(24006),s=r(55017),U=r(10805),v=r(51740);function A(t,o){if(1&t){const n=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",13),e._uU(2,"\n "),e.TgZ(3,"span",14),e._uU(4,"\n "),e._UZ(5,"i",15),e._uU(6,"\n "),e.TgZ(7,"input",16),e.NdJ("input",function(l){e.CHM(n),e.oxw();const i=e.MAs(21);return e.KtG(i.filterGlobal(l.target.value,"contains"))}),e.ALo(8,"translate"),e.qZA(),e._uU(9,"\n "),e.qZA(),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n ")}2&t&&(e.xp6(7),e.s9C("placeholder",e.lcZ(8,1,"manufacturer.casaia.placeholder")))}function w(t,o){1&t&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"th",17),e._uU(4),e.ALo(5,"translate"),e._UZ(6,"p-sortIcon",18),e._uU(7,"\n "),e.qZA(),e._uU(8,"\n "),e.TgZ(9,"th",19),e._uU(10),e.ALo(11,"translate"),e._UZ(12,"p-sortIcon",20),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n "),e.TgZ(15,"th",21),e._uU(16),e.ALo(17,"translate"),e._UZ(18,"p-sortIcon",22),e._uU(19,"\n "),e.qZA(),e._uU(20,"\n "),e.TgZ(21,"th",23),e._uU(22),e.ALo(23,"translate"),e._UZ(24,"p-sortIcon",24),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.TgZ(27,"th",25),e._uU(28),e.ALo(29,"translate"),e._UZ(30,"p-sortIcon",26),e._uU(31,"\n "),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n ")),2&t&&(e.xp6(4),e.hij("\n ",e.lcZ(5,5,"manufacturer.casaia.nwkid"),""),e.xp6(6),e.hij("\n ",e.lcZ(11,7,"manufacturer.casaia.name"),""),e.xp6(6),e.hij("\n ",e.lcZ(17,9,"manufacturer.casaia.ieee"),""),e.xp6(6),e.hij("\n ",e.lcZ(23,11,"manufacturer.casaia.model"),""),e.xp6(6),e.hij("\n ",e.lcZ(29,13,"manufacturer.casaia.ircode"),""))}function x(t,o){if(1&t){const n=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",30),e.NdJ("ngModelChange",function(l){e.CHM(n);const i=e.oxw().$implicit;return e.KtG(i.IRCode=l)})("change",function(l){e.CHM(n);const i=e.oxw().$implicit,_=e.oxw();return e.KtG(_.updateIRCode(l,i.NwkId))}),e.qZA(),e._uU(2,"\n ")}if(2&t){const n=e.oxw().$implicit;e.xp6(1),e.Q6J("ngModel",n.IRCode)}}function y(t,o){if(1&t){const n=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",30),e.NdJ("ngModelChange",function(l){e.CHM(n);const i=e.oxw().$implicit;return e.KtG(i.IRCode=l)})("change",function(l){e.CHM(n);const i=e.oxw().$implicit,_=e.oxw();return e.KtG(_.updateIRCode(l,i.NwkId))}),e.qZA(),e._uU(2,"\n ")}if(2&t){const n=e.oxw().$implicit;e.xp6(1),e.Q6J("ngModel",n.IRCode)}}function I(t,o){if(1&t&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"td"),e._uU(4),e.qZA(),e._uU(5,"\n "),e.TgZ(6,"td"),e._uU(7),e.qZA(),e._uU(8,"\n "),e.TgZ(9,"td"),e._uU(10),e.qZA(),e._uU(11,"\n "),e.TgZ(12,"td"),e._uU(13),e.qZA(),e._uU(14,"\n "),e.TgZ(15,"td",27),e._uU(16,"\n "),e.TgZ(17,"p-cellEditor"),e._uU(18,"\n "),e.YNc(19,x,3,1,"ng-template",28),e._uU(20,"\n "),e.YNc(21,y,3,1,"ng-template",29),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA()()),2&t){const n=o.$implicit;e.xp6(4),e.hij("\n ",n.NwkId,"\n "),e.xp6(3),e.hij("\n ",n.Name,"\n "),e.xp6(3),e.hij("\n ",n.IEEE,"\n "),e.xp6(3),e.hij("\n ",n.Model,"\n "),e.xp6(2),e.Q6J("pEditableColumn",n.IRCode)}}const b=function(){return["NwkId","Name","IEEE","Model","IRCode"]},M=function(){return[10,25,50]};new c.Yd("CasaiaComponent");let N=(()=>{class t{constructor(n,a,l){this.apiService=n,this.toastr=a,this.translate=l,this.temp=[],this.hasEditing=!1}ngOnInit(){this.getCasaiaDevices()}updateIRCode(n,a){this.hasEditing=!0,this.rows.find(i=>i.NwkId===a).IRCode=n.target.value}updateCasaiaDevices(){const n=[];this.rows.forEach(a=>{n.push(new T(a.IRCode,a.NwkId))}),this.apiService.putCasiaIrcode(n).subscribe(a=>{this.hasEditing=!1,this.getCasaiaDevices(),this.toastr.success(this.translate.instant("api.global.succes.update.notify"))})}getCasaiaDevices(){this.apiService.getCasiaDevices().subscribe(n=>{this.rows=n,this.temp=[...this.rows]})}}return t.\u0275fac=function(n){return new(n||t)(e.Y36(g.s),e.Y36(Z._W),e.Y36(u.sK))},t.\u0275cmp=e.Xpm({type:t,selectors:[["app-manufacturer-casaia"]],decls:36,vars:23,consts:[[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"btn","btn-primary","float-end",3,"disabled","translate","click"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","NwkId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["dt1",""],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"placeholder","input"],["pSortableColumn","NwkId"],["field","NwkId"],["pSortableColumn","Name"],["field","Name"],["pSortableColumn","IEEE"],["field","IEEE"],["pSortableColumn","Model"],["field","Model"],["pSortableColumn","IRCode",2,"width","8rem"],["field","IRCode"],["pEditableColumnField","IRCode",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pInputText","","type","text",3,"ngModel","ngModelChange","change"]],template:function(n,a){1&n&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7),e.ALo(8,"translate"),e.TgZ(9,"button",4),e.NdJ("click",function(){return a.updateCasaiaDevices()}),e.ALo(10,"translate"),e.qZA(),e._uU(11,"\n "),e.qZA(),e._uU(12,"\n "),e.TgZ(13,"div",5),e._uU(14,"\n "),e._UZ(15,"h5",6),e.ALo(16,"translate"),e._uU(17,"\n "),e.TgZ(18,"div",7),e._uU(19,"\n "),e.TgZ(20,"p-table",8,9),e.ALo(22,"translate"),e._uU(23,"\n "),e.YNc(24,A,12,3,"ng-template",10),e._uU(25,"\n "),e.YNc(26,w,34,15,"ng-template",11),e._uU(27,"\n "),e.YNc(28,I,24,5,"ng-template",12),e._uU(29,"\n "),e.qZA(),e._uU(30,"\n "),e.qZA(),e._uU(31,"\n "),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n "),e.qZA(),e._uU(34,"\n"),e.qZA(),e._uU(35,"\n")),2&n&&(e.xp6(7),e.hij("\n ",e.lcZ(8,13,"manufacturer.casaia.header"),"\n "),e.xp6(2),e.s9C("translate",e.lcZ(10,15,"manufacturer.casaia.validate.button")),e.Q6J("disabled",!a.hasEditing),e.xp6(6),e.Q6J("innerHTML",e.lcZ(16,17,"manufacturer.casaia.subtitle"),e.oJD),e.xp6(5),e.s9C("currentPageReportTemplate",e.lcZ(22,19,"TOTAL")),e.Q6J("globalFilterFields",e.DdM(21,b))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.DdM(22,M))("value",a.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.Fj,p.JJ,p.On,u.Pi,s.iA,U.jx,s.lQ,s.Wq,s.YL,s.fz,v.o,u.X$]}),t})();class L{}var k=r(54004),C=r(36895),h=r(91835);function R(t,o){if(1&t&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&t){const n=o.item;e.xp6(5),e.hij(" : ",n.ZDeviceName," - "),e.xp6(3),e.hij(" : ",n.Nwkid,"")}}function q(t,o){if(1&t&&(e.TgZ(0,"p",11),e._uU(1),e.ALo(2,"translate"),e.qZA()),2&t){const n=e.oxw();e.xp6(1),e.hij("\n ",e.lcZ(2,1,"manufacturer.zlinky.".concat(n.deviceSelected.protocole)),"\n ")}}function P(t,o){1&t&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"th"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._uU(6,"\n "),e.TgZ(7,"th"),e._uU(8),e.ALo(9,"translate"),e.qZA(),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n ")),2&t&&(e.xp6(4),e.hij("\n ",e.lcZ(5,2,"manufacturer.zlinky.key"),"\n "),e.xp6(4),e.hij("\n ",e.lcZ(9,4,"manufacturer.zlinky.value"),"\n "))}function E(t,o){if(1&t&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"td"),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._uU(6,"\n "),e.TgZ(7,"td"),e._uU(8),e.qZA(),e._uU(9,"\n "),e.qZA()),2&t){const n=o.$implicit;e.xp6(4),e.hij("\n ",e.lcZ(5,2,"manufacturer.zlinky.".concat(n.key)),"\n "),e.xp6(4),e.hij("\n ",n.value,"\n ")}}const j=function(){return[10,25,50]};function J(t,o){if(1&t&&(e.TgZ(0,"p-table",12,13),e.ALo(2,"translate"),e._uU(3,"\n "),e.YNc(4,P,12,6,"ng-template",14),e._uU(5,"\n "),e.YNc(6,E,10,4,"ng-template",15),e._uU(7,"\n "),e.qZA()),2&t){const n=e.oxw();e.s9C("currentPageReportTemplate",e.lcZ(2,8,"TOTAL")),e.Q6J("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.DdM(10,j))("value",n.deviceSelected.ParametersForDisplay)("rows",10)("paginator",!0)("scrollable",!0)}}new c.Yd("ZlinkyComponent");let O=(()=>{class t{constructor(n,a,l){this.apiService=n,this.toastr=a,this.translate=l}ngOnInit(){this.zlinkys$=this.apiService.getZlinky().pipe((0,k.U)(n=>(n.forEach(a=>{a.protocole="PROTOCOL_LINKY_"+a["PROTOCOL Linky"],a.ParametersForDisplay=[],a.Parameters.forEach(l=>{const i=new L;i.key=Object.keys(l)[0],i.value=Object.values(l)[0],a.ParametersForDisplay.push(i)})}),n)))}getConfiguration(n){this.deviceSelected=n}}return t.\u0275fac=function(n){return new(n||t)(e.Y36(g.s),e.Y36(Z._W),e.Y36(u.sK))},t.\u0275cmp=e.Xpm({type:t,selectors:[["app-manufacturer-zlinky"]],decls:33,vars:17,consts:[[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["bindLabel","ZDeviceName","appendTo","body",1,"w-25",3,"items","multiple","closeOnSelect","searchable","placeholder","change","clear"],["ng-option-tmp",""],["class","mt-3 mb-3 font-weight-bold",4,"ngIf"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable",4,"ngIf"],[1,"mt-3","mb-3","font-weight-bold"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["dt1",""],["pTemplate","header"],["pTemplate","body"]],template:function(n,a){1&n&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7),e.ALo(8,"translate"),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e._UZ(12,"h5",5),e.ALo(13,"translate"),e._uU(14,"\n "),e.TgZ(15,"div",6),e._uU(16,"\n "),e.TgZ(17,"ng-select",7),e.NdJ("change",function(i){return a.getConfiguration(i)})("clear",function(){return a.deviceSelected=null}),e.ALo(18,"async"),e.ALo(19,"translate"),e._uU(20,"\n "),e.YNc(21,R,10,2,"ng-template",8),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n\n "),e.YNc(24,q,3,3,"p",9),e._uU(25,"\n\n "),e.YNc(26,J,8,11,"p-table",10),e._uU(27,"\n "),e.qZA(),e._uU(28,"\n "),e.qZA(),e._uU(29,"\n "),e.qZA(),e._uU(30,"\n "),e.qZA(),e._uU(31,"\n"),e.qZA(),e._uU(32,"\n")),2&n&&(e.xp6(7),e.hij("\n ",e.lcZ(8,9,"manufacturer.zlinky.header"),"\n "),e.xp6(5),e.Q6J("innerHTML",e.lcZ(13,11,"manufacturer.zlinky.subtitle"),e.oJD),e.xp6(5),e.s9C("placeholder",e.lcZ(19,15,"manufacturer.zlinky.placeholder")),e.Q6J("items",e.lcZ(18,13,a.zlinkys$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(7),e.Q6J("ngIf",a.deviceSelected),e.xp6(2),e.Q6J("ngIf",a.deviceSelected))},dependencies:[C.O5,h.w9,h.ir,s.iA,U.jx,C.Ov,u.X$]}),t})();const S=[{path:"casaia",component:N,data:{title:(0,c.Kl)("manufacturer.casaia")}},{path:"zlinky",component:O,data:{title:(0,c.Kl)("manufacturer.zlinky")}}];let Y=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=e.oAB({type:t}),t.\u0275inj=e.cJS({imports:[d.Bz.forChild(S),d.Bz]}),t})(),D=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=e.oAB({type:t}),t.\u0275inj=e.cJS({imports:[Y,f.m]}),t})()}}]); \ No newline at end of file diff --git a/www/z4d/508.fa5a169d0b5d66b9.js b/www/z4d/508.fa5a169d0b5d66b9.js deleted file mode 100644 index 05a0e7513..000000000 --- a/www/z4d/508.fa5a169d0b5d66b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[508],{19508:(H,_,l)=>{l.r(_),l.d(_,{GroupModule:()=>j});var p=l(24006),f=l(44466),m=l(96749),g=l(88648),h=l(62554),U=l(22995),t=l(94650),T=l(75958),C=l(5830),d=l(54463),G=l(97185),v=l(19513),Z=l(91835),c=l(55017),x=l(10805),b=l(51740);const w=["content"];function A(o,s){if(1&o){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"div",12),t._uU(2,"\n "),t.TgZ(3,"span",13),t._uU(4,"\n "),t._UZ(5,"i",14),t._uU(6,"\n "),t.TgZ(7,"input",15),t.NdJ("input",function(r){t.CHM(e),t.oxw();const i=t.MAs(16);return t.KtG(i.filterGlobal(r.target.value,"contains"))}),t.ALo(8,"translate"),t.qZA(),t._uU(9,"\n "),t.qZA(),t._uU(10,"\n "),t.TgZ(11,"button",16),t.NdJ("click",function(){t.CHM(e);const r=t.oxw();return t.KtG(r.add())}),t.qZA(),t._uU(12,"\n "),t.qZA(),t._uU(13,"\n ")}2&o&&(t.xp6(7),t.s9C("placeholder",t.lcZ(8,1,"device.byname.placeholder")))}function N(o,s){1&o&&(t._uU(0,"\n "),t.TgZ(1,"tr"),t._uU(2,"\n "),t._UZ(3,"th"),t._uU(4,"\n "),t.TgZ(5,"th",17),t._uU(6),t.ALo(7,"translate"),t._UZ(8,"p-sortIcon",18),t._uU(9,"\n "),t.qZA(),t._uU(10,"\n "),t.TgZ(11,"th",19),t._uU(12),t.ALo(13,"translate"),t._UZ(14,"p-sortIcon",20),t._uU(15,"\n "),t.qZA(),t._uU(16,"\n "),t.TgZ(17,"th"),t._uU(18),t.ALo(19,"translate"),t.qZA(),t._uU(20,"\n "),t.TgZ(21,"th"),t._uU(22),t.ALo(23,"translate"),t.qZA(),t._uU(24,"\n "),t.qZA(),t._uU(25,"\n ")),2&o&&(t.xp6(6),t.hij("\n ",t.lcZ(7,4,"group.create.shortid.column"),""),t.xp6(6),t.hij("\n ",t.lcZ(13,6,"group.create.groupname.column"),""),t.xp6(6),t.hij("\n ",t.lcZ(19,8,"group.create.devices.column"),"\n "),t.xp6(4),t.hij("\n ",t.lcZ(23,10,"group.create.coordinator.column"),"\n "))}function M(o,s){if(1&o){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"input",29),t.NdJ("ngModelChange",function(r){t.CHM(e);const i=t.oxw().$implicit;return t.KtG(i.GroupName=r)})("change",function(r){t.CHM(e);const i=t.oxw().$implicit,a=t.oxw();return t.KtG(a.updateValue(r,i._GroupId))}),t.qZA(),t._uU(2,"\n ")}if(2&o){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.GroupName)}}function E(o,s){if(1&o){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"input",29),t.NdJ("ngModelChange",function(r){t.CHM(e);const i=t.oxw().$implicit;return t.KtG(i.GroupName=r)})("change",function(r){t.CHM(e);const i=t.oxw().$implicit,a=t.oxw();return t.KtG(a.updateValue(r,i._GroupId))}),t.qZA(),t._uU(2,"\n ")}if(2&o){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngModel",e.GroupName)}}function I(o,s){if(1&o&&(t._uU(0,"\n "),t.TgZ(1,"span"),t._uU(2,"\n "),t.TgZ(3,"b"),t._uU(4,"Widget"),t.qZA(),t._uU(5),t.TgZ(6,"b"),t._uU(7,"IEEE"),t.qZA(),t._uU(8),t.TgZ(9,"b"),t._uU(10,"Ep"),t.qZA(),t._uU(11),t.TgZ(12,"b"),t._uU(13,"Id"),t.qZA(),t._uU(14),t.TgZ(15,"b"),t._uU(16),t.qZA(),t._uU(17,"\n "),t.qZA(),t._uU(18,"\n ")),2&o){const e=s.item;t.xp6(5),t.hij(" : ",e.Name," - "),t.xp6(3),t.hij(" : ",e.IEEE," - "),t.xp6(3),t.hij(" : ",e.Ep," -\n "),t.xp6(3),t.hij(" : ",e._ID," -\n "),t.xp6(2),t.Oqu(e.ZDeviceName)}}function y(o,s){if(1&o){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"tr"),t._uU(2,"\n "),t.TgZ(3,"td"),t._uU(4,"\n "),t.TgZ(5,"i",21),t.NdJ("click",function(){const i=t.CHM(e).$implicit,a=t.oxw();return t.KtG(a.delete(i))}),t.ALo(6,"translate"),t.qZA(),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.TgZ(9,"td"),t._uU(10),t.qZA(),t._uU(11,"\n "),t.TgZ(12,"td",22),t._uU(13,"\n "),t.TgZ(14,"p-cellEditor"),t._uU(15,"\n "),t.YNc(16,M,3,1,"ng-template",23),t._uU(17,"\n "),t.YNc(18,E,3,1,"ng-template",24),t._uU(19,"\n "),t.qZA(),t._uU(20,"\n "),t.qZA(),t._uU(21,"\n "),t.TgZ(22,"td"),t._uU(23,"\n "),t.TgZ(24,"ng-select",25),t.NdJ("ngModelChange",function(r){const a=t.CHM(e).$implicit;return t.KtG(a.devicesSelected=r)})("change",function(){t.CHM(e);const r=t.oxw();return t.KtG(r.isFormValid())}),t._uU(25,"\n "),t.YNc(26,I,19,5,"ng-template",26),t._uU(27,"\n "),t.qZA(),t._uU(28,"\n "),t.qZA(),t._uU(29,"\n "),t.TgZ(30,"td"),t._uU(31,"\n "),t.TgZ(32,"div",27),t._uU(33,"\n "),t.TgZ(34,"input",28),t.NdJ("click",function(r){const a=t.CHM(e).$implicit,u=t.oxw();return t.KtG(u.updateCoordinator(r,a))}),t.qZA(),t._uU(35,"\n "),t.qZA(),t._uU(36,"\n "),t.qZA()()}if(2&o){const e=s.$implicit,n=t.oxw();t.xp6(5),t.s9C("title",t.lcZ(6,9,"group.create.delete.button")),t.xp6(5),t.hij("\n ",e._GroupId,"\n "),t.xp6(2),t.Q6J("pEditableColumn",e.GroupName),t.xp6(12),t.Q6J("items",n.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0)("ngModel",e.devicesSelected),t.xp6(10),t.Q6J("checked",e.coordinatorInside)}}function q(o,s){if(1&o){const e=t.EpF();t._uU(0,"\n "),t.TgZ(1,"div",30),t._uU(2,"\n "),t._UZ(3,"h4",31),t._uU(4,"\n "),t.TgZ(5,"button",32),t.NdJ("click",function(){const i=t.CHM(e).$implicit;return t.KtG(i.dismiss("Cross click"))}),t.qZA(),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t._UZ(8,"div",33),t._uU(9,"\n "),t.TgZ(10,"div",34),t._uU(11,"\n "),t.TgZ(12,"button",35),t.NdJ("click",function(){const i=t.CHM(e).$implicit;return t.KtG(i.dismiss("cancel"))}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n ")}}const S=function(){return["_GroupId","GroupName"]},J=function(){return[10,25,50]},k=new g.Yd("GroupComponent"),F=[{path:"",component:(()=>{class o extends U.n{constructor(e,n,r,i,a,u){super(),this.modalService=e,this.apiService=n,this.formBuilder=r,this.translate=i,this.toastr=a,this.headerService=u,this.rows=[],this.rowsTemp=[],this.temp=[],this.hasEditing=!1,this.waiting=!1}ngOnInit(){this.apiService.getZGroupDevicesAvalaible().subscribe(e=>{const n=[];e&&e.length>0&&(e.forEach(r=>{r.WidgetList.forEach(i=>{if("0000"!==r._NwkId){const a=new h.zL;a.Ep=i.Ep,a.IEEE=i.IEEE,a.Name=i.Name,a.ZDeviceName=i.ZDeviceName,a._ID=i._ID,a._NwkId=r._NwkId,n.push(a)}})}),this.devices=[...n],this.getGroups())})}updateValue(e,n){this.hasEditing=!0,this.rows.find(i=>i._GroupId===n).GroupName=e.target.value}updateDevices(){this.rows.forEach(e=>{e.coordinatorInside&&(e.devicesSelected||(e.devicesSelected=[]),e.devicesSelected.push({Ep:"01",_NwkId:"0000"}))}),this.isFormValid&&this.apiService.putZGroups(this.rows).subscribe(e=>{k.debug(this.rows),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getRestartNeeded().subscribe(n=>{1===n.RestartNeeded&&(this.headerService.setRestart(!0),this.open(this.content))}),this.waiting=!0,setTimeout(()=>{this.getGroups(),this.waiting=!1},1e3)})}delete(e){const n=this.rows.indexOf(e,0);n>-1&&(this.rows.splice(n,1),this.rows=[...this.rows],this.temp=[...this.rows])}add(){const e=new h.ZA;e.GroupName="",e.coordinatorInside=!1,this.rows.push(e),this.rows=[...this.rows],this.temp=[...this.rows]}updateCoordinator(e,n){n.coordinatorInside=e.currentTarget.checked}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then(n=>{},n=>{})}isFormValid(){let e=!0;return this.rows.forEach(n=>{n.GroupName&&(n.coordinatorInside||n.devicesSelected&&0!==n.devicesSelected.length)||(e=!1)}),!this.waiting&&e}getGroups(){this.apiService.getZGroups().subscribe(e=>{e&&e.length>0&&(e.forEach(n=>{const r=[];n.coordinatorInside=!1,n.Devices.forEach(i=>{if("0000"===i._NwkId)n.coordinatorInside=!0;else{const a=this.devices.find(u=>u._NwkId===i._NwkId&&u.Ep===i.Ep);null!=a&&r.push(a)}}),n.devicesSelected=r}),this.rows=[...e],this.temp=[...e])})}}return o.\u0275fac=function(e){return new(e||o)(t.Y36(T.FF),t.Y36(C.s),t.Y36(p.qu),t.Y36(d.sK),t.Y36(G._W),t.Y36(v.r))},o.\u0275cmp=t.Xpm({type:o,selectors:[["app-group"]],viewQuery:function(e,n){if(1&e&&t.Gf(w,5),2&e){let r;t.iGM(r=t.CRH())&&(n.content=r.first)}},features:[t.qOj],decls:32,vars:20,consts:[[1,"card"],[1,"card-header","fw-bold"],["translate","group.create.validate.button",1,"btn","btn-primary","float-end",3,"disabled","click"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_GroupId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["dt1",""],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["content",""],[1,"d-flex","justify-content-between"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",1,"w-75",3,"placeholder","input"],["translate","group.create.add.button",1,"btn","btn-primary",3,"click"],["pSortableColumn","_GroupId",2,"width","8rem"],["field","_GroupId"],["pSortableColumn","GroupName",2,"width","10rem"],["field","GroupName"],[1,"fa","fa-trash",2,"cursor","pointer",3,"title","click"],["pEditableColumnField","GroupName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["bindLabel","Name","placeholder","Choose device","appendTo","body",3,"items","multiple","closeOnSelect","searchable","ngModel","ngModelChange","change"],["ng-option-tmp",""],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"checked","click"],["pInputText","","type","text",3,"ngModel","ngModelChange","change"],[1,"modal-header"],["id","modal-basic-title","translate","group.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","group.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","group.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(e,n){1&e&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t.TgZ(2,"div",1),t._uU(3),t.ALo(4,"translate"),t.TgZ(5,"button",2),t.NdJ("click",function(){return n.updateDevices()}),t.qZA(),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t.TgZ(8,"div",3),t._uU(9,"\n "),t._UZ(10,"p",4),t.ALo(11,"translate"),t._uU(12,"\n "),t.TgZ(13,"div",5),t._uU(14,"\n "),t.TgZ(15,"p-table",6,7),t.ALo(17,"translate"),t._uU(18,"\n "),t.YNc(19,A,14,3,"ng-template",8),t._uU(20,"\n "),t.YNc(21,N,26,12,"ng-template",9),t._uU(22,"\n "),t.YNc(23,y,37,11,"ng-template",10),t._uU(24,"\n "),t.qZA(),t._uU(25,"\n "),t.qZA(),t._uU(26,"\n "),t.qZA(),t._uU(27,"\n\n "),t.YNc(28,q,15,0,"ng-template",null,11,t.W1O),t._uU(30,"\n"),t.qZA(),t._uU(31,"\n")),2&e&&(t.xp6(3),t.hij("\n ",t.lcZ(4,12,"group.create.header"),""),t.xp6(2),t.Q6J("disabled",!n.isFormValid()),t.xp6(5),t.Q6J("innerHTML",t.lcZ(11,14,"group.create.subtitle"),t.oJD),t.xp6(5),t.s9C("currentPageReportTemplate",t.lcZ(17,16,"TOTAL")),t.Q6J("globalFilterFields",t.DdM(18,S))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.DdM(19,J))("value",n.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.Fj,p.JJ,p.On,Z.w9,Z.ir,d.Pi,c.iA,x.jx,c.lQ,c.Wq,c.YL,c.fz,b.o,d.X$]}),o})(),data:{title:(0,g.Kl)("group")}}];let L=(()=>{class o{}return o.\u0275fac=function(e){return new(e||o)},o.\u0275mod=t.oAB({type:o}),o.\u0275inj=t.cJS({imports:[m.Bz.forChild(F),m.Bz]}),o})(),j=(()=>{class o{}return o.\u0275fac=function(e){return new(e||o)},o.\u0275mod=t.oAB({type:o}),o.\u0275inj=t.cJS({imports:[L,f.m,p.u5]}),o})()}}]); \ No newline at end of file diff --git a/www/z4d/521.4a2e700ea1ed6d2d.js b/www/z4d/521.4a2e700ea1ed6d2d.js new file mode 100644 index 000000000..c4d967d63 --- /dev/null +++ b/www/z4d/521.4a2e700ea1ed6d2d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[521],{16521:(w,g,a)=>{a.r(g),a.d(g,{SettingsModule:()=>L});var f=a(93887),p=a(93331),v=a(38117),t=a(54438),_=a(88652),E=a(3366),r=a(89417),h=a(45794),b=a(38852),l=a(19664),k=a(37542),d=a(60177),j=a(97013);function S(e,c){if(1&e&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"label",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"input",7),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.k0s()),2&e){const n=t.XpG(2);t.R7$(2),t.FS9("translate",n.setting.Name)}}function T(e,c){if(1&e&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"label",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"input",7),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.k0s()),2&e){const n=t.XpG(2);t.R7$(2),t.FS9("translate",n.setting.Name)}}function C(e,c){if(1&e&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"label",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"input",8),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.k0s()),2&e){const n=t.XpG(2);t.R7$(2),t.FS9("translate",n.setting.Name)}}function G(e,c){if(1&e&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"label",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"input",9),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.k0s()),2&e){const n=t.XpG(2);t.R7$(2),t.FS9("translate",n.setting.Name)}}function N(e,c){if(1&e&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"label",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.j41(6,"ng-select",10),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.k0s()),2&e){const n=t.XpG(2);t.R7$(2),t.FS9("translate",n.setting.Name),t.R7$(4),t.Y8G("items",n.list)("compareWith",n.compareNumeric)("closeOnSelect",!0)}}function R(e,c){if(1&e&&(t.j41(0,"div",11),t.EFF(1,"\n "),t.nrm(2,"input",12),t.EFF(3,"\n "),t.nrm(4,"label",13),t.EFF(5,"\n "),t.k0s()),2&e){const n=t.XpG(2);t.R7$(2),t.FS9("id",n.setting.Name),t.R7$(2),t.FS9("for",n.setting.Name),t.FS9("translate",n.setting.Name)}}function y(e,c){if(1&e&&(t.j41(0,"div",1),t.EFF(1,"\n "),t.DNE(2,S,9,1,"div",2),t.EFF(3,"\n "),t.DNE(4,T,9,1,"div",2),t.EFF(5,"\n "),t.DNE(6,C,9,1,"div",2),t.EFF(7,"\n "),t.DNE(8,G,9,1,"div",2),t.EFF(9,"\n "),t.DNE(10,N,10,4,"div",2),t.EFF(11,"\n "),t.DNE(12,R,6,3,"div",3),t.EFF(13,"\n"),t.k0s()),2&e){const n=t.XpG();t.Y8G("formGroupName",n.setting.Name),t.R7$(2),t.Y8G("ngIf","str"===n.setting.DataType),t.R7$(2),t.Y8G("ngIf","path"===n.setting.DataType),t.R7$(2),t.Y8G("ngIf","int"===n.setting.DataType),t.R7$(2),t.Y8G("ngIf","hex"===n.setting.DataType),t.R7$(2),t.Y8G("ngIf","list"===n.setting.DataType),t.R7$(2),t.Y8G("ngIf","bool"===n.setting.DataType)}}let $=(()=>{class e{formBuilder;fgd;translate;setting;advanced;list=[];constructor(n,i,s){this.formBuilder=n,this.fgd=i,this.translate=s}ngOnChanges(n){let i;if(n.setting&&n.setting.currentValue){this.setting=n.setting.currentValue,"hex"===this.setting.DataType?i=this.formBuilder.group({current:["",r.k0.compose([r.k0.required,r.k0.pattern("^[0-9A-Fa-f]+")])]}):"bool"===this.setting.DataType?i=this.formBuilder.group({current:[]}):"list"===this.setting.DataType?(i=this.formBuilder.group({current:[null,r.k0.required]}),this.list=[],this.setting.list.forEach(o=>{const m=Object.keys(o)[0],u=Object.values(o)[0];this.list.push({label:m,value:u})})):i=this.formBuilder.group({current:["",r.k0.required]}),this.fgd.form.addControl(this.setting.Name,i);const s=""!==this.setting.current_value?this.setting.current_value:this.setting.default_value;this.fgd.form.get(this.setting.Name).get("current").patchValue(s)}}compareNumeric(n,i){return isNaN(n.value)?n.value===i:n.value===Number(i)}static \u0275fac=function(i){return new(i||e)(t.rXU(r.ok),t.rXU(r.j4),t.rXU(l.c$))};static \u0275cmp=t.VBU({type:e,selectors:[["app-setting"]],inputs:{setting:"setting",advanced:"advanced"},features:[t.Jv_([],[{provide:r.ZU,useExisting:r.j4}]),t.OA$],decls:2,vars:1,consts:[[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["class","form-group row mt-2",4,"ngIf"],["class","form-check form-check-inline mt-2",4,"ngIf"],[1,"form-group","row","mt-2"],["for","current",1,"col-sm-6","col-form-label",3,"translate"],[1,"col-sm"],["type","text","formControlName","current",1,"w-100","form-control"],["type","number","formControlName","current",1,"w-50","form-control"],["type","text","formControlName","current",1,"w-50","form-control"],["bindLabel","label","bindValue","value","formControlName","current",3,"items","compareWith","closeOnSelect"],[1,"form-check","form-check-inline","mt-2"],["formControlName","current","type","checkbox",1,"form-check-input",3,"id"],[1,"form-check-label",3,"for","translate"]],template:function(i,s){1&i&&(t.DNE(0,y,14,7,"div",0),t.EFF(1,"\n")),2&i&&t.Y8G("ngIf",!1===s.setting.Advanced||s.advanced===s.setting.Advanced)},dependencies:[d.bT,r.me,r.Q0,r.Zm,r.BC,r.cb,r.JD,r.$R,j.vr,l.Mm],styles:["was-validated[_ngcontent-%COMP%] .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]{color:#000}"]})}return e})();const F=["contentRestart"];function x(e,c){if(1&e&&(t.qex(0),t.EFF(1,"\n "),t.nrm(2,"app-setting",25),t.EFF(3,"\n "),t.bVm()),2&e){const n=c.$implicit,i=t.XpG(4);t.R7$(2),t.Y8G("setting",n)("advanced",i.advanced)}}function O(e,c){if(1&e&&(t.j41(0,"div",21),t.EFF(1,"\n "),t.nrm(2,"div",22),t.EFF(3,"\n "),t.j41(4,"div",23),t.EFF(5,"\n "),t.nrm(6,"p",17),t.EFF(7,"\n "),t.j41(8,"div",24),t.EFF(9,"\n "),t.DNE(10,x,4,2,"ng-container",19),t.EFF(11,"\n "),t.k0s(),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s()),2&e){const n=t.XpG().$implicit,i=t.XpG(2);t.R7$(2),t.Y8G("innerHTML",i.getTranslation("setting.header.",n._Theme),t.npT),t.R7$(4),t.Y8G("innerHTML",i.getTranslation("setting.subtitle.",n._Theme),t.npT),t.R7$(4),t.Y8G("ngForOf",n.ListOfSettings)}}function B(e,c){if(1&e&&(t.j41(0,"div"),t.EFF(1,"\n "),t.DNE(2,O,14,3,"div",20),t.EFF(3,"\n "),t.k0s()),2&e){const n=c.$implicit,i=t.XpG(2);t.R7$(2),t.Y8G("ngIf",i.hasBasicSettings(n.ListOfSettings))}}function I(e,c){if(1&e){const n=t.RV6();t.j41(0,"form",4),t.EFF(1,"\n "),t.j41(2,"fieldset",5),t.EFF(3,"\n "),t.j41(4,"legend"),t.EFF(5,"\n "),t.j41(6,"div",6),t.EFF(7,"\n "),t.nrm(8,"h5",7),t.nI1(9,"translate"),t.EFF(10,"\n "),t.j41(11,"div",8),t.EFF(12,"\n "),t.j41(13,"div",9),t.EFF(14,"\n "),t.j41(15,"div",10),t.EFF(16,"\n "),t.j41(17,"button",11),t.bIt("click",function(){t.eBV(n);const s=t.XpG();return t.Njj(s.updateSettings())}),t.k0s(),t.EFF(18,"\n "),t.k0s(),t.EFF(19,"\n "),t.j41(20,"div",12),t.EFF(21,"\n "),t.j41(22,"button",13),t.bIt("click",function(){t.eBV(n);const s=t.XpG();return t.Njj(s.reinitSettings())}),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.j41(25,"div",14),t.EFF(26,"\n "),t.j41(27,"input",15),t.bIt("click",function(s){t.eBV(n);const o=t.XpG();return t.Njj(o.advancedSettings(s))}),t.k0s(),t.EFF(28,"\n "),t.nrm(29,"label",16),t.EFF(30,"\n "),t.k0s(),t.EFF(31,"\n "),t.k0s(),t.EFF(32,"\n "),t.k0s(),t.EFF(33,"\n "),t.k0s(),t.EFF(34,"\n "),t.k0s(),t.EFF(35,"\n "),t.nrm(36,"p",17),t.nI1(37,"translate"),t.EFF(38,"\n "),t.k0s(),t.EFF(39,"\n "),t.j41(40,"div",18),t.EFF(41,"\n "),t.DNE(42,B,4,1,"div",19),t.EFF(43,"\n "),t.k0s(),t.EFF(44,"\n"),t.k0s()}if(2&e){const n=t.XpG();t.Y8G("formGroup",n.form),t.R7$(8),t.Y8G("innerHTML",t.bMT(9,6,"setting.help.legend"),t.npT),t.R7$(9),t.Y8G("disabled",!n.form.valid),t.R7$(10),t.Y8G("checked",n.advanced),t.R7$(9),t.Y8G("innerHTML",t.bMT(37,8,"setting.help.link"),t.npT),t.R7$(6),t.Y8G("ngForOf",n.settings)}}function D(e,c){if(1&e){const n=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",26),t.EFF(2,"\n "),t.nrm(3,"h4",27),t.EFF(4,"\n "),t.j41(5,"button",28),t.bIt("click",function(){const s=t.eBV(n).$implicit;return t.Njj(s.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",29),t.EFF(9,"\n "),t.j41(10,"div",30),t.EFF(11,"\n "),t.j41(12,"button",31),t.bIt("click",function(){const s=t.eBV(n).$implicit;return t.Njj(s.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n")}}function X(e,c){if(1&e){const n=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",26),t.EFF(2,"\n "),t.nrm(3,"h4",32),t.EFF(4,"\n "),t.j41(5,"button",28),t.bIt("click",function(){const s=t.eBV(n).$implicit;return t.Njj(s.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",33),t.EFF(9,"\n "),t.j41(10,"div",30),t.EFF(11,"\n "),t.j41(12,"button",34),t.bIt("click",function(){const s=t.eBV(n).$implicit;return t.Njj(s.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n")}}function M(e,c){if(1&e){const n=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",26),t.EFF(2,"\n "),t.nrm(3,"h4",35),t.EFF(4,"\n "),t.j41(5,"button",28),t.bIt("click",function(){const s=t.eBV(n).$implicit;return t.Njj(s.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",36),t.EFF(9,"\n "),t.j41(10,"div",30),t.EFF(11,"\n "),t.j41(12,"button",37),t.bIt("click",function(){const s=t.eBV(n).$implicit;return t.Njj(s.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n")}}const Y=[{path:"",component:(()=>{class e{modalService;apiService;formBuilder;toastr;headerService;translate;tracker;contentRestart;contentReset;contentErase;form;settings;advanced=!1;constructor(n,i,s,o,m,u,U){this.modalService=n,this.apiService=i,this.formBuilder=s,this.toastr=o,this.headerService=m,this.translate=u,this.tracker=U}ngOnInit(){this.form=this.formBuilder.group({}),this.apiService.getSettings().subscribe(n=>{this.settings=n,this.settings.sort((i,s)=>i._Order-s._Order)})}reinitSettings(){this.settings.forEach(n=>{const i=[];n.ListOfSettings.forEach(s=>{"path"!==s.DataType&&(s.current_value=s.default_value),i.push(Object.assign({},s))}),n.ListOfSettings=i}),this.settings=[...this.settings],this.form.markAsTouched()}advancedSettings(n){this.advanced=!!n.currentTarget.checked}updateSettings(){this.form.invalid?this.form.markAsTouched():(Object.keys(this.form.value).forEach(n=>{!0===this.form.value[n].current?this.form.value[n].current=1:!1===this.form.value[n].current&&(this.form.value[n].current=0)}),this.apiService.putSettings(this.form.value).subscribe(()=>{this.form.markAsPristine(),this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getSettings().subscribe(n=>{this.settings=n,this.settings.sort((i,s)=>i._Order-s._Order),n.forEach(i=>{i.ListOfSettings.forEach(o=>{"PluginAnalytics"===o.Name&&(1===o.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.apiService.getRestartNeeded().subscribe(n=>{1===n.RestartNeeded?(this.headerService.setRestart(!0),this.open(this.contentRestart)):2===n.RestartNeeded?this.open(this.contentReset):3===n.RestartNeeded&&this.open(this.contentErase)})}))}open(n){this.modalService.open(n,{ariaLabelledBy:"modal-basic-title"}).result.then()}hasBasicSettings(n){return!!this.advanced||n.filter(i=>!1===i.Advanced).length>0}getTranslation(n,i){return this.translate.instant(n.concat(i))}static \u0275fac=function(i){return new(i||e)(t.rXU(_.Bq),t.rXU(E.G),t.rXU(r.ok),t.rXU(h.tw),t.rXU(b.d),t.rXU(l.c$),t.rXU(k.kA))};static \u0275cmp=t.VBU({type:e,selectors:[["app-settings"]],viewQuery:function(i,s){if(1&i&&(t.GBs(F,5),t.GBs(F,5),t.GBs(F,5)),2&i){let o;t.mGM(o=t.lsd())&&(s.contentRestart=o.first),t.mGM(o=t.lsd())&&(s.contentReset=o.first),t.mGM(o=t.lsd())&&(s.contentErase=o.first)}},decls:11,vars:1,consts:[["contentRestart",""],["contentReset",""],["contentErase",""],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"h-100"],[1,"row"],[1,"col-sm-8",3,"innerHTML"],[1,"col-sm-4"],[1,"d-flex","flex-row-reverse","align-items-center"],[1,"p-2"],["translate","setting.validate.button",1,"btn","btn-primary",3,"click","disabled"],[1,"p-2","ms-3"],["translate","setting.reinit.button",1,"btn","btn-secondary",3,"click"],[1,"switch","switch-sm"],["type","checkbox","id","switch-advanced",1,"switch",3,"click","checked"],["for","switch-advanced","translate","setting.advanced.button",1,"mb-0"],[1,"card-text",3,"innerHTML"],[1,"row","row-cols-1","row-cols-md-3","g-4","mt-2"],[4,"ngFor","ngForOf"],["class","card h-100",4,"ngIf"],[1,"card","h-100"],[1,"card-header","fw-bold",3,"innerHTML"],[1,"card-body"],[1,"card-text"],[3,"setting","advanced"],[1,"modal-header"],["id","modal-basic-title","translate","setting.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","setting.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","setting.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.resetplugin.alert.title",1,"modal-title"],["translate","setting.resetplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.resetplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.eraseplugin.alert.title",1,"modal-title"],["translate","setting.eraseplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.eraseplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(i,s){1&i&&(t.DNE(0,I,45,10,"form",3),t.EFF(1,"\n\n"),t.DNE(2,D,15,0,"ng-template",null,0,t.C5r),t.EFF(4,"\n\n"),t.DNE(5,X,15,0,"ng-template",null,1,t.C5r),t.EFF(7,"\n\n"),t.DNE(8,M,15,0,"ng-template",null,2,t.C5r),t.EFF(10,"\n")),2&i&&t.Y8G("ngIf",s.settings)},dependencies:[d.Sq,d.bT,r.qT,r.cb,r.j4,l.Mm,$,l.D9],styles:[".btn-secondary[_ngcontent-%COMP%]{--bs-btn-color: white}"]})}return e})(),data:{title:(0,v.o6)("settings")}}];let V=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=t.$C({type:e});static \u0275inj=t.G2t({imports:[p.iI.forChild(Y),p.iI]})}return e})(),L=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=t.$C({type:e});static \u0275inj=t.G2t({imports:[V,f.G]})}return e})()}}]); \ No newline at end of file diff --git a/www/z4d/577.291f6dcdf5a2bbd5.js b/www/z4d/577.291f6dcdf5a2bbd5.js new file mode 100644 index 000000000..0d6f6fa85 --- /dev/null +++ b/www/z4d/577.291f6dcdf5a2bbd5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[577],{74577:(B,m,s)=>{s.r(m),s.d(m,{GroupModule:()=>X});var p=s(89417),h=s(93887),F=s(93331),g=s(38117),_=s(12298),f=s(28990),t=s(54438),G=s(88652),b=s(3366),u=s(19664),I=s(45794),j=s(38852),E=s(97013),c=s(46247),v=s(5779),k=s(22242);const C=["content"],N=()=>["_GroupId","GroupName"],T=()=>[10,25,50];function S(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",12),t.EFF(2,"\n "),t.j41(3,"span",13),t.EFF(4,"\n "),t.nrm(5,"i",14),t.EFF(6,"\n "),t.j41(7,"input",15),t.nI1(8,"translate"),t.bIt("input",function(o){t.eBV(e),t.XpG();const r=t.sdS(16);return t.Njj(r.filterGlobal(o.target.value,"contains"))}),t.k0s(),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"button",16),t.bIt("click",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.add())}),t.k0s(),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n ")}2&i&&(t.R7$(7),t.FS9("placeholder",t.bMT(8,1,"device.byname.placeholder")))}function w(i,l){1&i&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.nrm(3,"th"),t.EFF(4,"\n "),t.j41(5,"th",17),t.EFF(6),t.nI1(7,"translate"),t.nrm(8,"p-sortIcon",18),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"th",19),t.EFF(12),t.nI1(13,"translate"),t.nrm(14,"p-sortIcon",20),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.j41(17,"th"),t.EFF(18),t.nI1(19,"translate"),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th"),t.EFF(22),t.nI1(23,"translate"),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n ")),2&i&&(t.R7$(6),t.SpI("\n ",t.bMT(7,4,"group.create.shortid.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(13,6,"group.create.groupname.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(19,8,"group.create.devices.column"),"\n "),t.R7$(4),t.SpI("\n ",t.bMT(23,10,"group.create.coordinator.column"),"\n "))}function R(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function $(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function M(i,l){if(1&i&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Widget"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Ep"),t.k0s(),t.EFF(11),t.j41(12,"b"),t.EFF(13,"Id"),t.k0s(),t.EFF(14),t.j41(15,"b"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.k0s(),t.EFF(18,"\n ")),2&i){const e=l.item;t.R7$(5),t.SpI(" : ",e.Name," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" : ",e.Ep," -\n "),t.R7$(3),t.SpI(" : ",e._ID," -\n "),t.R7$(2),t.JRh(e.ZDeviceName)}}function V(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4,"\n "),t.j41(5,"i",21),t.nI1(6,"translate"),t.bIt("click",function(){const o=t.eBV(e).$implicit,r=t.XpG();return t.Njj(r.delete(o))}),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td",22),t.EFF(13,"\n "),t.j41(14,"p-cellEditor"),t.EFF(15,"\n "),t.DNE(16,R,3,1,"ng-template",23),t.EFF(17,"\n "),t.DNE(18,$,3,1,"ng-template",24),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.k0s(),t.EFF(21,"\n "),t.j41(22,"td"),t.EFF(23,"\n "),t.j41(24,"ng-select",25),t.mxI("ngModelChange",function(o){const r=t.eBV(e).$implicit;return t.DH7(r.devicesSelected,o)||(r.devicesSelected=o),t.Njj(o)}),t.bIt("change",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.isFormValid())}),t.EFF(25,"\n "),t.DNE(26,M,19,5,"ng-template",26),t.EFF(27,"\n "),t.k0s(),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.j41(30,"td"),t.EFF(31,"\n "),t.j41(32,"div",27),t.EFF(33,"\n "),t.j41(34,"input",28),t.bIt("click",function(o){const r=t.eBV(e).$implicit,a=t.XpG();return t.Njj(a.updateCoordinator(o,r))}),t.k0s(),t.EFF(35,"\n "),t.k0s(),t.EFF(36,"\n "),t.k0s()()}if(2&i){const e=l.$implicit,n=t.XpG();t.R7$(5),t.FS9("title",t.bMT(6,9,"group.create.delete.button")),t.R7$(5),t.SpI("\n ",e._GroupId,"\n "),t.R7$(2),t.Y8G("pEditableColumn",e.GroupName),t.R7$(12),t.Y8G("items",n.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),t.R50("ngModel",e.devicesSelected),t.R7$(10),t.Y8G("checked",e.coordinatorInside)}}function y(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",30),t.EFF(2,"\n "),t.nrm(3,"h4",31),t.EFF(4,"\n "),t.j41(5,"button",32),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",33),t.EFF(9,"\n "),t.j41(10,"div",34),t.EFF(11,"\n "),t.j41(12,"button",35),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n ")}}const x=[{path:"",component:(()=>{class i extends f.U{modalService;apiService;formBuilder;translate;toastr;headerService;content;form;rows=[];rowsTemp=[];devices;temp=[];hasEditing=!1;waiting=!1;constructor(e,n,o,r,a,d){super(),this.modalService=e,this.apiService=n,this.formBuilder=o,this.translate=r,this.toastr=a,this.headerService=d}ngOnInit(){this.apiService.getZGroupDevicesAvalaible().subscribe(e=>{const n=[];e&&e.length>0&&(e.forEach(o=>{o.WidgetList.forEach(r=>{if("0000"!==o._NwkId){const a=new _.ij;a.Ep=r.Ep,a.IEEE=r.IEEE,a.Name=r.Name,a.ZDeviceName=r.ZDeviceName,a._ID=r._ID,a._NwkId=o._NwkId,n.push(a)}})}),this.devices=[...n],this.getGroups())})}updateValue(e,n){this.hasEditing=!0,this.rows.find(r=>r._GroupId===n).GroupName=e.target.value}updateDevices(){this.rows.forEach(e=>{e.coordinatorInside&&(e.devicesSelected||(e.devicesSelected=[]),e.devicesSelected.push({Ep:"01",_NwkId:"0000"}))}),this.isFormValid&&this.apiService.putZGroups(this.rows).subscribe(()=>{this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getRestartNeeded().subscribe(e=>{1===e.RestartNeeded&&(this.headerService.setRestart(!0),this.open(this.content))}),this.waiting=!0,setTimeout(()=>{this.getGroups(),this.waiting=!1},1e3)})}delete(e){const n=this.rows.indexOf(e,0);n>-1&&(this.rows.splice(n,1),this.rows=[...this.rows],this.temp=[...this.rows])}add(){const e=new _.YJ;e.GroupName="",e.coordinatorInside=!1,this.rows.push(e),this.rows=[...this.rows],this.temp=[...this.rows]}updateCoordinator(e,n){n.coordinatorInside=e.currentTarget.checked}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then()}isFormValid(){let e=!0;return this.rows.forEach(n=>{n.GroupName&&(n.coordinatorInside||n.devicesSelected&&0!==n.devicesSelected.length)||(e=!1)}),!this.waiting&&e}getGroups(){this.apiService.getZGroups().subscribe(e=>{e&&e.length>0&&(e.forEach(n=>{const o=[];n.coordinatorInside=!1,n.Devices.forEach(r=>{if("0000"===r._NwkId)n.coordinatorInside=!0;else{const a=this.devices.find(d=>d._NwkId===r._NwkId&&d.Ep===r.Ep);null!=a&&o.push(a)}}),n.devicesSelected=o}),this.rows=[...e],this.temp=[...e])})}static \u0275fac=function(n){return new(n||i)(t.rXU(G.Bq),t.rXU(b.G),t.rXU(p.ok),t.rXU(u.c$),t.rXU(I.tw),t.rXU(j.d))};static \u0275cmp=t.VBU({type:i,selectors:[["app-group"]],viewQuery:function(n,o){if(1&n&&t.GBs(C,5),2&n){let r;t.mGM(r=t.lsd())&&(o.content=r.first)}},features:[t.Vt3],decls:32,vars:20,consts:[["dt1",""],["content",""],[1,"card"],[1,"card-header","fw-bold"],["translate","group.create.validate.button",1,"btn","btn-primary","float-end",3,"click","disabled"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_GroupId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"d-flex","justify-content-between"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",1,"w-75",3,"input","placeholder"],["translate","group.create.add.button",1,"btn","btn-primary",3,"click"],["pSortableColumn","_GroupId",2,"width","8rem"],["field","_GroupId"],["pSortableColumn","GroupName",2,"width","10rem"],["field","GroupName"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],["pEditableColumnField","GroupName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["bindLabel","Name","placeholder","Choose device","appendTo","body",3,"ngModelChange","change","items","multiple","closeOnSelect","searchable","ngModel"],["ng-option-tmp",""],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"click","checked"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"],[1,"modal-header"],["id","modal-basic-title","translate","group.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","group.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","group.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(n,o){if(1&n){const r=t.RV6();t.j41(0,"div",2),t.EFF(1,"\n "),t.j41(2,"div",3),t.EFF(3),t.nI1(4,"translate"),t.j41(5,"button",4),t.bIt("click",function(){return t.eBV(r),t.Njj(o.updateDevices())}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",5),t.EFF(9,"\n "),t.nrm(10,"p",6),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",7),t.EFF(14,"\n "),t.j41(15,"p-table",8,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,S,14,3,"ng-template",9),t.EFF(20,"\n "),t.DNE(21,w,26,12,"ng-template",10),t.EFF(22,"\n "),t.DNE(23,V,37,11,"ng-template",11),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n\n "),t.DNE(28,y,15,0,"ng-template",null,1,t.C5r),t.EFF(30,"\n"),t.k0s(),t.EFF(31,"\n")}2&n&&(t.R7$(3),t.SpI("\n ",t.bMT(4,12,"group.create.header"),""),t.R7$(2),t.Y8G("disabled",!o.isFormValid()),t.R7$(5),t.Y8G("innerHTML",t.bMT(11,14,"group.create.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,16,"TOTAL")),t.Y8G("globalFilterFields",t.lJ4(18,N))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(19,T))("value",o.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.me,p.BC,p.vS,E.vr,E.Uq,u.Mm,c.XI,v.Ei,c.Tg,c.hp,c.c5,c.yc,k.S,u.D9]})}return i})(),data:{title:(0,g.o6)("group")}}];let D=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[F.iI.forChild(x),F.iI]})}return i})(),X=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[D,h.G,p.YN]})}return i})()}}]); \ No newline at end of file diff --git a/www/z4d/580.471384bb1b9a988c.js b/www/z4d/580.471384bb1b9a988c.js deleted file mode 100644 index 2ba9afa2a..000000000 --- a/www/z4d/580.471384bb1b9a988c.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[580],{37580:(ct,wt,z)=>{"use strict";z.r(wt),z.d(wt,{NetworkModule:()=>Be});var ut=z(44466),et=z(37020),W=z(66270),U=z(95895),j=z(96671),X=z(3304),M=z(77579),N=z(54968),Z=z(56451),R=z(23601),A=z(82722),L=z(71884),x=z(69718),t=z(94650),s=z(36895);function g(e){return getComputedStyle(e)}function b(e,i){for(var o in i){var r=i[o];"number"==typeof r&&(r+="px"),e.style[o]=r}return e}function S(e){var i=document.createElement("div");return i.className=e,i}var l=typeof Element<"u"&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector);function d(e,i){if(!l)throw new Error("No element matching method supported");return l.call(e,i)}function a(e){e.remove?e.remove():e.parentNode&&e.parentNode.removeChild(e)}function f(e,i){return Array.prototype.filter.call(e.children,function(o){return d(o,i)})}var y_element_thumb=function(e){return"ps__thumb-"+e},y_element_rail=function(e){return"ps__rail-"+e},y_element_consuming="ps__child--consume",y_state_focus="ps--focus",y_state_clicking="ps--clicking",y_state_active=function(e){return"ps--active-"+e},y_state_scrolling=function(e){return"ps--scrolling-"+e},p={x:null,y:null};function c(e,i){var o=e.element.classList,r=y_state_scrolling(i);o.contains(r)?clearTimeout(p[i]):o.add(r)}function m(e,i){p[i]=setTimeout(function(){return e.isAlive&&e.element.classList.remove(y_state_scrolling(i))},e.settings.scrollingThreshold)}var h=function(i){this.element=i,this.handlers={}},n={isEmpty:{configurable:!0}};h.prototype.bind=function(i,o){typeof this.handlers[i]>"u"&&(this.handlers[i]=[]),this.handlers[i].push(o),this.element.addEventListener(i,o,!1)},h.prototype.unbind=function(i,o){var r=this;this.handlers[i]=this.handlers[i].filter(function(w){return!(!o||w===o)||(r.element.removeEventListener(i,w,!1),!1)})},h.prototype.unbindAll=function(){for(var i in this.handlers)this.unbind(i)},n.isEmpty.get=function(){var e=this;return Object.keys(this.handlers).every(function(i){return 0===e.handlers[i].length})},Object.defineProperties(h.prototype,n);var k=function(){this.eventElements=[]};function u(e){if("function"==typeof window.CustomEvent)return new CustomEvent(e);var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,!1,!1,void 0),i}function _(e,i,o,r,w){var Y;if(void 0===r&&(r=!0),void 0===w&&(w=!1),"top"===i)Y=["contentHeight","containerHeight","scrollTop","y","up","down"];else{if("left"!==i)throw new Error("A proper axis should be provided");Y=["contentWidth","containerWidth","scrollLeft","x","left","right"]}!function T(e,i,o,r,w){var Y=o[0],C=o[1],E=o[2],P=o[3],F=o[4],J=o[5];void 0===r&&(r=!0),void 0===w&&(w=!1);var V=e.element;e.reach[P]=null,V[E]<1&&(e.reach[P]="start"),V[E]>e[Y]-e[C]-1&&(e.reach[P]="end"),i&&(V.dispatchEvent(u("ps-scroll-"+P)),i<0?V.dispatchEvent(u("ps-scroll-"+F)):i>0&&V.dispatchEvent(u("ps-scroll-"+J)),r&&function v(e,i){c(e,i),m(e,i)}(e,P)),e.reach[P]&&(i||w)&&V.dispatchEvent(u("ps-"+P+"-reach-"+e.reach[P]))}(e,o,Y,r,w)}function D(e){return parseInt(e,10)||0}k.prototype.eventElement=function(i){var o=this.eventElements.filter(function(r){return r.element===i})[0];return o||(o=new h(i),this.eventElements.push(o)),o},k.prototype.bind=function(i,o,r){this.eventElement(i).bind(o,r)},k.prototype.unbind=function(i,o,r){var w=this.eventElement(i);w.unbind(o,r),w.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(w),1)},k.prototype.unbindAll=function(){this.eventElements.forEach(function(i){return i.unbindAll()}),this.eventElements=[]},k.prototype.once=function(i,o,r){var w=this.eventElement(i),Y=function(C){w.unbind(o,Y),r(C)};w.bind(o,Y)};var H={isWebKit:typeof document<"u"&&"WebkitAppearance"in document.documentElement.style,supportsTouch:typeof window<"u"&&("ontouchstart"in window||"maxTouchPoints"in window.navigator&&window.navigator.maxTouchPoints>0||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:typeof navigator<"u"&&navigator.msMaxTouchPoints,isChrome:typeof navigator<"u"&&/Chrome/i.test(navigator&&navigator.userAgent)};function I(e){var i=e.element,o=Math.floor(i.scrollTop),r=i.getBoundingClientRect();e.containerWidth=Math.ceil(r.width),e.containerHeight=Math.ceil(r.height),e.contentWidth=i.scrollWidth,e.contentHeight=i.scrollHeight,i.contains(e.scrollbarXRail)||(f(i,y_element_rail("x")).forEach(function(w){return a(w)}),i.appendChild(e.scrollbarXRail)),i.contains(e.scrollbarYRail)||(f(i,y_element_rail("y")).forEach(function(w){return a(w)}),i.appendChild(e.scrollbarYRail)),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),function ot(e,i){var o={width:i.railXWidth},r=Math.floor(e.scrollTop);o.left=i.isRtl?i.negativeScrollAdjustment+e.scrollLeft+i.containerWidth-i.contentWidth:e.scrollLeft,i.isScrollbarXUsingBottom?o.bottom=i.scrollbarXBottom-r:o.top=i.scrollbarXTop+r,b(i.scrollbarXRail,o);var w={top:r,height:i.railYHeight};i.isScrollbarYUsingRight?w.right=i.isRtl?i.contentWidth-(i.negativeScrollAdjustment+e.scrollLeft)-i.scrollbarYRight-i.scrollbarYOuterWidth-9:i.scrollbarYRight-e.scrollLeft:w.left=i.isRtl?i.negativeScrollAdjustment+e.scrollLeft+2*i.containerWidth-i.contentWidth-i.scrollbarYLeft-i.scrollbarYOuterWidth:i.scrollbarYLeft+e.scrollLeft,b(i.scrollbarYRail,w),b(i.scrollbarX,{left:i.scrollbarXLeft,width:i.scrollbarXWidth-i.railBorderXWidth}),b(i.scrollbarY,{top:i.scrollbarYTop,height:i.scrollbarYHeight-i.railBorderYWidth})}(i,e),e.scrollbarXActive?i.classList.add(y_state_active("x")):(i.classList.remove(y_state_active("x")),e.scrollbarXWidth=0,e.scrollbarXLeft=0,i.scrollLeft=!0===e.isRtl?e.contentWidth:0),e.scrollbarYActive?i.classList.add(y_state_active("y")):(i.classList.remove(y_state_active("y")),e.scrollbarYHeight=0,e.scrollbarYTop=0,i.scrollTop=0)}function q(e,i){return e.settings.minScrollbarLength&&(i=Math.max(i,e.settings.minScrollbarLength)),e.settings.maxScrollbarLength&&(i=Math.min(i,e.settings.maxScrollbarLength)),i}function st(e,i){var o=i[0],r=i[1],w=i[2],Y=i[3],C=i[4],E=i[5],P=i[6],F=i[7],J=i[8],V=e.element,lt=null,St=null,Q=null;function nt(K){K.touches&&K.touches[0]&&(K[w]=K.touches[0].pageY),V[P]=lt+Q*(K[w]-St),c(e,F),I(e),K.stopPropagation(),K.preventDefault()}function vt(){m(e,F),e[J].classList.remove(y_state_clicking),e.event.unbind(e.ownerDocument,"mousemove",nt)}function tt(K,bt){lt=V[P],bt&&K.touches&&(K[w]=K.touches[0].pageY),St=K[w],Q=(e[r]-e[o])/(e[Y]-e[E]),bt?e.event.bind(e.ownerDocument,"touchmove",nt):(e.event.bind(e.ownerDocument,"mousemove",nt),e.event.once(e.ownerDocument,"mouseup",vt),K.preventDefault()),e[J].classList.add(y_state_clicking),K.stopPropagation()}e.event.bind(e[C],"mousedown",function(K){tt(K)}),e.event.bind(e[C],"touchstart",function(K){tt(K,!0)})}var mt={"click-rail":function $(e){e.event.bind(e.scrollbarY,"mousedown",function(o){return o.stopPropagation()}),e.event.bind(e.scrollbarYRail,"mousedown",function(o){var r=o.pageY-window.pageYOffset-e.scrollbarYRail.getBoundingClientRect().top;e.element.scrollTop+=(r>e.scrollbarYTop?1:-1)*e.containerHeight,I(e),o.stopPropagation()}),e.event.bind(e.scrollbarX,"mousedown",function(o){return o.stopPropagation()}),e.event.bind(e.scrollbarXRail,"mousedown",function(o){var r=o.pageX-window.pageXOffset-e.scrollbarXRail.getBoundingClientRect().left;e.element.scrollLeft+=(r>e.scrollbarXLeft?1:-1)*e.containerWidth,I(e),o.stopPropagation()})},"drag-thumb":function G(e){st(e,["containerWidth","contentWidth","pageX","railXWidth","scrollbarX","scrollbarXWidth","scrollLeft","x","scrollbarXRail"]),st(e,["containerHeight","contentHeight","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollTop","y","scrollbarYRail"])},keyboard:function it(e){var i=e.element;e.event.bind(e.ownerDocument,"keydown",function(Y){if(!(Y.isDefaultPrevented&&Y.isDefaultPrevented()||Y.defaultPrevented)&&(d(i,":hover")||d(e.scrollbarX,":focus")||d(e.scrollbarY,":focus"))){var C=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(C){if("IFRAME"===C.tagName)C=C.contentDocument.activeElement;else for(;C.shadowRoot;)C=C.shadowRoot.activeElement;if(function O(e){return d(e,"input,[contenteditable]")||d(e,"select,[contenteditable]")||d(e,"textarea,[contenteditable]")||d(e,"button,[contenteditable]")}(C))return}var E=0,P=0;switch(Y.which){case 37:E=Y.metaKey?-e.contentWidth:Y.altKey?-e.containerWidth:-30;break;case 38:P=Y.metaKey?e.contentHeight:Y.altKey?e.containerHeight:30;break;case 39:E=Y.metaKey?e.contentWidth:Y.altKey?e.containerWidth:30;break;case 40:P=Y.metaKey?-e.contentHeight:Y.altKey?-e.containerHeight:-30;break;case 32:P=Y.shiftKey?e.containerHeight:-e.containerHeight;break;case 33:P=e.containerHeight;break;case 34:P=-e.containerHeight;break;case 36:P=e.contentHeight;break;case 35:P=-e.contentHeight;break;default:return}e.settings.suppressScrollX&&0!==E||e.settings.suppressScrollY&&0!==P||(i.scrollTop-=P,i.scrollLeft+=E,I(e),function w(Y,C){var E=Math.floor(i.scrollTop);if(0===Y){if(!e.scrollbarYActive)return!1;if(0===E&&C>0||E>=e.contentHeight-e.containerHeight&&C<0)return!e.settings.wheelPropagation}var P=i.scrollLeft;if(0===C){if(!e.scrollbarXActive)return!1;if(0===P&&Y<0||P>=e.contentWidth-e.containerWidth&&Y>0)return!e.settings.wheelPropagation}return!0}(E,P)&&Y.preventDefault())}})},wheel:function at(e){var i=e.element;function Y(C){var E=function r(C){var E=C.deltaX,P=-1*C.deltaY;return(typeof E>"u"||typeof P>"u")&&(E=-1*C.wheelDeltaX/6,P=C.wheelDeltaY/6),C.deltaMode&&1===C.deltaMode&&(E*=10,P*=10),E!=E&&P!=P&&(E=0,P=C.wheelDelta),C.shiftKey?[-P,-E]:[E,P]}(C),P=E[0],F=E[1];if(!function w(C,E,P){if(!H.isWebKit&&i.querySelector("select:focus"))return!0;if(!i.contains(C))return!1;for(var F=C;F&&F!==i;){if(F.classList.contains(y_element_consuming))return!0;var J=g(F);if(P&&J.overflowY.match(/(scroll|auto)/)){var V=F.scrollHeight-F.clientHeight;if(V>0&&(F.scrollTop>0&&P<0||F.scrollTop0))return!0}if(E&&J.overflowX.match(/(scroll|auto)/)){var lt=F.scrollWidth-F.clientWidth;if(lt>0&&(F.scrollLeft>0&&E<0||F.scrollLeft0))return!0}F=F.parentNode}return!1}(C.target,P,F)){var J=!1;e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(F?i.scrollTop-=F*e.settings.wheelSpeed:i.scrollTop+=P*e.settings.wheelSpeed,J=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(P?i.scrollLeft+=P*e.settings.wheelSpeed:i.scrollLeft-=F*e.settings.wheelSpeed,J=!0):(i.scrollTop-=F*e.settings.wheelSpeed,i.scrollLeft+=P*e.settings.wheelSpeed),I(e),J=J||function o(C,E){var P=Math.floor(i.scrollTop),F=0===i.scrollTop,J=P+i.offsetHeight===i.scrollHeight,V=0===i.scrollLeft,lt=i.scrollLeft+i.offsetWidth===i.scrollWidth;return!(Math.abs(E)>Math.abs(C)?F||J:V||lt)||!e.settings.wheelPropagation}(P,F),J&&!C.ctrlKey&&(C.stopPropagation(),C.preventDefault())}}typeof window.onwheel<"u"?e.event.bind(i,"wheel",Y):typeof window.onmousewheel<"u"&&e.event.bind(i,"mousewheel",Y)},touch:function kt(e){if(H.supportsTouch||H.supportsIePointer){var i=e.element,w={},Y=0,C={},E=null;H.supportsTouch?(e.event.bind(i,"touchstart",J),e.event.bind(i,"touchmove",lt),e.event.bind(i,"touchend",St)):H.supportsIePointer&&(window.PointerEvent?(e.event.bind(i,"pointerdown",J),e.event.bind(i,"pointermove",lt),e.event.bind(i,"pointerup",St)):window.MSPointerEvent&&(e.event.bind(i,"MSPointerDown",J),e.event.bind(i,"MSPointerMove",lt),e.event.bind(i,"MSPointerUp",St)))}function r(Q,nt){i.scrollTop-=nt,i.scrollLeft-=Q,I(e)}function P(Q){return Q.targetTouches?Q.targetTouches[0]:Q}function F(Q){return!(Q.pointerType&&"pen"===Q.pointerType&&0===Q.buttons||!(Q.targetTouches&&1===Q.targetTouches.length||Q.pointerType&&"mouse"!==Q.pointerType&&Q.pointerType!==Q.MSPOINTER_TYPE_MOUSE))}function J(Q){if(F(Q)){var nt=P(Q);w.pageX=nt.pageX,w.pageY=nt.pageY,Y=(new Date).getTime(),null!==E&&clearInterval(E)}}function lt(Q){if(F(Q)){var nt=P(Q),vt={pageX:nt.pageX,pageY:nt.pageY},tt=vt.pageX-w.pageX,K=vt.pageY-w.pageY;if(function V(Q,nt,vt){if(!i.contains(Q))return!1;for(var tt=Q;tt&&tt!==i;){if(tt.classList.contains(y_element_consuming))return!0;var K=g(tt);if(vt&&K.overflowY.match(/(scroll|auto)/)){var bt=tt.scrollHeight-tt.clientHeight;if(bt>0&&(tt.scrollTop>0&&vt<0||tt.scrollTop0))return!0}if(nt&&K.overflowX.match(/(scroll|auto)/)){var Ut=tt.scrollWidth-tt.clientWidth;if(Ut>0&&(tt.scrollLeft>0&&nt<0||tt.scrollLeft0))return!0}tt=tt.parentNode}return!1}(Q.target,tt,K))return;r(tt,K),w=vt;var bt=(new Date).getTime(),Ut=bt-Y;Ut>0&&(C.x=tt/Ut,C.y=K/Ut,Y=bt),function o(Q,nt){var vt=Math.floor(i.scrollTop),tt=i.scrollLeft,K=Math.abs(Q),bt=Math.abs(nt);if(bt>K){if(nt<0&&vt===e.contentHeight-e.containerHeight||nt>0&&0===vt)return 0===window.scrollY&&nt>0&&H.isChrome}else if(K>bt&&(Q<0&&tt===e.contentWidth-e.containerWidth||Q>0&&0===tt))return!0;return!0}(tt,K)&&Q.preventDefault()}}function St(){e.settings.swipeEasing&&(clearInterval(E),E=setInterval(function(){e.isInitialized?clearInterval(E):C.x||C.y?Math.abs(C.x)<.01&&Math.abs(C.y)<.01?clearInterval(E):(r(30*C.x,30*C.y),C.x*=.8,C.y*=.8):clearInterval(E)},10))}}},ht=function(i,o){var r=this;if(void 0===o&&(o={}),"string"==typeof i&&(i=document.querySelector(i)),!i||!i.nodeName)throw new Error("no element is specified to initialize PerfectScrollbar");for(var w in this.element=i,i.classList.add("ps"),this.settings={handlers:["click-rail","drag-thumb","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1},o)this.settings[w]=o[w];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var J,F,Y=function(){return i.classList.add(y_state_focus)},C=function(){return i.classList.remove(y_state_focus)};this.isRtl="rtl"===g(i).direction,!0===this.isRtl&&i.classList.add("ps__rtl"),this.isNegativeScroll=(F=i.scrollLeft,i.scrollLeft=-1,J=i.scrollLeft<0,i.scrollLeft=F,J),this.negativeScrollAdjustment=this.isNegativeScroll?i.scrollWidth-i.clientWidth:0,this.event=new k,this.ownerDocument=i.ownerDocument||document,this.scrollbarXRail=S(y_element_rail("x")),i.appendChild(this.scrollbarXRail),this.scrollbarX=S(y_element_thumb("x")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute("tabindex",0),this.event.bind(this.scrollbarX,"focus",Y),this.event.bind(this.scrollbarX,"blur",C),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var E=g(this.scrollbarXRail);this.scrollbarXBottom=parseInt(E.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=D(E.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=D(E.borderLeftWidth)+D(E.borderRightWidth),b(this.scrollbarXRail,{display:"block"}),this.railXMarginWidth=D(E.marginLeft)+D(E.marginRight),b(this.scrollbarXRail,{display:""}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=S(y_element_rail("y")),i.appendChild(this.scrollbarYRail),this.scrollbarY=S(y_element_thumb("y")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute("tabindex",0),this.event.bind(this.scrollbarY,"focus",Y),this.event.bind(this.scrollbarY,"blur",C),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var P=g(this.scrollbarYRail);this.scrollbarYRight=parseInt(P.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=D(P.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?function B(e){var i=g(e);return D(i.width)+D(i.paddingLeft)+D(i.paddingRight)+D(i.borderLeftWidth)+D(i.borderRightWidth)}(this.scrollbarY):null,this.railBorderYWidth=D(P.borderTopWidth)+D(P.borderBottomWidth),b(this.scrollbarYRail,{display:"block"}),this.railYMarginHeight=D(P.marginTop)+D(P.marginBottom),b(this.scrollbarYRail,{display:""}),this.railYHeight=null,this.railYRatio=null,this.reach={x:i.scrollLeft<=0?"start":i.scrollLeft>=this.contentWidth-this.containerWidth?"end":null,y:i.scrollTop<=0?"start":i.scrollTop>=this.contentHeight-this.containerHeight?"end":null},this.isAlive=!0,this.settings.handlers.forEach(function(F){return mt[F](r)}),this.lastScrollTop=Math.floor(i.scrollTop),this.lastScrollLeft=i.scrollLeft,this.event.bind(this.element,"scroll",function(F){return r.onScroll(F)}),I(this)};ht.prototype.update=function(){!this.isAlive||(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,b(this.scrollbarXRail,{display:"block"}),b(this.scrollbarYRail,{display:"block"}),this.railXMarginWidth=D(g(this.scrollbarXRail).marginLeft)+D(g(this.scrollbarXRail).marginRight),this.railYMarginHeight=D(g(this.scrollbarYRail).marginTop)+D(g(this.scrollbarYRail).marginBottom),b(this.scrollbarXRail,{display:"none"}),b(this.scrollbarYRail,{display:"none"}),I(this),_(this,"top",0,!1,!0),_(this,"left",0,!1,!0),b(this.scrollbarXRail,{display:""}),b(this.scrollbarYRail,{display:""}))},ht.prototype.onScroll=function(i){!this.isAlive||(I(this),_(this,"top",this.element.scrollTop-this.lastScrollTop),_(this,"left",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},ht.prototype.destroy=function(){!this.isAlive||(this.event.unbindAll(),a(this.scrollbarX),a(this.scrollbarY),a(this.scrollbarXRail),a(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},ht.prototype.removePsClasses=function(){this.element.className=this.element.className.split(" ").filter(function(i){return!i.match(/^ps([-_].+|)$/)}).join(" ")};const gt=ht;var dt=function(){if(typeof Map<"u")return Map;function e(i,o){var r=-1;return i.some(function(w,Y){return w[0]===o&&(r=Y,!0)}),r}return function(){function i(){this.__entries__=[]}return Object.defineProperty(i.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),i.prototype.get=function(o){var r=e(this.__entries__,o),w=this.__entries__[r];return w&&w[1]},i.prototype.set=function(o,r){var w=e(this.__entries__,o);~w?this.__entries__[w][1]=r:this.__entries__.push([o,r])},i.prototype.delete=function(o){var r=this.__entries__,w=e(r,o);~w&&r.splice(w,1)},i.prototype.has=function(o){return!!~e(this.__entries__,o)},i.prototype.clear=function(){this.__entries__.splice(0)},i.prototype.forEach=function(o,r){void 0===r&&(r=null);for(var w=0,Y=this.__entries__;w0},e.prototype.connect_=function(){!pt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Rt?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!pt||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(i){var o=i.propertyName,r=void 0===o?"":o;At.some(function(Y){return!!~r.indexOf(Y)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Zt=function(e,i){for(var o=0,r=Object.keys(i);o"u")&&Element instanceof Object){if(!(i instanceof Tt(i).Element))throw new TypeError('parameter 1 is not of type "Element".');var o=this.observations_;o.has(i)||(o.set(i,new ae(i)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(i){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u")&&Element instanceof Object){if(!(i instanceof Tt(i).Element))throw new TypeError('parameter 1 is not of type "Element".');var o=this.observations_;!o.has(i)||(o.delete(i),o.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var i=this;this.clearActive(),this.observations_.forEach(function(o){o.isActive()&&i.activeObservations_.push(o)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var i=this.callbackCtx_,o=this.activeObservations_.map(function(r){return new le(r.target,r.broadcastRect())});this.callback_.call(i,o,i),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),zt=typeof WeakMap<"u"?new WeakMap:new dt,Jt=function e(i){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var o=Pt.getInstance(),r=new ce(i,o,this);zt.set(this,r)};["observe","unobserve","disconnect"].forEach(function(e){Jt.prototype[e]=function(){var i;return(i=zt.get(this))[e].apply(i,arguments)}});const pe=typeof yt.ResizeObserver<"u"?yt.ResizeObserver:Jt;function ue(e,i){if(1&e&&(t.TgZ(0,"div",3),t._uU(1,"\n "),t._UZ(2,"div",4),t._uU(3,"\n "),t._UZ(4,"div",5),t._uU(5,"\n "),t._UZ(6,"div",6),t._uU(7,"\n "),t._UZ(8,"div",7),t._uU(9,"\n "),t.qZA()),2&e){const o=t.oxw();t.ekj("ps-at-top",o.states.top)("ps-at-left",o.states.left)("ps-at-right",o.states.right)("ps-at-bottom",o.states.bottom),t.xp6(2),t.ekj("ps-indicator-show",o.indicatorY&&o.interaction),t.xp6(2),t.ekj("ps-indicator-show",o.indicatorX&&o.interaction),t.xp6(2),t.ekj("ps-indicator-show",o.indicatorX&&o.interaction),t.xp6(2),t.ekj("ps-indicator-show",o.indicatorY&&o.interaction)}}const de=["*"],Qt=new t.OlP("PERFECT_SCROLLBAR_CONFIG");class fe{constructor(i,o,r,w){this.x=i,this.y=o,this.w=r,this.h=w}}class Kt{constructor(i,o){this.x=i,this.y=o}}const Vt=["psScrollY","psScrollX","psScrollUp","psScrollDown","psScrollLeft","psScrollRight","psYReachEnd","psYReachStart","psXReachEnd","psXReachStart"];class ve{constructor(i={}){this.assign(i)}assign(i={}){for(const o in i)this[o]=i[o]}}let $t=(()=>{class e{constructor(o,r,w,Y,C){this.zone=o,this.differs=r,this.elementRef=w,this.platformId=Y,this.defaults=C,this.instance=null,this.ro=null,this.timeout=null,this.animation=null,this.configDiff=null,this.ngDestroy=new M.x,this.disabled=!1,this.psScrollY=new t.vpe,this.psScrollX=new t.vpe,this.psScrollUp=new t.vpe,this.psScrollDown=new t.vpe,this.psScrollLeft=new t.vpe,this.psScrollRight=new t.vpe,this.psYReachEnd=new t.vpe,this.psYReachStart=new t.vpe,this.psXReachEnd=new t.vpe,this.psXReachStart=new t.vpe}ngOnInit(){if(!this.disabled&&(0,s.NF)(this.platformId)){const o=new ve(this.defaults);o.assign(this.config),this.zone.runOutsideAngular(()=>{this.instance=new gt(this.elementRef.nativeElement,o)}),this.configDiff||(this.configDiff=this.differs.find(this.config||{}).create(),this.configDiff.diff(this.config||{})),this.zone.runOutsideAngular(()=>{this.ro=new pe(()=>{this.update()}),this.elementRef.nativeElement.children[0]&&this.ro.observe(this.elementRef.nativeElement.children[0]),this.ro.observe(this.elementRef.nativeElement)}),this.zone.runOutsideAngular(()=>{Vt.forEach(r=>{const w=r.replace(/([A-Z])/g,Y=>`-${Y.toLowerCase()}`);(0,N.R)(this.elementRef.nativeElement,w).pipe((0,R.e)(20),(0,A.R)(this.ngDestroy)).subscribe(Y=>{this[r].emit(Y)})})})}}ngOnDestroy(){(0,s.NF)(this.platformId)&&(this.ngDestroy.next(),this.ngDestroy.complete(),this.ro&&this.ro.disconnect(),this.timeout&&typeof window<"u"&&window.clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.instance&&this.instance.destroy()}),this.instance=null)}ngDoCheck(){!this.disabled&&this.configDiff&&(0,s.NF)(this.platformId)&&this.configDiff.diff(this.config||{})&&(this.ngOnDestroy(),this.ngOnInit())}ngOnChanges(o){o.disabled&&!o.disabled.isFirstChange()&&(0,s.NF)(this.platformId)&&o.disabled.currentValue!==o.disabled.previousValue&&(!0===o.disabled.currentValue?this.ngOnDestroy():!1===o.disabled.currentValue&&this.ngOnInit())}ps(){return this.instance}update(){typeof window<"u"&&(this.timeout&&window.clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{if(!this.disabled&&this.configDiff)try{this.zone.runOutsideAngular(()=>{this.instance&&this.instance.update()})}catch{}},0))}geometry(o="scroll"){return new fe(this.elementRef.nativeElement[o+"Left"],this.elementRef.nativeElement[o+"Top"],this.elementRef.nativeElement[o+"Width"],this.elementRef.nativeElement[o+"Height"])}position(o=!1){return!o&&this.instance?new Kt(this.instance.reach.x||0,this.instance.reach.y||0):new Kt(this.elementRef.nativeElement.scrollLeft,this.elementRef.nativeElement.scrollTop)}scrollable(o="any"){const r=this.elementRef.nativeElement;return"any"===o?r.classList.contains("ps--active-x")||r.classList.contains("ps--active-y"):"both"===o?r.classList.contains("ps--active-x")&&r.classList.contains("ps--active-y"):r.classList.contains("ps--active-"+o)}scrollTo(o,r,w){this.disabled||(null==r&&null==w?this.animateScrolling("scrollTop",o,w):(null!=o&&this.animateScrolling("scrollLeft",o,w),null!=r&&this.animateScrolling("scrollTop",r,w)))}scrollToX(o,r){this.animateScrolling("scrollLeft",o,r)}scrollToY(o,r){this.animateScrolling("scrollTop",o,r)}scrollToTop(o,r){this.animateScrolling("scrollTop",o||0,r)}scrollToLeft(o,r){this.animateScrolling("scrollLeft",o||0,r)}scrollToRight(o,r){this.animateScrolling("scrollLeft",this.elementRef.nativeElement.scrollWidth-this.elementRef.nativeElement.clientWidth-(o||0),r)}scrollToBottom(o,r){this.animateScrolling("scrollTop",this.elementRef.nativeElement.scrollHeight-this.elementRef.nativeElement.clientHeight-(o||0),r)}scrollToElement(o,r,w){if("string"==typeof o&&(o=this.elementRef.nativeElement.querySelector(o)),o){const Y=o.getBoundingClientRect(),C=this.elementRef.nativeElement.getBoundingClientRect();this.elementRef.nativeElement.classList.contains("ps--active-x")&&this.animateScrolling("scrollLeft",Y.left-C.left+this.elementRef.nativeElement.scrollLeft+(r||0),w),this.elementRef.nativeElement.classList.contains("ps--active-y")&&this.animateScrolling("scrollTop",Y.top-C.top+this.elementRef.nativeElement.scrollTop+(r||0),w)}}animateScrolling(o,r,w){if(this.animation&&(window.cancelAnimationFrame(this.animation),this.animation=null),!w||typeof window>"u")this.elementRef.nativeElement[o]=r;else if(r!==this.elementRef.nativeElement[o]){let Y=0,C=0,E=performance.now(),P=this.elementRef.nativeElement[o];const F=(P-r)/2,J=V=>{C+=Math.PI/(w/(V-E)),Y=Math.round(r+F+F*Math.cos(C)),this.elementRef.nativeElement[o]===P&&(C>=Math.PI?this.animateScrolling(o,r,0):(this.elementRef.nativeElement[o]=Y,P=this.elementRef.nativeElement[o],E=V,this.animation=window.requestAnimationFrame(J)))};window.requestAnimationFrame(J)}}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(t.R0b),t.Y36(t.aQg),t.Y36(t.SBq),t.Y36(t.Lbi),t.Y36(Qt,8))},e.\u0275dir=t.lG2({type:e,selectors:[["","perfectScrollbar",""]],inputs:{disabled:"disabled",config:["perfectScrollbar","config"]},outputs:{psScrollY:"psScrollY",psScrollX:"psScrollX",psScrollUp:"psScrollUp",psScrollDown:"psScrollDown",psScrollLeft:"psScrollLeft",psScrollRight:"psScrollRight",psYReachEnd:"psYReachEnd",psYReachStart:"psYReachStart",psXReachEnd:"psXReachEnd",psXReachStart:"psXReachStart"},exportAs:["ngxPerfectScrollbar"],features:[t.TTD]}),e})(),Gt=(()=>{class e{constructor(o,r,w){this.zone=o,this.cdRef=r,this.platformId=w,this.states={},this.indicatorX=!1,this.indicatorY=!1,this.interaction=!1,this.scrollPositionX=0,this.scrollPositionY=0,this.scrollDirectionX=0,this.scrollDirectionY=0,this.usePropagationX=!1,this.usePropagationY=!1,this.allowPropagationX=!1,this.allowPropagationY=!1,this.stateTimeout=null,this.ngDestroy=new M.x,this.stateUpdate=new M.x,this.disabled=!1,this.usePSClass=!0,this.autoPropagation=!1,this.scrollIndicators=!1,this.psScrollY=new t.vpe,this.psScrollX=new t.vpe,this.psScrollUp=new t.vpe,this.psScrollDown=new t.vpe,this.psScrollLeft=new t.vpe,this.psScrollRight=new t.vpe,this.psYReachEnd=new t.vpe,this.psYReachStart=new t.vpe,this.psXReachEnd=new t.vpe,this.psXReachStart=new t.vpe}ngOnInit(){(0,s.NF)(this.platformId)&&(this.stateUpdate.pipe((0,A.R)(this.ngDestroy),(0,L.x)((o,r)=>o===r&&!this.stateTimeout)).subscribe(o=>{this.stateTimeout&&typeof window<"u"&&(window.clearTimeout(this.stateTimeout),this.stateTimeout=null),"x"===o||"y"===o?(this.interaction=!1,"x"===o?(this.indicatorX=!1,this.states.left=!1,this.states.right=!1,this.autoPropagation&&this.usePropagationX&&(this.allowPropagationX=!1)):"y"===o&&(this.indicatorY=!1,this.states.top=!1,this.states.bottom=!1,this.autoPropagation&&this.usePropagationY&&(this.allowPropagationY=!1))):("left"===o||"right"===o?(this.states.left=!1,this.states.right=!1,this.states[o]=!0,this.autoPropagation&&this.usePropagationX&&(this.indicatorX=!0)):("top"===o||"bottom"===o)&&(this.states.top=!1,this.states.bottom=!1,this.states[o]=!0,this.autoPropagation&&this.usePropagationY&&(this.indicatorY=!0)),this.autoPropagation&&typeof window<"u"&&(this.stateTimeout=window.setTimeout(()=>{this.indicatorX=!1,this.indicatorY=!1,this.stateTimeout=null,this.interaction&&(this.states.left||this.states.right)&&(this.allowPropagationX=!0),this.interaction&&(this.states.top||this.states.bottom)&&(this.allowPropagationY=!0),this.cdRef.markForCheck()},500))),this.cdRef.markForCheck(),this.cdRef.detectChanges()}),this.zone.runOutsideAngular(()=>{if(this.directiveRef){const o=this.directiveRef.elementRef.nativeElement;(0,N.R)(o,"wheel").pipe((0,A.R)(this.ngDestroy)).subscribe(r=>{!this.disabled&&this.autoPropagation&&this.checkPropagation(r,r.deltaX,r.deltaY)}),(0,N.R)(o,"touchmove").pipe((0,A.R)(this.ngDestroy)).subscribe(r=>{if(!this.disabled&&this.autoPropagation){const w=r.touches[0].clientX,Y=r.touches[0].clientY;this.checkPropagation(r,w-this.scrollPositionX,Y-this.scrollPositionY),this.scrollPositionX=w,this.scrollPositionY=Y}}),(0,Z.T)((0,N.R)(o,"ps-scroll-x").pipe((0,x.h)("x")),(0,N.R)(o,"ps-scroll-y").pipe((0,x.h)("y")),(0,N.R)(o,"ps-x-reach-end").pipe((0,x.h)("right")),(0,N.R)(o,"ps-y-reach-end").pipe((0,x.h)("bottom")),(0,N.R)(o,"ps-x-reach-start").pipe((0,x.h)("left")),(0,N.R)(o,"ps-y-reach-start").pipe((0,x.h)("top"))).pipe((0,A.R)(this.ngDestroy)).subscribe(r=>{!this.disabled&&(this.autoPropagation||this.scrollIndicators)&&this.stateUpdate.next(r)})}}),window.setTimeout(()=>{Vt.forEach(o=>{this.directiveRef&&(this.directiveRef[o]=this[o])})},0))}ngOnDestroy(){(0,s.NF)(this.platformId)&&(this.ngDestroy.next(),this.ngDestroy.unsubscribe(),this.stateTimeout&&typeof window<"u"&&window.clearTimeout(this.stateTimeout))}ngDoCheck(){if((0,s.NF)(this.platformId)&&!this.disabled&&this.autoPropagation&&this.directiveRef){const o=this.directiveRef.elementRef.nativeElement;this.usePropagationX=o.classList.contains("ps--active-x"),this.usePropagationY=o.classList.contains("ps--active-y")}}checkPropagation(o,r,w){this.interaction=!0;const Y=r<0?-1:1,C=w<0?-1:1;(this.usePropagationX&&this.usePropagationY||this.usePropagationX&&(!this.allowPropagationX||this.scrollDirectionX!==Y)||this.usePropagationY&&(!this.allowPropagationY||this.scrollDirectionY!==C))&&(o.preventDefault(),o.stopPropagation()),r&&(this.scrollDirectionX=Y),w&&(this.scrollDirectionY=C),this.stateUpdate.next("interaction"),this.cdRef.detectChanges()}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(t.R0b),t.Y36(t.sBO),t.Y36(t.Lbi))},e.\u0275cmp=t.Xpm({type:e,selectors:[["perfect-scrollbar"]],viewQuery:function(o,r){if(1&o&&t.Gf($t,7),2&o){let w;t.iGM(w=t.CRH())&&(r.directiveRef=w.first)}},hostVars:4,hostBindings:function(o,r){2&o&&t.ekj("ps-show-limits",r.autoPropagation)("ps-show-active",r.scrollIndicators)},inputs:{disabled:"disabled",usePSClass:"usePSClass",autoPropagation:"autoPropagation",scrollIndicators:"scrollIndicators",config:"config"},outputs:{psScrollY:"psScrollY",psScrollX:"psScrollX",psScrollUp:"psScrollUp",psScrollDown:"psScrollDown",psScrollLeft:"psScrollLeft",psScrollRight:"psScrollRight",psYReachEnd:"psYReachEnd",psYReachStart:"psYReachStart",psXReachEnd:"psXReachEnd",psXReachStart:"psXReachStart"},exportAs:["ngxPerfectScrollbar"],ngContentSelectors:de,decls:10,vars:5,consts:[[2,"position","static",3,"perfectScrollbar","disabled"],[1,"ps-content"],["class","ps-overlay",3,"ps-at-top","ps-at-left","ps-at-right","ps-at-bottom",4,"ngIf"],[1,"ps-overlay"],[1,"ps-indicator-top"],[1,"ps-indicator-left"],[1,"ps-indicator-right"],[1,"ps-indicator-bottom"]],template:function(o,r){1&o&&(t.F$t(),t.TgZ(0,"div",0),t._uU(1,"\n "),t.TgZ(2,"div",1),t._uU(3,"\n "),t.Hsn(4),t._uU(5,"\n "),t.qZA(),t._uU(6,"\n\n "),t.YNc(7,ue,10,16,"div",2),t._uU(8,"\n"),t.qZA(),t._uU(9,"\n")),2&o&&(t.ekj("ps",r.usePSClass),t.Q6J("perfectScrollbar",r.config)("disabled",r.disabled),t.xp6(7),t.Q6J("ngIf",r.scrollIndicators))},dependencies:[s.O5,$t],styles:["perfect-scrollbar{display:block;height:100%;max-height:100%;max-width:100%;overflow:hidden;position:relative;width:100%}perfect-scrollbar[hidden]{display:none}perfect-scrollbar[fxflex]{display:flex;flex-direction:column;height:auto;min-height:0;min-width:0}perfect-scrollbar[fxflex]>.ps{-webkit-box-flex:1;flex:1 1 auto;height:auto;min-height:0;min-width:0;width:auto}perfect-scrollbar[fxlayout]>.ps,perfect-scrollbar[fxlayout]>.ps>.ps-content{-webkit-box-align:inherit;-webkit-box-flex:1;-webkit-box-pack:inherit;align-content:inherit;align-items:inherit;display:flex;flex:1 1 auto;flex-direction:inherit;height:100%;justify-content:inherit;width:100%},perfect-scrollbar[fxlayout=row]>.ps,perfect-scrollbar[fxlayout=row]>.ps>.ps-content{flex-direction:row!important}perfect-scrollbar[fxlayout=column]>.ps,perfect-scrollbar[fxlayout=column]>.ps>.ps-content{flex-direction:column!important}perfect-scrollbar>.ps{display:block;height:100%;max-height:100%;max-width:100%;position:static;width:100%}perfect-scrollbar>.ps textarea{-ms-overflow-style:scrollbar}perfect-scrollbar>.ps>.ps-overlay{bottom:0;display:block;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{opacity:0;position:absolute;transition:opacity .3s ease-in-out}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{left:0;min-height:24px;min-width:100%}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left,perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{min-height:100%;min-width:24px;top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-top{top:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-left{left:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-right{right:0}perfect-scrollbar>.ps>.ps-overlay .ps-indicator-bottom{bottom:0}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y{cursor:default;left:auto!important;right:0!important;top:0!important;transition:width .2s linear,opacity .2s linear,background-color .2s linear;width:10px}perfect-scrollbar>.ps.ps--active-y>.ps__rail-y.ps--clicking,perfect-scrollbar>.ps.ps--active-y>.ps__rail-y:hover{width:15px}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x{bottom:0!important;cursor:default;height:10px;left:0!important;top:auto!important;transition:height .2s linear,opacity .2s linear,background-color .2s linear}perfect-scrollbar>.ps.ps--active-x>.ps__rail-x.ps--clicking,perfect-scrollbar>.ps.ps--active-x>.ps__rail-x:hover{height:15px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-y{margin:0 0 10px}perfect-scrollbar>.ps.ps--active-x.ps--active-y>.ps__rail-x{margin:0 10px 0 0}perfect-scrollbar>.ps.ps--scrolling-x>.ps__rail-x,perfect-scrollbar>.ps.ps--scrolling-y>.ps__rail-y{background-color:#eee;opacity:.9}perfect-scrollbar.ps-show-always>.ps.ps--active-x>.ps__rail-x,perfect-scrollbar.ps-show-always>.ps.ps--active-y>.ps__rail-y{opacity:.6}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-top) .ps-indicator-top{background:linear-gradient(180deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,0));opacity:1}perfect-scrollbar.ps-show-active>.ps.ps--active-y>.ps-overlay:not(.ps-at-bottom) .ps-indicator-bottom{background:linear-gradient(0deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,0));opacity:1}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-left) .ps-indicator-left{background:linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,0));opacity:1}perfect-scrollbar.ps-show-active>.ps.ps--active-x>.ps-overlay:not(.ps-at-right) .ps-indicator-right{background:linear-gradient(270deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,0));opacity:1}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top{background:linear-gradient(180deg,hsla(0,0%,66.7%,.5) 0,hsla(0,0%,66.7%,0))}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom{background:linear-gradient(0deg,hsla(0,0%,66.7%,.5) 0,hsla(0,0%,66.7%,0))}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left{background:linear-gradient(90deg,hsla(0,0%,66.7%,.5) 0,hsla(0,0%,66.7%,0))}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right{background:linear-gradient(270deg,hsla(0,0%,66.7%,.5) 0,hsla(0,0%,66.7%,0))}perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-left .ps-indicator-left.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-x>.ps-overlay.ps-at-right .ps-indicator-right.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-bottom .ps-indicator-bottom.ps-indicator-show,perfect-scrollbar.ps-show-active.ps-show-limits>.ps.ps--active-y>.ps-overlay.ps-at-top .ps-indicator-top.ps-indicator-show{opacity:1}",".ps{-ms-overflow-style:none;-ms-touch-action:auto;overflow:hidden!important;overflow-anchor:none;touch-action:auto}.ps__rail-x{bottom:0;height:15px}.ps__rail-x,.ps__rail-y{-webkit-transition:background-color .2s linear,opacity .2s linear;display:none;opacity:0;position:absolute;transition:background-color .2s linear,opacity .2s linear}.ps__rail-y{right:0;width:15px}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{background-color:transparent;display:block}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{-webkit-transition:background-color .2s linear,height .2s ease-in-out;bottom:2px;height:6px;transition:background-color .2s linear,height .2s ease-in-out}.ps__thumb-x,.ps__thumb-y{background-color:#aaa;border-radius:6px;position:absolute}.ps__thumb-y{-webkit-transition:background-color .2s linear,width .2s ease-in-out;right:2px;transition:background-color .2s linear,width .2s ease-in-out;width:6px}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}"],encapsulation:2}),e})(),me=(()=>{class e{}return e.\u0275fac=function(o){return new(o||e)},e.\u0275mod=t.oAB({type:e}),e.\u0275inj=t.cJS({imports:[s.ez,s.ez]}),e})();var ge=z(4e3),te=z(96749),xt=z(88648);function ee(e,i){const o=/(\d+)|(\D+)/g,r=/\d+/,Y=i.value,C=String(e.value).match(o),E=String(Y).match(o);for(;C.length&&E.length;){const P=C.shift(),F=E.shift();if(r.test(P)||r.test(F)){if(!r.test(P))return-1;if(!r.test(F))return 1;if(P!==F)return Number(F)-Number(P)}else if(P!==F)return F.localeCompare(P)}return E.length-C.length}var Et=z(5830),rt=z(54463),qt=z(97185);new xt.Yd("ReqNetworkInterComponent");let ye=(()=>{class e{constructor(o,r,w){this.apiService=o,this.toastr=r,this.translate=w}ngOnInit(){}reqInter(){this.apiService.getReqInter().subscribe(o=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(qt._W),t.Y36(rt.sK))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-req-network-inter"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.inter.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.inter.req.button",1,"btn","btn-light",3,"click"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t._UZ(2,"div",1),t._uU(3,"\n "),t.TgZ(4,"div",2),t._uU(5,"\n "),t._UZ(6,"p",3),t.ALo(7,"translate"),t._uU(8,"\n "),t.qZA(),t._uU(9,"\n "),t.TgZ(10,"div",4),t._uU(11,"\n "),t.TgZ(12,"button",5),t.NdJ("click",function(){return r.reqInter()}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n"),t.qZA(),t._uU(15,"\n")),2&o&&(t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,1,"network.inter.req.subtitle"),t.oJD))},dependencies:[rt.Pi,rt.X$]}),e})();var oe=z(22995),ie=z(93470);function be(e,i){if(1&e&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"div",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"p",7),t.ALo(7,"translate"),t._uU(8,"\n "),t.TgZ(9,"div",8),t._uU(10,"\n "),t._UZ(11,"div",9),t._uU(12,"\n "),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n "),t.qZA()),2&e){const o=t.oxw(2);t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,2,"network.stats.detail.visu.subtitle"),t.oJD),t.xp6(5),t.Q6J("chart",o.chart)}}function we(e,i){if(1&e&&(t.TgZ(0,"div",2),t._uU(1,"\n "),t.YNc(2,be,15,4,"div",3),t._uU(3,"\n "),t.qZA()),2&e){const o=t.oxw();t.xp6(2),t.Q6J("ngIf",o.chart)}}function _e(e,i){if(1&e&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"div",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"p",7),t.ALo(7,"translate"),t._uU(8,"\n "),t.TgZ(9,"div",8),t._uU(10,"\n "),t._UZ(11,"div",10),t._uU(12,"\n "),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n "),t.qZA()),2&e){const o=t.oxw();t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,2,"network.stats.detail.visu.subtitle"),t.oJD),t.xp6(5),t.Q6J("chart",o.chart2)}}new xt.Yd("DetailTopologyComponent");let Se=(()=>{class e extends oe.n{constructor(o,r){super(),this.apiService=o,this.translate=r}ngOnInit(){this.devices$=this.apiService.getDevices(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}ngOnChanges(o){o.timeStamp.currentValue!==o.timeStamp.previousValue&&this.apiService.getNwkStatsByTimeStamp(this.timeStamp).subscribe(r=>{this.createChart(r),this.createChart2(r)})}createChart(o){const r=[],w=[],Y=[],C=[];o.forEach(F=>{const J=F.Channels;J.sort((V,lt)=>Number(V.Channel)-Number(lt.Channel)),F.Channels=J}),o[0].Channels.forEach(F=>{w.push(F.Channel)}),o.forEach(F=>{const J=[];let V=0;F.Channels.forEach(lt=>{J.push(lt.Level),C[V]=C[V]?Number(C[V])+Number(lt.Level):Number(lt.Level),V++}),r.push({name:F.ZDeviceName?F.ZDeviceName:F._NwkId,data:J})}),C.forEach(F=>{F/=o.length,F=Number(F).toFixed(2),Y.push(Number(F))});const E=r;E.push({name:"Average",data:Y,type:"spline",marker:{lineWidth:2,lineColor:ie.getOptions().colors[3],fillColor:"white"}});const P=new et.kL({chart:{type:"column",height:"20%"},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:w},yAxis:{title:{text:this.translate.instant("network.stats.detail.visu.chart.y-axis")}},credits:{enabled:!1},series:E});this.chart=P,this.subs.add(P.ref$.subscribe())}createChart2(o){const r=[],w=[];o.forEach(C=>{const E=C.Channels;E.sort((P,F)=>Number(P.Channel)-Number(F.Channel)),C.Channels=E}),o[0].Channels.forEach(C=>{w.push(C.Channel)}),o.forEach(C=>{const E=[];C.Channels.forEach(P=>{E.push(P.Level)}),r.push({name:C.ZDeviceName?C.ZDeviceName:C._NwkId,data:E,pointPlacement:"on"})});const Y=new et.kL({chart:{height:"90%",polar:!0,type:"line"},pane:{},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:w,tickmarkPlacement:"on",lineWidth:0},yAxis:{gridLineInterpolation:"polygon",lineWidth:0,min:0},tooltip:{shared:!0,pointFormat:'{series.name}: {point.y:,.0f}
'},legend:{align:"left",verticalAlign:"bottom"},credits:{enabled:!1},series:r,responsive:{rules:[{condition:{maxWidth:600},chartOptions:{legend:{align:"center",verticalAlign:"bottom"},pane:{size:"80%"}}}]}});this.chart2=Y,this.subs.add(Y.ref$.subscribe())}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(rt.sK))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-detail-nwk-stat"]],inputs:{timeStamp:"timeStamp"},features:[t.qOj,t.TTD],decls:10,vars:2,consts:[[1,"row","row-cols-1","row-cols-md-2","g-4","mt-1"],["class","col",4,"ngIf"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.stats.detail.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"text-center",3,"chart"],[3,"chart"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t.YNc(2,we,4,1,"div",1),t._uU(3,"\n "),t.TgZ(4,"div",2),t._uU(5,"\n "),t.YNc(6,_e,15,4,"div",3),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n"),t.qZA(),t._uU(9,"\n")),2&o&&(t.xp6(2),t.Q6J("ngIf",!(null!=r.plugin&&r.plugin.Zigpy)),t.xp6(4),t.Q6J("ngIf",r.chart2))},dependencies:[s.O5,rt.Pi,et.Dm,rt.X$]}),e})();new xt.Yd("ReqNetworkInterComponent");let xe=(()=>{class e{constructor(o,r,w){this.apiService=o,this.toastr=r,this.translate=w}ngOnInit(){}reqFull(){this.apiService.getNwkFull().subscribe(o=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(qt._W),t.Y36(rt.sK))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-req-network-full"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.full.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.full.req.button",1,"btn","btn-light",3,"click"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t._UZ(2,"div",1),t._uU(3,"\n "),t.TgZ(4,"div",2),t._uU(5,"\n "),t._UZ(6,"p",3),t.ALo(7,"translate"),t._uU(8,"\n "),t.qZA(),t._uU(9,"\n "),t.TgZ(10,"div",4),t._uU(11,"\n "),t.TgZ(12,"button",5),t.NdJ("click",function(){return r.reqFull()}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n"),t.qZA(),t._uU(15,"\n")),2&o&&(t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,1,"network.full.req.subtitle"),t.oJD))},dependencies:[rt.Pi,rt.X$]}),e})();function Te(e,i){if(1&e){const o=t.EpF();t.TgZ(0,"span",14),t._uU(1,"\n "),t.TgZ(2,"div",15),t._uU(3,"\n "),t.TgZ(4,"button",16),t.NdJ("click",function(){const Y=t.CHM(o).$implicit,C=t.oxw(2);return t.KtG(C.nwkStatByDate(Y.value))}),t._uU(5),t.ALo(6,"date"),t.qZA(),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.TgZ(9,"div",15),t._uU(10,"\n "),t.TgZ(11,"button",17),t.NdJ("click",function(){const Y=t.CHM(o).$implicit,C=t.oxw(2);return t.KtG(C.deleteNwkStatByDate(Y.value))}),t.ALo(12,"translate"),t._uU(13,"\n "),t._UZ(14,"i",18),t._uU(15,"\n "),t.qZA(),t._uU(16,"\n "),t.qZA(),t._uU(17,"\n "),t.qZA()}if(2&e){const o=i.$implicit;t.xp6(5),t.hij("\n ",t.xi3(6,2,1e3*o.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.xp6(6),t.s9C("title",t.lcZ(12,5,"network.stats.visu.delete.button"))}}function ke(e,i){if(1&e&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"div",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"p",7),t.ALo(7,"translate"),t._uU(8,"\n "),t.TgZ(9,"div",8),t._uU(10,"\n "),t.TgZ(11,"div",9),t._uU(12,"\n "),t.TgZ(13,"div",10),t._uU(14,"\n "),t.TgZ(15,"perfect-scrollbar",11),t._uU(16,"\n "),t.TgZ(17,"div",12),t._uU(18,"\n "),t.YNc(19,Te,18,7,"span",13),t.ALo(20,"keyvalue"),t._uU(21,"\n "),t.qZA(),t._uU(22,"\n "),t.qZA(),t._uU(23,"\n "),t.qZA(),t._uU(24,"\n "),t.qZA(),t._uU(25,"\n "),t.qZA(),t._uU(26,"\n "),t.qZA(),t._uU(27,"\n "),t.qZA()),2&e){const o=i.ngIf,r=t.oxw();t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,2,"network.stats.subtitle"),t.oJD),t.xp6(13),t.Q6J("ngForOf",t.xi3(20,4,o,r.sortDesc))}}function Ce(e,i){1&e&&t._UZ(0,"app-req-network-full")}function Le(e,i){if(1&e&&(t.TgZ(0,"div"),t._UZ(1,"app-detail-nwk-stat",19),t.qZA()),2&e){const o=t.oxw();t.xp6(1),t.Q6J("timeStamp",o.timeStamp)}}new xt.Yd("NwkStatsComponent");let Pe=(()=>{class e{constructor(o,r){this.apiService=o,this.cdr=r,this.listSubject$=new M.x}ngOnInit(){this.stats$=this.apiService.getNwkStats(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}sortDesc(o,r){return ee(o,r)}nwkStatByDate(o){this.timeStamp=o}deleteNwkStatByDate(o){this.apiService.deleteNwkStatsByTimeStamp(o).subscribe(r=>{this.stats$=this.apiService.getNwkStats(),this.cdr.detectChanges()})}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(t.sBO))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-nwk-stats"]],decls:17,vars:5,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.stats.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","row d-flex align-items-center",4,"ngFor","ngForOf"],[1,"row","d-flex","align-items-center"],[1,"col-sm"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"title","click"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t.TgZ(2,"div",1),t._uU(3,"\n "),t.YNc(4,ke,28,7,"div",2),t.ALo(5,"async"),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t.TgZ(8,"div",1),t._UZ(9,"app-req-network-inter"),t.qZA(),t._uU(10,"\n "),t.TgZ(11,"div",1),t.YNc(12,Ce,1,0,"app-req-network-full",3),t.qZA(),t._uU(13,"\n"),t.qZA(),t._uU(14,"\n"),t.YNc(15,Le,2,1,"div",3),t._uU(16,"\n")),2&o&&(t.xp6(4),t.Q6J("ngIf",t.lcZ(5,3,r.stats$)),t.xp6(8),t.Q6J("ngIf",!(null!=r.plugin&&r.plugin.Zigpy)),t.xp6(3),t.Q6J("ngIf",r.timeStamp))},dependencies:[s.sg,s.O5,rt.Pi,Gt,ye,Se,xe,s.Ov,s.uU,s.Nd,rt.X$],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.content-container[_ngcontent-%COMP%]{position:relative;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0!important}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]}),e})();var Yt=z(24006),ne=z(91835),Bt=z(55017),Ne=z(10805);function Ee(e,i){if(1&e&&(t.TgZ(0,"div",3),t._uU(1,"\n "),t._UZ(2,"div",4),t._uU(3,"\n "),t.TgZ(4,"div",5),t._uU(5,"\n "),t._UZ(6,"p",6),t.ALo(7,"translate"),t._uU(8,"\n "),t._UZ(9,"div",7),t._uU(10,"\n "),t.qZA(),t._uU(11,"\n "),t.qZA()),2&e){const o=t.oxw();t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,2,"network.topo.visu.subtitle"),t.oJD),t.xp6(3),t.Q6J("chart",o.chart1)}}function Ye(e,i){if(1&e&&(t._uU(0,"\n "),t.TgZ(1,"span"),t._uU(2,"\n "),t.TgZ(3,"b"),t._uU(4,"Name"),t.qZA(),t._uU(5),t.TgZ(6,"b"),t._uU(7,"IEEE"),t.qZA(),t._uU(8),t.TgZ(9,"b"),t._uU(10,"Model"),t.qZA(),t._uU(11),t.qZA(),t._uU(12,"\n ")),2&e){const o=i.item;t.xp6(5),t.hij(" : ",o.ZDeviceName," - "),t.xp6(3),t.hij(" : ",o.IEEE," - "),t.xp6(3),t.hij(" :\n ",o.Model,"\n ")}}function Ae(e,i){1&e&&(t._uU(0,"\n "),t.TgZ(1,"tr"),t._uU(2,"\n "),t.TgZ(3,"th",22),t._uU(4),t.ALo(5,"translate"),t._UZ(6,"p-sortIcon",23),t._uU(7,"\n "),t.qZA(),t._uU(8,"\n "),t.TgZ(9,"th",24),t._uU(10),t.ALo(11,"translate"),t._UZ(12,"p-sortIcon",25),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n "),t.TgZ(15,"th",26),t._uU(16),t.ALo(17,"translate"),t._UZ(18,"p-sortIcon",27),t._uU(19,"\n "),t.qZA(),t._uU(20,"\n "),t.TgZ(21,"th",28),t._uU(22),t.ALo(23,"translate"),t._UZ(24,"p-sortIcon",29),t._uU(25,"\n "),t.qZA(),t._uU(26,"\n "),t.TgZ(27,"th",30),t._uU(28),t.ALo(29,"translate"),t._UZ(30,"p-sortIcon",31),t._uU(31,"\n "),t.qZA(),t._uU(32,"\n "),t.TgZ(33,"th",32),t._uU(34),t.ALo(35,"translate"),t._UZ(36,"p-sortIcon",33),t._uU(37,"\n "),t.qZA(),t._uU(38,"\n "),t.qZA(),t._uU(39,"\n ")),2&e&&(t.xp6(4),t.hij("\n ",t.lcZ(5,6,"network.topo.visu.network.relation.to"),""),t.xp6(6),t.hij("\n ",t.lcZ(11,8,"network.topo.visu.network.relation.weight"),""),t.xp6(6),t.hij("\n ",t.lcZ(17,10,"network.topo.visu.network.relation.model"),""),t.xp6(6),t.hij("\n ",t.lcZ(23,12,"network.topo.visu.network.relation.status"),""),t.xp6(6),t.hij("\n ",t.lcZ(29,14,"network.topo.visu.network.relation.health"),""),t.xp6(6),t.hij("\n ",t.lcZ(35,16,"network.topo.visu.network.relation.battery"),""))}function De(e,i){if(1&e&&(t._uU(0,"\n "),t.TgZ(1,"tr"),t._uU(2,"\n "),t.TgZ(3,"td"),t._uU(4),t.qZA(),t._uU(5,"\n "),t.TgZ(6,"td"),t._uU(7),t.qZA(),t._uU(8,"\n "),t.TgZ(9,"td"),t._uU(10),t.qZA(),t._uU(11,"\n "),t.TgZ(12,"td"),t._uU(13),t.qZA(),t._uU(14,"\n "),t.TgZ(15,"td"),t._uU(16),t.qZA(),t._uU(17,"\n "),t.TgZ(18,"td"),t._uU(19),t.qZA(),t._uU(20,"\n "),t.qZA()),2&e){const o=i.$implicit;t.xp6(4),t.hij("\n ",o.to,"\n "),t.xp6(3),t.hij("\n ",o.weight,"\n "),t.xp6(3),t.hij("\n ",o.Model,"\n "),t.xp6(3),t.hij("\n ",o.Status,"\n "),t.xp6(3),t.hij("\n ",o.Health,"\n "),t.xp6(3),t.hij("\n ",o.Battery,"\n ")}}const Ue=function(e){return{deviceSelected:e}},Me=function(){return[10,25,50]};function Re(e,i){if(1&e&&(t.TgZ(0,"div",16),t._uU(1,"\n "),t.TgZ(2,"div",1),t._uU(3,"\n "),t.TgZ(4,"div",3),t._uU(5,"\n "),t._UZ(6,"div",17),t._uU(7,"\n "),t.TgZ(8,"div",5),t._uU(9,"\n "),t._UZ(10,"p",6),t.ALo(11,"translate"),t._uU(12,"\n "),t.TgZ(13,"div",9),t._uU(14,"\n "),t.TgZ(15,"p-table",18,19),t.ALo(17,"translate"),t._uU(18,"\n "),t.YNc(19,Ae,40,18,"ng-template",20),t._uU(20,"\n "),t.YNc(21,De,21,6,"ng-template",21),t._uU(22,"\n "),t.qZA(),t._uU(23,"\n "),t.qZA(),t._uU(24,"\n "),t.qZA(),t._uU(25,"\n "),t.qZA(),t._uU(26,"\n "),t.qZA(),t._uU(27,"\n "),t.qZA()),2&e){const o=t.oxw(2);t.xp6(6),t.Q6J("translateParams",t.VKq(14,Ue,o.selectedPoint.name)),t.xp6(4),t.Q6J("innerHTML",t.lcZ(11,10,"network.topo.visu.network.relation.subtitle"),t.oJD),t.xp6(5),t.s9C("currentPageReportTemplate",t.lcZ(17,12,"TOTAL")),t.Q6J("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.DdM(16,Me))("value",o.relationsSelected)("rows",10)("paginator",!0)("scrollable",!0)}}function Ze(e,i){if(1&e&&(t.TgZ(0,"div",3),t._uU(1,"\n "),t._UZ(2,"div",8),t._uU(3,"\n "),t.TgZ(4,"div",5),t._uU(5,"\n "),t._UZ(6,"p",6),t.ALo(7,"translate"),t._uU(8,"\n "),t.TgZ(9,"div",9),t._uU(10,"\n "),t.TgZ(11,"div"),t._uU(12,"\n "),t.TgZ(13,"form",10),t._uU(14,"\n "),t._UZ(15,"input",11),t._uU(16,"\n "),t.TgZ(17,"ng-select",12),t.ALo(18,"translate"),t._uU(19,"\n "),t.YNc(20,Ye,13,3,"ng-template",13),t._uU(21,"\n "),t.qZA(),t._uU(22,"\n "),t.qZA(),t._uU(23,"\n "),t.qZA(),t._uU(24,"\n "),t._UZ(25,"div",14),t._uU(26,"\n "),t.YNc(27,Re,28,17,"div",15),t._uU(28,"\n "),t.qZA(),t._uU(29,"\n "),t.qZA(),t._uU(30,"\n "),t.qZA()),2&e){const o=t.oxw();t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,9,"network.topo.visu.network.subtitle"),t.oJD),t.xp6(7),t.Q6J("formGroup",o.form),t.xp6(4),t.s9C("placeholder",t.lcZ(18,11,"network.topo.visu.network.filter")),t.Q6J("items",o.devices)("multiple",!1)("closeOnSelect",!0)("searchable",!0),t.xp6(8),t.Q6J("chart",o.chart2),t.xp6(2),t.Q6J("ngIf",o.relationsSelected)}}new xt.Yd("DetailTopologyComponent");let Oe=(()=>{class e extends oe.n{constructor(o,r,w){super(),this.apiService=o,this.translate=r,this.formBuilder=w,this.showDetail=!1}ngOnInit(){this.form=this.formBuilder.group({nodeToFilter:[null],detail:[null]}),this.apiService.getZDeviceName().subscribe(o=>{this.devices=o,this.devices.unshift({IEEE:"",MacCapa:[""],Model:"",Health:"",Status:"",WidgetList:[""],ZDeviceName:"Zigbee Coordinator",_NwkId:""})}),this.subs.sink=this.form.get("nodeToFilter").valueChanges.subscribe(o=>{this.createChart2(o)}),this.subs.add(this.form.get("detail").valueChanges.subscribe(o=>{let r=[];this.selectedPoint=this.chart2.ref.hoverPoint,this.selectedPoint.linksFrom.map(C=>C.options).map(C=>{const E=this.devices.find(P=>P.ZDeviceName===C.to||P._NwkId===C.to);r.push({to:C.to,from:C.from,weight:C.weight,Model:E.Model,Status:E.Status,Health:E.Health,Battery:E.Battery})}),this.selectedPoint.linksTo.map(C=>C.options).map(C=>{if(!r.some(E=>E.to===C.from)){const E=this.devices.find(P=>P.ZDeviceName===C.from||P._NwkId===C.from);r.push({to:C.from,from:C.from,weight:E.LQI,Model:E.Model,Status:E.Status,Health:E.Health,Battery:E.Battery})}}),this.relationsSelected=r}))}ngOnChanges(o){o.timeStamp.currentValue!==o.timeStamp.previousValue&&this.apiService.getTopologieByTimeStamp(this.timeStamp).subscribe(r=>{this.datas=r,this.createChart1(),this.createChart2()})}createChart1(){const o=this.datas.map(w=>{const Y=Object.values(w);return Y.splice(1,1),Y}),r=new et.kL({chart:{type:"dependencywheel",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.chart.title")},credits:{enabled:!1},series:[{type:void 0,keys:["to","from","weight"],data:o}]});this.chart1=r}createChart2(o){let w=this.datas.map(E=>{const P=Object.values(E);return P.splice(1,1),P});o&&(w=w.filter(E=>E[0].toLowerCase()===o.toLowerCase()||E[1].toLowerCase()===o.toLowerCase()));const Y=[{nodes:void 0,type:void 0,keys:["to","from","weight"],dataLabels:{enabled:!0,linkFormat:""},data:w}];this.test(Y);const C=new et.kL({chart:{type:"networkgraph",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.network.chart.title")},credits:{enabled:!1},plotOptions:{networkgraph:{keys:["to","from","weight"],layoutAlgorithm:{enableSimulation:!0,integration:"verlet"}},series:{point:{events:{click:function(){document.getElementById("detail").dispatchEvent(new Event("input",{bubbles:!0}))}}}}},series:Y});this.chart2=C}test(o){const r=ie.getOptions().colors;let w=0;const Y={"Zigbee Coordinator":{id:"Zigbee Coordinator",marker:{radius:20}}},C=this.datas.filter(P=>"Zigbee Coordinator"===P.Child);let E=[];C.forEach(P=>{Y[P.Father]={id:P.Father,marker:{radius:10},color:r[w++]},E.push(P.Father)}),this.colorNode(Y,E),o[0].nodes=Object.keys(Y).map(function(P){return Y[P]})}colorNode(o,r){r.forEach(w=>{let Y=[];this.datas.filter(E=>E.Child===w).forEach(E=>{o[E.Father]||(o[E.Father]={id:E.Father,color:o[E.Child].color},Y.push(E.Father))}),Y.length>0&&this.colorNode(o,Y)})}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(rt.sK),t.Y36(Yt.qu))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-detail-topology"]],inputs:{timeStamp:"timeStamp"},features:[t.qOj,t.TTD],decls:13,vars:2,consts:[[1,"row","row-cols-1","row-cols-lg-2","g-4","mt-1"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.topo.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text",3,"chart"],["translate","network.topo.visu.network.header",1,"card-header","fw-bold"],[1,"card-text"],[3,"formGroup"],["type","hidden","formControlName","detail","id","detail"],["bindLabel","ZDeviceName","bindValue","ZDeviceName","appendTo","body","formControlName","nodeToFilter",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[3,"chart"],["class","row",4,"ngIf"],[1,"row"],["translate","network.topo.visu.network.relation.header",1,"card-header","fw-bold",3,"translateParams"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["dt1",""],["pTemplate","header"],["pTemplate","body"],["pSortableColumn","to"],["field","to"],["pSortableColumn","weight"],["field","weight"],["pSortableColumn","Model",2,"width","8rem"],["field","Model"],["pSortableColumn","Status",2,"width","10rem"],["field","Status"],["pSortableColumn","Health"],["field","Health"],["pSortableColumn","Battery"],["field","Battery"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t.TgZ(2,"div",1),t._uU(3,"\n "),t.YNc(4,Ee,12,4,"div",2),t._uU(5,"\n "),t.qZA(),t._uU(6,"\n "),t.TgZ(7,"div",1),t._uU(8,"\n "),t.YNc(9,Ze,31,13,"div",2),t._uU(10,"\n "),t.qZA(),t._uU(11,"\n"),t.qZA(),t._uU(12,"\n")),2&o&&(t.xp6(4),t.Q6J("ngIf",r.chart1),t.xp6(5),t.Q6J("ngIf",r.chart2))},dependencies:[s.O5,Yt._Y,Yt.Fj,Yt.JJ,Yt.JL,Yt.sg,Yt.u,ne.w9,ne.ir,rt.Pi,Bt.iA,Ne.jx,Bt.lQ,Bt.fz,et.Dm,rt.X$]}),e})();new xt.Yd("ReqTopologyComponent");let Xe=(()=>{class e{constructor(o,r,w){this.apiService=o,this.toastr=r,this.translate=w}ngOnInit(){}reqTopology(){this.apiService.getReqTopologie().subscribe(o=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(qt._W),t.Y36(rt.sK))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-req-topology"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.topology.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.topology.req.button",1,"btn","btn-light",3,"click"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t._UZ(2,"div",1),t._uU(3,"\n "),t.TgZ(4,"div",2),t._uU(5,"\n "),t._UZ(6,"p",3),t.ALo(7,"translate"),t._uU(8,"\n "),t.qZA(),t._uU(9,"\n "),t.TgZ(10,"div",4),t._uU(11,"\n "),t.TgZ(12,"button",5),t.NdJ("click",function(){return r.reqTopology()}),t.qZA(),t._uU(13,"\n "),t.qZA(),t._uU(14,"\n"),t.qZA(),t._uU(15,"\n")),2&o&&(t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,1,"network.topology.req.subtitle"),t.oJD))},dependencies:[rt.Pi,rt.X$]}),e})();function Fe(e,i){if(1&e){const o=t.EpF();t.TgZ(0,"span",14),t._uU(1,"\n "),t.TgZ(2,"button",15),t.NdJ("click",function(){const Y=t.CHM(o).$implicit,C=t.oxw(2);return t.KtG(C.topologyByDate(Y.value))}),t._uU(3),t.ALo(4,"date"),t.qZA(),t._uU(5,"\n "),t.TgZ(6,"button",16),t.NdJ("click",function(){const Y=t.CHM(o).$implicit,C=t.oxw(2);return t.KtG(C.deleteTopologyByDate(Y.value))}),t.ALo(7,"translate"),t._uU(8,"\n "),t._UZ(9,"i",17),t._uU(10,"\n "),t.qZA(),t._uU(11,"\n "),t.qZA()}if(2&e){const o=i.$implicit;t.xp6(3),t.hij("\n ",t.xi3(4,2,1e3*o.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.xp6(3),t.s9C("title",t.lcZ(7,5,"network.topo.visu.delete.button"))}}function Ie(e,i){if(1&e&&(t.TgZ(0,"div",4),t._uU(1,"\n "),t._UZ(2,"div",5),t._uU(3,"\n "),t.TgZ(4,"div",6),t._uU(5,"\n "),t._UZ(6,"p",7),t.ALo(7,"translate"),t._uU(8,"\n "),t.TgZ(9,"div",8),t._uU(10,"\n "),t.TgZ(11,"div",9),t._uU(12,"\n "),t.TgZ(13,"div",10),t._uU(14,"\n "),t.TgZ(15,"perfect-scrollbar",11),t._uU(16,"\n "),t.TgZ(17,"div",12),t._uU(18,"\n "),t.YNc(19,Fe,12,7,"span",13),t.ALo(20,"keyvalue"),t._uU(21,"\n "),t.qZA(),t._uU(22,"\n "),t.qZA(),t._uU(23,"\n "),t.qZA(),t._uU(24,"\n "),t.qZA(),t._uU(25,"\n "),t.qZA(),t._uU(26,"\n "),t.qZA(),t._uU(27,"\n "),t.qZA()),2&e){const o=i.ngIf,r=t.oxw();t.xp6(6),t.Q6J("innerHTML",t.lcZ(7,2,"network.topo.subtitle"),t.oJD),t.xp6(13),t.Q6J("ngForOf",t.xi3(20,4,o,r.sortDesc))}}function We(e,i){if(1&e&&(t.TgZ(0,"div"),t._UZ(1,"app-detail-topology",18),t.qZA()),2&e){const o=t.oxw();t.xp6(1),t.Q6J("timeStamp",o.timeStamp)}}new xt.Yd("TopologyComponent");const je=[{path:"topology",component:(()=>{class e{constructor(o,r){this.apiService=o,this.cdr=r}ngOnInit(){this.topologies$=this.apiService.getTopologie()}sortDesc(o,r){return ee(o,r)}topologyByDate(o){this.timeStamp=o}deleteTopologyByDate(o){this.apiService.deleteTopologieByTimeStamp(o).subscribe(r=>{this.topologies$=this.apiService.getTopologie(),this.cdr.detectChanges()})}}return e.\u0275fac=function(o){return new(o||e)(t.Y36(Et.s),t.Y36(t.sBO))},e.\u0275cmp=t.Xpm({type:e,selectors:[["app-topology"]],decls:14,vars:4,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.topo.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","d-sm-flex gap-2",4,"ngFor","ngForOf"],[1,"d-sm-flex","gap-2"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"title","click"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(o,r){1&o&&(t.TgZ(0,"div",0),t._uU(1,"\n "),t.TgZ(2,"div",1),t._uU(3,"\n "),t.YNc(4,Ie,28,7,"div",2),t.ALo(5,"async"),t._uU(6,"\n "),t.qZA(),t._uU(7,"\n "),t.TgZ(8,"div"),t._UZ(9,"app-req-topology"),t.qZA(),t._uU(10,"\n"),t.qZA(),t._uU(11,"\n"),t.YNc(12,We,2,1,"div",3),t._uU(13,"\n")),2&o&&(t.xp6(4),t.Q6J("ngIf",t.lcZ(5,2,r.topologies$)),t.xp6(8),t.Q6J("ngIf",r.timeStamp))},dependencies:[s.sg,s.O5,rt.Pi,Gt,Oe,Xe,s.Ov,s.uU,s.Nd,rt.X$],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.content-container[_ngcontent-%COMP%]{position:relative;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0!important}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]}),e})(),data:{title:(0,xt.Kl)("network.topo")}},{path:"energy-level",component:Pe,data:{title:(0,xt.Kl)("network.energy")}}];let He=(()=>{class e{}return e.\u0275fac=function(o){return new(o||e)},e.\u0275mod=t.oAB({type:e}),e.\u0275inj=t.cJS({imports:[te.Bz.forChild(je),te.Bz]}),e})();const qe={suppressScrollX:!0};let Be=(()=>{class e{}return e.\u0275fac=function(o){return new(o||e)},e.\u0275mod=t.oAB({type:e}),e.\u0275inj=t.cJS({providers:[{provide:et.mA,useFactory:()=>[W,U,X,ge,j]},{provide:Qt,useValue:qe}],imports:[He,ut.m,et.SD,me]}),e})()},4e3:(ct,wt,z)=>{var ut,et,W;W=function(W){"use strict";var U=W?W._modules:{};function j(X,M,N,Z){X.hasOwnProperty(M)||(X[M]=Z.apply(null,N),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:M,module:X[M]}})))}j(U,"Series/DependencyWheel/DependencyWheelPoint.js",[U["Core/Series/SeriesRegistry.js"],U["Core/Utilities.js"]],function(X,M){var L,N=this&&this.__extends||(L=function(x,t){return(L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,g){s.__proto__=g}||function(s,g){for(var b in g)g.hasOwnProperty(b)&&(s[b]=g[b])})(x,t)},function(x,t){function s(){this.constructor=x}L(x,t),x.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}),R=M.wrap,A=function(L){function x(){var t=null!==L&&L.apply(this,arguments)||this;return t.angle=void 0,t.fromNode=void 0,t.index=void 0,t.linksFrom=void 0,t.linksTo=void 0,t.options=void 0,t.series=void 0,t.shapeArgs=void 0,t.toNode=void 0,t}return N(x,L),x.prototype.getDataLabelPath=function(t){var s=this,g=this.series.chart.renderer,b=this.shapeArgs,S=this.angle<0||this.angle>Math.PI,l=b.start||0,d=b.end||0;return this.dataLabelPath?(this.dataLabelPath=this.dataLabelPath.destroy(),delete this.dataLabelPath):R(t,"destroy",function(a){return s.dataLabelPath&&(s.dataLabelPath=s.dataLabelPath.destroy()),a.call(t)}),this.dataLabelPath=g.arc({open:!0,longArc:Math.abs(Math.abs(l)-Math.abs(d))c.index){n=n.slice(0,h).reverse().concat(n.slice(h).reverse()),k=!0;break}for(k||n.reverse(),h=0;hMath.PI&&(H=2*Math.PI-H),(H*=T){var ut,et,W;W=function(W){"use strict";var U=W?W._modules:{};function j(X,M,N,Z){X.hasOwnProperty(M)||(X[M]=Z.apply(null,N),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:M,module:X[M]}})))}j(U,"Series/DragNodesComposition.js",[U["Core/Utilities.js"]],function(X){var M=X.addEvent,N=[];function R(){var b,S,l,g=this;g.container&&(b=M(g.container,"mousedown",function(d){var a=g.hoverPoint;a&&a.series&&a.series.hasDraggableNodes&&a.series.options.draggable&&(a.series.onMouseDown(a,d),S=M(g.container,"mousemove",function(f){return a&&a.series&&a.series.onMouseMove(a,f)}),l=M(g.container.ownerDocument,"mouseup",function(f){return S(),l(),a&&a.series&&a.series.onMouseUp(a,f)}))})),M(g,"destroy",function(){b()})}return{compose:function Z(g){-1===N.indexOf(g)&&(N.push(g),M(g,"load",R))},onMouseDown:function A(g,b){var S=this.chart.pointer.normalize(b);g.fixedPosition={chartX:S.chartX,chartY:S.chartY,plotX:g.plotX,plotY:g.plotY},g.inDragMode=!0},onMouseMove:function L(g,b){if(g.fixedPosition&&g.inDragMode){var l=this.chart,d=l.pointer.normalize(b),a=g.fixedPosition.chartX-d.chartX,f=g.fixedPosition.chartY-d.chartY,y=l.graphLayoutsLookup,p=void 0,c=void 0;(Math.abs(a)>5||Math.abs(f)>5)&&l.isInsidePlot(p=g.fixedPosition.plotX-a,c=g.fixedPosition.plotY-f)&&(g.plotX=p,g.plotY=c,g.hasDragged=!0,this.redrawHalo(g),y.forEach(function(m){m.restartSimulation()}))}},onMouseUp:function x(g,b){g.fixedPosition&&(g.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),g.inDragMode=g.hasDragged=!1,this.options.fixedDraggable||delete g.fixedPosition)},redrawHalo:function t(g){g&&this.halo&&this.halo.attr({d:g.haloPath(this.options.states.hover.halo.size)})}}}),j(U,"Series/GraphLayoutComposition.js",[U["Core/Animation/AnimationUtilities.js"],U["Core/Utilities.js"]],function(X,M){var N=X.setAnimation,Z=M.addEvent,R=[];function t(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(function(l){l.updateSimulation()}),this.redraw())}function s(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(function(l){l.updateSimulation(!1)}),this.redraw())}function g(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(l){l.stop()})}function b(){var l,d=!1,a=function(f){f.maxIterations--&&isFinite(f.temperature)&&!f.isStable()&&!f.enableSimulation&&(f.beforeStep&&f.beforeStep(),f.step(),l=!1,d=!0)};if(this.graphLayoutsLookup){for(N(!1,this),this.graphLayoutsLookup.forEach(function(f){return f.start()});!l;)l=!0,this.graphLayoutsLookup.forEach(a);d&&this.series.forEach(function(f){f&&f.layout&&f.render()})}}return{compose:function x(l){R.indexOf(l)&&(R.push(l),Z(l,"afterPrint",t),Z(l,"beforePrint",s),Z(l,"predraw",g),Z(l,"render",b))},integrations:{},layouts:{}}}),j(U,"Series/NodesComposition.js",[U["Core/Series/SeriesRegistry.js"],U["Core/Utilities.js"]],function(X,M){var g,N=X.series,Z=N.prototype,R=N.prototype.pointClass.prototype,A=M.defined,L=M.extend,x=M.find,t=M.merge,s=M.pick;return function(b){var S=[];function a(){return this.data=[].concat(this.points||[],this.nodes),Z.destroy.apply(this,arguments)}function y(){this.nodes&&(this.nodes.forEach(function(m){m.destroy()}),this.nodes.length=0),Z.setData.apply(this,arguments)}function p(m){var v=arguments,h=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==m&&h.forEach(function(n){n&&n.series&&(R.setState.apply(n,v),n.isNode||(n.fromNode.graphic&&R.setState.apply(n.fromNode,v),n.toNode&&n.toNode.graphic&&R.setState.apply(n.toNode,v)))}),R.setState.apply(this,v)}function c(m,v,h,n){var k=this,u=this.series.options.nodes,_=this.series.options.data,T=_&&_.length||0,D=_&&_[this.index];if(R.update.call(this,m,!this.isNode&&v,h,n),this.isNode){var O=(u||[]).reduce(function(H,I,q){return k.id===I.id?q:H},-1),B=t(u&&u[O]||{},_&&_[this.index]||{});_&&(D?_[this.index]=D:_.length=T),u?O>=0?u[O]=B:u.push(B):this.series.options.nodes=[B],s(v,!0)&&this.series.chart.redraw(h)}}b.compose=function l(m,v){if(-1===S.indexOf(m)){S.push(m);var h=m.prototype;h.setNodeState=p,h.setState=p,h.update=c}if(-1===S.indexOf(v)){S.push(v);var n=v.prototype;n.destroy=a,n.setData=y}return v},b.createNode=function d(m){var k,v=this.pointClass,h=function(_,T){return x(_,function(D){return D.id===T})},n=h(this.nodes,m);if(!n){k=this.options.nodes&&h(this.options.nodes,m);var u=(new v).init(this,L({className:"highcharts-node",isNode:!0,id:m,y:1},k));u.linksTo=[],u.linksFrom=[],u.getSum=function(){var _=0,T=0;return u.linksTo.forEach(function(D){_+=D.weight||0}),u.linksFrom.forEach(function(D){T+=D.weight||0}),Math.max(_,T)},u.offset=function(_,T){for(var D=0,O=0;Of.plotX&&(a=this.toNode,f=this.fromNode),[["M",a.plotX||0,a.plotY||0],["L",f.plotX||0,f.plotY||0]]},d.prototype.getMass=function(){var a=this.fromNode.mass,f=this.toNode.mass,y=a+f;return{fromNode:1-a/y,toNode:1-f/y}},d.prototype.init=function(a,f,y){return l.prototype.init.call(this,a,f,y),this.series.options.draggable&&!this.series.chart.styledMode&&(x(this,"mouseOver",function(){t(this.series.chart.container,{cursor:"move"})}),x(this,"mouseOut",function(){t(this.series.chart.container,{cursor:"default"})})),this},d.prototype.isValid=function(){return!this.isNode||s(this.id)},d.prototype.redrawLink=function(){var f,a=this.getLinkPath();if(this.graphic){this.shapeArgs={d:a},this.series.chart.styledMode||(f=this.series.pointAttribs(this),this.graphic.attr(f),(this.dataLabels||[]).forEach(function(c){c&&c.attr({opacity:f.opacity})})),this.graphic.animate(this.shapeArgs);var y=a[0],p=a[1];"M"===y[0]&&"L"===p[0]&&(this.plotX=(y[1]+p[1])/2,this.plotY=(y[2]+p[2])/2)}},d.prototype.remove=function(a,f){var m,y=this,p=y.series,c=p.options.nodes||[],v=c.length;if(y.isNode){for(p.points=[],[].concat(y.linksFrom).concat(y.linksTo).forEach(function(h){(m=h.fromNode.linksFrom.indexOf(h))>-1&&h.fromNode.linksFrom.splice(m,1),(m=h.toNode.linksTo.indexOf(h))>-1&&h.toNode.linksTo.splice(m,1),A.removePoint.call(p,p.data.indexOf(h),!1,!1)}),p.points=p.data.slice(),p.nodes.splice(p.nodes.indexOf(y),1);v--;)if(c[v].id===y.options.id){p.options.nodes.splice(v,1);break}y&&y.destroy(),p.isDirty=!0,p.isDirtyData=!0,a&&p.chart.redraw(a)}else p.removePoint(p.data.indexOf(y),a,f)},d.prototype.renderLink=function(){var a;this.graphic||(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(a=this.series.pointAttribs(this),this.graphic.attr(a),(this.dataLabels||[]).forEach(function(f){f&&f.attr({opacity:a.opacity})})))},d}(L);return g(S.prototype,{setState:X.setNodeState}),S}),j(U,"Series/Networkgraph/NetworkgraphSeriesDefaults.js",[],function(){return{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,animation:{duration:50}}},dataLabels:{formatter:function(){return this.key},linkFormatter:function(){return this.point.fromNode.name+"
"+this.point.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}}),j(U,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function X(t,s,g,b){var S=t.getMass(),l=g.x/b*s,d=g.y/b*s;t.fromNode.fixedPosition||(t.fromNode.dispX-=l*S.fromNode/t.fromNode.degree,t.fromNode.dispY-=d*S.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=l*S.toNode/t.toNode.degree,t.toNode.dispY+=d*S.toNode/t.toNode.degree)},attractiveForceFunction:function M(t,s){return t*t/s},barycenter:function N(){var t=this.options.gravitationalConstant,s=this.barycenter.xFactor,g=this.barycenter.yFactor;this.nodes.forEach(function(b){if(!b.fixedPosition){var S=b.getDegree(),l=S*(1+S/2);b.dispX+=(s-b.plotX)*t*l/b.degree,b.dispY+=(g-b.plotY)*t*l/b.degree}})},getK:function Z(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function R(t,s){var g;s.dispX+=s.dispX*t.options.friction,s.dispY+=s.dispY*t.options.friction,0!==(g=s.temperature=t.vectorLength({x:s.dispX,y:s.dispY}))&&(s.plotX+=s.dispX/g*Math.min(Math.abs(s.dispX),t.temperature),s.plotY+=s.dispY/g*Math.min(Math.abs(s.dispY),t.temperature))},repulsive:function A(t,s,g,b){t.dispX+=g.x/b*s/t.degree,t.dispY+=g.y/b*s/t.degree},repulsiveForceFunction:function L(t,s){return s*s/t}}}),j(U,"Series/Networkgraph/QuadTreeNode.js",[],function(){return function(){function M(N){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=N,this.boxSize=Math.min(N.width,N.height)}return M.prototype.divideBox=function(){var N=this.box.width/2,Z=this.box.height/2;this.nodes[0]=new M({left:this.box.left,top:this.box.top,width:N,height:Z}),this.nodes[1]=new M({left:this.box.left+N,top:this.box.top,width:N,height:Z}),this.nodes[2]=new M({left:this.box.left+N,top:this.box.top+Z,width:N,height:Z}),this.nodes[3]=new M({left:this.box.left,top:this.box.top+Z,width:N,height:Z})},M.prototype.getBoxPosition=function(N){var R=N.plotYt?1:0)}}}),j(U,"Series/Networkgraph/ReingoldFruchtermanLayout.js",[U["Series/Networkgraph/EulerIntegration.js"],U["Core/Globals.js"],U["Series/GraphLayoutComposition.js"],U["Series/Networkgraph/QuadTree.js"],U["Core/Utilities.js"],U["Series/Networkgraph/VerletIntegration.js"]],function(X,M,N,Z,R,A){var L=M.win,x=R.clamp,t=R.defined,s=R.isFunction,g=R.pick,b=function(){function S(){this.attractiveForce=void 0,this.box={},this.currentStep=0,this.initialRendering=!0,this.integration=void 0,this.links=[],this.nodes=[],this.options=void 0,this.quadTree=void 0,this.repulsiveForce=void 0,this.series=[],this.simulation=!1}return S.compose=function(l){N.compose(l),N.integrations.euler=X,N.integrations.verlet=A,N.layouts["reingold-fruchterman"]=S},S.prototype.init=function(l){this.options=l,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=N.integrations[l.integration],this.enableSimulation=l.enableSimulation,this.attractiveForce=g(l.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=g(l.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=l.approximation},S.prototype.updateSimulation=function(l){this.enableSimulation=g(l,this.options.enableSimulation)},S.prototype.start=function(){var l=this,d=this.series,a=this.options;l.currentStep=0,l.forces=d[0]&&d[0].forces||[],l.chart=d[0]&&d[0].chart,l.initialRendering&&(l.initPositions(),d.forEach(function(f){f.finishedAnimating=!0,f.render()})),l.setK(),l.resetSimulation(a),l.enableSimulation&&l.step()},S.prototype.step=function(){var l=this,a=this.series;this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter());for(var f=0,y=this.forces||[];f=0;k--)(n=this.nodes[k]).degree=n.getDegree(),n.radius=c(n.marker&&n.marker.radius,this.options.marker&&this.options.marker.radius,0),this.nodeLookup[n.id]||n.remove();this.data.forEach(function(u){u.formatPrefix="link"}),this.indexateNodes()},h.prototype.getPointsCollection=function(){return this.nodes||[]},h.prototype.indexateNodes=function(){this.nodes.forEach(function(n,k){n.index=k})},h.prototype.init=function(n,k){var u=this;return v.prototype.init.call(this,n,k),a(this,"updatedData",function(){u.layout&&u.layout.stop()}),a(this,"afterUpdate",function(){u.nodes.forEach(function(_){_&&_.series&&_.resolveColor()})}),this},h.prototype.markerAttribs=function(n,k){var u=b.prototype.markerAttribs.call(this,n,k);return f(n.plotY)||(u.y=0),u.x=(n.plotX||0)-(u.width||0)/2,u},h.prototype.pointAttribs=function(n,k){var u=k||n&&n.state||"normal",_=b.prototype.pointAttribs.call(this,n,u),T=this.options.states[u];return n&&!n.isNode&&(_=n.getLinkAttributes(),T&&(_={stroke:T.linkColor||_.stroke,dashstyle:T.linkDashStyle||_.dashstyle,opacity:c(T.linkOpacity,_.opacity),"stroke-width":T.linkColor||_["stroke-width"]})),_},h.prototype.render=function(){var n=this,k=n.points,u=n.chart.hoverPoint,_=[];n.points=n.nodes,d.render.call(this),n.points=k,k.forEach(function(T){T.fromNode&&T.toNode&&(T.renderLink(),T.redrawLink())}),u&&u.series===n&&n.redrawHalo(u),n.chart.hasRendered&&!n.options.dataLabels.allowOverlap&&(n.nodes.concat(n.points).forEach(function(T){T.dataLabel&&_.push(T.dataLabel)}),n.chart.hideOverlappingLabels(_))},h.prototype.setState=function(n,k){k?(this.points=this.nodes.concat(this.data),b.prototype.setState.apply(this,arguments),this.points=this.data):b.prototype.setState.apply(this,arguments),!this.layout.simulation&&!n&&this.render()},h.prototype.translate=function(){this.processedXData||this.processData(),this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(n){n.isInside=!0,n.linksFrom.forEach(function(k){k.shapeType="path",k.y=1})})},h.defaultOptions=p(b.defaultOptions,R),h}(b);return y(m.prototype,{pointClass:Z,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],buildKDTree:g,createNode:A.createNode,drawTracker:l.drawTracker,onMouseDown:X.onMouseDown,onMouseMove:X.onMouseMove,onMouseUp:X.onMouseUp,redrawHalo:X.redrawHalo}),x.registerSeriesType("networkgraph",m),m}),j(U,"masters/modules/networkgraph.src.js",[U["Core/Globals.js"],U["Series/Networkgraph/NetworkgraphSeries.js"]],function(X,M){M.compose(X.Chart)})},ct.exports?(W.default=W,ct.exports=W):(ut=[z(93470)],void 0!==(et=function(U){return W(U),W.Highcharts=U,W}.apply(wt,ut))&&(ct.exports=et))},4971:(ct,wt,z)=>{var ut,et,W;W=function(W){function U(j,X,M,N){j.hasOwnProperty(X)||(j[X]=N.apply(null,M),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:X,module:j[X]}})))}U(W=W?W._modules:{},"Series/NodesComposition.js",[W["Core/Series/SeriesRegistry.js"],W["Core/Utilities.js"]],function(j,X){var t,M=(j=j.series).prototype,N=j.prototype.pointClass.prototype,Z=X.defined,R=X.extend,A=X.find,L=X.merge,x=X.pick;return function(s){function g(){return this.data=[].concat(this.points||[],this.nodes),M.destroy.apply(this,arguments)}function b(){this.nodes&&(this.nodes.forEach(function(a){a.destroy()}),this.nodes.length=0),M.setData.apply(this,arguments)}function S(a){var f=arguments,y=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==a&&y.forEach(function(p){p&&p.series&&(N.setState.apply(p,f),p.isNode||(p.fromNode.graphic&&N.setState.apply(p.fromNode,f),p.toNode&&p.toNode.graphic&&N.setState.apply(p.toNode,f)))}),N.setState.apply(this,f)}function l(a,f,y,p){var c=this,m=this.series.options.nodes,v=this.series.options.data,h=v&&v.length||0,n=v&&v[this.index];N.update.call(this,a,!this.isNode&&f,y,p),this.isNode&&(a=(m||[]).reduce(function(k,u,_){return c.id===u.id?_:k},-1),p=L(m&&m[a]||{},v&&v[this.index]||{}),v&&(n?v[this.index]=n:v.length=h),m?0<=a?m[a]=p:m.push(p):this.series.options.nodes=[p],x(f,!0)&&this.series.chart.redraw(y))}var d=[];s.compose=function(a,f){return-1===d.indexOf(a)&&(d.push(a),(a=a.prototype).setNodeState=S,a.setState=S,a.update=l),-1===d.indexOf(f)&&(d.push(f),(a=f.prototype).destroy=g,a.setData=b),f},s.createNode=function(a){var f=this.pointClass,y=function(m,v){return A(m,function(h){return h.id===v})},p=y(this.nodes,a);if(!p){y=this.options.nodes&&y(this.options.nodes,a);var c=(new f).init(this,R({className:"highcharts-node",isNode:!0,id:a,y:1},y));c.linksTo=[],c.linksFrom=[],c.getSum=function(){var m=0,v=0;return c.linksTo.forEach(function(h){m+=h.weight||0}),c.linksFrom.forEach(function(h){v+=h.weight||0}),Math.max(m,v)},c.offset=function(m,v){for(var h=0,n=0;nL&&s.fromNode!==this&&(L=(x=s.fromNode).column)}return{fromNode:x,fromColumn:L}},A.prototype.setNodeColumn=function(){Z(this.options.column)||(this.column=0===this.linksTo.length?0:this.getFromNode().fromColumn+1)},A.prototype.isValid=function(){return this.isNode||"number"==typeof this.weight},A}(X.seriesTypes.column.prototype.pointClass)}),U(W,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkOpacity:.5,opacity:1,minLinkWidth:0,nodeWidth:20,nodePadding:10,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
",nodeFormat:"{point.name}: {point.sum}
"}}}),U(W,"Series/Sankey/SankeyColumnComposition.js",[W["Core/Utilities.js"]],function(j){var N,X=j.defined,M=j.relativeLength;return function(Z){Z.compose=function(A,L){return A.sankeyColumn=new R(A,L),A};var R=function(){function A(L,x){this.points=L,this.series=x}return A.prototype.getTranslationFactor=function(L){for(var b,x=this.points,t=x.slice(),s=L.options.minLinkWidth||0,g=0,S=(L.chart.plotSizeY||0)-(L.options.borderWidth||0)-(x.length-1)*L.nodePadding;x.length;){for(g=S/x.sankeyColumn.sum(),L=!1,b=x.length;b--;)x[b].getSum()*g"u"&&(c[m]=A.compose([],this));return c},p.prototype.order=function(c,m){var v=this;typeof c.level>"u"&&(c.level=m,c.linksFrom.forEach(function(h){h.toNode&&v.order(h.toNode,m+1)}))},p.prototype.generatePoints=function(){M.generatePoints.apply(this,arguments);var c=this;this.orderNodes&&(this.nodes.filter(function(m){return 0===m.linksTo.length}).forEach(function(m){c.order(m,0)}),f(this.nodes,function(m,v){return m.level-v.level}))},p.prototype.getNodePadding=function(){var c=this.options.nodePadding||0;if(this.nodeColumns){var m=this.nodeColumns.reduce(function(v,h){return Math.max(v,h.length)},0);m*c>this.chart.plotSizeY&&(c=this.chart.plotSizeY/m)}return c},p.prototype.hasData=function(){return!!this.processedXData.length},p.prototype.pointAttribs=function(c,m){if(!c)return{};var v=this,h=v.mapOptionsToLevel[(c.isNode?c.level:c.fromNode.level)||0]||{},n=c.options,k=h.states&&h.states[m||""]||{};m=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce(function(_,T){return _[T]=d(k[T],n[T],h[T],v.options[T]),_},{});var u=d(k.color,n.color,m.colorByPoint?c.color:h.color);return c.isNode?{fill:u,stroke:m.borderColor,"stroke-width":m.borderWidth,opacity:m.opacity}:{fill:j.parse(u).setOpacity(m.linkOpacity).get()}},p.prototype.drawTracker=function(){g.prototype.drawTracker.call(this,this.points),g.prototype.drawTracker.call(this,this.nodes)},p.prototype.drawPoints=function(){g.prototype.drawPoints.call(this,this.points),g.prototype.drawPoints.call(this,this.nodes)},p.prototype.drawDataLabels=function(){g.prototype.drawDataLabels.call(this,this.points),g.prototype.drawDataLabels.call(this,this.nodes)},p.prototype.translate=function(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns(),this.nodeWidth=a(this.options.nodeWidth,this.chart.plotSizeX);var c=this,m=this.chart,v=this.options,h=this.nodeWidth,n=this.nodeColumns;this.nodePadding=this.getNodePadding(),this.translationFactor=n.reduce(function(k,u){return Math.min(k,u.sankeyColumn.getTranslationFactor(c))},1/0),this.colDistance=(m.plotSizeX-h-v.borderWidth)/Math.max(1,n.length-1),c.mapOptionsToLevel=b({from:1,levels:v.levels,to:n.length-1,defaults:{borderColor:v.borderColor,borderRadius:v.borderRadius,borderWidth:v.borderWidth,color:c.color,colorByPoint:v.colorByPoint,levelIsConstant:!0,linkColor:v.linkColor,linkLineWidth:v.linkLineWidth,linkOpacity:v.linkOpacity,states:v.states}}),n.forEach(function(k){k.forEach(function(u){c.translateNode(u,k)})},this),this.nodes.forEach(function(k){k.linksFrom.forEach(function(u){(u.weight||u.isNull)&&u.to&&(c.translateLink(u),u.allowShadow=!1)})})},p.prototype.translateLink=function(c){var m=function(pt,yt){return yt=pt.offset(c,yt)*k,Math.min(pt.nodeY+yt,pt.nodeY+(pt.shapeArgs&&pt.shapeArgs.height||0)-u)},v=c.fromNode,h=c.toNode,n=this.chart,k=this.translationFactor,u=Math.max(c.weight*k,this.options.minLinkWidth),_=(n.inverted?-this.colDistance:this.colDistance)*this.options.curveFactor,T=m(v,"linksFrom");m=m(h,"linksTo");var D=v.nodeX,O=this.nodeWidth,B=c.outgoing,H=(h=h.nodeX)>D+O;if(n.inverted&&(T=n.plotSizeY-T,m=(n.plotSizeY||0)-m,O=-O,u=-u,H=D>h),c.shapeType="path",c.linkBase=[T,T+u,m,m+u],H&&"number"==typeof m)c.shapeArgs={d:[["M",D+O,T],["C",D+O+_,T,h-_,m,h,m],["L",h+(B?O:0),m+u/2],["L",h,m+u],["C",h-_,m+u,D+O+_,T+u,D+O,T+u],["Z"]]};else if("number"==typeof m){var I=(H=D+O)+20,q=I+u,$=T+u,G=$+20,st=G+(n.plotHeight-T-u),it=st+20,at=it+u,ft=m+u,mt=ft+20,ht=it+.7*u,gt=h-.7*u,dt=H+.7*u;c.shapeArgs={d:[["M",H,T],["C",dt,T,q,$-.7*u,q,G],["L",q,st],["C",q,ht,dt,at,H,at],["L",h,at],["C",gt,at,_=h-20-u,ht,_,st],["L",_,mt],["C",_,ft-.7*u,gt,m,h,m],["L",h,ft],["C",B=h-20,ft,B,ft,B,mt],["L",B,st],["C",B,it,B,it,h,it],["L",H,it],["C",I,it,I,it,I,st],["L",I,G],["C",I,$,I,$,H,$],["Z"]]}}c.dlBox={x:D+(h-D+O)/2,y:T+(m-T)/2,height:u,width:0},c.tooltipPos=n.inverted?[n.plotSizeY-c.dlBox.y-u/2,n.plotSizeX-c.dlBox.x]:[c.dlBox.x,c.dlBox.y+u/2],c.y=c.plotY=1,c.x=c.plotX=1,c.color||(c.color=v.color)},p.prototype.translateNode=function(c,m){var v=this.translationFactor,h=this.chart,n=this.options,k=c.getSum(),u=Math.max(Math.round(k*v),this.options.minLinkWidth),_=Math.round(this.nodeWidth),T=Math.round(n.borderWidth)%2/2,D=m.sankeyColumn.offset(c,v);if(m=Math.floor(d(D.absoluteTop,m.sankeyColumn.top(v)+D.relativeTop))+T,T=Math.floor(this.colDistance*c.column+n.borderWidth/2)+a(c.options.offsetHorizontal||0,_)+T,T=h.inverted?h.plotSizeX-T:T,c.sum=k){c.shapeType="rect",c.nodeX=T,c.nodeY=m,k=T,v=m,D=c.options.width||n.width||_;var O=c.options.height||n.height||u;h.inverted&&(k=T-_,v=h.plotSizeY-m-u,D=c.options.height||n.height||_,O=c.options.width||n.width||u),c.dlOptions=p.getDLOptions({level:this.mapOptionsToLevel[c.level],optionsPoint:c.options}),c.plotX=1,c.plotY=1,c.tooltipPos=h.inverted?[h.plotSizeY-v-O/2,h.plotSizeX-k-D/2]:[k+D/2,v+O/2],c.shapeArgs={x:k,y:v,width:D,height:O,display:c.hasShape()?"":"none"}}else c.dlOptions={enabled:!1}},p.defaultOptions=l(g.defaultOptions,Z),p}(g),M.compose(N,x),L(x.prototype,{animate:s.prototype.animate,createNode:M.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:N,searchPoint:X.noop}),R.registerSeriesType("sankey",x),x}),U(W,"masters/modules/sankey.src.js",[],function(){})},ct.exports?(W.default=W,ct.exports=W):(ut=[z(93470)],void 0!==(et=function(U){return W(U),W.Highcharts=U,W}.apply(wt,ut))&&(ct.exports=et))},3304:(ct,wt,z)=>{var ut,et,W;W=function(W){"use strict";var U=W?W._modules:{};function j(X,M,N,Z){X.hasOwnProperty(M)||(X[M]=Z.apply(null,N),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:M,module:X[M]}})))}j(U,"Series/NodesComposition.js",[U["Core/Series/SeriesRegistry.js"],U["Core/Utilities.js"]],function(X,M){var g,N=X.series,Z=N.prototype,R=N.prototype.pointClass.prototype,A=M.defined,L=M.extend,x=M.find,t=M.merge,s=M.pick;return function(b){var S=[];function a(){return this.data=[].concat(this.points||[],this.nodes),Z.destroy.apply(this,arguments)}function y(){this.nodes&&(this.nodes.forEach(function(m){m.destroy()}),this.nodes.length=0),Z.setData.apply(this,arguments)}function p(m){var v=arguments,h=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==m&&h.forEach(function(n){n&&n.series&&(R.setState.apply(n,v),n.isNode||(n.fromNode.graphic&&R.setState.apply(n.fromNode,v),n.toNode&&n.toNode.graphic&&R.setState.apply(n.toNode,v)))}),R.setState.apply(this,v)}function c(m,v,h,n){var k=this,u=this.series.options.nodes,_=this.series.options.data,T=_&&_.length||0,D=_&&_[this.index];if(R.update.call(this,m,!this.isNode&&v,h,n),this.isNode){var O=(u||[]).reduce(function(H,I,q){return k.id===I.id?q:H},-1),B=t(u&&u[O]||{},_&&_[this.index]||{});_&&(D?_[this.index]=D:_.length=T),u?O>=0?u[O]=B:u.push(B):this.series.options.nodes=[B],s(v,!0)&&this.series.chart.redraw(h)}}b.compose=function l(m,v){if(-1===S.indexOf(m)){S.push(m);var h=m.prototype;h.setNodeState=p,h.setState=p,h.update=c}if(-1===S.indexOf(v)){S.push(v);var n=v.prototype;n.destroy=a,n.setData=y}return v},b.createNode=function d(m){var k,v=this.pointClass,h=function(_,T){return x(_,function(D){return D.id===T})},n=h(this.nodes,m);if(!n){k=this.options.nodes&&h(this.options.nodes,m);var u=(new v).init(this,L({className:"highcharts-node",isNode:!0,id:m,y:1},k));u.linksTo=[],u.linksFrom=[],u.getSum=function(){var _=0,T=0;return u.linksTo.forEach(function(D){_+=D.weight||0}),u.linksFrom.forEach(function(D){T+=D.weight||0}),Math.max(_,T)},u.offset=function(_,T){for(var D=0,O=0;Og&&l.fromNode!==s&&(g=(b=l.fromNode).column)}return{fromNode:b,fromColumn:g}},t.prototype.setNodeColumn=function(){var s=this;A(s.options.column)||(s.column=0===s.linksTo.length?0:s.getFromNode().fromColumn+1)},t.prototype.isValid=function(){return this.isNode||"number"==typeof this.weight},t}(M.seriesTypes.column.prototype.pointClass);return L}),j(U,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkOpacity:.5,opacity:1,minLinkWidth:0,nodeWidth:20,nodePadding:10,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
",nodeFormat:"{point.name}: {point.sum}
"}}}),j(U,"Series/Sankey/SankeyColumnComposition.js",[U["Core/Utilities.js"]],function(X){var Z,M=X.defined,N=X.relativeLength;return function(R){R.compose=function A(x,t){var s=x;return s.sankeyColumn=new L(s,t),s};var L=function(){function x(t,s){this.points=t,this.series=s}return x.prototype.getTranslationFactor=function(t){for(var l,a,s=this.points,g=s.slice(),S=t.options.minLinkWidth||0,d=0,f=(t.chart.plotSizeY||0)-(t.options.borderWidth||0)-(s.length-1)*t.nodePadding;s.length;){for(d=f/s.sankeyColumn.sum(),l=!1,a=s.length;a--;)s[a].getSum()*d0&&(S+=g),S+Math.max(l.getSum()*t,s.options.minLinkWidth||0)},0);return((s.chart.plotSizeY||0)-b)/2},x.prototype.left=function(t){var s=this.series,g=s.chart,b=s.options.equalNodes,S=g.inverted?g.plotHeight:g.plotWidth,l=s.nodePadding,d=this.points.reduce(function(a,f){return a>0&&(a+=l),a+(b?S/f.series.nodes.length-l:Math.max(f.getSum()*t,s.options.minLinkWidth||0))},0);return((g.plotSizeX||0)-Math.round(d))/2},x.prototype.sum=function(){return this.points.reduce(function(t,s){return t+s.getSum()},0)},x.prototype.offset=function(t,s){var d,g=this.points,b=this.series,S=b.nodePadding,l=0;if(b.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(var a=0;a=0&&(k>0||l.visible),l.children=n,l.childrenTotal=k,l.isLeaf=l.visible&&!k,l.val=u,l},updateRootId:function b(l){var d,a;return A(l)&&(a=A(l.options)?l.options:{},d=x(l.rootNode,a.rootId,""),A(l.userOptions)&&(l.userOptions.rootId=d),l.rootNode=d),d}}}),j(U,"Series/Sankey/SankeySeries.js",[U["Core/Color/Color.js"],U["Core/Globals.js"],U["Series/NodesComposition.js"],U["Series/Sankey/SankeyPoint.js"],U["Series/Sankey/SankeySeriesDefaults.js"],U["Core/Series/SeriesRegistry.js"],U["Series/Sankey/SankeyColumnComposition.js"],U["Series/TreeUtilities.js"],U["Core/Utilities.js"]],function(X,M,N,Z,R,A,L,x,t){var v,s=this&&this.__extends||(v=function(h,n){return(v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(k,u){k.__proto__=u}||function(k,u){for(var _ in u)u.hasOwnProperty(_)&&(k[_]=u[_])})(h,n)},function(h,n){function k(){this.constructor=h}v(h,n),h.prototype=null===n?Object.create(n):(k.prototype=n.prototype,new k)}),g=A.series,b=A.seriesTypes.column,S=x.getLevelOptions,d=t.extend,a=t.isObject,f=t.merge,y=t.pick,p=t.relativeLength,c=t.stableSort,m=function(v){function h(){var n=null!==v&&v.apply(this,arguments)||this;return n.colDistance=void 0,n.data=void 0,n.group=void 0,n.nodeLookup=void 0,n.nodePadding=void 0,n.nodes=void 0,n.nodeWidth=void 0,n.options=void 0,n.points=void 0,n.translationFactor=void 0,n}return s(h,v),h.getDLOptions=function(n){var k=a(n.optionsPoint)?n.optionsPoint.dataLabels:{},u=a(n.level)?n.level.dataLabels:{};return f({style:{}},u,k)},h.prototype.createNodeColumns=function(){var n=[];this.nodes.forEach(function(u){u.setNodeColumn(),n[u.column]||(n[u.column]=L.compose([],this)),n[u.column].push(u)},this);for(var k=0;k"u"&&(n[k]=L.compose([],this));return n},h.prototype.order=function(n,k){var u=this;typeof n.level>"u"&&(n.level=k,n.linksFrom.forEach(function(_){_.toNode&&u.order(_.toNode,k+1)}))},h.prototype.generatePoints=function(){N.generatePoints.apply(this,arguments);var n=this;this.orderNodes&&(this.nodes.filter(function(k){return 0===k.linksTo.length}).forEach(function(k){n.order(k,0)}),c(this.nodes,function(k,u){return k.level-u.level}))},h.prototype.getNodePadding=function(){var n=this.options.nodePadding||0;if(this.nodeColumns){var k=this.nodeColumns.reduce(function(u,_){return Math.max(u,_.length)},0);k*n>this.chart.plotSizeY&&(n=this.chart.plotSizeY/k)}return n},h.prototype.hasData=function(){return!!this.processedXData.length},h.prototype.pointAttribs=function(n,k){if(!n)return{};var u=this,T=u.mapOptionsToLevel[(n.isNode?n.level:n.fromNode.level)||0]||{},D=n.options,O=T.states&&T.states[k||""]||{},B=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce(function(I,q){return I[q]=y(O[q],D[q],T[q],u.options[q]),I},{}),H=y(O.color,D.color,B.colorByPoint?n.color:T.color);return n.isNode?{fill:H,stroke:B.borderColor,"stroke-width":B.borderWidth,opacity:B.opacity}:{fill:X.parse(H).setOpacity(B.linkOpacity).get()}},h.prototype.drawTracker=function(){b.prototype.drawTracker.call(this,this.points),b.prototype.drawTracker.call(this,this.nodes)},h.prototype.drawPoints=function(){b.prototype.drawPoints.call(this,this.points),b.prototype.drawPoints.call(this,this.nodes)},h.prototype.drawDataLabels=function(){b.prototype.drawDataLabels.call(this,this.points),b.prototype.drawDataLabels.call(this,this.nodes)},h.prototype.translate=function(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns(),this.nodeWidth=p(this.options.nodeWidth,this.chart.plotSizeX);var n=this,k=this.chart,u=this.options,_=this.nodeWidth,T=this.nodeColumns;this.nodePadding=this.getNodePadding(),this.translationFactor=T.reduce(function(D,O){return Math.min(D,O.sankeyColumn.getTranslationFactor(n))},1/0),this.colDistance=(k.plotSizeX-_-u.borderWidth)/Math.max(1,T.length-1),n.mapOptionsToLevel=S({from:1,levels:u.levels,to:T.length-1,defaults:{borderColor:u.borderColor,borderRadius:u.borderRadius,borderWidth:u.borderWidth,color:n.color,colorByPoint:u.colorByPoint,levelIsConstant:!0,linkColor:u.linkColor,linkLineWidth:u.linkLineWidth,linkOpacity:u.linkOpacity,states:u.states}}),T.forEach(function(D){D.forEach(function(O){n.translateNode(O,D)})},this),this.nodes.forEach(function(D){D.linksFrom.forEach(function(O){(O.weight||O.isNull)&&O.to&&(n.translateLink(O),O.allowShadow=!1)})})},h.prototype.translateLink=function(n){var k=function(Nt,Wt){var jt=Nt.offset(n,Wt)*D;return Math.min(Nt.nodeY+jt,Nt.nodeY+(Nt.shapeArgs&&Nt.shapeArgs.height||0)-O)},u=n.fromNode,_=n.toNode,T=this.chart,D=this.translationFactor,O=Math.max(n.weight*D,this.options.minLinkWidth),H=(T.inverted?-this.colDistance:this.colDistance)*this.options.curveFactor,I=k(u,"linksFrom"),q=k(_,"linksTo"),ot=u.nodeX,$=this.nodeWidth,G=_.nodeX,st=n.outgoing,it=G>ot+$;if(T.inverted&&(I=T.plotSizeY-I,q=(T.plotSizeY||0)-q,$=-$,O=-O,it=ot>G),n.shapeType="path",n.linkBase=[I,I+O,q,q+O],it&&"number"==typeof q)n.shapeArgs={d:[["M",ot+$,I],["C",ot+$+H,I,G-H,q,G,q],["L",G+(st?$:0),q+O/2],["L",G,q+O],["C",G-H,q+O,ot+$+H,I+O,ot+$,I+O],["Z"]]};else if("number"==typeof q){var ft=G-20-O,mt=G-20,gt=ot+$,dt=gt+20,pt=dt+O,Ct=I+O,Mt=Ct+20,Lt=Mt+(T.plotHeight-I-O),_t=Lt+20,At=_t+O,Pt=q+O,Zt=Pt+20,Ot=_t+.7*O,Xt=G-.7*O,Ft=gt+.7*O;n.shapeArgs={d:[["M",gt,I],["C",Ft,I,pt,Ct-.7*O,pt,Mt],["L",pt,Lt],["C",pt,Ot,Ft,At,gt,At],["L",G,At],["C",Xt,At,ft,Ot,ft,Lt],["L",ft,Zt],["C",ft,Pt-.7*O,Xt,q,G,q],["L",G,Pt],["C",mt,Pt,mt,Pt,mt,Zt],["L",mt,Lt],["C",mt,_t,mt,_t,G,_t],["L",gt,_t],["C",dt,_t,dt,_t,dt,Lt],["L",dt,Mt],["C",dt,Ct,dt,Ct,gt,Ct],["Z"]]}}n.dlBox={x:ot+(G-ot+$)/2,y:I+(q-I)/2,height:O,width:0},n.tooltipPos=T.inverted?[T.plotSizeY-n.dlBox.y-O/2,T.plotSizeX-n.dlBox.x]:[n.dlBox.x,n.dlBox.y+O/2],n.y=n.plotY=1,n.x=n.plotX=1,n.color||(n.color=u.color)},h.prototype.translateNode=function(n,k){var u=this.translationFactor,_=this.chart,T=this.options,D=n.getSum(),O=Math.max(Math.round(D*u),this.options.minLinkWidth),B=Math.round(this.nodeWidth),H=Math.round(T.borderWidth)%2/2,I=k.sankeyColumn.offset(n,u),q=Math.floor(y(I.absoluteTop,k.sankeyColumn.top(u)+I.relativeTop))+H,ot=Math.floor(this.colDistance*n.column+T.borderWidth/2)+p(n.options.offsetHorizontal||0,B)+H,$=_.inverted?_.plotSizeX-ot:ot;if(n.sum=D,D){n.shapeType="rect",n.nodeX=$,n.nodeY=q;var G=$,st=q,it=n.options.width||T.width||B,at=n.options.height||T.height||O;_.inverted&&(G=$-B,st=_.plotSizeY-q-O,it=n.options.height||T.height||B,at=n.options.width||T.width||O),n.dlOptions=h.getDLOptions({level:this.mapOptionsToLevel[n.level],optionsPoint:n.options}),n.plotX=1,n.plotY=1,n.tooltipPos=_.inverted?[_.plotSizeY-st-at/2,_.plotSizeX-G-it/2]:[G+it/2,st+at/2],n.shapeArgs={x:G,y:st,width:it,height:at,display:n.hasShape()?"":"none"}}else n.dlOptions={enabled:!1}},h.defaultOptions=f(b.defaultOptions,R),h}(b);return N.compose(Z,m),d(m.prototype,{animate:g.prototype.animate,createNode:N.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:Z,searchPoint:M.noop}),A.registerSeriesType("sankey",m),m}),j(U,"masters/modules/sankey.src.js",[],function(){})},ct.exports?(W.default=W,ct.exports=W):(ut=[z(93470)],void 0!==(et=function(U){return W(U),W.Highcharts=U,W}.apply(wt,ut))&&(ct.exports=et))}}]); \ No newline at end of file diff --git a/www/z4d/644.e5bbcc7e1d18b79d.js b/www/z4d/644.e5bbcc7e1d18b79d.js new file mode 100644 index 000000000..7d812377b --- /dev/null +++ b/www/z4d/644.e5bbcc7e1d18b79d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[644],{60644:(y,E,s)=>{s.r(E),s.d(E,{AboutModule:()=>w});var r=s(60177),o=s(19664),l=s(93331),u=s(38117),m=s(20546),n=s(54438);let c=(()=>{class e{version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion;static \u0275fac=function(F){return new(F||e)};static \u0275cmp=n.VBU({type:e,selectors:[["app-about-en"]],decls:194,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng/WebUI_About",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io/team/zigateforum","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(F,i){1&F&&(n.j41(0,"div",0),n.EFF(1,"\n "),n.j41(2,"h1"),n.EFF(3,"\n "),n.j41(4,"span",1),n.EFF(5,"APP_NAME"),n.k0s(),n.EFF(6,"\n "),n.k0s(),n.EFF(7,"\n "),n.j41(8,"p"),n.nrm(9,"i",2),n.EFF(10," "),n.j41(11,"span",1),n.EFF(12,"Version"),n.k0s(),n.EFF(13),n.k0s(),n.EFF(14,"\n"),n.k0s(),n.EFF(15,"\n"),n.j41(16,"div",3),n.EFF(17,"\n "),n.j41(18,"div",4),n.EFF(19,"\n The aim of the plugin is to bridge a ZigBee coordinator to the Domoticz Home Automation in order to communicate with\n objects using the ZigBee protocol.\n "),n.j41(20,"p"),n.EFF(21,"\n For information around the Zigbee for DomoticZ Plugin, please refer to\n "),n.j41(22,"a",5),n.EFF(23," Plugin Wiki (in english) "),n.k0s(),n.EFF(24,"\n "),n.k0s(),n.EFF(25,"\n "),n.j41(26,"p"),n.EFF(27,"\n The small icone\n "),n.nrm(28,"a",6),n.EFF(29,"\n links to the informations on the Wiki.\n "),n.k0s(),n.EFF(30,"\n "),n.k0s(),n.EFF(31,"\n"),n.k0s(),n.EFF(32,"\n"),n.j41(33,"div",7),n.EFF(34,"\n "),n.j41(35,"div",4),n.EFF(36,"\n "),n.j41(37,"h3",8),n.EFF(38,"How to deal with issues and Questions"),n.k0s(),n.EFF(39,"\n "),n.k0s(),n.EFF(40,"\n"),n.k0s(),n.EFF(41,"\n"),n.j41(42,"div",7),n.EFF(43,"\n "),n.nrm(44,"div",9),n.EFF(45,"\n "),n.j41(46,"div",10),n.EFF(47,"\n "),n.j41(48,"ul"),n.EFF(49,"\n "),n.j41(50,"li"),n.EFF(51,"\n In case of question and problem please use the Domoticz Forum to ask your questions and/or problem.\n "),n.j41(52,"p"),n.EFF(53,"\n You can either use the\n "),n.j41(54,"a",11),n.EFF(55,"English Domoticz forum"),n.k0s(),n.EFF(56,"\n "),n.k0s(),n.EFF(57,"\n "),n.k0s(),n.EFF(58,"\n "),n.k0s(),n.EFF(59,"\n "),n.k0s(),n.EFF(60,"\n "),n.nrm(61,"div",9),n.EFF(62,"\n"),n.k0s(),n.EFF(63,"\n"),n.j41(64,"div",7),n.EFF(65,"\n "),n.j41(66,"div",4),n.EFF(67,"\n "),n.j41(68,"h3",8),n.EFF(69,"Come and discuss with us !"),n.k0s(),n.EFF(70,"\n "),n.k0s(),n.EFF(71,"\n"),n.k0s(),n.EFF(72,"\n"),n.j41(73,"div",7),n.EFF(74,"\n "),n.nrm(75,"div",9),n.EFF(76,"\n "),n.j41(77,"div",10),n.EFF(78,"\n "),n.j41(79,"p"),n.EFF(80,"We are a small team of enthusiasts who share the pleasure of using DomoticZ with ZigBee coordinators."),n.k0s(),n.EFF(81,"\n "),n.j41(82,"p"),n.EFF(83,"\n Meet us on "),n.j41(84,"a",12),n.EFF(85,"keybase.io"),n.k0s(),n.EFF(86," for real time discussions.\n "),n.k0s(),n.EFF(87,"\n "),n.k0s(),n.EFF(88,"\n "),n.nrm(89,"div",9),n.EFF(90,"\n"),n.k0s(),n.EFF(91,"\n"),n.nrm(92,"hr"),n.EFF(93,"\n"),n.j41(94,"div",7),n.EFF(95,"\n "),n.j41(96,"div",4),n.EFF(97,"\n "),n.j41(98,"h3",8),n.EFF(99,"Thanks"),n.k0s(),n.EFF(100,"\n "),n.k0s(),n.EFF(101,"\n"),n.k0s(),n.EFF(102,"\n"),n.j41(103,"div",7),n.EFF(104,"\n "),n.nrm(105,"div",9),n.EFF(106,"\n "),n.j41(107,"div",10),n.EFF(108,"\n We would like to thank the manufacturers for providing us with equipment for developments :"),n.nrm(109,"br")(110,"br"),n.EFF(111,"\n "),n.j41(112,"ul"),n.EFF(113,"\n "),n.j41(114,"li"),n.EFF(115,"\n @Fred from Lixee for "),n.j41(116,"a",13),n.EFF(117,"ZiGate"),n.k0s(),n.EFF(118," coordinators and Lixee objects.\n "),n.k0s(),n.EFF(119,"\n "),n.j41(120,"li"),n.EFF(121,"\n @Omer from electrolama for\n "),n.j41(122,"a",14),n.EFF(123,"zzh Multiprotocol RF"),n.k0s(),n.EFF(124," coordinators.\n "),n.k0s(),n.EFF(125,"\n "),n.j41(126,"li"),n.EFF(127,"\n @NilsBohr from Elelabs for "),n.j41(128,"a",15),n.EFF(129,"Elelabs Zigbee USB Adapter"),n.k0s(),n.EFF(130,"\n Silicon Labs EZSP objects.\n "),n.k0s(),n.EFF(131,"\n "),n.j41(132,"li"),n.EFF(133,"@Fabrice whom kindly provided a set of Legrand objects."),n.k0s(),n.EFF(134,"\n "),n.j41(135,"li"),n.EFF(136,"\n @erwan whom kindly provided a set of "),n.j41(137,"a",16),n.EFF(138,"Casa.IA"),n.k0s(),n.EFF(139,"\n objects\n "),n.k0s(),n.EFF(140,"\n "),n.k0s(),n.EFF(141,"\n\n "),n.nrm(142,"br"),n.EFF(143,"\n We would like to thank those who contributed to the project. In particular :"),n.nrm(144,"br")(145,"br"),n.EFF(146,"\n "),n.j41(147,"ul"),n.EFF(148,"\n "),n.j41(149,"li"),n.EFF(150,"\n Plugin developpers : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74,\n @sbhc68, @thiklop, @deufo et @badz\n "),n.k0s(),n.EFF(151,"\n "),n.j41(152,"li"),n.EFF(153,"Web Admin interface developer : @ben33880"),n.k0s(),n.EFF(154,"\n "),n.j41(155,"li"),n.EFF(156,"\n Web Admin interface translation : @gemies et @marktn (for Dutch translation), @martial83, @hydci\n et @jp-keros (for French translation)\n "),n.k0s(),n.EFF(157,"\n "),n.j41(158,"li"),n.EFF(159,"Wiki writters : @Pipiche38 et @jp-keros"),n.k0s(),n.EFF(160,"\n "),n.j41(161,"li"),n.EFF(162,"\n Wiki translation : @karstenbakker (for Dutch translation), @jp-keros et @newturtle (for French\n translation), @erwan (for Spanish translation)\n "),n.k0s(),n.EFF(163,"\n "),n.k0s(),n.EFF(164,"\n But also all the testers and users who have given us information on the forums or via Keybase.\n "),n.nrm(165,"br"),n.EFF(166,"\n "),n.nrm(167,"br"),n.EFF(168,"\n "),n.nrm(169,"br"),n.EFF(170,"\n "),n.j41(171,"p"),n.EFF(172,"\n Last I would like to express my gratitude to the great users whom have supported (by donation) this project. It\n helping to purchase devices in order to test, integrate and certify them.\n "),n.k0s(),n.EFF(173,"\n "),n.k0s(),n.EFF(174,"\n "),n.nrm(175,"div",9),n.EFF(176,"\n"),n.k0s(),n.EFF(177,"\n"),n.j41(178,"div",7),n.EFF(179,"\n "),n.j41(180,"div",4),n.EFF(181,"\n "),n.j41(182,"a",17),n.EFF(183,"Paypal Cagnotte pipiche"),n.k0s(),n.EFF(184,"\n "),n.k0s(),n.EFF(185,"\n"),n.k0s(),n.EFF(186,"\n\n"),n.nrm(187,"hr"),n.EFF(188,"\n"),n.j41(189,"div",0),n.EFF(190,"@pipiche38 - 2018 - 2024"),n.k0s(),n.EFF(191,"\n"),n.nrm(192,"br"),n.EFF(193,"\n")),2&F&&(n.R7$(13),n.SpI(" ",i.version,""))},dependencies:[o.Mm]})}return e})(),k=(()=>{class e{version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion;static \u0275fac=function(F){return new(F||e)};static \u0275cmp=n.VBU({type:e,selectors:[["app-about-es"]],decls:194,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-engWebUI_About",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(F,i){1&F&&(n.j41(0,"div",0),n.EFF(1,"\n "),n.j41(2,"h1"),n.EFF(3,"\n "),n.j41(4,"span",1),n.EFF(5,"APP_NAME"),n.k0s(),n.EFF(6,"\n "),n.k0s(),n.EFF(7,"\n "),n.j41(8,"p"),n.nrm(9,"i",2),n.EFF(10," "),n.j41(11,"span",1),n.EFF(12,"Version"),n.k0s(),n.EFF(13),n.k0s(),n.EFF(14,"\n"),n.k0s(),n.EFF(15,"\n"),n.j41(16,"div",3),n.EFF(17,"\n "),n.j41(18,"div",4),n.EFF(19,"\n The aim of the plugin is to bridge a ZigBee coordinator to the Domoticz Home Automation in order to communicate with\n objects using the ZigBee protocol.\n "),n.j41(20,"p"),n.EFF(21,"\n For information around the Zigate Plugin, please refer to\n "),n.j41(22,"a",5),n.EFF(23," Plugin Wiki (in english) "),n.k0s(),n.EFF(24,"\n "),n.k0s(),n.EFF(25,"\n "),n.j41(26,"p"),n.EFF(27,"\n The small icone\n "),n.nrm(28,"a",6),n.EFF(29,"\n links to the informations on the Wiki.\n "),n.k0s(),n.EFF(30,"\n "),n.k0s(),n.EFF(31,"\n"),n.k0s(),n.EFF(32,"\n"),n.j41(33,"div",7),n.EFF(34,"\n "),n.j41(35,"div",4),n.EFF(36,"\n "),n.j41(37,"h3",8),n.EFF(38,"How to deal with issues and Questions"),n.k0s(),n.EFF(39,"\n "),n.k0s(),n.EFF(40,"\n"),n.k0s(),n.EFF(41,"\n"),n.j41(42,"div",7),n.EFF(43,"\n "),n.nrm(44,"div",9),n.EFF(45,"\n "),n.j41(46,"div",10),n.EFF(47,"\n "),n.j41(48,"ul"),n.EFF(49,"\n "),n.j41(50,"li"),n.EFF(51,"\n In case of question and problem please use the Domoticz Forum to ask your questions and/or problem.\n "),n.j41(52,"p"),n.EFF(53,"\n You can either use the\n "),n.j41(54,"a",11),n.EFF(55,"English Domoticz forum"),n.k0s(),n.EFF(56," or if\n you want to interact in French you might want to use\n "),n.k0s(),n.EFF(57,"\n "),n.k0s(),n.EFF(58,"\n "),n.k0s(),n.EFF(59,"\n "),n.k0s(),n.EFF(60,"\n "),n.nrm(61,"div",9),n.EFF(62,"\n"),n.k0s(),n.EFF(63,"\n"),n.j41(64,"div",7),n.EFF(65,"\n "),n.j41(66,"div",4),n.EFF(67,"\n "),n.j41(68,"h3",8),n.EFF(69,"Come and discuss with us !"),n.k0s(),n.EFF(70,"\n "),n.k0s(),n.EFF(71,"\n"),n.k0s(),n.EFF(72,"\n"),n.j41(73,"div",7),n.EFF(74,"\n "),n.nrm(75,"div",9),n.EFF(76,"\n "),n.j41(77,"div",10),n.EFF(78,"\n "),n.j41(79,"p"),n.EFF(80,"\n We are a small team We are a small team of enthusiasts who share the pleasure of using DomoticZ with ZigBee\n coordinators.\n "),n.k0s(),n.EFF(81,"\n "),n.j41(82,"p"),n.EFF(83,"\n Meet us on "),n.j41(84,"a",12),n.EFF(85,"keybase.io"),n.k0s(),n.EFF(86," (team Zigate) for real time discussions.\n "),n.k0s(),n.EFF(87,"\n "),n.k0s(),n.EFF(88,"\n "),n.nrm(89,"div",9),n.EFF(90,"\n"),n.k0s(),n.EFF(91,"\n"),n.nrm(92,"hr"),n.EFF(93,"\n"),n.j41(94,"div",7),n.EFF(95,"\n "),n.j41(96,"div",4),n.EFF(97,"\n "),n.j41(98,"h3",8),n.EFF(99,"Thanks"),n.k0s(),n.EFF(100,"\n "),n.k0s(),n.EFF(101,"\n"),n.k0s(),n.EFF(102,"\n"),n.j41(103,"div",7),n.EFF(104,"\n "),n.nrm(105,"div",9),n.EFF(106,"\n "),n.j41(107,"div",10),n.EFF(108,"\n We would like to thank the manufacturers for providing us with equipment for developments :"),n.nrm(109,"br")(110,"br"),n.EFF(111,"\n "),n.j41(112,"ul"),n.EFF(113,"\n "),n.j41(114,"li"),n.EFF(115,"@Fred from Lixee for "),n.j41(116,"a",13),n.EFF(117,"ZiGate"),n.k0s(),n.EFF(118," and Lixee objects."),n.k0s(),n.EFF(119,"\n "),n.j41(120,"li"),n.EFF(121,"\n @Omer from electrolama for\n "),n.j41(122,"a",14),n.EFF(123,"zzh Multiprotocol RF Stick"),n.k0s(),n.EFF(124," objects.\n "),n.k0s(),n.EFF(125,"\n "),n.j41(126,"li"),n.EFF(127,"\n @NilsBohr from Elelabs for "),n.j41(128,"a",15),n.EFF(129,"Elelabs Zigbee USB Adapter"),n.k0s(),n.EFF(130,"\n Silicon Labs EZSP objects.\n "),n.k0s(),n.EFF(131,"\n "),n.j41(132,"li"),n.EFF(133,"@Fabrice whom kindly provided a set of Legrand objects."),n.k0s(),n.EFF(134,"\n "),n.j41(135,"li"),n.EFF(136,"\n @erwan whom kindly provided a set of "),n.j41(137,"a",16),n.EFF(138,"Casa.IA"),n.k0s(),n.EFF(139,"\n objects\n "),n.k0s(),n.EFF(140,"\n "),n.k0s(),n.EFF(141,"\n\n "),n.nrm(142,"br"),n.EFF(143,"\n We would like to thank those who contributed to the project. In particular :"),n.nrm(144,"br")(145,"br"),n.EFF(146,"\n "),n.j41(147,"ul"),n.EFF(148,"\n "),n.j41(149,"li"),n.EFF(150,"\n Plugin developpers : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74,\n @sbhc68, @thiklop, @deufo et @badz\n "),n.k0s(),n.EFF(151,"\n "),n.j41(152,"li"),n.EFF(153,"Web Admin interface developer : @ben33880"),n.k0s(),n.EFF(154,"\n "),n.j41(155,"li"),n.EFF(156,"\n Web Admin interface translation : @gemies et @marktn (for Dutch translation), @martial83, @hydci\n et @jp-keros (for French translation)\n "),n.k0s(),n.EFF(157,"\n "),n.j41(158,"li"),n.EFF(159,"Wiki writters : @Pipiche38 et @jp-keros"),n.k0s(),n.EFF(160,"\n "),n.j41(161,"li"),n.EFF(162,"\n Wik translation : @karstenbakker (for Dutch translation), @jp-keros et @newturtle (for French\n translation), @erwan (for Spanish translation)\n "),n.k0s(),n.EFF(163,"\n "),n.k0s(),n.EFF(164,"\n But also all the testers and users who have given us information on the forums or via Keybase.\n "),n.nrm(165,"br"),n.EFF(166,"\n "),n.nrm(167,"br"),n.EFF(168,"\n "),n.nrm(169,"br"),n.EFF(170,"\n "),n.j41(171,"p"),n.EFF(172,"\n Last I would like to express my gratitude to the great users whom have supported (by donation) this project. It\n helping to purchase devices in order to test, integrate and certify them.\n "),n.k0s(),n.EFF(173,"\n "),n.k0s(),n.EFF(174,"\n "),n.nrm(175,"div",9),n.EFF(176,"\n"),n.k0s(),n.EFF(177,"\n"),n.j41(178,"div",7),n.EFF(179,"\n "),n.j41(180,"div",4),n.EFF(181,"\n "),n.j41(182,"a",17),n.EFF(183,"Paypal Cagnotte pipiche"),n.k0s(),n.EFF(184,"\n "),n.k0s(),n.EFF(185,"\n"),n.k0s(),n.EFF(186,"\n\n"),n.nrm(187,"hr"),n.EFF(188,"\n"),n.j41(189,"div",0),n.EFF(190,"@pipiche38 - 2018 - 2024"),n.k0s(),n.EFF(191,"\n"),n.nrm(192,"br"),n.EFF(193,"\n")),2&F&&(n.R7$(13),n.SpI(" ",i.version,""))},dependencies:[o.Mm]})}return e})(),p=(()=>{class e{version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion;static \u0275fac=function(F){return new(F||e)};static \u0275cmp=n.VBU({type:e,selectors:[["app-about-nl"]],decls:194,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng/WebUI_About",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(F,i){1&F&&(n.j41(0,"div",0),n.EFF(1,"\n "),n.j41(2,"h1"),n.EFF(3,"\n "),n.j41(4,"span",1),n.EFF(5,"APP_NAME"),n.k0s(),n.EFF(6,"\n "),n.k0s(),n.EFF(7,"\n "),n.j41(8,"p"),n.nrm(9,"i",2),n.EFF(10," "),n.j41(11,"span",1),n.EFF(12,"Version"),n.k0s(),n.EFF(13),n.k0s(),n.EFF(14,"\n"),n.k0s(),n.EFF(15,"\n"),n.j41(16,"div",3),n.EFF(17,"\n "),n.j41(18,"div",4),n.EFF(19,"\n The aim of the plugin is to bridge a ZigBee coordinator to the Domoticz Home Automation in order to communicate with\n objects using the ZigBee protocol.\n "),n.j41(20,"p"),n.EFF(21,"\n For information around the Zigate Plugin, please refer to\n "),n.j41(22,"a",5),n.EFF(23," Plugin Wiki (in english) "),n.k0s(),n.EFF(24,"\n "),n.k0s(),n.EFF(25,"\n "),n.j41(26,"p"),n.EFF(27,"\n The small icone\n "),n.nrm(28,"a",6),n.EFF(29,"\n links to the informations on the Wiki.\n "),n.k0s(),n.EFF(30,"\n "),n.k0s(),n.EFF(31,"\n"),n.k0s(),n.EFF(32,"\n"),n.j41(33,"div",7),n.EFF(34,"\n "),n.j41(35,"div",4),n.EFF(36,"\n "),n.j41(37,"h3",8),n.EFF(38,"How to deal with issues and Questions"),n.k0s(),n.EFF(39,"\n "),n.k0s(),n.EFF(40,"\n"),n.k0s(),n.EFF(41,"\n"),n.j41(42,"div",7),n.EFF(43,"\n "),n.nrm(44,"div",9),n.EFF(45,"\n "),n.j41(46,"div",10),n.EFF(47,"\n "),n.j41(48,"ul"),n.EFF(49,"\n "),n.j41(50,"li"),n.EFF(51,"\n In case of question and problem please use the Domoticz Forum to ask your questions and/or problem.\n "),n.j41(52,"p"),n.EFF(53,"\n You can either use the\n "),n.j41(54,"a",11),n.EFF(55,"English Domoticz forum"),n.k0s(),n.EFF(56," or if\n you want to interact in French you might want to use\n "),n.k0s(),n.EFF(57,"\n "),n.k0s(),n.EFF(58,"\n "),n.k0s(),n.EFF(59,"\n "),n.k0s(),n.EFF(60,"\n "),n.nrm(61,"div",9),n.EFF(62,"\n"),n.k0s(),n.EFF(63,"\n"),n.j41(64,"div",7),n.EFF(65,"\n "),n.j41(66,"div",4),n.EFF(67,"\n "),n.j41(68,"h3",8),n.EFF(69,"Come and discuss with us !"),n.k0s(),n.EFF(70,"\n "),n.k0s(),n.EFF(71,"\n"),n.k0s(),n.EFF(72,"\n"),n.j41(73,"div",7),n.EFF(74,"\n "),n.nrm(75,"div",9),n.EFF(76,"\n "),n.j41(77,"div",10),n.EFF(78,"\n "),n.j41(79,"p"),n.EFF(80,"\n We are a small team We are a small team of enthusiasts who share the pleasure of using DomoticZ with ZigBee\n coordinators.\n "),n.k0s(),n.EFF(81,"\n "),n.j41(82,"p"),n.EFF(83,"\n Meet us on "),n.j41(84,"a",12),n.EFF(85,"keybase.io"),n.k0s(),n.EFF(86," (team Zigate) for real time discussions.\n "),n.k0s(),n.EFF(87,"\n "),n.k0s(),n.EFF(88,"\n "),n.nrm(89,"div",9),n.EFF(90,"\n"),n.k0s(),n.EFF(91,"\n"),n.nrm(92,"hr"),n.EFF(93,"\n"),n.j41(94,"div",7),n.EFF(95,"\n "),n.j41(96,"div",4),n.EFF(97,"\n "),n.j41(98,"h3",8),n.EFF(99,"Thanks"),n.k0s(),n.EFF(100,"\n "),n.k0s(),n.EFF(101,"\n"),n.k0s(),n.EFF(102,"\n"),n.j41(103,"div",7),n.EFF(104,"\n "),n.nrm(105,"div",9),n.EFF(106,"\n "),n.j41(107,"div",10),n.EFF(108,"\n We would like to thank the manufacturers for providing us with equipment for developments :"),n.nrm(109,"br")(110,"br"),n.EFF(111,"\n "),n.j41(112,"ul"),n.EFF(113,"\n "),n.j41(114,"li"),n.EFF(115,"@Fred from Lixee for "),n.j41(116,"a",13),n.EFF(117,"ZiGate"),n.k0s(),n.EFF(118," and Lixee objects."),n.k0s(),n.EFF(119,"\n "),n.j41(120,"li"),n.EFF(121,"\n @Omer from electrolama for\n "),n.j41(122,"a",14),n.EFF(123,"zzh Multiprotocol RF Stick"),n.k0s(),n.EFF(124," objects.\n "),n.k0s(),n.EFF(125,"\n "),n.j41(126,"li"),n.EFF(127,"\n @NilsBohr from Elelabs for "),n.j41(128,"a",15),n.EFF(129,"Elelabs Zigbee USB Adapter"),n.k0s(),n.EFF(130,"\n Silicon Labs EZSP objects.\n "),n.k0s(),n.EFF(131,"\n "),n.j41(132,"li"),n.EFF(133,"@Fabrice whom kindly provided a set of Legrand objects."),n.k0s(),n.EFF(134,"\n "),n.j41(135,"li"),n.EFF(136,"\n @erwan whom kindly provided a set of "),n.j41(137,"a",16),n.EFF(138,"Casa.IA"),n.k0s(),n.EFF(139,"\n objects\n "),n.k0s(),n.EFF(140,"\n "),n.k0s(),n.EFF(141,"\n\n "),n.nrm(142,"br"),n.EFF(143,"\n We would like to thank those who contributed to the project. In particular :"),n.nrm(144,"br")(145,"br"),n.EFF(146,"\n "),n.j41(147,"ul"),n.EFF(148,"\n "),n.j41(149,"li"),n.EFF(150,"\n Plugin developpers : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74,\n @sbhc68, @thiklop, @deufo et @badz\n "),n.k0s(),n.EFF(151,"\n "),n.j41(152,"li"),n.EFF(153,"Web Admin interface developer : @ben33880"),n.k0s(),n.EFF(154,"\n "),n.j41(155,"li"),n.EFF(156,"\n Web Admin interface translation : @gemies et @marktn (for Dutch translation), @martial83, @hydci\n et @jp-keros (for French translation)\n "),n.k0s(),n.EFF(157,"\n "),n.j41(158,"li"),n.EFF(159,"Wiki writters : @Pipiche38 et @jp-keros"),n.k0s(),n.EFF(160,"\n "),n.j41(161,"li"),n.EFF(162,"\n Wik translation : @karstenbakker (for Dutch translation), @jp-keros et @newturtle (for French\n translation), @erwan (for Spanish translation)\n "),n.k0s(),n.EFF(163,"\n "),n.k0s(),n.EFF(164,"\n But also all the testers and users who have given us information on the forums or via Keybase.\n "),n.nrm(165,"br"),n.EFF(166,"\n "),n.nrm(167,"br"),n.EFF(168,"\n "),n.nrm(169,"br"),n.EFF(170,"\n "),n.j41(171,"p"),n.EFF(172,"\n Last I would like to express my gratitude to the great users whom have supported (by donation) this project. It\n helping to purchase devices in order to test, integrate and certify them.\n "),n.k0s(),n.EFF(173,"\n "),n.k0s(),n.EFF(174,"\n "),n.nrm(175,"div",9),n.EFF(176,"\n"),n.k0s(),n.EFF(177,"\n"),n.j41(178,"div",7),n.EFF(179,"\n "),n.j41(180,"div",4),n.EFF(181,"\n "),n.j41(182,"a",17),n.EFF(183,"Paypal Cagnotte pipiche"),n.k0s(),n.EFF(184,"\n "),n.k0s(),n.EFF(185,"\n"),n.k0s(),n.EFF(186,"\n\n"),n.nrm(187,"hr"),n.EFF(188,"\n"),n.j41(189,"div",0),n.EFF(190,"@pipiche38 - 2018 - 2024"),n.k0s(),n.EFF(191,"\n"),n.nrm(192,"br"),n.EFF(193,"\n")),2&F&&(n.R7$(13),n.SpI(" ",i.version,""))},dependencies:[o.Mm]})}return e})(),d=(()=>{class e{version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion;static \u0275fac=function(F){return new(F||e)};static \u0275cmp=n.VBU({type:e,selectors:[["app-about-fr"]],decls:218,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/fr-fr","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/fr-fr/WebUI_A-propos",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://easydomoticz.com/forum/viewforum.php?f=28","target","_blank"],["href","https://easydomoticz.com/forum/viewtopic.php?f=28&t=10886","target","_blank"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io/team/zigate","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(F,i){1&F&&(n.j41(0,"div",0),n.EFF(1,"\n "),n.j41(2,"h1"),n.EFF(3,"\n "),n.j41(4,"span",1),n.EFF(5,"APP_NAME"),n.k0s(),n.EFF(6,"\n "),n.k0s(),n.EFF(7,"\n "),n.j41(8,"p"),n.nrm(9,"i",2),n.EFF(10," "),n.j41(11,"span",1),n.EFF(12,"Version"),n.k0s(),n.EFF(13),n.k0s(),n.EFF(14,"\n"),n.k0s(),n.EFF(15,"\n"),n.j41(16,"div",3),n.EFF(17,"\n "),n.j41(18,"div",4),n.EFF(19,"\n Ce plugin permet d'utiliser un coordinateur ZigBee avec le logiciel DomoticZ afin de pouvoir communiquer avec des\n objets utilisant le protocole ZigBee.\n "),n.j41(20,"p"),n.EFF(21,"\n Retrouver toutes les informations pour utiliser ce plugin sur\n "),n.j41(22,"a",5),n.EFF(23," le Wiki du plugin "),n.k0s(),n.EFF(24,"\n (en fran\xe7ais)."),n.nrm(25,"br"),n.EFF(26,"\n Refer to\n "),n.j41(27,"a",6),n.EFF(28," the plugin Wiki "),n.k0s(),n.EFF(29,"\n for more informations (in english).\n "),n.k0s(),n.EFF(30,"\n "),n.j41(31,"p"),n.EFF(32,"\n La petite ic\xf4ne\n "),n.nrm(33,"a",7),n.EFF(34,"\n renvoit vers les informations sur le Wiki fran\xe7ais.\n "),n.k0s(),n.EFF(35,"\n "),n.k0s(),n.EFF(36,"\n"),n.k0s(),n.EFF(37,"\n"),n.j41(38,"div",8),n.EFF(39,"\n "),n.j41(40,"div",4),n.EFF(41,"\n "),n.j41(42,"h3",9),n.EFF(43,"En cas de probl\xe8mes"),n.k0s(),n.EFF(44,"\n "),n.k0s(),n.EFF(45,"\n"),n.k0s(),n.EFF(46,"\n"),n.j41(47,"div",8),n.EFF(48,"\n "),n.nrm(49,"div",10),n.EFF(50,"\n "),n.j41(51,"div",11),n.EFF(52,"\n "),n.j41(53,"ul"),n.EFF(54,"\n "),n.j41(55,"li"),n.EFF(56,"\n V\xe9rifiez les logs de DomoticZ, ils contiennent de nombreuses informations utiles \xe0 la compr\xe9hension du(es)\n dysfonctionnements.\n "),n.k0s(),n.EFF(57,"\n "),n.nrm(58,"br"),n.EFF(59,"\n "),n.j41(60,"li"),n.EFF(61,"Venez en discuter sur les forums :"),n.k0s(),n.EFF(62,"\n "),n.j41(63,"ul"),n.EFF(64,"\n "),n.j41(65,"li"),n.EFF(66,"\n "),n.j41(67,"a",12),n.EFF(68,"Le forum fran\xe7ais"),n.k0s(),n.EFF(69,"\n en suivant le\n "),n.j41(70,"a",13),n.EFF(71,"Guide pour bien formuler une demande"),n.k0s(),n.EFF(72,"\n afin que nous ayons un maximum d'informations d\xe9s le d\xe9part.\n "),n.k0s(),n.EFF(73,"\n "),n.j41(74,"li"),n.EFF(75,"\n "),n.j41(76,"a",14),n.EFF(77,"Le forum anglais"),n.k0s(),n.EFF(78,"\n "),n.k0s(),n.EFF(79,"\n "),n.k0s(),n.EFF(80,"\n "),n.nrm(81,"br"),n.EFF(82,"\n "),n.k0s(),n.EFF(83,"\n "),n.k0s(),n.EFF(84,"\n "),n.nrm(85,"div",10),n.EFF(86,"\n"),n.k0s(),n.EFF(87,"\n"),n.j41(88,"div",8),n.EFF(89,"\n "),n.j41(90,"div",4),n.EFF(91,"\n "),n.j41(92,"h3",9),n.EFF(93,"Venez discuter avec nous !"),n.k0s(),n.EFF(94,"\n "),n.k0s(),n.EFF(95,"\n"),n.k0s(),n.EFF(96,"\n"),n.j41(97,"div",8),n.EFF(98,"\n "),n.nrm(99,"div",10),n.EFF(100,"\n "),n.j41(101,"div",11),n.EFF(102,"\n "),n.j41(103,"p"),n.EFF(104,"\n Nous sommes une petite \xe9quipe de passionn\xe9s qui partageons le plaisir d'utiliser DomoticZ avec les coordinateur\n ZigBee.\n "),n.k0s(),n.EFF(105,"\n "),n.j41(106,"p"),n.EFF(107,"\n Retrouvez-nous sur "),n.j41(108,"a",15),n.EFF(109,"keybase.io"),n.k0s(),n.EFF(110," pour des discussions en\n temps r\xe9el.\n "),n.k0s(),n.EFF(111,"\n "),n.k0s(),n.EFF(112,"\n "),n.nrm(113,"div",10),n.EFF(114,"\n"),n.k0s(),n.EFF(115,"\n"),n.nrm(116,"hr"),n.EFF(117,"\n"),n.j41(118,"div",8),n.EFF(119,"\n "),n.j41(120,"div",4),n.EFF(121,"\n "),n.j41(122,"h3",9),n.EFF(123,"Remerciements"),n.k0s(),n.EFF(124,"\n "),n.k0s(),n.EFF(125,"\n"),n.k0s(),n.EFF(126,"\n"),n.j41(127,"div",8),n.EFF(128,"\n "),n.nrm(129,"div",10),n.EFF(130,"\n "),n.j41(131,"div",11),n.EFF(132,"\n Nous souhaitons remercier les fabricants pour nous avoir mis \xe0 disposition du mat\xe9riel pour les d\xe9veloppements :"),n.nrm(133,"br")(134,"br"),n.EFF(135,"\n "),n.j41(136,"ul"),n.EFF(137,"\n "),n.j41(138,"li"),n.EFF(139,"\n @Fred de Lixee.fr pour la fourniture de coordinateurs\n "),n.j41(140,"a",16),n.EFF(141,"ZiGates"),n.k0s(),n.EFF(142," et autres objects.\n "),n.k0s(),n.EFF(143,"\n "),n.j41(144,"li"),n.EFF(145,"\n @Omer de electrolama pour la fourniture de coordinateurs\n "),n.j41(146,"a",17),n.EFF(147,"zzh Multiprotocol RF"),n.k0s(),n.EFF(148,".\n "),n.k0s(),n.EFF(149,"\n "),n.j41(150,"li"),n.EFF(151,"\n @NilsBohr de Elelabs pour la fourniture de coordinateurs\n "),n.j41(152,"a",18),n.EFF(153,"Elelabs Zigbee USB Adapter"),n.k0s(),n.EFF(154," Silicon Labs EZSP objects.\n "),n.k0s(),n.EFF(155,"\n "),n.j41(156,"li"),n.EFF(157,"@Fabrice pour avoir fournit gracieusement des objets Legrand-Netatmo."),n.k0s(),n.EFF(158,"\n "),n.j41(159,"li"),n.EFF(160,"\n @erwan pour avoir fournit gracieusement des objets\n "),n.j41(161,"a",19),n.EFF(162,"Casa.IA"),n.k0s(),n.EFF(163,".\n "),n.k0s(),n.EFF(164,"\n "),n.k0s(),n.EFF(165,"\n\n "),n.nrm(166,"br"),n.EFF(167,"\n Nous souhaitons remercier les personnes ayant contribu\xe9 au projet. En particulier :"),n.nrm(168,"br")(169,"br"),n.EFF(170,"\n "),n.j41(171,"ul"),n.EFF(172,"\n "),n.j41(173,"li"),n.EFF(174,"\n Les d\xe9veloppeurs du plugin : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker,\n @ricky74, @sbhc68, @thiklop, @deufo et @badz\n "),n.k0s(),n.EFF(175,"\n "),n.j41(176,"li"),n.EFF(177,"le d\xe9veloppeur de l'interface Web : @ben33880"),n.k0s(),n.EFF(178,"\n "),n.j41(179,"li"),n.EFF(180,"\n Les traducteurs de l'interface web : @gemies et @marktn (pour la version allemande), @martial83,\n @hydci et @jp-keros (pour la version fran\xe7aise)\n "),n.k0s(),n.EFF(181,"\n "),n.j41(182,"li"),n.EFF(183,"Les r\xe9dacteurs du wiki : @Pipiche38 et @jp-keros"),n.k0s(),n.EFF(184,"\n "),n.j41(185,"li"),n.EFF(186,"\n Les traducteurs du wiki : @karstenbakker (pour la version allemande), @jp-keros et @newturtle (pour\n la version fran\xe7aise), @erwan (for Spanish translation)\n "),n.k0s(),n.EFF(187,"\n "),n.k0s(),n.EFF(188,"\n Mais aussi tous les testeurs et utilisateurs qui nous ont remont\xe9 des infos sur les forums ou via Keybase.\n "),n.nrm(189,"br"),n.EFF(190,"\n "),n.nrm(191,"br"),n.EFF(192,"\n "),n.nrm(193,"br"),n.EFF(194,"\n "),n.j41(195,"p"),n.EFF(196,"\n Pour terminer, nous souhaiterions remercier tous les donateurs qui ont support\xe9 le projet. Cela permet l'achat de\n nouveaux objets pour les tester, les int\xe9grer et les certifier.\n "),n.k0s(),n.EFF(197,"\n "),n.k0s(),n.EFF(198,"\n "),n.nrm(199,"div",10),n.EFF(200,"\n"),n.k0s(),n.EFF(201,"\n"),n.j41(202,"div",8),n.EFF(203,"\n "),n.j41(204,"div",4),n.EFF(205,"\n "),n.j41(206,"a",20),n.EFF(207,"Cagnotte Paypal pipiche"),n.k0s(),n.EFF(208,"\n "),n.k0s(),n.EFF(209,"\n"),n.k0s(),n.EFF(210,"\n\n"),n.nrm(211,"hr"),n.EFF(212,"\n"),n.j41(213,"div",0),n.EFF(214,"@pipiche38 - 2018 - 2024"),n.k0s(),n.EFF(215,"\n\n"),n.nrm(216,"br"),n.EFF(217,"\n")),2&F&&(n.R7$(13),n.SpI(" ",i.version,""))},dependencies:[o.Mm]})}return e})();function h(e,a){1&e&&(n.qex(0),n.EFF(1,"\n "),n.nrm(2,"app-about-fr"),n.EFF(3,"\n "),n.bVm())}function f(e,a){1&e&&(n.qex(0),n.EFF(1,"\n "),n.nrm(2,"app-about-nl"),n.EFF(3,"\n "),n.bVm())}function j(e,a){1&e&&(n.qex(0),n.EFF(1,"\n "),n.nrm(2,"app-about-es"),n.EFF(3,"\n "),n.bVm())}function b(e,a){1&e&&(n.qex(0),n.EFF(1,"\n "),n.nrm(2,"app-about-en"),n.EFF(3,"\n "),n.bVm())}const g=[{path:"",component:(()=>{class e{i18nService;version=m.c.version;constructor(t){this.i18nService=t}static \u0275fac=function(F){return new(F||e)(n.rXU(u.W4))};static \u0275cmp=n.VBU({type:e,selectors:[["app-about"]],decls:11,vars:4,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"]],template:function(F,i){1&F&&(n.qex(0,0),n.EFF(1,"\n "),n.DNE(2,h,4,0,"ng-container",1),n.EFF(3,"\n "),n.DNE(4,f,4,0,"ng-container",1),n.EFF(5,"\n "),n.DNE(6,j,4,0,"ng-container",1),n.EFF(7,"\n "),n.DNE(8,b,4,0,"ng-container",2),n.EFF(9,"\n"),n.bVm(),n.EFF(10,"\n")),2&F&&(n.Y8G("ngSwitch",i.i18nService.language),n.R7$(2),n.Y8G("ngSwitchCase",i.i18nService.supportedLanguages[1].code),n.R7$(2),n.Y8G("ngSwitchCase",i.i18nService.supportedLanguages[2].code),n.R7$(2),n.Y8G("ngSwitchCase",i.i18nService.supportedLanguages[3].code))},dependencies:[r.ux,r.e1,r.fG,c,k,p,d]})}return e})(),data:{title:(0,u.o6)("About")}}];let v=(()=>{class e{static \u0275fac=function(F){return new(F||e)};static \u0275mod=n.$C({type:e});static \u0275inj=n.G2t({imports:[l.iI.forChild(g),l.iI]})}return e})(),w=(()=>{class e{static \u0275fac=function(F){return new(F||e)};static \u0275mod=n.$C({type:e});static \u0275inj=n.G2t({imports:[r.MD,o.h,v]})}return e})()}}]); \ No newline at end of file diff --git a/www/z4d/829.982ce78bd826f057.js b/www/z4d/829.982ce78bd826f057.js deleted file mode 100644 index 4f6dc890d..000000000 --- a/www/z4d/829.982ce78bd826f057.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[829],{25829:(q,_,i)=>{i.r(_),i.d(_,{AboutModule:()=>T});var a=i(36895),r=i(54463),U=i(96749),s=i(88648),Z=i(10710),n=i(94650);let l=(()=>{class e{constructor(){this.version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-about-en"]],decls:194,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng/WebUI_About",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io/team/zigateforum","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(t,o){1&t&&(n.TgZ(0,"div",0),n._uU(1,"\n "),n.TgZ(2,"h1"),n._uU(3,"\n "),n.TgZ(4,"span",1),n._uU(5,"APP_NAME"),n.qZA(),n._uU(6,"\n "),n.qZA(),n._uU(7,"\n "),n.TgZ(8,"p"),n._UZ(9,"i",2),n._uU(10," "),n.TgZ(11,"span",1),n._uU(12,"Version"),n.qZA(),n._uU(13),n.qZA(),n._uU(14,"\n"),n.qZA(),n._uU(15,"\n"),n.TgZ(16,"div",3),n._uU(17,"\n "),n.TgZ(18,"div",4),n._uU(19,"\n The aim of the plugin is to bridge a ZigBee coordinator to the Domoticz Home Automation in order to communicate with\n objects using the ZigBee protocol.\n "),n.TgZ(20,"p"),n._uU(21,"\n For information around the Zigbee for DomoticZ Plugin, please refer to\n "),n.TgZ(22,"a",5),n._uU(23," Plugin Wiki (in english) "),n.qZA(),n._uU(24,"\n "),n.qZA(),n._uU(25,"\n "),n.TgZ(26,"p"),n._uU(27,"\n The small icone\n "),n._UZ(28,"a",6),n._uU(29,"\n links to the informations on the Wiki.\n "),n.qZA(),n._uU(30,"\n "),n.qZA(),n._uU(31,"\n"),n.qZA(),n._uU(32,"\n"),n.TgZ(33,"div",7),n._uU(34,"\n "),n.TgZ(35,"div",4),n._uU(36,"\n "),n.TgZ(37,"h3",8),n._uU(38,"How to deal with issues and Questions"),n.qZA(),n._uU(39,"\n "),n.qZA(),n._uU(40,"\n"),n.qZA(),n._uU(41,"\n"),n.TgZ(42,"div",7),n._uU(43,"\n "),n._UZ(44,"div",9),n._uU(45,"\n "),n.TgZ(46,"div",10),n._uU(47,"\n "),n.TgZ(48,"ul"),n._uU(49,"\n "),n.TgZ(50,"li"),n._uU(51,"\n In case of question and problem please use the Domoticz Forum to ask your questions and/or problem.\n "),n.TgZ(52,"p"),n._uU(53,"\n You can either use the\n "),n.TgZ(54,"a",11),n._uU(55,"English Domoticz forum"),n.qZA(),n._uU(56,"\n "),n.qZA(),n._uU(57,"\n "),n.qZA(),n._uU(58,"\n "),n.qZA(),n._uU(59,"\n "),n.qZA(),n._uU(60,"\n "),n._UZ(61,"div",9),n._uU(62,"\n"),n.qZA(),n._uU(63,"\n"),n.TgZ(64,"div",7),n._uU(65,"\n "),n.TgZ(66,"div",4),n._uU(67,"\n "),n.TgZ(68,"h3",8),n._uU(69,"Come and discuss with us !"),n.qZA(),n._uU(70,"\n "),n.qZA(),n._uU(71,"\n"),n.qZA(),n._uU(72,"\n"),n.TgZ(73,"div",7),n._uU(74,"\n "),n._UZ(75,"div",9),n._uU(76,"\n "),n.TgZ(77,"div",10),n._uU(78,"\n "),n.TgZ(79,"p"),n._uU(80,"We are a small team of enthusiasts who share the pleasure of using DomoticZ with ZigBee coordinators."),n.qZA(),n._uU(81,"\n "),n.TgZ(82,"p"),n._uU(83,"\n Meet us on "),n.TgZ(84,"a",12),n._uU(85,"keybase.io"),n.qZA(),n._uU(86," for real time discussions.\n "),n.qZA(),n._uU(87,"\n "),n.qZA(),n._uU(88,"\n "),n._UZ(89,"div",9),n._uU(90,"\n"),n.qZA(),n._uU(91,"\n"),n._UZ(92,"hr"),n._uU(93,"\n"),n.TgZ(94,"div",7),n._uU(95,"\n "),n.TgZ(96,"div",4),n._uU(97,"\n "),n.TgZ(98,"h3",8),n._uU(99,"Thanks"),n.qZA(),n._uU(100,"\n "),n.qZA(),n._uU(101,"\n"),n.qZA(),n._uU(102,"\n"),n.TgZ(103,"div",7),n._uU(104,"\n "),n._UZ(105,"div",9),n._uU(106,"\n "),n.TgZ(107,"div",10),n._uU(108,"\n We would like to thank the manufacturers for providing us with equipment for developments :"),n._UZ(109,"br")(110,"br"),n._uU(111,"\n "),n.TgZ(112,"ul"),n._uU(113,"\n "),n.TgZ(114,"li"),n._uU(115,"\n @Fred from Lixee for "),n.TgZ(116,"a",13),n._uU(117,"ZiGate"),n.qZA(),n._uU(118," coordinators and Lixee objects.\n "),n.qZA(),n._uU(119,"\n "),n.TgZ(120,"li"),n._uU(121,"\n @Omer from electrolama for\n "),n.TgZ(122,"a",14),n._uU(123,"zzh Multiprotocol RF"),n.qZA(),n._uU(124," coordinators.\n "),n.qZA(),n._uU(125,"\n "),n.TgZ(126,"li"),n._uU(127,"\n @NilsBohr from Elelabs for "),n.TgZ(128,"a",15),n._uU(129,"Elelabs Zigbee USB Adapter"),n.qZA(),n._uU(130,"\n Silicon Labs EZSP objects.\n "),n.qZA(),n._uU(131,"\n "),n.TgZ(132,"li"),n._uU(133,"@Fabrice whom kindly provided a set of Legrand objects."),n.qZA(),n._uU(134,"\n "),n.TgZ(135,"li"),n._uU(136,"\n @erwan whom kindly provided a set of "),n.TgZ(137,"a",16),n._uU(138,"Casa.IA"),n.qZA(),n._uU(139,"\n objects\n "),n.qZA(),n._uU(140,"\n "),n.qZA(),n._uU(141,"\n\n "),n._UZ(142,"br"),n._uU(143,"\n We would like to thank those who contributed to the project. In particular :"),n._UZ(144,"br")(145,"br"),n._uU(146,"\n "),n.TgZ(147,"ul"),n._uU(148,"\n "),n.TgZ(149,"li"),n._uU(150,"\n Plugin developpers : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74, @sbhc68, @thiklop, @deufo\n et @badz\n "),n.qZA(),n._uU(151,"\n "),n.TgZ(152,"li"),n._uU(153,"Web Admin interface developer : @ben33880"),n.qZA(),n._uU(154,"\n "),n.TgZ(155,"li"),n._uU(156,"\n Web Admin interface translation : @gemies et @marktn (for Dutch translation), @martial83, @hydci et @jp-keros\n (for French translation)\n "),n.qZA(),n._uU(157,"\n "),n.TgZ(158,"li"),n._uU(159,"Wiki writters : @Pipiche38 et @jp-keros"),n.qZA(),n._uU(160,"\n "),n.TgZ(161,"li"),n._uU(162,"\n Wiki translation : @karstenbakker (for Dutch translation), @jp-keros et @newturtle (for French translation),\n @erwan (for Spanish translation)\n "),n.qZA(),n._uU(163,"\n "),n.qZA(),n._uU(164,"\n But also all the testers and users who have given us information on the forums or via Keybase.\n "),n._UZ(165,"br"),n._uU(166,"\n "),n._UZ(167,"br"),n._uU(168,"\n "),n._UZ(169,"br"),n._uU(170,"\n "),n.TgZ(171,"p"),n._uU(172,"\n Last I would like to express my gratitude to the great users whom have supported (by donation) this project. It\n helping to purchase devices in order to test, integrate and certify them.\n "),n.qZA(),n._uU(173,"\n "),n.qZA(),n._uU(174,"\n "),n._UZ(175,"div",9),n._uU(176,"\n"),n.qZA(),n._uU(177,"\n"),n.TgZ(178,"div",7),n._uU(179,"\n "),n.TgZ(180,"div",4),n._uU(181,"\n "),n.TgZ(182,"a",17),n._uU(183,"Paypal Cagnotte pipiche"),n.qZA(),n._uU(184,"\n "),n.qZA(),n._uU(185,"\n"),n.qZA(),n._uU(186,"\n\n"),n._UZ(187,"hr"),n._uU(188,"\n"),n.TgZ(189,"div",0),n._uU(190,"@pipiche38 - 2018 - 2024"),n.qZA(),n._uU(191,"\n"),n._UZ(192,"br"),n._uU(193,"\n")),2&t&&(n.xp6(13),n.hij(" ",o.version,""))},dependencies:[r.Pi]}),e})(),g=(()=>{class e{constructor(){this.version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-about-es"]],decls:194,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-engWebUI_About",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(t,o){1&t&&(n.TgZ(0,"div",0),n._uU(1,"\n "),n.TgZ(2,"h1"),n._uU(3,"\n "),n.TgZ(4,"span",1),n._uU(5,"APP_NAME"),n.qZA(),n._uU(6,"\n "),n.qZA(),n._uU(7,"\n "),n.TgZ(8,"p"),n._UZ(9,"i",2),n._uU(10," "),n.TgZ(11,"span",1),n._uU(12,"Version"),n.qZA(),n._uU(13),n.qZA(),n._uU(14,"\n"),n.qZA(),n._uU(15,"\n"),n.TgZ(16,"div",3),n._uU(17,"\n "),n.TgZ(18,"div",4),n._uU(19,"\n The aim of the plugin is to bridge a ZigBee coordinator to the Domoticz Home Automation in order to communicate with\n objects using the ZigBee protocol.\n "),n.TgZ(20,"p"),n._uU(21,"\n For information around the Zigate Plugin, please refer to\n "),n.TgZ(22,"a",5),n._uU(23," Plugin Wiki (in english) "),n.qZA(),n._uU(24,"\n "),n.qZA(),n._uU(25,"\n "),n.TgZ(26,"p"),n._uU(27,"\n The small icone\n "),n._UZ(28,"a",6),n._uU(29,"\n links to the informations on the Wiki.\n "),n.qZA(),n._uU(30,"\n "),n.qZA(),n._uU(31,"\n"),n.qZA(),n._uU(32,"\n"),n.TgZ(33,"div",7),n._uU(34,"\n "),n.TgZ(35,"div",4),n._uU(36,"\n "),n.TgZ(37,"h3",8),n._uU(38,"How to deal with issues and Questions"),n.qZA(),n._uU(39,"\n "),n.qZA(),n._uU(40,"\n"),n.qZA(),n._uU(41,"\n"),n.TgZ(42,"div",7),n._uU(43,"\n "),n._UZ(44,"div",9),n._uU(45,"\n "),n.TgZ(46,"div",10),n._uU(47,"\n "),n.TgZ(48,"ul"),n._uU(49,"\n "),n.TgZ(50,"li"),n._uU(51,"\n In case of question and problem please use the Domoticz Forum to ask your questions and/or problem.\n "),n.TgZ(52,"p"),n._uU(53,"\n You can either use the\n "),n.TgZ(54,"a",11),n._uU(55,"English Domoticz forum"),n.qZA(),n._uU(56," or if\n you want to interact in French you might want to use\n "),n.qZA(),n._uU(57,"\n "),n.qZA(),n._uU(58,"\n "),n.qZA(),n._uU(59,"\n "),n.qZA(),n._uU(60,"\n "),n._UZ(61,"div",9),n._uU(62,"\n"),n.qZA(),n._uU(63,"\n"),n.TgZ(64,"div",7),n._uU(65,"\n "),n.TgZ(66,"div",4),n._uU(67,"\n "),n.TgZ(68,"h3",8),n._uU(69,"Come and discuss with us !"),n.qZA(),n._uU(70,"\n "),n.qZA(),n._uU(71,"\n"),n.qZA(),n._uU(72,"\n"),n.TgZ(73,"div",7),n._uU(74,"\n "),n._UZ(75,"div",9),n._uU(76,"\n "),n.TgZ(77,"div",10),n._uU(78,"\n "),n.TgZ(79,"p"),n._uU(80,"\n We are a small team We are a small team of enthusiasts who share the pleasure of using DomoticZ with ZigBee\n coordinators.\n "),n.qZA(),n._uU(81,"\n "),n.TgZ(82,"p"),n._uU(83,"\n Meet us on "),n.TgZ(84,"a",12),n._uU(85,"keybase.io"),n.qZA(),n._uU(86," (team Zigate) for real time discussions.\n "),n.qZA(),n._uU(87,"\n "),n.qZA(),n._uU(88,"\n "),n._UZ(89,"div",9),n._uU(90,"\n"),n.qZA(),n._uU(91,"\n"),n._UZ(92,"hr"),n._uU(93,"\n"),n.TgZ(94,"div",7),n._uU(95,"\n "),n.TgZ(96,"div",4),n._uU(97,"\n "),n.TgZ(98,"h3",8),n._uU(99,"Thanks"),n.qZA(),n._uU(100,"\n "),n.qZA(),n._uU(101,"\n"),n.qZA(),n._uU(102,"\n"),n.TgZ(103,"div",7),n._uU(104,"\n "),n._UZ(105,"div",9),n._uU(106,"\n "),n.TgZ(107,"div",10),n._uU(108,"\n We would like to thank the manufacturers for providing us with equipment for developments :"),n._UZ(109,"br")(110,"br"),n._uU(111,"\n "),n.TgZ(112,"ul"),n._uU(113,"\n "),n.TgZ(114,"li"),n._uU(115,"@Fred from Lixee for "),n.TgZ(116,"a",13),n._uU(117,"ZiGate"),n.qZA(),n._uU(118," and Lixee objects."),n.qZA(),n._uU(119,"\n "),n.TgZ(120,"li"),n._uU(121,"\n @Omer from electrolama for\n "),n.TgZ(122,"a",14),n._uU(123,"zzh Multiprotocol RF Stick"),n.qZA(),n._uU(124," objects.\n "),n.qZA(),n._uU(125,"\n "),n.TgZ(126,"li"),n._uU(127,"\n @NilsBohr from Elelabs for "),n.TgZ(128,"a",15),n._uU(129,"Elelabs Zigbee USB Adapter"),n.qZA(),n._uU(130,"\n Silicon Labs EZSP objects.\n "),n.qZA(),n._uU(131,"\n "),n.TgZ(132,"li"),n._uU(133,"@Fabrice whom kindly provided a set of Legrand objects."),n.qZA(),n._uU(134,"\n "),n.TgZ(135,"li"),n._uU(136,"\n @erwan whom kindly provided a set of "),n.TgZ(137,"a",16),n._uU(138,"Casa.IA"),n.qZA(),n._uU(139,"\n objects\n "),n.qZA(),n._uU(140,"\n "),n.qZA(),n._uU(141,"\n\n "),n._UZ(142,"br"),n._uU(143,"\n We would like to thank those who contributed to the project. In particular :"),n._UZ(144,"br")(145,"br"),n._uU(146,"\n "),n.TgZ(147,"ul"),n._uU(148,"\n "),n.TgZ(149,"li"),n._uU(150,"\n Plugin developpers : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74, @sbhc68, @thiklop, @deufo\n et @badz\n "),n.qZA(),n._uU(151,"\n "),n.TgZ(152,"li"),n._uU(153,"Web Admin interface developer : @ben33880"),n.qZA(),n._uU(154,"\n "),n.TgZ(155,"li"),n._uU(156,"\n Web Admin interface translation : @gemies et @marktn (for Dutch translation), @martial83, @hydci et @jp-keros\n (for French translation)\n "),n.qZA(),n._uU(157,"\n "),n.TgZ(158,"li"),n._uU(159,"Wiki writters : @Pipiche38 et @jp-keros"),n.qZA(),n._uU(160,"\n "),n.TgZ(161,"li"),n._uU(162,"\n Wik translation : @karstenbakker (for Dutch translation), @jp-keros et @newturtle (for French translation),\n @erwan (for Spanish translation)\n "),n.qZA(),n._uU(163,"\n "),n.qZA(),n._uU(164,"\n But also all the testers and users who have given us information on the forums or via Keybase.\n "),n._UZ(165,"br"),n._uU(166,"\n "),n._UZ(167,"br"),n._uU(168,"\n "),n._UZ(169,"br"),n._uU(170,"\n "),n.TgZ(171,"p"),n._uU(172,"\n Last I would like to express my gratitude to the great users whom have supported (by donation) this project. It\n helping to purchase devices in order to test, integrate and certify them.\n "),n.qZA(),n._uU(173,"\n "),n.qZA(),n._uU(174,"\n "),n._UZ(175,"div",9),n._uU(176,"\n"),n.qZA(),n._uU(177,"\n"),n.TgZ(178,"div",7),n._uU(179,"\n "),n.TgZ(180,"div",4),n._uU(181,"\n "),n.TgZ(182,"a",17),n._uU(183,"Paypal Cagnotte pipiche"),n.qZA(),n._uU(184,"\n "),n.qZA(),n._uU(185,"\n"),n.qZA(),n._uU(186,"\n\n"),n._UZ(187,"hr"),n._uU(188,"\n"),n.TgZ(189,"div",0),n._uU(190,"@pipiche38 - 2018 - 2024"),n.qZA(),n._uU(191,"\n"),n._UZ(192,"br"),n._uU(193,"\n")),2&t&&(n.xp6(13),n.hij(" ",o.version,""))},dependencies:[r.Pi]}),e})(),p=(()=>{class e{constructor(){this.version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-about-nl"]],decls:194,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng/WebUI_About",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(t,o){1&t&&(n.TgZ(0,"div",0),n._uU(1,"\n "),n.TgZ(2,"h1"),n._uU(3,"\n "),n.TgZ(4,"span",1),n._uU(5,"APP_NAME"),n.qZA(),n._uU(6,"\n "),n.qZA(),n._uU(7,"\n "),n.TgZ(8,"p"),n._UZ(9,"i",2),n._uU(10," "),n.TgZ(11,"span",1),n._uU(12,"Version"),n.qZA(),n._uU(13),n.qZA(),n._uU(14,"\n"),n.qZA(),n._uU(15,"\n"),n.TgZ(16,"div",3),n._uU(17,"\n "),n.TgZ(18,"div",4),n._uU(19,"\n The aim of the plugin is to bridge a ZigBee coordinator to the Domoticz Home Automation in order to communicate with\n objects using the ZigBee protocol.\n "),n.TgZ(20,"p"),n._uU(21,"\n For information around the Zigate Plugin, please refer to\n "),n.TgZ(22,"a",5),n._uU(23," Plugin Wiki (in english) "),n.qZA(),n._uU(24,"\n "),n.qZA(),n._uU(25,"\n "),n.TgZ(26,"p"),n._uU(27,"\n The small icone\n "),n._UZ(28,"a",6),n._uU(29,"\n links to the informations on the Wiki.\n "),n.qZA(),n._uU(30,"\n "),n.qZA(),n._uU(31,"\n"),n.qZA(),n._uU(32,"\n"),n.TgZ(33,"div",7),n._uU(34,"\n "),n.TgZ(35,"div",4),n._uU(36,"\n "),n.TgZ(37,"h3",8),n._uU(38,"How to deal with issues and Questions"),n.qZA(),n._uU(39,"\n "),n.qZA(),n._uU(40,"\n"),n.qZA(),n._uU(41,"\n"),n.TgZ(42,"div",7),n._uU(43,"\n "),n._UZ(44,"div",9),n._uU(45,"\n "),n.TgZ(46,"div",10),n._uU(47,"\n "),n.TgZ(48,"ul"),n._uU(49,"\n "),n.TgZ(50,"li"),n._uU(51,"\n In case of question and problem please use the Domoticz Forum to ask your questions and/or problem.\n "),n.TgZ(52,"p"),n._uU(53,"\n You can either use the\n "),n.TgZ(54,"a",11),n._uU(55,"English Domoticz forum"),n.qZA(),n._uU(56," or if\n you want to interact in French you might want to use\n "),n.qZA(),n._uU(57,"\n "),n.qZA(),n._uU(58,"\n "),n.qZA(),n._uU(59,"\n "),n.qZA(),n._uU(60,"\n "),n._UZ(61,"div",9),n._uU(62,"\n"),n.qZA(),n._uU(63,"\n"),n.TgZ(64,"div",7),n._uU(65,"\n "),n.TgZ(66,"div",4),n._uU(67,"\n "),n.TgZ(68,"h3",8),n._uU(69,"Come and discuss with us !"),n.qZA(),n._uU(70,"\n "),n.qZA(),n._uU(71,"\n"),n.qZA(),n._uU(72,"\n"),n.TgZ(73,"div",7),n._uU(74,"\n "),n._UZ(75,"div",9),n._uU(76,"\n "),n.TgZ(77,"div",10),n._uU(78,"\n "),n.TgZ(79,"p"),n._uU(80,"\n We are a small team We are a small team of enthusiasts who share the pleasure of using DomoticZ with ZigBee\n coordinators.\n "),n.qZA(),n._uU(81,"\n "),n.TgZ(82,"p"),n._uU(83,"\n Meet us on "),n.TgZ(84,"a",12),n._uU(85,"keybase.io"),n.qZA(),n._uU(86," (team Zigate) for real time discussions.\n "),n.qZA(),n._uU(87,"\n "),n.qZA(),n._uU(88,"\n "),n._UZ(89,"div",9),n._uU(90,"\n"),n.qZA(),n._uU(91,"\n"),n._UZ(92,"hr"),n._uU(93,"\n"),n.TgZ(94,"div",7),n._uU(95,"\n "),n.TgZ(96,"div",4),n._uU(97,"\n "),n.TgZ(98,"h3",8),n._uU(99,"Thanks"),n.qZA(),n._uU(100,"\n "),n.qZA(),n._uU(101,"\n"),n.qZA(),n._uU(102,"\n"),n.TgZ(103,"div",7),n._uU(104,"\n "),n._UZ(105,"div",9),n._uU(106,"\n "),n.TgZ(107,"div",10),n._uU(108,"\n We would like to thank the manufacturers for providing us with equipment for developments :"),n._UZ(109,"br")(110,"br"),n._uU(111,"\n "),n.TgZ(112,"ul"),n._uU(113,"\n "),n.TgZ(114,"li"),n._uU(115,"@Fred from Lixee for "),n.TgZ(116,"a",13),n._uU(117,"ZiGate"),n.qZA(),n._uU(118," and Lixee objects."),n.qZA(),n._uU(119,"\n "),n.TgZ(120,"li"),n._uU(121,"\n @Omer from electrolama for\n "),n.TgZ(122,"a",14),n._uU(123,"zzh Multiprotocol RF Stick"),n.qZA(),n._uU(124," objects.\n "),n.qZA(),n._uU(125,"\n "),n.TgZ(126,"li"),n._uU(127,"\n @NilsBohr from Elelabs for "),n.TgZ(128,"a",15),n._uU(129,"Elelabs Zigbee USB Adapter"),n.qZA(),n._uU(130,"\n Silicon Labs EZSP objects.\n "),n.qZA(),n._uU(131,"\n "),n.TgZ(132,"li"),n._uU(133,"@Fabrice whom kindly provided a set of Legrand objects."),n.qZA(),n._uU(134,"\n "),n.TgZ(135,"li"),n._uU(136,"\n @erwan whom kindly provided a set of "),n.TgZ(137,"a",16),n._uU(138,"Casa.IA"),n.qZA(),n._uU(139,"\n objects\n "),n.qZA(),n._uU(140,"\n "),n.qZA(),n._uU(141,"\n\n "),n._UZ(142,"br"),n._uU(143,"\n We would like to thank those who contributed to the project. In particular :"),n._UZ(144,"br")(145,"br"),n._uU(146,"\n "),n.TgZ(147,"ul"),n._uU(148,"\n "),n.TgZ(149,"li"),n._uU(150,"\n Plugin developpers : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74, @sbhc68, @thiklop, @deufo\n et @badz\n "),n.qZA(),n._uU(151,"\n "),n.TgZ(152,"li"),n._uU(153,"Web Admin interface developer : @ben33880"),n.qZA(),n._uU(154,"\n "),n.TgZ(155,"li"),n._uU(156,"\n Web Admin interface translation : @gemies et @marktn (for Dutch translation), @martial83, @hydci et @jp-keros\n (for French translation)\n "),n.qZA(),n._uU(157,"\n "),n.TgZ(158,"li"),n._uU(159,"Wiki writters : @Pipiche38 et @jp-keros"),n.qZA(),n._uU(160,"\n "),n.TgZ(161,"li"),n._uU(162,"\n Wik translation : @karstenbakker (for Dutch translation), @jp-keros et @newturtle (for French translation),\n @erwan (for Spanish translation)\n "),n.qZA(),n._uU(163,"\n "),n.qZA(),n._uU(164,"\n But also all the testers and users who have given us information on the forums or via Keybase.\n "),n._UZ(165,"br"),n._uU(166,"\n "),n._UZ(167,"br"),n._uU(168,"\n "),n._UZ(169,"br"),n._uU(170,"\n "),n.TgZ(171,"p"),n._uU(172,"\n Last I would like to express my gratitude to the great users whom have supported (by donation) this project. It\n helping to purchase devices in order to test, integrate and certify them.\n "),n.qZA(),n._uU(173,"\n "),n.qZA(),n._uU(174,"\n "),n._UZ(175,"div",9),n._uU(176,"\n"),n.qZA(),n._uU(177,"\n"),n.TgZ(178,"div",7),n._uU(179,"\n "),n.TgZ(180,"div",4),n._uU(181,"\n "),n.TgZ(182,"a",17),n._uU(183,"Paypal Cagnotte pipiche"),n.qZA(),n._uU(184,"\n "),n.qZA(),n._uU(185,"\n"),n.qZA(),n._uU(186,"\n\n"),n._UZ(187,"hr"),n._uU(188,"\n"),n.TgZ(189,"div",0),n._uU(190,"@pipiche38 - 2018 - 2024"),n.qZA(),n._uU(191,"\n"),n._UZ(192,"br"),n._uU(193,"\n")),2&t&&(n.xp6(13),n.hij(" ",o.version,""))},dependencies:[r.Pi]}),e})(),c=(()=>{class e{constructor(){this.version=JSON.parse(sessionStorage.getItem("plugin")).PluginVersion}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-about-fr"]],decls:218,vars:1,consts:[[1,"text-center"],["translate",""],[1,"far","fa-bookmark"],[1,"mt-5","row"],[1,"col-sm","text-center"],["href","https://zigbeefordomoticz.github.io/wiki/fr-fr","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/en-eng","target","_blank"],["href","https://zigbeefordomoticz.github.io/wiki/fr-fr/WebUI_A-propos",1,"fas","fa-info-circle","me-2"],[1,"mt-3","row"],[1,"mt-3"],[1,"col-sm-2"],[1,"col-sm","text-justify"],["href","https://easydomoticz.com/forum/viewforum.php?f=28","target","_blank"],["href","https://easydomoticz.com/forum/viewtopic.php?f=28&t=10886","target","_blank"],["href","https://www.domoticz.com/forum/viewforum.php?f=68","target","_blank"],["href","https://keybase.io/team/zigate","target","_blank"],["href","https://zigate.fr/","target","_blank"],["href","https://shop.electrolama.com/","target","_blank"],["href","https://elelabs.com/","target","_blank"],["href","https://casaia.fr/boutique/","target","_blank"],["href","https://www.paypal.com/paypalme/pipiche","target","_blank"]],template:function(t,o){1&t&&(n.TgZ(0,"div",0),n._uU(1,"\n "),n.TgZ(2,"h1"),n._uU(3,"\n "),n.TgZ(4,"span",1),n._uU(5,"APP_NAME"),n.qZA(),n._uU(6,"\n "),n.qZA(),n._uU(7,"\n "),n.TgZ(8,"p"),n._UZ(9,"i",2),n._uU(10," "),n.TgZ(11,"span",1),n._uU(12,"Version"),n.qZA(),n._uU(13),n.qZA(),n._uU(14,"\n"),n.qZA(),n._uU(15,"\n"),n.TgZ(16,"div",3),n._uU(17,"\n "),n.TgZ(18,"div",4),n._uU(19,"\n Ce plugin permet d'utiliser un coordinateur ZigBee avec le logiciel DomoticZ afin de pouvoir communiquer avec des\n objets utilisant le protocole ZigBee.\n "),n.TgZ(20,"p"),n._uU(21,"\n Retrouver toutes les informations pour utiliser ce plugin sur\n "),n.TgZ(22,"a",5),n._uU(23," le Wiki du plugin "),n.qZA(),n._uU(24,"\n (en fran\xe7ais)."),n._UZ(25,"br"),n._uU(26,"\n Refer to\n "),n.TgZ(27,"a",6),n._uU(28," the plugin Wiki "),n.qZA(),n._uU(29,"\n for more informations (in english).\n "),n.qZA(),n._uU(30,"\n "),n.TgZ(31,"p"),n._uU(32,"\n La petite ic\xf4ne\n "),n._UZ(33,"a",7),n._uU(34,"\n renvoit vers les informations sur le Wiki fran\xe7ais.\n "),n.qZA(),n._uU(35,"\n "),n.qZA(),n._uU(36,"\n"),n.qZA(),n._uU(37,"\n"),n.TgZ(38,"div",8),n._uU(39,"\n "),n.TgZ(40,"div",4),n._uU(41,"\n "),n.TgZ(42,"h3",9),n._uU(43,"En cas de probl\xe8mes"),n.qZA(),n._uU(44,"\n "),n.qZA(),n._uU(45,"\n"),n.qZA(),n._uU(46,"\n"),n.TgZ(47,"div",8),n._uU(48,"\n "),n._UZ(49,"div",10),n._uU(50,"\n "),n.TgZ(51,"div",11),n._uU(52,"\n "),n.TgZ(53,"ul"),n._uU(54,"\n "),n.TgZ(55,"li"),n._uU(56,"\n V\xe9rifiez les logs de DomoticZ, ils contiennent de nombreuses informations utiles \xe0 la compr\xe9hension du(es)\n dysfonctionnements.\n "),n.qZA(),n._uU(57,"\n "),n._UZ(58,"br"),n._uU(59,"\n "),n.TgZ(60,"li"),n._uU(61,"Venez en discuter sur les forums :"),n.qZA(),n._uU(62,"\n "),n.TgZ(63,"ul"),n._uU(64,"\n "),n.TgZ(65,"li"),n._uU(66,"\n "),n.TgZ(67,"a",12),n._uU(68,"Le forum fran\xe7ais"),n.qZA(),n._uU(69,"\n en suivant le\n "),n.TgZ(70,"a",13),n._uU(71,"Guide pour bien formuler une demande"),n.qZA(),n._uU(72,"\n afin que nous ayons un maximum d'informations d\xe9s le d\xe9part.\n "),n.qZA(),n._uU(73,"\n "),n.TgZ(74,"li"),n._uU(75,"\n "),n.TgZ(76,"a",14),n._uU(77,"Le forum anglais"),n.qZA(),n._uU(78,"\n "),n.qZA(),n._uU(79,"\n "),n.qZA(),n._uU(80,"\n "),n._UZ(81,"br"),n._uU(82,"\n "),n.qZA(),n._uU(83,"\n "),n.qZA(),n._uU(84,"\n "),n._UZ(85,"div",10),n._uU(86,"\n"),n.qZA(),n._uU(87,"\n"),n.TgZ(88,"div",8),n._uU(89,"\n "),n.TgZ(90,"div",4),n._uU(91,"\n "),n.TgZ(92,"h3",9),n._uU(93,"Venez discuter avec nous !"),n.qZA(),n._uU(94,"\n "),n.qZA(),n._uU(95,"\n"),n.qZA(),n._uU(96,"\n"),n.TgZ(97,"div",8),n._uU(98,"\n "),n._UZ(99,"div",10),n._uU(100,"\n "),n.TgZ(101,"div",11),n._uU(102,"\n "),n.TgZ(103,"p"),n._uU(104,"\n Nous sommes une petite \xe9quipe de passionn\xe9s qui partageons le plaisir d'utiliser DomoticZ avec les coordinateur\n ZigBee.\n "),n.qZA(),n._uU(105,"\n "),n.TgZ(106,"p"),n._uU(107,"\n Retrouvez-nous sur "),n.TgZ(108,"a",15),n._uU(109,"keybase.io"),n.qZA(),n._uU(110," pour des discussions en\n temps r\xe9el.\n "),n.qZA(),n._uU(111,"\n "),n.qZA(),n._uU(112,"\n "),n._UZ(113,"div",10),n._uU(114,"\n"),n.qZA(),n._uU(115,"\n"),n._UZ(116,"hr"),n._uU(117,"\n"),n.TgZ(118,"div",8),n._uU(119,"\n "),n.TgZ(120,"div",4),n._uU(121,"\n "),n.TgZ(122,"h3",9),n._uU(123,"Remerciements"),n.qZA(),n._uU(124,"\n "),n.qZA(),n._uU(125,"\n"),n.qZA(),n._uU(126,"\n"),n.TgZ(127,"div",8),n._uU(128,"\n "),n._UZ(129,"div",10),n._uU(130,"\n "),n.TgZ(131,"div",11),n._uU(132,"\n Nous souhaitons remercier les fabricants pour nous avoir mis \xe0 disposition du mat\xe9riel pour les d\xe9veloppements :"),n._UZ(133,"br")(134,"br"),n._uU(135,"\n "),n.TgZ(136,"ul"),n._uU(137,"\n "),n.TgZ(138,"li"),n._uU(139,"\n @Fred de Lixee.fr pour la fourniture de coordinateurs\n "),n.TgZ(140,"a",16),n._uU(141,"ZiGates"),n.qZA(),n._uU(142," et autres objects.\n "),n.qZA(),n._uU(143,"\n "),n.TgZ(144,"li"),n._uU(145,"\n @Omer de electrolama pour la fourniture de coordinateurs\n "),n.TgZ(146,"a",17),n._uU(147,"zzh Multiprotocol RF"),n.qZA(),n._uU(148,".\n "),n.qZA(),n._uU(149,"\n "),n.TgZ(150,"li"),n._uU(151,"\n @NilsBohr de Elelabs pour la fourniture de coordinateurs\n "),n.TgZ(152,"a",18),n._uU(153,"Elelabs Zigbee USB Adapter"),n.qZA(),n._uU(154," Silicon Labs EZSP objects.\n "),n.qZA(),n._uU(155,"\n "),n.TgZ(156,"li"),n._uU(157,"@Fabrice pour avoir fournit gracieusement des objets Legrand-Netatmo."),n.qZA(),n._uU(158,"\n "),n.TgZ(159,"li"),n._uU(160,"\n @erwan pour avoir fournit gracieusement des objets\n "),n.TgZ(161,"a",19),n._uU(162,"Casa.IA"),n.qZA(),n._uU(163,".\n "),n.qZA(),n._uU(164,"\n "),n.qZA(),n._uU(165,"\n\n "),n._UZ(166,"br"),n._uU(167,"\n Nous souhaitons remercier les personnes ayant contribu\xe9 au projet. En particulier :"),n._UZ(168,"br")(169,"br"),n._uU(170,"\n "),n.TgZ(171,"ul"),n._uU(172,"\n "),n.TgZ(173,"li"),n._uU(174,"\n Les d\xe9veloppeurs du plugin : @zaraki673, @Pipiche38, @2m2, @d2e2n2o, @karstenbakker, @ricky74, @sbhc68,\n @thiklop, @deufo et @badz\n "),n.qZA(),n._uU(175,"\n "),n.TgZ(176,"li"),n._uU(177,"le d\xe9veloppeur de l'interface Web : @ben33880"),n.qZA(),n._uU(178,"\n "),n.TgZ(179,"li"),n._uU(180,"\n Les traducteurs de l'interface web : @gemies et @marktn (pour la version allemande), @martial83, @hydci et\n @jp-keros (pour la version fran\xe7aise)\n "),n.qZA(),n._uU(181,"\n "),n.TgZ(182,"li"),n._uU(183,"Les r\xe9dacteurs du wiki : @Pipiche38 et @jp-keros"),n.qZA(),n._uU(184,"\n "),n.TgZ(185,"li"),n._uU(186,"\n Les traducteurs du wiki : @karstenbakker (pour la version allemande), @jp-keros et @newturtle (pour la version\n fran\xe7aise), @erwan (for Spanish translation)\n "),n.qZA(),n._uU(187,"\n "),n.qZA(),n._uU(188,"\n Mais aussi tous les testeurs et utilisateurs qui nous ont remont\xe9 des infos sur les forums ou via Keybase.\n "),n._UZ(189,"br"),n._uU(190,"\n "),n._UZ(191,"br"),n._uU(192,"\n "),n._UZ(193,"br"),n._uU(194,"\n "),n.TgZ(195,"p"),n._uU(196,"\n Pour terminer, nous souhaiterions remercier tous les donateurs qui ont support\xe9 le projet. Cela permet l'achat de\n nouveaux objets pour les tester, les int\xe9grer et les certifier.\n "),n.qZA(),n._uU(197,"\n "),n.qZA(),n._uU(198,"\n "),n._UZ(199,"div",10),n._uU(200,"\n"),n.qZA(),n._uU(201,"\n"),n.TgZ(202,"div",8),n._uU(203,"\n "),n.TgZ(204,"div",4),n._uU(205,"\n "),n.TgZ(206,"a",20),n._uU(207,"Cagnotte Paypal pipiche"),n.qZA(),n._uU(208,"\n "),n.qZA(),n._uU(209,"\n"),n.qZA(),n._uU(210,"\n\n"),n._UZ(211,"hr"),n._uU(212,"\n"),n.TgZ(213,"div",0),n._uU(214,"@pipiche38 - 2018 - 2024"),n.qZA(),n._uU(215,"\n\n"),n._UZ(216,"br"),n._uU(217,"\n")),2&t&&(n.xp6(13),n.hij(" ",o.version,""))},dependencies:[r.Pi]}),e})();function d(e,u){1&e&&(n.ynx(0),n._uU(1,"\n "),n._UZ(2,"app-about-fr"),n._uU(3,"\n "),n.BQk())}function h(e,u){1&e&&(n.ynx(0),n._uU(1,"\n "),n._UZ(2,"app-about-nl"),n._uU(3,"\n "),n.BQk())}function m(e,u){1&e&&(n.ynx(0),n._uU(1,"\n "),n._UZ(2,"app-about-es"),n._uU(3,"\n "),n.BQk())}function A(e,u){1&e&&(n.ynx(0),n._uU(1,"\n "),n._UZ(2,"app-about-en"),n._uU(3,"\n "),n.BQk())}new s.Yd("AboutComponent");const f=[{path:"",component:(()=>{class e{constructor(t){this.i18nService=t,this.version=Z.N.version}ngOnInit(){}}return e.\u0275fac=function(t){return new(t||e)(n.Y36(s.Dp))},e.\u0275cmp=n.Xpm({type:e,selectors:[["app-about"]],decls:11,vars:4,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"]],template:function(t,o){1&t&&(n.ynx(0,0),n._uU(1,"\n "),n.YNc(2,d,4,0,"ng-container",1),n._uU(3,"\n "),n.YNc(4,h,4,0,"ng-container",1),n._uU(5,"\n "),n.YNc(6,m,4,0,"ng-container",1),n._uU(7,"\n "),n.YNc(8,A,4,0,"ng-container",2),n._uU(9,"\n"),n.BQk(),n._uU(10,"\n")),2&t&&(n.Q6J("ngSwitch",o.i18nService.language),n.xp6(2),n.Q6J("ngSwitchCase",o.i18nService.supportedLanguages[1].code),n.xp6(2),n.Q6J("ngSwitchCase",o.i18nService.supportedLanguages[2].code),n.xp6(2),n.Q6J("ngSwitchCase",o.i18nService.supportedLanguages[3].code))},dependencies:[a.RF,a.n9,a.ED,l,g,p,c]}),e})(),data:{title:(0,s.Kl)("About")}}];let b=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=n.oAB({type:e}),e.\u0275inj=n.cJS({imports:[U.Bz.forChild(f),U.Bz]}),e})(),T=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=n.oAB({type:e}),e.\u0275inj=n.cJS({imports:[a.ez,r.aw,b]}),e})()}}]); \ No newline at end of file diff --git a/www/z4d/837.657d2f41ff2a0f41.js b/www/z4d/837.657d2f41ff2a0f41.js new file mode 100644 index 000000000..fdb0f4a2d --- /dev/null +++ b/www/z4d/837.657d2f41ff2a0f41.js @@ -0,0 +1 @@ +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[837],{86837:(nt,_t,X)=>{"use strict";X.r(_t),X.d(_t,{NetworkModule:()=>xo});var ht=X(93887),et=X(91346),Q=X(12168),S=X(69820),K=X(38833),O=X(2501),I=X(55782),E=X(10467),t=X(54438),T=X(71985),N=X(43236),j=X(39974),P=X(54360),c=X(58750),m=X(41584);var f=X(88141),k=X(96354),n=X(33726),s=X(25558),d=X(7673),l=X(56977),g=X(84412),b=X(57786),p=X(23294),v=X(91986),D=X(983),r=X(70980);function u(o,F=!1){return(0,j.N)((e,i)=>{let a=0;e.subscribe((0,P._)(i,M=>{const x=o(M,a++);(x||F)&&i.next(M),!x&&i.complete()}))})}var C=X(30536),y=X(60177);let A;try{A=typeof Intl<"u"&&Intl.v8BreakIterator}catch{A=!1}let z=(()=>{class o{constructor(e){this._platformId=e,this.isBrowser=this._platformId?(0,y.UE)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!A)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(t.Agw))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var U=function(o){return o[o.NORMAL=0]="NORMAL",o[o.NEGATED=1]="NEGATED",o[o.INVERTED=2]="INVERTED",o}(U||{});let G;const gt=new t.nKC("cdk-dir-doc",{providedIn:"root",factory:function St(){return(0,t.WQX)(y.qQ)}}),dt=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let mt=(()=>{class o{constructor(e){this.value="ltr",this.change=new t.bkB,e&&(this.value=function ct(o){const F=o?.toLowerCase()||"";return"auto"===F&&typeof navigator<"u"&&navigator?.language?dt.test(navigator.language)?"rtl":"ltr":"rtl"===F?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(gt,8))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var kt=X(89079),Qt=X(21413),me=X(96697),ve=X(85412);const ke="function"==typeof Float32Array;function Zt(o,F){return 1-3*F+3*o}function Kt(o,F){return 3*F-6*o}function qt(o){return 3*o}function At(o,F,e){return((Zt(F,e)*o+Kt(F,e))*o+qt(F))*o}function Jt(o,F,e){return 3*Zt(F,e)*o*o+2*Kt(F,e)*o+qt(F)}function Fe(o){return o}function Me(o,F,e,i){if(!(0<=o&&o<=1&&0<=e&&e<=1))throw new Error("bezier x values must be in [0, 1] range");if(o===F&&e===i)return Fe;const a=ke?new Float32Array(11):new Array(11);for(let x=0;x<11;++x)a[x]=At(.1*x,o,e);return function(L){return 0===L?0:1===L?1:At(function M(x){let L=0,R=1;for(;10!==R&&a[R]<=x;++R)L+=.1;--R;const ut=L+(x-a[R])/(a[R+1]-a[R])*.1,wt=Jt(ut,o,e);return wt>=.001?function Ce(o,F,e,i){for(let a=0;a<4;++a){const M=Jt(F,e,i);if(0===M)return F;F-=(At(F,e,i)-o)/M}return F}(x,ut,o,e):0===wt?ut:function xe(o,F,e,i,a){let M,x,L=0;do{x=F+(e-F)/2,M=At(x,i,a)-o,M>0?e=x:F=x}while(Math.abs(M)>1e-7&&++L<10);return x}(x,L,L+.1,o,e)}(L),F,i)}}const Ee=new t.nKC("SMOOTH_SCROLL_OPTIONS");let Pe=(()=>{class o{get _w(){return this._document.defaultView}get _now(){return this._w.performance?.now?.bind(this._w.performance)||Date.now}constructor(e,i,a){this._document=e,this._platform=i,this.rtlScrollAxisType=function tt(){if("object"!=typeof document||!document)return U.NORMAL;if(null==G){const o=document.createElement("div"),F=o.style;o.dir="rtl",F.width="1px",F.overflow="auto",F.visibility="hidden",F.pointerEvents="none",F.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",o.appendChild(e),document.body.appendChild(o),G=U.NORMAL,0===o.scrollLeft&&(o.scrollLeft=1,G=0===o.scrollLeft?U.NEGATED:U.INVERTED),o.remove()}return G}(),this._onGoingScrolls=new Map,this._defaultOptions={duration:468,easing:{x1:.42,y1:0,x2:.58,y2:1},...a}}_scrollElement(e,i,a){e.scrollLeft=i,e.scrollTop=a}_getElement(e,i){return"string"==typeof e?(i||this._document).querySelector(e):function zt(o){return o instanceof t.aKT?o.nativeElement:o}(e)}_initSmoothScroll(e){return this._onGoingScrolls.has(e)&&this._onGoingScrolls.get(e).next(),this._onGoingScrolls.set(e,new Qt.B).get(e)}_isFinished(e,i,a){return e.currentX!==e.x||e.currentY!==e.y||(i.next(),a(),!1)}_interrupted(e,i){return(0,b.h)((0,n.R)(e,"wheel",{passive:!0,capture:!0}),(0,n.R)(e,"touchmove",{passive:!0,capture:!0}),i).pipe((0,me.s)(1))}_destroy(e,i){i.complete(),this._onGoingScrolls.delete(e)}_step(e){return new T.c(i=>{let a=(this._now()-e.startTime)/e.duration;a=a>1?1:a;const M=e.easing(a);e.currentX=e.startX+(e.x-e.startX)*M,e.currentY=e.startY+(e.y-e.startY)*M,this._scrollElement(e.scrollable,e.currentX,e.currentY),C.X.schedule(()=>i.next(e))})}_applyScrollToOptions(e,i){if(!i.duration)return this._scrollElement(e,i.left,i.top),Promise.resolve();const a=this._initSmoothScroll(e),M={scrollable:e,startTime:this._now(),startX:e.scrollLeft,startY:e.scrollTop,x:null==i.left?e.scrollLeft:~~i.left,y:null==i.top?e.scrollTop:~~i.top,duration:i.duration,easing:Me(i.easing.x1,i.easing.y1,i.easing.x2,i.easing.y2)};return new Promise(x=>{(0,d.of)(null).pipe(function be(o,F=1/0,e){return F=(F||0)<1?1/0:F,(0,j.N)((i,a)=>(0,ve.h)(i,a,o,F,void 0,!0,e))}(()=>this._step(M).pipe(u(L=>this._isFinished(L,a,x)))),(0,l.Q)(this._interrupted(e,a)),(0,r.j)(()=>this._destroy(e,a))).subscribe()})}scrollTo(e,i){if((0,y.UE)(this._platform)){const a=this._getElement(e),M="rtl"===getComputedStyle(a).direction,x={...this._defaultOptions,...i,left:null==i.left?M?i.end:i.start:i.left,right:null==i.right?M?i.start:i.end:i.right};return null!=x.bottom&&(x.top=a.scrollHeight-a.clientHeight-x.bottom),M&&this.rtlScrollAxisType!==U.NORMAL?(null!=x.left&&(x.right=a.scrollWidth-a.clientWidth-x.left),this.rtlScrollAxisType===U.INVERTED?x.left=x.right:this.rtlScrollAxisType===U.NEGATED&&(x.left=x.right?-x.right:x.right)):null!=x.right&&(x.left=a.scrollWidth-a.clientWidth-x.right),this._applyScrollToOptions(a,x)}return Promise.resolve()}scrollToElement(e,i,a={}){const M=this._getElement(e),x=this._getElement(i,M),L={...a,left:x.offsetLeft+(a.left||0),top:x.offsetTop+(a.top||0)};return x?this.scrollTo(M,L):Promise.resolve()}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(y.qQ),t.KVO(t.Agw),t.KVO(Ee,8))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();const Ne=["scrollbarButton",""];function Oe(o,F){if(1&o&&t.nrm(0,"button",5)(1,"button",6),2&o){const e=t.XpG();t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,""),t.R7$(),t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,"")}}function Te(o,F){if(1&o&&t.nrm(0,"button",5)(1,"button",6),2&o){const e=t.XpG();t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,""),t.R7$(),t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,"")}}function Ie(o,F){1&o&&t.nrm(0,"scrollbar-y")}function Le(o,F){1&o&&t.nrm(0,"scrollbar-x")}const je=["contentWrapper"],Re=["*"];let ze=(()=>{class o{constructor(){this.nativeElement=(0,t.WQX)(t.aKT).nativeElement}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollViewport",""]],standalone:!0})}return o})();var It=function(o){return o.AfterInit="AfterInit",o.Resized="ResizeObserver",o}(It||{});const te=new t.nKC("NG_SCROLLBAR_OPTIONS"),ee=new t.nKC("NG_SCROLLBAR_POLYFILL");function oe({element:o,contentWrapper:F,throttleDuration:e}){let a,i=It.AfterInit;const M=new T.c(x=>(a=new ResizeObserver(()=>{x.next(i),i=It.Resized}),a.observe(o),F&&a.observe(F),()=>{a?.disconnect()}));return e?M.pipe(function _(o,F=N.E,e){const i=(0,m.O)(o,F);return function h(o,F){return(0,j.N)((e,i)=>{const{leading:a=!0,trailing:M=!1}=F??{};let x=!1,L=null,R=null,W=!1;const yt=()=>{R?.unsubscribe(),R=null,M&&(ge(),W&&i.complete())},ut=()=>{R=null,W&&i.complete()},wt=Mt=>R=(0,c.Tg)(o(Mt)).subscribe((0,P._)(i,yt,ut)),ge=()=>{if(x){x=!1;const Mt=L;L=null,i.next(Mt),!W&&wt(Mt)}};e.subscribe((0,P._)(i,Mt=>{x=!0,L=Mt,(!R||R.closed)&&(a?ge():wt(Mt))},()=>{W=!0,(!(M&&x&&R)||R.closed)&&i.complete()}))})}(()=>i,e)}(e,null,{leading:!0,trailing:!0})):M}function Yt(o){return(0,f.M)(()=>o.onselectstart=()=>!1)}function Wt(o){return(0,f.M)(()=>o.onselectstart=null)}function Nt(){return(0,f.M)(o=>{o.preventDefault(),o.stopPropagation()})}var Ut=function(o){return o.Viewport="ng-scroll-viewport",o.Content="ng-scroll-content",o}(Ut||{});class Be{constructor(){this.initialized=(0,t.vPA)(!1)}get offsetHeight(){return this.nativeElement.getBoundingClientRect().height}get offsetWidth(){return this.nativeElement.getBoundingClientRect().width}get scrollTop(){return this.nativeElement.scrollTop}get scrollLeft(){return this.nativeElement.scrollLeft}get contentHeight(){return this.contentWrapperElement.getBoundingClientRect().height}get contentWidth(){return this.contentWrapperElement.getBoundingClientRect().width}get scrollMaxX(){return this.contentWidth-this.offsetWidth}get scrollMaxY(){return this.contentHeight-this.offsetHeight}init(F,e,i){F.classList.add(Ut.Viewport),this.nativeElement=F,e.classList.add(Ut.Content),i?(i.style.position="relative",this.contentWrapperElement=i):this.contentWrapperElement=e,this.initialized.set(!0)}scrollYTo(F){this.nativeElement.scrollTop=F}scrollXTo(F){this.nativeElement.scrollLeft=F}}const Lt=new t.nKC("NG_SCROLLBAR"),re={trackClass:"",thumbClass:"",buttonClass:"",orientation:"auto",appearance:"native",visibility:"native",position:"native",trackScrollDuration:50,sensorThrottleTime:0,disableSensor:!1,disableInteraction:!1,buttons:!1};let Ae=(()=>{class o{constructor(){this.injectedOptions=(0,t.WQX)(te,{optional:!0}),this.options=this.injectedOptions?{...re,...this.injectedOptions}:re,this.zone=(0,t.WQX)(t.SKi),this.platform=(0,t.WQX)(z),this.injector=(0,t.WQX)(t.zZn),this.isMobile=this.platform.IOS||this.platform.ANDROID,this.dir=(0,t.WQX)(mt),this.smoothScroll=(0,t.WQX)(Pe),this.nativeElement=(0,t.WQX)(t.aKT).nativeElement,this.dragging=(0,t.vPA)("none"),this.orientation=(0,t.hFB)(this.options.orientation),this.visibility=(0,t.hFB)(this.options.visibility),this.buttons=(0,t.hFB)(this.options.buttons,{transform:t.L39}),this.disableInteraction=(0,t.hFB)(this.options.disableInteraction,{transform:t.L39}),this.disableSensor=(0,t.hFB)(this.options.disableSensor,{transform:t.L39}),this.sensorThrottleTime=(0,t.hFB)(this.options.sensorThrottleTime,{transform:t.Udg}),this.viewportDimension=(0,t.vPA)({contentHeight:0,contentWidth:0,offsetHeight:0,offsetWidth:0}),this.state=(0,t.EWP)(()=>{let e=!1,i=!1,a=!1,M=!1;const x=this.orientation(),L=this.visibility(),R=this.viewportDimension();return("auto"===x||"vertical"===x)&&(a=R.contentHeight>R.offsetHeight,e="visible"===L||a),("auto"===x||"horizontal"===x)&&(M=R.contentWidth>R.offsetWidth,i="visible"===L||M),{verticalUsed:e,horizontalUsed:i,isVerticallyScrollable:a,isHorizontallyScrollable:M}}),this.isVerticallyScrollable=(0,t.EWP)(()=>this.state().isVerticallyScrollable),this.isHorizontallyScrollable=(0,t.EWP)(()=>this.state().isHorizontallyScrollable),this.verticalUsed=(0,t.EWP)(()=>this.state().verticalUsed),this.horizontalUsed=(0,t.EWP)(()=>this.state().horizontalUsed),this.trackScrollDuration=this.options.trackScrollDuration,this.appearance=this.options.appearance,this.position=this.options.position,this.trackClass=this.options.trackClass,this.thumbClass=this.options.thumbClass,this.buttonClass=this.options.thumbClass,this.afterInit=new t.bkB,this.afterUpdate=new t.bkB,this.viewport=new Be}ngOnInit(){(0,t.N4e)(this.injector,()=>{this.direction=(0,kt.ot)(this.dir.change.pipe((0,k.T)(()=>this.dir.value)),{initialValue:this.dir.value}),(0,t.QZP)(e=>{this.disableSensor()?this.sizeChangeSub?.unsubscribe():this.platform.isBrowser&&this.viewport.initialized()&&(this.sizeChangeSub?.unsubscribe(),this.zone.runOutsideAngular(()=>{this.sizeChangeSub=oe({element:this.viewport.nativeElement,contentWrapper:this.viewport.contentWrapperElement,throttleDuration:this.sensorThrottleTime()}).pipe((0,f.M)(i=>this.update(i))).subscribe()})),e(()=>this.sizeChangeSub?.unsubscribe())})})}ngAfterViewInit(){this.platform.isBrowser&&this.disableSensor()&&requestAnimationFrame(()=>{this.update(It.AfterInit)})}update(e){this.updateCSSVariables(),this.zone.run(()=>{this.viewportDimension.set({contentHeight:this.viewport.contentHeight,contentWidth:this.viewport.contentWidth,offsetHeight:this.viewport.offsetHeight,offsetWidth:this.viewport.offsetWidth}),e===It.AfterInit?this.afterInit.emit():this.afterUpdate.emit()})}scrollTo(e){return this.smoothScroll.scrollTo(this.viewport.nativeElement,e)}scrollToElement(e,i){return this.smoothScroll.scrollToElement(this.viewport.nativeElement,e,i)}updateCSSVariables(){this.nativeElement.style.setProperty("--content-height",`${this.viewport.contentHeight}`),this.nativeElement.style.setProperty("--content-width",`${this.viewport.contentWidth}`),this.nativeElement.style.setProperty("--viewport-height",`${this.viewport.offsetHeight}`),this.nativeElement.style.setProperty("--viewport-width",`${this.viewport.offsetWidth}`)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,hostVars:14,hostBindings:function(i,a){2&i&&(t.BMQ("verticalUsed",a.verticalUsed())("horizontalUsed",a.horizontalUsed())("isVerticallyScrollable",a.isVerticallyScrollable())("isHorizontallyScrollable",a.isHorizontallyScrollable())("mobile",a.isMobile)("dir",a.direction())("position",a.position)("dragging",a.dragging())("appearance",a.appearance)("visibility",a.visibility())("orientation",a.orientation())("disableInteraction",a.disableInteraction()),t.AVh("ng-scrollbar",!0))},inputs:{orientation:[t.Mj6.SignalBased,"orientation"],visibility:[t.Mj6.SignalBased,"visibility"],buttons:[t.Mj6.SignalBased,"buttons"],disableInteraction:[t.Mj6.SignalBased,"disableInteraction"],disableSensor:[t.Mj6.SignalBased,"disableSensor"],sensorThrottleTime:[t.Mj6.SignalBased,"sensorThrottleTime"],trackScrollDuration:[t.Mj6.HasDecoratorInputTransform,"trackScrollDuration","trackScrollDuration",t.Udg],appearance:"appearance",position:"position",trackClass:"trackClass",thumbClass:"thumbClass",buttonClass:"buttonClass"},outputs:{afterInit:"afterInit",afterUpdate:"afterUpdate"},features:[t.Jv_([{provide:Lt,useExisting:o}]),t.GFd]})}return o})(),ie=(()=>{class o{constructor(){this.isBrowser=(0,y.UE)((0,t.WQX)(t.Agw)),this._polyfillUrl=(0,t.WQX)(ee,{optional:!0})||"https://flackr.github.io/scroll-timeline/dist/scroll-timeline.js",this.document=(0,t.WQX)(y.qQ),this.window=this.document.defaultView,this.scrollTimelinePolyfill=(0,t.vPA)(null),this.isBrowser&&(!this.window.ScrollTimeline||!CSS.supports("animation-timeline","scroll()"))&&this.initPolyfill()}initPolyfill(){var e=this;return(0,E.A)(function*(){try{const i=e.document.createElement("script");i.src=e._polyfillUrl,yield new Promise((a,M)=>{i.onload=a,i.onerror=M,e.document.head.appendChild(i)}),e.window.ScrollTimeline?e.scrollTimelinePolyfill.set(e.window.ScrollTimeline):console.error("[NgScrollbar]: ScrollTimeline is not attached to the window object.")}catch(i){console.error("[NgScrollbar]: Error loading ScrollTimeline script:",i)}})()}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();const Gt=new t.nKC("SCROLLBAR_CONTROL");let se=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o})}return o})(),Vt=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt),this.control=(0,t.WQX)(Gt),this.document=(0,t.WQX)(y.qQ),this.zone=(0,t.WQX)(t.SKi),this.nativeElement=(0,t.WQX)(t.aKT).nativeElement,(0,t.QZP)(e=>{this.cmp.disableInteraction()?this._pointerEventsSub?.unsubscribe():this.zone.runOutsideAngular(()=>{this._pointerEventsSub=this.pointerEvents.subscribe()}),e(()=>this._pointerEventsSub?.unsubscribe())})}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o})}return o})(),jt=(()=>{class o extends Vt{get trackMax(){return this.track.size-this.size}get clientRect(){return this.nativeElement.getBoundingClientRect()}get pointerEvents(){return(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document),(0,s.n)(e=>{let i,a;const M=(0,d.of)(e).pipe((0,f.M)(()=>{i=this.trackMax,a=this.control.viewportScrollMax,this.setDragging(this.control.axis)})),x=(0,n.R)(this.document,"pointermove").pipe(Nt()),L=(0,n.R)(this.document,"pointerup",{capture:!0}).pipe(Nt(),Wt(this.document),(0,f.M)(()=>this.setDragging("none")));return M.pipe((0,k.T)(R=>R[this.control.clientProperty]),(0,k.T)(R=>R-this.dragStartOffset),(0,s.n)(R=>x.pipe((0,k.T)(W=>W[this.control.clientProperty]),(0,k.T)(W=>W-this.track.offset),(0,k.T)(W=>a*(W-R)/i),(0,f.M)(W=>this.control.instantScrollTo(W,a)),(0,l.Q)(L))))}))}constructor(){(0,t.QZP)(()=>{const e=this.manager.scrollTimelinePolyfill();e&&!this._animation&&(this._animation=function Ye(o,F,e,i){return F.animate({translate:["var(--_scrollbar-thumb-transform-from)","var(--_scrollbar-thumb-transform-to)"]},{fill:"both",easing:"linear",timeline:new o({source:e,axis:i})})}(e,this.nativeElement,this.cmp.viewport.nativeElement,this.control.axis))}),super(),this.manager=(0,t.WQX)(ie),this.track=(0,t.WQX)(Rt)}setDragging(e){this.zone.run(()=>this.cmp.dragging.set(e))}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,features:[t.Vt3]})}return o})(),Rt=(()=>{class o extends Vt{get clientRect(){return this.nativeElement.getBoundingClientRect()}get pointerEvents(){const e=(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document)),i=(0,n.R)(this.document,"pointerup",{passive:!0}).pipe(Wt(this.document)),a=(0,n.R)(this.nativeElement,"pointermove",{passive:!0}).pipe((0,k.T)(L=>(this.currMousePosition=L[this.control.clientProperty],!0))),M=(0,n.R)(this.nativeElement,"pointerout",{passive:!0}).pipe((0,k.T)(()=>!1)),x=new g.t(!0);return e.pipe((0,s.n)(L=>((0,b.h)(a,M).pipe((0,p.F)(),(0,f.M)(R=>x.next(R)),(0,l.Q)(i)).subscribe(),(0,n.R)(this.thumb.nativeElement,"pointermove").pipe(Nt(),(0,l.Q)(i)).subscribe(),this.onTrackFirstClick(L).pipe((0,v.c)(200),(0,s.n)(()=>x.pipe((0,s.n)(R=>{const W=this.getScrollDirection(this.currMousePosition);return R&&this.scrollDirection===W?this.onTrackOngoingMousedown():D.w}),(0,r.j)(()=>{x.next(!0)}))),(0,l.Q)(i)))))}constructor(){(0,t.QZP)(e=>{this.cmp.disableSensor()?(this.update(),this.sizeChangeSub?.unsubscribe()):this.zone.runOutsideAngular(()=>{this.sizeChangeSub=oe({element:this.nativeElement,throttleDuration:this.cmp.sensorThrottleTime()}).pipe((0,f.M)(()=>this.update())).subscribe()}),e(()=>this.sizeChangeSub?.unsubscribe())}),super()}update(){this.cmp.nativeElement.style.setProperty(this.cssLengthProperty,`${this.size}`)}onTrackFirstClick(e){let i;if(this.currMousePosition=e[this.control.clientProperty],this.scrollDirection=this.getScrollDirection(this.currMousePosition),this.scrollMax=this.control.viewportScrollMax,"forward"===this.scrollDirection){const a=this.getScrollForwardIncrement();i=a>=this.scrollMax?this.scrollMax:a}else{const a=this.getScrollBackwardIncrement();i=a<=0?0:a}return this.scrollTo(i)}onTrackOngoingMousedown(){let e,i,a;({position:e,nextPosition:i,endPosition:a}="forward"===this.scrollDirection?this.getOnGoingScrollForward():this.getOnGoingScrollBackward());const M=this.isFinalStep(e);return this.scrollTo(M?a:i).pipe(u(()=>!M),(0,s.n)(()=>this.onTrackOngoingMousedown()))}getCurrPosition(e){return"forward"===this.scrollDirection?Math.abs(e):Math.abs(e+this.thumb.size-this.viewportScrollSize)}isFinalStep(e){const i=this.viewportScrollSize-this.thumb.size-this.getCurrPosition(e);return 0===Math.floor(i/this.viewportSize)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,contentQueries:function(i,a,M){if(1&i&&t.wni(M,jt,5),2&i){let x;t.mGM(x=t.lsd())&&(a.thumb=x.first)}},features:[t.Vt3]})}return o})(),We=(()=>{class o extends Rt{constructor(){super(...arguments),this.cssLengthProperty="--track-x-length"}get offset(){return this.clientRect.left}get size(){return this.clientRect.width}get viewportScrollSize(){return this.cmp.viewport.contentWidth}get viewportSize(){return this.cmp.viewport.offsetWidth}getScrollDirection(e){return"rtl"===this.cmp.direction()?e-this.thumb.offset<0?"forward":"backward":e-this.thumb.offset>0?"forward":"backward"}scrollTo(e){return(0,c.Sx)(this.cmp.scrollTo({left:e,duration:this.cmp.trackScrollDuration}))}getScrollForwardIncrement(){return"rtl"===this.cmp.direction()?this.scrollMax- -(this.control.viewportScrollOffset-this.viewportSize):this.control.viewportScrollOffset+this.viewportSize}getScrollBackwardIncrement(){return"rtl"===this.cmp.direction()?this.scrollMax- -(this.control.viewportScrollOffset+this.viewportSize):this.control.viewportScrollOffset-this.viewportSize}getOnGoingScrollForward(){if("rtl"===this.cmp.direction()){const i=this.control.viewportScrollOffset-this.viewportSize;return{position:i,nextPosition:this.scrollMax+i,endPosition:0}}const e=this.control.viewportScrollOffset+this.viewportSize;return{position:e,nextPosition:e,endPosition:this.scrollMax}}getOnGoingScrollBackward(){if("rtl"===this.cmp.direction()){const i=this.control.viewportScrollOffset+this.viewportSize;return{position:i,nextPosition:this.scrollMax+i,endPosition:this.scrollMax}}const e=this.control.viewportScrollOffset-this.viewportSize;return{position:e,nextPosition:e,endPosition:0}}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarTrackX",""]],standalone:!0,features:[t.Jv_([{provide:Rt,useExisting:o}]),t.Vt3]})}return o})(),Ue=(()=>{class o extends Rt{constructor(){super(...arguments),this.cssLengthProperty="--track-y-length"}get offset(){return this.clientRect.top}get size(){return this.clientRect.height}get viewportScrollSize(){return this.cmp.viewport.contentHeight}get viewportSize(){return this.cmp.viewport.offsetHeight}getScrollDirection(e){return e-this.thumb.offset>0?"forward":"backward"}scrollTo(e){return(0,c.Sx)(this.cmp.scrollTo({top:e,duration:this.cmp.trackScrollDuration}))}getScrollForwardIncrement(){return this.control.viewportScrollOffset+this.viewportSize}getScrollBackwardIncrement(){return this.control.viewportScrollOffset-this.viewportSize}getOnGoingScrollForward(){const e=this.control.viewportScrollOffset+this.viewportSize;return{position:e,nextPosition:e,endPosition:this.scrollMax}}getOnGoingScrollBackward(){const e=this.control.viewportScrollOffset-this.viewportSize;return{position:e,nextPosition:e,endPosition:0}}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarTrackY",""]],standalone:!0,features:[t.Jv_([{provide:Rt,useExisting:o}]),t.Vt3]})}return o})(),Ge=(()=>{class o extends jt{get offset(){return this.clientRect.left}get size(){return this.clientRect.width}get dragStartOffset(){return this.offset+this.document.defaultView.scrollX}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarThumbX",""]],standalone:!0,features:[t.Jv_([{provide:jt,useExisting:o}]),t.Vt3]})}return o})(),Ve=(()=>{class o extends jt{get offset(){return this.clientRect.top}get size(){return this.clientRect.height}get dragStartOffset(){return this.offset+this.document.defaultView.scrollY}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarThumbY",""]],standalone:!0,features:[t.Jv_([{provide:jt,useExisting:o}]),t.Vt3]})}return o})(),ne=(()=>{class o extends Vt{constructor(){super(...arguments),this.injector=(0,t.WQX)(t.zZn),this.afterFirstClickDelay=120,this.firstClickDuration=100,this.scrollBy=50,this.onGoingScrollBy=12,this.canScrollFunc={forward:(e,i)=>Math.abs(e)Math.abs(e)>0},this.scrollStepFunc={forward:(e,i)=>i+e,backward:(e,i)=>i-e},this.horizontalScrollStepFunc={rtl:{forward:(e,i,a)=>a+i-e,backward:(e,i,a)=>a+i+e},ltr:this.scrollStepFunc}}get pointerEvents(){const e=(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document)),i=(0,n.R)(this.document,"pointerup",{passive:!0}).pipe(Wt(this.document)),a=(0,n.R)(this.nativeElement,"pointerleave",{passive:!0}),M=(0,b.h)(i,a);return e.pipe((0,s.n)(()=>this.firstScrollStep().pipe((0,v.c)(this.afterFirstClickDelay),(0,s.n)(()=>this.onOngoingPointerdown()),(0,l.Q)(M))))}ngOnInit(){this.canScroll=this.canScrollFunc[this.scrollDirection],"x"===this.control.axis?(0,t.N4e)(this.injector,()=>{(0,t.QZP)(()=>{const e=this.cmp.direction();this.nextStep=this.horizontalScrollStepFunc[e][this.scrollDirection]})}):this.nextStep=this.scrollStepFunc[this.scrollDirection]}firstScrollStep(){const e=this.nextStep(this.scrollBy,this.control.viewportScrollOffset,this.control.viewportScrollMax);return this.control.scrollTo(e,this.firstClickDuration)}onGoingScrollStep(){const e=this.control.viewportScrollMax,i=this.nextStep(this.onGoingScrollBy,this.control.viewportScrollOffset,e);this.control.instantScrollTo(i,e)}onOngoingPointerdown(){return function w(o=0,F=N.E){return o<0&&(o=0),(0,m.O)(o,o,F)}(0,C.X).pipe(u(()=>this.canScroll(this.control.viewportScrollOffset,this.control.viewportScrollMax)),(0,f.M)(()=>this.onGoingScrollStep()))}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["button","scrollbarButton",""]],inputs:{scrollbarButton:"scrollbarButton",scrollDirection:"scrollDirection"},standalone:!0,features:[t.Vt3,t.aNF],attrs:Ne,decls:3,vars:0,consts:[[1,"ng-scrollbar-button-icon"],["viewBox","0 0 512 512","xmlns","http://www.w3.org/2000/svg"],["d","M413.1,327.3l-1.8-2.1l-136-156.5c-4.6-5.3-11.5-8.6-19.2-8.6c-7.7,0-14.6,3.4-19.2,8.6L101,324.9l-2.3,2.6 C97,330,96,333,96,336.2c0,8.7,7.4,15.8,16.6,15.8v0h286.8v0c9.2,0,16.6-7.1,16.6-15.8C416,332.9,414.9,329.8,413.1,327.3z"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.qSk(),t.j41(1,"svg",1),t.nrm(2,"path",2),t.k0s()())},styles:["[_nghost-%COMP%]{--scrollbar-button-size: 20px;position:relative;border:none;margin:0;padding:0;border-radius:0;appearance:none;background-color:var(--scrollbar-button-color)}[_nghost-%COMP%] svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-fill)}[_nghost-%COMP%]:hover{background:var(--scrollbar-button-hover-color)}[_nghost-%COMP%]:hover svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-hover-fill)}[_nghost-%COMP%]:active{background:var(--scrollbar-button-active-color)}[_nghost-%COMP%]:active svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-active-fill)}[scrollbarButton=top][_nghost-%COMP%], [scrollbarButton=start][_nghost-%COMP%]{order:1}[scrollbarButton=bottom][_nghost-%COMP%], [scrollbarButton=end][_nghost-%COMP%]{order:3}[scrollbarButton=top][_nghost-%COMP%], [scrollbarButton=bottom][_nghost-%COMP%]{width:100%;height:var(--scrollbar-button-size)}[scrollbarButton=start][_nghost-%COMP%], [scrollbarButton=end][_nghost-%COMP%]{width:var(--scrollbar-button-size);height:100%}[scrollbarButton=bottom][_nghost-%COMP%]{--_button-rotate: 180deg}[scrollbarButton=start][_nghost-%COMP%]{--_button-rotate: -90deg}[scrollbarButton=start][_nghost-%COMP%] .ng-scrollbar-button-icon[_ngcontent-%COMP%]{writing-mode:vertical-lr}[scrollbarButton=end][_nghost-%COMP%]{--_button-rotate: 90deg}[scrollbarButton=end][_nghost-%COMP%] .ng-scrollbar-button-icon[_ngcontent-%COMP%]{writing-mode:vertical-rl}.ng-scrollbar-button-icon[_ngcontent-%COMP%]{rotate:var(--_button-rotate);display:flex;place-content:center;place-items:center;width:100%;height:100%}"],changeDetection:0})}return o})(),$e=(()=>{class o extends se{constructor(){super(...arguments),this.clientProperty="clientY",this.axis="y"}get viewportScrollMax(){return this.cmp.viewport.scrollMaxY}get viewportScrollOffset(){return this.cmp.viewport.scrollTop}scrollTo(e,i){return(0,c.Sx)(this.cmp.scrollTo({top:e,duration:i}))}instantScrollTo(e){this.cmp.viewport.scrollYTo(e)}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbar-y"]],standalone:!0,features:[t.Jv_([{provide:Gt,useExisting:o}]),t.Vt3,t.aNF],decls:6,vars:7,consts:[["sticky",""],[1,"ng-scrollbar-sticky"],[1,"ng-scrollbar-track-wrapper"],["scrollbarTrackY",""],["scrollbarThumbY",""],["scrollbarButton","top","scrollDirection","backward"],["scrollbarButton","bottom","scrollDirection","forward"]],template:function(i,a){1&i&&(t.j41(0,"div",1,0)(2,"div",2)(3,"div",3),t.nrm(4,"div",4),t.k0s(),t.DNE(5,Oe,2,6),t.k0s()()),2&i&&(t.R7$(3),t.ZvI("ng-scrollbar-track ",a.cmp.trackClass,""),t.R7$(),t.ZvI("ng-scrollbar-thumb ",a.cmp.thumbClass,""),t.R7$(),t.vxM(5,a.cmp.buttons()?5:-1))},dependencies:[Ue,Ve,ne],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}.ng-scrollbar-sticky[_ngcontent-%COMP%]{top:calc(var(--_scrollbar-wrapper-top) * 1px);left:calc(var(--_scrollbar-wrapper-left) * 1px);right:calc(var(--_scrollbar-wrapper-right) * 1px);height:calc(var(--_scrollbar-wrapper-height) * 1px);width:calc(var(--_scrollbar-wrapper-width) * 1px);position:sticky;z-index:100;opacity:var(--_scrollbar-hover-opacity);transition:var(--_scrollbar-opacity-transition)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{touch-action:none;-webkit-user-select:none;user-select:none;top:var(--_scrollbar-track-top);bottom:var(--_scrollbar-track-bottom);right:var(--_scrollbar-track-right);left:var(--_scrollbar-track-left);pointer-events:var(--_scrollbar-pointer-events);transition:var(--scrollbar-track-wrapper-transition);position:absolute;overflow:hidden;display:flex;place-items:center}.ng-scrollbar-track[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;background-color:var(--scrollbar-track-color);transition:var(--scrollbar-track-transition);border-radius:var(--scrollbar-border-radius);cursor:default;z-index:1;order:2}.ng-scrollbar-thumb[_ngcontent-%COMP%]{box-sizing:border-box;position:absolute;transition:var(--scrollbar-thumb-transition);border-radius:var(--scrollbar-border-radius);height:var(--_thumb-height);width:var(--_thumb-width);animation-name:_ngcontent-%COMP%_scrollbarThumbAnimation;animation-duration:1ms;animation-timing-function:linear}@keyframes _ngcontent-%COMP%_scrollbarThumbAnimation{0%{translate:var(--_scrollbar-thumb-transform-from)}to{translate:var(--_scrollbar-thumb-transform-to)}}","[_nghost-%COMP%]{--_scrollbar-wrapper-top: 0;--_scrollbar-wrapper-left: var(--_scrollbar-wrapper-y-left);--_scrollbar-wrapper-right: var(--_scrollbar-wrapper-y-right);--_scrollbar-wrapper-height: var(--viewport-height);--_scrollbar-wrapper-width: var(--_scrollbar-thickness);--_scrollbar-track-top: var(--_vertical-top);--_scrollbar-track-bottom: var(--_vertical-bottom);--_scrollbar-track-right: var(--_vertical-right);--_scrollbar-track-left: var(--_vertical-left);--_thumb-height: calc(var(--thumb-y-length) * 1px);--_thumb-width: 100%;--_scrollbar-thumb-transform-from: 0 0;--_scrollbar-thumb-transform-to: 0 calc(var(--_scrollbar-y-thumb-transform-to-value) * 1px)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{width:var(--_track-y-thickness);flex-direction:column}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]:hover{--_track-y-thickness: var(--_scrollbar-hover-thickness-px);--_thumb-y-color: var(--scrollbar-thumb-hover-color)}.ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-timeline:var(--_animation-timeline-y);min-height:calc(var(--scrollbar-thumb-min-size) * 1px);display:var(--_vertical-thumb-display);background-color:var(--_thumb-y-color)}"],changeDetection:0})}return o})(),He=(()=>{class o extends se{get viewportScrollMax(){return this.cmp.viewport.scrollMaxX}get viewportScrollOffset(){return this.cmp.viewport.scrollLeft}constructor(){(0,t.QZP)(()=>{this.handlePosition="rtl"===this.cmp.direction()?(e,i)=>-(i-e):e=>e}),super(),this.manager=(0,t.WQX)(ie),this.clientProperty="clientX",this.axis="x"}scrollTo(e,i){return(0,c.Sx)(this.cmp.scrollTo({left:e,duration:i}))}instantScrollTo(e,i){this.cmp.viewport.scrollXTo(this.handlePosition(e,i))}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbar-x"]],hostVars:1,hostBindings:function(i,a){2&i&&t.BMQ("dir",a.cmp.direction())},standalone:!0,features:[t.Jv_([{provide:Gt,useExisting:o}]),t.Vt3,t.aNF],decls:6,vars:7,consts:[["sticky",""],[1,"ng-scrollbar-sticky"],[1,"ng-scrollbar-track-wrapper"],["scrollbarTrackX",""],["scrollbarThumbX",""],["scrollbarButton","start","scrollDirection","backward"],["scrollbarButton","end","scrollDirection","forward"]],template:function(i,a){1&i&&(t.j41(0,"div",1,0)(2,"div",2)(3,"div",3),t.nrm(4,"div",4),t.k0s(),t.DNE(5,Te,2,6),t.k0s()()),2&i&&(t.R7$(3),t.ZvI("ng-scrollbar-track ",a.cmp.trackClass,""),t.R7$(),t.ZvI("ng-scrollbar-thumb ",a.cmp.thumbClass,""),t.R7$(),t.vxM(5,a.cmp.buttons()?5:-1))},dependencies:[We,Ge,ne],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}.ng-scrollbar-sticky[_ngcontent-%COMP%]{top:calc(var(--_scrollbar-wrapper-top) * 1px);left:calc(var(--_scrollbar-wrapper-left) * 1px);right:calc(var(--_scrollbar-wrapper-right) * 1px);height:calc(var(--_scrollbar-wrapper-height) * 1px);width:calc(var(--_scrollbar-wrapper-width) * 1px);position:sticky;z-index:100;opacity:var(--_scrollbar-hover-opacity);transition:var(--_scrollbar-opacity-transition)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{touch-action:none;-webkit-user-select:none;user-select:none;top:var(--_scrollbar-track-top);bottom:var(--_scrollbar-track-bottom);right:var(--_scrollbar-track-right);left:var(--_scrollbar-track-left);pointer-events:var(--_scrollbar-pointer-events);transition:var(--scrollbar-track-wrapper-transition);position:absolute;overflow:hidden;display:flex;place-items:center}.ng-scrollbar-track[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;background-color:var(--scrollbar-track-color);transition:var(--scrollbar-track-transition);border-radius:var(--scrollbar-border-radius);cursor:default;z-index:1;order:2}.ng-scrollbar-thumb[_ngcontent-%COMP%]{box-sizing:border-box;position:absolute;transition:var(--scrollbar-thumb-transition);border-radius:var(--scrollbar-border-radius);height:var(--_thumb-height);width:var(--_thumb-width);animation-name:_ngcontent-%COMP%_scrollbarThumbAnimation;animation-duration:1ms;animation-timing-function:linear}@keyframes _ngcontent-%COMP%_scrollbarThumbAnimation{0%{translate:var(--_scrollbar-thumb-transform-from)}to{translate:var(--_scrollbar-thumb-transform-to)}}","[_nghost-%COMP%]{--_scrollbar-wrapper-top: var(--_scrollbar-wrapper-x-top);--_scrollbar-wrapper-left: 0;--_scrollbar-wrapper-right: 0;--_scrollbar-wrapper-height: var(--_scrollbar-thickness);--_scrollbar-wrapper-width: var(--viewport-width);--_scrollbar-track-top: var(--_horizontal-top);--_scrollbar-track-bottom: var(--_horizontal-bottom);--_scrollbar-track-right: var(--_horizontal-right);--_scrollbar-track-left: var(--_horizontal-left);--_thumb-height: 100%;--_thumb-width: calc(var(--thumb-x-length) * 1px);--_scrollbar-thumb-transform-from: 0;--_scrollbar-thumb-transform-to: calc(var(--_scrollbar-x-thumb-transform-to-value) * 1px)}[_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=start][_ngcontent-%COMP%]{_--button-rotate:90}[_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=end][_ngcontent-%COMP%]{_--button-rotate:-90}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_scrollbarThumbRTLAnimation;will-change:right;--_scrollbar-thumb-transform-to: calc(var(--_scrollbar-x-thumb-transform-to-value) * -1px)}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=start][_ngcontent-%COMP%]{--_button-rotate: 90deg}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=end][_ngcontent-%COMP%]{--_button-rotate: -90deg}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{height:var(--_track-x-thickness);flex-direction:row}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]:hover{--_track-x-thickness: var(--_scrollbar-hover-thickness-px);--_thumb-x-color: var(--scrollbar-thumb-hover-color)}.ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-timeline:var(--_animation-timeline-x);min-width:calc(var(--scrollbar-thumb-min-size) * 1px);display:var(--_horizontal-thumb-display);background-color:var(--_thumb-x-color)}@keyframes _ngcontent-%COMP%_scrollbarThumbRTLAnimation{0%{right:var(--_scrollbar-thumb-transform-from)}to{right:calc(var(--_scrollbar-thumb-transform-to) * -1)}}"],changeDetection:0})}return o})(),ae=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbars"]],standalone:!0,features:[t.aNF],decls:2,vars:2,template:function(i,a){1&i&&t.DNE(0,Ie,1,0,"scrollbar-y")(1,Le,1,0,"scrollbar-x"),2&i&&(t.vxM(0,a.cmp.verticalUsed()?0:-1),t.R7$(),t.vxM(1,a.cmp.horizontalUsed()?1:-1))},dependencies:[He,$e],styles:["[_nghost-%COMP%]{display:contents}"],changeDetection:0})}return o})(),le=(()=>{class o extends Ae{ngOnInit(){this.viewport.init(this.nativeElement,this.contentWrapper.nativeElement),super.ngOnInit()}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["ng-scrollbar",3,"externalViewport",""]],viewQuery:function(i,a){if(1&i&&(t.GBs(je,7),t.GBs(ae,7)),2&i){let M;t.mGM(M=t.lsd())&&(a.contentWrapper=M.first),t.mGM(M=t.lsd())&&(a._scrollbars=M.first)}},exportAs:["ngScrollbar"],standalone:!0,features:[t.Jv_([{provide:Lt,useExisting:o}]),t.nM4([ze]),t.Vt3,t.aNF],ngContentSelectors:Re,decls:4,vars:0,consts:[["contentWrapper",""]],template:function(i,a){1&i&&(t.NAR(),t.j41(0,"div",null,0),t.SdG(2),t.nrm(3,"scrollbars"),t.k0s())},dependencies:[ae],styles:["[_nghost-%COMP%]{display:block;position:relative;max-height:100%;max-width:100%;--scrollbar-border-radius: 0px;--scrollbar-thickness: 5;--scrollbar-offset: 0;--scrollbar-track-wrapper-transition: width 60ms linear, height 60ms linear;--scrollbar-track-color: transparent;--scrollbar-track-transition: none;--scrollbar-thumb-color: rgb(0 0 0 / 20%);--scrollbar-thumb-hover-color: var(--scrollbar-thumb-color);--scrollbar-hover-thickness: var(--scrollbar-thickness);--scrollbar-thumb-transition: none;--scrollbar-thumb-min-size: 20;--scrollbar-button-color: var(--scrollbar-thumb-color);--scrollbar-button-hover-color: var(--scrollbar-button-color);--scrollbar-button-active-color: var(--scrollbar-button-hover-color);--scrollbar-button-fill: white;--scrollbar-button-hover-fill: var(--scrollbar-button-fill);--scrollbar-button-active-fill: var(--scrollbar-button-hover-fill);--scrollbar-hover-opacity-transition-enter-duration: 0;--scrollbar-hover-opacity-transition-leave-duration: .4s;--scrollbar-hover-opacity-transition-leave-delay: 1s;--scrollbar-overscroll-behavior: initial;--scrollbar-mobile-overscroll-behavior: none;--_scrollbar-thickness: calc(var(--scrollbar-thickness) + var(--scrollbar-offset) * 2);--_scrollbar-pointer-events: auto;--_scrollbar-offset-px: calc(var(--scrollbar-offset) * 1px);--_scrollbar-thickness-px: calc(var(--scrollbar-thickness) * 1px);--_scrollbar-hover-thickness-px: calc(var(--scrollbar-hover-thickness) * 1px);--_viewport-padding-top: 0;--_viewport-padding-bottom: 0;--_viewport-padding-left: 0;--_viewport-padding-right: 0;--_horizontal-thumb-display: block;--_vertical-thumb-display: block;--_viewport-overflow: auto;--_thumb-x-color: var(--scrollbar-thumb-color);--_thumb-y-color: var(--scrollbar-thumb-color);--_track-y-thickness: var(--_scrollbar-thickness-px);--_track-x-thickness: var(--_scrollbar-thickness-px);--_viewport-overscroll-behavior: var(--scrollbar-overscroll-behavior);--_scrollbar-content-width: fit-content}[_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-offset-px);--_vertical-bottom: var(--_scrollbar-offset-px);--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-offset-px);--_horizontal-top: initial;--_horizontal-bottom: var(--_scrollbar-offset-px);--_scrollbar-wrapper-x-top: calc(var(--viewport-height) - var(--_scrollbar-thickness));--reached-offset: 1px;--reached-offset-top: var(--reached-offset);--reached-offset-bottom: var(--reached-offset);--reached-offset-start: var(--reached-offset);--reached-offset-end: var(--reached-offset);--_viewport_scroll-timeline: unset;--_animation-timeline-y: unset;--_scrollbar-y-thumb-transform-to-value: unset;--_scrollbar-x-thumb-transform-to-value: unset;--_scrollbar-thumb-transform-from: unset;--_scrollbar-thumb-transform-to: unset}.ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{min-height:100%;min-width:100%;height:100%;max-height:100%;max-width:100%}.ng-scroll-viewport[_nghost-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{position:relative;overflow:var(--_viewport-overflow);scroll-timeline:var(--_viewport_scroll-timeline);box-sizing:border-box!important;-webkit-overflow-scrolling:touch;will-change:scroll-position;-webkit-user-select:var(--_viewport-user-select);user-select:var(--_viewport-user-select);overscroll-behavior:var(--_viewport-overscroll-behavior)}.ng-scroll-viewport[_nghost-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport>.ng-scroll-content{width:var(--_scrollbar-content-width);z-index:1;min-width:100%;min-height:100%;contain:content;padding:var(--_viewport-padding-top, 0) var(--_viewport-padding-right, 0) var(--_viewport-padding-bottom, 0) var(--_viewport-padding-left, 0)}.ng-scroll-viewport[_nghost-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{scrollbar-width:none!important}.ng-scroll-viewport[_nghost-%COMP%]::-webkit-scrollbar, .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport::-webkit-scrollbar{display:none!important}[position=invertX][_nghost-%COMP%], [position=invertAll][_nghost-%COMP%]{--_horizontal-top: var(--_scrollbar-offset-px);--_horizontal-bottom: initial;--_scrollbar-wrapper-x-top: 0}[dir=ltr][_nghost-%COMP%]{--_scrollbar-wrapper-y-right: initial;--_vertical-right: var(--_scrollbar-offset-px);--_vertical-left: initial;--_scrollbar-wrapper-y-left: calc(var(--viewport-width) - var(--_scrollbar-thickness))}[dir=ltr][position=invertY][_nghost-%COMP%], [dir=ltr][position=invertAll][_nghost-%COMP%]{--_vertical-left: var(--_scrollbar-offset-px);--_vertical-right: initial;--_scrollbar-wrapper-y-left: 0}[dir=rtl][_nghost-%COMP%]{--_scrollbar-wrapper-y-left: initial;--_vertical-left: var(--_scrollbar-offset-px);--_vertical-right: initial;--_scrollbar-wrapper-y-right: calc(var(--viewport-width) - var(--_scrollbar-thickness))}[dir=rtl][position=invertY][_nghost-%COMP%], [dir=rtl][position=invertAll][_nghost-%COMP%]{--_vertical-right: var(--_scrollbar-offset-px);--_vertical-left: initial;--_scrollbar-wrapper-y-right: 0}[verticalUsed=true][horizontalUsed=true][_nghost-%COMP%]{--_scrollbar-thickness-margin: calc(var(--scrollbar-thickness) + var(--scrollbar-offset) * 3);--_scrollbar-thickness-margin-px: calc(var(--_scrollbar-thickness-margin) * 1px)}[horizontalUsed=true][_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-offset-px);--_vertical-bottom: var(--_scrollbar-thickness-margin-px)}[horizontalUsed=true][position=invertX][_nghost-%COMP%], [horizontalUsed=true][position=invertAll][_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-thickness-margin-px);--_vertical-bottom: var(--_scrollbar-offset-px)}[verticalUsed=true][dir=ltr][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-thickness-margin-px)}[verticalUsed=true][dir=rtl][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-thickness-margin-px);--_horizontal-right: var(--_scrollbar-offset-px)}[verticalUsed=true][position=invertY][dir=ltr][_nghost-%COMP%], [verticalUsed=true][position=invertAll][dir=ltr][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-thickness-margin-px);--_horizontal-right: var(--_scrollbar-offset-px)}[verticalUsed=true][position=invertY][dir=rtl][_nghost-%COMP%], [verticalUsed=true][position=invertAll][dir=rtl][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-thickness-margin-px)}[appearance=native][verticalUsed=true][dir=ltr][_nghost-%COMP%]{--_viewport-padding-left: 0;--_viewport-padding-right: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][verticalUsed=true][dir=rtl][_nghost-%COMP%]{--_viewport-padding-left: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-right: 0}[appearance=native][verticalUsed=true][position=invertY][dir=ltr][_nghost-%COMP%], [appearance=native][verticalUsed=true][position=invertAll][dir=ltr][_nghost-%COMP%]{--_viewport-padding-left: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-right: 0}[appearance=native][verticalUsed=true][position=invertY][dir=rtl][_nghost-%COMP%], [appearance=native][verticalUsed=true][position=invertAll][dir=rtl][_nghost-%COMP%]{--_viewport-padding-left: 0;--_viewport-padding-right: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][horizontalUsed=true][_nghost-%COMP%]{--_viewport-padding-top: 0;--_viewport-padding-bottom: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][horizontalUsed=true][position=invertX][_nghost-%COMP%], [appearance=native][horizontalUsed=true][position=invertAll][_nghost-%COMP%]{--_viewport-padding-top: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-bottom: 0}[visibility=hover][_nghost-%COMP%]{--_scrollbar-hover-opacity: 0;--_scrollbar-opacity-transition: opacity var(--scrollbar-hover-opacity-transition-leave-duration) var(--scrollbar-hover-opacity-transition-leave-delay)}[visibility=hover][_nghost-%COMP%]:hover, [visibility=hover][_nghost-%COMP%]:active, [visibility=hover][_nghost-%COMP%]:focus{--_scrollbar-hover-opacity: 1;--_scrollbar-opacity-transition: opacity var(--scrollbar-hover-opacity-transition-enter-duration)}[dir=ltr][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{left:0;right:unset}[dir=ltr][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{right:0;left:unset}[dir=rtl][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{right:0;left:unset}[dir=rtl][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{left:0;right:unset}[_nghost-%COMP%] .ng-scroll-reached-wrapper, [_nghost-%COMP%] .scroll-reached-trigger-element{position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:-9999}[_nghost-%COMP%] .ng-scroll-reached-wrapper{visibility:hidden;inset:0;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}[_nghost-%COMP%] [isHorizontallyScrollable=false] .scroll-reached-trigger-element[trigger=end]{display:none}[_nghost-%COMP%] [isVerticallyScrollable=false] .scroll-reached-trigger-element[trigger=bottom]{display:none}[_nghost-%COMP%] .scroll-reached-trigger-element{background:red}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=top], [_nghost-%COMP%] .scroll-reached-trigger-element[trigger=bottom]{left:0;right:0}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start], [_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{top:0;bottom:0}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=top]{top:0;height:var(--reached-offset-top)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=bottom]{bottom:0;height:var(--reached-offset-bottom)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{width:var(--reached-offset-start)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{width:var(--reached-offset-end)}[verticalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerY;--_animation-timeline-y: --scrollerY;--_viewport_scroll-timeline: --scrollerY y;--_scrollbar-y-thumb-transform-to-value: calc(var(--track-y-length) - var(--thumb-y-length))}[horizontalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerX;--_animation-timeline-x: --scrollerX;--_viewport_scroll-timeline: --scrollerX x;--_scrollbar-x-thumb-transform-to-value: calc(var(--track-x-length) - var(--thumb-x-length))}[verticalUsed=true][horizontalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerX, --scrollerY;--_viewport_scroll-timeline: --scrollerX x, --scrollerY y}[orientation=vertical][_nghost-%COMP%]{--_viewport-overflow: hidden auto;--_scrollbar-content-width: unset}[orientation=horizontal][_nghost-%COMP%]{--_viewport-overflow: auto hidden}[disableInteraction=true][_nghost-%COMP%]{--_scrollbar-pointer-events: none}[isVerticallyScrollable=false][_nghost-%COMP%]{--_vertical-thumb-display: none}[isHorizontallyScrollable=false][_nghost-%COMP%]{--_horizontal-thumb-display: none}[dragging=x][_nghost-%COMP%], [dragging=y][_nghost-%COMP%]{--_viewport-user-select: none}[horizontalUsed=true][_nghost-%COMP%]{--thumb-x-length: max(calc(var(--viewport-width) * var(--track-x-length) / var(--content-width)), var(--scrollbar-thumb-min-size))}[verticalUsed=true][_nghost-%COMP%]{--thumb-y-length: max(calc(var(--viewport-height) * var(--track-y-length) / var(--content-height)), var(--scrollbar-thumb-min-size))}[dragging=x][_nghost-%COMP%]{--_track-x-thickness: calc(var(--scrollbar-hover-thickness) * 1px);--_thumb-x-color: var(--scrollbar-thumb-hover-color)}[dragging=y][_nghost-%COMP%]{--_track-y-thickness: calc(var(--scrollbar-hover-thickness) * 1px);--_thumb-y-color: var(--scrollbar-thumb-hover-color)}[mobile=true][_nghost-%COMP%]{--_viewport-overscroll-behavior: var(--scrollbar-mobile-overscroll-behavior)}"],changeDetection:0})}return o})(),Qe=(()=>{class o{static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275mod=t.$C({type:o});static#o=this.\u0275inj=t.G2t({})}return o})();var ce=X(93331),he=X(38117);function de(o,F){const e=/(\d+)|(\D+)/g,i=/\d+/,M=F.value,x=String(o.value).match(e),L=String(M).match(e);for(;x.length&&L.length;){const R=x.shift(),W=L.shift();if(i.test(R)||i.test(W)){if(!i.test(R))return-1;if(!i.test(W))return 1;if(R!==W)return Number(W)-Number(R)}else if(R!==W)return W.localeCompare(R)}return L.length-x.length}var Ct=X(3366),it=X(19664),$t=X(45794);let Ze=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqInter(){this.apiService.getReqInter().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-network-inter"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.inter.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.inter.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqInter()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.inter.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();var pe=X(28990),ue=X(21264);function Ke(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.nrm(11,"div",9),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.k0s()),2&o){const e=t.XpG(2);t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.detail.visu.subtitle"),t.npT),t.R7$(5),t.Y8G("chart",e.chart)}}function qe(o,F){if(1&o&&(t.j41(0,"div",2),t.EFF(1,"\n "),t.DNE(2,Ke,15,4,"div",3),t.EFF(3,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(2),t.Y8G("ngIf",e.chart)}}function Je(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.nrm(11,"div",10),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.detail.visu.subtitle"),t.npT),t.R7$(5),t.Y8G("chart",e.chart2)}}let to=(()=>{class o extends pe.U{apiService;translate;timeStamp;chart;chart2;devices$;totalTx;totalFail;plugin;constructor(e,i){super(),this.apiService=e,this.translate=i}ngOnInit(){this.devices$=this.apiService.getDevices(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}ngOnChanges(e){e.timeStamp.currentValue!==e.timeStamp.previousValue&&this.apiService.getNwkStatsByTimeStamp(this.timeStamp).subscribe(i=>{this.createChart(i),this.createChart2(i)})}createChart(e){const i=[],a=[],M=[],x=[];e.forEach(W=>{const yt=W.Channels;yt.sort((ut,wt)=>Number(ut.Channel)-Number(wt.Channel)),W.Channels=yt}),e[0].Channels.forEach(W=>{a.push(W.Channel)}),e.forEach(W=>{const yt=[];let ut=0;W.Channels.forEach(wt=>{yt.push(wt.Level),x[ut]=x[ut]?Number(x[ut])+Number(wt.Level):Number(wt.Level),ut++}),i.push({name:W.ZDeviceName?W.ZDeviceName:W._NwkId,data:yt})}),x.forEach(W=>{W/=e.length,W=Number(W).toFixed(2),M.push(Number(W))});const L=i;L.push({name:"Average",data:M,type:"spline",marker:{lineWidth:2,lineColor:ue.getOptions().colors[3],fillColor:"white"}});const R=new et.t1({chart:{type:"column",height:"20%"},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:a},yAxis:{title:{text:this.translate.instant("network.stats.detail.visu.chart.y-axis")}},credits:{enabled:!1},series:L});this.chart=R,this.subs.add(R.ref$.subscribe())}createChart2(e){const i=[],a=[];e.forEach(x=>{const L=x.Channels;L.sort((R,W)=>Number(R.Channel)-Number(W.Channel)),x.Channels=L}),e[0].Channels.forEach(x=>{a.push(x.Channel)}),e.forEach(x=>{const L=[];x.Channels.forEach(R=>{L.push(R.Level)}),i.push({name:x.ZDeviceName?x.ZDeviceName:x._NwkId,data:L,pointPlacement:"on"})});const M=new et.t1({chart:{height:"90%",polar:!0,type:"line"},pane:{},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:a,tickmarkPlacement:"on",lineWidth:0},yAxis:{gridLineInterpolation:"polygon",lineWidth:0,min:0},tooltip:{shared:!0,pointFormat:'{series.name}: {point.y:,.0f}
'},legend:{align:"left",verticalAlign:"bottom"},credits:{enabled:!1},series:i,responsive:{rules:[{condition:{maxWidth:600},chartOptions:{legend:{align:"center",verticalAlign:"bottom"},pane:{size:"80%"}}}]}});this.chart2=M,this.subs.add(M.ref$.subscribe())}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-detail-nwk-stat"]],inputs:{timeStamp:"timeStamp"},features:[t.Vt3,t.OA$],decls:10,vars:2,consts:[[1,"row","row-cols-1","row-cols-md-2","g-4","mt-1"],["class","col",4,"ngIf"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.stats.detail.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"text-center",3,"chart"],[3,"chart"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.DNE(2,qe,4,1,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.DNE(6,Je,15,4,"div",3),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n"),t.k0s(),t.EFF(9,"\n")),2&i&&(t.R7$(2),t.Y8G("ngIf",!(null!=a.plugin&&a.plugin.Zigpy)),t.R7$(4),t.Y8G("ngIf",a.chart2))},dependencies:[y.bT,it.Mm,et.S6,it.D9]})}return o})(),eo=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqFull(){this.apiService.getNwkFull().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-network-full"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.full.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.full.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqFull()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.full.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();function oo(o,F){if(1&o){const e=t.RV6();t.j41(0,"span",14),t.EFF(1,"\n "),t.j41(2,"div",15),t.EFF(3,"\n "),t.j41(4,"button",16),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.nwkStatByDate(a.value))}),t.EFF(5),t.nI1(6,"date"),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"div",15),t.EFF(10,"\n "),t.j41(11,"button",17),t.nI1(12,"translate"),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.deleteNwkStatByDate(a.value))}),t.EFF(13,"\n "),t.nrm(14,"i",18),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.k0s(),t.EFF(17,"\n "),t.k0s()}if(2&o){const e=F.$implicit;t.R7$(5),t.SpI("\n ",t.i5U(6,2,1e3*e.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.R7$(6),t.FS9("title",t.bMT(12,5,"network.stats.visu.delete.button"))}}function ro(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.j41(11,"div",9),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"ng-scrollbar",11),t.EFF(16,"\n "),t.j41(17,"div",12),t.EFF(18,"\n "),t.DNE(19,oo,18,7,"span",13),t.nI1(20,"keyvalue"),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=F.ngIf,i=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.subtitle"),t.npT),t.R7$(13),t.Y8G("ngForOf",t.i5U(20,4,e,i.sortDesc))}}function io(o,F){1&o&&t.nrm(0,"app-req-network-full")}function so(o,F){if(1&o&&(t.j41(0,"div"),t.nrm(1,"app-detail-nwk-stat",19),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("timeStamp",e.timeStamp)}}let no=(()=>{class o{apiService;cdr;stats$;listSubject$=new Qt.B;timeStamp;plugin;constructor(e,i){this.apiService=e,this.cdr=i}ngOnInit(){this.stats$=this.apiService.getNwkStats(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}sortDesc(e,i){return de(e,i)}nwkStatByDate(e){this.timeStamp=e}deleteNwkStatByDate(e){this.apiService.deleteNwkStatsByTimeStamp(e).subscribe(()=>{this.stats$=this.apiService.getNwkStats(),this.cdr.detectChanges()})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(t.gRc))};static \u0275cmp=t.VBU({type:o,selectors:[["app-nwk-stats"]],decls:17,vars:5,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.stats.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","row d-flex align-items-center",4,"ngFor","ngForOf"],[1,"row","d-flex","align-items-center"],[1,"col-sm"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"click","title"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.j41(2,"div",1),t.EFF(3,"\n "),t.DNE(4,ro,28,7,"div",2),t.nI1(5,"async"),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",1),t.nrm(9,"app-req-network-inter"),t.k0s(),t.EFF(10,"\n "),t.j41(11,"div",1),t.DNE(12,io,1,0,"app-req-network-full",3),t.k0s(),t.EFF(13,"\n"),t.k0s(),t.EFF(14,"\n"),t.DNE(15,so,2,1,"div",3),t.EFF(16,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",t.bMT(5,3,a.stats$)),t.R7$(8),t.Y8G("ngIf",!(null!=a.plugin&&a.plugin.Zigpy)),t.R7$(3),t.Y8G("ngIf",a.timeStamp))},dependencies:[y.Sq,y.bT,it.Mm,le,Ze,to,eo,y.Jj,y.vh,y.lG,it.D9],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]})}return o})();var Ft=X(89417),fe=X(97013),Ht=X(46247),ao=X(5779);const lo=o=>({deviceSelected:o}),co=()=>[10,25,50];function ho(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.nrm(9,"div",8),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.topo.visu.subtitle"),t.npT),t.R7$(3),t.Y8G("chart",e.chart1)}}function po(o,F){if(1&o&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Name"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Model"),t.k0s(),t.EFF(11),t.k0s(),t.EFF(12,"\n ")),2&o){const e=F.item;t.R7$(5),t.SpI(" : ",e.ZDeviceName," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" :\n ",e.Model,"\n ")}}function uo(o,F){1&o&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"th",22),t.EFF(4),t.nI1(5,"translate"),t.nrm(6,"p-sortIcon",23),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"th",24),t.EFF(10),t.nI1(11,"translate"),t.nrm(12,"p-sortIcon",25),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.j41(15,"th",26),t.EFF(16),t.nI1(17,"translate"),t.nrm(18,"p-sortIcon",27),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th",28),t.EFF(22),t.nI1(23,"translate"),t.nrm(24,"p-sortIcon",29),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.j41(27,"th",30),t.EFF(28),t.nI1(29,"translate"),t.nrm(30,"p-sortIcon",31),t.EFF(31,"\n "),t.k0s(),t.EFF(32,"\n "),t.j41(33,"th",32),t.EFF(34),t.nI1(35,"translate"),t.nrm(36,"p-sortIcon",33),t.EFF(37,"\n "),t.k0s(),t.EFF(38,"\n "),t.k0s(),t.EFF(39,"\n ")),2&o&&(t.R7$(4),t.SpI("\n ",t.bMT(5,6,"network.topo.visu.network.relation.to"),""),t.R7$(6),t.SpI("\n ",t.bMT(11,8,"network.topo.visu.network.relation.weight"),""),t.R7$(6),t.SpI("\n ",t.bMT(17,10,"network.topo.visu.network.relation.model"),""),t.R7$(6),t.SpI("\n ",t.bMT(23,12,"network.topo.visu.network.relation.status"),""),t.R7$(6),t.SpI("\n ",t.bMT(29,14,"network.topo.visu.network.relation.health"),""),t.R7$(6),t.SpI("\n ",t.bMT(35,16,"network.topo.visu.network.relation.battery"),""))}function fo(o,F){if(1&o&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4),t.k0s(),t.EFF(5,"\n "),t.j41(6,"td"),t.EFF(7),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td"),t.EFF(13),t.k0s(),t.EFF(14,"\n "),t.j41(15,"td"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.j41(18,"td"),t.EFF(19),t.k0s(),t.EFF(20,"\n "),t.k0s()),2&o){const e=F.$implicit;t.R7$(4),t.SpI("\n ",e.to,"\n "),t.R7$(3),t.SpI("\n ",e.weight,"\n "),t.R7$(3),t.SpI("\n ",e.Model,"\n "),t.R7$(3),t.SpI("\n ",e.Status,"\n "),t.R7$(3),t.SpI("\n ",e.Health,"\n "),t.R7$(3),t.SpI("\n ",e.Battery,"\n ")}}function go(o,F){if(1&o&&(t.j41(0,"div",17),t.EFF(1,"\n "),t.j41(2,"div",2),t.EFF(3,"\n "),t.j41(4,"div",4),t.EFF(5,"\n "),t.nrm(6,"div",18),t.EFF(7,"\n "),t.j41(8,"div",6),t.EFF(9,"\n "),t.nrm(10,"p",7),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"p-table",19,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,uo,40,18,"ng-template",20),t.EFF(20,"\n "),t.DNE(21,fo,21,6,"ng-template",21),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=t.XpG(2);t.R7$(6),t.Y8G("translateParams",t.eq3(14,lo,e.selectedPoint.name)),t.R7$(4),t.Y8G("innerHTML",t.bMT(11,10,"network.topo.visu.network.relation.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,12,"TOTAL")),t.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(16,co))("value",e.relationsSelected)("rows",10)("paginator",!0)("scrollable",!0)}}function mo(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",9),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",10),t.EFF(10,"\n "),t.j41(11,"div"),t.EFF(12,"\n "),t.j41(13,"form",11),t.EFF(14,"\n "),t.nrm(15,"input",12),t.EFF(16,"\n "),t.j41(17,"ng-select",13),t.nI1(18,"translate"),t.EFF(19,"\n "),t.DNE(20,po,13,3,"ng-template",14),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.nrm(25,"div",15),t.EFF(26,"\n "),t.DNE(27,go,28,17,"div",16),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.k0s(),t.EFF(30,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,9,"network.topo.visu.network.subtitle"),t.npT),t.R7$(7),t.Y8G("formGroup",e.form),t.R7$(4),t.FS9("placeholder",t.bMT(18,11,"network.topo.visu.network.filter")),t.Y8G("items",e.devices)("multiple",!1)("closeOnSelect",!0)("searchable",!0),t.R7$(8),t.Y8G("chart",e.chart2),t.R7$(2),t.Y8G("ngIf",e.relationsSelected)}}let vo=(()=>{class o extends pe.U{apiService;translate;formBuilder;timeStamp;chart1;chart2;form;datas;devices;showDetail=!1;device;data;relationsSelected;selectedPoint;constructor(e,i,a){super(),this.apiService=e,this.translate=i,this.formBuilder=a}ngOnInit(){this.form=this.formBuilder.group({nodeToFilter:[null],detail:[null]}),this.apiService.getZDeviceName().subscribe(e=>{this.devices=e,this.devices.unshift({IEEE:"",MacCapa:[""],Model:"",Health:"",Status:"",WidgetList:[""],ZDeviceName:"Zigbee Coordinator",_NwkId:""})}),this.subs.sink=this.form.get("nodeToFilter").valueChanges.subscribe(e=>{this.createChart2(e)}),this.subs.add(this.form.get("detail").valueChanges.subscribe(()=>{const e=[];this.selectedPoint=this.chart2.ref.hoverPoint,this.selectedPoint.linksFrom.map(M=>M.options).map(M=>{const x=this.devices.find(L=>L.ZDeviceName===M.to||L._NwkId===M.to);e.push({to:M.to,from:M.from,weight:M.weight,Model:x.Model,Status:x.Status,Health:x.Health,Battery:x.Battery})}),this.selectedPoint.linksTo.map(M=>M.options).map(M=>{if(!e.some(x=>x.to===M.from)){const x=this.devices.find(L=>L.ZDeviceName===M.from||L._NwkId===M.from);e.push({to:M.from,from:M.from,weight:x.LQI,Model:x.Model,Status:x.Status,Health:x.Health,Battery:x.Battery})}}),this.relationsSelected=e}))}ngOnChanges(e){e.timeStamp.currentValue!==e.timeStamp.previousValue&&this.apiService.getTopologieByTimeStamp(this.timeStamp).subscribe(i=>{this.datas=i,this.createChart1(),this.createChart2()})}createChart1(){const e=this.datas.map(a=>{const M=Object.values(a);return M.splice(1,1),M}),i=new et.t1({chart:{type:"dependencywheel",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.chart.title")},credits:{enabled:!1},series:[{type:void 0,keys:["to","from","weight"],data:e}]});this.chart1=i}createChart2(e){let i=this.datas.map(x=>{const L=Object.values(x);return L.splice(1,1),L});e&&(i=i.filter(x=>x[0].toLowerCase()===e.toLowerCase()||x[1].toLowerCase()===e.toLowerCase()));const a=[{nodes:void 0,type:void 0,keys:["to","from","weight"],dataLabels:{enabled:!0,linkFormat:""},data:i}];this.test(a);const M=new et.t1({chart:{type:"networkgraph",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.network.chart.title")},credits:{enabled:!1},plotOptions:{networkgraph:{keys:["to","from","weight"],layoutAlgorithm:{enableSimulation:!0,integration:"verlet"}},series:{point:{events:{click:function(){document.getElementById("detail").dispatchEvent(new Event("input",{bubbles:!0}))}}}}},series:a});this.chart2=M}test(e){const i=ue.getOptions().colors;let a=0;const M={"Zigbee Coordinator":{id:"Zigbee Coordinator",marker:{radius:20}}},x=this.datas.filter(R=>"Zigbee Coordinator"===R.Child),L=[];x.forEach(R=>{M[R.Father]={id:R.Father,marker:{radius:10},color:i[a++]},L.push(R.Father)}),this.colorNode(M,L),e[0].nodes=Object.keys(M).map(function(R){return M[R]})}colorNode(e,i){i.forEach(a=>{const M=[];this.datas.filter(L=>L.Child===a).forEach(L=>{e[L.Father]||(e[L.Father]={id:L.Father,color:e[L.Child].color},M.push(L.Father))}),M.length>0&&this.colorNode(e,M)})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(it.c$),t.rXU(Ft.ok))};static \u0275cmp=t.VBU({type:o,selectors:[["app-detail-topology"]],inputs:{timeStamp:"timeStamp"},features:[t.Vt3,t.OA$],decls:13,vars:2,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-lg-2","g-4","mt-1"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.topo.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text",3,"chart"],["translate","network.topo.visu.network.header",1,"card-header","fw-bold"],[1,"card-text"],[3,"formGroup"],["type","hidden","formControlName","detail","id","detail"],["bindLabel","ZDeviceName","bindValue","ZDeviceName","appendTo","body","formControlName","nodeToFilter",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[3,"chart"],["class","row",4,"ngIf"],[1,"row"],["translate","network.topo.visu.network.relation.header",1,"card-header","fw-bold",3,"translateParams"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"],["pSortableColumn","to"],["field","to"],["pSortableColumn","weight"],["field","weight"],["pSortableColumn","Model",2,"width","8rem"],["field","Model"],["pSortableColumn","Status",2,"width","10rem"],["field","Status"],["pSortableColumn","Health"],["field","Health"],["pSortableColumn","Battery"],["field","Battery"]],template:function(i,a){1&i&&(t.j41(0,"div",1),t.EFF(1,"\n "),t.j41(2,"div",2),t.EFF(3,"\n "),t.DNE(4,ho,12,4,"div",3),t.EFF(5,"\n "),t.k0s(),t.EFF(6,"\n "),t.j41(7,"div",2),t.EFF(8,"\n "),t.DNE(9,mo,31,13,"div",3),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n"),t.k0s(),t.EFF(12,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",a.chart1),t.R7$(5),t.Y8G("ngIf",a.chart2))},dependencies:[y.bT,Ft.qT,Ft.me,Ft.BC,Ft.cb,Ft.j4,Ft.JD,fe.vr,fe.Uq,it.Mm,Ht.XI,ao.Ei,Ht.Tg,Ht.yc,et.S6,it.D9]})}return o})(),bo=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqTopology(){this.apiService.getReqTopologie().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-topology"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.topology.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.topology.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqTopology()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.topology.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();function yo(o,F){if(1&o){const e=t.RV6();t.j41(0,"span",14),t.EFF(1,"\n "),t.j41(2,"button",15),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.topologyByDate(a.value))}),t.EFF(3),t.nI1(4,"date"),t.k0s(),t.EFF(5,"\n "),t.j41(6,"button",16),t.nI1(7,"translate"),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.deleteTopologyByDate(a.value))}),t.EFF(8,"\n "),t.nrm(9,"i",17),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n "),t.k0s()}if(2&o){const e=F.$implicit;t.R7$(3),t.SpI("\n ",t.i5U(4,2,1e3*e.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.R7$(3),t.FS9("title",t.bMT(7,5,"network.topo.visu.delete.button"))}}function wo(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.j41(11,"div",9),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"ng-scrollbar",11),t.EFF(16,"\n "),t.j41(17,"div",12),t.EFF(18,"\n "),t.DNE(19,yo,12,7,"span",13),t.nI1(20,"keyvalue"),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=F.ngIf,i=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.topo.subtitle"),t.npT),t.R7$(13),t.Y8G("ngForOf",t.i5U(20,4,e,i.sortDesc))}}function _o(o,F){if(1&o&&(t.j41(0,"div"),t.nrm(1,"app-detail-topology",18),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("timeStamp",e.timeStamp)}}const So=[{path:"topology",component:(()=>{class o{apiService;cdr;timeStamp;topologies$;constructor(e,i){this.apiService=e,this.cdr=i}ngOnInit(){this.topologies$=this.apiService.getTopologie()}sortDesc(e,i){return de(e,i)}topologyByDate(e){this.timeStamp=e}deleteTopologyByDate(e){this.apiService.deleteTopologieByTimeStamp(e).subscribe(()=>{this.topologies$=this.apiService.getTopologie(),this.cdr.detectChanges()})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(t.gRc))};static \u0275cmp=t.VBU({type:o,selectors:[["app-topology"]],decls:14,vars:4,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.topo.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","d-sm-flex gap-2",4,"ngFor","ngForOf"],[1,"d-sm-flex","gap-2"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"click","title"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.j41(2,"div",1),t.EFF(3,"\n "),t.DNE(4,wo,28,7,"div",2),t.nI1(5,"async"),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div"),t.nrm(9,"app-req-topology"),t.k0s(),t.EFF(10,"\n"),t.k0s(),t.EFF(11,"\n"),t.DNE(12,_o,2,1,"div",3),t.EFF(13,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",t.bMT(5,2,a.topologies$)),t.R7$(8),t.Y8G("ngIf",a.timeStamp))},dependencies:[y.Sq,y.bT,it.Mm,le,vo,bo,y.Jj,y.vh,y.lG,it.D9],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]})}return o})(),data:{title:(0,he.o6)("network.topo")}},{path:"energy-level",component:no,data:{title:(0,he.o6)("network.energy")}}];let ko=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=t.$C({type:o});static \u0275inj=t.G2t({imports:[ce.iI.forChild(So),ce.iI]})}return o})(),xo=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=t.$C({type:o});static \u0275inj=t.G2t({providers:[{provide:et.SV,useFactory:()=>[Q,K,I,S,O]}],imports:[ko,ht.G,et.Fr,Qe]})}return o})()},69820:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/DependencyWheel/DependencyWheelPoint.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{sankey:{prototype:{pointClass:E}}}=O.seriesTypes,{pInt:t,wrap:T}=I;return class N extends E{getDataLabelPath(P){const c=this,h=c.series.chart.renderer,m=c.shapeArgs,_=c.angle<0||c.angle>Math.PI,f=m.start||0,k=m.end||0;return c.dataLabelPath?(c.dataLabelPath=c.dataLabelPath.destroy(),delete c.dataLabelPath):T(P,"destroy",function(n){return c.dataLabelPath&&(c.dataLabelPath=c.dataLabelPath.destroy()),n.call(this)}),c.dataLabelPath=h.arc({open:!0,longArc:Math.abs(Math.abs(f)-Math.abs(k)){v.graphic&&v.graphic.animate({opacity:1},{duration:b})},b*p++))}for(const v of l.points){const D=v.graphic;!v.isNode&&D&&D.attr({opacity:0}).animate({opacity:1},l.options.animation)}}}createNode(d){const l=super.createNode(d);return l.getSum=()=>l.linksFrom.concat(l.linksTo).reduce((g,b)=>g+b.weight,0),l.offset=g=>{const b=r=>r.fromNode===l?r.toNode:r.fromNode;let D,p=0,v=l.linksFrom.concat(l.linksTo);v.sort((r,u)=>b(r).index-b(u).index);for(let r=0;rl.index){v=v.slice(0,r).reverse().concat(v.slice(r).reverse()),D=!0;break}D||v.reverse();for(let r=0;r{const G=g*B,H=Math.cos(p+G)*(z+1),rt=Math.sin(p+G)*(z+1);return $=l.curveFactor||0,Y=Math.abs(q.linkBase[3-U]*g-G),Y>Math.PI&&(Y=2*Math.PI-Y),Y*=z,Y{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/DragNodesComposition.js",[S["Core/Globals.js"],S["Core/Utilities.js"]],function(O,I){const{composed:E}=O,{addEvent:t,pushUnique:T}=I;function j(){const f=this;let k,n,s;f.container&&(k=t(f.container,"mousedown",d=>{const l=f.hoverPoint;l&&l.series&&l.series.hasDraggableNodes&&l.series.options.draggable&&(l.series.onMouseDown(l,d),n=t(f.container,"mousemove",g=>l&&l.series&&l.series.onMouseMove(l,g)),s=t(f.container.ownerDocument,"mouseup",g=>(n(),s(),l&&l.series&&l.series.onMouseUp(l,g))))})),t(f,"destroy",function(){k()})}return{compose:function N(f){T(E,"DragNodes")&&t(f,"load",j)},onMouseDown:function P(f,k){const n=this.chart.pointer?.normalize(k)||k;f.fixedPosition={chartX:n.chartX,chartY:n.chartY,plotX:f.plotX,plotY:f.plotY},f.inDragMode=!0},onMouseMove:function c(f,k){if(f.fixedPosition&&f.inDragMode){const s=this.chart,d=s.pointer?.normalize(k)||k,l=f.fixedPosition.chartX-d.chartX,g=f.fixedPosition.chartY-d.chartY,b=s.graphLayoutsLookup;let p,v;(Math.abs(l)>5||Math.abs(g)>5)&&(p=f.fixedPosition.plotX-l,v=f.fixedPosition.plotY-g,s.isInsidePlot(p,v)&&(f.plotX=p,f.plotY=v,f.hasDragged=!0,this.redrawHalo(f),b.forEach(D=>{D.restartSimulation()})))}},onMouseUp:function h(f){f.fixedPosition&&(f.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),f.inDragMode=f.hasDragged=!1,this.options.fixedDraggable||delete f.fixedPosition)},redrawHalo:function m(f){f&&this.halo&&this.halo.attr({d:f.haloPath(this.options.states.hover.halo.size)})}}}),K(S,"Series/GraphLayoutComposition.js",[S["Core/Animation/AnimationUtilities.js"],S["Core/Globals.js"],S["Core/Utilities.js"]],function(O,I,E){const{setAnimation:t}=O,{composed:T}=I,{addEvent:N,pushUnique:j}=E;function m(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(s=>{s.updateSimulation()}),this.redraw())}function _(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(s=>{s.updateSimulation(!1)}),this.redraw())}function f(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(s=>{s.stop()})}function k(){let s,d=!1;const l=g=>{g.maxIterations--&&isFinite(g.temperature)&&!g.isStable()&&!g.enableSimulation&&(g.beforeStep&&g.beforeStep(),g.step(),s=!1,d=!0)};if(this.graphLayoutsLookup){for(t(!1,this),this.graphLayoutsLookup.forEach(g=>g.start());!s;)s=!0,this.graphLayoutsLookup.forEach(l);d&&this.series.forEach(g=>{g&&g.layout&&g.render()})}}return{compose:function h(s){j(T,"GraphLayout")&&(N(s,"afterPrint",m),N(s,"beforePrint",_),N(s,"predraw",f),N(s,"render",k))},integrations:{},layouts:{}}}),K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{series:{prototype:E,prototype:{pointClass:{prototype:t}}}}=O,{defined:T,extend:N,find:j,merge:P,pick:c}=I;var h;return function(m){function k(){return this.data=[].concat(this.points||[],this.nodes),E.destroy.apply(this,arguments)}function s(){this.nodes&&(this.nodes.forEach(g=>{g.destroy()}),this.nodes.length=0),E.setData.apply(this,arguments)}function d(g){const b=arguments,p=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==g&&p.forEach(v=>{v&&v.series&&(t.setState.apply(v,b),v.isNode||(v.fromNode.graphic&&t.setState.apply(v.fromNode,b),v.toNode&&v.toNode.graphic&&t.setState.apply(v.toNode,b)))}),t.setState.apply(this,b)}function l(g,b,p,v){const D=this.series.options.nodes,r=this.series.options.data,u=r&&r.length||0,w=r&&r[this.index];if(t.update.call(this,g,!this.isNode&&b,p,v),this.isNode){const C=(D||[]).reduce((A,z,V)=>this.id===z.id?V:A,-1),y=P(D&&D[C]||{},r&&r[this.index]||{});r&&(w?r[this.index]=w:r.length=u),D?C>=0?D[C]=y:D.push(y):this.series.options.nodes=[y],c(b,!0)&&this.series.chart.redraw(p)}}m.compose=function _(g,b){const p=g.prototype,v=b.prototype;return p.setNodeState=d,p.setState=d,p.update=l,v.destroy=k,v.setData=s,b},m.createNode=function f(g){const b=this.pointClass,p=(r,u)=>j(r,w=>w.id===u);let D,v=p(this.nodes,g);if(!v){D=this.options.nodes&&p(this.options.nodes,g);const r=new b(this,N({className:"highcharts-node",isNode:!0,id:g,y:1},D));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let u=0,w=0;return r.linksTo.forEach(C=>{u+=C.weight||0}),r.linksFrom.forEach(C=>{w+=C.weight||0}),Math.max(u,w)},r.offset=function(u,w){let C=0;for(let y=0;y{w.outgoing&&u++}),!r.linksTo.length||u!==r.linksTo.length},r.index=this.nodes.push(r)-1,v=r}return v.formatPrefix="node",v.name=v.name||v.options.id||"",v.mass=c(v.options.mass,v.options.marker&&v.options.marker.radius,this.options.marker&&this.options.marker.radius,4),v},m.destroy=k,m.generatePoints=function n(){const g=this.chart,b={};E.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(p=>{p.linksFrom.length=0,p.linksTo.length=0,p.level=p.options.level}),this.points.forEach(p=>{T(p.from)&&(b[p.from]||(b[p.from]=this.createNode(p.from)),b[p.from].linksFrom.push(p),p.fromNode=b[p.from],g.styledMode?p.colorIndex=c(p.options.colorIndex,b[p.from].colorIndex):p.color=p.options.color||b[p.from].color),T(p.to)&&(b[p.to]||(b[p.to]=this.createNode(p.to)),b[p.to].linksTo.push(p),p.toNode=b[p.to]),p.name=p.name||p.id},this),this.nodeLookup=b},m.setNodeState=d,m.updateNode=l}(h||(h={})),h}),K(S,"Series/Networkgraph/NetworkgraphPoint.js",[S["Series/NodesComposition.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){const{series:{prototype:t,prototype:{pointClass:T}}}=I,{addEvent:N,css:j,defined:P,extend:c,pick:h}=E;class m extends T{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(f){f.destroyElements&&f.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),T.prototype.destroy.apply(this,arguments)}getDegree(){const f=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===f?1:f}getLinkAttributes(){const f=this.series.options.link,k=this.options;return{"stroke-width":h(k.width,f.width),stroke:k.color||f.color,dashstyle:k.dashStyle||f.dashStyle,opacity:h(k.opacity,f.opacity,1)}}getLinkPath(){let f=this.fromNode,k=this.toNode;return f.plotX>k.plotX&&(f=this.toNode,k=this.fromNode),[["M",f.plotX||0,f.plotY||0],["L",k.plotX||0,k.plotY||0]]}getMass(){const f=this.fromNode.mass,k=this.toNode.mass,n=f+k;return{fromNode:1-f/n,toNode:1-k/n}}constructor(f,k,n){super(f,k,n),this.series.options.draggable&&!this.series.chart.styledMode&&(N(this,"mouseOver",function(){j(this.series.chart.container,{cursor:"move"})}),N(this,"mouseOut",function(){j(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||P(this.id)}redrawLink(){let k,f=this.getLinkPath();if(this.graphic){this.shapeArgs={d:f},this.series.chart.styledMode||(k=this.series.pointAttribs(this),this.graphic.attr(k),(this.dataLabels||[]).forEach(function(d){d&&d.attr({opacity:k.opacity})})),this.graphic.animate(this.shapeArgs);const n=f[0],s=f[1];"M"===n[0]&&"L"===s[0]&&(this.plotX=(n[1]+s[1])/2,this.plotY=(n[2]+s[2])/2)}}remove(f,k){let l,n=this,s=n.series,d=s.options.nodes||[],g=d.length;if(n.isNode){for(s.points=[],[].concat(n.linksFrom).concat(n.linksTo).forEach(function(b){l=b.fromNode.linksFrom.indexOf(b),l>-1&&b.fromNode.linksFrom.splice(l,1),l=b.toNode.linksTo.indexOf(b),l>-1&&b.toNode.linksTo.splice(l,1),t.removePoint.call(s,s.data.indexOf(b),!1,!1)}),s.points=s.data.slice(),s.nodes.splice(s.nodes.indexOf(n),1);g--;)if(d[g].id===n.options.id){s.options.nodes.splice(g,1);break}n&&n.destroy(),s.isDirty=!0,s.isDirtyData=!0,f&&s.chart.redraw(f)}else s.removePoint(s.data.indexOf(n),f,k)}renderLink(){let f;this.graphic||(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(f=this.series.pointAttribs(this),this.graphic.attr(f),(this.dataLabels||[]).forEach(function(k){k&&k.attr({opacity:f.opacity})})))}}return c(m.prototype,{setState:O.setNodeState}),m}),K(S,"Series/Networkgraph/NetworkgraphSeriesDefaults.js",[],function(){return{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,animation:{duration:50}}},dataLabels:{formatter:function(){return this.key},linkFormatter:function(){return this.point.fromNode.name+"
"+this.point.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}}),K(S,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function O(c,h,m,_){const f=c.getMass(),k=m.x/_*h,n=m.y/_*h;c.fromNode.fixedPosition||(c.fromNode.dispX-=k*f.fromNode/c.fromNode.degree,c.fromNode.dispY-=n*f.fromNode/c.fromNode.degree),c.toNode.fixedPosition||(c.toNode.dispX+=k*f.toNode/c.toNode.degree,c.toNode.dispY+=n*f.toNode/c.toNode.degree)},attractiveForceFunction:function I(c,h){return c*c/h},barycenter:function E(){const c=this.options.gravitationalConstant,h=this.barycenter.xFactor,m=this.barycenter.yFactor;this.nodes.forEach(function(_){if(!_.fixedPosition){const f=_.getDegree(),k=f*(1+f/2);_.dispX+=(h-_.plotX)*c*k/_.degree,_.dispY+=(m-_.plotY)*c*k/_.degree}})},getK:function t(c){return Math.pow(c.box.width*c.box.height/c.nodes.length,.3)},integrate:function T(c,h){let m;h.dispX+=h.dispX*c.options.friction,h.dispY+=h.dispY*c.options.friction,m=h.temperature=c.vectorLength({x:h.dispX,y:h.dispY}),0!==m&&(h.plotX+=h.dispX/m*Math.min(Math.abs(h.dispX),c.temperature),h.plotY+=h.dispY/m*Math.min(Math.abs(h.dispY),c.temperature))},repulsive:function N(c,h,m,_){c.dispX+=m.x/_*h/c.degree,c.dispY+=m.y/_*h/c.degree},repulsiveForceFunction:function j(c,h){return h*h/c}}}),K(S,"Series/Networkgraph/QuadTreeNode.js",[],function(){class O{constructor(E){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=E,this.boxSize=Math.min(E.width,E.height)}divideBox(){const E=this.box.width/2,t=this.box.height/2;this.nodes[0]=new O({left:this.box.left,top:this.box.top,width:E,height:t}),this.nodes[1]=new O({left:this.box.left+E,top:this.box.top,width:E,height:t}),this.nodes[2]=new O({left:this.box.left+E,top:this.box.top+t,width:E,height:t}),this.nodes[3]=new O({left:this.box.left,top:this.box.top+t,width:E,height:t})}getBoxPosition(E){const T=E.plotYc?1:0)}}}),K(S,"Series/Networkgraph/ReingoldFruchtermanLayout.js",[S["Series/Networkgraph/EulerIntegration.js"],S["Core/Globals.js"],S["Series/GraphLayoutComposition.js"],S["Series/Networkgraph/QuadTree.js"],S["Core/Utilities.js"],S["Series/Networkgraph/VerletIntegration.js"]],function(O,I,E,t,T,N){const{win:j}=I,{clamp:P,defined:c,isFunction:h,fireEvent:m,pick:_}=T;class f{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(n){E.compose(n),E.integrations.euler=O,E.integrations.verlet=N,E.layouts["reingold-fruchterman"]=f}init(n){this.options=n,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=E.integrations[n.integration],this.enableSimulation=n.enableSimulation,this.attractiveForce=_(n.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=_(n.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=n.approximation}updateSimulation(n){this.enableSimulation=_(n,this.options.enableSimulation)}start(){const n=this,s=this.series,d=this.options;n.currentStep=0,n.forces=s[0]&&s[0].forces||[],n.chart=s[0]&&s[0].chart,n.initialRendering&&(n.initPositions(),s.forEach(function(l){l.finishedAnimating=!0,l.render()})),n.setK(),n.resetSimulation(d),n.enableSimulation&&n.step()}step(){const n=this,s=this.series;this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter());for(const d of this.forces||[])n[d+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(const d of s)d.chart&&d.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&j.cancelAnimationFrame(this.simulation),this.simulation=j.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(d=>{m(d,"afterSimulation")}))}}stop(){this.simulation&&j.cancelAnimationFrame(this.simulation)}setArea(n,s,d,l){this.box={left:n,top:s,width:d,height:l}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(n,s){for(const d of n)-1===s.indexOf(d)&&s.push(d)}removeElementFromCollection(n,s){const d=s.indexOf(n);-1!==d&&s.splice(d,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(n){this.maxIterations=_(n,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(n){this.initialRendering=n}createQuadTree(){this.quadTree=new t(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const n=this.options.initialPositions;if(h(n)){n.call(this);for(const s of this.nodes)c(s.prevX)||(s.prevX=s.plotX),c(s.prevY)||(s.prevY=s.plotY),s.dispX=0,s.dispY=0}else"circle"===n?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const n=this.box,s=this.nodes,l=2*Math.PI/(s.length+1),g=s.filter(function(u){return 0===u.linksTo.length}),b={},p=this.options.initialPositionRadius,v=u=>{for(const w of u.linksFrom||[])b[w.toNode.id]||(b[w.toNode.id]=!0,D.push(w.toNode),v(w.toNode))};let r,D=[];for(const u of g)D.push(u),v(u);if(D.length)for(const u of s)-1===D.indexOf(u)&&D.push(u);else D=s;for(let u=0,w=D.length;u{let p=b*b/Math.PI;return p-=Math.floor(p),p};let g;for(let b=0,p=s.length;bthis.barnesHutApproximation(n,s));else{let n,s,d;for(const l of this.nodes)for(const g of this.nodes)l!==g&&!l.fixedPosition&&(d=this.getDistXY(l,g),s=this.vectorLength(d),0!==s&&(n=this.repulsiveForce(s,this.k),this.force("repulsive",l,n*g.mass,d,s)))}}attractiveForces(){let n,s,d;for(const l of this.links)l.fromNode&&l.toNode&&(n=this.getDistXY(l.fromNode,l.toNode),s=this.vectorLength(n),0!==s&&(d=this.attractiveForce(s,this.k),this.force("attractive",l,d,n,s)))}applyLimits(){const n=this.nodes;for(const s of n){if(s.fixedPosition)return;this.integration.integrate(this,s),this.applyLimitBox(s,this.box),s.dispX=0,s.dispY=0}}applyLimitBox(n,s){const d=n.radius;n.plotX=P(n.plotX,s.left+d,s.width-d),n.plotY=P(n.plotY,s.top+d,s.height-d)}coolDown(n,s,d){return n-s*d}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let n=0;for(const s of this.nodes)n+=s.temperature;return n}vectorLength(n){return Math.sqrt(n.x*n.x+n.y*n.y)}getDistR(n,s){const d=this.getDistXY(n,s);return this.vectorLength(d)}getDistXY(n,s){const d=n.plotX-s.plotX,l=n.plotY-s.plotY;return{x:d,y:l,absX:Math.abs(d),absY:Math.abs(l)}}}return f}),K(S,"Series/SimulationSeriesUtilities.js",[S["Core/Utilities.js"],S["Core/Animation/AnimationUtilities.js"]],function(O,I){const{merge:E,syncTimeout:t}=O,{animObject:T}=I;return{initDataLabels:function j(){const c=this,h=c.options.dataLabels;if(!c.dataLabelsGroup){const m=this.initDataLabelsGroup();return!c.chart.styledMode&&h?.style&&m.css(h.style),m.attr({opacity:0}),c.visible&&m.show(),m}return c.dataLabelsGroup.attr(E({opacity:1},this.getPlotBox("data-labels"))),c.dataLabelsGroup},initDataLabelsDefer:function N(){const c=this.options.dataLabels;c?.defer&&this.options.layoutAlgorithm?.enableSimulation?t(()=>{this.deferDataLabels=!1},c?T(c.animation).defer:0):this.deferDataLabels=!1}}}),K(S,"Series/Networkgraph/NetworkgraphSeries.js",[S["Series/DragNodesComposition.js"],S["Series/GraphLayoutComposition.js"],S["Core/Globals.js"],S["Series/Networkgraph/NetworkgraphPoint.js"],S["Series/Networkgraph/NetworkgraphSeriesDefaults.js"],S["Series/NodesComposition.js"],S["Series/Networkgraph/ReingoldFruchtermanLayout.js"],S["Core/Series/SeriesRegistry.js"],S["Series/SimulationSeriesUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c,h){const{noop:m}=E,{series:_,seriesTypes:{column:{prototype:f},line:{prototype:k}}}=P,{initDataLabels:n,initDataLabelsDefer:s}=c,{addEvent:d,defined:l,extend:g,merge:b,pick:p}=h;class v extends _{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(r){O.compose(r),j.compose(r)}deferLayout(){let y,r=this.options.layoutAlgorithm,u=this.chart.graphLayoutsStorage,w=this.chart.graphLayoutsLookup,C=this.chart.options.chart;this.visible&&(u||(this.chart.graphLayoutsStorage=u={},this.chart.graphLayoutsLookup=w=[]),y=u[r.type],y||(r.enableSimulation=l(C.forExport)?!C.forExport:r.enableSimulation,u[r.type]=y=new I.layouts[r.type],y.init(r),w.splice(y.index,0,y)),this.layout=y,y.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),y.addElementsToCollection([this],y.series),y.addElementsToCollection(this.nodes,y.nodes),y.addElementsToCollection(this.points,y.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),N.destroy.call(this)}drawDataLabels(){if(this.deferDataLabels)return;const r=this.options.dataLabels;let u;r?.textPath&&(u=r.textPath),_.prototype.drawDataLabels.call(this,this.nodes),r?.linkTextPath&&(r.textPath=r.linkTextPath),_.prototype.drawDataLabels.call(this,this.data),r?.textPath&&(r.textPath=u)}generatePoints(){let r,u;for(N.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(w){this.nodeLookup[w.id]||(this.nodeLookup[w.id]=this.createNode(w.id))},this),u=this.nodes.length-1;u>=0;u--)r=this.nodes[u],r.degree=r.getDegree(),r.radius=p(r.marker&&r.marker.radius,this.options.marker&&this.options.marker.radius,0),this.nodeLookup[r.id]||r.remove();this.data.forEach(function(w){w.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(r,u){r.index=u})}init(r,u){return super.init(r,u),s.call(this),d(this,"updatedData",()=>{this.layout&&this.layout.stop()}),d(this,"afterUpdate",()=>{this.nodes.forEach(w=>{w&&w.series&&w.resolveColor()})}),d(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(r,u){const w=_.prototype.markerAttribs.call(this,r,u);return l(r.plotY)||(w.y=0),w.x=(r.plotX||0)-(w.width||0)/2,w}pointAttribs(r,u){let w=u||r&&r.state||"normal",C=_.prototype.pointAttribs.call(this,r,w),y=this.options.states[w];return r&&!r.isNode&&(C=r.getLinkAttributes(),y&&(C={stroke:y.linkColor||C.stroke,dashstyle:y.linkDashStyle||C.dashstyle,opacity:p(y.linkOpacity,C.opacity),"stroke-width":y.linkColor||C["stroke-width"]})),C}render(){const r=this,u=r.points,w=r.chart.hoverPoint,C=[];r.points=r.nodes,k.render.call(this),r.points=u,u.forEach(function(y){y.fromNode&&y.toNode&&(y.renderLink(),y.redrawLink())}),w&&w.series===r&&r.redrawHalo(w),r.chart.hasRendered&&!r.options.dataLabels.allowOverlap&&(r.nodes.concat(r.points).forEach(function(y){y.dataLabel&&C.push(y.dataLabel)}),r.chart.hideOverlappingLabels(C))}setState(r,u){u?(this.points=this.nodes.concat(this.data),_.prototype.setState.apply(this,arguments),this.points=this.data):_.prototype.setState.apply(this,arguments),!this.layout.simulation&&!r&&this.render()}translate(){this.processedXData||this.processData(),this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(r){r.isInside=!0,r.linksFrom.forEach(function(u){u.shapeType="path",u.y=1})})}}return v.defaultOptions=b(_.defaultOptions,T),g(v.prototype,{pointClass:t,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:n,buildKDTree:m,createNode:N.createNode,drawTracker:f.drawTracker,onMouseDown:O.onMouseDown,onMouseMove:O.onMouseMove,onMouseUp:O.onMouseUp,redrawHalo:O.redrawHalo}),P.registerSeriesType("networkgraph",v),v}),K(S,"masters/modules/networkgraph.src.js",[S["Core/Globals.js"],S["Series/Networkgraph/NetworkgraphSeries.js"]],function(O,I){return I.compose(O.Chart),O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))},95606:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){var E;let{series:{prototype:t,prototype:{pointClass:{prototype:T}}}}=O,{defined:N,extend:j,find:P,merge:c,pick:h}=I;return function(m){function _(){return this.data=[].concat(this.points||[],this.nodes),t.destroy.apply(this,arguments)}function f(){this.nodes&&(this.nodes.forEach(s=>{s.destroy()}),this.nodes.length=0),t.setData.apply(this,arguments)}function k(s){let d=arguments,l=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==s&&l.forEach(g=>{g&&g.series&&(T.setState.apply(g,d),!g.isNode&&(g.fromNode.graphic&&T.setState.apply(g.fromNode,d),g.toNode&&g.toNode.graphic&&T.setState.apply(g.toNode,d)))}),T.setState.apply(this,d)}function n(s,d,l,g){let b=this.series.options.nodes,p=this.series.options.data,v=p&&p.length||0,D=p&&p[this.index];if(T.update.call(this,s,!this.isNode&&d,l,g),this.isNode){let r=(b||[]).reduce((w,C,y)=>this.id===C.id?y:w,-1),u=c(b&&b[r]||{},p&&p[this.index]||{});p&&(D?p[this.index]=D:p.length=v),b?r>=0?b[r]=u:b.push(u):this.series.options.nodes=[u],h(d,!0)&&this.series.chart.redraw(l)}}m.compose=function(s,d){let l=s.prototype,g=d.prototype;return l.setNodeState=k,l.setState=k,l.update=n,g.destroy=_,g.setData=f,d},m.createNode=function(s){let b,d=this.pointClass,l=(p,v)=>P(p,D=>D.id===v),g=l(this.nodes,s);if(!g){b=this.options.nodes&&l(this.options.nodes,s);let p=new d(this,j({className:"highcharts-node",isNode:!0,id:s,y:1},b));p.linksTo=[],p.linksFrom=[],p.getSum=function(){let v=0,D=0;return p.linksTo.forEach(r=>{v+=r.weight||0}),p.linksFrom.forEach(r=>{D+=r.weight||0}),Math.max(v,D)},p.offset=function(v,D){let r=0;for(let u=0;u{D.outgoing&&v++}),!p.linksTo.length||v!==p.linksTo.length},p.index=this.nodes.push(p)-1,g=p}return g.formatPrefix="node",g.name=g.name||g.options.id||"",g.mass=h(g.options.mass,g.options.marker&&g.options.marker.radius,this.options.marker&&this.options.marker.radius,4),g},m.destroy=_,m.generatePoints=function(){let s=this.chart,d={};t.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(l=>{l.linksFrom.length=0,l.linksTo.length=0,l.level=l.options.level}),this.points.forEach(l=>{N(l.from)&&(d[l.from]||(d[l.from]=this.createNode(l.from)),d[l.from].linksFrom.push(l),l.fromNode=d[l.from],s.styledMode?l.colorIndex=h(l.options.colorIndex,d[l.from].colorIndex):l.color=l.options.color||d[l.from].color),N(l.to)&&(d[l.to]||(d[l.to]=this.createNode(l.to)),d[l.to].linksTo.push(l),l.toNode=d[l.to]),l.name=l.name||l.id},this),this.nodeLookup=d},m.setNodeState=k,m.updateNode=n}(E||(E={})),E}),K(S,"Series/Sankey/SankeyPoint.js",[S["Core/Series/Point.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){let{column:t}=I.seriesTypes,{defined:T}=E;return class N extends t.prototype.pointClass{applyOptions(P,c){return O.prototype.applyOptions.call(this,P,c),T(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+O.prototype.getClassName.call(this)}getFromNode(){let c,P=-1;for(let h=0;hP&&m.fromNode!==this&&(P=(c=m.fromNode).column)}return{fromNode:c,fromColumn:P}}setNodeColumn(){T(this.options.column)||(this.column=0===this.linksTo.length?0:this.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}}),K(S,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
",nodeFormat:"{point.name}: {point.sum}
"}}}),K(S,"Series/Sankey/SankeyColumnComposition.js",[S["Core/Utilities.js"]],function(O){var I;let{defined:E,relativeLength:t}=O;return function(T){T.compose=function(j,P){return j.sankeyColumn=new N(j,P),j};class N{constructor(P,c){this.points=P,this.series=c}getTranslationFactor(P){let f,n,c=this.points,h=c.slice(),_=P.options.minLinkWidth||0,k=0,s=(P.chart.plotSizeY||0)-(P.options.borderWidth||0)-(c.length-1)*P.nodePadding;for(;c.length;){for(k=s/c.sankeyColumn.sum(),f=!1,n=c.length;n--;)c[n].getSum()*k<_&&(c.splice(n,1),s=Math.max(0,s-_),f=!0);if(!f)break}for(let d of(c.length=0,h))c.push(d);return k}top(P){let c=this.series,h=c.nodePadding,m=this.points.reduce((_,f)=>(_>0&&(_+=h),_+Math.max(f.getSum()*P,c.options.minLinkWidth||0)),0);return{top:0,center:.5,bottom:1}[c.options.nodeAlignment||"center"]*((c.chart.plotSizeY||0)-m)}left(P){let c=this.series,h=c.chart,m=c.options.equalNodes,_=h.inverted?h.plotHeight:h.plotWidth,f=c.nodePadding,k=this.points.reduce((n,s)=>(n>0&&(n+=f),n+(m?_/s.series.nodes.length-f:Math.max(s.getSum()*P,c.options.minLinkWidth||0))),0);return((h.plotSizeX||0)-Math.round(k))/2}sum(){return this.points.reduce((P,c)=>P+c.getSum(),0)}offset(P,c){let k,h=this.points,m=this.series,_=m.nodePadding,f=0;if(m.is("organization")&&P.hangsFrom)return{absoluteTop:P.hangsFrom.nodeY};for(let n=0;n{let y=f&&f.colorVariation;return y&&"brightness"===y.key&&l&&r?O.parse(C).brighten(y.to*(l/r)).get():C})(b),v.color)),d=P(_&&_.options.colorIndex,f&&f.colorIndex,n,p,m.colorIndex)),{color:s,colorIndex:d}},getLevelOptions:function(h){let _,f,k,n,s,d,m={};if(N(h))for(n=T(h.from)?h.from:1,d=h.levels,f={},_=N(h.defaults)?h.defaults:{},t(d)&&(f=d.reduce((l,g)=>{let b,p,v;return N(g)&&T(g.level)&&(p=P((v=j({},g)).levelIsConstant,_.levelIsConstant),delete v.levelIsConstant,delete v.level,N(l[b=g.level+(p?0:n-1)])?j(!0,l[b],v):l[b]=v),l},{})),s=T(h.to)?h.to:1,k=0;k<=s;k++)m[k]=j({},_,N(f[k])?f[k]:{});return m},getNodeWidth:function(h,m){let{chart:_,options:f}=h,{nodeDistance:k=0,nodeWidth:n=0}=f,{plotSizeX:s=1}=_;if("auto"===n){if("string"==typeof k&&/%$/.test(k))return s/(m+parseFloat(k)/100*(m-1));let d=Number(k);return(s+d)/(m||1)-d}return c(n,s)},setTreeValues:function h(m,_){let f=_.before,k=_.idRoot,d=_.points[m.i],l=d&&d.options||{},g=[],b=0;m.levelDynamic=m.level-(!1!==_.levelIsConstant?0:_.mapIdToNode[k].level),m.name=P(d&&d.name,""),m.visible=k===m.id||!0===_.visible,"function"==typeof f&&(m=f(m,_)),m.children.forEach((v,D)=>{let r=E({},_);E(r,{index:D,siblings:m.children.length,visible:m.visible}),v=h(v,r),g.push(v),v.visible&&(b+=v.val)});let p=P(l.value,b);return m.visible=p>=0&&(b>0||m.visible),m.children=g,m.childrenTotal=b,m.isLeaf=m.visible&&!b,m.val=p,m},updateRootId:function(h){let m,_;return N(h)&&(_=N(h.options)?h.options:{},m=P(h.rootNode,_.rootId,""),N(h.userOptions)&&(h.userOptions.rootId=m),h.rootNode=m),m}}}),K(S,"Series/Sankey/SankeySeries.js",[S["Core/Globals.js"],S["Series/NodesComposition.js"],S["Series/Sankey/SankeyPoint.js"],S["Series/Sankey/SankeySeriesDefaults.js"],S["Core/Series/SeriesRegistry.js"],S["Series/Sankey/SankeyColumnComposition.js"],S["Core/Color/Color.js"],S["Series/TreeUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c){let{column:h,line:m}=T.seriesTypes,{parse:_}=j,{getLevelOptions:f,getNodeWidth:k}=P,{clamp:n,extend:s,isObject:d,merge:l,pick:g,relativeLength:b,stableSort:p}=c;class v extends h{static getDLOptions(r){let u=d(r.optionsPoint)?r.optionsPoint.dataLabels:{};return l({style:{}},d(r.level)?r.level.dataLabels:{},u)}createNodeColumns(){let r=[];for(let u of this.nodes)u.setNodeColumn(),r[u.column]||(r[u.column]=N.compose([],this)),r[u.column].push(u);for(let u=0;ur.level-u.level)}}getNodePadding(){let r=this.options.nodePadding||0;if(this.nodeColumns){let u=this.nodeColumns.reduce((w,C)=>Math.max(w,C.length),0);u*r>this.chart.plotSizeY&&(r=this.chart.plotSizeY/u)}return r}hasData(){return!!this.processedXData.length}pointAttribs(r,u){if(!r)return{};let w=this,y=w.mapOptionsToLevel[(r.isNode?r.level:r.fromNode.level)||0]||{},A=r.options,z=y.states&&y.states[u||""]||{},V=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((q,$)=>(q[$]=g(z[$],A[$],y[$],w.options[$]),q),{}),Z=g(z.color,A.color,V.colorByPoint?r.color:y.color);return r.isNode?{fill:Z,stroke:V.borderColor,"stroke-width":V.borderWidth,opacity:V.opacity}:{fill:j.parse(Z).setOpacity(V.linkOpacity).get()}}drawTracker(){h.prototype.drawTracker.call(this,this.points),h.prototype.drawTracker.call(this,this.nodes)}drawPoints(){h.prototype.drawPoints.call(this,this.points),h.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){h.prototype.drawDataLabels.call(this,this.points),h.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns();let r=this,u=this.chart,w=this.options,C=this.nodeColumns,y=C.length;for(let A of(this.nodeWidth=k(this,y),this.nodePadding=this.getNodePadding(),this.translationFactor=C.reduce((z,V)=>Math.min(z,V.sankeyColumn.getTranslationFactor(r)),1/0),this.colDistance=(u.plotSizeX-this.nodeWidth-w.borderWidth)/Math.max(1,C.length-1),r.mapOptionsToLevel=f({from:1,levels:w.levels,to:C.length-1,defaults:{borderColor:w.borderColor,borderRadius:w.borderRadius,borderWidth:w.borderWidth,color:r.color,colorByPoint:w.colorByPoint,levelIsConstant:!0,linkColor:w.linkColor,linkLineWidth:w.linkLineWidth,linkOpacity:w.linkOpacity,states:w.states}}),C))for(let z of A)r.translateNode(z,A);for(let A of this.nodes)for(let z of A.linksFrom)(z.weight||z.isNull)&&z.to&&(r.translateLink(z),z.allowShadow=!1)}translateLink(r){let u=(tt,ot)=>{let st=tt.offset(r,ot)*z;return Math.min(tt.nodeY+st,tt.nodeY+(tt.shapeArgs&&tt.shapeArgs.height||0)-B)},w=r.fromNode,C=r.toNode,y=this.chart,{inverted:A}=y,z=this.translationFactor,V=this.options,Z=g(r.linkColorMode,V.linkColorMode),q=(y.inverted?-this.colDistance:this.colDistance)*V.curveFactor,$=w.nodeX,Y=C.nodeX,J=r.outgoing,B=Math.max(r.weight*z,this.options.minLinkWidth),U=u(w,"linksFrom"),G=u(C,"linksTo"),H=this.nodeWidth,rt=Y>$+H;if(y.inverted&&(U=y.plotSizeY-U,G=(y.plotSizeY||0)-G,H=-H,B=-B,rt=$>Y),r.shapeType="path",r.linkBase=[U,U+B,G,G+B],rt&&"number"==typeof G)r.shapeArgs={d:[["M",$+H,U],["C",$+H+q,U,Y-q,G,Y,G],["L",Y+(J?H:0),G+B/2],["L",Y,G+B],["C",Y-q,G+B,$+H+q,U+B,$+H,U+B],["Z"]]};else if("number"==typeof G){let ot=Y-20-B,st=Y-20,at=$+H,lt=at+20,ft=lt+B,gt=U+B,St=gt+20,dt=St+(y.plotHeight-U-B),ct=dt+20,mt=ct+B,bt=G+B,kt=bt+20,Et=ct+.7*B,Pt=Y-.7*B,Tt=at+.7*B;r.shapeArgs={d:[["M",at,U],["C",Tt,U,ft,gt-.7*B,ft,St],["L",ft,dt],["C",ft,Et,Tt,mt,at,mt],["L",Y,mt],["C",Pt,mt,ot,Et,ot,dt],["L",ot,kt],["C",ot,bt-.7*B,Pt,G,Y,G],["L",Y,bt],["C",st,bt,st,bt,st,kt],["L",st,dt],["C",st,ct,st,ct,Y,ct],["L",at,ct],["C",lt,ct,lt,ct,lt,dt],["L",lt,St],["C",lt,gt,lt,gt,at,gt],["Z"]]}}if(r.dlBox={x:$+(Y-$+H)/2,y:U+(G-U)/2,height:B,width:0},r.tooltipPos=y.inverted?[y.plotSizeY-r.dlBox.y-B/2,y.plotSizeX-r.dlBox.x]:[r.dlBox.x,r.dlBox.y+B/2],r.y=r.plotY=1,r.x=r.plotX=1,!r.options.color)if("from"===Z)r.color=w.color;else if("to"===Z)r.color=C.color;else if("gradient"===Z){let tt=_(w.color).get(),ot=_(C.color).get();r.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,A?tt:ot],[1,A?ot:tt]]}}}translateNode(r,u){let w=this.translationFactor,C=this.chart,y=this.options,{borderRadius:A,borderWidth:z=0}=y,V=r.getSum(),Z=Math.max(Math.round(V*w),this.options.minLinkWidth),q=Math.round(this.nodeWidth),$=Math.round(z)%2/2,Y=u.sankeyColumn.offset(r,w),J=Math.floor(g(Y.absoluteTop,u.sankeyColumn.top(w)+Y.relativeTop))+$,B=Math.floor(this.colDistance*r.column+z/2)+b(r.options[C.inverted?"offsetVertical":"offsetHorizontal"]||0,q)+$,U=C.inverted?C.plotSizeX-B:B;if(r.sum=V,V){r.shapeType="roundedRect",r.nodeX=U,r.nodeY=J;let G=U,H=J,rt=r.options.width||y.width||q,tt=r.options.height||y.height||Z,ot=n(b("object"==typeof A?A.radius:A||0,rt),0,Z/2);C.inverted&&(G=U-q,H=C.plotSizeY-J-Z,rt=r.options.height||y.height||q,tt=r.options.width||y.width||Z),r.dlOptions=v.getDLOptions({level:this.mapOptionsToLevel[r.level],optionsPoint:r.options}),r.plotX=1,r.plotY=1,r.tooltipPos=C.inverted?[C.plotSizeY-H-tt/2,C.plotSizeX-G-rt/2]:[G+rt/2,H+tt/2],r.shapeArgs={x:G,y:H,width:rt,height:tt,r:ot,display:r.hasShape()?"":"none"}}else r.dlOptions={enabled:!1}}}return v.defaultOptions=l(h.defaultOptions,t),I.compose(E,v),s(v.prototype,{animate:m.prototype.animate,createNode:I.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:E,searchPoint:O.noop}),T.registerSeriesType("sankey",v),v}),K(S,"masters/modules/sankey.src.js",[S["Core/Globals.js"]],function(O){return O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))},55782:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{series:{prototype:E,prototype:{pointClass:{prototype:t}}}}=O,{defined:T,extend:N,find:j,merge:P,pick:c}=I;var h;return function(m){function k(){return this.data=[].concat(this.points||[],this.nodes),E.destroy.apply(this,arguments)}function s(){this.nodes&&(this.nodes.forEach(g=>{g.destroy()}),this.nodes.length=0),E.setData.apply(this,arguments)}function d(g){const b=arguments,p=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==g&&p.forEach(v=>{v&&v.series&&(t.setState.apply(v,b),v.isNode||(v.fromNode.graphic&&t.setState.apply(v.fromNode,b),v.toNode&&v.toNode.graphic&&t.setState.apply(v.toNode,b)))}),t.setState.apply(this,b)}function l(g,b,p,v){const D=this.series.options.nodes,r=this.series.options.data,u=r&&r.length||0,w=r&&r[this.index];if(t.update.call(this,g,!this.isNode&&b,p,v),this.isNode){const C=(D||[]).reduce((A,z,V)=>this.id===z.id?V:A,-1),y=P(D&&D[C]||{},r&&r[this.index]||{});r&&(w?r[this.index]=w:r.length=u),D?C>=0?D[C]=y:D.push(y):this.series.options.nodes=[y],c(b,!0)&&this.series.chart.redraw(p)}}m.compose=function _(g,b){const p=g.prototype,v=b.prototype;return p.setNodeState=d,p.setState=d,p.update=l,v.destroy=k,v.setData=s,b},m.createNode=function f(g){const b=this.pointClass,p=(r,u)=>j(r,w=>w.id===u);let D,v=p(this.nodes,g);if(!v){D=this.options.nodes&&p(this.options.nodes,g);const r=new b(this,N({className:"highcharts-node",isNode:!0,id:g,y:1},D));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let u=0,w=0;return r.linksTo.forEach(C=>{u+=C.weight||0}),r.linksFrom.forEach(C=>{w+=C.weight||0}),Math.max(u,w)},r.offset=function(u,w){let C=0;for(let y=0;y{w.outgoing&&u++}),!r.linksTo.length||u!==r.linksTo.length},r.index=this.nodes.push(r)-1,v=r}return v.formatPrefix="node",v.name=v.name||v.options.id||"",v.mass=c(v.options.mass,v.options.marker&&v.options.marker.radius,this.options.marker&&this.options.marker.radius,4),v},m.destroy=k,m.generatePoints=function n(){const g=this.chart,b={};E.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(p=>{p.linksFrom.length=0,p.linksTo.length=0,p.level=p.options.level}),this.points.forEach(p=>{T(p.from)&&(b[p.from]||(b[p.from]=this.createNode(p.from)),b[p.from].linksFrom.push(p),p.fromNode=b[p.from],g.styledMode?p.colorIndex=c(p.options.colorIndex,b[p.from].colorIndex):p.color=p.options.color||b[p.from].color),T(p.to)&&(b[p.to]||(b[p.to]=this.createNode(p.to)),b[p.to].linksTo.push(p),p.toNode=b[p.to]),p.name=p.name||p.id},this),this.nodeLookup=b},m.setNodeState=d,m.updateNode=l}(h||(h={})),h}),K(S,"Series/Sankey/SankeyPoint.js",[S["Core/Series/Point.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){const{column:t}=I.seriesTypes,{defined:T}=E;return class N extends t.prototype.pointClass{applyOptions(P,c){return O.prototype.applyOptions.call(this,P,c),T(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+O.prototype.getClassName.call(this)}getFromNode(){const P=this;let h,c=-1;for(let m=0;mc&&_.fromNode!==P&&(h=_.fromNode,c=h.column)}return{fromNode:h,fromColumn:c}}setNodeColumn(){const P=this;T(P.options.column)||(P.column=0===P.linksTo.length?0:P.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}}),K(S,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
",nodeFormat:"{point.name}: {point.sum}
"}}}),K(S,"Series/Sankey/SankeyColumnComposition.js",[S["Core/Utilities.js"]],function(O){const{defined:I,relativeLength:E}=O;var t;return function(T){T.compose=function N(P,c){const h=P;return h.sankeyColumn=new j(h,c),h};class j{constructor(c,h){this.points=c,this.series=h}getTranslationFactor(c){const h=this.points,m=h.slice(),f=c.options.minLinkWidth||0;let k,s,n=0,d=(c.chart.plotSizeY||0)-(c.options.borderWidth||0)-(h.length-1)*c.nodePadding;for(;h.length;){for(n=d/h.sankeyColumn.sum(),k=!1,s=h.length;s--;)h[s].getSum()*n(f>0&&(f+=m),f+Math.max(k.getSum()*c,h.options.minLinkWidth||0)),0);return{top:0,center:.5,bottom:1}[h.options.nodeAlignment||"center"]*((h.chart.plotSizeY||0)-_)}left(c){const h=this.series,m=h.chart,_=h.options.equalNodes,f=m.inverted?m.plotHeight:m.plotWidth,k=h.nodePadding,n=this.points.reduce((s,d)=>(s>0&&(s+=k),s+(_?f/d.series.nodes.length-k:Math.max(d.getSum()*c,h.options.minLinkWidth||0))),0);return((m.plotSizeX||0)-Math.round(n))/2}sum(){return this.points.reduce((c,h)=>c+h.getSum(),0)}offset(c,h){const m=this.points,_=this.series,f=_.nodePadding;let n,k=0;if(_.is("organization")&&c.hangsFrom)return{absoluteTop:c.hangsFrom.nodeY};for(let s=0;s{const J=A&&A.colorVariation;return J&&"brightness"===J.key&&l&&r?O.parse(Y).brighten(J.to*(l/r)).get():Y})(b),v.color)),q=P(y&&y.options.colorIndex,A&&A.colorIndex,V,p,d.colorIndex)),{color:Z,colorIndex:q}},getLevelOptions:function m(s){let l,g,b,p,v,D,d={};if(N(s))for(p=T(s.from)?s.from:1,D=s.levels,g={},l=N(s.defaults)?s.defaults:{},t(D)&&(g=D.reduce((r,u)=>{let w,C,y;return N(u)&&T(u.level)&&(y=j({},u),C=P(y.levelIsConstant,l.levelIsConstant),delete y.levelIsConstant,delete y.level,w=u.level+(C?0:p-1),N(r[w])?j(!0,r[w],y):r[w]=y),r},{})),v=T(s.to)?s.to:1,b=0;b<=v;b++)d[b]=j({},l,N(g[b])?g[b]:{});return d},getNodeWidth:function k(s,d){const{chart:l,options:g}=s,{nodeDistance:b=0,nodeWidth:p=0}=g,{plotSizeX:v=1}=l;if("auto"===p){if("string"==typeof b&&/%$/.test(b))return v/(d+parseFloat(b)/100*(d-1));const D=Number(b);return(v+D)/(d||1)-D}return c(p,v)},setTreeValues:function _(s,d){const l=d.before,g=d.idRoot,r=d.points[s.i],u=r&&r.options||{},w=[];let C=0;s.levelDynamic=s.level-(!1!==d.levelIsConstant?0:d.mapIdToNode[g].level),s.name=P(r&&r.name,""),s.visible=g===s.id||!0===d.visible,"function"==typeof l&&(s=l(s,d)),s.children.forEach((A,z)=>{const V=E({},d);E(V,{index:z,siblings:s.children.length,visible:s.visible}),A=_(A,V),w.push(A),A.visible&&(C+=A.val)});const y=P(u.value,C);return s.visible=y>=0&&(C>0||s.visible),s.children=w,s.childrenTotal=C,s.isLeaf=s.visible&&!C,s.val=y,s},updateRootId:function f(s){let d,l;return N(s)&&(l=N(s.options)?s.options:{},d=P(s.rootNode,l.rootId,""),N(s.userOptions)&&(s.userOptions.rootId=d),s.rootNode=d),d}}}),K(S,"Series/Sankey/SankeySeries.js",[S["Core/Globals.js"],S["Series/NodesComposition.js"],S["Series/Sankey/SankeyPoint.js"],S["Series/Sankey/SankeySeriesDefaults.js"],S["Core/Series/SeriesRegistry.js"],S["Series/Sankey/SankeyColumnComposition.js"],S["Core/Color/Color.js"],S["Series/TreeUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c){const{column:h,line:m}=T.seriesTypes,{parse:_}=j,{getLevelOptions:f,getNodeWidth:k}=P,{clamp:n,extend:s,isObject:d,merge:l,pick:g,relativeLength:b,stableSort:p}=c;class v extends h{static getDLOptions(r){const u=d(r.optionsPoint)?r.optionsPoint.dataLabels:{},w=d(r.level)?r.level.dataLabels:{};return l({style:{}},w,u)}createNodeColumns(){const r=[];for(const u of this.nodes)u.setNodeColumn(),r[u.column]||(r[u.column]=N.compose([],this)),r[u.column].push(u);for(let u=0;u"u"&&(r[u]=N.compose([],this));return r}order(r,u){const w=this;if(typeof r.level>"u"){r.level=u;for(const C of r.linksFrom)C.toNode&&w.order(C.toNode,u+1)}}generatePoints(){if(I.generatePoints.apply(this,arguments),this.orderNodes){for(const r of this.nodes)0===r.linksTo.length&&this.order(r,0);p(this.nodes,(r,u)=>r.level-u.level)}}getNodePadding(){let r=this.options.nodePadding||0;if(this.nodeColumns){const u=this.nodeColumns.reduce((w,C)=>Math.max(w,C.length),0);u*r>this.chart.plotSizeY&&(r=this.chart.plotSizeY/u)}return r}hasData(){return!!this.processedXData.length}pointAttribs(r,u){if(!r)return{};const w=this,y=w.mapOptionsToLevel[(r.isNode?r.level:r.fromNode.level)||0]||{},A=r.options,z=y.states&&y.states[u||""]||{},V=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((q,$)=>(q[$]=g(z[$],A[$],y[$],w.options[$]),q),{}),Z=g(z.color,A.color,V.colorByPoint?r.color:y.color);return r.isNode?{fill:Z,stroke:V.borderColor,"stroke-width":V.borderWidth,opacity:V.opacity}:{fill:j.parse(Z).setOpacity(V.linkOpacity).get()}}drawTracker(){h.prototype.drawTracker.call(this,this.points),h.prototype.drawTracker.call(this,this.nodes)}drawPoints(){h.prototype.drawPoints.call(this,this.points),h.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){h.prototype.drawDataLabels.call(this,this.points),h.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns();const r=this,u=this.chart,w=this.options,C=this.nodeColumns;this.nodeWidth=k(this,C.length),this.nodePadding=this.getNodePadding(),this.translationFactor=C.reduce((A,z)=>Math.min(A,z.sankeyColumn.getTranslationFactor(r)),1/0),this.colDistance=(u.plotSizeX-this.nodeWidth-w.borderWidth)/Math.max(1,C.length-1),r.mapOptionsToLevel=f({from:1,levels:w.levels,to:C.length-1,defaults:{borderColor:w.borderColor,borderRadius:w.borderRadius,borderWidth:w.borderWidth,color:r.color,colorByPoint:w.colorByPoint,levelIsConstant:!0,linkColor:w.linkColor,linkLineWidth:w.linkLineWidth,linkOpacity:w.linkOpacity,states:w.states}});for(const A of C)for(const z of A)r.translateNode(z,A);for(const A of this.nodes)for(const z of A.linksFrom)(z.weight||z.isNull)&&z.to&&(r.translateLink(z),z.allowShadow=!1)}translateLink(r){const u=(tt,ot)=>{const st=tt.offset(r,ot)*z;return Math.min(tt.nodeY+st,tt.nodeY+(tt.shapeArgs&&tt.shapeArgs.height||0)-B)},w=r.fromNode,C=r.toNode,y=this.chart,{inverted:A}=y,z=this.translationFactor,V=this.options,Z=g(r.linkColorMode,V.linkColorMode),q=(y.inverted?-this.colDistance:this.colDistance)*V.curveFactor,$=w.nodeX,Y=C.nodeX,J=r.outgoing;let B=Math.max(r.weight*z,this.options.minLinkWidth),U=u(w,"linksFrom"),G=u(C,"linksTo"),H=this.nodeWidth,rt=Y>$+H;if(y.inverted&&(U=y.plotSizeY-U,G=(y.plotSizeY||0)-G,H=-H,B=-B,rt=$>Y),r.shapeType="path",r.linkBase=[U,U+B,G,G+B],rt&&"number"==typeof G)r.shapeArgs={d:[["M",$+H,U],["C",$+H+q,U,Y-q,G,Y,G],["L",Y+(J?H:0),G+B/2],["L",Y,G+B],["C",Y-q,G+B,$+H+q,U+B,$+H,U+B],["Z"]]};else if("number"==typeof G){const st=Y-20-B,at=Y-20,ft=$+H,vt=ft+20,gt=vt+B,dt=U+B,ct=dt+20,mt=ct+(y.plotHeight-U-B),pt=mt+20,bt=pt+B,xt=G+B,Et=xt+20,Pt=pt+.7*B,zt=Y-.7*B,Xt=ft+.7*B;r.shapeArgs={d:[["M",ft,U],["C",Xt,U,gt,dt-.7*B,gt,ct],["L",gt,mt],["C",gt,Pt,Xt,bt,ft,bt],["L",Y,bt],["C",zt,bt,st,Pt,st,mt],["L",st,Et],["C",st,xt-.7*B,zt,G,Y,G],["L",Y,xt],["C",at,xt,at,xt,at,Et],["L",at,mt],["C",at,pt,at,pt,Y,pt],["L",ft,pt],["C",vt,pt,vt,pt,vt,mt],["L",vt,ct],["C",vt,dt,vt,dt,ft,dt],["Z"]]}}if(r.dlBox={x:$+(Y-$+H)/2,y:U+(G-U)/2,height:B,width:0},r.tooltipPos=y.inverted?[y.plotSizeY-r.dlBox.y-B/2,y.plotSizeX-r.dlBox.x]:[r.dlBox.x,r.dlBox.y+B/2],r.y=r.plotY=1,r.x=r.plotX=1,!r.options.color)if("from"===Z)r.color=w.color;else if("to"===Z)r.color=C.color;else if("gradient"===Z){const tt=_(w.color).get(),ot=_(C.color).get();r.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,A?tt:ot],[1,A?ot:tt]]}}}translateNode(r,u){const w=this.translationFactor,C=this.chart,y=this.options,{borderRadius:A,borderWidth:z=0}=y,V=r.getSum(),Z=Math.max(Math.round(V*w),this.options.minLinkWidth),q=Math.round(this.nodeWidth),$=Math.round(z)%2/2,Y=u.sankeyColumn.offset(r,w),J=Math.floor(g(Y.absoluteTop,u.sankeyColumn.top(w)+Y.relativeTop))+$,B=Math.floor(this.colDistance*r.column+z/2)+b(r.options[C.inverted?"offsetVertical":"offsetHorizontal"]||0,q)+$,U=C.inverted?C.plotSizeX-B:B;if(r.sum=V,V){r.shapeType="roundedRect",r.nodeX=U,r.nodeY=J;let G=U,H=J,rt=r.options.width||y.width||q,tt=r.options.height||y.height||Z;const ot=n(b("object"==typeof A?A.radius:A||0,rt),0,Z/2);C.inverted&&(G=U-q,H=C.plotSizeY-J-Z,rt=r.options.height||y.height||q,tt=r.options.width||y.width||Z),r.dlOptions=v.getDLOptions({level:this.mapOptionsToLevel[r.level],optionsPoint:r.options}),r.plotX=1,r.plotY=1,r.tooltipPos=C.inverted?[C.plotSizeY-H-tt/2,C.plotSizeX-G-rt/2]:[G+rt/2,H+tt/2],r.shapeArgs={x:G,y:H,width:rt,height:tt,r:ot,display:r.hasShape()?"":"none"}}else r.dlOptions={enabled:!1}}}return v.defaultOptions=l(h.defaultOptions,t),I.compose(E,v),s(v.prototype,{animate:m.prototype.animate,createNode:I.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:E,searchPoint:O.noop}),T.registerSeriesType("sankey",v),v}),K(S,"masters/modules/sankey.src.js",[S["Core/Globals.js"]],function(O){return O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))}}]); \ No newline at end of file diff --git a/www/z4d/846.b75ced3ca2bc41c3.js b/www/z4d/846.b75ced3ca2bc41c3.js new file mode 100644 index 000000000..7e0bb9118 --- /dev/null +++ b/www/z4d/846.b75ced3ca2bc41c3.js @@ -0,0 +1 @@ +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[846],{2846:(W,Y,m)=>{"use strict";m.r(Y),m.d(Y,{ToolsModule:()=>ln});var q=m(93887),e=m(54438),h=m(60177);const R=["dialogPopup"],H=["hueSlider"],P=["alphaSlider"];function y(i,l){if(1&i&&e.nrm(0,"div"),2&i){const t=e.XpG();e.ZvI("arrow arrow-",t.cpUsePosition,""),e.xc7("left",t.cpArrowPosition)("top",t.arrowTop,"px")}}function z(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",28),e.bIt("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onColorChange(n))})("dragStart",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onDragStart("saturation-lightness"))})("dragEnd",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onDragEnd("saturation-lightness"))}),e.nrm(1,"div",16),e.k0s()}if(2&i){const t=e.XpG();e.xc7("background-color",t.hueSliderColor),e.Y8G("rgX",1)("rgY",1),e.R7$(),e.xc7("top",null==t.slider?null:t.slider.v,"px")("left",null==t.slider?null:t.slider.s,"px")}}function M(i,l){1&i&&(e.qSk(),e.j41(0,"svg",29),e.nrm(1,"path",30)(2,"path",31),e.k0s())}function u(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",32),e.bIt("click",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAddPresetColor(n,r.selectedColor))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG();e.HbH(t.cpAddColorButtonClass),e.Y8G("disabled",t.cpPresetColors&&t.cpPresetColors.length>=t.cpMaxPresetColorsLength),e.R7$(),e.SpI(" ",t.cpAddColorButtonText," ")}}function g(i,l){1&i&&e.nrm(0,"div",33)}function x(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.cmykText?null:t.cmykText.a)}}function f(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function b(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",34)(1,"div",35)(2,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onCyanInput(n))}),e.k0s(),e.j41(3,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onMagentaInput(n))}),e.k0s(),e.j41(4,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onYellowInput(n))}),e.k0s(),e.j41(5,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onBlackInput(n))}),e.k0s(),e.DNE(6,x,1,2,"input",37),e.k0s(),e.j41(7,"div",35)(8,"div"),e.EFF(9,"C"),e.k0s(),e.j41(10,"div"),e.EFF(11,"M"),e.k0s(),e.j41(12,"div"),e.EFF(13,"Y"),e.k0s(),e.j41(14,"div"),e.EFF(15,"K"),e.k0s(),e.DNE(16,f,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",3!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.c),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.m),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.y),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.k),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(10),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function Z(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function U(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function G(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",40)(1,"div",35)(2,"input",41),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onHueInput(n))}),e.k0s(),e.j41(3,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onSaturationInput(n))}),e.k0s(),e.j41(4,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onLightnessInput(n))}),e.k0s(),e.DNE(5,Z,1,2,"input",37),e.k0s(),e.j41(6,"div",35)(7,"div"),e.EFF(8,"H"),e.k0s(),e.j41(9,"div"),e.EFF(10,"S"),e.k0s(),e.j41(11,"div"),e.EFF(12,"L"),e.k0s(),e.DNE(13,U,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",2!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",360)("value",null==t.hslaText?null:t.hslaText.h),e.R7$(),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.s),e.R7$(),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(8),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function L(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.rgbaText?null:t.rgbaText.a)}}function N(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function S(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",42)(1,"div",35)(2,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onRedInput(n))}),e.k0s(),e.j41(3,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onGreenInput(n))}),e.k0s(),e.j41(4,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onBlueInput(n))}),e.k0s(),e.DNE(5,L,1,2,"input",37),e.k0s(),e.j41(6,"div",35)(7,"div"),e.EFF(8,"R"),e.k0s(),e.j41(9,"div"),e.EFF(10,"G"),e.k0s(),e.j41(11,"div"),e.EFF(12,"B"),e.k0s(),e.DNE(13,N,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",1!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.r),e.R7$(),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.g),e.R7$(),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.b),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(8),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function de(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",t.hexAlpha)}}function ue(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function ge(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",44)(1,"div",35)(2,"input",45),e.bIt("blur",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onHexInput(null))})("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onHexInput(n))}),e.k0s(),e.DNE(3,de,1,2,"input",37),e.k0s(),e.j41(4,"div",35)(5,"div"),e.EFF(6,"Hex"),e.k0s(),e.DNE(7,ue,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",0!==t.format?"none":"block"),e.AVh("hex-alpha","forced"===t.cpAlphaChannel),e.R7$(2),e.Y8G("value",t.hexText),e.R7$(),e.Y8G("ngIf","forced"===t.cpAlphaChannel),e.R7$(4),e.Y8G("ngIf","forced"===t.cpAlphaChannel)}}function me(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function he(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",46)(1,"div",35)(2,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onValueInput(n))}),e.k0s(),e.DNE(3,me,1,2,"input",37),e.k0s(),e.j41(4,"div",35)(5,"div"),e.EFF(6,"V"),e.k0s(),e.j41(7,"div"),e.EFF(8,"A"),e.k0s()()()}if(2&i){const t=e.XpG();e.R7$(2),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function fe(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",47)(1,"span",48),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onFormatToggle(-1))}),e.k0s(),e.j41(2,"span",48),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onFormatToggle(1))}),e.k0s()()}}function ve(i,l){if(1&i){const t=e.RV6();e.j41(0,"span",55),e.bIt("click",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG(3);return e.Njj(s.onRemovePresetColor(n,r))}),e.k0s()}if(2&i){const t=e.XpG(4);e.HbH(t.cpRemoveColorButtonClass)}}function Ce(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",53),e.bIt("click",function(){const n=e.eBV(t).$implicit,r=e.XpG(3);return e.Njj(r.setColorFromString(n))}),e.DNE(1,ve,1,3,"span",54),e.k0s()}if(2&i){const t=l.$implicit,o=e.XpG(3);e.xc7("background-color",t),e.R7$(),e.Y8G("ngIf",o.cpAddColorButton)}}function Fe(i,l){if(1&i&&(e.j41(0,"div"),e.DNE(1,Ce,2,3,"div",52),e.k0s()),2&i){const t=e.XpG(2);e.HbH(t.cpPresetColorsClass),e.R7$(),e.Y8G("ngForOf",t.cpPresetColors)}}function _e(i,l){if(1&i&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&i){const t=e.XpG(2);e.HbH(t.cpPresetEmptyMessageClass),e.R7$(),e.JRh(t.cpPresetEmptyMessage)}}function be(i,l){if(1&i&&(e.j41(0,"div",49),e.nrm(1,"hr"),e.j41(2,"div",50),e.EFF(3),e.k0s(),e.DNE(4,Fe,2,4,"div",51)(5,_e,2,4,"div",51),e.k0s()),2&i){const t=e.XpG();e.R7$(3),e.JRh(t.cpPresetLabel),e.R7$(),e.Y8G("ngIf",null==t.cpPresetColors?null:t.cpPresetColors.length),e.R7$(),e.Y8G("ngIf",!(null!=t.cpPresetColors&&t.cpPresetColors.length)&&t.cpAddColorButton)}}function ke(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",58),e.bIt("click",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onCancelColor(n))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG(2);e.HbH(t.cpCancelButtonClass),e.R7$(),e.JRh(t.cpCancelButtonText)}}function Ee(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",58),e.bIt("click",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG(2);e.HbH(t.cpOKButtonClass),e.R7$(),e.JRh(t.cpOKButtonText)}}function ye(i,l){if(1&i&&(e.j41(0,"div",56),e.DNE(1,ke,2,4,"button",57)(2,Ee,2,4,"button",57),e.k0s()),2&i){const t=e.XpG();e.R7$(),e.Y8G("ngIf",t.cpCancelButton),e.R7$(),e.Y8G("ngIf",t.cpOKButton)}}function xe(i,l){1&i&&e.eu8(0)}function we(i,l){if(1&i&&(e.j41(0,"div",59),e.DNE(1,xe,1,0,"ng-container",60),e.k0s()),2&i){const t=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",t.cpExtraTemplate)}}var k=function(i){return i[i.HEX=0]="HEX",i[i.RGBA=1]="RGBA",i[i.HSLA=2]="HSLA",i[i.CMYK=3]="CMYK",i}(k||{});class j{r;g;b;a;constructor(l,t,o,n){this.r=l,this.g=t,this.b=o,this.a=n}}class K{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}class B{h;s;l;a;constructor(l,t,o,n){this.h=l,this.s=t,this.l=o,this.a=n}}class O{c;m;y;k;a;constructor(l,t,o,n,r=1){this.c=l,this.m=t,this.y=o,this.k=n,this.a=r}}let Te=(()=>{class i{rg;text;newValue=new e.bkB;inputChange(t){const o=t.target.value;if(void 0===this.rg)this.newValue.emit(o);else{const n=parseFloat(o);this.newValue.emit({v:n,rg:this.rg})}}static \u0275fac=function(o){return new(o||i)};static \u0275dir=e.FsC({type:i,selectors:[["","text",""]],hostBindings:function(o,n){1&o&&e.bIt("input",function(s){return n.inputChange(s)})},inputs:{rg:"rg",text:"text"},outputs:{newValue:"newValue"}})}return i})(),Ie=(()=>{class i{elRef;listenerMove;listenerStop;rgX;rgY;slider;dragEnd=new e.bkB;dragStart=new e.bkB;newValue=new e.bkB;mouseDown(t){this.start(t)}touchStart(t){this.start(t)}constructor(t){this.elRef=t,this.listenerMove=o=>this.move(o),this.listenerStop=()=>this.stop()}move(t){t.preventDefault(),this.setCursor(t)}start(t){this.setCursor(t),t.stopPropagation(),document.addEventListener("mouseup",this.listenerStop),document.addEventListener("touchend",this.listenerStop),document.addEventListener("mousemove",this.listenerMove),document.addEventListener("touchmove",this.listenerMove),this.dragStart.emit()}stop(){document.removeEventListener("mouseup",this.listenerStop),document.removeEventListener("touchend",this.listenerStop),document.removeEventListener("mousemove",this.listenerMove),document.removeEventListener("touchmove",this.listenerMove),this.dragEnd.emit()}getX(t){const o=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageX?t.pageX:t.touches[0].pageX)-o.left-window.pageXOffset}getY(t){const o=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageY?t.pageY:t.touches[0].pageY)-o.top-window.pageYOffset}setCursor(t){const o=this.elRef.nativeElement.offsetWidth,n=this.elRef.nativeElement.offsetHeight,r=Math.max(0,Math.min(this.getX(t),o)),s=Math.max(0,Math.min(this.getY(t),n));void 0!==this.rgX&&void 0!==this.rgY?this.newValue.emit({s:r/o,v:1-s/n,rgX:this.rgX,rgY:this.rgY}):void 0===this.rgX&&void 0!==this.rgY?this.newValue.emit({v:s/n,rgY:this.rgY}):void 0!==this.rgX&&void 0===this.rgY&&this.newValue.emit({v:r/o,rgX:this.rgX})}static \u0275fac=function(o){return new(o||i)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:i,selectors:[["","slider",""]],hostBindings:function(o,n){1&o&&e.bIt("mousedown",function(s){return n.mouseDown(s)})("touchstart",function(s){return n.touchStart(s)})},inputs:{rgX:"rgX",rgY:"rgY",slider:"slider"},outputs:{dragEnd:"dragEnd",dragStart:"dragStart",newValue:"newValue"}})}return i})();class ne{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}class oe{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}let J=(()=>{class i{active=null;setActive(t){this.active&&this.active!==t&&"inline"!==this.active.cpDialogDisplay&&this.active.closeDialog(),this.active=t}hsva2hsla(t){const o=t.h,n=t.s,r=t.v,s=t.a;if(0===r)return new B(o,0,0,s);if(0===n&&1===r)return new B(o,1,1,s);{const a=r*(2-n)/2;return new B(o,r*n/(1-Math.abs(2*a-1)),a,s)}}hsla2hsva(t){const o=Math.min(t.h,1),n=Math.min(t.s,1),r=Math.min(t.l,1),s=Math.min(t.a,1);if(0===r)return new K(o,0,0,s);{const a=r+n*(1-Math.abs(2*r-1))/2;return new K(o,2*(a-r)/a,a,s)}}hsvaToRgba(t){let o,n,r;const s=t.h,a=t.s,d=t.v,p=t.a,F=Math.floor(6*s),_=6*s-F,C=d*(1-a),E=d*(1-_*a),w=d*(1-(1-_)*a);switch(F%6){case 0:o=d,n=w,r=C;break;case 1:o=E,n=d,r=C;break;case 2:o=C,n=d,r=w;break;case 3:o=C,n=E,r=d;break;case 4:o=w,n=C,r=d;break;case 5:o=d,n=C,r=E;break;default:o=0,n=0,r=0}return new j(o,n,r,p)}cmykToRgb(t){return new j((1-t.c)*(1-t.k),(1-t.m)*(1-t.k),(1-t.y)*(1-t.k),t.a)}rgbaToCmyk(t){const o=1-Math.max(t.r,t.g,t.b);return 1===o?new O(0,0,0,1,t.a):new O((1-t.r-o)/(1-o),(1-t.g-o)/(1-o),(1-t.b-o)/(1-o),o,t.a)}rgbaToHsva(t){let o,n;const r=Math.min(t.r,1),s=Math.min(t.g,1),a=Math.min(t.b,1),d=Math.min(t.a,1),p=Math.max(r,s,a),F=Math.min(r,s,a),_=p,C=p-F;if(n=0===p?0:C/p,p===F)o=0;else{switch(p){case r:o=(s-a)/C+(s{class i{ngZone;elRef;cdRef;document;platformId;service;isIE10=!1;cmyk;hsva;width;height;cmykColor;outputColor;initialColor;fallbackColor;listenerResize;listenerMouseDown;directiveInstance;sliderH;sliderDimMax;directiveElementRef;dialogArrowSize=10;dialogArrowOffset=15;dialogInputFields=[k.HEX,k.RGBA,k.HSLA,k.CMYK];useRootViewContainer=!1;show;hidden;top;left;position;format;slider;hexText;hexAlpha;cmykText;hslaText;rgbaText;arrowTop;selectedColor;hueSliderColor;alphaSliderColor;cpWidth;cpHeight;cpColorMode;cpCmykEnabled;cpAlphaChannel;cpOutputFormat;cpDisableInput;cpDialogDisplay;cpIgnoredElements;cpSaveClickOutside;cpCloseClickOutside;cpPosition;cpUsePosition;cpPositionOffset;cpOKButton;cpOKButtonText;cpOKButtonClass;cpCancelButton;cpCancelButtonText;cpCancelButtonClass;cpEyeDropper;eyeDropperSupported;cpPresetLabel;cpPresetColors;cpPresetColorsClass;cpMaxPresetColorsLength;cpPresetEmptyMessage;cpPresetEmptyMessageClass;cpAddColorButton;cpAddColorButtonText;cpAddColorButtonClass;cpRemoveColorButtonClass;cpArrowPosition;cpTriggerElement;cpExtraTemplate;dialogElement;hueSlider;alphaSlider;handleEsc(t){this.show&&"popup"===this.cpDialogDisplay&&this.onCancelColor(t)}handleEnter(t){this.show&&"popup"===this.cpDialogDisplay&&this.onAcceptColor(t)}constructor(t,o,n,r,s,a){this.ngZone=t,this.elRef=o,this.cdRef=n,this.document=r,this.platformId=s,this.service=a,this.eyeDropperSupported=(0,h.UE)(this.platformId)&&"EyeDropper"in this.document.defaultView}ngOnInit(){this.slider=new ne(0,0,0,0),this.sliderDimMax=new oe(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.format=this.cpCmykEnabled?k.CMYK:"rgba"===this.cpOutputFormat?k.RGBA:"hsla"===this.cpOutputFormat?k.HSLA:k.HEX,this.listenerMouseDown=n=>{this.onMouseDown(n)},this.listenerResize=()=>{this.onResize()},this.openDialog(this.initialColor,!1)}ngOnDestroy(){this.closeDialog()}ngAfterViewInit(){230===this.cpWidth&&"inline"!==this.cpDialogDisplay||(this.sliderDimMax=new oe(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.updateColorPicker(!1),this.cdRef.detectChanges())}openDialog(t,o=!0){this.service.setActive(this),this.width||(this.cpWidth=this.directiveElementRef.nativeElement.offsetWidth),this.height||(this.height=320),this.setInitialColor(t),this.setColorFromString(t,o),this.openColorPicker()}closeDialog(){this.closeColorPicker()}setupDialog(t,o,n,r,s,a,d,p,F,_,C,E,w,te,X,T,an,cn,pn,dn,un,gn,mn,hn,fn,vn,Cn,Fn,_n,bn,kn,En,yn,xn,wn,jn,An,Tn){this.setInitialColor(n),this.setColorMode(p),this.isIE10=10===function Ae(){let i="";typeof navigator<"u"&&(i=navigator.userAgent.toLowerCase());const l=i.indexOf("msie ");return l>0&&parseInt(i.substring(l+5,i.indexOf(".",l)),10)}(),this.directiveInstance=t,this.directiveElementRef=o,this.cpDisableInput=E,this.cpCmykEnabled=F,this.cpAlphaChannel=_,this.cpOutputFormat=C,this.cpDialogDisplay=a,this.cpIgnoredElements=w,this.cpSaveClickOutside=te,this.cpCloseClickOutside=X,this.useRootViewContainer=T,this.width=this.cpWidth=parseInt(r,10),this.height=this.cpHeight=parseInt(s,10),this.cpPosition=an,this.cpPositionOffset=parseInt(cn,10),this.cpOKButton=vn,this.cpOKButtonText=Fn,this.cpOKButtonClass=Cn,this.cpCancelButton=_n,this.cpCancelButtonText=kn,this.cpCancelButtonClass=bn,this.cpEyeDropper=jn,this.fallbackColor=d||"#fff",this.setPresetConfig(dn,un),this.cpPresetColorsClass=gn,this.cpMaxPresetColorsLength=mn,this.cpPresetEmptyMessage=hn,this.cpPresetEmptyMessageClass=fn,this.cpAddColorButton=En,this.cpAddColorButtonText=xn,this.cpAddColorButtonClass=yn,this.cpRemoveColorButtonClass=wn,this.cpTriggerElement=An,this.cpExtraTemplate=Tn,pn||(this.dialogArrowOffset=0),"inline"===a&&(this.dialogArrowSize=0,this.dialogArrowOffset=0),"hex"===C&&"always"!==_&&"forced"!==_&&(this.cpAlphaChannel="disabled")}setColorMode(t){switch(t.toString().toUpperCase()){case"1":case"C":case"COLOR":default:this.cpColorMode=1;break;case"2":case"G":case"GRAYSCALE":this.cpColorMode=2;break;case"3":case"P":case"PRESETS":this.cpColorMode=3}}setInitialColor(t){this.initialColor=t}setPresetConfig(t,o){this.cpPresetLabel=t,this.cpPresetColors=o}setColorFromString(t,o=!0,n=!0){let r;"always"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel?(r=this.service.stringToHsva(t,!0),!r&&!this.hsva&&(r=this.service.stringToHsva(t,!1))):r=this.service.stringToHsva(t,!1),!r&&!this.hsva&&(r=this.service.stringToHsva(this.fallbackColor,!1)),r&&(this.hsva=r,this.sliderH=this.hsva.h,"hex"===this.cpOutputFormat&&"disabled"===this.cpAlphaChannel&&(this.hsva.a=1),this.updateColorPicker(o,n))}onResize(){"fixed"===this.position?this.setDialogPosition():"inline"!==this.cpDialogDisplay&&this.closeColorPicker()}onDragEnd(t){this.directiveInstance.sliderDragEnd({slider:t,color:this.outputColor})}onDragStart(t){this.directiveInstance.sliderDragStart({slider:t,color:this.outputColor})}onMouseDown(t){this.show&&!this.isIE10&&"popup"===this.cpDialogDisplay&&t.target!==this.directiveElementRef.nativeElement&&!this.isDescendant(this.elRef.nativeElement,t.target)&&!this.isDescendant(this.directiveElementRef.nativeElement,t.target)&&0===this.cpIgnoredElements.filter(o=>o===t.target).length&&this.ngZone.run(()=>{this.cpSaveClickOutside?this.directiveInstance.colorSelected(this.outputColor):(this.hsva=null,this.setColorFromString(this.initialColor,!1),this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor),this.directiveInstance.colorCanceled()),this.cpCloseClickOutside&&this.closeColorPicker()})}onAcceptColor(t){t.stopPropagation(),this.outputColor&&this.directiveInstance.colorSelected(this.outputColor),"popup"===this.cpDialogDisplay&&this.closeColorPicker()}onCancelColor(t){this.hsva=null,t.stopPropagation(),this.directiveInstance.colorCanceled(),this.setColorFromString(this.initialColor,!0),"popup"===this.cpDialogDisplay&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor,!0),this.closeColorPicker())}onEyeDropper(){this.eyeDropperSupported&&(new window.EyeDropper).open().then(o=>{this.setColorFromString(o.sRGBHex,!0)})}onFormatToggle(t){const o=this.dialogInputFields.length-(this.cpCmykEnabled?0:1),n=((this.dialogInputFields.indexOf(this.format)+t)%o+o)%o;this.format=this.dialogInputFields[n]}onColorChange(t){this.hsva.s=t.s/t.rgX,this.hsva.v=t.v/t.rgY,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"lightness",value:this.hsva.v,color:this.outputColor}),this.directiveInstance.sliderChanged({slider:"saturation",value:this.hsva.s,color:this.outputColor})}onHueChange(t){this.hsva.h=t.v/t.rgX,this.sliderH=this.hsva.h,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"hue",value:this.hsva.h,color:this.outputColor})}onValueChange(t){this.hsva.v=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"value",value:this.hsva.v,color:this.outputColor})}onAlphaChange(t){this.hsva.a=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"alpha",value:this.hsva.a,color:this.outputColor})}onHexInput(t){if(null===t)this.updateColorPicker();else{t&&"#"!==t[0]&&(t="#"+t);let o=/^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;"always"===this.cpAlphaChannel&&(o=/^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi);const n=o.test(t);n&&(t.length<5&&(t="#"+t.substring(1).split("").map(r=>r+r).join("")),"forced"===this.cpAlphaChannel&&(t+=Math.round(255*this.hsva.a).toString(16)),this.setColorFromString(t,!0,!1)),this.directiveInstance.inputChanged({input:"hex",valid:n,value:t,color:this.outputColor})}}onRedInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.r=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"red",valid:n,value:o.r,color:this.outputColor})}onBlueInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.b=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"blue",valid:n,value:o.b,color:this.outputColor})}onGreenInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.g=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"green",valid:n,value:o.g,color:this.outputColor})}onHueInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.h=t.v/t.rg,this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"hue",valid:o,value:this.hsva.h,color:this.outputColor})}onValueInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.v=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"value",valid:o,value:this.hsva.v,color:this.outputColor})}onAlphaInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.a=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"alpha",valid:o,value:this.hsva.a,color:this.outputColor})}onLightnessInput(t){const o=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.l=t.v/t.rg,this.hsva=this.service.hsla2hsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"lightness",valid:n,value:o.l,color:this.outputColor})}onSaturationInput(t){const o=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.s=t.v/t.rg,this.hsva=this.service.hsla2hsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"saturation",valid:n,value:o.s,color:this.outputColor})}onCyanInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.c=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"cyan",valid:!0,value:this.cmyk.c,color:this.outputColor})}onMagentaInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.m=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"magenta",valid:!0,value:this.cmyk.m,color:this.outputColor})}onYellowInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.y=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"yellow",valid:!0,value:this.cmyk.y,color:this.outputColor})}onBlackInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.k=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"black",valid:!0,value:this.cmyk.k,color:this.outputColor})}onAddPresetColor(t,o){t.stopPropagation(),this.cpPresetColors.filter(n=>n===o).length||(this.cpPresetColors=this.cpPresetColors.concat(o),this.directiveInstance.presetColorsChanged(this.cpPresetColors))}onRemovePresetColor(t,o){t.stopPropagation(),this.cpPresetColors=this.cpPresetColors.filter(n=>n!==o),this.directiveInstance.presetColorsChanged(this.cpPresetColors)}openColorPicker(){this.show||(this.show=!0,this.hidden=!0,setTimeout(()=>{this.hidden=!1,this.setDialogPosition(),this.cdRef.detectChanges()},0),this.directiveInstance.stateChanged(!0),this.isIE10||this.ngZone.runOutsideAngular(()=>{ie?document.addEventListener("touchstart",this.listenerMouseDown):document.addEventListener("mousedown",this.listenerMouseDown)}),window.addEventListener("resize",this.listenerResize))}closeColorPicker(){this.show&&(this.show=!1,this.directiveInstance.stateChanged(!1),this.isIE10||(ie?document.removeEventListener("touchstart",this.listenerMouseDown):document.removeEventListener("mousedown",this.listenerMouseDown)),window.removeEventListener("resize",this.listenerResize),this.cdRef.destroyed||this.cdRef.detectChanges())}updateColorPicker(t=!0,o=!0,n=!1){if(this.sliderDimMax){let r,s,a;2===this.cpColorMode&&(this.hsva.s=0);const d=this.outputColor;if(s=this.service.hsva2hsla(this.hsva),this.cpCmykEnabled?(n?(a=this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk)),this.hsva=this.service.rgbaToHsva(a)):(a=this.service.hsvaToRgba(this.hsva),this.cmyk=this.service.denormalizeCMYK(this.service.rgbaToCmyk(a))),a=this.service.denormalizeRGBA(a),this.sliderH=this.hsva.h):a=this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva)),r=this.service.denormalizeRGBA(this.service.hsvaToRgba(new K(this.sliderH||this.hsva.h,1,1,1))),o&&(this.hslaText=new B(Math.round(360*s.h),Math.round(100*s.s),Math.round(100*s.l),Math.round(100*s.a)/100),this.rgbaText=new j(a.r,a.g,a.b,Math.round(100*a.a)/100),this.cpCmykEnabled&&(this.cmykText=new O(this.cmyk.c,this.cmyk.m,this.cmyk.y,this.cmyk.k,Math.round(100*this.cmyk.a)/100)),this.hexText=this.service.rgbaToHex(a,"always"===this.cpAlphaChannel),this.hexAlpha=this.rgbaText.a),"auto"===this.cpOutputFormat&&this.format!==k.RGBA&&this.format!==k.CMYK&&this.format!==k.HSLA&&this.hsva.a<1&&(this.format=this.hsva.a<1?k.RGBA:k.HEX),this.hueSliderColor="rgb("+r.r+","+r.g+","+r.b+")",this.alphaSliderColor="rgb("+a.r+","+a.g+","+a.b+")",this.outputColor=this.service.outputFormat(this.hsva,this.cpOutputFormat,this.cpAlphaChannel),this.selectedColor=this.service.outputFormat(this.hsva,"rgba",null),this.format!==k.CMYK)this.cmykColor="";else if("always"===this.cpAlphaChannel||"enabled"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel){const p=Math.round(100*this.cmyk.a)/100;this.cmykColor=`cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${p})`}else this.cmykColor=`cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;this.slider=new ne((this.sliderH||this.hsva.h)*this.sliderDimMax.h-8,this.hsva.s*this.sliderDimMax.s-8,(1-this.hsva.v)*this.sliderDimMax.v-8,this.hsva.a*this.sliderDimMax.a-8),t&&d!==this.outputColor&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.outputColor))}}setDialogPosition(){if("inline"===this.cpDialogDisplay)this.position="relative";else{let n,t="static",o="",r=null,s=null,a=this.directiveElementRef.nativeElement.parentNode;const d=this.dialogElement.nativeElement.offsetHeight;for(;null!==a&&"HTML"!==a.tagName;){if(n=window.getComputedStyle(a),t=n.getPropertyValue("position"),o=n.getPropertyValue("transform"),"static"!==t&&null===r&&(r=a),o&&"none"!==o&&null===s&&(s=a),"fixed"===t){r=s;break}a=a.parentNode}const p=this.createDialogBox(this.directiveElementRef.nativeElement,"fixed"!==t);if(this.useRootViewContainer||"fixed"===t&&(!r||r instanceof HTMLUnknownElement))this.top=p.top,this.left=p.left;else{null===r&&(r=a);const T=this.createDialogBox(r,"fixed"!==t);this.top=p.top-T.top,this.left=p.left-T.left}"fixed"===t&&(this.position="fixed");let F=this.cpPosition;const _=this.dialogElement.nativeElement.getBoundingClientRect();switch("auto"===this.cpPosition&&(F=function je(i,l){let t="right",o="bottom";const{height:n,width:r}=i,{top:s,left:a}=l,d=s+l.height,p=a+l.width,F=s-n<0,_=d+n>(window.innerHeight||document.documentElement.clientHeight),C=a-r<0,E=p+r>(window.innerWidth||document.documentElement.clientWidth);return _&&(o="top"),F&&(o="bottom"),C&&(t="right"),E&&(t="left"),F&&_&&C&&E?["left","right","top","bottom"].reduce((X,T)=>i[X]>i[T]?X:T):C&&E?F?"bottom":_||s>d?"top":"bottom":F&&_?C?"right":E||a>p?"left":"right":`${o}-${t}`}(_,this.cpTriggerElement.nativeElement.getBoundingClientRect())),this.arrowTop="top"===F?d-1:void 0,this.cpArrowPosition=void 0,F){case"top":this.top-=d+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*p.width-this.dialogArrowOffset;break;case"bottom":this.top+=p.height+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*p.width-this.dialogArrowOffset;break;case"top-left":case"left-top":this.top-=d-p.height+p.height*this.cpPositionOffset/100,this.left-=this.cpWidth+this.dialogArrowSize-2-this.dialogArrowOffset;break;case"top-right":case"right-top":this.top-=d-p.height+p.height*this.cpPositionOffset/100,this.left+=p.width+this.dialogArrowSize-2-this.dialogArrowOffset;break;case"left":case"bottom-left":case"left-bottom":this.top+=p.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left-=this.cpWidth+this.dialogArrowSize-2;break;default:this.top+=p.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left+=p.width+this.dialogArrowSize-2}const C=window.innerHeight,E=window.innerWidth,w=this.elRef.nativeElement.getBoundingClientRect();this.top+_.height>C&&(this.top=C-_.height,this.cpArrowPosition=w.x/2-20),this.left+_.width>E&&(this.left=E-_.width,this.cpArrowPosition=w.x/2-20),this.cpUsePosition=F}}isDescendant(t,o){let n=o.parentNode;for(;null!==n;){if(n===t)return!0;n=n.parentNode}return!1}createDialogBox(t,o){const{top:n,left:r}=t.getBoundingClientRect();return{top:n+(o?window.pageYOffset:0),left:r+(o?window.pageXOffset:0),width:t.offsetWidth,height:t.offsetHeight}}static \u0275fac=function(o){return new(o||i)(e.rXU(e.SKi),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(h.qQ),e.rXU(e.Agw),e.rXU(J))};static \u0275cmp=e.VBU({type:i,selectors:[["color-picker"]],viewQuery:function(o,n){if(1&o&&(e.GBs(R,7),e.GBs(H,7),e.GBs(P,7)),2&o){let r;e.mGM(r=e.lsd())&&(n.dialogElement=r.first),e.mGM(r=e.lsd())&&(n.hueSlider=r.first),e.mGM(r=e.lsd())&&(n.alphaSlider=r.first)}},hostBindings:function(o,n){1&o&&e.bIt("keyup.esc",function(s){return n.handleEsc(s)},!1,e.EBC)("keyup.enter",function(s){return n.handleEnter(s)},!1,e.EBC)},decls:30,vars:51,consts:[["dialogPopup",""],["hueSlider",""],["valueSlider",""],["alphaSlider",""],[1,"color-picker",3,"click"],[3,"left","class","top",4,"ngIf"],["class","saturation-lightness",3,"slider","rgX","rgY","background-color","newValue","dragStart","dragEnd",4,"ngIf"],[1,"hue-alpha","box"],[1,"left"],[1,"selected-color-background"],[1,"selected-color",3,"click"],["class","eyedropper-icon","xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",4,"ngIf"],["type","button",3,"class","disabled","click",4,"ngIf"],[1,"right"],["style","height: 16px;",4,"ngIf"],[1,"hue",3,"newValue","dragStart","dragEnd","slider","rgX"],[1,"cursor"],[1,"value",3,"newValue","dragStart","dragEnd","slider","rgX"],[1,"alpha",3,"newValue","dragStart","dragEnd","slider","rgX"],["class","cmyk-text",3,"display",4,"ngIf"],["class","hsla-text",3,"display",4,"ngIf"],["class","rgba-text",3,"display",4,"ngIf"],["class","hex-text",3,"hex-alpha","display",4,"ngIf"],["class","value-text",4,"ngIf"],["class","type-policy",4,"ngIf"],["class","preset-area",4,"ngIf"],["class","button-area",4,"ngIf"],["class","extra-template",4,"ngIf"],[1,"saturation-lightness",3,"newValue","dragStart","dragEnd","slider","rgX","rgY"],["xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",1,"eyedropper-icon"],["d","M0 0h24v24H0V0z","fill","none"],["d","M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"],["type","button",3,"click","disabled"],[2,"height","16px"],[1,"cmyk-text"],[1,"box"],["type","number","pattern","[0-9]*","min","0","max","100",3,"keyup.enter","newValue","text","rg","value"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue",4,"ngIf"],[4,"ngIf"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"keyup.enter","newValue","text","rg","value"],[1,"hsla-text"],["type","number","pattern","[0-9]*","min","0","max","360",3,"keyup.enter","newValue","text","rg","value"],[1,"rgba-text"],["type","number","pattern","[0-9]*","min","0","max","255",3,"keyup.enter","newValue","text","rg","value"],[1,"hex-text"],[3,"blur","keyup.enter","newValue","text","value"],[1,"value-text"],[1,"type-policy"],[1,"type-policy-arrow",3,"click"],[1,"preset-area"],[1,"preset-label"],[3,"class",4,"ngIf"],["class","preset-color",3,"backgroundColor","click",4,"ngFor","ngForOf"],[1,"preset-color",3,"click"],[3,"class","click",4,"ngIf"],[3,"click"],[1,"button-area"],["type","button",3,"class","click",4,"ngIf"],["type","button",3,"click"],[1,"extra-template"],[4,"ngTemplateOutlet"]],template:function(o,n){if(1&o){const r=e.RV6();e.j41(0,"div",4,0),e.bIt("click",function(a){return e.eBV(r),e.Njj(a.stopPropagation())}),e.DNE(2,y,1,7,"div",5)(3,z,2,8,"div",6),e.j41(4,"div",7)(5,"div",8),e.nrm(6,"div",9),e.j41(7,"div",10),e.bIt("click",function(){return e.eBV(r),e.Njj(n.eyeDropperSupported&&n.cpEyeDropper&&n.onEyeDropper())}),e.DNE(8,M,3,0,"svg",11),e.k0s(),e.DNE(9,u,2,5,"button",12),e.k0s(),e.j41(10,"div",13),e.DNE(11,g,1,0,"div",14),e.j41(12,"div",15,1),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onHueChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("hue"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("hue"))}),e.nrm(14,"div",16),e.k0s(),e.j41(15,"div",17,2),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onValueChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("value"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("value"))}),e.nrm(17,"div",16),e.k0s(),e.j41(18,"div",18,3),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onAlphaChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("alpha"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("alpha"))}),e.nrm(20,"div",16),e.k0s()()(),e.DNE(21,b,17,12,"div",19)(22,G,14,10,"div",20)(23,S,14,10,"div",21)(24,ge,8,7,"div",22)(25,he,9,3,"div",23)(26,fe,3,0,"div",24)(27,be,6,3,"div",25)(28,ye,3,2,"div",26)(29,we,2,1,"div",27),e.k0s()}2&o&&(e.xc7("display",n.show?"block":"none")("visibility",n.hidden?"hidden":"visible")("top",n.top,"px")("left",n.left,"px")("position",n.position)("height",n.cpHeight,"px")("width",n.cpWidth,"px"),e.AVh("open",n.show),e.R7$(2),e.Y8G("ngIf","popup"===n.cpDialogDisplay),e.R7$(),e.Y8G("ngIf",1===(n.cpColorMode||1)),e.R7$(4),e.xc7("background-color",n.selectedColor)("cursor",n.eyeDropperSupported&&n.cpEyeDropper?"pointer":null),e.R7$(),e.Y8G("ngIf",n.eyeDropperSupported&&n.cpEyeDropper),e.R7$(),e.Y8G("ngIf",n.cpAddColorButton),e.R7$(2),e.Y8G("ngIf","disabled"===n.cpAlphaChannel),e.R7$(),e.xc7("display",1===(n.cpColorMode||1)?"block":"none"),e.Y8G("rgX",1),e.R7$(2),e.xc7("left",null==n.slider?null:n.slider.h,"px"),e.R7$(),e.xc7("display",2===(n.cpColorMode||1)?"block":"none"),e.Y8G("rgX",1),e.R7$(2),e.xc7("right",null==n.slider?null:n.slider.v,"px"),e.R7$(),e.xc7("display","disabled"===n.cpAlphaChannel?"none":"block")("background-color",n.alphaSliderColor),e.Y8G("rgX",1),e.R7$(2),e.xc7("left",null==n.slider?null:n.slider.a,"px"),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&2===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",(null==n.cpPresetColors?null:n.cpPresetColors.length)||n.cpAddColorButton),e.R7$(),e.Y8G("ngIf",n.cpOKButton||n.cpCancelButton),e.R7$(),e.Y8G("ngIf",n.cpExtraTemplate))},dependencies:[h.Sq,h.bT,h.T3,Te,Ie],styles:['.color-picker{position:absolute;z-index:1000;width:230px;height:auto;border:#777 solid 1px;cursor:default;-webkit-user-select:none;user-select:none;background-color:#fff}.color-picker *{box-sizing:border-box;margin:0;font-size:11px}.color-picker input{width:0;height:26px;min-width:0;font-size:13px;text-align:center;color:#000}.color-picker input:invalid,.color-picker input:-moz-ui-invalid,.color-picker input:-moz-submit-invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.color-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.color-picker .arrow.arrow-top{left:8px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-bottom{top:-20px;left:8px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.color-picker .arrow.arrow-top-left,.color-picker .arrow.arrow-left-top{right:-21px;bottom:8px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-top-right,.color-picker .arrow.arrow-right-top{bottom:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom,.color-picker .arrow.arrow-bottom-left{top:8px;right:-21px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom,.color-picker .arrow.arrow-bottom-right{top:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .cursor{position:relative;width:16px;height:16px;border:#222 solid 2px;border-radius:50%;cursor:default}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{position:relative;padding:16px 8px}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{overflow:hidden;width:100%;padding:4px;font-size:11px;white-space:nowrap;text-align:left;text-overflow:ellipsis;color:#555}.color-picker .preset-area .preset-color{position:relative;display:inline-block;width:18px;height:18px;margin:4px 6px 8px;border:#a9a9a9 solid 1px;border-radius:25%;cursor:pointer}.color-picker .preset-area .preset-empty-message{min-height:18px;margin-top:4px;margin-bottom:8px;font-style:italic;text-align:center}.color-picker .hex-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{float:left;flex:1 1 auto;text-align:center;color:#555;clear:left}.color-picker .hex-text .box input{flex:1 1 auto;padding:1px;border:#a9a9a9 solid 1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{flex:1 1 auto;margin-right:8px;text-align:center;color:#555}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{float:left;flex:1;padding:1px;margin:0 8px 0 0;border:#a9a9a9 solid 1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{direction:ltr;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC)}.color-picker .value{direction:rtl;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=)}.color-picker .alpha{direction:ltr;width:100%;height:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==)}.color-picker .type-policy{position:absolute;top:218px;right:12px;width:16px;height:24px;background-size:8px 16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:center}.color-picker .type-policy .type-policy-arrow{display:block;width:100%;height:50%}.color-picker .selected-color{position:absolute;top:16px;left:8px;width:40px;height:40px;border:1px solid #a9a9a9;border-radius:50%}.color-picker .selected-color-background{width:40px;height:40px;border-radius:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC)}.color-picker .saturation-lightness{direction:ltr;width:100%;height:130px;border:none;cursor:pointer;touch-action:manipulation;background-size:100% 100%;background-image:url(data:image/png;base64,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)}.color-picker .cp-add-color-button-class{position:absolute;display:inline;padding:0;margin:3px -3px;border:0;cursor:pointer;background:transparent}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{cursor:not-allowed;color:#999}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{position:absolute;top:-5px;right:-5px;display:block;width:10px;height:10px;border-radius:50%;cursor:pointer;text-align:center;background:#fff;box-shadow:1px 1px 5px #333}.color-picker .cp-remove-color-button-class:before{content:"x";position:relative;bottom:3.5px;display:inline-block;font-size:10px}.color-picker .eyedropper-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);fill:#fff;mix-blend-mode:exclusion}\n'],encapsulation:2})}return i})(),Be=(()=>{class i{injector;cfr;appRef;vcRef;elRef;_service;dialog;dialogCreated=!1;ignoreChanges=!1;cmpRef;viewAttachedToAppRef=!1;colorPicker;cpWidth="230px";cpHeight="auto";cpToggle=!1;cpDisabled=!1;cpIgnoredElements=[];cpFallbackColor="";cpColorMode="color";cpCmykEnabled=!1;cpOutputFormat="auto";cpAlphaChannel="enabled";cpDisableInput=!1;cpDialogDisplay="popup";cpSaveClickOutside=!0;cpCloseClickOutside=!0;cpUseRootViewContainer=!1;cpPosition="auto";cpPositionOffset="0%";cpPositionRelativeToArrow=!1;cpOKButton=!1;cpOKButtonText="OK";cpOKButtonClass="cp-ok-button-class";cpCancelButton=!1;cpCancelButtonText="Cancel";cpCancelButtonClass="cp-cancel-button-class";cpEyeDropper=!1;cpPresetLabel="Preset colors";cpPresetColors;cpPresetColorsClass="cp-preset-colors-class";cpMaxPresetColorsLength=6;cpPresetEmptyMessage="No colors added";cpPresetEmptyMessageClass="preset-empty-message";cpAddColorButton=!1;cpAddColorButtonText="Add color";cpAddColorButtonClass="cp-add-color-button-class";cpRemoveColorButtonClass="cp-remove-color-button-class";cpArrowPosition=0;cpExtraTemplate;cpInputChange=new e.bkB(!0);cpToggleChange=new e.bkB(!0);cpSliderChange=new e.bkB(!0);cpSliderDragEnd=new e.bkB(!0);cpSliderDragStart=new e.bkB(!0);colorPickerOpen=new e.bkB(!0);colorPickerClose=new e.bkB(!0);colorPickerCancel=new e.bkB(!0);colorPickerSelect=new e.bkB(!0);colorPickerChange=new e.bkB(!1);cpCmykColorChange=new e.bkB(!0);cpPresetColorsChange=new e.bkB(!0);handleClick(){this.inputFocus()}handleFocus(){this.inputFocus()}handleInput(t){this.inputChange(t)}constructor(t,o,n,r,s,a){this.injector=t,this.cfr=o,this.appRef=n,this.vcRef=r,this.elRef=s,this._service=a}ngOnDestroy(){null!=this.cmpRef&&(this.viewAttachedToAppRef&&this.appRef.detachView(this.cmpRef.hostView),this.cmpRef.destroy(),this.cmpRef=null,this.dialog=null)}ngOnChanges(t){t.cpToggle&&!this.cpDisabled&&(t.cpToggle.currentValue?this.openDialog():t.cpToggle.currentValue||this.closeDialog()),t.colorPicker&&(this.dialog&&!this.ignoreChanges&&("inline"===this.cpDialogDisplay&&this.dialog.setInitialColor(t.colorPicker.currentValue),this.dialog.setColorFromString(t.colorPicker.currentValue,!1),this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay&&this.cmpRef.changeDetectorRef.detectChanges()),this.ignoreChanges=!1),(t.cpPresetLabel||t.cpPresetColors)&&this.dialog&&this.dialog.setPresetConfig(this.cpPresetLabel,this.cpPresetColors)}openDialog(){if(this.dialogCreated)this.dialog&&this.dialog.openDialog(this.colorPicker);else{let t=this.vcRef;if(this.dialogCreated=!0,this.viewAttachedToAppRef=!1,this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay){const r=this.injector.get(this.appRef.componentTypes[0],e.zZn.NULL);r!==e.zZn.NULL?t=r.vcRef||r.viewContainerRef||this.vcRef:this.viewAttachedToAppRef=!0}const o=this.cfr.resolveComponentFactory(Re);if(this.viewAttachedToAppRef)this.cmpRef=o.create(this.injector),this.appRef.attachView(this.cmpRef.hostView),document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);else{const n=e.zZn.create({providers:[],parent:t.injector});this.cmpRef=t.createComponent(o,0,n,[])}this.cmpRef.instance.setupDialog(this,this.elRef,this.colorPicker,this.cpWidth,this.cpHeight,this.cpDialogDisplay,this.cpFallbackColor,this.cpColorMode,this.cpCmykEnabled,this.cpAlphaChannel,this.cpOutputFormat,this.cpDisableInput,this.cpIgnoredElements,this.cpSaveClickOutside,this.cpCloseClickOutside,this.cpUseRootViewContainer,this.cpPosition,this.cpPositionOffset,this.cpPositionRelativeToArrow,this.cpPresetLabel,this.cpPresetColors,this.cpPresetColorsClass,this.cpMaxPresetColorsLength,this.cpPresetEmptyMessage,this.cpPresetEmptyMessageClass,this.cpOKButton,this.cpOKButtonClass,this.cpOKButtonText,this.cpCancelButton,this.cpCancelButtonClass,this.cpCancelButtonText,this.cpAddColorButton,this.cpAddColorButtonClass,this.cpAddColorButtonText,this.cpRemoveColorButtonClass,this.cpEyeDropper,this.elRef,this.cpExtraTemplate),this.dialog=this.cmpRef.instance,this.vcRef!==t&&this.cmpRef.changeDetectorRef.detectChanges()}}closeDialog(){this.dialog&&"popup"===this.cpDialogDisplay&&this.dialog.closeDialog()}cmykChanged(t){this.cpCmykColorChange.emit(t)}stateChanged(t){this.cpToggleChange.emit(t),t?this.colorPickerOpen.emit(this.colorPicker):this.colorPickerClose.emit(this.colorPicker)}colorChanged(t,o=!0){this.ignoreChanges=o,this.colorPickerChange.emit(t)}colorSelected(t){this.colorPickerSelect.emit(t)}colorCanceled(){this.colorPickerCancel.emit()}inputFocus(){const t=this.elRef.nativeElement,o=this.cpIgnoredElements.filter(n=>n===t);!this.cpDisabled&&!o.length&&(typeof document<"u"&&t===document.activeElement?this.openDialog():this.dialog&&this.dialog.show?this.closeDialog():this.openDialog())}inputChange(t){this.dialog?this.dialog.setColorFromString(t.target.value,!0):(this.colorPicker=t.target.value,this.colorPickerChange.emit(this.colorPicker))}inputChanged(t){this.cpInputChange.emit(t)}sliderChanged(t){this.cpSliderChange.emit(t)}sliderDragEnd(t){this.cpSliderDragEnd.emit(t)}sliderDragStart(t){this.cpSliderDragStart.emit(t)}presetColorsChanged(t){this.cpPresetColorsChange.emit(t)}static \u0275fac=function(o){return new(o||i)(e.rXU(e.zZn),e.rXU(e.OM3),e.rXU(e.o8S),e.rXU(e.c1b),e.rXU(e.aKT),e.rXU(J))};static \u0275dir=e.FsC({type:i,selectors:[["","colorPicker",""]],hostBindings:function(o,n){1&o&&e.bIt("click",function(){return n.handleClick()})("focus",function(){return n.handleFocus()})("input",function(s){return n.handleInput(s)})},inputs:{colorPicker:"colorPicker",cpWidth:"cpWidth",cpHeight:"cpHeight",cpToggle:"cpToggle",cpDisabled:"cpDisabled",cpIgnoredElements:"cpIgnoredElements",cpFallbackColor:"cpFallbackColor",cpColorMode:"cpColorMode",cpCmykEnabled:"cpCmykEnabled",cpOutputFormat:"cpOutputFormat",cpAlphaChannel:"cpAlphaChannel",cpDisableInput:"cpDisableInput",cpDialogDisplay:"cpDialogDisplay",cpSaveClickOutside:"cpSaveClickOutside",cpCloseClickOutside:"cpCloseClickOutside",cpUseRootViewContainer:"cpUseRootViewContainer",cpPosition:"cpPosition",cpPositionOffset:"cpPositionOffset",cpPositionRelativeToArrow:"cpPositionRelativeToArrow",cpOKButton:"cpOKButton",cpOKButtonText:"cpOKButtonText",cpOKButtonClass:"cpOKButtonClass",cpCancelButton:"cpCancelButton",cpCancelButtonText:"cpCancelButtonText",cpCancelButtonClass:"cpCancelButtonClass",cpEyeDropper:"cpEyeDropper",cpPresetLabel:"cpPresetLabel",cpPresetColors:"cpPresetColors",cpPresetColorsClass:"cpPresetColorsClass",cpMaxPresetColorsLength:"cpMaxPresetColorsLength",cpPresetEmptyMessage:"cpPresetEmptyMessage",cpPresetEmptyMessageClass:"cpPresetEmptyMessageClass",cpAddColorButton:"cpAddColorButton",cpAddColorButtonText:"cpAddColorButtonText",cpAddColorButtonClass:"cpAddColorButtonClass",cpRemoveColorButtonClass:"cpRemoveColorButtonClass",cpArrowPosition:"cpArrowPosition",cpExtraTemplate:"cpExtraTemplate"},outputs:{cpInputChange:"cpInputChange",cpToggleChange:"cpToggleChange",cpSliderChange:"cpSliderChange",cpSliderDragEnd:"cpSliderDragEnd",cpSliderDragStart:"cpSliderDragStart",colorPickerOpen:"colorPickerOpen",colorPickerClose:"colorPickerClose",colorPickerCancel:"colorPickerCancel",colorPickerSelect:"colorPickerSelect",colorPickerChange:"colorPickerChange",cpCmykColorChange:"cpCmykColorChange",cpPresetColorsChange:"cpPresetColorsChange"},exportAs:["ngxColorPicker"],features:[e.OA$]})}return i})(),Ve=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({providers:[J],imports:[h.MD]})}return i})();var De=m(2578);let Q;try{Q=!!new Blob}catch{Q=!1}let re=(()=>{class i{get isFileSaverSupported(){return Q}genType(t){if(!t||-1===t.lastIndexOf("."))return"text/plain";const o=t.substring(t.lastIndexOf(".")+1);switch(o){case"txt":return"text/plain";case"xml":case"html":return`text/${o}`;case"json":return"octet/stream";default:return`application/${o}`}}save(t,o,n,r){if(!t)throw new Error("Data argument should be a blob instance");const s=new Blob([t],{type:n||t.type||this.genType(o)});(0,De.saveAs)(s,decodeURI(o||"download"),r)}saveText(t,o,n){const r=new Blob([t]);this.save(r,o,void 0,n)}static#e=this.\u0275fac=function(o){return new(o||i)};static#t=this.\u0275prov=e.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Pe=(()=>{class i{static#e=this.\u0275fac=function(o){return new(o||i)};static#t=this.\u0275mod=e.$C({type:i});static#n=this.\u0275inj=e.G2t({})}return i})();const Me=i=>["segment",i],Ge=(i,l)=>({"segment-main":!0,expandable:i,expanded:l});function Ne(i,l){1&i&&e.nrm(0,"div",9)}function Oe(i,l){if(1&i&&(e.j41(0,"span",10),e.EFF(1),e.k0s()),2&i){const t=e.XpG().$implicit;e.R7$(),e.JRh(t.description)}}function Xe(i,l){if(1&i&&(e.j41(0,"section",11),e.nrm(1,"ngx-json-viewer",12),e.k0s()),2&i){const t=e.XpG().$implicit,o=e.XpG();e.R7$(),e.Y8G("json",t.value)("expanded",o.expanded)("depth",o.depth)("_currentDepth",o._currentDepth+1)}}function Ye(i,l){if(1&i){const t=e.RV6();e.j41(0,"section",2)(1,"section",3),e.bIt("click",function(){const n=e.eBV(t).$implicit,r=e.XpG();return e.Njj(r.toggle(n))}),e.DNE(2,Ne,1,0,"div",4),e.j41(3,"span",5),e.EFF(4),e.k0s(),e.j41(5,"span",6),e.EFF(6,": "),e.k0s(),e.DNE(7,Oe,2,1,"span",7),e.k0s(),e.DNE(8,Xe,2,4,"section",8),e.k0s()}if(2&i){const t=l.$implicit,o=e.XpG();e.Y8G("ngClass",e.eq3(6,Me,"segment-type-"+t.type)),e.R7$(),e.Y8G("ngClass",e.l_i(8,Ge,o.isExpandable(t),t.expanded)),e.R7$(),e.Y8G("ngIf",o.isExpandable(t)),e.R7$(2),e.JRh(t.key),e.R7$(3),e.Y8G("ngIf",!t.expanded||!o.isExpandable(t)),e.R7$(),e.Y8G("ngIf",t.expanded&&o.isExpandable(t))}}let se=(()=>{class i{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),"object"==typeof this.json?Object.keys(this.json).forEach(t=>{this.segments.push(this.parseKeyValue(t,this.json[t]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(t){return"object"===t.type||"array"===t.type}toggle(t){this.isExpandable(t)&&(t.expanded=!t.expanded)}parseKeyValue(t,o){const n={key:t,value:o,type:void 0,description:""+o,expanded:this.isExpanded()};switch(typeof n.value){case"number":n.type="number";break;case"boolean":n.type="boolean";break;case"function":n.type="function";break;case"string":n.type="string",n.description='"'+n.value+'"';break;case"undefined":n.type="undefined",n.description="undefined";break;case"object":null===n.value?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value))}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(t){const o=new WeakMap;return function n(r,s){let a,d;return"object"!=typeof r||null===r||r instanceof Boolean||r instanceof Date||r instanceof Number||r instanceof RegExp||r instanceof String?r:(a=o.get(r),void 0!==a?{$ref:a}:(o.set(r,s),Array.isArray(r)?(d=[],r.forEach(function(p,F){d[F]=n(p,s+"["+F+"]")})):(d={},Object.keys(r).forEach(function(p){d[p]=n(r[p],s+"["+JSON.stringify(p)+"]")})),d))}(t,"$")}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=e.VBU({type:i,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},features:[e.OA$],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(t,o){1&t&&(e.j41(0,"section",0),e.DNE(1,Ye,9,11,"section",1),e.k0s()),2&t&&(e.R7$(),e.Y8G("ngForOf",o.segments))},dependencies:[h.YU,h.Sq,h.bT,i],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),i})(),qe=(()=>{class i{}return i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=e.$C({type:i}),i.\u0275inj=e.G2t({imports:[h.MD]}),i})();var le=m(93331),V=m(38117),c=m(89417),He=m(28990),ze=m(96354),A=m(3366),v=m(19664),D=m(45794),I=m(97013);function Ue(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Device name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Nwkid"),e.k0s(),e.EFF(14),e.k0s(),e.EFF(15,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" :\n ",t.Ep," - "),e.R7$(3),e.SpI(" : ",t.NwkId,"\n ")}}function Le(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Device name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Nwkid"),e.k0s(),e.EFF(14),e.k0s(),e.EFF(15,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" :\n ",t.Ep," - "),e.R7$(3),e.SpI(" : ",t.NwkId,"\n ")}}const Ke=new V.Vy("BindingComponent");let We=(()=>{class i extends He.U{apiService;formBuilder;translate;toastr;form;clusters$;devicesSource;devicesTarget;devicesTargetFiltered;constructor(t,o,n,r){super(),this.apiService=t,this.formBuilder=o,this.translate=n,this.toastr=r}ngOnInit(){this.form=this.formBuilder.group({source:[null,c.k0.required],target:[null,c.k0.required],cluster:[null,c.k0.required]}),this.clusters$=this.apiService.getBindLSTcluster().pipe((0,ze.T)(t=>t.map(o=>(o.fullName=o.ClusterId+" "+o.ClusterDesc,o)))),this.subs.sink=this.form.get("cluster").valueChanges.subscribe(t=>{Ke.debug("change:",t),this.apiService.getBindLSTdevice(this.form.get("cluster").value).subscribe(o=>{this.devicesSource=o,this.devicesTarget=o})})}filterDevices(t){this.form.get("target").patchValue(null),this.devicesTargetFiltered=this.devicesTarget.filter(o=>t.NwkId!==o.NwkId)}putBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}putUnBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putUnBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$),e.rXU(D.tw))};static \u0275cmp=e.VBU({type:i,selectors:[["app-binding"]],features:[e.Vt3],decls:71,vars:26,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[3,"formGroup"],[1,"card"],["translate","tools.binding.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["appendTo","body","bindLabel","fullName","bindValue","ClusterId","formControlName","cluster",3,"items","multiple","closeOnSelect","placeholder"],[1,"row","mt-2"],["appendTo","body","bindLabel","ZDeviceName","formControlName","source",3,"change","items","multiple","closeOnSelect","placeholder"],["ng-option-tmp",""],["bindLabel","ZDeviceName","appendTo","body","formControlName","target",3,"items","multiple","closeOnSelect","placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.binding.button.put",1,"btn","btn-primary",3,"click","disabled"],["translate","tools.unbinding.button.put",1,"ms-2","btn","btn-primary",3,"click","disabled"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"form",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"div",3),e.EFF(7,"\n "),e.j41(8,"div",4),e.EFF(9,"\n "),e.nrm(10,"p",5),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"div",8),e.EFF(18,"\n "),e.j41(19,"div"),e.EFF(20,"\n "),e.j41(21,"ng-select",9),e.nI1(22,"translate"),e.nI1(23,"async"),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"div",10),e.EFF(30,"\n "),e.j41(31,"div",8),e.EFF(32,"\n "),e.j41(33,"div"),e.EFF(34,"\n "),e.j41(35,"ng-select",11),e.nI1(36,"translate"),e.bIt("change",function(s){return n.filterDevices(s)}),e.EFF(37,"\n "),e.DNE(38,Ue,16,4,"ng-template",12),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.j41(44,"div",10),e.EFF(45,"\n "),e.j41(46,"div",8),e.EFF(47,"\n "),e.j41(48,"div"),e.EFF(49,"\n "),e.j41(50,"ng-select",13),e.nI1(51,"translate"),e.EFF(52,"\n "),e.DNE(53,Le,16,4,"ng-template",12),e.EFF(54,"\n "),e.k0s(),e.EFF(55,"\n "),e.k0s(),e.EFF(56,"\n "),e.k0s(),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.j41(61,"div",14),e.EFF(62,"\n "),e.j41(63,"button",15),e.bIt("click",function(){return n.putBinding()}),e.k0s(),e.EFF(64,"\n "),e.j41(65,"button",16),e.bIt("click",function(){return n.putUnBinding()}),e.k0s(),e.EFF(66,"\n "),e.k0s(),e.EFF(67,"\n "),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n"),e.k0s(),e.EFF(70,"\n")),2&o&&(e.R7$(2),e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(11,16,"tools.binding.subtitle"),e.npT),e.R7$(11),e.FS9("placeholder",e.bMT(22,18,"tools.binding.cluster")),e.Y8G("items",e.bMT(23,20,n.clusters$))("multiple",!1)("closeOnSelect",!0),e.R7$(14),e.FS9("placeholder",e.bMT(36,22,"tools.binding.sourceEp")),e.Y8G("items",n.devicesSource)("multiple",!1)("closeOnSelect",!0),e.R7$(15),e.FS9("placeholder",e.bMT(51,24,"tools.binding.destEp")),e.Y8G("items",n.devicesTargetFiltered)("multiple",!1)("closeOnSelect",!0),e.R7$(13),e.Y8G("disabled",!n.form.valid),e.R7$(2),e.Y8G("disabled",!n.form.valid))},dependencies:[c.qT,c.BC,c.cb,c.j4,c.JD,I.vr,I.Uq,v.Mm,h.Jj,v.D9]})}return i})();function Ze(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}function Je(i,l){if(1&i){const t=e.RV6();e.j41(0,"ng-select",18),e.nI1(1,"translate"),e.bIt("change",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.setAction(n))}),e.EFF(2,"\n "),e.k0s()}if(2&i){const t=e.XpG();e.FS9("placeholder",e.bMT(1,5,"tools.debugcommand.action")),e.Y8G("items",t.capabilities.Capabilities)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function Qe(i,l){if(1&i&&(e.j41(0,"ng-select",19),e.nI1(1,"translate"),e.EFF(2,"\n "),e.k0s()),2&i){const t=e.XpG();e.FS9("placeholder",e.bMT(1,5,"tools.debugcommand.type")),e.Y8G("items",t.capabilities.Types)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function $e(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.j41(6,"span",20),e.mxI("colorPickerChange",function(n){e.eBV(t);const r=e.XpG();return e.DH7(r.colorPicker,n)||(r.colorPicker=n),e.Njj(n)}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()}if(2&i){const t=e.XpG();e.R7$(6),e.xc7("background",t.colorPicker),e.Y8G("cpToggle",!0)("cpDialogDisplay","inline"),e.R50("colorPicker",t.colorPicker),e.Y8G("cpOutputFormat","rgba")}}function et(i,l){1&i&&e.nrm(0,"div",23)}function tt(i,l){if(1&i&&(e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.nrm(6,"input",21),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,et,1,0,"div",22),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(6),e.FS9("placeholder",e.bMT(7,2,"tools.debugcommand.value")),e.R7$(3),e.Y8G("ngIf",t.form.controls.effect.errors)}}function nt(i,l){1&i&&e.nrm(0,"div",26)}function ot(i,l){if(1&i&&(e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.nrm(6,"input",24),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,nt,1,0,"div",25),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(6),e.FS9("placeholder",e.bMT(7,2,"tools.debugcommand.value")),e.R7$(3),e.Y8G("ngIf",!t.form.controls.level.valid)}}let it=(()=>{class i{toastr;apiService;formBuilder;translate;routers;capabilities;form;colorPicker="rgba(30,96,239,0.54)";capaSelected;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({level:[null,[c.k0.nullValidator,c.k0.min(0),c.k0.max(100)]],type:[null,c.k0.required],action:[null,c.k0.required],deviceSelected:[null,c.k0.required],effect:[null,c.k0.compose([c.k0.nullValidator,c.k0.pattern("^[0-9A-Fa-f]+")])]}),this.form.get("type").disable(),this.apiService.getZDevices().subscribe(t=>{this.routers=t.filter(o=>"Router"===o.LogicalType)})}callCapabilities(t){this.capaSelected=null,this.form.get("action").patchValue(null),this.form.get("type").patchValue(null),this.capabilities=null,this.apiService.getDevCap(t._NwkId).subscribe(o=>{this.capabilities=o})}setAction(t){this.capaSelected=t,this.form.get("type").patchValue(null),t&&!0===t.Type?this.form.get("type").enable():this.form.get("type").disable()}callAction(){let t=null,o=null;if(this.testRGB)if(this.colorPicker.startsWith("rgba")){let r=this.colorPicker.replace("rgba(","");r=r.replace(")","");const s=r.split(",");4===s.length&&(o=100*Number(s[3]),t="rgb("+s[0]+","+s[1]+","+s[2]+")")}else this.colorPicker.startsWith("rgb")&&(o=100,t=this.colorPicker);!o&&this.capaSelected.Value&&("hex"===this.capaSelected.Value&&(o=this.form.get("effect").value),"int"===this.capaSelected.Value&&(o=this.form.get("level").value));const n={NwkId:this.form.get("deviceSelected").value._NwkId,Command:this.form.get("action").value.actuator,Value:o,Color:t,Type:this.form.get("type").value};this.apiService.putDevCommand(n).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}get testRGB(){return!!this.form.get("type").value&&this.form.get("type").value.startsWith("ColorControl")}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-command"]],decls:61,vars:17,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.debugcommand.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","appendTo","body","formControlName","deviceSelected",3,"change","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"col-sm"],["translate","tools.debugcommand.button.cancel",1,"ms-3","btn","btn-secondary",3,"click"],[1,"row","mt-2"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"items","multiple","closeOnSelect","searchable","placeholder","change",4,"ngIf"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder",4,"ngIf"],["class","row mt-2",4,"ngIf"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.debugcommand.button.send",1,"btn","btn-primary",3,"click","disabled"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"change","items","multiple","closeOnSelect","searchable","placeholder"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder"],[3,"colorPickerChange","cpToggle","cpDialogDisplay","colorPicker","cpOutputFormat"],["type","text","formControlName","effect",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.effect.error",4,"ngIf"],["translate","tools.debugcommand.effect.error"],["type","number","min","0","formControlName","level",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.level.error",4,"ngIf"],["translate","tools.debugcommand.level.error"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.bIt("change",function(s){return n.callCapabilities(s)}),e.EFF(19,"\n "),e.DNE(20,Ze,10,2,"ng-template",9),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.j41(24,"div",10),e.EFF(25,"\n "),e.j41(26,"button",11),e.bIt("click",function(){return n.form.reset(),n.capaSelected=null}),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.j41(30,"div",12),e.EFF(31,"\n "),e.j41(32,"div",7),e.EFF(33,"\n "),e.DNE(34,Je,3,7,"ng-select",13),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.k0s(),e.EFF(37,"\n "),e.j41(38,"div",12),e.EFF(39,"\n "),e.j41(40,"div",7),e.EFF(41,"\n "),e.DNE(42,Qe,3,7,"ng-select",14),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.DNE(46,$e,10,6,"div",15),e.EFF(47,"\n "),e.DNE(48,tt,13,4,"div",15),e.EFF(49,"\n "),e.DNE(50,ot,13,4,"div",15),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.k0s(),e.EFF(53,"\n "),e.j41(54,"div",16),e.EFF(55,"\n "),e.j41(56,"button",17),e.bIt("click",function(){return n.callAction()}),e.k0s(),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n"),e.k0s(),e.EFF(60,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,13,"tools.debugcommand.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,15,"tools.debugcommand.device")),e.Y8G("items",n.routers)("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(17),e.Y8G("ngIf",n.form.get("deviceSelected").value&&n.capabilities),e.R7$(8),e.Y8G("ngIf",n.capaSelected&&n.capaSelected.Type),e.R7$(4),e.Y8G("ngIf",n.capaSelected&&n.testRGB),e.R7$(2),e.Y8G("ngIf",n.capaSelected&&"hex"===n.capaSelected.Value),e.R7$(2),e.Y8G("ngIf",n.capaSelected&&"int"===n.capaSelected.Value),e.R7$(6),e.Y8G("disabled",!n.form.valid))},dependencies:[h.bT,c.qT,c.me,c.Q0,c.BC,c.cb,c.VZ,c.j4,c.JD,I.vr,I.Uq,v.Mm,Be,v.D9]})}return i})();function rt(i,l){1&i&&e.nrm(0,"div",14)}function st(i,l){1&i&&e.nrm(0,"div",14)}let lt=(()=>{class i{toastr;apiService;formBuilder;translate;form;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({Command:[null,c.k0.required],payload:[null]})}putCommand(){this.apiService.putCommandRaw(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-raw-command"]],decls:50,vars:13,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigate.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["type","text","formControlName","Command",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigate.error",4,"ngIf"],[1,"row","mt-2"],["type","text","formControlName","payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigate.button.send",1,"btn","btn-primary",3,"click","disabled"],["translate","tools.rawcommand-zigate.error"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"div"),e.EFF(18,"\n "),e.nrm(19,"input",8),e.nI1(20,"translate"),e.EFF(21,"\n "),e.DNE(22,rt,1,0,"div",9),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",10),e.EFF(28,"\n "),e.j41(29,"div",7),e.EFF(30,"\n "),e.j41(31,"div"),e.EFF(32,"\n "),e.nrm(33,"input",11),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,st,1,0,"div",9),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.j41(43,"div",12),e.EFF(44,"\n "),e.j41(45,"button",13),e.bIt("click",function(){return n.putCommand()}),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n"),e.k0s(),e.EFF(49,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,7,"tools.rawcommand-zigate.subtitle"),e.npT),e.R7$(11),e.FS9("placeholder",e.bMT(20,9,"tools.rawcommand-zigate.command")),e.R7$(3),e.Y8G("ngIf",n.form.controls.Command.dirty&&!n.form.controls.Command.valid),e.R7$(11),e.FS9("placeholder",e.bMT(34,11,"tools.rawcommand-zigate.payload")),e.R7$(3),e.Y8G("ngIf",n.form.controls.payload.dirty&&!n.form.controls.payload.valid),e.R7$(9),e.Y8G("disabled",!n.form.valid))},dependencies:[h.bT,c.qT,c.me,c.BC,c.cb,c.j4,c.JD,v.Mm,v.D9]})}return i})();function at(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId," ")}}let ct=(()=>{class i{toastr;apiService;formBuilder;translate;devices$;form;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}selectedCar;TrueFalse=[{id:!1,name:"False"},{id:!0,name:"True"}];ngOnInit(){this.form=this.formBuilder.group({ProfileId:["0104",c.k0.required],ClusterId:["0000",c.k0.required],TargetAddr:[null,c.k0.required],TargetEp:["01",c.k0.required],SourceEp:["01",c.k0.required],Sqn:["55",c.k0.required],Payload:[null,c.k0.required],GroupAddressFlag:[!1,c.k0.required],AckMode:[!1,c.k0.required]}),this.devices$=this.apiService.getZDeviceName()}putCommand(){this.apiService.putCommandRawZigpy(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-raw-command-zigpy"]],decls:118,vars:34,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigpy.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","bindValue","_NwkId","formControlName","TargetAddr",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"row","mt-2"],["translate","tools.rawcommand-zigpy.groupaddressflag",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","GroupAddressFlag",3,"items"],["translate","tools.rawcommand-zigpy.ackmode",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","AckMode",3,"items"],["translate","tools.rawcommand-zigpy.profileid",1,"col-sm-3","col-form-label"],[1,"col-sm-2"],["type","text","formControlName","ProfileId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.clusterid",1,"col-sm-3","col-form-label"],["type","text","formControlName","ClusterId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sourceep",1,"col-sm-3","col-form-label"],["type","text","formControlName","SourceEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.targetep",1,"col-sm-3","col-form-label"],["type","text","formControlName","TargetEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sqn",1,"col-sm-3","col-form-label"],["type","text","formControlName","Sqn",1,"w-100","form-control",3,"placeholder"],[1,"col-sm"],["type","text","formControlName","Payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigpy.button.send",1,"btn","btn-primary",3,"click","disabled"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.EFF(20,"\n "),e.DNE(21,at,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.j41(26,"div",10),e.EFF(27,"\n "),e.nrm(28,"label",11),e.EFF(29,"\n "),e.j41(30,"div",7),e.EFF(31,"\n "),e.j41(32,"ng-select",12),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.k0s(),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.j41(37,"div",10),e.EFF(38,"\n "),e.nrm(39,"label",13),e.EFF(40,"\n "),e.j41(41,"div",7),e.EFF(42,"\n "),e.j41(43,"ng-select",14),e.EFF(44," "),e.k0s(),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.j41(48,"div",10),e.EFF(49,"\n "),e.nrm(50,"label",15),e.EFF(51,"\n "),e.j41(52,"div",16),e.EFF(53,"\n "),e.nrm(54,"input",17),e.nI1(55,"translate"),e.EFF(56,"\n "),e.k0s(),e.EFF(57,"\n "),e.nrm(58,"label",18),e.EFF(59,"\n "),e.j41(60,"div",16),e.EFF(61,"\n "),e.nrm(62,"input",19),e.nI1(63,"translate"),e.EFF(64,"\n "),e.k0s(),e.EFF(65,"\n "),e.k0s(),e.EFF(66,"\n "),e.j41(67,"div",10),e.EFF(68,"\n "),e.nrm(69,"label",20),e.EFF(70,"\n "),e.j41(71,"div",16),e.EFF(72,"\n "),e.nrm(73,"input",21),e.nI1(74,"translate"),e.EFF(75,"\n "),e.k0s(),e.EFF(76,"\n "),e.nrm(77,"label",22),e.EFF(78,"\n "),e.j41(79,"div",16),e.EFF(80,"\n "),e.nrm(81,"input",23),e.nI1(82,"translate"),e.EFF(83,"\n "),e.k0s(),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"div",10),e.EFF(87,"\n "),e.nrm(88,"label",24),e.EFF(89,"\n "),e.j41(90,"div",16),e.EFF(91,"\n "),e.j41(92,"div"),e.EFF(93,"\n "),e.nrm(94,"input",25),e.nI1(95,"translate"),e.EFF(96,"\n "),e.k0s(),e.EFF(97,"\n "),e.k0s(),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"div",10),e.EFF(101,"\n "),e.j41(102,"div",26),e.EFF(103,"\n "),e.nrm(104,"input",27),e.nI1(105,"translate"),e.EFF(106,"\n "),e.k0s(),e.EFF(107,"\n "),e.k0s(),e.EFF(108,"\n "),e.k0s(),e.EFF(109,"\n "),e.k0s(),e.EFF(110,"\n "),e.j41(111,"div",28),e.EFF(112,"\n "),e.j41(113,"button",29),e.bIt("click",function(){return n.putCommand()}),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n "),e.k0s(),e.EFF(116,"\n"),e.k0s(),e.EFF(117,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,16,"tools.rawcommand-zigpy.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,18,"tools.rawcommand-zigpy.placeholder")),e.Y8G("items",e.bMT(19,20,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(15),e.Y8G("items",n.TrueFalse),e.R7$(11),e.Y8G("items",n.TrueFalse),e.R7$(11),e.FS9("placeholder",e.bMT(55,22,"tools.rawcommand-zigpy.profileid")),e.R7$(8),e.FS9("placeholder",e.bMT(63,24,"tools.rawcommand-zigpy.clusterid")),e.R7$(11),e.FS9("placeholder",e.bMT(74,26,"tools.rawcommand-zigpy.sourceep")),e.R7$(8),e.FS9("placeholder",e.bMT(82,28,"tools.rawcommand-zigpy.targetep")),e.R7$(13),e.FS9("placeholder",e.bMT(95,30,"tools.rawcommand-zigpy.sqn")),e.R7$(10),e.FS9("placeholder",e.bMT(105,32,"tools.rawcommand-zigpy.payload")),e.R7$(9),e.Y8G("disabled",!n.form.valid))},dependencies:[c.qT,c.me,c.BC,c.cb,c.j4,c.JD,I.vr,I.Uq,v.Mm,h.Jj,v.D9]})}return i})();function pt(i,l){1&i&&e.nrm(0,"app-raw-command")}function dt(i,l){1&i&&e.nrm(0,"app-raw-command-zigpy")}let ut=(()=>{class i{plugin;ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=e.VBU({type:i,selectors:[["app-command"]],decls:9,vars:2,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[4,"ngIf"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"app-debug-command"),e.EFF(3,"\n "),e.DNE(4,pt,1,0,"app-raw-command",1),e.EFF(5,"\n "),e.DNE(6,dt,1,0,"app-raw-command-zigpy",1),e.EFF(7,"\n"),e.k0s(),e.EFF(8,"\n")),2&o&&(e.R7$(4),e.Y8G("ngIf",!(null!=n.plugin&&n.plugin.Zigpy)),e.R7$(2),e.Y8G("ngIf",null==n.plugin?null:n.plugin.Zigpy))},dependencies:[h.bT,it,lt,ct]})}return i})();var gt=m(88652),ae=m(38852);function mt(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",5),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function ht(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",6),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function ft(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",7),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function vt(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",5),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function Ct(i,l){if(1&i&&(e.j41(0,"div",8),e.EFF(1,"\n "),e.nrm(2,"input",9),e.EFF(3,"\n "),e.nrm(4,"label",10),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("id",t.setting.Name),e.R7$(2),e.FS9("for",t.setting.Name),e.FS9("translate",t.setting.Name)}}let Ft=(()=>{class i{formBuilder;fgd;setting;advanced;constructor(t,o){this.formBuilder=t,this.fgd=o}ngOnInit(){let t;t=this.formBuilder.group("hex"===this.setting.DataType?{current:["",c.k0.compose([c.k0.required,c.k0.pattern("^[0-9A-Fa-f]+")])]}:"bool"===this.setting.DataType?{current:[]}:{current:["",c.k0.required]}),this.fgd.form.addControl(this.setting.Name,t);const o=""!==this.setting.current_value?this.setting.current_value:this.setting.default_value;this.fgd.form.get(this.setting.Name).get("current").patchValue(o)}static \u0275fac=function(o){return new(o||i)(e.rXU(c.ok),e.rXU(c.j4))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-setting"]],inputs:{setting:"setting",advanced:"advanced"},features:[e.Jv_([],[{provide:c.ZU,useExisting:c.j4}])],decls:13,vars:6,consts:[[3,"formGroupName"],["class","d-flex flex-row align-items-center flex-wrap mt-2",4,"ngIf"],["class","form-check form-check-inline mt-2",4,"ngIf"],[1,"d-flex","flex-row","align-items-center","flex-wrap","mt-2"],["for","current",1,"me-2",3,"translate"],["type","text","formControlName","current",1,"w-25","form-control"],["type","text","formControlName","current",1,"w-100","form-control"],["type","number","formControlName","current",1,"form-control","w-25"],[1,"form-check","form-check-inline","mt-2"],["formControlName","current","type","checkbox",1,"form-check-input",3,"id"],[1,"form-check-label",3,"for","translate"]],template:function(o,n){1&o&&(e.qex(0,0),e.EFF(1,"\n "),e.DNE(2,mt,6,1,"div",1),e.EFF(3,"\n "),e.DNE(4,ht,6,1,"div",1),e.EFF(5,"\n "),e.DNE(6,ft,6,1,"div",1),e.EFF(7,"\n "),e.DNE(8,vt,6,1,"div",1),e.EFF(9,"\n "),e.DNE(10,Ct,6,3,"div",2),e.EFF(11,"\n"),e.bVm(),e.EFF(12,"\n")),2&o&&(e.Y8G("formGroupName",n.setting.Name),e.R7$(2),e.Y8G("ngIf","str"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","path"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","int"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","hex"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","bool"===n.setting.DataType))},dependencies:[h.bT,c.me,c.Q0,c.Zm,c.BC,c.cb,c.JD,c.$R,v.Mm],styles:["was-validated[_ngcontent-%COMP%] .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]{color:#000}"]})}return i})();const $=["contentRestart"];function _t(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function bt(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,_t,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit;e.R7$(2),e.Y8G("ngIf",!t.Advanced&&"bool"===t.DataType)}}function kt(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function Et(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,kt,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit;e.R7$(2),e.Y8G("ngIf",!t.Advanced&&"bool"!==t.DataType)}}function yt(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function xt(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,yt,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit,o=e.XpG(4);e.R7$(2),e.Y8G("ngIf",t.Advanced&&t.Advanced===o.advanced)}}function wt(i,l){if(1&i&&(e.j41(0,"div",21),e.EFF(1,"\n "),e.nrm(2,"div",22),e.EFF(3,"\n "),e.j41(4,"div",23),e.EFF(5,"\n "),e.j41(6,"div",24),e.EFF(7,"\n "),e.nrm(8,"p",25),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.j41(11,"div",24),e.EFF(12,"\n "),e.j41(13,"div",26),e.EFF(14,"\n "),e.DNE(15,bt,4,1,"ng-container",19),e.EFF(16,"\n "),e.k0s(),e.EFF(17,"\n "),e.j41(18,"div",27),e.EFF(19,"\n "),e.DNE(20,Et,4,1,"ng-container",19),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",27),e.EFF(24,"\n "),e.DNE(25,xt,4,1,"ng-container",19),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s()),2&i){const t=e.XpG().$implicit,o=e.XpG(2);e.R7$(2),e.Y8G("innerHTML",o.getTranslation("setting.header.",t._Theme),e.npT),e.R7$(6),e.Y8G("innerHTML",o.getTranslation("setting.subtitle.",t._Theme),e.npT),e.R7$(7),e.Y8G("ngForOf",t.ListOfSettings),e.R7$(5),e.Y8G("ngForOf",t.ListOfSettings),e.R7$(5),e.Y8G("ngForOf",t.ListOfSettings)}}function jt(i,l){if(1&i&&(e.j41(0,"div"),e.EFF(1,"\n "),e.DNE(2,wt,30,5,"div",20),e.EFF(3,"\n "),e.k0s()),2&i){const t=l.$implicit,o=e.XpG(2);e.R7$(2),e.Y8G("ngIf",o.hasBasicSettings(t.ListOfSettings))}}function At(i,l){if(1&i){const t=e.RV6();e.j41(0,"form",4),e.EFF(1,"\n "),e.j41(2,"fieldset",5),e.EFF(3,"\n "),e.j41(4,"legend"),e.EFF(5,"\n "),e.j41(6,"div",6),e.EFF(7,"\n "),e.nrm(8,"h5",7),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",8),e.EFF(12,"\n "),e.j41(13,"div",9),e.EFF(14,"\n "),e.j41(15,"div",10),e.EFF(16,"\n "),e.j41(17,"button",11),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.updateSettings())}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",12),e.EFF(21,"\n "),e.j41(22,"button",13),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.reinitSettings())}),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"div",14),e.EFF(26,"\n "),e.j41(27,"input",15),e.bIt("click",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.advancedSettings(n))}),e.k0s(),e.EFF(28,"\n "),e.nrm(29,"label",16),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.k0s(),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.j41(37,"div",17),e.EFF(38,"\n "),e.j41(39,"div",18),e.EFF(40,"\n "),e.DNE(41,jt,4,1,"div",19),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("formGroup",t.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,5,"tools.debugsetting.help.legend"),e.npT),e.R7$(9),e.Y8G("disabled",!t.form.valid),e.R7$(10),e.Y8G("checked",t.advanced),e.R7$(14),e.Y8G("ngForOf",t.settings)}}function Tt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",31),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",33),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",35),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}function It(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",36),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",37),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",38),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}function Rt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",39),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",40),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",41),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}let St=(()=>{class i{modalService;apiService;formBuilder;toastr;headerService;translate;contentRestart;contentReset;contentErase;form;settings;advanced=!1;constructor(t,o,n,r,s,a){this.modalService=t,this.apiService=o,this.formBuilder=n,this.toastr=r,this.headerService=s,this.translate=a}ngOnInit(){this.form=this.formBuilder.group({}),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((o,n)=>o.Name.localeCompare(n.Name))})}reinitSettings(){this.settings.forEach(t=>{const o=[];t.ListOfSettings.forEach(n=>{n.current_value=n.default_value,o.push(Object.assign({},n))}),t.ListOfSettings=o}),this.settings=[...this.settings]}advancedSettings(t){this.advanced=!!t.currentTarget.checked}updateSettings(){this.form.invalid?this.form.markAsTouched():(Object.keys(this.form.value).forEach(t=>{!0===this.form.value[t].current?this.form.value[t].current=1:!1===this.form.value[t].current&&(this.form.value[t].current=0)}),this.apiService.putSettingsDebug(this.form.value).subscribe(()=>{this.form.markAsPristine(),this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((o,n)=>o.Name.localeCompare(n.Name))}),this.apiService.getRestartNeeded().subscribe(t=>{1===t.RestartNeeded?(this.headerService.setRestart(!0),this.open(this.contentRestart)):2===t.RestartNeeded?this.open(this.contentReset):3===t.RestartNeeded&&this.open(this.contentErase)})}))}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then()}hasBasicSettings(t){return!!this.advanced||t.filter(o=>!1===o.Advanced).length>0}getTranslation(t,o){return this.translate.instant(t.concat(o))}static \u0275fac=function(o){return new(o||i)(e.rXU(gt.Bq),e.rXU(A.G),e.rXU(c.ok),e.rXU(D.tw),e.rXU(ae.d),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-settings"]],viewQuery:function(o,n){if(1&o&&(e.GBs($,5),e.GBs($,5),e.GBs($,5)),2&o){let r;e.mGM(r=e.lsd())&&(n.contentRestart=r.first),e.mGM(r=e.lsd())&&(n.contentReset=r.first),e.mGM(r=e.lsd())&&(n.contentErase=r.first)}},decls:11,vars:1,consts:[["contentRestart",""],["contentReset",""],["contentErase",""],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"h-100"],[1,"row"],[1,"col-sm-8",3,"innerHTML"],[1,"col-sm-4"],[1,"d-flex","flex-row-reverse","align-items-center"],[1,"p-2"],["translate","tools.debugsetting.validate.button",1,"btn","btn-primary",3,"click","disabled"],[1,"p-2","ms-3"],["translate","tools.debugsetting.reinit.button",1,"btn","btn-secondary",3,"click"],[1,"switch","switch-sm","me-2","pr-2","float-right"],["type","checkbox","id","switch-advanced",1,"switch",3,"click","checked"],["for","switch-advanced","translate","tools.debugsetting.advanced.button",1,"mb-0"],[1,"row","row-cols-1","row-cols-sm-1","g-4"],[1,"col"],[4,"ngFor","ngForOf"],["class","card",4,"ngIf"],[1,"card"],[1,"card-header","fw-bold",3,"innerHTML"],[1,"card-body"],[1,"card-text"],[3,"innerHTML"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center","mt-2"],[3,"setting","advanced",4,"ngIf"],[3,"setting","advanced"],[1,"modal-header"],["id","modal-basic-title","translate","setting.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","setting.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","setting.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.resetplugin.alert.title",1,"modal-title"],["translate","setting.resetplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.resetplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.eraseplugin.alert.title",1,"modal-title"],["translate","setting.eraseplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.eraseplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(o,n){1&o&&(e.DNE(0,At,45,7,"form",3),e.EFF(1,"\n\n"),e.DNE(2,Tt,15,0,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,It,15,0,"ng-template",null,1,e.C5r),e.EFF(7,"\n\n"),e.DNE(8,Rt,15,0,"ng-template",null,2,e.C5r),e.EFF(10,"\n")),2&o&&e.Y8G("ngIf",n.settings)},dependencies:[h.Sq,h.bT,c.qT,c.cb,c.j4,v.Mm,Ft,v.D9],styles:[".btn-secondary[_ngcontent-%COMP%]{--bs-btn-color: white}"]})}return i})();var ce=m(70980);function pe(i,l){const t=new h.vh("en-US");if("LastSeen"===i)return t.transform(1e3*l,"dd/MM/yyyy HH:mm:ss");if(["TimeStamps","TimeStamp","Stamp","Time","StartTime","BatteryUpdateTime","TargetTime"].indexOf(i)>-1){if(l>0){let n=1e3*l;return n=Number(n.toFixed(0)),t.transform(n,"dd/MM/yyyy HH:mm:ss")}return l}return l}function Bt(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",4),e.EFF(1,"\n "),e.j41(2,"button",5),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.export(n.json))}),e.k0s(),e.EFF(3,"\n\n "),e.nrm(4,"ngx-json-viewer",6),e.EFF(5,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("hidden",t.isLoading),e.R7$(4),e.Y8G("expanded",!1)("json",t.json)}}let Vt=(()=>{class i{apiService;headerService;fileSaverService;json=null;isLoading=!1;constructor(t,o,n){this.apiService=t,this.headerService=o,this.fileSaverService=n}onClick(t){let o;this.json=null,"log-error-history"===t&&(o=this.apiService.getLogErrorHistory(),this.headerService.setError(!1)),"clear-error-history"===t&&(o=this.apiService.clearLogErrorHistory(),this.headerService.setError(!1)),o&&o.pipe((0,ce.j)(()=>{this.isLoading=!1})).subscribe(n=>{this.callbackservice(n)})}callbackservice(t){const o=JSON.stringify(t);this.json=JSON.parse(o,pe)}export(t){const o="errors.json",n=this.fileSaverService.genType(o),r=new Blob([JSON.stringify(t)],{type:n});this.fileSaverService.save(r,o)}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(ae.d),e.rXU(re))};static \u0275cmp=e.VBU({type:i,selectors:[["app-error"]],decls:9,vars:1,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.error.log-history.button",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.error.log-history.clear",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"button",1),e.bIt("click",function(){return n.onClick("log-error-history")}),e.k0s(),e.EFF(3,"\n "),e.j41(4,"button",2),e.bIt("click",function(){return n.onClick("clear-error-history")}),e.k0s(),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.DNE(7,Bt,6,3,"div",3),e.EFF(8,"\n")),2&o&&(e.R7$(7),e.Y8G("ngIf",n.json))},dependencies:[h.bT,v.Mm,se]})}return i})();var Dt=m(34402),ee=m(46247),Pt=m(5779),Mt=m(22242);const Gt=()=>[10,25,50];function Nt(i,l){1&i&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",5),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",6),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",7),e.EFF(12),e.nI1(13,"translate"),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",7),e.EFF(16),e.nI1(17,"translate"),e.k0s(),e.EFF(18,"\n "),e.j41(19,"th",7),e.EFF(20),e.nI1(21,"translate"),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",7),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",8),e.EFF(28),e.nI1(29,"translate"),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n ")),2&i&&(e.R7$(4),e.JRh(e.bMT(5,7,"tools.reporting.configure.clusterId.column")),e.R7$(4),e.JRh(e.bMT(9,9,"tools.reporting.configure.attributeId.column")),e.R7$(4),e.JRh(e.bMT(13,11,"tools.reporting.configure.dataType.column")),e.R7$(4),e.JRh(e.bMT(17,13,"tools.reporting.configure.timeout.column")),e.R7$(4),e.JRh(e.bMT(21,15,"tools.reporting.configure.minInterval.column")),e.R7$(4),e.JRh(e.bMT(25,17,"tools.reporting.configure.maxInterval.column")),e.R7$(4),e.JRh(e.bMT(29,19,"tools.reporting.configure.change.column")))}function Ot(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MinInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.minInterval)}}function Xt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MinInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.minInterval)}}function Yt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MaxInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.maxInterval)}}function qt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MaxInterval",r))}),e.k0s(),e.EFF(2," ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.maxInterval)}}function Ht(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"Change",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG(2).$implicit;e.R7$(),e.Y8G("value",t.change)}}function zt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"Change",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG(2).$implicit;e.R7$(),e.Y8G("value",t.change)}}function Ut(i,l){1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,Ht,3,1,"ng-template",10),e.EFF(3,"\n "),e.DNE(4,zt,3,1,"ng-template",11),e.EFF(5,"\n "),e.bVm())}function Lt(i,l){if(1&i&&e.EFF(0),2&i){const t=e.XpG().$implicit;e.JRh(t.change)}}function Kt(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",9),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,Ot,3,1,"ng-template",10),e.EFF(20,"\n "),e.DNE(21,Xt,3,1,"ng-template",11),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"td",12),e.EFF(26,"\n "),e.j41(27,"p-cellEditor"),e.EFF(28,"\n "),e.DNE(29,Yt,3,1,"ng-template",10),e.EFF(30,"\n "),e.DNE(31,qt,3,1,"ng-template",11),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.j41(34,"td",13),e.EFF(35,"\n "),e.j41(36,"p-cellEditor"),e.EFF(37,"\n "),e.DNE(38,Ut,6,0,"ng-container",14),e.EFF(39,"\n "),e.DNE(40,Lt,1,1,"ng-template",null,1,e.C5r),e.k0s(),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.k0s()),2&i){const t=l.$implicit,o=e.sdS(41),n=e.XpG();e.R7$(4),e.JRh(t.clusterId),e.R7$(3),e.JRh(t.attributeId),e.R7$(3),e.JRh(t.dataType),e.R7$(3),e.JRh(t.timeOut),e.R7$(2),e.Y8G("pEditableColumn",t.minInterval),e.R7$(10),e.Y8G("pEditableColumn",t.maxInterval),e.R7$(9),e.Y8G("pEditableColumn",t.change),e.R7$(4),e.Y8G("ngIf",n.isEditable(t))("ngIfElse",o)}}let Wt=(()=>{class i{toastr;apiService;formBuilder;translate;clusters;clustersChange=new e.bkB;clustersToDisplay=[];datatypeConvertor=[{type:"10",longueur:"0",editable:!1},{type:"20",longueur:"0",editable:!0},{type:"21",longueur:"00",editable:!0},{type:"22",longueur:"000",editable:!0},{type:"23",longueur:"0000",editable:!0},{type:"24",longueur:"00000",editable:!0},{type:"25",longueur:"000000",editable:!0},{type:"26",longueur:"0000000",editable:!0},{type:"27",longueur:"00000000",editable:!0},{type:"28",longueur:"0",editable:!0},{type:"29",longueur:"00",editable:!0},{type:"2a",longueur:"000",editable:!0},{type:"2b",longueur:"0000",editable:!0},{type:"2c",longueur:"00000",editable:!0},{type:"2d",longueur:"000000",editable:!0},{type:"2e",longueur:"0000000",editable:!0},{type:"2f",longueur:"00000000",editable:!0},{type:"38",longueur:"00",editable:!0},{type:"39",longueur:"0000",editable:!0},{type:"3a",longueur:"00000000",editable:!0},{type:"e0",longueur:"0000",editable:!0},{type:"e1",longueur:"0000",editable:!0},{type:"e2",longueur:"0000",editable:!0}];constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnChanges(t){t.clusters.currentValue&&this.formatClusters(t.clusters.currentValue)}formatClusters(t){this.clustersToDisplay=[],t.forEach(o=>{o.Attributes.forEach(n=>{n.Infos.forEach(r=>{const s=new Dt.E0;s.clusterId=o.ClusterId,s.attributeId=n.Attribute,s.change=parseInt(r.Change,16).toString(),s.dataType=r.DataType,s.maxInterval=parseInt(r.MaxInterval,16).toString(),s.minInterval=parseInt(r.MinInterval,16).toString(),s.timeOut=parseInt(r.TimeOut,16).toString(),this.clustersToDisplay.push(s)})})})}updateValue(t,o,n){const r=t.target.value,s=this.clusters.find(a=>a.ClusterId===n.clusterId).Attributes.find(a=>a.Attribute===n.attributeId).Infos[0];if(!this.controlerValue(Number(r),o,s)){if("Change"===o){const a=this.datatypeConvertor.find(d=>d.type===s.DataType);s[o]=(a.longueur+Number(r).toString(16).toUpperCase()).slice(-a.longueur.length)}else s[o]=Number(r).toString(16).toUpperCase();this.formatClusters(this.clusters),this.clustersChange.emit(this.clusters)}}controlerValue(t,o,n){let r=!1;if(isNaN(t))r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.hexa.error"));else if("Change"!==o&&Number(t)>65535)r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"));else if("Change"===o){const s=this.datatypeConvertor.find(d=>d.type===n.DataType),a=s.longueur.split("0").join("F");Number(t)>parseInt(a,16)&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"))),"10"===s.type&&Number(t)>1&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error")))}return r}isEditable(t){const o=this.datatypeConvertor.find(n=>n.type===t.dataType);return o&&o.editable}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-configure-cluster-reporting"]],inputs:{clusters:"clusters"},outputs:{clustersChange:"clustersChange"},features:[e.OA$],decls:9,vars:11,consts:[["dt1",""],["notEditable",""],["responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"],[2,"width","15rem"],[2,"width","7rem"],[2,"width","5rem"],[2,"width","3rem"],["pEditableColumnField","minInterval",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pEditableColumnField","maxInterval",3,"pEditableColumn"],["pEditableColumnField","change",3,"pEditableColumn"],[4,"ngIf","ngIfElse"],["pInputText","","type","text",3,"change","value"]],template:function(o,n){1&o&&(e.j41(0,"p-table",2,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,Nt,32,21,"ng-template",3),e.EFF(5,"\n "),e.DNE(6,Kt,44,9,"ng-template",4),e.EFF(7,"\n"),e.k0s(),e.EFF(8,"\n")),2&o&&(e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,Gt))("value",n.clustersToDisplay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[h.bT,ee.XI,Pt.Ei,ee.hp,ee.c5,Mt.S,v.D9]})}return i})();function Zt(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}function Jt(i,l){if(1&i){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"app-configure-cluster-reporting",16),e.bIt("clustersChange",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onClustersChange(n))}),e.k0s(),e.EFF(3,"\n "),e.bVm()}if(2&i){const t=l.ngIf;e.R7$(2),e.Y8G("clusters",t)}}let Qt=(()=>{class i{toastr;apiService;translate;devices$;clusters$;deviceSelected;form;clustersToSave;permitToValidate=!1;constructor(t,o,n){this.toastr=t,this.apiService=o,this.translate=n}ngOnInit(){this.devices$=this.apiService.getZDevices()}getConfiguration(t){this.deviceSelected=null,t&&(this.deviceSelected=t._NwkId,this.clusters$=this.apiService.getConfigureReporting(this.deviceSelected))}putConfiguration(){this.apiService.putConfigureReporting(this.deviceSelected,this.clustersToSave).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}resetConfiguration(){this.apiService.deleteConfigureReporting(this.deviceSelected).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}triggerConfiguration(){this.apiService.getTriggerConfigureReporting(this.deviceSelected).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}onClustersChange(t){this.permitToValidate=!1,this.clustersToSave=null,t&&(this.permitToValidate=!0,this.clustersToSave=t)}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-configure-reporting"]],decls:50,vars:30,consts:[[1,"col"],[1,"card"],[1,"card-header","d-flex"],[1,"col","fw-bold","justify-content-start"],[1,"col","d-flex","justify-content-end"],[1,"btn","btn-danger",3,"click","disabled","translate"],[1,"btn","btn-secondary","ms-3",3,"click","disabled","translate"],[1,"btn","btn-primary","ms-3",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-3","mb-2"],["bindLabel","ZDeviceName","appendTo","body",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[4,"ngIf"],[3,"clustersChange","clusters"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",4),e.EFF(11,"\n "),e.j41(12,"button",5),e.nI1(13,"translate"),e.bIt("click",function(){return n.resetConfiguration()}),e.k0s(),e.EFF(14,"\n "),e.j41(15,"button",6),e.nI1(16,"translate"),e.bIt("click",function(){return n.triggerConfiguration()}),e.k0s(),e.EFF(17,"\n "),e.j41(18,"button",7),e.nI1(19,"translate"),e.bIt("click",function(){return n.putConfiguration()}),e.k0s(),e.EFF(20,"\n "),e.k0s(),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",8),e.EFF(24,"\n "),e.nrm(25,"p",9),e.nI1(26,"translate"),e.EFF(27,"\n "),e.j41(28,"div",10),e.EFF(29,"\n "),e.j41(30,"div",11),e.EFF(31,"\n "),e.j41(32,"div",12),e.EFF(33,"\n "),e.j41(34,"ng-select",13),e.nI1(35,"translate"),e.nI1(36,"async"),e.bIt("change",function(s){return n.getConfiguration(s)})("clear",function(){return n.deviceSelected=null,n.permitToValidate=!1}),e.EFF(37,"\n "),e.DNE(38,Zt,10,2,"ng-template",14),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.DNE(43,Jt,4,1,"ng-container",15),e.nI1(44,"async"),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n"),e.k0s(),e.EFF(49,"\n")),2&o&&(e.R7$(7),e.JRh(e.bMT(8,14,"tools.reporting.configure.title")),e.R7$(5),e.FS9("translate",e.bMT(13,16,"tools.reporting.configure.reset.button")),e.Y8G("disabled",!n.deviceSelected),e.R7$(3),e.FS9("translate",e.bMT(16,18,"tools.reporting.configure.trigger.button")),e.Y8G("disabled",!n.deviceSelected),e.R7$(3),e.FS9("translate",e.bMT(19,20,"tools.reporting.configure.validate.button")),e.Y8G("disabled",!n.permitToValidate),e.R7$(7),e.Y8G("innerHTML",e.bMT(26,22,"tools.reporting.configure.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(35,24,"tools.reporting.configure.device")),e.Y8G("items",e.bMT(36,26,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(9),e.Y8G("ngIf",e.bMT(44,28,n.deviceSelected&&n.clusters$)))},dependencies:[h.bT,I.vr,I.Uq,v.Mm,Wt,h.Jj,v.D9]})}return i})(),$t=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275cmp=e.VBU({type:i,selectors:[["app-reporting"]],decls:5,vars:0,consts:[[1,"row","row-cols-1","g-4"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"app-configure-reporting"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n"))},dependencies:[Qt]})}return i})();var en=m(27468);function tn(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",15),e.bIt("click",function(){const n=e.eBV(t).ngIf,r=e.XpG();return e.Njj(r.download(n))}),e.k0s()}}function nn(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",16),e.EFF(1,"\n "),e.j41(2,"button",17),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.export(n.json))}),e.k0s(),e.EFF(3,"\n\n "),e.nrm(4,"ngx-json-viewer",18),e.EFF(5,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("hidden",t.isLoading),e.R7$(4),e.Y8G("expanded",!1)("json",t.json)}}let on=(()=>{class i{apiService;fileSaverService;json=null;isLoading=!1;logFile$;constructor(t,o){this.apiService=t,this.fileSaverService=o}ngOnInit(){this.logFile$=this.apiService.getLog()}onClick(t){let o;this.json=null,"devices"===t&&(o=this.apiService.getDevices()),"zdevices"===t&&(o=this.apiService.getZDevices()),"zgroups"===t&&(o=this.apiService.getZGroups()),"zdevice-raw"===t&&(o=this.apiService.getRawZDevices()),"infos"===t&&(o=this.apiService.getPlugin()),"coordinator"===t&&(o=this.apiService.getCoordinator()),"plugin-health"===t&&(o=this.apiService.getPluginhealth()),"zgroup-list-available-device"===t&&(o=this.apiService.getZGroupDevicesAvalaible()),"settings"===t&&(o=this.apiService.getSettings()),"plugin-stat"===t&&(o=this.apiService.getPluginStats()),"zdevice-name"===t&&(o=this.apiService.getZDeviceName()),"domoticz-env"===t&&(o=this.apiService.getDomoticzEnv()),"battery-state"===t&&(o=this.apiService.getBatteryState()),o&&o.pipe((0,ce.j)(()=>{this.isLoading=!1})).subscribe(n=>{this.callbackservice(n)})}getAllNonOptimizedDevice(){this.json=null,this.apiService.getZDeviceName().subscribe(t=>{const o=t.filter(n=>!n.CertifiedDevice).map(n=>this.getNonOptimizedDevice(n._NwkId));(0,en.p)(o).subscribe(n=>this.callbackservice(n))})}getNonOptimizedDevice(t){return this.apiService.getNonOptimizedDevice(t)}download(t){const o=t.Filename;this.apiService.downloadLog(t.URL).subscribe(n=>{this.fileSaverService.save(n.body,o)})}callbackservice(t){const o=JSON.stringify(t);this.json=JSON.parse(o,pe)}export(t){const o="export.json",n=this.fileSaverService.genType(o),r=new Blob([JSON.stringify(t)],{type:n});this.fileSaverService.save(r,o)}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(re))};static \u0275cmp=e.VBU({type:i,selectors:[["app-tools"]],decls:32,vars:4,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.tools.zdevice-raw.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.non-optimized.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-stat.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.coordinator.infos.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","col-lg-2 col-md-4 col-sm-5 btn btn-primary","translate","tools.tools.log.button",3,"click",4,"ngIf"],["translate","tools.tools.infos.plugin.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-health.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.settings.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.domoticz-env.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.battery-state.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zdevice-name.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup-list-available-device.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],["translate","tools.tools.log.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"button",1),e.bIt("click",function(){return n.onClick("zdevice-raw")}),e.k0s(),e.EFF(3,"\n "),e.j41(4,"button",2),e.bIt("click",function(){return n.getAllNonOptimizedDevice()}),e.k0s(),e.EFF(5,"\n "),e.j41(6,"button",3),e.bIt("click",function(){return n.onClick("zgroups")}),e.k0s(),e.EFF(7,"\n "),e.j41(8,"button",4),e.bIt("click",function(){return n.onClick("plugin-stat")}),e.k0s(),e.EFF(9,"\n "),e.j41(10,"button",5),e.bIt("click",function(){return n.onClick("coordinator")}),e.k0s(),e.EFF(11,"\n "),e.DNE(12,tn,1,0,"button",6),e.nI1(13,"async"),e.EFF(14,"\n "),e.j41(15,"button",7),e.bIt("click",function(){return n.onClick("infos")}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",8),e.bIt("click",function(){return n.onClick("plugin-health")}),e.k0s(),e.EFF(18,"\n "),e.j41(19,"button",9),e.bIt("click",function(){return n.onClick("settings")}),e.k0s(),e.EFF(20,"\n "),e.j41(21,"button",10),e.bIt("click",function(){return n.onClick("domoticz-env")}),e.k0s(),e.EFF(22,"\n "),e.j41(23,"button",11),e.bIt("click",function(){return n.onClick("battery-state")}),e.k0s(),e.EFF(24,"\n "),e.j41(25,"button",12),e.bIt("click",function(){return n.onClick("zdevice-name")}),e.k0s(),e.EFF(26,"\n "),e.j41(27,"button",13),e.bIt("click",function(){return n.onClick("zgroup-list-available-device")}),e.k0s(),e.EFF(28,"\n"),e.k0s(),e.EFF(29,"\n"),e.DNE(30,nn,6,3,"div",14),e.EFF(31,"\n")),2&o&&(e.R7$(12),e.Y8G("ngIf",e.bMT(13,2,n.logFile$)),e.R7$(18),e.Y8G("ngIf",n.json))},dependencies:[h.bT,v.Mm,se,h.Jj]})}return i})();const rn=[{path:"command",component:ut,data:{title:(0,V.o6)("command")}},{path:"debug",component:St,data:{title:(0,V.o6)("debug")}},{path:"binding",component:We,data:{title:(0,V.o6)("binding")}},{path:"link",component:on,data:{title:(0,V.o6)("tools")}},{path:"error",component:Vt,data:{title:(0,V.o6)("error")}},{path:"configure",component:$t,data:{title:(0,V.o6)("configure")}}];let sn=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[le.iI.forChild(rn),le.iI]})}return i})(),ln=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[q.G,sn,qe,Pe,Ve]})}return i})()},2578:function(W,Y){var m,e;void 0!==(e="function"==typeof(m=function(){"use strict";function R(u,g,x){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){M(f.response,g,x)},f.onerror=function(){console.error("could not download file")},f.send()}function H(u){var g=new XMLHttpRequest;g.open("HEAD",u,!1);try{g.send()}catch{}return 200<=g.status&&299>=g.status}function P(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(g)}}var y="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,z=y.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),M=y.saveAs||("object"!=typeof window||window!==y?function(){}:"download"in HTMLAnchorElement.prototype&&!z?function(u,g,x){var f=y.URL||y.webkitURL,b=document.createElement("a");b.download=g=g||u.name||"download",b.rel="noopener","string"==typeof u?(b.href=u,b.origin===location.origin?P(b):H(b.href)?R(u,g,x):P(b,b.target="_blank")):(b.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(b.href)},4e4),setTimeout(function(){P(b)},0))}:"msSaveOrOpenBlob"in navigator?function(u,g,x){if(g=g||u.name||"download","string"!=typeof u)navigator.msSaveOrOpenBlob(function h(u,g){return typeof g>"u"?g={autoBom:!1}:"object"!=typeof g&&(console.warn("Deprecated: Expected third argument to be a object"),g={autoBom:!g}),g.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\ufeff",u],{type:u.type}):u}(u,x),g);else if(H(u))R(u,g,x);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){P(f)})}}:function(u,g,x,f){if((f=f||open("","_blank"))&&(f.document.title=f.document.body.innerText="downloading..."),"string"==typeof u)return R(u,g,x);var b="application/octet-stream"===u.type,Z=/constructor/i.test(y.HTMLElement)||y.safari,U=/CriOS\/[\d]+/.test(navigator.userAgent);if((U||b&&Z||z)&&typeof FileReader<"u"){var G=new FileReader;G.onloadend=function(){var S=G.result;S=U?S:S.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=S:location=S,f=null},G.readAsDataURL(u)}else{var L=y.URL||y.webkitURL,N=L.createObjectURL(u);f?f.location=N:location.href=N,f=null,setTimeout(function(){L.revokeObjectURL(N)},4e4)}});y.saveAs=M.saveAs=M,W.exports=M})?m.apply(Y,[]):m)&&(W.exports=e)}}]); \ No newline at end of file diff --git a/www/z4d/908.08c26a5f1272a6a5.js b/www/z4d/908.08c26a5f1272a6a5.js new file mode 100644 index 000000000..77681ad68 --- /dev/null +++ b/www/z4d/908.08c26a5f1272a6a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[908],{5908:(ke,j,l)=>{l.r(j),l.d(j,{AdminModule:()=>ge});var R=l(93887),b=l(93331),_=l(38117),E=l(28990),e=l(54438),f=l(60177),m=l(45794),p=l(3366),o=l(19664);let I=(()=>{class n{toastr;apiService;translate;permitToJoin;constructor(t,s,i){this.toastr=t,this.apiService=s,this.translate=i}ngOnInit(){this.apiService.getPermitToJoin().subscribe(t=>{this.permitToJoin=t})}updatePermitToJoin(t){this.permitToJoin.PermitToJoin=t,this.apiService.putPermitToJoin(this.permitToJoin).subscribe(()=>{switch(t){case 240:this.toastr.success(this.translate.instant("admin.permittojoin.4min.notify"));break;case 0:this.toastr.success(this.translate.instant("admin.permittojoin.stop.notify"));break;default:this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))}})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-permit-to-join"]],decls:18,vars:4,consts:[[1,"card"],["translate","admin.permittojoin.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.permittojoin.stop.button",1,"btn","btn-secondary",3,"click","disabled"],["translate","admin.permittojoin.4min.button",1,"ms-2","btn","btn-success",3,"click"]],template:function(s,i){1&s&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"p",3),e.nI1(7,"translate"),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",4),e.EFF(11,"\n "),e.j41(12,"button",5),e.bIt("click",function(){return i.updatePermitToJoin(0)}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",6),e.bIt("click",function(){return i.updatePermitToJoin(240)}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n"),e.k0s(),e.EFF(17,"\n")),2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,2,"admin.permittojoin.subtitle"),e.npT),e.R7$(6),e.Y8G("disabled",0===(null==i.permitToJoin?null:i.permitToJoin.PermitToJoin)))},dependencies:[o.Mm,o.D9]})}return n})();var a=l(89417),C=l(27468),u=l(97013);function $(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&n){const t=c.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}let y=(()=>{class n extends E.U{toastr;formBuilder;apiService;translate;permitToJoin;routers;form;constructor(t,s,i,r){super(),this.toastr=t,this.formBuilder=s,this.apiService=i,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,a.k0.required]}),this.subs.sink=(0,C.p)([this.apiService.getPermitToJoin(),this.apiService.getZDevices(!0)]).subscribe(([t,s])=>{this.permitToJoin=t,this.routers=s.filter(i=>"Router"===i.LogicalType||"Coordinator"===i.LogicalType)})}updatePermitToJoin(t){this.permitToJoin.PermitToJoin=t,this.permitToJoin.Router=this.form.get("deviceSelected").value._NwkId,this.apiService.putPermitToJoin(this.permitToJoin).subscribe(()=>{switch(t){case 240:this.toastr.success(this.translate.instant("admin.permittojoin.4min.notify"));break;case 0:this.toastr.success(this.translate.instant("admin.permittojoin.stop.notify"));break;default:this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))}})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(a.ok),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-permit-to-join-router"]],features:[e.Vt3],decls:36,vars:13,consts:[[3,"formGroup"],[1,"card"],["translate","admin.permittojoinrouter.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm"],["bindLabel","ZDeviceName","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.permittojoin.4min.button",1,"btn","btn-success",3,"click","disabled"],["translate","admin.permittojoin.stop.button",1,"ms-2","btn","btn-secondary",3,"click","disabled"]],template:function(s,i){1&s&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.EFF(19,"\n "),e.DNE(20,$,10,2,"ng-template",9),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",10),e.EFF(28,"\n "),e.j41(29,"button",11),e.bIt("click",function(){return i.updatePermitToJoin(240)}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",12),e.bIt("click",function(){return i.updatePermitToJoin(0)}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n"),e.k0s(),e.EFF(35,"\n")),2&s&&(e.Y8G("formGroup",i.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,9,"admin.permittojoinrouter.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,11,"tools.debugcommand.device")),e.Y8G("items",i.routers)("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(12),e.Y8G("disabled",!i.form.valid),e.R7$(2),e.Y8G("disabled",0===(null==i.permitToJoin?null:i.permitToJoin.PermitToJoin)))},dependencies:[a.qT,a.BC,a.cb,a.j4,a.JD,u.vr,u.Uq,o.Mm,o.D9]})}return n})(),N=(()=>{class n{toastr;apiService;translate;permitToJoin;constructor(t,s,i){this.toastr=t,this.apiService=s,this.translate=i}swReset(){this.apiService.getSwReset().subscribe(()=>{this.toastr.success(this.translate.instant("admin.coordinator.swreset.notify"))})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-sw-reset"]],decls:16,vars:3,consts:[[1,"card"],["translate","admin.coordinator.swreset.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.coordinator.swreset.button",1,"btn","btn-primary",3,"click"]],template:function(s,i){1&s&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"p",3),e.nI1(7,"translate"),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",4),e.EFF(11,"\n "),e.j41(12,"button",5),e.bIt("click",function(){return i.swReset()}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n"),e.k0s(),e.EFF(15,"\n")),2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,1,"admin.coordinator.swreset.subtitle"),e.npT))},dependencies:[o.Mm,o.D9]})}return n})();var h=l(38852),g=l(88652);function G(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",7),e.EFF(2,"\n "),e.nrm(3,"h4",8),e.EFF(4,"\n "),e.j41(5,"button",9),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",10),e.EFF(9,"\n "),e.j41(10,"div",11),e.EFF(11,"\n "),e.j41(12,"button",12),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",13),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}let M=(()=>{class n{headerService;modalService;toastr;apiService;translate;constructor(t,s,i,r,d){this.headerService=t,this.modalService=s,this.toastr=i,this.apiService=r,this.translate=d}reloadPlugin(){this.apiService.getReloadPlugin().subscribe(()=>{this.toastr.success(this.translate.instant("admin.plugin.reload.notify")),this.headerService.setRestart(!1)})}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.reloadPlugin()})}static \u0275fac=function(s){return new(s||n)(e.rXU(h.d),e.rXU(g.Bq),e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-reload-plugin"]],decls:19,vars:3,consts:[["content",""],[1,"card"],["translate","admin.plugin.reload.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.plugin.reload.button",1,"btn","btn-primary","mt-3",3,"click"],[1,"modal-header"],["id","modal-basic-title","translate","admin.plugin.reload.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","admin.plugin.reload.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","admin.plugin.reload.alert.erase",1,"btn","btn-primary",3,"click"],["type","button","translate","admin.plugin.reload.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(s,i){if(1&s){const r=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.nrm(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.nrm(6,"p",4),e.nI1(7,"translate"),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.j41(12,"button",6),e.bIt("click",function(){e.eBV(r);const F=e.sdS(17);return e.Njj(i.open(F))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n"),e.k0s(),e.EFF(15,"\n\n"),e.DNE(16,G,17,0,"ng-template",null,0,e.C5r),e.EFF(18,"\n")}2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,1,"admin.plugin.reload.subtitle"),e.npT))},dependencies:[o.Mm,o.D9]})}return n})(),D=(()=>{class n{toastr;apiService;translate;headerService;constructor(t,s,i,r){this.toastr=t,this.apiService=s,this.translate=i,this.headerService=r}rescanGroup(){this.apiService.getRescanGroup().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify")),this.apiService.getRestartNeeded().subscribe(t=>{1===t.RestartNeeded&&this.headerService.setRestart(!0)})})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$),e.rXU(h.d))};static \u0275cmp=e.VBU({type:n,selectors:[["app-rescan-group"]],decls:16,vars:3,consts:[[1,"card"],["translate","admin.rescan.group.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.rescan.group.button",1,"btn","btn-primary",3,"click"]],template:function(s,i){1&s&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"p",3),e.nI1(7,"translate"),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",4),e.EFF(11,"\n "),e.j41(12,"button",5),e.bIt("click",function(){return i.rescanGroup()}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n"),e.k0s(),e.EFF(15,"\n")),2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,1,"admin.rescan.group.subtitle"),e.npT))},dependencies:[o.Mm,o.D9]})}return n})();var U=l(41584),T=l(70274),k=l(96354),v=l(36554);function L(n,c){if(1&n&&(e.j41(0,"span",23),e.EFF(1),e.nI1(2,"translate"),e.j41(3,"b"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n - ",e.bMT(2,3,"admin.assistprovisionning.alert.cluster"),"\xa0"),e.R7$(3),e.Lme("",t.ClusterId," (",t.ClusterDesc,")")}}function P(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.nI1(2,"translate"),e.j41(3,"b"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.DNE(6,L,6,5,"span",22),e.EFF(7,"\n "),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",e.bMT(2,3,"admin.assistprovisionning.alert.ep"),"\xa0"),e.R7$(3),e.JRh(t.Ep),e.R7$(2),e.Y8G("ngForOf",t.Clusters)}}function B(n,c){if(1&n&&(e.j41(0,"div",17),e.EFF(1,"\n "),e.j41(2,"fieldset",18),e.EFF(3,"\n "),e.j41(4,"div",19),e.EFF(5,"\n "),e.j41(6,"div",20),e.EFF(7),e.nI1(8,"translate"),e.j41(9,"b"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.j41(14,"div",20),e.EFF(15),e.nI1(16,"translate"),e.j41(17,"b"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",20),e.EFF(22),e.nI1(23,"translate"),e.j41(24,"b"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.j41(28,"div",20),e.EFF(29),e.nI1(30,"translate"),e.j41(31,"b"),e.EFF(32),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"div",20),e.EFF(36),e.nI1(37,"translate"),e.j41(38,"b"),e.EFF(39),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"div",20),e.EFF(43),e.nI1(44,"translate"),e.j41(45,"b"),e.EFF(46),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.j41(49,"div",20),e.EFF(50),e.nI1(51,"translate"),e.j41(52,"b"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.k0s(),e.EFF(55,"\n "),e.j41(56,"div",20),e.EFF(57,"\n "),e.DNE(58,P,8,5,"div",21),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.j41(61,"div",20),e.EFF(62),e.nI1(63,"translate"),e.j41(64,"b"),e.EFF(65),e.k0s(),e.EFF(66,"\n "),e.k0s(),e.EFF(67,"\n "),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n "),e.k0s()),2&n){const t=c.$implicit;e.R7$(7),e.SpI("\n ",e.bMT(8,20,"admin.assistprovisionning.alert.state"),"\xa0"),e.R7$(3),e.Lme("",t.ProvisionStatus," (",e.bMT(11,22,"admin.assistprovisionning.alert."+t.ProvisionStatus),")"),e.R7$(5),e.SpI("\n ",e.bMT(16,24,"admin.assistprovisionning.alert.nwkid"),"\xa0"),e.R7$(3),e.JRh(t.NwkId),e.R7$(4),e.SpI("\n ",e.bMT(23,26,"admin.assistprovisionning.alert.ieee"),"\xa0"),e.R7$(3),e.JRh(t.IEEE),e.R7$(4),e.SpI("\n ",e.bMT(30,28,"admin.assistprovisionning.alert.profile"),"\xa0"),e.R7$(3),e.Lme("",t.ProfileId," (",t.ProfileIdDesc,")"),e.R7$(4),e.SpI("\n ",e.bMT(37,30,"admin.assistprovisionning.alert.device"),"\xa0"),e.R7$(3),e.Lme("",t.ZDeviceID," (",t.ZDeviceIDDesc,")"),e.R7$(4),e.SpI("\n ",e.bMT(44,32,"admin.assistprovisionning.alert.model"),"\xa0"),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.SpI("\n ",e.bMT(51,34,"admin.assistprovisionning.alert.plugincertified"),"\xa0"),e.R7$(3),e.JRh(t.PluginCertified),e.R7$(5),e.Y8G("ngForOf",t.Ep),e.R7$(4),e.SpI("\n ",e.bMT(63,36,"admin.assistprovisionning.alert.widgets"),"\xa0"),e.R7$(3),e.JRh(null==t||null==t.device?null:t.device.WidgetList)}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",7),e.EFF(2,"\n "),e.nrm(3,"h4",8),e.EFF(4,"\n "),e.j41(5,"button",9),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n\n "),e.j41(8,"div",10),e.EFF(9,"\n "),e.nrm(10,"ngx-spinner",11),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div",12),e.EFF(14,"\n "),e.nrm(15,"span",13),e.EFF(16,"\n "),e.DNE(17,B,70,38,"div",14),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",15),e.EFF(21,"\n "),e.j41(22,"button",16),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("name","assist")("fullScreen",!1),e.R7$(7),e.Y8G("ngForOf",t.devicePaired)}}let Y=(()=>{class n extends E.U{toastr;apiService;modalService;spinner;newDevices;devices;devicePaired;constructor(t,s,i,r){super(),this.toastr=t,this.apiService=s,this.modalService=i,this.spinner=r}ngOnInit(){this.newDevices=null,this.devices=null,this.devicePaired=[]}open(t){this.newDevices=null,this.devices=null,this.devicePaired=[],this.spinner.show("assist"),this.subs.sink=this.apiService.getNewHardware(!0).pipe((0,T.H)(()=>(0,U.O)(0,1e4).pipe((0,T.H)(()=>this.apiService.getReceiveNewHardware())).pipe((0,k.T)(s=>{this.newDevices=s,this.newDevices.NewDevices&&this.newDevices.NewDevices.length>0&&this.createwidgets()})))).subscribe(),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title",size:"lg",backdrop:"static",keyboard:!1}).result.then(()=>{this.spinner.hide("assist"),this.apiService.getNewHardware(!1).subscribe(),this.subs.unsubscribe()})}createwidgets(){this.newDevices.NewDevices.forEach(t=>{t.ProvisionStatus&&this.apiService.getZDeviceName().subscribe(s=>{this.devices=s,t.device=this.devices.find(i=>i._NwkId===t.NwkId),this.devicePaired.push(t)})})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(p.G),e.rXU(g.Bq),e.rXU(v.ex))};static \u0275cmp=e.VBU({type:n,selectors:[["app-assist-provisionning"]],features:[e.Vt3],decls:19,vars:3,consts:[["content",""],[1,"card"],["translate","admin.assistprovisionning.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.assistprovisionning.go.button",1,"btn","btn-primary",3,"click"],[1,"modal-header"],["id","modal-basic-title","translate","admin.assistprovisionning.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],[1,"modal-body","mt-3"],["type","line-scale","size","medium","bdColor","white","color","red",3,"name","fullScreen"],[1,"modal-body"],["translate","admin.assistprovisionning.alert.subject",1,"row","ms-2"],["class","mt-1",4,"ngFor","ngForOf"],[1,"modal-footer"],["type","button","translate","admin.assistprovisionning.alert.cancel",1,"btn","btn-primary",3,"click"],[1,"mt-1"],[1,"border","p-2"],[1,"ms-2"],[1,"row"],[4,"ngFor","ngForOf"],["class","ms-2 row",4,"ngFor","ngForOf"],[1,"ms-2","row"]],template:function(s,i){if(1&s){const r=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.nrm(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.nrm(6,"p",4),e.nI1(7,"translate"),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.j41(12,"button",6),e.bIt("click",function(){e.eBV(r);const F=e.sdS(17);return e.Njj(i.open(F))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n"),e.k0s(),e.EFF(15,"\n\n"),e.DNE(16,X,25,3,"ng-template",null,0,e.C5r),e.EFF(18,"\n")}2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,1,"admin.assistprovisionning.subtitle"),e.npT))},dependencies:[f.Sq,o.Mm,v.et,o.D9]})}return n})();var J=l(12298);function A(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Widget"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Id"),e.k0s(),e.EFF(14),e.j41(15,"b"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.k0s(),e.EFF(18,"\n ")),2&n){const t=c.item;e.R7$(5),e.SpI(" : ",t.Name," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" : ",t.Ep," - "),e.R7$(3),e.SpI(" :\n ",t._ID," -\n "),e.R7$(2),e.JRh(t.ZDeviceName)}}let O=(()=>{class n{toastr;apiService;translate;formBuilder;devices;form;constructor(t,s,i,r){this.toastr=t,this.apiService=s,this.translate=i,this.formBuilder=r}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,a.k0.required]}),this.apiService.getZGroupDevicesAvalaible().subscribe(t=>{const s=[];t&&t.length>0&&(t.forEach(i=>{i.WidgetList.forEach(r=>{if("0000"!==i._NwkId){const d=new J.ij;d.Ep=r.Ep,d.IEEE=r.IEEE,d.Name=r.Name,d.ZDeviceName=r.ZDeviceName,d._ID=r._ID,d._NwkId=i._NwkId,s.push(d)}})}),this.devices=[...s])})}scan(){const t=[];this.form.get("deviceSelected").value.forEach(i=>t.push(i._NwkId)),this.apiService.putScanDeviceForGrp(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$),e.rXU(a.ok))};static \u0275cmp=e.VBU({type:n,selectors:[["app-scan-group-device"]],decls:28,vars:12,consts:[[3,"formGroup"],[1,"card"],["translate","admin.scan.group.device.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["bindLabel","Name","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.scan.group.device.button",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,i){1&s&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"ng-select",6),e.nI1(14,"translate"),e.EFF(15,"\n "),e.DNE(16,A,19,5,"ng-template",7),e.EFF(17,"\n "),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",8),e.EFF(22,"\n "),e.j41(23,"button",9),e.bIt("click",function(){return i.scan()}),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n"),e.k0s(),e.EFF(27,"\n")),2&s&&(e.Y8G("formGroup",i.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,8,"admin.scan.group.device.subtitle"),e.npT),e.R7$(5),e.FS9("placeholder",e.bMT(14,10,"admin.scan.group.device.placeholder")),e.Y8G("items",i.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),e.R7$(10),e.Y8G("disabled",!i.form.valid))},dependencies:[a.qT,a.BC,a.cb,a.j4,a.JD,u.vr,u.Uq,o.Mm,o.D9]})}return n})();function V(n,c){if(1&n){const t=e.RV6();e.j41(0,"div",7),e.EFF(1,"\n "),e.nrm(2,"label",8),e.EFF(3,"\n "),e.j41(4,"div",9),e.EFF(5,"\n "),e.j41(6,"ng-select",10),e.mxI("ngModelChange",function(i){e.eBV(t);const r=e.XpG();return e.DH7(r.selectedChannel,i)||(r.selectedChannel=i),e.Njj(i)}),e.EFF(7,"\n >\n "),e.k0s(),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()}if(2&n){const t=e.XpG();e.R7$(6),e.Y8G("items",t.list)("compareWith",t.compareNumeric)("closeOnSelect",!0),e.R50("ngModel",t.selectedChannel)}}let x=(()=>{class n{toastr;apiService;translate;settings;channel;list=[];selectedChannel;constructor(t,s,i){this.toastr=t,this.apiService=s,this.translate=i}ngOnInit(){this.apiService.getSettings().subscribe(t=>{this.settings=t;const s=this.settings.find(i=>"CoordinatorConfiguration"===i._Theme);this.channel=s.ListOfSettings.find(i=>"channel"===i.Name),this.selectedChannel=this.channel.current_value,this.channel.list.forEach(i=>{const r=Object.keys(i)[0],d=Object.values(i)[0];this.list.push({label:r,value:d})})})}compareNumeric(t,s){return isNaN(t.value)?t.value===s:t.value===Number(s)}switchChannel(){this.apiService.putChangeChannel(this.selectedChannel).subscribe(()=>{this.toastr.success(this.translate.instant("admin.coordinator.switchchannel.notify"))})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-switch-channel"]],decls:18,vars:5,consts:[[1,"card"],["translate","admin.coordinator.switchchannel.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],["class","form-group row mt-2",4,"ngIf"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.coordinator.switchchannel.button",1,"btn","btn-primary",3,"click","disabled"],[1,"form-group","row","mt-2"],["for","current","translate","admin.coordinator.switchchannel.placeholder",1,"col-sm-6","col-form-label"],[1,"col-sm"],["bindLabel","label","bindValue","value",3,"ngModelChange","items","compareWith","closeOnSelect","ngModel"]],template:function(s,i){1&s&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"p",3),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,V,10,4,"div",4),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",5),e.EFF(13,"\n "),e.j41(14,"button",6),e.bIt("click",function(){return i.switchChannel()}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n"),e.k0s(),e.EFF(17,"\n")),2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,3,"admin.coordinator.switchchannel.subtitle"),e.npT),e.R7$(3),e.Y8G("ngIf",i.channel),e.R7$(5),e.Y8G("disabled",!i.selectedChannel))},dependencies:[f.bT,a.BC,a.vS,u.vr,o.Mm,o.D9]})}return n})();function H(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&n){const t=c.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}let Z=(()=>{class n extends E.U{toastr;formBuilder;apiService;translate;devices$;form;constructor(t,s,i,r){super(),this.toastr=t,this.formBuilder=s,this.apiService=i,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,a.k0.required]}),this.devices$=this.apiService.getZDeviceName()}fullReset(){this.apiService.putPairingFullReset(this.form.get("deviceSelected").value._NwkId).subscribe(()=>{this.toastr.success(this.translate.instant("admin.fullreset.notify"))})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(a.ok),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-pairing-full-reset"]],features:[e.Vt3],decls:35,vars:14,consts:[[3,"formGroup"],[1,"card"],["translate","admin.fullreset.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm"],["bindLabel","ZDeviceName","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.fullreset.button",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,i){1&s&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.EFF(20,"\n "),e.DNE(21,H,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.j41(28,"div",10),e.EFF(29,"\n "),e.j41(30,"button",11),e.bIt("click",function(){return i.fullReset()}),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n"),e.k0s(),e.EFF(34,"\n")),2&s&&(e.Y8G("formGroup",i.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,8,"admin.fullreset.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,10,"admin.fullreset.device.placeholder")),e.Y8G("items",e.bMT(19,12,i.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(13),e.Y8G("disabled",i.form.invalid))},dependencies:[a.qT,a.BC,a.cb,a.j4,a.JD,u.vr,u.Uq,o.Mm,f.Jj,o.D9]})}return n})();function W(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&n){const t=c.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}let z=(()=>{class n extends E.U{toastr;formBuilder;apiService;translate;devices$;form;constructor(t,s,i,r){super(),this.toastr=t,this.formBuilder=s,this.apiService=i,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({deviceSelected:[null,a.k0.required]}),this.devices$=this.apiService.getZDeviceName()}recreate(){this.apiService.putRecreateWidgets(this.form.get("deviceSelected").value._NwkId).subscribe(()=>{this.toastr.success(this.translate.instant("admin.recreate.notify"))})}static \u0275fac=function(s){return new(s||n)(e.rXU(m.tw),e.rXU(a.ok),e.rXU(p.G),e.rXU(o.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-recreate-widget"]],features:[e.Vt3],decls:35,vars:14,consts:[[3,"formGroup"],[1,"card"],["translate","admin.recreate.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm"],["bindLabel","ZDeviceName","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.recreate.button",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,i){1&s&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.EFF(20,"\n "),e.DNE(21,W,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.j41(28,"div",10),e.EFF(29,"\n "),e.j41(30,"button",11),e.bIt("click",function(){return i.recreate()}),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n"),e.k0s(),e.EFF(34,"\n")),2&s&&(e.Y8G("formGroup",i.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,8,"admin.recreate.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,10,"admin.recreate.device.placeholder")),e.Y8G("items",e.bMT(19,12,i.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(13),e.Y8G("disabled",i.form.invalid))},dependencies:[a.qT,a.BC,a.cb,a.j4,a.JD,u.vr,u.Uq,o.Mm,f.Jj,o.D9]})}return n})();var K=l(70980);let Q=(()=>{class n{transform(t){return t?t.replace(/\n/g,"
"):null}static \u0275fac=function(s){return new(s||n)};static \u0275pipe=e.EJ8({name:"nl2br",type:n,pure:!0})}return n})(),q=(()=>{class n{headerService;toastr;apiService;translate;spinner;message;load=!1;constructor(t,s,i,r,d){this.headerService=t,this.toastr=s,this.apiService=i,this.translate=r,this.spinner=d}updatePlugin(){this.load=!0,this.message="",this.spinner.show("update-plugin"),this.apiService.getUpgradePlugin().pipe((0,K.j)(()=>this.spinner.hide("update-plugin"))).subscribe(t=>{this.load=!1,this.message=t.result,0===t.ReturnCode?(this.toastr.success(this.translate.instant("admin.plugin.update.success")),this.headerService.setRestart(!0)):this.toastr.error(this.translate.instant("admin.plugin.update.error"))})}static \u0275fac=function(s){return new(s||n)(e.rXU(h.d),e.rXU(m.tw),e.rXU(p.G),e.rXU(o.c$),e.rXU(v.ex))};static \u0275cmp=e.VBU({type:n,selectors:[["app-update-plugin"]],decls:31,vars:9,consts:[[1,"card"],["translate","admin.plugin.update.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["bdColor","rgba(0, 0, 0, 0.5)","size","small","color","#fff","type","line-spin-clockwise-fade-rotating",3,"fullScreen","name"],[1,"text-white"],[1,"mt-3",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.plugin.update.button",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,i){1&s&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"p",3),e.nI1(7,"translate"),e.EFF(8,"\n "),e.j41(9,"div",4),e.EFF(10,"\n "),e.j41(11,"ngx-spinner",5),e.EFF(12,"\n "),e.j41(13,"p"),e.EFF(14,"\xa0"),e.k0s(),e.EFF(15,"\n "),e.j41(16,"p",6),e.EFF(17,"Loading..."),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.nrm(20,"span",7),e.nI1(21,"nl2br"),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"div",8),e.EFF(26,"\n "),e.j41(27,"button",9),e.bIt("click",function(){return i.updatePlugin()}),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n"),e.k0s(),e.EFF(30,"\n")),2&s&&(e.R7$(6),e.Y8G("innerHTML",e.bMT(7,5,"admin.plugin.update.subtitle"),e.npT),e.R7$(5),e.Y8G("fullScreen",!1)("name","update-plugin"),e.R7$(9),e.Y8G("innerHTML",e.bMT(21,7,i.message),e.npT),e.R7$(7),e.Y8G("disabled",i.load))},dependencies:[o.Mm,v.et,o.D9,Q]})}return n})();function ee(n,c){1&n&&e.nrm(0,"app-assist-provisionning")}function te(n,c){1&n&&e.nrm(0,"app-permit-to-join")}function ne(n,c){1&n&&e.nrm(0,"app-permit-to-join-router")}function ie(n,c){1&n&&e.nrm(0,"app-pairing-full-reset")}function se(n,c){1&n&&e.nrm(0,"app-recreate-widget")}function re(n,c){1&n&&e.nrm(0,"app-sw-reset")}function ae(n,c){1&n&&e.nrm(0,"app-switch-channel")}function oe(n,c){1&n&&e.nrm(0,"app-rescan-group")}function ce(n,c){1&n&&e.nrm(0,"app-scan-group-device")}function le(n,c){1&n&&(e.j41(0,"div",4),e.EFF(1,"\n "),e.nrm(2,"app-update-plugin"),e.EFF(3,"\n "),e.k0s())}function de(n,c){1&n&&(e.j41(0,"div",5),e.nrm(1,"app-reload-plugin"),e.k0s())}let me=(()=>{class n extends E.U{activatedRoute;action;constructor(t){super(),this.activatedRoute=t}ngOnInit(){this.subs.sink=this.activatedRoute.queryParamMap.subscribe(t=>{this.action=t.get("action")})}static \u0275fac=function(s){return new(s||n)(e.rXU(b.nX))};static \u0275cmp=e.VBU({type:n,selectors:[["app-admin"]],features:[e.Vt3],decls:25,vars:11,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[4,"ngIf"],["class","col-md-12 col-lg-12 col-xl-12 col-xxl-6",4,"ngIf"],["class","col",4,"ngIf"],[1,"col-md-12","col-lg-12","col-xl-12","col-xxl-6"],[1,"col"]],template:function(s,i){1&s&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.DNE(2,ee,1,0,"app-assist-provisionning",1),e.EFF(3,"\n "),e.DNE(4,te,1,0,"app-permit-to-join",1),e.EFF(5,"\n "),e.DNE(6,ne,1,0,"app-permit-to-join-router",1),e.EFF(7,"\n "),e.DNE(8,ie,1,0,"app-pairing-full-reset",1),e.EFF(9,"\n "),e.DNE(10,se,1,0,"app-recreate-widget",1),e.EFF(11,"\n "),e.DNE(12,re,1,0,"app-sw-reset",1),e.EFF(13,"\n "),e.DNE(14,ae,1,0,"app-switch-channel",1),e.EFF(15,"\n "),e.DNE(16,oe,1,0,"app-rescan-group",1),e.EFF(17,"\n "),e.DNE(18,ce,1,0,"app-scan-group-device",1),e.EFF(19,"\n "),e.DNE(20,le,4,0,"div",2),e.EFF(21,"\n "),e.DNE(22,de,2,0,"div",3),e.EFF(23,"\n"),e.k0s(),e.EFF(24,"\n")),2&s&&(e.R7$(2),e.Y8G("ngIf","pairing"===i.action),e.R7$(2),e.Y8G("ngIf","pairing"===i.action),e.R7$(2),e.Y8G("ngIf","pairing"===i.action),e.R7$(2),e.Y8G("ngIf","pairing"===i.action),e.R7$(2),e.Y8G("ngIf","pairing"===i.action),e.R7$(2),e.Y8G("ngIf","coordinator"===i.action),e.R7$(2),e.Y8G("ngIf","coordinator"===i.action),e.R7$(2),e.Y8G("ngIf","group"===i.action),e.R7$(2),e.Y8G("ngIf","group"===i.action),e.R7$(2),e.Y8G("ngIf","plugin"===i.action),e.R7$(2),e.Y8G("ngIf","plugin"===i.action))},dependencies:[f.bT,I,y,N,M,D,Y,O,x,Z,z,q]})}return n})();class pe{NwkId;Ep;Brand;FileName;ForceUpdate}var w=l(70152),S=l(23294);function Fe(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1,"\n "),e.j41(2,"ng-select",17),e.nI1(3,"translate"),e.EFF(4,"\n "),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&n){const t=e.XpG();e.R7$(2),e.FS9("placeholder",e.bMT(3,4,"admin.firmware.list")),e.Y8G("items",t.firmwares)("multiple",!1)("closeOnSelect",!0)}}function ue(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1,"\n "),e.j41(2,"ng-select",18),e.nI1(3,"translate"),e.nI1(4,"async"),e.EFF(5,"\n "),e.k0s(),e.EFF(6,"\n "),e.k0s()),2&n){const t=e.XpG();e.R7$(2),e.FS9("placeholder",e.bMT(3,4,"admin.firmware.devices.list")),e.Y8G("items",e.bMT(4,6,t.devicesList$))("multiple",!0)("closeOnSelect",!0)}}function fe(n,c){if(1&n&&(e.j41(0,"div",23),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.E5c("\n ",e.bMT(2,3,"admin.firmware.alert.device")," : ",t.DeviceName," - Nwkid : ",t.Nwkid,"\n ")}}function Ee(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",19),e.EFF(2,"\n "),e.nrm(3,"h4",20),e.EFF(4,"\n "),e.j41(5,"button",21),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",22),e.EFF(9),e.nI1(10,"translate"),e.j41(11,"div",23),e.EFF(12),e.nI1(13,"translate"),e.k0s(),e.EFF(14,"\n "),e.j41(15,"div",23),e.EFF(16),e.nI1(17,"translate"),e.k0s(),e.EFF(18,"\n "),e.j41(19,"div",23),e.EFF(20),e.nI1(21,"translate"),e.DNE(22,fe,3,5,"div",24),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.j41(26,"div",25),e.EFF(27,"\n "),e.j41(28,"button",26),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("ok"))}),e.k0s(),e.EFF(29,"\n "),e.j41(30,"button",27),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n ")}if(2&n){const t=e.XpG();e.R7$(9),e.SpI("\n ",e.bMT(10,7,"admin.firmware.alert.subject"),"\n "),e.R7$(3),e.Lme("",e.bMT(13,9,"admin.firmware.alert.brand")," ",t.form.get("manufacturer").value,""),e.R7$(4),e.Lme("",e.bMT(17,11,"admin.firmware.alert.filename")," ",t.firmwareModal.FileName,""),e.R7$(4),e.SpI("\n ",e.bMT(21,13,"admin.firmware.alert.list.devices"),"\n "),e.R7$(2),e.Y8G("ngForOf",t.devicesModal)}}let ve=(()=>{class n extends E.U{apiService;formBuilder;translate;toastr;modalService;form;manufacturerList$;devicesList$;firmwares;tempFirmwares;devicesModal;firmwareModal;constructor(t,s,i,r,d){super(),this.apiService=t,this.formBuilder=s,this.translate=i,this.toastr=r,this.modalService=d}ngOnInit(){this.form=this.formBuilder.group({manufacturer:[null,a.k0.required],firmware:[null,a.k0.required],device:[null,a.k0.required],force:[!1]}),this.manufacturerList$=this.apiService.getOtaFirmware().pipe((0,k.T)(t=>(this.tempFirmwares=t[0],Object.keys(this.tempFirmwares)))),this.subs.sink=this.form.get("manufacturer").valueChanges.pipe((0,w.B)(300),(0,S.F)()).subscribe(t=>{this.form.get("firmware").reset(),this.form.get("device").reset(),t?(this.firmwares=this.tempFirmwares[t],this.firmwares.forEach(s=>{s.label=this.getLabelFirmware(s)})):this.firmwares=null}),this.subs.sink=this.form.get("firmware").valueChanges.pipe((0,w.B)(300),(0,S.F)()).subscribe(t=>{this.form.get("device").reset(),this.devicesList$=t?this.apiService.getDeviceByOtaFirmware(t.ManufCode).pipe((0,k.T)(s=>(s.forEach(i=>{i.label=this.getLabelDevice(i)}),s))):null})}updateFirmware(){const t=[],s=this.form.get("manufacturer").value,i=this.form.get("firmware").value.FileName;this.form.get("device").value.forEach(d=>{const F=new pe;F.Brand=s,F.Ep=d.Ep,F.FileName=i,F.NwkId=d.Nwkid,F.ForceUpdate=this.form.get("force").value,t.push(F)}),this.apiService.putOtaFirmware(t).subscribe(()=>{this.devicesList$=null,this.firmwares=null,this.toastr.success(this.translate.instant("admin.firmware.notify")),this.form.reset()})}open(t){this.firmwareModal=this.form.get("firmware").value,this.devicesModal=this.form.get("device").value,this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.updateFirmware()})}getLabelFirmware(t){return"FileName : ".concat(t.FileName).concat(" - ImageType : ").concat(t.ImageType).concat(" - ApplicationBuild : ").concat(t.ApplicationBuild).concat(" - ApplicationRelease : ").concat(t.ApplicationRelease).concat(" - StackBuild : ").concat(t.StackBuild).concat(" - StackRelease : ").concat(t.StackRelease)}getLabelDevice(t){return"DeviceName : ".concat(t.DeviceName).concat(" - Ep : ").concat(t.Ep).concat(" - Nwkid : ").concat(t.Nwkid).concat(" - OTALastTime : ").concat(t.OTALastTime).concat(" - OTAType : ").concat(t.OTAType).concat(" - OTAVersion : ").concat(t.OTAVersion).concat(" - SWBUILD_1 : ").concat(t.SWBUILD_1).concat(" - SWBUILD_3 : ").concat(t.SWBUILD_3)}static \u0275fac=function(s){return new(s||n)(e.rXU(p.G),e.rXU(a.ok),e.rXU(o.c$),e.rXU(m.tw),e.rXU(g.Bq))};static \u0275cmp=e.VBU({type:n,selectors:[["app-firmware"]],features:[e.Vt3],decls:59,vars:15,consts:[["content",""],[1,"row","row-cols-1","row-cols-md-3","g-4"],[1,"col"],[1,"card","h-100",3,"formGroup"],["translate","admin.firmware.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"row"],[1,"col-sm"],["appendTo","body","formControlName","manufacturer",3,"items","multiple","closeOnSelect","placeholder"],[1,"row","mt-2"],[4,"ngIf"],[1,"col-auto","mt-2"],["formControlName","force","id","force","type","checkbox",1,"form-control-checkbox"],["for","force","translate","admin.firmware.force",1,"col-form-label"],[1,"card-footer","d-flex","justify-content-end"],["translate","admin.firmware.button.update",1,"btn","btn-primary",3,"click","disabled"],["appendTo","body","bindLabel","label","formControlName","firmware",3,"items","multiple","closeOnSelect","placeholder"],["appendTo","body","bindLabel","label","formControlName","device",3,"items","multiple","closeOnSelect","placeholder"],[1,"modal-header"],["id","modal-basic-title","translate","admin.firmware.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],[1,"modal-body"],[1,"col-sm","mt-2"],["class","col-sm mt-2",4,"ngFor","ngForOf"],[1,"modal-footer"],["type","button","translate","admin.firmware.alert.ok",1,"btn","btn-primary",3,"click"],["type","button","translate","admin.firmware.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(s,i){if(1&s){const r=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.nrm(6,"div",4),e.EFF(7,"\n "),e.j41(8,"div",5),e.EFF(9,"\n "),e.nrm(10,"p",6),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",7),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"ng-select",9),e.nI1(18,"translate"),e.nI1(19,"async"),e.EFF(20,"\n "),e.k0s(),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.j41(24,"div",10),e.EFF(25,"\n "),e.j41(26,"div",8),e.EFF(27,"\n "),e.DNE(28,Fe,6,6,"div",11),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.j41(32,"div",10),e.EFF(33,"\n "),e.j41(34,"div",8),e.EFF(35,"\n "),e.DNE(36,ue,7,8,"div",11),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.j41(40,"div",12),e.EFF(41,"\n "),e.nrm(42,"input",13),e.EFF(43,"\n "),e.nrm(44,"label",14),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n\n "),e.j41(47,"div",15),e.EFF(48,"\n "),e.j41(49,"button",16),e.bIt("click",function(){e.eBV(r);const F=e.sdS(56);return e.Njj(i.open(F))}),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.k0s(),e.EFF(53,"\n "),e.k0s(),e.EFF(54,"\n\n "),e.DNE(55,Ee,33,15,"ng-template",null,0,e.C5r),e.EFF(57,"\n"),e.k0s(),e.EFF(58,"\n")}2&s&&(e.R7$(4),e.Y8G("formGroup",i.form),e.R7$(6),e.Y8G("innerHTML",e.bMT(11,9,"admin.firmware.subtitle"),e.npT),e.R7$(7),e.FS9("placeholder",e.bMT(18,11,"admin.firmware.manufacturer.list")),e.Y8G("items",e.bMT(19,13,i.manufacturerList$))("multiple",!1)("closeOnSelect",!0),e.R7$(11),e.Y8G("ngIf",i.firmwares),e.R7$(8),e.Y8G("ngIf",i.devicesList$),e.R7$(13),e.Y8G("disabled",!i.form.valid))},dependencies:[f.Sq,f.bT,a.Zm,a.BC,a.cb,a.j4,a.JD,u.vr,o.Mm,f.Jj,o.D9]})}return n})();const be=[{path:"",component:me,data:{title:(0,_.o6)("admin")}},{path:"firmware",component:ve,data:{title:(0,_.o6)("admin.firmware")}}];let he=(()=>{class n{static \u0275fac=function(s){return new(s||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[b.iI.forChild(be),b.iI]})}return n})(),ge=(()=>{class n{static \u0275fac=function(s){return new(s||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[he,R.G]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/922.81d21780f2a4312a.js b/www/z4d/922.81d21780f2a4312a.js deleted file mode 100644 index 43f30c004..000000000 --- a/www/z4d/922.81d21780f2a4312a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[922],{67922:(Q,V,h)=>{"use strict";h.r(V),h.d(V,{ToolsModule:()=>sn});var R=h(44466),e=h(94650),m=h(36895);const S=["dialogPopup"],Y=["hueSlider"],E=["alphaSlider"];function T(o,s){if(1&o&&e._UZ(0,"div"),2&o){const t=e.oxw();e.Gre("arrow arrow-",t.cpUsePosition,""),e.Udp("top",t.arrowTop,"px")}}function F(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",28),e.NdJ("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onColorChange(i))})("dragStart",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.onDragStart("saturation-lightness"))})("dragEnd",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.onDragEnd("saturation-lightness"))}),e._UZ(1,"div",14),e.qZA()}if(2&o){const t=e.oxw();e.Udp("background-color",t.hueSliderColor),e.Q6J("rgX",1)("rgY",1),e.xp6(1),e.Udp("top",null==t.slider?null:t.slider.v,"px")("left",null==t.slider?null:t.slider.s,"px")}}function O(o,s){1&o&&(e.O4$(),e.TgZ(0,"svg",29),e._UZ(1,"path",30)(2,"path",31),e.qZA())}function d(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"button",32),e.NdJ("click",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAddPresetColor(i,r.selectedColor))}),e._uU(1),e.qZA()}if(2&o){const t=e.oxw();e.Tol(t.cpAddColorButtonClass),e.Q6J("disabled",t.cpPresetColors&&t.cpPresetColors.length>=t.cpMaxPresetColorsLength),e.xp6(1),e.hij(" ",t.cpAddColorButtonText," ")}}function g(o,s){1&o&&e._UZ(0,"div",33)}function Z(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAlphaInput(i))}),e.qZA()}if(2&o){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.cmykText?null:t.cmykText.a)}}function _(o,s){1&o&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function w(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",34)(1,"div",35)(2,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onCyanInput(i))}),e.qZA(),e.TgZ(3,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onMagentaInput(i))}),e.qZA(),e.TgZ(4,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onYellowInput(i))}),e.qZA(),e.TgZ(5,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onBlackInput(i))}),e.qZA(),e.YNc(6,Z,1,2,"input",37),e.qZA(),e.TgZ(7,"div",35)(8,"div"),e._uU(9,"C"),e.qZA(),e.TgZ(10,"div"),e._uU(11,"M"),e.qZA(),e.TgZ(12,"div"),e._uU(13,"Y"),e.qZA(),e.TgZ(14,"div"),e._uU(15,"K"),e.qZA(),e.YNc(16,_,2,0,"div",38),e.qZA()()}if(2&o){const t=e.oxw();e.Udp("display",3!==t.format?"none":"block"),e.xp6(2),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.c),e.xp6(1),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.m),e.xp6(1),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.y),e.xp6(1),e.Q6J("rg",100)("value",null==t.cmykText?null:t.cmykText.k),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel),e.xp6(10),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function z(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAlphaInput(i))}),e.qZA()}if(2&o){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function K(o,s){1&o&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function D(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",40)(1,"div",35)(2,"input",41),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onHueInput(i))}),e.qZA(),e.TgZ(3,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onSaturationInput(i))}),e.qZA(),e.TgZ(4,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onLightnessInput(i))}),e.qZA(),e.YNc(5,z,1,2,"input",37),e.qZA(),e.TgZ(6,"div",35)(7,"div"),e._uU(8,"H"),e.qZA(),e.TgZ(9,"div"),e._uU(10,"S"),e.qZA(),e.TgZ(11,"div"),e._uU(12,"L"),e.qZA(),e.YNc(13,K,2,0,"div",38),e.qZA()()}if(2&o){const t=e.oxw();e.Udp("display",2!==t.format?"none":"block"),e.xp6(2),e.Q6J("rg",360)("value",null==t.hslaText?null:t.hslaText.h),e.xp6(1),e.Q6J("rg",100)("value",null==t.hslaText?null:t.hslaText.s),e.xp6(1),e.Q6J("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel),e.xp6(8),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function j(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAlphaInput(i))}),e.qZA()}if(2&o){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.rgbaText?null:t.rgbaText.a)}}function J(o,s){1&o&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function M(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",42)(1,"div",35)(2,"input",43),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onRedInput(i))}),e.qZA(),e.TgZ(3,"input",43),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onGreenInput(i))}),e.qZA(),e.TgZ(4,"input",43),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onBlueInput(i))}),e.qZA(),e.YNc(5,j,1,2,"input",37),e.qZA(),e.TgZ(6,"div",35)(7,"div"),e._uU(8,"R"),e.qZA(),e.TgZ(9,"div"),e._uU(10,"G"),e.qZA(),e.TgZ(11,"div"),e._uU(12,"B"),e.qZA(),e.YNc(13,J,2,0,"div",38),e.qZA()()}if(2&o){const t=e.oxw();e.Udp("display",1!==t.format?"none":"block"),e.xp6(2),e.Q6J("rg",255)("value",null==t.rgbaText?null:t.rgbaText.r),e.xp6(1),e.Q6J("rg",255)("value",null==t.rgbaText?null:t.rgbaText.g),e.xp6(1),e.Q6J("rg",255)("value",null==t.rgbaText?null:t.rgbaText.b),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel),e.xp6(8),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function pe(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAlphaInput(i))}),e.qZA()}if(2&o){const t=e.oxw(2);e.Q6J("rg",1)("value",t.hexAlpha)}}function ue(o,s){1&o&&(e.TgZ(0,"div"),e._uU(1,"A"),e.qZA())}function de(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",44)(1,"div",35)(2,"input",45),e.NdJ("blur",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.onHexInput(null))})("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onHexInput(i))}),e.qZA(),e.YNc(3,pe,1,2,"input",37),e.qZA(),e.TgZ(4,"div",35)(5,"div"),e._uU(6,"Hex"),e.qZA(),e.YNc(7,ue,2,0,"div",38),e.qZA()()}if(2&o){const t=e.oxw();e.Udp("display",0!==t.format?"none":"block"),e.ekj("hex-alpha","forced"===t.cpAlphaChannel),e.xp6(2),e.Q6J("value",t.hexText),e.xp6(1),e.Q6J("ngIf","forced"===t.cpAlphaChannel),e.xp6(4),e.Q6J("ngIf","forced"===t.cpAlphaChannel)}}function ge(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"input",39),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAlphaInput(i))}),e.qZA()}if(2&o){const t=e.oxw(2);e.Q6J("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function he(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",46)(1,"div",35)(2,"input",36),e.NdJ("keyup.enter",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onAcceptColor(i))})("newValue",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onValueInput(i))}),e.qZA(),e.YNc(3,ge,1,2,"input",37),e.qZA(),e.TgZ(4,"div",35)(5,"div"),e._uU(6,"V"),e.qZA(),e.TgZ(7,"div"),e._uU(8,"A"),e.qZA()()()}if(2&o){const t=e.oxw();e.xp6(2),e.Q6J("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.xp6(1),e.Q6J("ngIf","disabled"!==t.cpAlphaChannel)}}function me(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",47)(1,"span",48),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.onFormatToggle(-1))}),e.qZA(),e.TgZ(2,"span",48),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.onFormatToggle(1))}),e.qZA()()}}function _e(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"span",55),e.NdJ("click",function(i){e.CHM(t);const r=e.oxw().$implicit,l=e.oxw(3);return e.KtG(l.onRemovePresetColor(i,r))}),e.qZA()}if(2&o){const t=e.oxw(4);e.Tol(t.cpRemoveColorButtonClass)}}function fe(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",53),e.NdJ("click",function(){const r=e.CHM(t).$implicit,l=e.oxw(3);return e.KtG(l.setColorFromString(r))}),e.YNc(1,_e,1,3,"span",54),e.qZA()}if(2&o){const t=s.$implicit,n=e.oxw(3);e.Udp("background-color",t),e.xp6(1),e.Q6J("ngIf",n.cpAddColorButton)}}function Ce(o,s){if(1&o&&(e.TgZ(0,"div"),e.YNc(1,fe,2,3,"div",52),e.qZA()),2&o){const t=e.oxw(2);e.Tol(t.cpPresetColorsClass),e.xp6(1),e.Q6J("ngForOf",t.cpPresetColors)}}function ve(o,s){if(1&o&&(e.TgZ(0,"div"),e._uU(1),e.qZA()),2&o){const t=e.oxw(2);e.Tol(t.cpPresetEmptyMessageClass),e.xp6(1),e.Oqu(t.cpPresetEmptyMessage)}}function be(o,s){if(1&o&&(e.TgZ(0,"div",49),e._UZ(1,"hr"),e.TgZ(2,"div",50),e._uU(3),e.qZA(),e.YNc(4,Ce,2,4,"div",51),e.YNc(5,ve,2,4,"div",51),e.qZA()),2&o){const t=e.oxw();e.xp6(3),e.Oqu(t.cpPresetLabel),e.xp6(1),e.Q6J("ngIf",null==t.cpPresetColors?null:t.cpPresetColors.length),e.xp6(1),e.Q6J("ngIf",!(null!=t.cpPresetColors&&t.cpPresetColors.length)&&t.cpAddColorButton)}}function xe(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"button",58),e.NdJ("click",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onCancelColor(i))}),e._uU(1),e.qZA()}if(2&o){const t=e.oxw(2);e.Tol(t.cpCancelButtonClass),e.xp6(1),e.Oqu(t.cpCancelButtonText)}}function Ae(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"button",58),e.NdJ("click",function(i){e.CHM(t);const r=e.oxw(2);return e.KtG(r.onAcceptColor(i))}),e._uU(1),e.qZA()}if(2&o){const t=e.oxw(2);e.Tol(t.cpOKButtonClass),e.xp6(1),e.Oqu(t.cpOKButtonText)}}function we(o,s){if(1&o&&(e.TgZ(0,"div",56),e.YNc(1,xe,2,4,"button",57),e.YNc(2,Ae,2,4,"button",57),e.qZA()),2&o){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",t.cpCancelButton),e.xp6(1),e.Q6J("ngIf",t.cpOKButton)}}function Te(o,s){1&o&&e.GkF(0)}function Ze(o,s){if(1&o&&(e.TgZ(0,"div",59),e.YNc(1,Te,1,0,"ng-container",60),e.qZA()),2&o){const t=e.oxw();e.xp6(1),e.Q6J("ngTemplateOutlet",t.cpExtraTemplate)}}var A=(()=>{return(o=A||(A={}))[o.HEX=0]="HEX",o[o.RGBA=1]="RGBA",o[o.HSLA=2]="HSLA",o[o.CMYK=3]="CMYK",A;var o})();class y{constructor(s,t,n,i){this.r=s,this.g=t,this.b=n,this.a=i}}class H{constructor(s,t,n,i){this.h=s,this.s=t,this.v=n,this.a=i}}class P{constructor(s,t,n,i){this.h=s,this.s=t,this.l=n,this.a=i}}class B{constructor(s,t,n,i,r=1){this.c=s,this.m=t,this.y=n,this.k=i,this.a=r}}let Ue=(()=>{class o{constructor(){this.newValue=new e.vpe}inputChange(t){const n=t.target.value;if(void 0===this.rg)this.newValue.emit(n);else{const i=parseFloat(n);this.newValue.emit({v:i,rg:this.rg})}}}return o.\u0275fac=function(t){return new(t||o)},o.\u0275dir=e.lG2({type:o,selectors:[["","text",""]],hostBindings:function(t,n){1&t&&e.NdJ("input",function(r){return n.inputChange(r)})},inputs:{rg:"rg",text:"text"},outputs:{newValue:"newValue"}}),o})(),qe=(()=>{class o{constructor(t){this.elRef=t,this.dragEnd=new e.vpe,this.dragStart=new e.vpe,this.newValue=new e.vpe,this.listenerMove=n=>this.move(n),this.listenerStop=()=>this.stop()}mouseDown(t){this.start(t)}touchStart(t){this.start(t)}move(t){t.preventDefault(),this.setCursor(t)}start(t){this.setCursor(t),t.stopPropagation(),document.addEventListener("mouseup",this.listenerStop),document.addEventListener("touchend",this.listenerStop),document.addEventListener("mousemove",this.listenerMove),document.addEventListener("touchmove",this.listenerMove),this.dragStart.emit()}stop(){document.removeEventListener("mouseup",this.listenerStop),document.removeEventListener("touchend",this.listenerStop),document.removeEventListener("mousemove",this.listenerMove),document.removeEventListener("touchmove",this.listenerMove),this.dragEnd.emit()}getX(t){const n=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageX?t.pageX:t.touches[0].pageX)-n.left-window.pageXOffset}getY(t){const n=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageY?t.pageY:t.touches[0].pageY)-n.top-window.pageYOffset}setCursor(t){const n=this.elRef.nativeElement.offsetWidth,i=this.elRef.nativeElement.offsetHeight,r=Math.max(0,Math.min(this.getX(t),n)),l=Math.max(0,Math.min(this.getY(t),i));void 0!==this.rgX&&void 0!==this.rgY?this.newValue.emit({s:r/n,v:1-l/i,rgX:this.rgX,rgY:this.rgY}):void 0===this.rgX&&void 0!==this.rgY?this.newValue.emit({v:l/i,rgY:this.rgY}):void 0!==this.rgX&&void 0===this.rgY&&this.newValue.emit({v:r/n,rgX:this.rgX})}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(e.SBq))},o.\u0275dir=e.lG2({type:o,selectors:[["","slider",""]],hostBindings:function(t,n){1&t&&e.NdJ("mousedown",function(r){return n.mouseDown(r)})("touchstart",function(r){return n.touchStart(r)})},inputs:{rgX:"rgX",rgY:"rgY",slider:"slider"},outputs:{dragEnd:"dragEnd",dragStart:"dragStart",newValue:"newValue"}}),o})();class ee{constructor(s,t,n,i){this.h=s,this.s=t,this.v=n,this.a=i}}class te{constructor(s,t,n,i){this.h=s,this.s=t,this.v=n,this.a=i}}let W=(()=>{class o{constructor(){this.active=null}setActive(t){this.active&&this.active!==t&&"inline"!==this.active.cpDialogDisplay&&this.active.closeDialog(),this.active=t}hsva2hsla(t){const n=t.h,i=t.s,r=t.v,l=t.a;if(0===r)return new P(n,0,0,l);if(0===i&&1===r)return new P(n,1,1,l);{const a=r*(2-i)/2;return new P(n,r*i/(1-Math.abs(2*a-1)),a,l)}}hsla2hsva(t){const n=Math.min(t.h,1),i=Math.min(t.s,1),r=Math.min(t.l,1),l=Math.min(t.a,1);if(0===r)return new H(n,0,0,l);{const a=r+i*(1-Math.abs(2*r-1))/2;return new H(n,2*(a-r)/a,a,l)}}hsvaToRgba(t){let n,i,r;const l=t.h,a=t.s,p=t.v,u=t.a,f=Math.floor(6*l),x=6*l-f,v=p*(1-a),k=p*(1-x*a),N=p*(1-(1-x)*a);switch(f%6){case 0:n=p,i=N,r=v;break;case 1:n=k,i=p,r=v;break;case 2:n=v,i=p,r=N;break;case 3:n=v,i=k,r=p;break;case 4:n=N,i=v,r=p;break;case 5:n=p,i=v,r=k;break;default:n=0,i=0,r=0}return new y(n,i,r,u)}cmykToRgb(t){return new y((1-t.c)*(1-t.k),(1-t.m)*(1-t.k),(1-t.y)*(1-t.k),t.a)}rgbaToCmyk(t){const n=1-Math.max(t.r,t.g,t.b);return 1===n?new B(0,0,0,1,t.a):new B((1-t.r-n)/(1-n),(1-t.g-n)/(1-n),(1-t.b-n)/(1-n),n,t.a)}rgbaToHsva(t){let n,i;const r=Math.min(t.r,1),l=Math.min(t.g,1),a=Math.min(t.b,1),p=Math.min(t.a,1),u=Math.max(r,l,a),f=Math.min(r,l,a),x=u,v=u-f;if(i=0===u?0:v/u,u===f)n=0;else{switch(u){case r:n=(l-a)/v+(l{class o{constructor(t,n,i,r,l,a){this.ngZone=t,this.elRef=n,this.cdRef=i,this.document=r,this.platformId=l,this.service=a,this.isIE10=!1,this.dialogArrowSize=10,this.dialogArrowOffset=15,this.dialogInputFields=[A.HEX,A.RGBA,A.HSLA,A.CMYK],this.useRootViewContainer=!1,this.eyeDropperSupported=(0,m.NF)(this.platformId)&&"EyeDropper"in this.document.defaultView}handleEsc(t){this.show&&"popup"===this.cpDialogDisplay&&this.onCancelColor(t)}handleEnter(t){this.show&&"popup"===this.cpDialogDisplay&&this.onAcceptColor(t)}ngOnInit(){this.slider=new ee(0,0,0,0),this.sliderDimMax=new te(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.format=this.cpCmykEnabled?A.CMYK:"rgba"===this.cpOutputFormat?A.RGBA:"hsla"===this.cpOutputFormat?A.HSLA:A.HEX,this.listenerMouseDown=i=>{this.onMouseDown(i)},this.listenerResize=()=>{this.onResize()},this.openDialog(this.initialColor,!1)}ngOnDestroy(){this.closeDialog()}ngAfterViewInit(){230===this.cpWidth&&"inline"!==this.cpDialogDisplay||(this.sliderDimMax=new te(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.updateColorPicker(!1),this.cdRef.detectChanges())}openDialog(t,n=!0){this.service.setActive(this),this.width||(this.cpWidth=this.directiveElementRef.nativeElement.offsetWidth),this.height||(this.height=320),this.setInitialColor(t),this.setColorFromString(t,n),this.openColorPicker()}closeDialog(){this.closeColorPicker()}setupDialog(t,n,i,r,l,a,p,u,f,x,v,k,N,ce,L,G,ln,an,cn,pn,un,dn,gn,hn,mn,_n,fn,Cn,vn,bn,xn,An,wn,Tn,Zn,kn,yn,Un){this.setInitialColor(i),this.setColorMode(u),this.isIE10=10===function ye(){let o="";typeof navigator<"u"&&(o=navigator.userAgent.toLowerCase());const s=o.indexOf("msie ");return s>0&&parseInt(o.substring(s+5,o.indexOf(".",s)),10)}(),this.directiveInstance=t,this.directiveElementRef=n,this.cpDisableInput=k,this.cpCmykEnabled=f,this.cpAlphaChannel=x,this.cpOutputFormat=v,this.cpDialogDisplay=a,this.cpIgnoredElements=N,this.cpSaveClickOutside=ce,this.cpCloseClickOutside=L,this.useRootViewContainer=G,this.width=this.cpWidth=parseInt(r,10),this.height=this.cpHeight=parseInt(l,10),this.cpPosition=ln,this.cpPositionOffset=parseInt(an,10),this.cpOKButton=_n,this.cpOKButtonText=Cn,this.cpOKButtonClass=fn,this.cpCancelButton=vn,this.cpCancelButtonText=xn,this.cpCancelButtonClass=bn,this.cpEyeDropper=kn,this.fallbackColor=p||"#fff",this.setPresetConfig(pn,un),this.cpPresetColorsClass=dn,this.cpMaxPresetColorsLength=gn,this.cpPresetEmptyMessage=hn,this.cpPresetEmptyMessageClass=mn,this.cpAddColorButton=An,this.cpAddColorButtonText=Tn,this.cpAddColorButtonClass=wn,this.cpRemoveColorButtonClass=Zn,this.cpTriggerElement=yn,this.cpExtraTemplate=Un,cn||(this.dialogArrowOffset=0),"inline"===a&&(this.dialogArrowSize=0,this.dialogArrowOffset=0),"hex"===v&&"always"!==x&&"forced"!==x&&(this.cpAlphaChannel="disabled")}setColorMode(t){switch(t.toString().toUpperCase()){case"1":case"C":case"COLOR":default:this.cpColorMode=1;break;case"2":case"G":case"GRAYSCALE":this.cpColorMode=2;break;case"3":case"P":case"PRESETS":this.cpColorMode=3}}setInitialColor(t){this.initialColor=t}setPresetConfig(t,n){this.cpPresetLabel=t,this.cpPresetColors=n}setColorFromString(t,n=!0,i=!0){let r;"always"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel?(r=this.service.stringToHsva(t,!0),!r&&!this.hsva&&(r=this.service.stringToHsva(t,!1))):r=this.service.stringToHsva(t,!1),!r&&!this.hsva&&(r=this.service.stringToHsva(this.fallbackColor,!1)),r&&(this.hsva=r,this.sliderH=this.hsva.h,"hex"===this.cpOutputFormat&&"disabled"===this.cpAlphaChannel&&(this.hsva.a=1),this.updateColorPicker(n,i))}onResize(){"fixed"===this.position?this.setDialogPosition():"inline"!==this.cpDialogDisplay&&this.closeColorPicker()}onDragEnd(t){this.directiveInstance.sliderDragEnd({slider:t,color:this.outputColor})}onDragStart(t){this.directiveInstance.sliderDragStart({slider:t,color:this.outputColor})}onMouseDown(t){this.show&&!this.isIE10&&"popup"===this.cpDialogDisplay&&t.target!==this.directiveElementRef.nativeElement&&!this.isDescendant(this.elRef.nativeElement,t.target)&&!this.isDescendant(this.directiveElementRef.nativeElement,t.target)&&0===this.cpIgnoredElements.filter(n=>n===t.target).length&&this.ngZone.run(()=>{this.cpSaveClickOutside?this.directiveInstance.colorSelected(this.outputColor):(this.hsva=null,this.setColorFromString(this.initialColor,!1),this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor),this.directiveInstance.colorCanceled()),this.cpCloseClickOutside&&this.closeColorPicker()})}onAcceptColor(t){t.stopPropagation(),this.outputColor&&this.directiveInstance.colorSelected(this.outputColor),"popup"===this.cpDialogDisplay&&this.closeColorPicker()}onCancelColor(t){this.hsva=null,t.stopPropagation(),this.directiveInstance.colorCanceled(),this.setColorFromString(this.initialColor,!0),"popup"===this.cpDialogDisplay&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor,!0),this.closeColorPicker())}onEyeDropper(){this.eyeDropperSupported&&(new window.EyeDropper).open().then(n=>{this.setColorFromString(n.sRGBHex,!0)})}onFormatToggle(t){const n=this.dialogInputFields.length-(this.cpCmykEnabled?0:1),i=((this.dialogInputFields.indexOf(this.format)+t)%n+n)%n;this.format=this.dialogInputFields[i]}onColorChange(t){this.hsva.s=t.s/t.rgX,this.hsva.v=t.v/t.rgY,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"lightness",value:this.hsva.v,color:this.outputColor}),this.directiveInstance.sliderChanged({slider:"saturation",value:this.hsva.s,color:this.outputColor})}onHueChange(t){this.hsva.h=t.v/t.rgX,this.sliderH=this.hsva.h,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"hue",value:this.hsva.h,color:this.outputColor})}onValueChange(t){this.hsva.v=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"value",value:this.hsva.v,color:this.outputColor})}onAlphaChange(t){this.hsva.a=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"alpha",value:this.hsva.a,color:this.outputColor})}onHexInput(t){if(null===t)this.updateColorPicker();else{t&&"#"!==t[0]&&(t="#"+t);let n=/^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;"always"===this.cpAlphaChannel&&(n=/^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi);const i=n.test(t);i&&(t.length<5&&(t="#"+t.substring(1).split("").map(r=>r+r).join("")),"forced"===this.cpAlphaChannel&&(t+=Math.round(255*this.hsva.a).toString(16)),this.setColorFromString(t,!0,!1)),this.directiveInstance.inputChanged({input:"hex",valid:i,value:t,color:this.outputColor})}}onRedInput(t){const n=this.service.hsvaToRgba(this.hsva),i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(n.r=t.v/t.rg,this.hsva=this.service.rgbaToHsva(n),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"red",valid:i,value:n.r,color:this.outputColor})}onBlueInput(t){const n=this.service.hsvaToRgba(this.hsva),i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(n.b=t.v/t.rg,this.hsva=this.service.rgbaToHsva(n),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"blue",valid:i,value:n.b,color:this.outputColor})}onGreenInput(t){const n=this.service.hsvaToRgba(this.hsva),i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(n.g=t.v/t.rg,this.hsva=this.service.rgbaToHsva(n),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"green",valid:i,value:n.g,color:this.outputColor})}onHueInput(t){const n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(this.hsva.h=t.v/t.rg,this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"hue",valid:n,value:this.hsva.h,color:this.outputColor})}onValueInput(t){const n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(this.hsva.v=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"value",valid:n,value:this.hsva.v,color:this.outputColor})}onAlphaInput(t){const n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(this.hsva.a=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"alpha",valid:n,value:this.hsva.a,color:this.outputColor})}onLightnessInput(t){const n=this.service.hsva2hsla(this.hsva),i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(n.l=t.v/t.rg,this.hsva=this.service.hsla2hsva(n),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"lightness",valid:i,value:n.l,color:this.outputColor})}onSaturationInput(t){const n=this.service.hsva2hsla(this.hsva),i=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;i&&(n.s=t.v/t.rg,this.hsva=this.service.hsla2hsva(n),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"saturation",valid:i,value:n.s,color:this.outputColor})}onCyanInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.c=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"cyan",valid:!0,value:this.cmyk.c,color:this.outputColor})}onMagentaInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.m=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"magenta",valid:!0,value:this.cmyk.m,color:this.outputColor})}onYellowInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.y=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"yellow",valid:!0,value:this.cmyk.y,color:this.outputColor})}onBlackInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.k=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"black",valid:!0,value:this.cmyk.k,color:this.outputColor})}onAddPresetColor(t,n){t.stopPropagation(),this.cpPresetColors.filter(i=>i===n).length||(this.cpPresetColors=this.cpPresetColors.concat(n),this.directiveInstance.presetColorsChanged(this.cpPresetColors))}onRemovePresetColor(t,n){t.stopPropagation(),this.cpPresetColors=this.cpPresetColors.filter(i=>i!==n),this.directiveInstance.presetColorsChanged(this.cpPresetColors)}openColorPicker(){this.show||(this.show=!0,this.hidden=!0,setTimeout(()=>{this.hidden=!1,this.setDialogPosition(),this.cdRef.detectChanges()},0),this.directiveInstance.stateChanged(!0),this.isIE10||this.ngZone.runOutsideAngular(()=>{ne?document.addEventListener("touchstart",this.listenerMouseDown):document.addEventListener("mousedown",this.listenerMouseDown)}),window.addEventListener("resize",this.listenerResize))}closeColorPicker(){this.show&&(this.show=!1,this.directiveInstance.stateChanged(!1),this.isIE10||(ne?document.removeEventListener("touchstart",this.listenerMouseDown):document.removeEventListener("mousedown",this.listenerMouseDown)),window.removeEventListener("resize",this.listenerResize),this.cdRef.destroyed||this.cdRef.detectChanges())}updateColorPicker(t=!0,n=!0,i=!1){if(this.sliderDimMax){let r,l,a;2===this.cpColorMode&&(this.hsva.s=0);const p=this.outputColor;if(l=this.service.hsva2hsla(this.hsva),this.cpCmykEnabled?(i?(a=this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk)),this.hsva=this.service.rgbaToHsva(a)):(a=this.service.hsvaToRgba(this.hsva),this.cmyk=this.service.denormalizeCMYK(this.service.rgbaToCmyk(a))),a=this.service.denormalizeRGBA(a),this.sliderH=this.hsva.h):a=this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva)),r=this.service.denormalizeRGBA(this.service.hsvaToRgba(new H(this.sliderH||this.hsva.h,1,1,1))),n&&(this.hslaText=new P(Math.round(360*l.h),Math.round(100*l.s),Math.round(100*l.l),Math.round(100*l.a)/100),this.rgbaText=new y(a.r,a.g,a.b,Math.round(100*a.a)/100),this.cpCmykEnabled&&(this.cmykText=new B(this.cmyk.c,this.cmyk.m,this.cmyk.y,this.cmyk.k,Math.round(100*this.cmyk.a)/100)),this.hexText=this.service.rgbaToHex(a,"always"===this.cpAlphaChannel),this.hexAlpha=this.rgbaText.a),"auto"===this.cpOutputFormat&&this.format!==A.RGBA&&this.format!==A.CMYK&&this.format!==A.HSLA&&this.hsva.a<1&&(this.format=this.hsva.a<1?A.RGBA:A.HEX),this.hueSliderColor="rgb("+r.r+","+r.g+","+r.b+")",this.alphaSliderColor="rgb("+a.r+","+a.g+","+a.b+")",this.outputColor=this.service.outputFormat(this.hsva,this.cpOutputFormat,this.cpAlphaChannel),this.selectedColor=this.service.outputFormat(this.hsva,"rgba",null),this.format!==A.CMYK)this.cmykColor="";else if("always"===this.cpAlphaChannel||"enabled"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel){const u=Math.round(100*this.cmyk.a)/100;this.cmykColor=`cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${u})`}else this.cmykColor=`cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;this.slider=new ee((this.sliderH||this.hsva.h)*this.sliderDimMax.h-8,this.hsva.s*this.sliderDimMax.s-8,(1-this.hsva.v)*this.sliderDimMax.v-8,this.hsva.a*this.sliderDimMax.a-8),t&&p!==this.outputColor&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.outputColor))}}setDialogPosition(){if("inline"===this.cpDialogDisplay)this.position="relative";else{let i,t="static",n="",r=null,l=null,a=this.directiveElementRef.nativeElement.parentNode;const p=this.dialogElement.nativeElement.offsetHeight;for(;null!==a&&"HTML"!==a.tagName;){if(i=window.getComputedStyle(a),t=i.getPropertyValue("position"),n=i.getPropertyValue("transform"),"static"!==t&&null===r&&(r=a),n&&"none"!==n&&null===l&&(l=a),"fixed"===t){r=l;break}a=a.parentNode}const u=this.createDialogBox(this.directiveElementRef.nativeElement,"fixed"!==t);if(this.useRootViewContainer||"fixed"===t&&(!r||r instanceof HTMLUnknownElement))this.top=u.top,this.left=u.left;else{null===r&&(r=a);const x=this.createDialogBox(r,"fixed"!==t);this.top=u.top-x.top,this.left=u.left-x.left}"fixed"===t&&(this.position="fixed");let f=this.cpPosition;"auto"===this.cpPosition&&(f=function ke(o,s){let t="right",n="bottom";const{height:i,width:r}=o,{top:l,left:a}=s,p=l+s.height,u=a+s.width,f=l-i<0,x=p+i>(window.innerHeight||document.documentElement.clientHeight),v=a-r<0,k=u+r>(window.innerWidth||document.documentElement.clientWidth);return x&&(n="top"),f&&(n="bottom"),v&&(t="right"),k&&(t="left"),f&&x&&v&&k?["left","right","top","bottom"].reduce((L,G)=>o[L]>o[G]?L:G):v&&k?f?"bottom":x||l>p?"top":"bottom":f&&x?v?"right":k||a>u?"left":"right":`${n}-${t}`}(this.dialogElement.nativeElement.getBoundingClientRect(),this.cpTriggerElement.nativeElement.getBoundingClientRect())),"top"===f?(this.arrowTop=p-1,this.top-=p+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*u.width-this.dialogArrowOffset):"bottom"===f?(this.top+=u.height+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*u.width-this.dialogArrowOffset):"top-left"===f||"left-top"===f?(this.top-=p-u.height+u.height*this.cpPositionOffset/100,this.left-=this.cpWidth+this.dialogArrowSize-2-this.dialogArrowOffset):"top-right"===f||"right-top"===f?(this.top-=p-u.height+u.height*this.cpPositionOffset/100,this.left+=u.width+this.dialogArrowSize-2-this.dialogArrowOffset):"left"===f||"bottom-left"===f||"left-bottom"===f?(this.top+=u.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left-=this.cpWidth+this.dialogArrowSize-2):(this.top+=u.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left+=u.width+this.dialogArrowSize-2),this.cpUsePosition=f}}isDescendant(t,n){let i=n.parentNode;for(;null!==i;){if(i===t)return!0;i=i.parentNode}return!1}createDialogBox(t,n){const{top:i,left:r}=t.getBoundingClientRect();return{top:i+(n?window.pageYOffset:0),left:r+(n?window.pageXOffset:0),width:t.offsetWidth,height:t.offsetHeight}}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(e.R0b),e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(m.K0),e.Y36(e.Lbi),e.Y36(W))},o.\u0275cmp=e.Xpm({type:o,selectors:[["color-picker"]],viewQuery:function(t,n){if(1&t&&(e.Gf(S,7),e.Gf(Y,7),e.Gf(E,7)),2&t){let i;e.iGM(i=e.CRH())&&(n.dialogElement=i.first),e.iGM(i=e.CRH())&&(n.hueSlider=i.first),e.iGM(i=e.CRH())&&(n.alphaSlider=i.first)}},hostBindings:function(t,n){1&t&&e.NdJ("keyup.esc",function(r){return n.handleEsc(r)},!1,e.evT)("keyup.enter",function(r){return n.handleEnter(r)},!1,e.evT)},decls:30,vars:51,consts:[[1,"color-picker",3,"click"],["dialogPopup",""],[3,"class","top",4,"ngIf"],["class","saturation-lightness",3,"slider","rgX","rgY","background-color","newValue","dragStart","dragEnd",4,"ngIf"],[1,"hue-alpha","box"],[1,"left"],[1,"selected-color-background"],[1,"selected-color",3,"click"],["class","eyedropper-icon","xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",4,"ngIf"],["type","button",3,"class","disabled","click",4,"ngIf"],[1,"right"],["style","height: 16px;",4,"ngIf"],[1,"hue",3,"slider","rgX","newValue","dragStart","dragEnd"],["hueSlider",""],[1,"cursor"],[1,"value",3,"slider","rgX","newValue","dragStart","dragEnd"],["valueSlider",""],[1,"alpha",3,"slider","rgX","newValue","dragStart","dragEnd"],["alphaSlider",""],["class","cmyk-text",3,"display",4,"ngIf"],["class","hsla-text",3,"display",4,"ngIf"],["class","rgba-text",3,"display",4,"ngIf"],["class","hex-text",3,"hex-alpha","display",4,"ngIf"],["class","value-text",4,"ngIf"],["class","type-policy",4,"ngIf"],["class","preset-area",4,"ngIf"],["class","button-area",4,"ngIf"],["class","extra-template",4,"ngIf"],[1,"saturation-lightness",3,"slider","rgX","rgY","newValue","dragStart","dragEnd"],["xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",1,"eyedropper-icon"],["d","M0 0h24v24H0V0z","fill","none"],["d","M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"],["type","button",3,"disabled","click"],[2,"height","16px"],[1,"cmyk-text"],[1,"box"],["type","number","pattern","[0-9]*","min","0","max","100",3,"text","rg","value","keyup.enter","newValue"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue",4,"ngIf"],[4,"ngIf"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue"],[1,"hsla-text"],["type","number","pattern","[0-9]*","min","0","max","360",3,"text","rg","value","keyup.enter","newValue"],[1,"rgba-text"],["type","number","pattern","[0-9]*","min","0","max","255",3,"text","rg","value","keyup.enter","newValue"],[1,"hex-text"],[3,"text","value","blur","keyup.enter","newValue"],[1,"value-text"],[1,"type-policy"],[1,"type-policy-arrow",3,"click"],[1,"preset-area"],[1,"preset-label"],[3,"class",4,"ngIf"],["class","preset-color",3,"backgroundColor","click",4,"ngFor","ngForOf"],[1,"preset-color",3,"click"],[3,"class","click",4,"ngIf"],[3,"click"],[1,"button-area"],["type","button",3,"class","click",4,"ngIf"],["type","button",3,"click"],[1,"extra-template"],[4,"ngTemplateOutlet"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0,1),e.NdJ("click",function(r){return r.stopPropagation()}),e.YNc(2,T,1,5,"div",2),e.YNc(3,F,2,8,"div",3),e.TgZ(4,"div",4)(5,"div",5),e._UZ(6,"div",6),e.TgZ(7,"div",7),e.NdJ("click",function(){return n.eyeDropperSupported&&n.cpEyeDropper&&n.onEyeDropper()}),e.YNc(8,O,3,0,"svg",8),e.qZA(),e.YNc(9,d,2,5,"button",9),e.qZA(),e.TgZ(10,"div",10),e.YNc(11,g,1,0,"div",11),e.TgZ(12,"div",12,13),e.NdJ("newValue",function(r){return n.onHueChange(r)})("dragStart",function(){return n.onDragStart("hue")})("dragEnd",function(){return n.onDragEnd("hue")}),e._UZ(14,"div",14),e.qZA(),e.TgZ(15,"div",15,16),e.NdJ("newValue",function(r){return n.onValueChange(r)})("dragStart",function(){return n.onDragStart("value")})("dragEnd",function(){return n.onDragEnd("value")}),e._UZ(17,"div",14),e.qZA(),e.TgZ(18,"div",17,18),e.NdJ("newValue",function(r){return n.onAlphaChange(r)})("dragStart",function(){return n.onDragStart("alpha")})("dragEnd",function(){return n.onDragEnd("alpha")}),e._UZ(20,"div",14),e.qZA()()(),e.YNc(21,w,17,12,"div",19),e.YNc(22,D,14,10,"div",20),e.YNc(23,M,14,10,"div",21),e.YNc(24,de,8,7,"div",22),e.YNc(25,he,9,3,"div",23),e.YNc(26,me,3,0,"div",24),e.YNc(27,be,6,3,"div",25),e.YNc(28,we,3,2,"div",26),e.YNc(29,Ze,2,1,"div",27),e.qZA()),2&t&&(e.Udp("display",n.show?"block":"none")("visibility",n.hidden?"hidden":"visible")("top",n.top,"px")("left",n.left,"px")("position",n.position)("height",n.cpHeight,"px")("width",n.cpWidth,"px"),e.ekj("open",n.show),e.xp6(2),e.Q6J("ngIf","popup"===n.cpDialogDisplay),e.xp6(1),e.Q6J("ngIf",1===(n.cpColorMode||1)),e.xp6(4),e.Udp("background-color",n.selectedColor)("cursor",n.eyeDropperSupported&&n.cpEyeDropper?"pointer":null),e.xp6(1),e.Q6J("ngIf",n.eyeDropperSupported&&n.cpEyeDropper),e.xp6(1),e.Q6J("ngIf",n.cpAddColorButton),e.xp6(2),e.Q6J("ngIf","disabled"===n.cpAlphaChannel),e.xp6(1),e.Udp("display",1===(n.cpColorMode||1)?"block":"none"),e.Q6J("rgX",1),e.xp6(2),e.Udp("left",null==n.slider?null:n.slider.h,"px"),e.xp6(1),e.Udp("display",2===(n.cpColorMode||1)?"block":"none"),e.Q6J("rgX",1),e.xp6(2),e.Udp("right",null==n.slider?null:n.slider.v,"px"),e.xp6(1),e.Udp("display","disabled"===n.cpAlphaChannel?"none":"block")("background-color",n.alphaSliderColor),e.Q6J("rgX",1),e.xp6(2),e.Udp("left",null==n.slider?null:n.slider.a,"px"),e.xp6(1),e.Q6J("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!n.cpDisableInput&&2===(n.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.xp6(1),e.Q6J("ngIf",(null==n.cpPresetColors?null:n.cpPresetColors.length)||n.cpAddColorButton),e.xp6(1),e.Q6J("ngIf",n.cpOKButton||n.cpCancelButton),e.xp6(1),e.Q6J("ngIf",n.cpExtraTemplate))},dependencies:[m.sg,m.O5,m.tP,Ue,qe],styles:['.color-picker{position:absolute;z-index:1000;width:230px;height:auto;border:#777 solid 1px;cursor:default;-webkit-user-select:none;user-select:none;background-color:#fff}.color-picker *{box-sizing:border-box;margin:0;font-size:11px}.color-picker input{width:0;height:26px;min-width:0;font-size:13px;text-align:center;color:#000}.color-picker input:invalid,.color-picker input:-moz-ui-invalid,.color-picker input:-moz-submit-invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.color-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.color-picker .arrow.arrow-top{left:8px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-bottom{top:-20px;left:8px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.color-picker .arrow.arrow-top-left,.color-picker .arrow.arrow-left-top{right:-21px;bottom:8px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-top-right,.color-picker .arrow.arrow-right-top{bottom:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom,.color-picker .arrow.arrow-bottom-left{top:8px;right:-21px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom,.color-picker .arrow.arrow-bottom-right{top:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .cursor{position:relative;width:16px;height:16px;border:#222 solid 2px;border-radius:50%;cursor:default}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{position:relative;padding:16px 8px}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{overflow:hidden;width:100%;padding:4px;font-size:11px;white-space:nowrap;text-align:left;text-overflow:ellipsis;color:#555}.color-picker .preset-area .preset-color{position:relative;display:inline-block;width:18px;height:18px;margin:4px 6px 8px;border:#a9a9a9 solid 1px;border-radius:25%;cursor:pointer}.color-picker .preset-area .preset-empty-message{min-height:18px;margin-top:4px;margin-bottom:8px;font-style:italic;text-align:center}.color-picker .hex-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{float:left;flex:1 1 auto;text-align:center;color:#555;clear:left}.color-picker .hex-text .box input{flex:1 1 auto;padding:1px;border:#a9a9a9 solid 1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{flex:1 1 auto;margin-right:8px;text-align:center;color:#555}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{float:left;flex:1;padding:1px;margin:0 8px 0 0;border:#a9a9a9 solid 1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{direction:ltr;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC)}.color-picker .value{direction:rtl;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=)}.color-picker .alpha{direction:ltr;width:100%;height:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==)}.color-picker .type-policy{position:absolute;top:218px;right:12px;width:16px;height:24px;background-size:8px 16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:center}.color-picker .type-policy .type-policy-arrow{display:block;width:100%;height:50%}.color-picker .selected-color{position:absolute;top:16px;left:8px;width:40px;height:40px;border:1px solid #a9a9a9;border-radius:50%}.color-picker .selected-color-background{width:40px;height:40px;border-radius:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC)}.color-picker .saturation-lightness{direction:ltr;width:100%;height:130px;border:none;cursor:pointer;touch-action:manipulation;background-size:100% 100%;background-image:url(data:image/png;base64,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)}.color-picker .cp-add-color-button-class{position:absolute;display:inline;padding:0;margin:3px -3px;border:0;cursor:pointer;background:transparent}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{cursor:not-allowed;color:#999}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{position:absolute;top:-5px;right:-5px;display:block;width:10px;height:10px;border-radius:50%;cursor:pointer;text-align:center;background:#fff;box-shadow:1px 1px 5px #333}.color-picker .cp-remove-color-button-class:before{content:"x";position:relative;bottom:3.5px;display:inline-block;font-size:10px}.color-picker .eyedropper-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);fill:#fff;mix-blend-mode:exclusion}\n'],encapsulation:2}),o})(),Pe=(()=>{class o{constructor(t,n,i,r,l,a){this.injector=t,this.cfr=n,this.appRef=i,this.vcRef=r,this.elRef=l,this._service=a,this.dialogCreated=!1,this.ignoreChanges=!1,this.viewAttachedToAppRef=!1,this.cpWidth="230px",this.cpHeight="auto",this.cpToggle=!1,this.cpDisabled=!1,this.cpIgnoredElements=[],this.cpFallbackColor="",this.cpColorMode="color",this.cpCmykEnabled=!1,this.cpOutputFormat="auto",this.cpAlphaChannel="enabled",this.cpDisableInput=!1,this.cpDialogDisplay="popup",this.cpSaveClickOutside=!0,this.cpCloseClickOutside=!0,this.cpUseRootViewContainer=!1,this.cpPosition="auto",this.cpPositionOffset="0%",this.cpPositionRelativeToArrow=!1,this.cpOKButton=!1,this.cpOKButtonText="OK",this.cpOKButtonClass="cp-ok-button-class",this.cpCancelButton=!1,this.cpCancelButtonText="Cancel",this.cpCancelButtonClass="cp-cancel-button-class",this.cpEyeDropper=!1,this.cpPresetLabel="Preset colors",this.cpPresetColorsClass="cp-preset-colors-class",this.cpMaxPresetColorsLength=6,this.cpPresetEmptyMessage="No colors added",this.cpPresetEmptyMessageClass="preset-empty-message",this.cpAddColorButton=!1,this.cpAddColorButtonText="Add color",this.cpAddColorButtonClass="cp-add-color-button-class",this.cpRemoveColorButtonClass="cp-remove-color-button-class",this.cpInputChange=new e.vpe(!0),this.cpToggleChange=new e.vpe(!0),this.cpSliderChange=new e.vpe(!0),this.cpSliderDragEnd=new e.vpe(!0),this.cpSliderDragStart=new e.vpe(!0),this.colorPickerOpen=new e.vpe(!0),this.colorPickerClose=new e.vpe(!0),this.colorPickerCancel=new e.vpe(!0),this.colorPickerSelect=new e.vpe(!0),this.colorPickerChange=new e.vpe(!1),this.cpCmykColorChange=new e.vpe(!0),this.cpPresetColorsChange=new e.vpe(!0)}handleClick(){this.inputFocus()}handleFocus(){this.inputFocus()}handleInput(t){this.inputChange(t)}ngOnDestroy(){null!=this.cmpRef&&(this.viewAttachedToAppRef&&this.appRef.detachView(this.cmpRef.hostView),this.cmpRef.destroy(),this.cmpRef=null,this.dialog=null)}ngOnChanges(t){t.cpToggle&&!this.cpDisabled&&(t.cpToggle.currentValue?this.openDialog():t.cpToggle.currentValue||this.closeDialog()),t.colorPicker&&(this.dialog&&!this.ignoreChanges&&("inline"===this.cpDialogDisplay&&this.dialog.setInitialColor(t.colorPicker.currentValue),this.dialog.setColorFromString(t.colorPicker.currentValue,!1),this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay&&this.cmpRef.changeDetectorRef.detectChanges()),this.ignoreChanges=!1),(t.cpPresetLabel||t.cpPresetColors)&&this.dialog&&this.dialog.setPresetConfig(this.cpPresetLabel,this.cpPresetColors)}openDialog(){if(this.dialogCreated)this.dialog&&this.dialog.openDialog(this.colorPicker);else{let t=this.vcRef;if(this.dialogCreated=!0,this.viewAttachedToAppRef=!1,this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay){const r=this.injector.get(this.appRef.componentTypes[0],e.zs3.NULL);r!==e.zs3.NULL?t=r.vcRef||r.viewContainerRef||this.vcRef:this.viewAttachedToAppRef=!0}const n=this.cfr.resolveComponentFactory(Se);if(this.viewAttachedToAppRef)this.cmpRef=n.create(this.injector),this.appRef.attachView(this.cmpRef.hostView),document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);else{const i=e.zs3.create({providers:[],parent:t.injector});this.cmpRef=t.createComponent(n,0,i,[])}this.cmpRef.instance.setupDialog(this,this.elRef,this.colorPicker,this.cpWidth,this.cpHeight,this.cpDialogDisplay,this.cpFallbackColor,this.cpColorMode,this.cpCmykEnabled,this.cpAlphaChannel,this.cpOutputFormat,this.cpDisableInput,this.cpIgnoredElements,this.cpSaveClickOutside,this.cpCloseClickOutside,this.cpUseRootViewContainer,this.cpPosition,this.cpPositionOffset,this.cpPositionRelativeToArrow,this.cpPresetLabel,this.cpPresetColors,this.cpPresetColorsClass,this.cpMaxPresetColorsLength,this.cpPresetEmptyMessage,this.cpPresetEmptyMessageClass,this.cpOKButton,this.cpOKButtonClass,this.cpOKButtonText,this.cpCancelButton,this.cpCancelButtonClass,this.cpCancelButtonText,this.cpAddColorButton,this.cpAddColorButtonClass,this.cpAddColorButtonText,this.cpRemoveColorButtonClass,this.cpEyeDropper,this.elRef,this.cpExtraTemplate),this.dialog=this.cmpRef.instance,this.vcRef!==t&&this.cmpRef.changeDetectorRef.detectChanges()}}closeDialog(){this.dialog&&"popup"===this.cpDialogDisplay&&this.dialog.closeDialog()}cmykChanged(t){this.cpCmykColorChange.emit(t)}stateChanged(t){this.cpToggleChange.emit(t),t?this.colorPickerOpen.emit(this.colorPicker):this.colorPickerClose.emit(this.colorPicker)}colorChanged(t,n=!0){this.ignoreChanges=n,this.colorPickerChange.emit(t)}colorSelected(t){this.colorPickerSelect.emit(t)}colorCanceled(){this.colorPickerCancel.emit()}inputFocus(){const t=this.elRef.nativeElement,n=this.cpIgnoredElements.filter(i=>i===t);!this.cpDisabled&&!n.length&&(typeof document<"u"&&t===document.activeElement?this.openDialog():this.dialog&&this.dialog.show?this.closeDialog():this.openDialog())}inputChange(t){this.dialog?this.dialog.setColorFromString(t.target.value,!0):(this.colorPicker=t.target.value,this.colorPickerChange.emit(this.colorPicker))}inputChanged(t){this.cpInputChange.emit(t)}sliderChanged(t){this.cpSliderChange.emit(t)}sliderDragEnd(t){this.cpSliderDragEnd.emit(t)}sliderDragStart(t){this.cpSliderDragStart.emit(t)}presetColorsChanged(t){this.cpPresetColorsChange.emit(t)}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(e.zs3),e.Y36(e._Vd),e.Y36(e.z2F),e.Y36(e.s_b),e.Y36(e.SBq),e.Y36(W))},o.\u0275dir=e.lG2({type:o,selectors:[["","colorPicker",""]],hostBindings:function(t,n){1&t&&e.NdJ("click",function(){return n.handleClick()})("focus",function(){return n.handleFocus()})("input",function(r){return n.handleInput(r)})},inputs:{colorPicker:"colorPicker",cpWidth:"cpWidth",cpHeight:"cpHeight",cpToggle:"cpToggle",cpDisabled:"cpDisabled",cpIgnoredElements:"cpIgnoredElements",cpFallbackColor:"cpFallbackColor",cpColorMode:"cpColorMode",cpCmykEnabled:"cpCmykEnabled",cpOutputFormat:"cpOutputFormat",cpAlphaChannel:"cpAlphaChannel",cpDisableInput:"cpDisableInput",cpDialogDisplay:"cpDialogDisplay",cpSaveClickOutside:"cpSaveClickOutside",cpCloseClickOutside:"cpCloseClickOutside",cpUseRootViewContainer:"cpUseRootViewContainer",cpPosition:"cpPosition",cpPositionOffset:"cpPositionOffset",cpPositionRelativeToArrow:"cpPositionRelativeToArrow",cpOKButton:"cpOKButton",cpOKButtonText:"cpOKButtonText",cpOKButtonClass:"cpOKButtonClass",cpCancelButton:"cpCancelButton",cpCancelButtonText:"cpCancelButtonText",cpCancelButtonClass:"cpCancelButtonClass",cpEyeDropper:"cpEyeDropper",cpPresetLabel:"cpPresetLabel",cpPresetColors:"cpPresetColors",cpPresetColorsClass:"cpPresetColorsClass",cpMaxPresetColorsLength:"cpMaxPresetColorsLength",cpPresetEmptyMessage:"cpPresetEmptyMessage",cpPresetEmptyMessageClass:"cpPresetEmptyMessageClass",cpAddColorButton:"cpAddColorButton",cpAddColorButtonText:"cpAddColorButtonText",cpAddColorButtonClass:"cpAddColorButtonClass",cpRemoveColorButtonClass:"cpRemoveColorButtonClass",cpExtraTemplate:"cpExtraTemplate"},outputs:{cpInputChange:"cpInputChange",cpToggleChange:"cpToggleChange",cpSliderChange:"cpSliderChange",cpSliderDragEnd:"cpSliderDragEnd",cpSliderDragStart:"cpSliderDragStart",colorPickerOpen:"colorPickerOpen",colorPickerClose:"colorPickerClose",colorPickerCancel:"colorPickerCancel",colorPickerSelect:"colorPickerSelect",colorPickerChange:"colorPickerChange",cpCmykColorChange:"cpCmykColorChange",cpPresetColorsChange:"cpPresetColorsChange"},exportAs:["ngxColorPicker"],features:[e.TTD]}),o})(),Ie=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({providers:[W],imports:[m.ez]}),o})();var Ne=h(94327);let oe=(()=>{class o{get isFileSaverSupported(){try{return!!new Blob}catch{return!1}}genType(t){if(!t||-1===t.lastIndexOf("."))return"text/plain";const n=t.substr(t.lastIndexOf(".")+1);switch(n){case"txt":return"text/plain";case"xml":case"html":return`text/${n}`;case"json":return"octet/stream";default:return`application/${n}`}}save(t,n,i,r){if(!t)throw new Error("Data argument should be a blob instance");const l=new Blob([t],{type:i||t.type||this.genType(n)});(0,Ne.saveAs)(l,decodeURI(n||"download"),r)}saveText(t,n,i){const r=new Blob([t]);this.save(r,n,void 0,i)}}return o.\u0275fac=function(t){return new(t||o)},o.\u0275prov=e.Yz7({token:o,factory:o.\u0275fac,providedIn:"root"}),o})(),Ee=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({}),o})();function Oe(o,s){1&o&&e._UZ(0,"div",9)}function De(o,s){if(1&o&&(e.TgZ(0,"span",10),e._uU(1),e.qZA()),2&o){const t=e.oxw().$implicit;e.xp6(1),e.Oqu(t.description)}}function Je(o,s){if(1&o&&(e.TgZ(0,"section",11),e._UZ(1,"ngx-json-viewer",12),e.qZA()),2&o){const t=e.oxw().$implicit,n=e.oxw();e.xp6(1),e.Q6J("json",t.value)("expanded",n.expanded)("depth",n.depth)("_currentDepth",n._currentDepth+1)}}const Be=function(o){return["segment",o]},Ve=function(o,s){return{"segment-main":!0,expandable:o,expanded:s}};function Re(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"section",2)(1,"section",3),e.NdJ("click",function(){const r=e.CHM(t).$implicit,l=e.oxw();return e.KtG(l.toggle(r))}),e.YNc(2,Oe,1,0,"div",4),e.TgZ(3,"span",5),e._uU(4),e.qZA(),e.TgZ(5,"span",6),e._uU(6,": "),e.qZA(),e.YNc(7,De,2,1,"span",7),e.qZA(),e.YNc(8,Je,2,4,"section",8),e.qZA()}if(2&o){const t=s.$implicit,n=e.oxw();e.Q6J("ngClass",e.VKq(6,Be,"segment-type-"+t.type)),e.xp6(1),e.Q6J("ngClass",e.WLB(8,Ve,n.isExpandable(t),t.expanded)),e.xp6(1),e.Q6J("ngIf",n.isExpandable(t)),e.xp6(2),e.Oqu(t.key),e.xp6(3),e.Q6J("ngIf",!t.expanded||!n.isExpandable(t)),e.xp6(1),e.Q6J("ngIf",t.expanded&&n.isExpandable(t))}}let ie=(()=>{class o{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),"object"==typeof this.json?Object.keys(this.json).forEach(t=>{this.segments.push(this.parseKeyValue(t,this.json[t]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(t){return"object"===t.type||"array"===t.type}toggle(t){this.isExpandable(t)&&(t.expanded=!t.expanded)}parseKeyValue(t,n){const i={key:t,value:n,type:void 0,description:""+n,expanded:this.isExpanded()};switch(typeof i.value){case"number":i.type="number";break;case"boolean":i.type="boolean";break;case"function":i.type="function";break;case"string":i.type="string",i.description='"'+i.value+'"';break;case"undefined":i.type="undefined",i.description="undefined";break;case"object":null===i.value?(i.type="null",i.description="null"):Array.isArray(i.value)?(i.type="array",i.description="Array["+i.value.length+"] "+JSON.stringify(i.value)):i.value instanceof Date?i.type="date":(i.type="object",i.description="Object "+JSON.stringify(i.value))}return i}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(t){const n=new WeakMap;return function i(r,l){let a,p;return"object"!=typeof r||null===r||r instanceof Boolean||r instanceof Date||r instanceof Number||r instanceof RegExp||r instanceof String?r:(a=n.get(r),void 0!==a?{$ref:a}:(n.set(r,l),Array.isArray(r)?(p=[],r.forEach(function(u,f){p[f]=i(u,l+"["+f+"]")})):(p={},Object.keys(r).forEach(function(u){p[u]=i(r[u],l+"["+JSON.stringify(u)+"]")})),p))}(t,"$")}}return o.\u0275fac=function(t){return new(t||o)},o.\u0275cmp=e.Xpm({type:o,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},features:[e.TTD],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"ngClass","click"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(t,n){1&t&&(e.TgZ(0,"section",0),e.YNc(1,Re,9,11,"section",1),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngForOf",n.segments))},dependencies:[m.mk,m.sg,m.O5,o],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),o})(),Ye=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[m.ez]}),o})();var re=h(96749),b=h(88648),c=h(24006),Fe=h(22995),Ke=h(54004),U=h(5830),C=h(54463),I=h(97185),q=h(91835);function je(o,s){if(1&o&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2,"\n "),e.TgZ(3,"b"),e._uU(4,"Device name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"IEEE"),e.qZA(),e._uU(8),e.TgZ(9,"b"),e._uU(10,"Ep"),e.qZA(),e._uU(11),e.TgZ(12,"b"),e._uU(13,"Nwkid"),e.qZA(),e._uU(14),e.qZA(),e._uU(15,"\n ")),2&o){const t=s.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t.IEEE," - "),e.xp6(3),e.hij(" :\n ",t.Ep," - "),e.xp6(3),e.hij(" : ",t.NwkId,"\n ")}}function He(o,s){if(1&o&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2,"\n "),e.TgZ(3,"b"),e._uU(4,"Device name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"IEEE"),e.qZA(),e._uU(8),e.TgZ(9,"b"),e._uU(10,"Ep"),e.qZA(),e._uU(11),e.TgZ(12,"b"),e._uU(13,"Nwkid"),e.qZA(),e._uU(14),e.qZA(),e._uU(15,"\n ")),2&o){const t=s.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t.IEEE," - "),e.xp6(3),e.hij(" :\n ",t.Ep," - "),e.xp6(3),e.hij(" : ",t.NwkId,"\n ")}}const Le=new b.Yd("BindingComponent");let Ge=(()=>{class o extends Fe.n{constructor(t,n,i,r){super(),this.apiService=t,this.formBuilder=n,this.translate=i,this.toastr=r}ngOnInit(){this.form=this.formBuilder.group({source:[null,c.kI.required],target:[null,c.kI.required],cluster:[null,c.kI.required]}),this.clusters$=this.apiService.getBindLSTcluster().pipe((0,Ke.U)(t=>t.map(n=>(n.fullName=n.ClusterId+" "+n.ClusterDesc,n)))),this.subs.sink=this.form.get("cluster").valueChanges.subscribe(t=>{Le.debug("change:",t),this.apiService.getBindLSTdevice(this.form.get("cluster").value).subscribe(n=>{this.devicesSource=n,this.devicesTarget=n})})}filterDevices(t){this.form.get("target").patchValue(null),this.devicesTargetFiltered=this.devicesTarget.filter(n=>t.NwkId!==n.NwkId)}putBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}putUnBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putUnBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(U.s),e.Y36(c.qu),e.Y36(C.sK),e.Y36(I._W))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-binding"]],features:[e.qOj],decls:71,vars:26,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[3,"formGroup"],[1,"card"],["translate","tools.binding.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["appendTo","body","bindLabel","fullName","bindValue","ClusterId","formControlName","cluster",3,"items","multiple","closeOnSelect","placeholder"],[1,"row","mt-2"],["appendTo","body","bindLabel","ZDeviceName","formControlName","source",3,"items","multiple","closeOnSelect","placeholder","change"],["ng-option-tmp",""],["bindLabel","ZDeviceName","appendTo","body","formControlName","target",3,"items","multiple","closeOnSelect","placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.binding.button.put",1,"btn","btn-primary",3,"disabled","click"],["translate","tools.unbinding.button.put",1,"ms-2","btn","btn-primary",3,"disabled","click"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"form",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e._UZ(6,"div",3),e._uU(7,"\n "),e.TgZ(8,"div",4),e._uU(9,"\n "),e._UZ(10,"p",5),e.ALo(11,"translate"),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"div",8),e._uU(18,"\n "),e.TgZ(19,"div"),e._uU(20,"\n "),e.TgZ(21,"ng-select",9),e.ALo(22,"async"),e.ALo(23,"translate"),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.qZA(),e._uU(27,"\n "),e.qZA(),e._uU(28,"\n "),e.TgZ(29,"div",10),e._uU(30,"\n "),e.TgZ(31,"div",8),e._uU(32,"\n "),e.TgZ(33,"div"),e._uU(34,"\n "),e.TgZ(35,"ng-select",11),e.NdJ("change",function(r){return n.filterDevices(r)}),e.ALo(36,"translate"),e._uU(37,"\n "),e.YNc(38,je,16,4,"ng-template",12),e._uU(39,"\n "),e.qZA(),e._uU(40,"\n "),e.qZA(),e._uU(41,"\n "),e.qZA(),e._uU(42,"\n "),e.qZA(),e._uU(43,"\n "),e.TgZ(44,"div",10),e._uU(45,"\n "),e.TgZ(46,"div",8),e._uU(47,"\n "),e.TgZ(48,"div"),e._uU(49,"\n "),e.TgZ(50,"ng-select",13),e.ALo(51,"translate"),e._uU(52,"\n "),e.YNc(53,He,16,4,"ng-template",12),e._uU(54,"\n "),e.qZA(),e._uU(55,"\n "),e.qZA(),e._uU(56,"\n "),e.qZA(),e._uU(57,"\n "),e.qZA(),e._uU(58,"\n "),e.qZA(),e._uU(59,"\n "),e.qZA(),e._uU(60,"\n "),e.TgZ(61,"div",14),e._uU(62,"\n "),e.TgZ(63,"button",15),e.NdJ("click",function(){return n.putBinding()}),e.qZA(),e._uU(64,"\n "),e.TgZ(65,"button",16),e.NdJ("click",function(){return n.putUnBinding()}),e.qZA(),e._uU(66,"\n "),e.qZA(),e._uU(67,"\n "),e.qZA(),e._uU(68,"\n "),e.qZA(),e._uU(69,"\n"),e.qZA(),e._uU(70,"\n")),2&t&&(e.xp6(2),e.Q6J("formGroup",n.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(11,16,"tools.binding.subtitle"),e.oJD),e.xp6(11),e.s9C("placeholder",e.lcZ(23,20,"tools.binding.cluster")),e.Q6J("items",e.lcZ(22,18,n.clusters$))("multiple",!1)("closeOnSelect",!0),e.xp6(14),e.s9C("placeholder",e.lcZ(36,22,"tools.binding.sourceEp")),e.Q6J("items",n.devicesSource)("multiple",!1)("closeOnSelect",!0),e.xp6(15),e.s9C("placeholder",e.lcZ(51,24,"tools.binding.destEp")),e.Q6J("items",n.devicesTargetFiltered)("multiple",!1)("closeOnSelect",!0),e.xp6(13),e.Q6J("disabled",!n.form.valid),e.xp6(2),e.Q6J("disabled",!n.form.valid))},dependencies:[c._Y,c.JJ,c.JL,c.sg,c.u,q.w9,q.ir,C.Pi,m.Ov,C.X$]}),o})();function Qe(o,s){if(1&o&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&o){const t=s.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t._NwkId,"")}}function ze(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"ng-select",18),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.setAction(i))}),e.ALo(1,"translate"),e._uU(2,"\n "),e.qZA()}if(2&o){const t=e.oxw();e.s9C("placeholder",e.lcZ(1,5,"tools.debugcommand.action")),e.Q6J("items",t.capabilities.Capabilities)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function We(o,s){if(1&o&&(e.TgZ(0,"ng-select",19),e.ALo(1,"translate"),e._uU(2,"\n "),e.qZA()),2&o){const t=e.oxw();e.s9C("placeholder",e.lcZ(1,5,"tools.debugcommand.type")),e.Q6J("items",t.capabilities.Types)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function Xe(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",12),e._uU(1,"\n "),e.TgZ(2,"div",7),e._uU(3,"\n "),e.TgZ(4,"div"),e._uU(5,"\n "),e.TgZ(6,"span",20),e.NdJ("colorPickerChange",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.colorPicker=i)}),e.qZA(),e._uU(7,"\n "),e.qZA(),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.qZA()}if(2&o){const t=e.oxw();e.xp6(6),e.Udp("background",t.colorPicker),e.Q6J("cpToggle",!0)("cpDialogDisplay","inline")("colorPicker",t.colorPicker)("cpOutputFormat","rgba")}}function $e(o,s){1&o&&e._UZ(0,"div",23)}function et(o,s){if(1&o&&(e.TgZ(0,"div",12),e._uU(1,"\n "),e.TgZ(2,"div",7),e._uU(3,"\n "),e.TgZ(4,"div"),e._uU(5,"\n "),e._UZ(6,"input",21),e.ALo(7,"translate"),e._uU(8,"\n "),e.YNc(9,$e,1,0,"div",22),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n "),e.qZA(),e._uU(12,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(6),e.s9C("placeholder",e.lcZ(7,2,"tools.debugcommand.value")),e.xp6(3),e.Q6J("ngIf",t.form.controls.effect.errors)}}function tt(o,s){1&o&&e._UZ(0,"div",26)}function nt(o,s){if(1&o&&(e.TgZ(0,"div",12),e._uU(1,"\n "),e.TgZ(2,"div",7),e._uU(3,"\n "),e.TgZ(4,"div"),e._uU(5,"\n "),e._UZ(6,"input",24),e.ALo(7,"translate"),e._uU(8,"\n "),e.YNc(9,tt,1,0,"div",25),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n "),e.qZA(),e._uU(12,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(6),e.s9C("placeholder",e.lcZ(7,2,"tools.debugcommand.value")),e.xp6(3),e.Q6J("ngIf",!t.form.controls.level.valid)}}new b.Yd("DebugCommandComponent");let ot=(()=>{class o{constructor(t,n,i,r){this.toastr=t,this.apiService=n,this.formBuilder=i,this.translate=r,this.colorPicker="rgba(30,96,239,0.54)"}ngOnInit(){this.form=this.formBuilder.group({level:[null,[c.kI.nullValidator,c.kI.min(0),c.kI.max(100)]],type:[null,c.kI.required],action:[null,c.kI.required],deviceSelected:[null,c.kI.required],effect:[null,c.kI.compose([c.kI.nullValidator,c.kI.pattern("^[0-9A-Fa-f]+")])]}),this.form.get("type").disable(),this.apiService.getZDevices().subscribe(t=>{this.routers=t.filter(n=>"Router"===n.LogicalType)})}callCapabilities(t){this.capaSelected=null,this.form.get("action").patchValue(null),this.form.get("type").patchValue(null),this.capabilities=null,this.apiService.getDevCap(t._NwkId).subscribe(n=>{this.capabilities=n})}setAction(t){this.capaSelected=t,this.form.get("type").patchValue(null),t&&!0===t.Type?this.form.get("type").enable():this.form.get("type").disable()}callAction(){let t=null,n=null;if(this.testRGB)if(this.colorPicker.startsWith("rgba")){let r=this.colorPicker.replace("rgba(","");r=r.replace(")","");const l=r.split(",");4===l.length&&(n=100*Number(l[3]),t="rgb("+l[0]+","+l[1]+","+l[2]+")")}else this.colorPicker.startsWith("rgb")&&(n=100,t=this.colorPicker);!n&&this.capaSelected.Value&&("hex"===this.capaSelected.Value&&(n=this.form.get("effect").value),"int"===this.capaSelected.Value&&(n=this.form.get("level").value));const i={NwkId:this.form.get("deviceSelected").value._NwkId,Command:this.form.get("action").value.actuator,Value:n,Color:t,Type:this.form.get("type").value};this.apiService.putDevCommand(i).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}get testRGB(){return!!this.form.get("type").value&&this.form.get("type").value.startsWith("ColorControl")}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(I._W),e.Y36(U.s),e.Y36(c.qu),e.Y36(C.sK))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-debug-command"]],decls:61,vars:17,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.debugcommand.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","appendTo","body","formControlName","deviceSelected",3,"items","multiple","closeOnSelect","searchable","placeholder","change"],["ng-option-tmp",""],[1,"col-sm"],["translate","tools.debugcommand.button.cancel",1,"ms-3","btn","btn-secondary",3,"click"],[1,"row","mt-2"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"items","multiple","closeOnSelect","searchable","placeholder","change",4,"ngIf"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder",4,"ngIf"],["class","row mt-2",4,"ngIf"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.debugcommand.button.send",1,"btn","btn-primary",3,"disabled","click"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"items","multiple","closeOnSelect","searchable","placeholder","change"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder"],[3,"cpToggle","cpDialogDisplay","colorPicker","cpOutputFormat","colorPickerChange"],["type","text","formControlName","effect",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.effect.error",4,"ngIf"],["translate","tools.debugcommand.effect.error"],["type","number","min","0","formControlName","level",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.level.error",4,"ngIf"],["translate","tools.debugcommand.level.error"]],template:function(t,n){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"ng-select",8),e.NdJ("change",function(r){return n.callCapabilities(r)}),e.ALo(18,"translate"),e._uU(19,"\n "),e.YNc(20,Qe,10,2,"ng-template",9),e._uU(21,"\n "),e.qZA(),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.TgZ(24,"div",10),e._uU(25,"\n "),e.TgZ(26,"button",11),e.NdJ("click",function(){return n.form.reset(),n.capaSelected=null}),e.qZA(),e._uU(27,"\n "),e.qZA(),e._uU(28,"\n "),e.qZA(),e._uU(29,"\n "),e.TgZ(30,"div",12),e._uU(31,"\n "),e.TgZ(32,"div",7),e._uU(33,"\n "),e.YNc(34,ze,3,7,"ng-select",13),e._uU(35,"\n "),e.qZA(),e._uU(36,"\n "),e.qZA(),e._uU(37,"\n "),e.TgZ(38,"div",12),e._uU(39,"\n "),e.TgZ(40,"div",7),e._uU(41,"\n "),e.YNc(42,We,3,7,"ng-select",14),e._uU(43,"\n "),e.qZA(),e._uU(44,"\n "),e.qZA(),e._uU(45,"\n "),e.YNc(46,Xe,10,6,"div",15),e._uU(47,"\n "),e.YNc(48,et,13,4,"div",15),e._uU(49,"\n "),e.YNc(50,nt,13,4,"div",15),e._uU(51,"\n "),e.qZA(),e._uU(52,"\n "),e.qZA(),e._uU(53,"\n "),e.TgZ(54,"div",16),e._uU(55,"\n "),e.TgZ(56,"button",17),e.NdJ("click",function(){return n.callAction()}),e.qZA(),e._uU(57,"\n "),e.qZA(),e._uU(58,"\n "),e.qZA(),e._uU(59,"\n"),e.qZA(),e._uU(60,"\n")),2&t&&(e.Q6J("formGroup",n.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,13,"tools.debugcommand.subtitle"),e.oJD),e.xp6(9),e.s9C("placeholder",e.lcZ(18,15,"tools.debugcommand.device")),e.Q6J("items",n.routers)("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(17),e.Q6J("ngIf",n.form.get("deviceSelected").value&&n.capabilities),e.xp6(8),e.Q6J("ngIf",n.capaSelected&&n.capaSelected.Type),e.xp6(4),e.Q6J("ngIf",n.capaSelected&&n.testRGB),e.xp6(2),e.Q6J("ngIf",n.capaSelected&&"hex"===n.capaSelected.Value),e.xp6(2),e.Q6J("ngIf",n.capaSelected&&"int"===n.capaSelected.Value),e.xp6(6),e.Q6J("disabled",!n.form.valid))},dependencies:[m.O5,c._Y,c.Fj,c.wV,c.JJ,c.JL,c.qQ,c.sg,c.u,q.w9,q.ir,C.Pi,Pe,C.X$]}),o})();function it(o,s){1&o&&e._UZ(0,"div",14)}function rt(o,s){1&o&&e._UZ(0,"div",14)}new b.Yd("RawCommandComponent");let st=(()=>{class o{constructor(t,n,i,r){this.toastr=t,this.apiService=n,this.formBuilder=i,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({Command:[null,c.kI.required],payload:[null]})}putCommand(){this.apiService.putCommandRaw(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(I._W),e.Y36(U.s),e.Y36(c.qu),e.Y36(C.sK))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-raw-command"]],decls:50,vars:13,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigate.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["type","text","formControlName","Command",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigate.error",4,"ngIf"],[1,"row","mt-2"],["type","text","formControlName","payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigate.button.send",1,"btn","btn-primary",3,"disabled","click"],["translate","tools.rawcommand-zigate.error"]],template:function(t,n){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"div"),e._uU(18,"\n "),e._UZ(19,"input",8),e.ALo(20,"translate"),e._uU(21,"\n "),e.YNc(22,it,1,0,"div",9),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.TgZ(27,"div",10),e._uU(28,"\n "),e.TgZ(29,"div",7),e._uU(30,"\n "),e.TgZ(31,"div"),e._uU(32,"\n "),e._UZ(33,"input",11),e.ALo(34,"translate"),e._uU(35,"\n "),e.YNc(36,rt,1,0,"div",9),e._uU(37,"\n "),e.qZA(),e._uU(38,"\n "),e.qZA(),e._uU(39,"\n "),e.qZA(),e._uU(40,"\n "),e.qZA(),e._uU(41,"\n "),e.qZA(),e._uU(42,"\n "),e.TgZ(43,"div",12),e._uU(44,"\n "),e.TgZ(45,"button",13),e.NdJ("click",function(){return n.putCommand()}),e.qZA(),e._uU(46,"\n "),e.qZA(),e._uU(47,"\n "),e.qZA(),e._uU(48,"\n"),e.qZA(),e._uU(49,"\n")),2&t&&(e.Q6J("formGroup",n.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,7,"tools.rawcommand-zigate.subtitle"),e.oJD),e.xp6(11),e.s9C("placeholder",e.lcZ(20,9,"tools.rawcommand-zigate.command")),e.xp6(3),e.Q6J("ngIf",n.form.controls.Command.dirty&&!n.form.controls.Command.valid),e.xp6(11),e.s9C("placeholder",e.lcZ(34,11,"tools.rawcommand-zigate.payload")),e.xp6(3),e.Q6J("ngIf",n.form.controls.payload.dirty&&!n.form.controls.payload.valid),e.xp6(9),e.Q6J("disabled",!n.form.valid))},dependencies:[m.O5,c._Y,c.Fj,c.JJ,c.JL,c.sg,c.u,C.Pi,C.X$]}),o})();function lt(o,s){if(1&o&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&o){const t=s.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t._NwkId," ")}}new b.Yd("RawCommandZigpyComponent");let at=(()=>{class o{constructor(t,n,i,r){this.toastr=t,this.apiService=n,this.formBuilder=i,this.translate=r,this.TrueFalse=[{id:!1,name:"False"},{id:!0,name:"True"}]}ngOnInit(){this.form=this.formBuilder.group({ProfileId:["0104",c.kI.required],ClusterId:["0000",c.kI.required],TargetAddr:[null,c.kI.required],TargetEp:["01",c.kI.required],SourceEp:["01",c.kI.required],Sqn:["55",c.kI.required],Payload:[null,c.kI.required],GroupAddressFlag:[!1,c.kI.required],AckMode:[!1,c.kI.required]}),this.devices$=this.apiService.getZDeviceName()}putCommand(){this.apiService.putCommandRawZigpy(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(I._W),e.Y36(U.s),e.Y36(c.qu),e.Y36(C.sK))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-raw-command-zigpy"]],decls:118,vars:34,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigpy.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","bindValue","_NwkId","formControlName","TargetAddr",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"row","mt-2"],["translate","tools.rawcommand-zigpy.groupaddressflag",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","GroupAddressFlag",3,"items"],["translate","tools.rawcommand-zigpy.ackmode",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","AckMode",3,"items"],["translate","tools.rawcommand-zigpy.profileid",1,"col-sm-3","col-form-label"],[1,"col-sm-2"],["type","text","formControlName","ProfileId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.clusterid",1,"col-sm-3","col-form-label"],["type","text","formControlName","ClusterId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sourceep",1,"col-sm-3","col-form-label"],["type","text","formControlName","SourceEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.targetep",1,"col-sm-3","col-form-label"],["type","text","formControlName","TargetEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sqn",1,"col-sm-3","col-form-label"],["type","text","formControlName","Sqn",1,"w-100","form-control",3,"placeholder"],[1,"col-sm"],["type","text","formControlName","Payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigpy.button.send",1,"btn","btn-primary",3,"disabled","click"]],template:function(t,n){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e._UZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7,"\n "),e._UZ(8,"p",4),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",5),e._uU(12,"\n "),e.TgZ(13,"div",6),e._uU(14,"\n "),e.TgZ(15,"div",7),e._uU(16,"\n "),e.TgZ(17,"ng-select",8),e.ALo(18,"async"),e.ALo(19,"translate"),e._uU(20,"\n "),e.YNc(21,lt,10,2,"ng-template",9),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.qZA(),e._uU(25,"\n "),e.TgZ(26,"div",10),e._uU(27,"\n "),e._UZ(28,"label",11),e._uU(29,"\n "),e.TgZ(30,"div",7),e._uU(31,"\n "),e.TgZ(32,"ng-select",12),e._uU(33,"\n "),e.qZA(),e._uU(34,"\n "),e.qZA(),e._uU(35,"\n "),e.qZA(),e._uU(36,"\n "),e.TgZ(37,"div",10),e._uU(38,"\n "),e._UZ(39,"label",13),e._uU(40,"\n "),e.TgZ(41,"div",7),e._uU(42,"\n "),e.TgZ(43,"ng-select",14),e._uU(44," "),e.qZA(),e._uU(45,"\n "),e.qZA(),e._uU(46,"\n "),e.qZA(),e._uU(47,"\n "),e.TgZ(48,"div",10),e._uU(49,"\n "),e._UZ(50,"label",15),e._uU(51,"\n "),e.TgZ(52,"div",16),e._uU(53,"\n "),e._UZ(54,"input",17),e.ALo(55,"translate"),e._uU(56,"\n "),e.qZA(),e._uU(57,"\n "),e._UZ(58,"label",18),e._uU(59,"\n "),e.TgZ(60,"div",16),e._uU(61,"\n "),e._UZ(62,"input",19),e.ALo(63,"translate"),e._uU(64,"\n "),e.qZA(),e._uU(65,"\n "),e.qZA(),e._uU(66,"\n "),e.TgZ(67,"div",10),e._uU(68,"\n "),e._UZ(69,"label",20),e._uU(70,"\n "),e.TgZ(71,"div",16),e._uU(72,"\n "),e._UZ(73,"input",21),e.ALo(74,"translate"),e._uU(75,"\n "),e.qZA(),e._uU(76,"\n "),e._UZ(77,"label",22),e._uU(78,"\n "),e.TgZ(79,"div",16),e._uU(80,"\n "),e._UZ(81,"input",23),e.ALo(82,"translate"),e._uU(83,"\n "),e.qZA(),e._uU(84,"\n "),e.qZA(),e._uU(85,"\n "),e.TgZ(86,"div",10),e._uU(87,"\n "),e._UZ(88,"label",24),e._uU(89,"\n "),e.TgZ(90,"div",16),e._uU(91,"\n "),e.TgZ(92,"div"),e._uU(93,"\n "),e._UZ(94,"input",25),e.ALo(95,"translate"),e._uU(96,"\n "),e.qZA(),e._uU(97,"\n "),e.qZA(),e._uU(98,"\n "),e.qZA(),e._uU(99,"\n "),e.TgZ(100,"div",10),e._uU(101,"\n "),e.TgZ(102,"div",26),e._uU(103,"\n "),e._UZ(104,"input",27),e.ALo(105,"translate"),e._uU(106,"\n "),e.qZA(),e._uU(107,"\n "),e.qZA(),e._uU(108,"\n "),e.qZA(),e._uU(109,"\n "),e.qZA(),e._uU(110,"\n "),e.TgZ(111,"div",28),e._uU(112,"\n "),e.TgZ(113,"button",29),e.NdJ("click",function(){return n.putCommand()}),e.qZA(),e._uU(114,"\n "),e.qZA(),e._uU(115,"\n "),e.qZA(),e._uU(116,"\n"),e.qZA(),e._uU(117,"\n")),2&t&&(e.Q6J("formGroup",n.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,16,"tools.rawcommand-zigpy.subtitle"),e.oJD),e.xp6(9),e.s9C("placeholder",e.lcZ(19,20,"tools.rawcommand-zigpy.placeholder")),e.Q6J("items",e.lcZ(18,18,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(15),e.Q6J("items",n.TrueFalse),e.xp6(11),e.Q6J("items",n.TrueFalse),e.xp6(11),e.s9C("placeholder",e.lcZ(55,22,"tools.rawcommand-zigpy.profileid")),e.xp6(8),e.s9C("placeholder",e.lcZ(63,24,"tools.rawcommand-zigpy.clusterid")),e.xp6(11),e.s9C("placeholder",e.lcZ(74,26,"tools.rawcommand-zigpy.sourceep")),e.xp6(8),e.s9C("placeholder",e.lcZ(82,28,"tools.rawcommand-zigpy.targetep")),e.xp6(13),e.s9C("placeholder",e.lcZ(95,30,"tools.rawcommand-zigpy.sqn")),e.xp6(10),e.s9C("placeholder",e.lcZ(105,32,"tools.rawcommand-zigpy.payload")),e.xp6(9),e.Q6J("disabled",!n.form.valid))},dependencies:[c._Y,c.Fj,c.JJ,c.JL,c.sg,c.u,q.w9,q.ir,C.Pi,m.Ov,C.X$]}),o})();function ct(o,s){1&o&&e._UZ(0,"app-raw-command")}function pt(o,s){1&o&&e._UZ(0,"app-raw-command-zigpy")}new b.Yd("CommandComponent");let ut=(()=>{class o{constructor(){}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}}return o.\u0275fac=function(t){return new(t||o)},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-command"]],decls:9,vars:2,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[4,"ngIf"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"app-debug-command"),e._uU(3,"\n "),e.YNc(4,ct,1,0,"app-raw-command",1),e._uU(5,"\n "),e.YNc(6,pt,1,0,"app-raw-command-zigpy",1),e._uU(7,"\n"),e.qZA(),e._uU(8,"\n")),2&t&&(e.xp6(4),e.Q6J("ngIf",!(null!=n.plugin&&n.plugin.Zigpy)),e.xp6(2),e.Q6J("ngIf",null==n.plugin?null:n.plugin.Zigpy))},dependencies:[m.O5,ot,st,at]}),o})();var dt=h(75958),se=h(19513);function gt(o,s){if(1&o&&(e.TgZ(0,"div",3),e._uU(1,"\n "),e._UZ(2,"label",4),e._uU(3,"\n "),e._UZ(4,"input",5),e._uU(5,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(2),e.s9C("translate",t.setting.Name)}}function ht(o,s){if(1&o&&(e.TgZ(0,"div",3),e._uU(1,"\n "),e._UZ(2,"label",4),e._uU(3,"\n "),e._UZ(4,"input",6),e._uU(5,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(2),e.s9C("translate",t.setting.Name)}}function mt(o,s){if(1&o&&(e.TgZ(0,"div",3),e._uU(1,"\n "),e._UZ(2,"label",4),e._uU(3,"\n "),e._UZ(4,"input",7),e._uU(5,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(2),e.s9C("translate",t.setting.Name)}}function _t(o,s){if(1&o&&(e.TgZ(0,"div",3),e._uU(1,"\n "),e._UZ(2,"label",4),e._uU(3,"\n "),e._UZ(4,"input",5),e._uU(5,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(2),e.s9C("translate",t.setting.Name)}}function ft(o,s){if(1&o&&(e.TgZ(0,"div",8),e._uU(1,"\n "),e._UZ(2,"input",9),e._uU(3,"\n "),e._UZ(4,"label",10),e._uU(5,"\n "),e.qZA()),2&o){const t=e.oxw();e.xp6(2),e.s9C("id",t.setting.Name),e.xp6(2),e.s9C("for",t.setting.Name),e.s9C("translate",t.setting.Name)}}new b.Yd("DebugSettingComponent");let Ct=(()=>{class o{constructor(t,n){this.formBuilder=t,this.fgd=n}ngOnInit(){let t;t=this.formBuilder.group("hex"===this.setting.DataType?{current:["",c.kI.compose([c.kI.required,c.kI.pattern("^[0-9A-Fa-f]+")])]}:"bool"===this.setting.DataType?{current:[]}:{current:["",c.kI.required]}),this.fgd.form.addControl(this.setting.Name,t);const n=""!==this.setting.current_value?this.setting.current_value:this.setting.default_value;this.fgd.form.get(this.setting.Name).get("current").patchValue(n)}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(c.qu),e.Y36(c.sg))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-debug-setting"]],inputs:{setting:"setting",advanced:"advanced"},features:[e._Bn([],[{provide:c.gN,useExisting:c.sg}])],decls:13,vars:6,consts:[[3,"formGroupName"],["class","d-flex flex-row align-items-center flex-wrap mt-2",4,"ngIf"],["class","form-check form-check-inline mt-2",4,"ngIf"],[1,"d-flex","flex-row","align-items-center","flex-wrap","mt-2"],["for","current",1,"me-2",3,"translate"],["type","text","formControlName","current",1,"w-25","form-control"],["type","text","formControlName","current",1,"w-100","form-control"],["type","number","formControlName","current",1,"form-control","w-25"],[1,"form-check","form-check-inline","mt-2"],["formControlName","current","type","checkbox",1,"form-check-input",3,"id"],[1,"form-check-label",3,"for","translate"]],template:function(t,n){1&t&&(e.ynx(0,0),e._uU(1,"\n "),e.YNc(2,gt,6,1,"div",1),e._uU(3,"\n "),e.YNc(4,ht,6,1,"div",1),e._uU(5,"\n "),e.YNc(6,mt,6,1,"div",1),e._uU(7,"\n "),e.YNc(8,_t,6,1,"div",1),e._uU(9,"\n "),e.YNc(10,ft,6,3,"div",2),e._uU(11,"\n"),e.BQk(),e._uU(12,"\n")),2&t&&(e.Q6J("formGroupName",n.setting.Name),e.xp6(2),e.Q6J("ngIf","str"===n.setting.DataType),e.xp6(2),e.Q6J("ngIf","path"===n.setting.DataType),e.xp6(2),e.Q6J("ngIf","int"===n.setting.DataType),e.xp6(2),e.Q6J("ngIf","hex"===n.setting.DataType),e.xp6(2),e.Q6J("ngIf","bool"===n.setting.DataType))},dependencies:[m.O5,c.Fj,c.wV,c.Wl,c.JJ,c.JL,c.u,c.x0,C.Pi],styles:["was-validated[_ngcontent-%COMP%] .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]{color:#000}"]}),o})();const X=["contentRestart"];function vt(o,s){if(1&o&&e._UZ(0,"app-debug-setting",29),2&o){const t=e.oxw().$implicit,n=e.oxw(4);e.Q6J("setting",t)("advanced",n.advanced)}}function bt(o,s){if(1&o&&(e.ynx(0),e._uU(1,"\n "),e.YNc(2,vt,1,2,"app-debug-setting",28),e._uU(3,"\n "),e.BQk()),2&o){const t=s.$implicit;e.xp6(2),e.Q6J("ngIf",!t.Advanced&&"bool"===t.DataType)}}function xt(o,s){if(1&o&&e._UZ(0,"app-debug-setting",29),2&o){const t=e.oxw().$implicit,n=e.oxw(4);e.Q6J("setting",t)("advanced",n.advanced)}}function At(o,s){if(1&o&&(e.ynx(0),e._uU(1,"\n "),e.YNc(2,xt,1,2,"app-debug-setting",28),e._uU(3,"\n "),e.BQk()),2&o){const t=s.$implicit;e.xp6(2),e.Q6J("ngIf",!t.Advanced&&"bool"!==t.DataType)}}function wt(o,s){if(1&o&&e._UZ(0,"app-debug-setting",29),2&o){const t=e.oxw().$implicit,n=e.oxw(4);e.Q6J("setting",t)("advanced",n.advanced)}}function Tt(o,s){if(1&o&&(e.ynx(0),e._uU(1,"\n "),e.YNc(2,wt,1,2,"app-debug-setting",28),e._uU(3,"\n "),e.BQk()),2&o){const t=s.$implicit,n=e.oxw(4);e.xp6(2),e.Q6J("ngIf",t.Advanced&&t.Advanced===n.advanced)}}function Zt(o,s){if(1&o&&(e.TgZ(0,"div",21),e._uU(1,"\n "),e._UZ(2,"div",22),e._uU(3,"\n "),e.TgZ(4,"div",23),e._uU(5,"\n "),e.TgZ(6,"div",24),e._uU(7,"\n "),e._UZ(8,"p",25),e._uU(9,"\n "),e.qZA(),e._uU(10,"\n "),e.TgZ(11,"div",24),e._uU(12,"\n "),e.TgZ(13,"div",26),e._uU(14,"\n "),e.YNc(15,bt,4,1,"ng-container",19),e._uU(16,"\n "),e.qZA(),e._uU(17,"\n "),e.TgZ(18,"div",27),e._uU(19,"\n "),e.YNc(20,At,4,1,"ng-container",19),e._uU(21,"\n "),e.qZA(),e._uU(22,"\n "),e.TgZ(23,"div",27),e._uU(24,"\n "),e.YNc(25,Tt,4,1,"ng-container",19),e._uU(26,"\n "),e.qZA(),e._uU(27,"\n "),e.qZA(),e._uU(28,"\n "),e.qZA(),e._uU(29,"\n "),e.qZA()),2&o){const t=e.oxw().$implicit,n=e.oxw(2);e.xp6(2),e.Q6J("innerHTML",n.getTranslation("setting.header.",t._Theme),e.oJD),e.xp6(6),e.Q6J("innerHTML",n.getTranslation("setting.subtitle.",t._Theme),e.oJD),e.xp6(7),e.Q6J("ngForOf",t.ListOfSettings),e.xp6(5),e.Q6J("ngForOf",t.ListOfSettings),e.xp6(5),e.Q6J("ngForOf",t.ListOfSettings)}}function kt(o,s){if(1&o&&(e.TgZ(0,"div"),e._uU(1,"\n "),e.YNc(2,Zt,30,5,"div",20),e._uU(3,"\n "),e.qZA()),2&o){const t=s.$implicit,n=e.oxw(2);e.xp6(2),e.Q6J("ngIf",n.hasBasicSettings(t.ListOfSettings))}}function yt(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"form",4),e._uU(1,"\n "),e.TgZ(2,"fieldset",5),e._uU(3,"\n "),e.TgZ(4,"legend"),e._uU(5,"\n "),e.TgZ(6,"div",6),e._uU(7,"\n "),e._UZ(8,"h5",7),e.ALo(9,"translate"),e._uU(10,"\n "),e.TgZ(11,"div",8),e._uU(12,"\n "),e.TgZ(13,"div",9),e._uU(14,"\n "),e.TgZ(15,"div",10),e._uU(16,"\n "),e.TgZ(17,"button",11),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.updateSettings())}),e.qZA(),e._uU(18,"\n "),e.qZA(),e._uU(19,"\n "),e.TgZ(20,"div",12),e._uU(21,"\n "),e.TgZ(22,"button",13),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.reinitSettings())}),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.TgZ(25,"div",14),e._uU(26,"\n "),e.TgZ(27,"input",15),e.NdJ("click",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.advancedSettings(i))}),e.qZA(),e._uU(28,"\n "),e._UZ(29,"label",16),e._uU(30,"\n "),e.qZA(),e._uU(31,"\n "),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n "),e.qZA(),e._uU(34,"\n "),e.qZA(),e._uU(35,"\n "),e.qZA(),e._uU(36,"\n "),e.TgZ(37,"div",17),e._uU(38,"\n "),e.TgZ(39,"div",18),e._uU(40,"\n "),e.YNc(41,kt,4,1,"div",19),e._uU(42,"\n "),e.qZA(),e._uU(43,"\n "),e.qZA(),e._uU(44,"\n"),e.qZA()}if(2&o){const t=e.oxw();e.Q6J("formGroup",t.form),e.xp6(8),e.Q6J("innerHTML",e.lcZ(9,5,"tools.debugsetting.help.legend"),e.oJD),e.xp6(9),e.Q6J("disabled",!t.form.valid),e.xp6(10),e.Q6J("checked",t.advanced),e.xp6(14),e.Q6J("ngForOf",t.settings)}}function Ut(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",30),e._uU(2,"\n "),e._UZ(3,"h4",31),e._uU(4,"\n "),e.TgZ(5,"button",32),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.KtG(r.dismiss("Cross click"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e._UZ(8,"div",33),e._uU(9,"\n "),e.TgZ(10,"div",34),e._uU(11,"\n "),e.TgZ(12,"button",35),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.KtG(r.dismiss("cancel"))}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n")}}function qt(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",30),e._uU(2,"\n "),e._UZ(3,"h4",36),e._uU(4,"\n "),e.TgZ(5,"button",32),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.KtG(r.dismiss("Cross click"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e._UZ(8,"div",37),e._uU(9,"\n "),e.TgZ(10,"div",34),e._uU(11,"\n "),e.TgZ(12,"button",38),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.KtG(r.dismiss("cancel"))}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n")}}function St(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",30),e._uU(2,"\n "),e._UZ(3,"h4",39),e._uU(4,"\n "),e.TgZ(5,"button",32),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.KtG(r.dismiss("Cross click"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e._UZ(8,"div",40),e._uU(9,"\n "),e.TgZ(10,"div",34),e._uU(11,"\n "),e.TgZ(12,"button",41),e.NdJ("click",function(){const r=e.CHM(t).$implicit;return e.KtG(r.dismiss("cancel"))}),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n")}}new b.Yd("DebugSettingsComponent");let Mt=(()=>{class o{constructor(t,n,i,r,l,a){this.modalService=t,this.apiService=n,this.formBuilder=i,this.toastr=r,this.headerService=l,this.translate=a,this.advanced=!1}ngOnInit(){this.form=this.formBuilder.group({}),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((n,i)=>n.Name.localeCompare(i.Name))})}reinitSettings(){this.settings.forEach(t=>{const n=[];t.ListOfSettings.forEach(i=>{i.current_value=i.default_value,n.push(Object.assign({},i))}),t.ListOfSettings=n}),this.settings=[...this.settings]}advancedSettings(t){this.advanced=!!t.currentTarget.checked}updateSettings(){this.form.invalid?this.form.markAsTouched():(Object.keys(this.form.value).forEach(t=>{!0===this.form.value[t].current?this.form.value[t].current=1:!1===this.form.value[t].current&&(this.form.value[t].current=0)}),this.apiService.putSettingsDebug(this.form.value).subscribe(t=>{this.form.markAsPristine(),this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getSettingsDebug().subscribe(n=>{this.settings=n,this.settings[0].ListOfSettings.sort((i,r)=>i.Name.localeCompare(r.Name))}),this.apiService.getRestartNeeded().subscribe(n=>{1===n.RestartNeeded?(this.headerService.setRestart(!0),this.open(this.contentRestart)):2===n.RestartNeeded?this.open(this.contentReset):3===n.RestartNeeded&&this.open(this.contentErase)})}))}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(n=>{},n=>{})}hasBasicSettings(t){return!!this.advanced||t.filter(n=>!1===n.Advanced).length>0}getTranslation(t,n){return this.translate.instant(t.concat(n))}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(dt.FF),e.Y36(U.s),e.Y36(c.qu),e.Y36(I._W),e.Y36(se.r),e.Y36(C.sK))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-debug-settings"]],viewQuery:function(t,n){if(1&t&&(e.Gf(X,5),e.Gf(X,5),e.Gf(X,5)),2&t){let i;e.iGM(i=e.CRH())&&(n.contentRestart=i.first),e.iGM(i=e.CRH())&&(n.contentReset=i.first),e.iGM(i=e.CRH())&&(n.contentErase=i.first)}},decls:11,vars:1,consts:[[3,"formGroup",4,"ngIf"],["contentRestart",""],["contentReset",""],["contentErase",""],[3,"formGroup"],[1,"h-100"],[1,"row"],[1,"col-sm-8",3,"innerHTML"],[1,"col-sm-4"],[1,"d-flex","flex-row-reverse","align-items-center"],[1,"p-2"],["translate","tools.debugsetting.validate.button",1,"btn","btn-primary",3,"disabled","click"],[1,"p-2","ms-3"],["translate","tools.debugsetting.reinit.button",1,"btn","btn-secondary",3,"click"],[1,"switch","switch-sm","me-2","pr-2","float-right"],["type","checkbox","id","switch-advanced",1,"switch",3,"checked","click"],["for","switch-advanced","translate","tools.debugsetting.advanced.button",1,"mb-0"],[1,"row","row-cols-1","row-cols-sm-1","g-4"],[1,"col"],[4,"ngFor","ngForOf"],["class","card",4,"ngIf"],[1,"card"],[1,"card-header","fw-bold",3,"innerHTML"],[1,"card-body"],[1,"card-text"],[3,"innerHTML"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center","mt-2"],[3,"setting","advanced",4,"ngIf"],[3,"setting","advanced"],[1,"modal-header"],["id","modal-basic-title","translate","setting.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","setting.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","setting.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.resetplugin.alert.title",1,"modal-title"],["translate","setting.resetplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.resetplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.eraseplugin.alert.title",1,"modal-title"],["translate","setting.eraseplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.eraseplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(t,n){1&t&&(e.YNc(0,yt,45,7,"form",0),e._uU(1,"\n\n"),e.YNc(2,Ut,15,0,"ng-template",null,1,e.W1O),e._uU(4,"\n\n"),e.YNc(5,qt,15,0,"ng-template",null,2,e.W1O),e._uU(7,"\n\n"),e.YNc(8,St,15,0,"ng-template",null,3,e.W1O),e._uU(10,"\n")),2&t&&e.Q6J("ngIf",n.settings)},dependencies:[m.sg,m.O5,c._Y,c.JL,c.sg,C.Pi,Ct,C.X$],styles:[".btn-secondary[_ngcontent-%COMP%]{--bs-btn-color: white}"]}),o})();var le=h(28746);function ae(o,s){const t=new m.uU("en-US");if("LastSeen"===o)return t.transform(1e3*s,"dd/MM/yyyy HH:mm:ss");if(["TimeStamps","TimeStamp","Stamp","Time","StartTime","BatteryUpdateTime","TargetTime"].indexOf(o)>-1){if(s>0){let i=1e3*s;return i=Number(i.toFixed(0)),t.transform(i,"dd/MM/yyyy HH:mm:ss")}return s}return s}function Pt(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",4),e._uU(1,"\n "),e.TgZ(2,"button",5),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.export(i.json))}),e.qZA(),e._uU(3,"\n\n "),e._UZ(4,"ngx-json-viewer",6),e._uU(5,"\n"),e.qZA()}if(2&o){const t=e.oxw();e.Q6J("hidden",t.isLoading),e.xp6(4),e.Q6J("expanded",!1)("json",t.json)}}new b.Yd("ErrorComponent");let It=(()=>{class o{constructor(t,n,i){this.apiService=t,this.headerService=n,this.fileSaverService=i,this.json=null,this.isLoading=!1}ngOnInit(){}onClick(t){let n;this.json=null,"log-error-history"===t&&(n=this.apiService.getLogErrorHistory(),this.headerService.setError(!1)),"clear-error-history"===t&&(n=this.apiService.clearLogErrorHistory(),this.headerService.setError(!1)),n&&n.pipe((0,le.x)(()=>{this.isLoading=!1})).subscribe(i=>{this.callbackservice(i)})}callbackservice(t){const n=JSON.stringify(t);this.json=JSON.parse(n,ae)}export(t){const n="errors.json",i=this.fileSaverService.genType(n),r=new Blob([JSON.stringify(t)],{type:i});this.fileSaverService.save(r,n)}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(U.s),e.Y36(se.r),e.Y36(oe))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-error"]],decls:9,vars:1,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.error.log-history.button",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.error.log-history.clear",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"button",1),e.NdJ("click",function(){return n.onClick("log-error-history")}),e.qZA(),e._uU(3,"\n "),e.TgZ(4,"button",2),e.NdJ("click",function(){return n.onClick("clear-error-history")}),e.qZA(),e._uU(5,"\n"),e.qZA(),e._uU(6,"\n"),e.YNc(7,Pt,6,3,"div",3),e._uU(8,"\n")),2&t&&(e.xp6(7),e.Q6J("ngIf",n.json))},dependencies:[m.O5,C.Pi,ie]}),o})();var Nt=h(42824),$=h(55017),Et=h(10805),Ot=h(51740);function Dt(o,s){1&o&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"th",4),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._uU(6,"\n "),e.TgZ(7,"th",5),e._uU(8),e.ALo(9,"translate"),e.qZA(),e._uU(10,"\n "),e.TgZ(11,"th",6),e._uU(12),e.ALo(13,"translate"),e.qZA(),e._uU(14,"\n "),e.TgZ(15,"th",6),e._uU(16),e.ALo(17,"translate"),e.qZA(),e._uU(18,"\n "),e.TgZ(19,"th",6),e._uU(20),e.ALo(21,"translate"),e.qZA(),e._uU(22,"\n "),e.TgZ(23,"th",6),e._uU(24),e.ALo(25,"translate"),e.qZA(),e._uU(26,"\n "),e.TgZ(27,"th",7),e._uU(28),e.ALo(29,"translate"),e.qZA(),e._uU(30,"\n "),e.qZA(),e._uU(31,"\n ")),2&o&&(e.xp6(4),e.Oqu(e.lcZ(5,7,"tools.reporting.configure.clusterId.column")),e.xp6(4),e.Oqu(e.lcZ(9,9,"tools.reporting.configure.attributeId.column")),e.xp6(4),e.Oqu(e.lcZ(13,11,"tools.reporting.configure.dataType.column")),e.xp6(4),e.Oqu(e.lcZ(17,13,"tools.reporting.configure.timeout.column")),e.xp6(4),e.Oqu(e.lcZ(21,15,"tools.reporting.configure.minInterval.column")),e.xp6(4),e.Oqu(e.lcZ(25,17,"tools.reporting.configure.maxInterval.column")),e.xp6(4),e.Oqu(e.lcZ(29,19,"tools.reporting.configure.change.column")))}function Jt(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",15),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw(),l=r.$implicit,a=r.rowIndex,p=e.oxw();return e.KtG(p.updateValue(i,"MinInterval",l,a))}),e.qZA(),e._uU(2,"\n ")}if(2&o){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("value",t.minInterval)}}function Bt(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",15),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw(),l=r.$implicit,a=r.rowIndex,p=e.oxw();return e.KtG(p.updateValue(i,"MinInterval",l,a))}),e.qZA(),e._uU(2,"\n ")}if(2&o){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("value",t.minInterval)}}function Vt(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",15),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw(),l=r.$implicit,a=r.rowIndex,p=e.oxw();return e.KtG(p.updateValue(i,"MaxInterval",l,a))}),e.qZA(),e._uU(2,"\n ")}if(2&o){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("value",t.maxInterval)}}function Rt(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",15),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw(),l=r.$implicit,a=r.rowIndex,p=e.oxw();return e.KtG(p.updateValue(i,"MaxInterval",l,a))}),e.qZA(),e._uU(2," ")}if(2&o){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("value",t.maxInterval)}}function Yt(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",15),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw(2),l=r.$implicit,a=r.rowIndex,p=e.oxw();return e.KtG(p.updateValue(i,"Change",l,a))}),e.qZA(),e._uU(2,"\n ")}if(2&o){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("value",t.change)}}function Ft(o,s){if(1&o){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",15),e.NdJ("change",function(i){e.CHM(t);const r=e.oxw(2),l=r.$implicit,a=r.rowIndex,p=e.oxw();return e.KtG(p.updateValue(i,"Change",l,a))}),e.qZA(),e._uU(2,"\n ")}if(2&o){const t=e.oxw(2).$implicit;e.xp6(1),e.Q6J("value",t.change)}}function Kt(o,s){1&o&&(e.ynx(0),e._uU(1,"\n "),e.YNc(2,Yt,3,1,"ng-template",9),e._uU(3,"\n "),e.YNc(4,Ft,3,1,"ng-template",10),e._uU(5,"\n "),e.BQk())}function jt(o,s){if(1&o&&e._uU(0),2&o){const t=e.oxw().$implicit;e.Oqu(t.change)}}function Ht(o,s){if(1&o&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"td"),e._uU(4),e.qZA(),e._uU(5,"\n "),e.TgZ(6,"td"),e._uU(7),e.qZA(),e._uU(8,"\n "),e.TgZ(9,"td"),e._uU(10),e.qZA(),e._uU(11,"\n "),e.TgZ(12,"td"),e._uU(13),e.qZA(),e._uU(14,"\n "),e.TgZ(15,"td",8),e._uU(16,"\n "),e.TgZ(17,"p-cellEditor"),e._uU(18,"\n "),e.YNc(19,Jt,3,1,"ng-template",9),e._uU(20,"\n "),e.YNc(21,Bt,3,1,"ng-template",10),e._uU(22,"\n "),e.qZA(),e._uU(23,"\n "),e.qZA(),e._uU(24,"\n "),e.TgZ(25,"td",11),e._uU(26,"\n "),e.TgZ(27,"p-cellEditor"),e._uU(28,"\n "),e.YNc(29,Vt,3,1,"ng-template",9),e._uU(30,"\n "),e.YNc(31,Rt,3,1,"ng-template",10),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n "),e.TgZ(34,"td",12),e._uU(35,"\n "),e.TgZ(36,"p-cellEditor"),e._uU(37,"\n "),e.YNc(38,Kt,6,0,"ng-container",13),e._uU(39,"\n "),e.YNc(40,jt,1,1,"ng-template",null,14,e.W1O),e.qZA(),e._uU(42,"\n "),e.qZA(),e._uU(43,"\n "),e.qZA()),2&o){const t=s.$implicit,n=e.MAs(41),i=e.oxw();e.xp6(4),e.Oqu(t.clusterId),e.xp6(3),e.Oqu(t.attributeId),e.xp6(3),e.Oqu(t.dataType),e.xp6(3),e.Oqu(t.timeOut),e.xp6(2),e.Q6J("pEditableColumn",t.minInterval),e.xp6(10),e.Q6J("pEditableColumn",t.maxInterval),e.xp6(9),e.Q6J("pEditableColumn",t.change),e.xp6(4),e.Q6J("ngIf",i.isEditable(t))("ngIfElse",n)}}const Lt=function(){return[10,25,50]};new b.Yd("ConfigureByClusterReportingComponent");let Gt=(()=>{class o{constructor(t,n,i,r){this.toastr=t,this.apiService=n,this.formBuilder=i,this.translate=r,this.clustersChange=new e.vpe,this.clustersToDisplay=[],this.datatypeConvertor=[{type:"10",longueur:"0",editable:!1},{type:"20",longueur:"0",editable:!0},{type:"21",longueur:"00",editable:!0},{type:"22",longueur:"000",editable:!0},{type:"23",longueur:"0000",editable:!0},{type:"24",longueur:"00000",editable:!0},{type:"25",longueur:"000000",editable:!0},{type:"26",longueur:"0000000",editable:!0},{type:"27",longueur:"00000000",editable:!0},{type:"28",longueur:"0",editable:!0},{type:"29",longueur:"00",editable:!0},{type:"2a",longueur:"000",editable:!0},{type:"2b",longueur:"0000",editable:!0},{type:"2c",longueur:"00000",editable:!0},{type:"2d",longueur:"000000",editable:!0},{type:"2e",longueur:"0000000",editable:!0},{type:"2f",longueur:"00000000",editable:!0},{type:"38",longueur:"00",editable:!0},{type:"39",longueur:"0000",editable:!0},{type:"3a",longueur:"00000000",editable:!0},{type:"e0",longueur:"0000",editable:!0},{type:"e1",longueur:"0000",editable:!0},{type:"e2",longueur:"0000",editable:!0}]}ngOnChanges(t){t.clusters.currentValue&&this.formatClusters(t.clusters.currentValue)}formatClusters(t){this.clustersToDisplay=[],t.forEach(n=>{n.Attributes.forEach(i=>{i.Infos.forEach(r=>{const l=new Nt.VF;l.clusterId=n.ClusterId,l.attributeId=i.Attribute,l.change=parseInt(r.Change,16).toString(),l.dataType=r.DataType,l.maxInterval=parseInt(r.MaxInterval,16).toString(),l.minInterval=parseInt(r.MinInterval,16).toString(),l.timeOut=parseInt(r.TimeOut,16).toString(),this.clustersToDisplay.push(l)})})})}updateValue(t,n,i,r){const l=t.target.value,a=this.clusters.find(p=>p.ClusterId===i.clusterId).Attributes.find(p=>p.Attribute===i.attributeId).Infos[0];if(!this.controlerValue(Number(l),n,a)){if("Change"===n){const p=this.datatypeConvertor.find(u=>u.type===a.DataType);a[n]=(p.longueur+Number(l).toString(16).toUpperCase()).slice(-p.longueur.length)}else a[n]=Number(l).toString(16).toUpperCase();this.formatClusters(this.clusters),this.clustersChange.emit(this.clusters)}}controlerValue(t,n,i){let r=!1;if(isNaN(t))r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.hexa.error"));else if("Change"!==n&&Number(t)>65535)r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"));else if("Change"===n){const l=this.datatypeConvertor.find(p=>p.type===i.DataType),a=l.longueur.split("0").join("F");Number(t)>parseInt(a,16)&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"))),"10"===l.type&&Number(t)>1&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error")))}return r}isEditable(t){const n=this.datatypeConvertor.find(i=>i.type===t.dataType);return n&&n.editable}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(I._W),e.Y36(U.s),e.Y36(c.qu),e.Y36(C.sK))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-configure-cluster-reporting"]],inputs:{clusters:"clusters"},outputs:{clustersChange:"clustersChange"},features:[e.TTD],decls:9,vars:11,consts:[["responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["dt1",""],["pTemplate","header"],["pTemplate","body"],[2,"width","15rem"],[2,"width","7rem"],[2,"width","5rem"],[2,"width","3rem"],["pEditableColumnField","minInterval",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pEditableColumnField","maxInterval",3,"pEditableColumn"],["pEditableColumnField","change",3,"pEditableColumn"],[4,"ngIf","ngIfElse"],["notEditable",""],["pInputText","","type","text",3,"value","change"]],template:function(t,n){1&t&&(e.TgZ(0,"p-table",0,1),e.ALo(2,"translate"),e._uU(3,"\n "),e.YNc(4,Dt,32,21,"ng-template",2),e._uU(5,"\n "),e.YNc(6,Ht,44,9,"ng-template",3),e._uU(7,"\n"),e.qZA(),e._uU(8,"\n")),2&t&&(e.s9C("currentPageReportTemplate",e.lcZ(2,8,"TOTAL")),e.Q6J("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.DdM(10,Lt))("value",n.clustersToDisplay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[m.O5,$.iA,Et.jx,$.Wq,$.YL,Ot.o,C.X$]}),o})();function Qt(o,s){if(1&o&&(e._uU(0,"\n "),e.TgZ(1,"span"),e._uU(2," "),e.TgZ(3,"b"),e._uU(4,"Name"),e.qZA(),e._uU(5),e.TgZ(6,"b"),e._uU(7,"NwkId"),e.qZA(),e._uU(8),e.qZA(),e._uU(9,"\n ")),2&o){const t=s.item;e.xp6(5),e.hij(" : ",t.ZDeviceName," - "),e.xp6(3),e.hij(" : ",t._NwkId,"")}}function zt(o,s){if(1&o){const t=e.EpF();e.ynx(0),e._uU(1,"\n "),e.TgZ(2,"app-configure-cluster-reporting",16),e.NdJ("clustersChange",function(i){e.CHM(t);const r=e.oxw();return e.KtG(r.onClustersChange(i))}),e.qZA(),e._uU(3,"\n "),e.BQk()}if(2&o){const t=s.ngIf;e.xp6(2),e.Q6J("clusters",t)}}new b.Yd("ConfigureReportingComponent");let Wt=(()=>{class o{constructor(t,n,i){this.toastr=t,this.apiService=n,this.translate=i,this.permitToValidate=!1}ngOnInit(){this.devices$=this.apiService.getZDevices()}getConfiguration(t){this.deviceSelected=null,t&&(this.deviceSelected=t._NwkId,this.clusters$=this.apiService.getConfigureReporting(this.deviceSelected))}putConfiguration(){this.apiService.putConfigureReporting(this.deviceSelected,this.clustersToSave).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}resetConfiguration(){this.apiService.deleteConfigureReporting(this.deviceSelected).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}triggerConfiguration(){this.apiService.getTriggerConfigureReporting(this.deviceSelected).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}onClustersChange(t){this.permitToValidate=!1,this.clustersToSave=null,t&&(this.permitToValidate=!0,this.clustersToSave=t)}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(I._W),e.Y36(U.s),e.Y36(C.sK))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-configure-reporting"]],decls:50,vars:30,consts:[[1,"col"],[1,"card"],[1,"card-header","d-flex"],[1,"col","fw-bold","justify-content-start"],[1,"col","d-flex","justify-content-end"],[1,"btn","btn-danger",3,"disabled","translate","click"],[1,"btn","btn-secondary","ms-3",3,"disabled","translate","click"],[1,"btn","btn-primary","ms-3",3,"disabled","translate","click"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-3","mb-2"],["bindLabel","ZDeviceName","appendTo","body",3,"items","multiple","closeOnSelect","searchable","placeholder","change","clear"],["ng-option-tmp",""],[4,"ngIf"],[3,"clusters","clustersChange"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3,"\n "),e.TgZ(4,"div",2),e._uU(5,"\n "),e.TgZ(6,"div",3),e._uU(7),e.ALo(8,"translate"),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"div",4),e._uU(11,"\n "),e.TgZ(12,"button",5),e.NdJ("click",function(){return n.resetConfiguration()}),e.ALo(13,"translate"),e.qZA(),e._uU(14,"\n "),e.TgZ(15,"button",6),e.NdJ("click",function(){return n.triggerConfiguration()}),e.ALo(16,"translate"),e.qZA(),e._uU(17,"\n "),e.TgZ(18,"button",7),e.NdJ("click",function(){return n.putConfiguration()}),e.ALo(19,"translate"),e.qZA(),e._uU(20,"\n "),e.qZA(),e._uU(21,"\n "),e.qZA(),e._uU(22,"\n "),e.TgZ(23,"div",8),e._uU(24,"\n "),e._UZ(25,"p",9),e.ALo(26,"translate"),e._uU(27,"\n "),e.TgZ(28,"div",10),e._uU(29,"\n "),e.TgZ(30,"div",11),e._uU(31,"\n "),e.TgZ(32,"div",12),e._uU(33,"\n "),e.TgZ(34,"ng-select",13),e.NdJ("change",function(r){return n.getConfiguration(r)})("clear",function(){return n.deviceSelected=null,n.permitToValidate=!1}),e.ALo(35,"async"),e.ALo(36,"translate"),e._uU(37,"\n "),e.YNc(38,Qt,10,2,"ng-template",14),e._uU(39,"\n "),e.qZA(),e._uU(40,"\n "),e.qZA(),e._uU(41,"\n "),e.qZA(),e._uU(42,"\n "),e.YNc(43,zt,4,1,"ng-container",15),e.ALo(44,"async"),e._uU(45,"\n "),e.qZA(),e._uU(46,"\n "),e.qZA(),e._uU(47,"\n "),e.qZA(),e._uU(48,"\n"),e.qZA(),e._uU(49,"\n")),2&t&&(e.xp6(7),e.Oqu(e.lcZ(8,14,"tools.reporting.configure.title")),e.xp6(5),e.s9C("translate",e.lcZ(13,16,"tools.reporting.configure.reset.button")),e.Q6J("disabled",!n.deviceSelected),e.xp6(3),e.s9C("translate",e.lcZ(16,18,"tools.reporting.configure.trigger.button")),e.Q6J("disabled",!n.deviceSelected),e.xp6(3),e.s9C("translate",e.lcZ(19,20,"tools.reporting.configure.validate.button")),e.Q6J("disabled",!n.permitToValidate),e.xp6(7),e.Q6J("innerHTML",e.lcZ(26,22,"tools.reporting.configure.subtitle"),e.oJD),e.xp6(9),e.s9C("placeholder",e.lcZ(36,26,"tools.reporting.configure.device")),e.Q6J("items",e.lcZ(35,24,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.xp6(9),e.Q6J("ngIf",e.lcZ(44,28,n.deviceSelected&&n.clusters$)))},dependencies:[m.O5,q.w9,q.ir,C.Pi,Gt,m.Ov,C.X$]}),o})();new b.Yd("ReportingComponent");let Xt=(()=>{class o{constructor(){}ngOnInit(){}}return o.\u0275fac=function(t){return new(t||o)},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-reporting"]],decls:5,vars:0,consts:[[1,"row","row-cols-1","g-4"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e._UZ(2,"app-configure-reporting"),e._uU(3,"\n"),e.qZA(),e._uU(4,"\n"))},dependencies:[Wt]}),o})();var $t=h(4128);function en(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"button",15),e.NdJ("click",function(){const r=e.CHM(t).ngIf,l=e.oxw();return e.KtG(l.download(r))}),e.qZA()}}function tn(o,s){if(1&o){const t=e.EpF();e.TgZ(0,"div",16),e._uU(1,"\n "),e.TgZ(2,"button",17),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return e.KtG(i.export(i.json))}),e.qZA(),e._uU(3,"\n\n "),e._UZ(4,"ngx-json-viewer",18),e._uU(5,"\n"),e.qZA()}if(2&o){const t=e.oxw();e.Q6J("hidden",t.isLoading),e.xp6(4),e.Q6J("expanded",!1)("json",t.json)}}new b.Yd("ToolsComponent");let nn=(()=>{class o{constructor(t,n){this.apiService=t,this.fileSaverService=n,this.json=null,this.isLoading=!1}ngOnInit(){this.logFile$=this.apiService.getLog()}onClick(t){let n;this.json=null,"devices"===t&&(n=this.apiService.getDevices()),"zdevices"===t&&(n=this.apiService.getZDevices()),"zgroups"===t&&(n=this.apiService.getZGroups()),"zdevice-raw"===t&&(n=this.apiService.getRawZDevices()),"infos"===t&&(n=this.apiService.getPlugin()),"coordinator"===t&&(n=this.apiService.getCoordinator()),"plugin-health"===t&&(n=this.apiService.getPluginhealth()),"zgroup-list-available-device"===t&&(n=this.apiService.getZGroupDevicesAvalaible()),"settings"===t&&(n=this.apiService.getSettings()),"plugin-stat"===t&&(n=this.apiService.getPluginStats()),"zdevice-name"===t&&(n=this.apiService.getZDeviceName()),"domoticz-env"===t&&(n=this.apiService.getDomoticzEnv()),"battery-state"===t&&(n=this.apiService.getBatteryState()),n&&n.pipe((0,le.x)(()=>{this.isLoading=!1})).subscribe(i=>{this.callbackservice(i)})}getAllNonOptimizedDevice(){this.json=null,this.apiService.getZDeviceName().subscribe(t=>{const n=t.filter(i=>!i.CertifiedDevice).map(i=>this.getNonOptimizedDevice(i._NwkId));(0,$t.D)(n).subscribe(i=>this.callbackservice(i))})}getNonOptimizedDevice(t){return this.apiService.getNonOptimizedDevice(t)}download(t){const n=t.Filename;this.fileSaverService.genType(n),this.apiService.downloadLog(t.URL).subscribe(r=>{this.fileSaverService.save(r.body,n)})}callbackservice(t){const n=JSON.stringify(t);this.json=JSON.parse(n,ae)}export(t){const n="export.json",i=this.fileSaverService.genType(n),r=new Blob([JSON.stringify(t)],{type:i});this.fileSaverService.save(r,n)}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(U.s),e.Y36(oe))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-tools"]],decls:32,vars:4,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.tools.zdevice-raw.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.non-optimized.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-stat.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.coordinator.infos.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","col-lg-2 col-md-4 col-sm-5 btn btn-primary","translate","tools.tools.log.button",3,"click",4,"ngIf"],["translate","tools.tools.infos.plugin.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-health.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.settings.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.domoticz-env.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.battery-state.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zdevice-name.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup-list-available-device.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],["translate","tools.tools.log.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"button",1),e.NdJ("click",function(){return n.onClick("zdevice-raw")}),e.qZA(),e._uU(3,"\n "),e.TgZ(4,"button",2),e.NdJ("click",function(){return n.getAllNonOptimizedDevice()}),e.qZA(),e._uU(5,"\n "),e.TgZ(6,"button",3),e.NdJ("click",function(){return n.onClick("zgroups")}),e.qZA(),e._uU(7,"\n "),e.TgZ(8,"button",4),e.NdJ("click",function(){return n.onClick("plugin-stat")}),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"button",5),e.NdJ("click",function(){return n.onClick("coordinator")}),e.qZA(),e._uU(11,"\n "),e.YNc(12,en,1,0,"button",6),e.ALo(13,"async"),e._uU(14,"\n "),e.TgZ(15,"button",7),e.NdJ("click",function(){return n.onClick("infos")}),e.qZA(),e._uU(16,"\n "),e.TgZ(17,"button",8),e.NdJ("click",function(){return n.onClick("plugin-health")}),e.qZA(),e._uU(18,"\n "),e.TgZ(19,"button",9),e.NdJ("click",function(){return n.onClick("settings")}),e.qZA(),e._uU(20,"\n "),e.TgZ(21,"button",10),e.NdJ("click",function(){return n.onClick("domoticz-env")}),e.qZA(),e._uU(22,"\n "),e.TgZ(23,"button",11),e.NdJ("click",function(){return n.onClick("battery-state")}),e.qZA(),e._uU(24,"\n "),e.TgZ(25,"button",12),e.NdJ("click",function(){return n.onClick("zdevice-name")}),e.qZA(),e._uU(26,"\n "),e.TgZ(27,"button",13),e.NdJ("click",function(){return n.onClick("zgroup-list-available-device")}),e.qZA(),e._uU(28,"\n"),e.qZA(),e._uU(29,"\n"),e.YNc(30,tn,6,3,"div",14),e._uU(31,"\n")),2&t&&(e.xp6(12),e.Q6J("ngIf",e.lcZ(13,2,n.logFile$)),e.xp6(18),e.Q6J("ngIf",n.json))},dependencies:[m.O5,C.Pi,ie,m.Ov]}),o})();const on=[{path:"command",component:ut,data:{title:(0,b.Kl)("command")}},{path:"debug",component:Mt,data:{title:(0,b.Kl)("debug")}},{path:"binding",component:Ge,data:{title:(0,b.Kl)("binding")}},{path:"link",component:nn,data:{title:(0,b.Kl)("tools")}},{path:"error",component:It,data:{title:(0,b.Kl)("error")}},{path:"configure",component:Xt,data:{title:(0,b.Kl)("configure")}}];let rn=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[re.Bz.forChild(on),re.Bz]}),o})(),sn=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[R.m,rn,Ye,Ee,Ie]}),o})()},94327:function(Q,V){var e;void 0!==(e=function(){"use strict";function S(d,g,Z){var _=new XMLHttpRequest;_.open("GET",d),_.responseType="blob",_.onload=function(){O(_.response,g,Z)},_.onerror=function(){console.error("could not download file")},_.send()}function Y(d){var g=new XMLHttpRequest;g.open("HEAD",d,!1);try{g.send()}catch{}return 200<=g.status&&299>=g.status}function E(d){try{d.dispatchEvent(new MouseEvent("click"))}catch{var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),d.dispatchEvent(g)}}var T="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,F=T.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),O=T.saveAs||("object"!=typeof window||window!==T?function(){}:"download"in HTMLAnchorElement.prototype&&!F?function(d,g,Z){var _=T.URL||T.webkitURL,w=document.createElement("a");w.download=g=g||d.name||"download",w.rel="noopener","string"==typeof d?(w.href=d,w.origin===location.origin?E(w):Y(w.href)?S(d,g,Z):E(w,w.target="_blank")):(w.href=_.createObjectURL(d),setTimeout(function(){_.revokeObjectURL(w.href)},4e4),setTimeout(function(){E(w)},0))}:"msSaveOrOpenBlob"in navigator?function(d,g,Z){if(g=g||d.name||"download","string"!=typeof d)navigator.msSaveOrOpenBlob(function m(d,g){return typeof g>"u"?g={autoBom:!1}:"object"!=typeof g&&(console.warn("Deprecated: Expected third argument to be a object"),g={autoBom:!g}),g.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(d.type)?new Blob(["\ufeff",d],{type:d.type}):d}(d,Z),g);else if(Y(d))S(d,g,Z);else{var _=document.createElement("a");_.href=d,_.target="_blank",setTimeout(function(){E(_)})}}:function(d,g,Z,_){if((_=_||open("","_blank"))&&(_.document.title=_.document.body.innerText="downloading..."),"string"==typeof d)return S(d,g,Z);var w="application/octet-stream"===d.type,z=/constructor/i.test(T.HTMLElement)||T.safari,K=/CriOS\/[\d]+/.test(navigator.userAgent);if((K||w&&z||F)&&typeof FileReader<"u"){var D=new FileReader;D.onloadend=function(){var M=D.result;M=K?M:M.replace(/^data:[^;]*;/,"data:attachment/file;"),_?_.location.href=M:location=M,_=null},D.readAsDataURL(d)}else{var j=T.URL||T.webkitURL,J=j.createObjectURL(d);_?_.location=J:location.href=J,_=null,setTimeout(function(){j.revokeObjectURL(J)},4e4)}});T.saveAs=O.saveAs=O,Q.exports=O}.apply(V,[]))&&(Q.exports=e)}}]); \ No newline at end of file diff --git a/www/z4d/977.1a68b94d282d26ca.js b/www/z4d/977.1a68b94d282d26ca.js deleted file mode 100644 index 92156d5d0..000000000 --- a/www/z4d/977.1a68b94d282d26ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[977],{74977:($,m,r)=>{r.r(m),r.d(m,{DeviceModule:()=>Q});var l=r(24006),U=r(44466),d=r(96749),u=r(88648),e=r(94650),g=r(5830),_=r(54463),v=r(75958),b=r(97185),C=r(64425),Z=r(36895),p=r(55017),T=r(10805),f=r(51740),x=r(35593);let y=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",2,"width","1.3rem"]],template:function(t,i){1&t&&(e.O4$(),e.TgZ(0,"svg",0),e._uU(1,"\n "),e._UZ(2,"use"),e._uU(3,"\n"),e.qZA(),e._uU(4,"\n")),2&t&&(e.xp6(2),e.uIk("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2}),n})();function A(n,c){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",14),e._uU(2,"\n "),e.TgZ(3,"span",15),e._uU(4,"\n "),e._UZ(5,"i",16),e._uU(6,"\n "),e.TgZ(7,"input",17),e.NdJ("input",function(o){e.CHM(t),e.oxw();const a=e.MAs(18);return e.KtG(a.filterGlobal(o.target.value,"contains"))}),e.ALo(8,"translate"),e.qZA(),e._uU(9,"\n "),e.qZA(),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n ")}2&n&&(e.xp6(7),e.s9C("placeholder",e.lcZ(8,1,"device.byname.placeholder")))}function N(n,c){1&n&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"th",18),e._uU(4),e.ALo(5,"translate"),e.qZA(),e._uU(6,"\n "),e.TgZ(7,"th",18),e._uU(8),e.ALo(9,"translate"),e.qZA(),e._uU(10,"\n "),e.TgZ(11,"th",19),e._uU(12),e.ALo(13,"translate"),e._UZ(14,"p-sortIcon",20),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n "),e.TgZ(17,"th",21),e._uU(18),e.ALo(19,"translate"),e._UZ(20,"p-sortIcon",22),e._uU(21,"\n "),e.qZA(),e._uU(22,"\n "),e.TgZ(23,"th",23),e._uU(24),e.ALo(25,"translate"),e._UZ(26,"p-sortIcon",24),e._uU(27,"\n "),e.qZA(),e._uU(28,"\n "),e.TgZ(29,"th",25),e._uU(30),e.ALo(31,"translate"),e._UZ(32,"p-sortIcon",26),e._uU(33,"\n "),e.qZA(),e._uU(34,"\n "),e.TgZ(35,"th",27),e._uU(36),e.ALo(37,"translate"),e._UZ(38,"p-sortIcon",28),e._uU(39,"\n "),e.qZA(),e._uU(40,"\n "),e.TgZ(41,"th",29),e._uU(42),e.ALo(43,"translate"),e._UZ(44,"p-sortIcon",30),e._uU(45,"\n "),e.qZA(),e._uU(46,"\n "),e.TgZ(47,"th",31),e._uU(48),e.ALo(49,"translate"),e._UZ(50,"p-sortIcon",32),e._uU(51,"\n "),e.qZA(),e._uU(52,"\n "),e.TgZ(53,"th",33),e._uU(54),e.ALo(55,"translate"),e._UZ(56,"p-sortIcon",34),e._uU(57,"\n "),e.qZA(),e._uU(58,"\n "),e.TgZ(59,"th",35),e._uU(60),e.ALo(61,"translate"),e._UZ(62,"p-sortIcon",36),e._uU(63,"\n "),e.qZA(),e._uU(64,"\n "),e.TgZ(65,"th",37),e._uU(66),e.ALo(67,"translate"),e.qZA(),e._uU(68,"\n "),e.qZA(),e._uU(69,"\n ")),2&n&&(e.xp6(4),e.hij("\n ",e.lcZ(5,12,"device.byname.trash.column"),"\n "),e.xp6(4),e.hij("\n ",e.lcZ(9,14,"device.byname.optimized.column"),"\n "),e.xp6(4),e.hij("\n ",e.lcZ(13,16,"device.byname.shortid.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(19,18,"device.byname.ieee.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(25,20,"device.byname.model.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(31,22,"device.byname.widget.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(37,24,"device.byname.devicename.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(43,26,"device.byname.capabilities.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(49,28,"device.byname.lqi.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(55,30,"device.byname.status.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(61,32,"device.byname.health.column"),""),e.xp6(6),e.hij("\n ",e.lcZ(67,34,"device.byname.devicename.param"),"\n "))}function w(n,c){if(1&n&&e._UZ(0,"button",46),2&n){const t=e.oxw(),o=t.expanded;e.Q6J("pRowToggler",t.$implicit)("icon",o?"pi pi-chevron-down":"pi pi-chevron-right")}}function D(n,c){if(1&n){const t=e.EpF();e.TgZ(0,"i",47),e.NdJ("click",function(){e.CHM(t);const o=e.oxw().$implicit,a=e.oxw(),s=e.MAs(34);return a.rowToDelete=o,e.KtG(a.open(s))}),e.ALo(1,"translate"),e.qZA()}2&n&&e.s9C("title",e.lcZ(1,1,"device.byname.delete.colum"))}function q(n,c){if(1&n){const t=e.EpF();e.ynx(0),e._uU(1,"\n "),e.TgZ(2,"div",48),e.NdJ("click",function(){e.CHM(t);const o=e.oxw().$implicit,a=e.oxw();return e.KtG(a.copy(o))}),e.ALo(3,"translate"),e.ALo(4,"translate"),e._uU(5,"\n "),e.TgZ(6,"div",49),e._uU(7,"\n "),e.TgZ(8,"shared-custom-icon",50),e._uU(9,"\n "),e.qZA(),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n "),e.qZA(),e._uU(12,"\n "),e.BQk()}2&n&&(e.xp6(2),e.s9C("ngbPopover",e.lcZ(3,2,"device.byname.optimized.popover.text.ok")),e.s9C("popoverTitle",e.lcZ(4,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.EpF();e.ynx(0),e._uU(1,"\n "),e.TgZ(2,"div",48),e.NdJ("click",function(){e.CHM(t);const o=e.oxw().$implicit,a=e.oxw();return e.KtG(a.copy(o))}),e.ALo(3,"translate"),e.ALo(4,"translate"),e._uU(5,"\n "),e.TgZ(6,"div",49),e._uU(7,"\n "),e.TgZ(8,"shared-custom-icon",51),e._uU(9,"\n "),e.qZA(),e._uU(10,"\n "),e.qZA(),e._uU(11,"\n "),e.qZA(),e._uU(12,"\n "),e.BQk()}2&n&&(e.xp6(2),e.s9C("ngbPopover",e.lcZ(3,2,"device.byname.optimized.popover.text.ko")),e.s9C("popoverTitle",e.lcZ(4,4,"device.byname.optimized.popover.title.ko")))}function B(n,c){if(1&n&&(e.TgZ(0,"div"),e._uU(1),e.qZA()),2&n){const t=c.$implicit;e.xp6(1),e.hij("\n ",t,"\n ")}}function k(n,c){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",52),e.NdJ("ngModelChange",function(o){e.CHM(t);const a=e.oxw().$implicit;return e.KtG(a.ZDeviceName=o)})("input",function(){e.CHM(t);const o=e.oxw(2);return e.KtG(o.hasEditing=!0)}),e.qZA(),e._uU(2,"\n ")}if(2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngModel",t.ZDeviceName)}}function J(n,c){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"input",52),e.NdJ("ngModelChange",function(o){e.CHM(t);const a=e.oxw().$implicit;return e.KtG(a.ZDeviceName=o)})("input",function(){e.CHM(t);const o=e.oxw(2);return e.KtG(o.hasEditing=!0)}),e.qZA(),e._uU(2,"\n ")}if(2&n){const t=e.oxw().$implicit;e.xp6(1),e.Q6J("ngModel",t.ZDeviceName)}}function L(n,c){if(1&n&&(e.TgZ(0,"div"),e._uU(1),e.qZA()),2&n){const t=c.$implicit;e.xp6(1),e.hij("\n ",t,"\n ")}}function I(n,c){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"td"),e._uU(4,"\n "),e.YNc(5,w,1,2,"button",38),e._uU(6,"\n "),e.YNc(7,D,2,3,"i",39),e._uU(8,"\n "),e.qZA(),e._uU(9,"\n "),e.TgZ(10,"td"),e._uU(11,"\n "),e.YNc(12,q,13,6,"ng-container",40),e._uU(13,"\n "),e.YNc(14,M,13,6,"ng-container",40),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n "),e.TgZ(17,"td"),e._uU(18),e.qZA(),e._uU(19,"\n "),e.TgZ(20,"td"),e._uU(21),e.qZA(),e._uU(22,"\n "),e.TgZ(23,"td"),e._uU(24),e.qZA(),e._uU(25,"\n "),e.TgZ(26,"td"),e._uU(27,"\n "),e.YNc(28,B,2,1,"div",41),e._uU(29,"\n "),e.qZA(),e._uU(30,"\n "),e.TgZ(31,"td",42),e._uU(32,"\n "),e.TgZ(33,"p-cellEditor"),e._uU(34,"\n "),e.YNc(35,k,3,1,"ng-template",43),e._uU(36,"\n "),e.YNc(37,J,3,1,"ng-template",44),e._uU(38,"\n "),e.qZA(),e._uU(39,"\n "),e.qZA(),e._uU(40,"\n "),e.TgZ(41,"td"),e._uU(42,"\n "),e.YNc(43,L,2,1,"div",41),e._uU(44,"\n "),e.qZA(),e._uU(45,"\n "),e.TgZ(46,"td"),e._uU(47),e.qZA(),e._uU(48,"\n "),e.TgZ(49,"td"),e._uU(50),e.qZA(),e._uU(51,"\n "),e.TgZ(52,"td"),e._uU(53),e.qZA(),e._uU(54,"\n "),e.TgZ(55,"td"),e._uU(56,"\n "),e.TgZ(57,"i",45),e.NdJ("click",function(){const a=e.CHM(t).$implicit,s=e.oxw(),K=e.MAs(37);return s.rowParameter=a,e.KtG(s.editParameter(K))}),e.qZA(),e._uU(58,"\n "),e.qZA(),e._uU(59,"\n "),e.qZA(),e._uU(60,"\n ")}if(2&n){const t=c.$implicit;e.xp6(5),e.Q6J("ngIf","{}"!==t.Param),e.xp6(2),e.Q6J("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.xp6(5),e.Q6J("ngIf",t.CertifiedDevice),e.xp6(2),e.Q6J("ngIf",!t.CertifiedDevice),e.xp6(4),e.Oqu(t._NwkId),e.xp6(3),e.Oqu(t.IEEE),e.xp6(3),e.Oqu(t.Model),e.xp6(4),e.Q6J("ngForOf",t.WidgetList),e.xp6(3),e.Q6J("pEditableColumn",t.ZDeviceName),e.xp6(12),e.Q6J("ngForOf",t.MacCapa),e.xp6(4),e.Oqu(t.LQI),e.xp6(3),e.Oqu(t.Status),e.xp6(3),e.Oqu(t.Health)}}function E(n,c){if(1&n&&(e._uU(0,"\n "),e.TgZ(1,"tr"),e._uU(2,"\n "),e.TgZ(3,"td",53),e._uU(4,"\n "),e.TgZ(5,"div",54),e._uU(6,"\n "),e.TgZ(7,"div"),e._uU(8,"\n "),e.TgZ(9,"strong"),e._uU(10),e.ALo(11,"translate"),e.qZA(),e._uU(12),e.qZA(),e._uU(13,"\n "),e.qZA(),e._uU(14,"\n "),e.qZA(),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n ")),2&n){const t=c.$implicit;e.xp6(10),e.hij("",e.lcZ(11,2,"device.byname.devicename.param")," : "),e.xp6(2),e.hij(" ",t.Param,"\n ")}}function O(n,c){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",55),e._uU(2,"\n "),e._UZ(3,"h4",56),e._uU(4,"\n "),e.TgZ(5,"button",57),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("Cross click"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e._UZ(8,"div",58),e._uU(9,"\n "),e.TgZ(10,"div",59),e._uU(11,"\n "),e.TgZ(12,"button",60),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("erase"))}),e.qZA(),e._uU(13,"\n "),e.TgZ(14,"button",61),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("cancel"))}),e.qZA(),e._uU(15,"\n "),e.qZA(),e._uU(16,"\n")}}function F(n,c){if(1&n){const t=e.EpF();e._uU(0,"\n "),e.TgZ(1,"div",55),e._uU(2,"\n "),e._UZ(3,"h4",62),e._uU(4,"\n "),e.TgZ(5,"button",57),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("cancel"))}),e.qZA(),e._uU(6,"\n "),e.qZA(),e._uU(7,"\n "),e.TgZ(8,"div",63),e._uU(9,"\n "),e._UZ(10,"div",64),e.ALo(11,"translate"),e._uU(12,"\n "),e.TgZ(13,"div",65),e._uU(14,"\n "),e.TgZ(15,"input",66),e.NdJ("click",function(){e.CHM(t);const o=e.oxw();return e.KtG(o.onChangeEnabled())}),e.qZA(),e._uU(16,"\n "),e._UZ(17,"label",67),e._uU(18,"\n "),e.qZA(),e._uU(19,"\n "),e.TgZ(20,"div",68),e._uU(21),e.ALo(22,"translate"),e.qZA(),e._uU(23,"\n "),e.TgZ(24,"textarea",69),e.NdJ("ngModelChange",function(o){e.CHM(t);const a=e.oxw();return e.KtG(a.parameter=o)}),e.qZA(),e._uU(25,"\n "),e.qZA(),e._uU(26,"\n "),e.TgZ(27,"div",59),e._uU(28,"\n "),e.TgZ(29,"button",70),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.dismiss("cancel"))}),e.qZA(),e._uU(30,"\n "),e.TgZ(31,"button",71),e.NdJ("click",function(){const a=e.CHM(t).$implicit;return e.KtG(a.close("save"))}),e.qZA(),e._uU(32,"\n "),e.qZA(),e._uU(33,"\n")}if(2&n){const t=e.oxw();e.xp6(10),e.Q6J("innerHTML",e.lcZ(11,4,"device.byname.parameter.alert.subject"),e.oJD),e.xp6(5),e.Q6J("checked",t.enabled),e.xp6(6),e.hij("",e.lcZ(22,6,"device.byname.devicename.param")," :"),e.xp6(3),e.Q6J("ngModel",t.parameter)}}const H=function(){return["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"]},P=function(){return[10,25,50]},h=new u.Yd("DeviceByNameComponent");let Y=(()=>{class n{constructor(t,i,o,a,s){this.apiService=t,this.translate=i,this.modalService=o,this.toastr=a,this.clipboard=s,this.rows=[],this.temp=[],this.hasEditing=!1,this.expanded={},this.enabled=!1,this.prefixEnabled="Disabled",this.enabledTrue="'Disabled': 0",this.enabledFalse="'Disabled': 1"}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}ngOnInit(){}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(i=>{this.delete()},i=>{})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(i=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,i,o){this.updateValueJson(t.target.value,i,o)}updateValueJson(t,i,o){this.hasEditing=!0;const a=this.rows.find(s=>s._NwkId===o);a?a[i]=t:h.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{h.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(i=>this.clipboard.copy(JSON.stringify(i)))}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(g.s),e.Y36(_.sK),e.Y36(v.FF),e.Y36(b._W),e.Y36(C.TU))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.TTD],decls:39,vars:26,consts:[[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"disabled","translate","click"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["dt1",""],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],["content",""],["editContent",""],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"placeholder","input"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],[1,"fas","fa-cog",2,"cursor","pointer",3,"click"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"title","click"],["triggers","mouseenter:mouseleave",3,"ngbPopover","popoverTitle","click"],[1,"container"],["iconName","CHECK_ICON",1,"container__icon","container__icon--green"],["iconName","X_ICON",1,"container__icon","container__icon--orange"],["pInputText","","type","text",3,"ngModel","ngModelChange","input"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"checked","click"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModel","ngModelChange"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(t,i){1&t&&(e.TgZ(0,"div",0),e._uU(1,"\n "),e.TgZ(2,"div",1),e._uU(3),e.ALo(4,"translate"),e.TgZ(5,"button",2),e.NdJ("click",function(){return i.updateDevices()}),e.ALo(6,"translate"),e.qZA(),e._uU(7,"\n "),e.qZA(),e._uU(8,"\n "),e.TgZ(9,"div",3),e._uU(10,"\n "),e._UZ(11,"p",4),e.ALo(12,"translate"),e.ALo(13,"translate"),e._uU(14,"\n "),e.TgZ(15,"div",5),e._uU(16,"\n "),e.TgZ(17,"p-table",6,7),e.ALo(19,"translate"),e._uU(20,"\n "),e.YNc(21,A,12,3,"ng-template",8),e._uU(22,"\n "),e.YNc(23,N,70,36,"ng-template",9),e._uU(24,"\n "),e.YNc(25,I,61,13,"ng-template",10),e._uU(26,"\n "),e.YNc(27,E,17,4,"ng-template",11),e._uU(28,"\n "),e.qZA(),e._uU(29,"\n "),e.qZA(),e._uU(30,"\n "),e.qZA(),e._uU(31,"\n"),e.qZA(),e._uU(32,"\n\n"),e.YNc(33,O,17,0,"ng-template",null,12,e.W1O),e._uU(35,"\n\n"),e.YNc(36,F,34,8,"ng-template",null,13,e.W1O),e._uU(38,"\n")),2&t&&(e.xp6(3),e.hij("\n ",e.lcZ(4,14,"device.byname.header"),"\n "),e.xp6(2),e.s9C("translate",e.lcZ(6,16,"device.byname.validate.button")),e.Q6J("disabled",!i.hasEditing),e.xp6(6),e.Q6J("innerHTML",e.lcZ(12,18,"group.create.subtitle"),e.oJD)("innerHTML",e.lcZ(13,20,"device.byname.subtitle"),e.oJD),e.xp6(6),e.s9C("currentPageReportTemplate",e.lcZ(19,22,"TOTAL")),e.Q6J("globalFilterFields",e.DdM(24,H))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.DdM(25,P))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Z.sg,Z.O5,l.Fj,l.JJ,l.On,v.o8,_.Pi,p.iA,T.jx,p.lQ,p.jB,p.Wq,p.YL,p.fz,f.o,x.Hq,y,_.X$],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]}),n})();new u.Yd("DeviceComponent");const j=[{path:"",component:(()=>{class n{constructor(t,i,o){this.apiService=t,this.formBuilder=i,this.translate=o}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(g.s),e.Y36(l.qu),e.Y36(_.sK))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(t,i){1&t&&(e.TgZ(0,"form",0),e._uU(1,"\n "),e._UZ(2,"app-device-by-name",1),e._uU(3,"\n"),e.qZA(),e._uU(4,"\n")),2&t&&(e.Q6J("formGroup",i.form),e.xp6(2),e.Q6J("devices",i.devices))},dependencies:[l._Y,l.JL,l.sg,Y]}),n})(),data:{title:(0,u.Kl)("device")}}];let S=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[d.Bz.forChild(j),d.Bz]}),n})(),Q=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[S,U.m,l.u5]}),n})()}}]); \ No newline at end of file diff --git a/www/z4d/Inter-italic.var.958a0b9742fb3ae8.woff2 b/www/z4d/Inter-italic.var.958a0b9742fb3ae8.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b826d5af84b3bd70535b6bb993f443a2deb46894 GIT binary patch literal 245036 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�LzqE;f#83j;-svHFcR`yUq8K)}}#m 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 C+W+PN literal 0 HcmV?d00001 diff --git a/www/z4d/Inter-roman.var.b2129c009ce46d43.woff2 b/www/z4d/Inter-roman.var.b2129c009ce46d43.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6a256a068f0dce7b44f8314bdc735ef91b35e2e3 GIT binary patch literal 227180 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�J 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 K7k)TQ7ZNwY$>$p8>$+b#Ls}JMO*p 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ξdp=_&Sem5IMBHI$4H;kf+(UcU2E&eFpcTij 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

Xp4h_5S?Fbg;aRP!-dMrJvY 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 KGoB*kPyYqO0GIUu diff --git a/www/z4d/fa-brands-400.e465758e13df1d72.woff2 b/www/z4d/fa-brands-400.e465758e13df1d72.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..36fbda7d334c3ecea7fc1c378c84bd9b3e4d9be4 GIT binary patch literal 117372 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


Fu2c+838Y&)^E+3-Bm4W3Quvmd7ZA;T~L2aTdA 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 JEQs3W`hO%59=-qo literal 0 HcmV?d00001 diff --git a/www/z4d/fa-regular-400.f386b6b7c6bf65a5.woff2 b/www/z4d/fa-regular-400.f386b6b7c6bf65a5.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b6cabbacb67f4ac88248ef235c5d7a5361f7003b GIT binary patch literal 25452 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 literal 0 HcmV?d00001 diff --git a/www/z4d/fa-regular-400.f7cc78e99baa2bf5.ttf b/www/z4d/fa-regular-400.f7cc78e99baa2bf5.ttf deleted file mode 100644 index 9ef8a3728c536ec66b2bc25779b258ab4d311061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62320 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 SE2Uy7XPEOrIR~P4IQ}1QUllL_ diff --git a/www/z4d/fa-solid-900.081655f2111aa667.ttf b/www/z4d/fa-solid-900.081655f2111aa667.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ec24749db906da77229dcecd61d37b6489d02140 GIT binary patch literal 419720 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
  • cz79Gn ztD|q=48&3mbtFhfg1)VyZ#`sHAb)L`=)saI+VTb=Nq;YKOWJjpP>J2OE>aMY(G}f7 zaVm8ej!~nK9lJ&2wuVp$OLxnb#w{uyZ#I3tkM;WQBAG;NZ2n~XNMNwHH)Tb{zBA4^ zLv(+l8R7Smy&WCNr2lnIk*KjJ*!M@0T|Uv#+_XL1*2$l#ZNnrZhCCh6d9ZDm?1wb2 z*aby$n3lxYtT+ZcBz-*@%tky2sSu+m+8nc+66@=fj3Gb^C(>!yIh+csv{twh4G-C0 z)(sQ;rMf*sYz@QC3<0d@<+Cs#9_j-`9l(vVY~4NFL%^)393TMWm*cJp&eNR%jMVOk zUnZrmar3H35U!ClTvh4sM_t=lQVVvbRdTN|5bqTjGCB;}f?3u#qWx9YBK+tY$Gk6UkR3uv^AoPIz*b75D zRpAKihd$8qbZT1h5Mg(1_0JHPYMN7hd5E-lGkGjrL=C+ni58PLIyy2WkVPTh#O#s2 zUi1tNDK_4(5&%koKcO{4cx5}h#2*g}LA}2rmSj!t#Tl;}G1{6(Qq|D9rV${XMDu<` zFH<-X2^*rS6jiHn_r-k(m1-b zp}Vze|4g{GeuAkfA&fOWq>gtLy=UWB6Wn?IAa7Kl_UvX6yxSESiSUWX(&3p*X~ z91)k>>7ZxOXtC2V(9qx6={U82VPUC~K4&FYE-dEKqv;Dvx!h@r(pME0^3zw(<QQ=e zh98=%RElMUNtwajtp2dUslwv5xl%cg7mbaL48m)0Y)5@V5`wz35wi^(#&t{iAiQ>__d|w{OShCmO%wcu(Fl zi;<=g>&N@Ixa2_|b;9*ZhC}9bNNrlfuKm-N$ zxrhjCl`#>A4ALzc1or)llxP%9qFJ_6cok%UZ#8%NQwuv6mEBZvg*e-U6 zonk;_#Gu#(f2d)xTa1W3Vy_q#V`85;L+lr4iUZ;-aZsF%trq9NN8>zkzPLbKC=Q8> z#KqzgajCdWTrM6Xu7HC1vEoW`mAD#y9M_7+i6i1ValN=f+$e5BkeVmJH6|-2#gv#9 zIWZ$<;p>qXH;Z|(AQr_ET=k3M7EuyqQ4!1Hs8|ul#Bp&e{6U_C*k`wkCxf0oMLbp9 zA?_6aAf6_kE}kL&Q9M)plX#YRws?+st~eo{C!Q}}AYLe5Bwj3DB3>%)5-$@k7q1Yn zM9i*N!|d=HoRRrD@p|zF@ka3`@n&(ic#C+ec$;{;c!zi=_AI?i{Ihtsc#rrO@m}#h z@qY0Eaj*EG_>lOp_z1j{*Tu)g$HgbaC&j;tPl->9&xp^8&xy~AFNiOSFNrUU`@~no z{o>!mSH;)Fzl*PnZ-{S-Z;5YjI_~ZY&E)#ZAOpL zYxEiY#&%ea0Eae&bBzfN_>_&^X%|H_kE6 zHO@26H!d(PG!7XT85bLu7?&EC8J8Q6F|IHU8;>=vG_EqPHm)(QH6CXiF|ISNH*PR) zG;T5;Z#==6FtWy^F=b2}Ib+6{HRg=GakDXREEtQ%l2I^<#w|w4C>s@H**I#f7{`p` z#;wK^jVBqm8MhlxHdc+N7*93sFzz(|!FZbSbmJMuKN`<8{>gZj@oeKc#&eAm#`BEl z8!s?kh-e`%HeO=9)VRxdnelSt6~-%#R~fH1){NH}uQgt0yxw?&@kZlK#+!}1jkg$Y zHQr{t-FS!bPU9ZqUB*8f?>63J{EP8k<9){ajSm?28Xq)1WPI58i1ATl-T0XCapM!l zCyjqKK4pB`_>A#c<8#L6jV~BqG`?hf*|^X6igCa3Z^l=RuNnVteBJnl@lE4f#A*KaC$5KQ{i$c)<9H@l)ex#?Osk82@ej()g9}YvX^6-x$9& zerNpN_=E9B<4?w)jlURwHU4I78V{NtQ<#Wegg`dRgfYYPnK)y@44NUFD-kiHX3UJ6 z4G4OkG*f1y*+LFc-}wvtSm@Tg;MKHY?_`dDL7nkD15KTg@k$Pcm;aZ#SQ8u9{CV zpK9J=-f8}W`84zC<}=KHG@ohylld(3+2(W1=b9(X=b6tpUtqq_e3AKL^Cjj>&AZH( znJ+hAVZPFQmHBFO&3ujdTJv@0>&-WqZ#3UzzS+Fne2e*3^KIta&3BmZH19FrW&X4I zZu33nznJee-)Fwx{D66{`9bqT=7-IXm>)IQ&5xNMH$P#1()?HRQ|715&zPSzKWBd4 z{DS#K^GoKJ&HK!+nD?9iW`5QDn)&bM*UfL3-!#8ve%t(x`CapS=6{$Q=J(AXm_IcC z)BKV7WAnev2h5+CKQ(`5{@nb9`QPR*&0m?nHvh-`jrm*icjoWSKbU_s|78Bz{EPWl z^Ka&+`JnVjAq~Vag6c(D(kp$^k6p$=8IoZckx?0wafB&L$fQikM%g5rWs7W;ZL(c< z$WFOMre&AhD!b)2*&};ppX`_0YEiAK zO|`2I)v30qwCYk@RkzxvdQ`9KQ~heY+M#x;0hLjMYL^;P!)mu0QG3*0HLAwcK6QrL zug+8l)LH7FI$MpabJV%&JaxXhKwYQ~sf*Ob>JoLSx=dZJ9;2>Mht*@%mFg;WwYo-K zs~)G0sO!}A>IQYAx=B4=JwZ*VteR9)YFg#gjG9$*Dz9!<^J+mYswGuWMRkiRsj{l5 zWpz}osAKB5x>Y?Z;g?goWm3p;WQ?F64Rj*U8S8q^nRBuvmR(Gqn zsJE)Oskf_lsCTM+)VtI_t9PsSsDDxKRqs>pS07OKst>9UsSm4eK2o>a*%|>htOg>Wk`2>dWdr^%Zr$`Zx7e^)>bH>g(zo>YM6Y>f7o&>bvTD z>Oa(m`o8*s`l0$y^&|CT^X+(Q>euRj)Nj;p)$i2r)gRO! z)t}U#)nC+K)!)>ndeHJ%!ZHw%R$9ukAj$eHzZI~8R>%rl5i4rNthm)+C9I^CvKp-> ztJ!L?TCFy#-RiJ9tu0pC>aw<4-8eq6$Lh8EtbS{|wZqzJ4Okg#(As4US;N+DYsA`P z?X^a&F>9Z7hPB^1(>h?CWgWE6w#KbEnY5qE2V6HAy@KEW~cC>`K;egEH4Ho3&%2*e7U@wOQK8D znYqHkbbe_zvzVLCPh}UvTv#q z4+Y9|g`)n{V7XGjpmS#%Dg}&eB~#2|GVI&*ab=xW{6Rs!>Jl%fb7grnSFVKUf@krH zTsfv^u~N!m8fY#f?t%s#e&WT&|X1* zRd}kjd}}UWD)8&P)A=%H>bQTp0O%ta_vIFHN3$5}#7usH*4I?NG=*tBMqeGAStyk3 z?uBOnvvhxNET3JAtvU;@r1hSc#>{QObm`7*nvEX8XmhL3-<-k%l zk0GXFYpGC~&dvCW*`-1Ws3%y=K|iGL`H|M6;nP67Tnyra^4U54Xt{!B%Dzf|F}ILk z$^|Q>}(!GVy|NV3Kmx-lU-SgB9&Xf z+~!M}Ma*MrGP^Xpke$w9L1Ze~dHb^_3oDqw{8TQAX)j~?ilrQI&{8E_w|ASD1%#aqrz5eBx(b0y%B1R(p?`~uHL&Ias|hChvF zLYS#pj9q3acdU|dGWe$H+!Szgp%iz@%F9!_B%A{*&t(czIe-Ju-!edqa8nGR1+=6A zi$2ZI%Y30QHE%E4slw6xbX+fBPU{B~fU&tk6(+HMr{-Jg%UrbOq}m#S?b`IN7QM7- z(Pyx}vs0x4XbjD9L;W49oX|zAzROe!`1;E6)_UA9TPiGL+JU=rrRMruT$Ul!XSaj* z>87R&m9j1?Gy0*n=@T^Gsg-H$sy`VYnVYHD4cPUA{6Zi=EHV9ZN@MA8*YH{Nh(>mx zqxAi>ti$$GD8Prfa=GKVxN~p0gcV9?%=u10{Svi7-|o~xhwLx$PZFL6MauyLRw|h3 z=@Lz4FlcoIhY!2W^KMs)SnXWH$&vgAAJ=1m> zOok;zJii3M;%0!V!s+{0X9g@`H-n-9$tmjT-0spUz` z7tkVxaXOV-I+|N36ziwTpF36rT|iT6CRZvQZ*s4A*NDa4<&2+_?h@yFf?Q~i%1j>M zg&r^EO8yx_zBBoyasXosVsJE{T?hh~Vjc5GCtPU<3=_0YvD}G!E87G(&J35sg;B;& zm#O8MnQ~B*uSr_m37vK-@^~@_SFW;fdT8T7_C&`ujw4Q>p{|5sskyGmH7xaYd0grn zB&1nii9rpO7GV4+65TEzU&L$uC|LxjL{yk)WcFwlj2Ygpvn4E!G7Kp>htt#FYk!^Q zhILWh*ST--i*1@tQ{yB7>v2t*z%&$Ww7Bh*5@(293(szW)<>(ZZxb}9E`MJ7w6|QJ zdHQGhbM4+b&GNd`%~i_FOW8#zsj?+M{xZD2A~$0MX9xpgT$hXCn?cB?bI8nszy@Jl z!Uuu70*1rbg6;!-Vh6-RTR_OwpQl_)bxD5&HYh_yq$0)`ihqzIUR zh_hG#!;}NJSSb|}H4Z8R7I&$P1zcZ7obqxp=Bme|^F+Xq%Yvyxj_2-yMzFHbONEKSfzMeH}w7Y`raz?msXG;t?AmtB}= zq?vF^TuaA!o4x#9KzUMaUfK=yEzsI-tS@r#;7LzwShlN9^Mva8t`>o{(Idtkn91@0 zIz6_t8b+Lsp$pm;)^{Cdy#h3ky!ixt}fdWv-W;RGVKDv}-dOwbS&{ zFy@q$03i33{1j9LtWE$fb&}JCSx3phlr{jg1W7rwG?Q<%lQsarVE|l2ZaQQaYXt%Z zZe}J^UV^SA0!&43fi|8~^JrW?jZf27qv#x|&agbYO4s7G>oUIjvMD4(W7hnSMrW7E3ALJs) z$O%wkAjZ5+wxKhu99N6W<@{9aWU{RoG9|51Nuwa~NsDowW1dWOA`3nv=qd^5^g_N| zQT)+Lf9T0g171N%PAO&l;V&|{6lP{D(vM^p-aSqCva^NT_x46QF+WiEhwvw%&IkC0B1k_0GGXP9_|b^2zoVBo$ab;Mg(hW-d|Bj{YJK*2bjE2uoi zHWxx4tL$5Y4YEu{p&=~H=e+hJf_{{RW{qJSK^~k4BZ?YU2t!LezXBy6B&=MqmYV^V zBULirlK{Wtst7G)4xm#gdZG8DXF~Qbv|`Y6IvHw6BMy7wG?8DLDFj%XLOQOp3H??;BNytX)>LTd@#*5_qJ5vn zLP5D*%2|*g!N#)GN!*Citdjjk_ky3z&j8SJ*%>UIQqF|t!jC_#FiKXScP9*!aXq0J zTR{W608SP>{xmR>w>$?~Zz1P}l)Fe1P0J<+#i>1B%f;%@(KmX*Dg((?&q$da0UjAN-jo%vt}6e%(K11 zE}+rSCJ*K)F<9=qJZ|>9*PzH*X|B#V;OM|qyzU_et=WabWX@WF3S??7Knokj9_SD) zAYC8X%O^v5a(rmzhp#jAm00wkniiW+_$tbm51+oLVmW98Hb}Qd={^m_p5Fq2wX-3biq` z@r&7_4}ewzvylZB0)FwcodYvJSqEOV`HE?kk}jZcj<^e;a;M?N_e?=Pg{cPvQYd3Y zbG|Y}N}3WmiMIt7Nry~^yOIwTiiGQJUd0yXV@`d?;1qNT?~%zIUP5g!N%q;?-dxa5 z5bg^yzR)Vxke%j1^xGMHtDT~51USv3q>CNI##o0C8z-o$rBwi7o{S2_u1W=30$cXh zxxg*U1;`6Le>%yp_L5c?`YuaDbbxFgnKA^coK8ZR1rTuQVs6em3zAp_@dgfI5j8>- zSVMXa%hm@_2Q~%GC+g}i<%$c(GY}0URZ7OQB!R(;LAE6UMd$^yG_UchBorSk!)#M3 zPr-5ua9W zEOe)hTTB-*<97WTLWtItEEgN<@*13T%eD~^D2Q>6HUI`(#<=68 z)&jqTGRPd9^sU&2L}F9{exx^IPT#hhQol0U%&np7$0K7KQTZO&Fth~vV4D+&G}g-8 ztqf<*sI`KOrfx(_gG}eNd}I$Qw+$obtUcstm2&o7f)&o&=3X8FE^zb@EFM@|95f;9 z$;CopDM)sDFrjlGYbNXk^#e_f25bO?DI@@~#5U^z8`}0j$f#K6G1EAMP65e6$bdC<7S40oV*pKUs{qrFgjvk4NK(Zs*2jY*nK}-OjtL+D zvwSQsN#^rSL-9X}_2}b?Do)QpWsa|bkOY%0rN9@#P@wOUNWc_W-(vPwtKM(TlkHg- zXP2k*1)XFzShvWiWFbETEg}}K!zRM)IyD#6W_sqj;w)RZX^WR613UuKSt0{tan8#c z=~6kU0bUy^Yyfr@fgCMPS~JTPkR`KHIUbnIFF|h#aj6XUczM>plv}~5y&_5H=sdcbo6p(q1eih6YAlzd zoYD)4;2YNZEa?BV1j@7tCXBdX0>BlZTiiZqC+58ZOGs`d$g(BOjtk|SVtue&Bo+h$ z)6{b5c!V-FT`@#?XnUd31_uHc3DO=<7iirFxt>l3^bIP}#ahVGP3bh&XPlp~v%J=< zr5xFg0=ju}=CMdS0iKKLKJ}LM16pTfPUfa*X7WoRzGgsOR}#C{&mvQ7OZE=!l(xp9@)y zf&gf&Wy18wi3@~sx=e%%nl&s{cyUA_L6@|$p4jzDq?V@-A_KjB8{_P+=Ga97jgVsj z$<4$q+fG0>d&yQPVA@;3XM@=WGhHr%EQV@)HAYuwpxnqo;{%5ROv8KtUIS>72)|J| z3W3FzdT7Wa)f`i+T9#$KT9yfv53(;OpNBO&whbsZA;28nI0HgU0ET9l` z78$KU@Pb)^RU;RG@We`p+>&;g%4Ew687yevI4l_~Iv>@ThTy1Z+{zJJ`p`sR>5$

    eQe!f9^EZa-f?l`)yEPE++Aqekb=! zQ!9tuJNKNgLNgY)Zny(!_L?O8JUMBBGXib~oB+7zF<$0uZqZ+57rizc=_dhPgI|?n z2mj&bteGQA+M)&43F%|CgkkAIN9@q|V32dXrZU4py_(olC&I(dN@lF8iegy-JPm7q z0gOj;(@9&Lseg+u3~QDcjN>9Sq#D7qIx||+6EbwA^&AqHMySmhFm_ad?ju*)S}mgc zwc0$|T7?%UJ_mSs0c#D?6%tUF>5_m(HdF>DlogE5ELR})X&Krsy259Sa1*q}oFO+m z(*EEE8By#y^GmEx)a78n$VHE;Km(S8=LM%>h@AILLp&xf!v_zS3cWWxTYzDWKd+L@ z!D$P!0xW3IvIi#d1Uw5-$&o_|B{cI8X0W!F^5h*e4c3DzkXOjnB7}6uH-z*SjxLw-7&|6+C(7bxf*paz} z6{i8V49Nn*F}9up<|LUMpz4LUu^-CS9H@0U7g}MJa)!yiI+lSs0~+aLdO6yvI-ZfR zli`J=;DkFhm#Rt&?CcDDS6(PojH58q*_LbH;jH1%;I2!y`NtXr7NZ22mu>k=Z> zRha+LN$}%0XSF&?BRXBo)2JJUEy7NK@26(V8G36>vx3V@SencXrcN%v(#RLRV5y16 zh6fxRf{BZOagS_wzyn#P(~2DUUiS@Si>|1IE{ha{gF=OPKG_WtEkJHJzu)fnz>7T(ZCdN{cjo zv3CZ<3oAte|IYemvp`VrZS*qZ3y(6lZ+?dT^UJd?mj!pH|(q<=oYk_Xx?O-D%} zU{8Ks+ggP7xpchIr7L2Jrhy^qqE;)wC~;SQ7=B+zA+az$V*qJzrLiz+;rW4F^ozVe zEIEh-5nH^(Vj!##bzE7Cr2@$UBwXj94E$Whuf}cCG{5PRDc>dX4<8v`>7& zzV9fFEN!@kExVLkVLdt2oO1;z$jFLSR^@r%{2e$6!TyZ^$NuZDUKm^WM^lI zjVBQgJ`gL}ncRYxwzp$d!Dy0)w4wDE7z1{gu<(oSX&oU}C|Gw=W_oi1%QMQ9DwLrBN$6dSx`)(i)1KfL6Mw~TxL($ zoADTQt{}-Uuuq}Q*_<_nH|KL;eCP+WUqKr3w%u?8h}K+z)c}C!S<>(7&!5iUdh78R zgE~NEx|E$E7G6%5mKVcx!SF!)0+UhH22E{S$W3d?gZG0YovLU}M@^*G>J8YMppVjN zuqsGv;+0=ITEO}tSNI%62hP|qqz%PxvJ>H2Y)u8DmecRmZ(1&rwrqhkB@1LEfpq{M zPl5>M9=D)iV9YrKnGAj^8jWIUL6t_UEnGLQA)p$FLfIME?z0g)1GW*lG6_9&ubj{7 z7H8qxP2wOokIYh}nqsY+D?6FXE+%VtDVr&;V4cTmg-nXdt^%wZbfK|ULl=N;0m$lp z&|3+3>+*cx)ebb_v&*@rT06QRqnk^eQcl#x_3cb-@S%q}IZfJDXB)m)+XPR& zAlaGOW`UJF2Xs(bp0vG_U<9w^7Szq;+@!}1F8*cxGD>A?1I1Z-Hw?`fcnzrwS-1)4 zu5*&>$GHbOulwY#K~1FGyb}~2+UgM^S=-_A;XF{w5R(BbWobTFQecySaQGF_|7Rva ze&+QXOF(!4wG3q2G92`lV0gy{0w7niC1T?Pc&8AnxuB8*t|(!LL>W>Y>_dP%Sdo{e zj(aKf|H?SiCB=;(2yb|}LBKM0*nS8iZ2xeCA4edKqy-&Tb69?Qe_7oPjQ0;CF@uo0 z>&VK=nx;C~I~L^dDm%}{?qR945Ei^)@#X(46){}Uc?BlvR3@fw-2a*MiXAACm=(P zsqLpX`lSv6w>7t8$v*AZngH91uoOO%8;Wt<1tQTmCai8<5mN8O%=1vddk3+qDpHOI zl7V5U_h^aiCbJUO-5=WwnD6jd$8IV?C;Kv@Z112UfPijgyVHI^$b95<6R$@Y%(c;a#BN~Qi1P|yvxBdrga0f# z(`n`cNis1{+iQ*e_;bshLNfrqq8YXJo-iv^lo?h4fICe4)ahU zG(M$p`;(IZf2vl2sg2k19wh!fpJ3%Q@>EjyW0d(1ZT$ptzY3lNRo)8JBngu$2=TkVJFKQZVe?4NY3Kr|JivYcH6;PB?~NDn4`FDHjzZnZFPe<5i?mp%T^2xPMkmxg zf?u*Jifi+BZ0{aeXMg+#i_iLIf4(74oZxl%+gb?5SY-o5(+s*fhgma3adbCd=ZhI0 z7qq=E6U>8*KV#>wCkE9Zex*wkH;l~4B(!BEAUkINx|WRAyZqhiSL%8{-Fno(*sAP@ z8?#wt$AXrZ^bAp(ogja~0#004(T*}3xKApV{@T8wXU2q6fUVYaYfIwef+pYrECh@jZXLJ9{(1&Y-m(~%nRUspE}c_c2~9N!^@CI4@^wyCa>=>v z@cek>r9?+Z`O3r8Q+*%g5`23{*F>Km0p*L&{4F7B^UBr2H;3CbaRnD@(yX0ghR8d~bmIy+PdkA+g(RCw z)d6yw)Ay(>$!!DK@_1t=URzw-+~M=!BGrBINYyi)N6*jCNJVCi(bnCGOA-pg*1J>1 zS=7<{vpr!J&z`um2qNkmJd_54t0Ans!-zLG^X9WtoiNHe(@zl1o%Dv!n;%ZRv+Q0< z#l4p-k=qGIy0cdf&+4>{WI>Swy-7w3wAoTK4K#`{Mz)*ow99|`90bB2zR-N~$(ZTl zbtcRV1GzLT%!~vQyP}AhOwC3H>L~1bPg>QL5tY8aNy7Azqg1^NG{3xJ$8#8L77=i+ zU`X6f>vaGf;hxYHanVJWs}-xAU3Qd!L@GVa()8s%XV9eQkr5K7rxL%QQl@H$fdI4n zCPb{kcK#F>5Ok%{gF44TPy<@Zmm&@VaEtqVupmmv?}=fO$nafu*bw11;TWFYS{~6> zC|iZKXxTSo{U;QzT z5R hwXxi)6{KQCXqh#`nWzozkh2x~F~v%mHfz3o`49d6K->TT literal 0 HcmV?d00001 diff --git a/www/z4d/fa-solid-900.43a87668a828405a.ttf b/www/z4d/fa-solid-900.43a87668a828405a.ttf deleted file mode 100644 index 2b964362150d6e6ab303efbbc353f0b4c433fca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397420 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ഝT` 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 diff --git a/www/z4d/fa-solid-900.71ed02b437225dbb.woff2 b/www/z4d/fa-solid-900.71ed02b437225dbb.woff2 deleted file mode 100644 index 021d33fb659a8ac7e7ac346e403c059d28c439ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150516 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 r~ak16a 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℞P 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ȫ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 diff --git a/www/z4d/fa-solid-900.ce4938a30389d90a.woff2 b/www/z4d/fa-solid-900.ce4938a30389d90a.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..824d518eb4cbbd1fc837dcac2ccad718119d1ac9 GIT binary patch literal 156496 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­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⋙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

    This page requires JavaScript to work properly. Please enable JavaScript in your browser.

    - + diff --git a/www/z4d/main.8ee40e8b0b699ec4.js b/www/z4d/main.8ee40e8b0b699ec4.js new file mode 100644 index 000000000..9450b6604 --- /dev/null +++ b/www/z4d/main.8ee40e8b0b699ec4.js @@ -0,0 +1 @@ +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"Param\xe8tres de l\'objet","device.byname.parameter.popover.text":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet. Vert indique que les param\xe8tres ont \xe9t\xe9 pris envoy\xe9 \xe0 l\'objet, Orange indique que les param\xe8tres n\'ont pas encore \xe9t\xe9 envoy\xe9","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Active l\'utilisation du scan de topologie zigpy","ZigpyTopologyReportAutoBackup":"Sauvegarde les scan topologie interne zigpy"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:"alt.z",refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Dt=gt&&Ve||new Map;qe.forEach((Pt,Ut)=>{let Zt=Ut,hi=Pt;if("offset"!==Ut)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Ut);break;case Z.kp:hi=m.get(Ut);break;default:hi=c.normalizeStyleValue(Ut,Zt,hi,W)}Dt.set(Zt,hi)}),gt||ce.push(Dt),Ve=Dt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=_s(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=_s(m);c.style[W]=""})}function Jt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function _s(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function zn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Di=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class Cs extends Te{normalizePropertyName(v,i){return _s(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Di.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const kn="*";const ir=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=ir.has(c)||St.has(c),m=ir.has(v)||St.has(v);return(W,ce)=>{let De=c==kn||c==W,Ve=v==kn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?ir.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?ir.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),zn(this,Jt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=zn(this,Jt(v.animation),i),W=function jr(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function fo(c,v,i){if(":"==c[0]){const qe=function qr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=kn||De!=kn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>zn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=zn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return rs(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=rs(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return rs(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Dt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Dt=!1),ce=gt.startTime),Dt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function ui(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(di=>{const wi=this._makeStyleAst(di,i);let gi=null!=wi.offset?wi.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(wi.styles),ki=0;return null!=gi&&(ce++,ki=wi.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?wi==Ut?1:Pt*wi:De[wi],ki=gi*Yt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(di,i),di.offset=gi,m.styles.push(di)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:zn(this,Jt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=zn(this,Jt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:zn(this,Jt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function rs(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const Js=new RegExp(":enter","g"),Qr=new RegExp(":leave","g");function nr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Dt=new Ki(v,i,et,W,ce,gt,[]);Dt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Dt.currentTimeline.delayNextStep(Pt),Dt.currentTimeline.setStyles([De],null,Dt.errors,qe),zn(this,m,Dt);const Ut=Dt.timelines.filter(Zt=>Zt.containsAnimation());if(Ut.length&&Ve.size){let Zt;for(let hi=Ut.length-1;hi>=0;hi--){const Yt=Ut[hi];if(Yt.element===i){Zt=Yt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Dt.errors,qe)}return Ut.length?Ut.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),zn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=Vr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>zn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),zn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=Vr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Dt=i.createSubContext(v.options,et);ce&&Dt.delayNextStep(ce),et===i.element&&(qe=Dt.currentTimeline),zn(this,v.animation,Dt),Dt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Dt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Dt=gt.currentTime;zn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Dt+(W.startTime-m.currentTimeline.startTime)}}const Vr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Vr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=Vr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new Jl(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(Js,"."+this._enterClassName)).replace(Qr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Dt)=>{gt===Z.FX?v.add(Dt):gt===Z.kp&&i.add(Dt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class Jl extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",pr(Ve)),ce.push(et);const gt=v.length-1;for(let Dt=1;Dt<=gt;Dt++){let Pt=new Map(v[Dt]);const Ut=Pt.get("offset");Pt.set("offset",pr((i+Ut*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function pr(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Dt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Dt,errors:Pt}}const La={};class Jr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Ko(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Dt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Dt),hi=qe&&qe.params||La,Yt=this.buildStyles(W,hi,Dt),di=new Set,wi=new Map,gi=new Map,ki="void"===W,Bi={params:nl(hi,Pt),delay:this.ast.options?.delay},Mi=gt?[]:nr(v,i,this.ast.animation,ce,De,Zt,Yt,Bi,et,Dt);let an=0;return Mi.forEach(ln=>{an=Math.max(ln.duration+ln.delay,an)}),Dt.length?Pa(i,this._triggerName,m,W,ki,Zt,Yt,[],[],wi,gi,an,Dt):(Mi.forEach(ln=>{const ps=ln.element,Ln=N(wi,ps,new Set);ln.preStyleProps.forEach(Un=>Ln.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&di.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Yt,Mi,[...di.values()],wi,gi,an))}}function nl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=nl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class sl{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new Jr(v,W,this.states))}),this.fallbackTransition=function rl(c,v,i){return new Jr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=nr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Dt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Dt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Dt)=>{gt.forEach((Pt,Ut)=>{gt.set(Ut,this._driver.computeStyle(Dt,Ut,Z.kp))})});const et=se(De.map(gt=>{const Dt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Dt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ol="ng-animate-queued",Ra="ng-animate-disabled",Dr=[],fa={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class Qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Eo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const zr="void",Do=new Qi(zr);class ga{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,sr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function ll(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(sr(v,Qe),sr(v,Qe+"-"+i),Ve.set(i,Do)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ma(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(sr(v,Qe),sr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new Qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Do),et.value!==zr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Yt),_t(v,di)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Ut=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Ut){if(!W)return;Ut=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Ut,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(sr(v,ol),De.onStart(()=>{cs(v,ol)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Yt=this._engine.playersByElement.get(v);if(Yt){let di=Yt.indexOf(De);di>=0&&Yt.splice(di,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,zr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Do,gt=new Qi(zr),Dt=new ma(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Dt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===fa)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){sr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class mo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ga(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(er(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!er(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),sr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(er(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return er(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=fa,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))});const Yt=[],di=new Set,wi=new Set;for(let yi=0;yidi.add(Wi)):wi.add(Ei))}const gi=new Map,ki=Er(Pt,Array.from(di));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))}),v.push(()=>{Ut.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Yt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Mi=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Nn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const is=Nn[Us];if(is&&is.setForMove){if(is.previousTriggersValues&&is.previousTriggersValues.has(ji.triggerName)){const Zr=is.previousTriggersValues.get(ji.triggerName),Ii=this.statesByElement.get(ji.element);if(Ii&&Ii.has(ji.triggerName)){const gn=Ii.get(ji.triggerName);gn.value=Zr,Ii.set(ji.triggerName,gn)}}return void Wi.destroy()}}const ts=!Dt||!this.driver.containsElement(Dt,Nn),Wn=gi.get(Nn),Yr=Zt.get(Nn),ds=this._buildInstruction(ji,m,Yr,Wn,ts);if(ds.errors&&ds.errors.length)return void Mi.push(ds);if(ts)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);const Kr=[];ds.timelines.forEach(is=>{is.stretchStartingKeyframe=!0,this.disabledNodes.has(is.element)||Kr.push(is)}),ds.timelines=Kr,m.append(Nn,ds.timelines),De.push({instruction:ds,player:Wi,element:Nn}),ds.queriedElements.forEach(is=>N(Ve,is,[]).push(Wi)),ds.preStyleProps.forEach((is,Zr)=>{if(is.size){let Ii=qe.get(Zr);Ii||qe.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))}}),ds.postStyleProps.forEach((is,Zr)=>{let Ii=et.get(Zr);Ii||et.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))})});if(Mi.length){const yi=[];Mi.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const an=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,an))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(an,Ei,[]).push(Wi),Wi.destroy()})});const ps=Yt.filter(yi=>Ao(yi,qe,et)),Ln=new Map;cl(Ln,this.driver,wi,et,Z.kp).forEach(yi=>{Ao(yi,qe,et)&&ps.push(yi)});const Un=new Map;Ut.forEach((yi,Ei)=>{cl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Ln.get(yi),ji=Un.get(yi);Ln.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Qs={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Nn=Qs;if(ln.size>1){let Wn=Ei;const Yr=[];for(;Wn=Wn.parentNode;){const ds=ln.get(Wn);if(ds){Nn=ds;break}Yr.push(Wn)}Yr.forEach(ds=>ln.set(ds,Nn))}const ts=this._buildAnimation(ji.namespaceId,Wi,an,ce,Un,Ln);if(ji.setRealPlayer(ts),Nn===Qs)Ri.push(ji);else{const Wn=this.playersByElement.get(Nn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!ts.destroyed);Nn.length?Ar(this,Ei,Nn):this.processLeaveNode(Ei)}return Yt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==zr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Dt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Ut=>{const Zt=Ut.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Ut.destroy(),Dt.push(Ut)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Dt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Yt=hi[Us];if(Yt&&Yt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const di=hi!==qe,wi=function Zo(c){const v=[];return ba(c,v),v}((m.get(hi)||Dr).map(an=>an.getRealPlayer())).filter(an=>!!an.element&&an.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Mi=this._buildPlayer(Zt,Bi,wi);if(Zt.subTimeline&&W&&Dt.add(hi),di){const an=new ma(v,Ve,hi);an.setRealPlayer(Mi),et.push(an)}return Mi});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function al(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>sr(Zt,kt));const Ut=se(Pt);return Ut.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Dt.forEach(Zt=>{N(W,Zt,[]).push(Ut)}),Ut}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ma{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function er(c){return c&&1===c.nodeType}function Gr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function cl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(Gr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Dt=>{const Pt=v.computeStyle(et,Dt,W);gt.set(Dt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>Gr(qe,ce[Ve++])),De}function Er(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function sr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Ar(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function ba(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new mo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function eo(c,v,i){return new sl(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class va{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=va.initialStylesByElement.get(v);W||va.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(va.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Xs(c){let v=null;return c.forEach((i,m)=>{(function to(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Hr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class io{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Ut=>Ut instanceof Hr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Ut=>{Ut.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Dt=function Mt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Ut=>new Map(Ut));Dt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Dt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Xs(v[0]),v.length>1&&(m=Xs(v[v.length-1]))):v instanceof Map&&(i=Xs(v)),i||m?new va(c,i,m):null}(v,Dt);return new Hr(v,Dt,qe,Pt)}}const Io="@.disabled";class ya{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Io?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class qo extends ya{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Io?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function bo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function hl(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Oo{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new ya("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Zi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new Cs}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Zi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Oo(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new io},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Ir=He(38117),Ks=He(93887),Or=He(20546),rr=He(88652),Pr=He(19664),Bn=He(37542),fr=He(93331),Jo=He(7673),tc=He(33669),Nl=He(27468),Xh=He(86648),Yh=He(84572),Ac=He(91986),so=He(5964),Kh=He(23294),Va=He(25558),Lr=He(96354),Ic=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),vo=He(73703);const Zs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),dl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},ul=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Bn.PI),i=(0,e.WQX)(Zs,{optional:!0})||{};return{...dl,...i,enableLinkTracking:v,disabled:c}}}),pl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Oc(c){return{provide:pl,multi:!0,useClass:c}}function ic(c){return c?c.map(Oc):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const jl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new tr((0,e.WQX)(M.hE))});class tr{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,Jo.of)(this.title.getTitle())}}const Nc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new xa((0,e.WQX)(ul),(0,e.WQX)(Zi.kB,{optional:!0}),(0,e.WQX)(Zi.hb))});class xa{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,Jo.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Lo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Ns(c){return c instanceof fr.wF}function Fs(c){return"string"==typeof c?new RegExp(c):c}let yo=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Bn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?tc.D:(0,Ac.c)(this.config.delay);this.router.events.pipe((0,so.p)(Ns),(0,so.p)(function gl(c){const v=function ea(c){return c?Array.isArray(c)?c.map(Fs):[Fs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Fl(c,v){return(0,Kh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Lr.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ic.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Rc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Nl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,Jo.of)(void 0):(0,Xh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,vo.u)(void 0),(0,Ss.U)(void 0)):(0,Jo.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,Jo.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Yh.z)([m,W]).pipe((0,Lr.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(fr.Ix),e.KVO(ul),e.KVO(jl),e.KVO(Nc),e.KVO(Bn.kA),e.KVO(pl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Vl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Fc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})(),Fc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(Vl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})();var ml=He(45794),_r=He(41584),Ga=He(39974),ta=He(54360),Ur=He(58750);function ia(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?tc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ta._)(De,Dt=>{W&&(Ve=0),De.next(Dt)},void 0,Dt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Ut="number"==typeof m?(0,_r.O)(m):(0,Ur.Tg)(m(Dt,Ve)),Zt=(0,ta._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Ut.subscribe(Zt)}else Pt()}else De.error(Dt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),na=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Oi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),es=()=>["/admin/firmware"],as=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ss(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function Bs(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ss,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Rr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Gn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,as)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function pi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Lr.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(ml.tw),e.rXU(Ir.W4),e.rXU(Ke.G),e.rXU(Pr.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,Bs,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Rr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Gn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,pi,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Oi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,es)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Zi.Sq,Zi.bT,Pr.Mm,rr.$G,rr.tg,rr.do,rr.U0,rr.ZM,at.Zm,at.BC,at.vS,fr.Wk,fr.wQ,Pr.D9],styles:[".navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function or(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function wa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function gr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function _o(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,gr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Ro(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function sc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,sc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function zl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Ta,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Co(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function rc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,or,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,wa,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,_o,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Ro,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,zl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,Co,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function Sa(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function No(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let bl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Nl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Lr.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.fork$),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,rc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,Sa,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,No,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Zi.YU,Zi.bT,Pr.Mm,rr.ZM,Zi.vh,Pr.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[fr.n3,Yn,bl]})}return c})();class sn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const oc=[sn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let vl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forRoot(oc,{preloadingStrategy:fr.Kp}),fr.iI]})}return c})();var Fo=He(57786),ac=He(73028),yl=He(5779),js=He(21413),lc=He(33726),mr=He(983),Vs=He(71985),Gl=He(70152),sa=He(70980);function Qn(){return["Mac","iPhone","iPad","iPhone"].some(v=>navigator.platform.includes(v))?"apple":"pc"}function _l(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new js.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=_l(W.keys,Qn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,lc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,Gl.B)(this.sequenceDebounce),(0,ac.Z)(()=>{const gt=et;et="";const Dt=this.sequenceMaps.get(Ve);if(Dt.hotkeyMap.has(gt)){const Pt=Dt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,Jo.of)(Pt.hotkey)}return mr.w}))},W={...this.defaults,...i};let ce=_l(W.keys,Qn());return(()=>{const Ve={subject:new js.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,Jo.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Dt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Dt)}return Ve.subject.asObservable()})().pipe((0,na.Q)(this.dispose.pipe((0,so.p)(Ve=>Ve===ce))),(0,so.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,sa.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=_l(m.keys,Qn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,Jo.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new Vs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,na.Q)(this.dispose.pipe((0,so.p)(De=>De===W))))}removeShortcuts(i){(function Zh(c){return Array.isArray(c)?c:[c]})(i).map(W=>_l(W,Qn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Zi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Re=(()=>{class c{static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({imports:[Zi.MD]})}return c})();const Ue=new Ir.Vy("App");let Be=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Or.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Or.c.production&&Ir.Vy.enableProductionMode(),Ue.debug("init"),this.i18nService.init(Or.c.defaultLanguage,Or.c.supportedLanguages),this.subs.sink=(0,Nl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.subs.add(this.hotkeys.addShortcut({keys:this.keysBoundActive}).subscribe(i=>{console.log("ben"+i),this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))}setTitle(){const i=this.router.events.pipe((0,so.p)(m=>m instanceof fr.wF));(0,Fo.h)(this.translateService.onLangChange,i).pipe((0,Lr.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,so.p)(m=>"primary"===m.outlet),(0,ac.Z)(m=>m.data),(0,Ir.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(fr.Ix),e.rXU(fr.nX),e.rXU(M.hE),e.rXU(Pr.c$),e.rXU(Ke.G),e.rXU(Ir.W4),e.rXU(ut.d),e.rXU(yl.r1),e.rXU(qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[fr.n3]})}return c})();var We=He(31635);class pn{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class Dn extends pn{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class qs extends pn{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Hl extends pn{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Cl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof Dn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof qs?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Hl?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class cc extends Cl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Bo(){}function yh(c){return null==c?Bo:function(){return this.querySelector(c)}}function Vf(){return[]}function zf(c){return null==c?Vf:function(){return this.querySelectorAll(c)}}function jc(c){return function(){return this.matches(c)}}function $r(c){return function(v){return v.matches(c)}}var Gf=Array.prototype.find;function Vc(){return this.firstElementChild}var zc=Array.prototype.filter;function td(){return Array.from(this.children)}function lp(c){return new Array(c.length)}function Gc(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function Ch(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}Gc.prototype={constructor:Gc,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var ni="http://www.w3.org/1999/xhtml";const xn={svg:"http://www.w3.org/2000/svg",xhtml:ni,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ka(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),xn.hasOwnProperty(v)?{space:xn[v],local:c}:c}function Hc(c){return function(){this.removeAttribute(c)}}function hs(c){return function(){this.removeAttributeNS(c.space,c.local)}}function Uc(c,v){return function(){this.setAttribute(c,v)}}function ra(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function Bd(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function fp(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function fm(c){return function(){this.style.removeProperty(c)}}function gp(c,v,i){return function(){this.style.setProperty(c,v,i)}}function oo(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function dc(c,v){return c.style.getPropertyValue(v)||fp(c).getComputedStyle(c,null).getPropertyValue(v)}function ka(c){return function(){delete this[c]}}function kl(c,v){return function(){this[c]=v}}function $f(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function bp(c){return c.trim().split(/^|\s+/)}function Th(c){return c.classList||new Sh(c)}function Sh(c){this._node=c,this._names=bp(c.getAttribute("class")||"")}function kh(c,v){for(var i=Th(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var qc=[null];function br(c,v){this._groups=c,this._parents=v}function Xd(){return new br([[document.documentElement]],qc)}br.prototype=Xd.prototype={constructor:br,select:function rp(c){"function"!=typeof c&&(c=yh(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=wi+1);!(Bi=Yt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function Wf(c){function v(Dt,Pt){return Dt&&Pt?c(Dt.__data__,Pt.__data__):!Dt-!Pt}c||(c=hc);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?fm:"function"==typeof v?oo:gp)(c,v,i??"")):dc(this.node(),c)},property:function mp(c,v){return arguments.length>1?this.each((null==v?ka:"function"==typeof v?$f:kl)(c,v)):this.node()[c]},classed:function Vd(c,v){var i=bp(c+"");if(arguments.length<2){for(var m=Th(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?Ah:Kc,W=0;W{}};function Qc(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?hd(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?hd(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=Xl.exec(c))?new ao(v[1],v[2],v[3],1):(v=vc.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=ar.exec(c))?hd(v[1],v[2],v[3],v[4]):(v=wp.exec(c))?hd(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=Jd.exec(c))?Tp(v[1],v[2]/100,v[3]/100,1):(v=ld.exec(c))?Tp(v[1],v[2]/100,v[3]/100,v[4]):eu.hasOwnProperty(c)?ih(eu[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function ih(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function hd(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function Rh(c,v,i,m){return 1===arguments.length?function gm(c){return c instanceof $l||(c=Yl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}`}function nu(){const c=su(this.opacity);return`${1===c?"rgb(":"rgba("}${nh(this.r)}, ${nh(this.g)}, ${nh(this.b)}${1===c?")":`, ${c})`}`}function su(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function nh(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function sh(c){return((c=nh(c))<16?"0":"")+c.toString(16)}function Tp(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ea(c,v,i,m)}function ru(c){if(c instanceof Ea)return new Ea(c.h,c.s,c.l,c.opacity);if(c instanceof $l||(c=Yl(c)),!c)return new Ea;if(c instanceof Ea)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ea(De,Ve,qe,c.opacity)}function Ea(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function Sp(c){return(c=(c||0)%360)<0?c+360:c}function kp(c){return Math.max(0,Math.min(1,c||0))}function dd(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function Za(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}eh($l,Yl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:cd,formatHex:cd,formatHex8:function th(){return this.rgb().formatHex8()},formatHsl:function Jf(){return ru(this).formatHsl()},formatRgb:tu,toString:tu}),eh(ao,Rh,Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(nh(this.r),nh(this.g),nh(this.b),su(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function eg(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}${sh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nu,toString:nu})),eh(Ea,function zo(c,v,i,m){return 1===arguments.length?ru(c):new Ea(c,v,i,m??1)},Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new Ea(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ea(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(dd(c>=240?c-240:c+120,W,m),dd(c,W,m),dd(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ea(Sp(this.h),kp(this.s),kp(this.l),su(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=su(this.opacity);return`${1===c?"hsl(":"hsla("}${Sp(this.h)}, ${100*kp(this.s)}%, ${100*kp(this.l)}%${1===c?")":`, ${c})`}`}}));const au=c=>()=>c;function lu(c,v){var i=v-c;return i?function tg(c,v){return function(i){return c+i*v}}(c,i):au(isNaN(c)?v:c)}const cu=function c(v){var i=function mm(c){return 1==(c=+c)?lu:function(v,i){return i-v?function Mp(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):au(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=Rh(W)).r,(ce=Rh(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=lu(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function Dp(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return Za((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Go(m,W)})),i=Nh.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--Ho}()}finally{Ho=0,function Wt(){for(var c,i,v=jh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:jh=i);pd=c,Qt(m)}(),Kl=0}}function Vt(){var c=ah.now(),v=c-fd;v>fu&&(Vh-=v,fd=c)}function Qt(c){Ho||(rh&&(rh=clearTimeout(rh)),c-Kl>24?(c<1/0&&(rh=setTimeout(ft,c-ah.now()-Vh)),oh&&(oh=clearInterval(oh))):(oh||(fd=ah.now(),oh=setInterval(Vt,fu)),Ho=1,be(ft)))}function ii(c,v,i){var m=new we;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}we.prototype=Ne.prototype={constructor:we,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?je():+i)+(null==v?0:+v),!this._next&&pd!==this&&(pd?pd._next=this:jh=this,pd=this),this._call=c,this._time=i,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var Ci=Jc("start","end","cancel","interrupt"),_i=[],Ai=0,fn=3;function En(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Dt,Pt,Ut;if(1!==i.state)return qe();for(gt in m)if((Ut=m[gt]).name===i.name){if(Ut.state===fn)return ii(De);4===Ut.state?(Ut.state=6,Ut.timer.stop(),Ut.on.call("interrupt",c,c.__data__,Ut.index,Ut.group),delete m[gt]):+gtAi)throw new Error("too late; already scheduled");return i}function An(c,v){var i=qn(c,v);if(i.state>fn)throw new Error("too late; already running");return i}function qn(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var xe,wr=180/Math.PI,lo={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Dt.push(W(Dt)+"rotate(",null,m)-2,x:Go(et,gt)})):gt&&Dt.push(W(Dt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Dt,Pt),function Ve(et,gt,Dt,Pt){et!==gt?Pt.push({i:Dt.push(W(Dt)+"skewX(",null,m)-2,x:Go(et,gt)}):gt&&Dt.push(W(Dt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Dt,Pt),function qe(et,gt,Dt,Pt,Ut,Zt){if(et!==Dt||gt!==Pt){var hi=Ut.push(W(Ut)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Go(et,Dt)},{i:hi-2,x:Go(gt,Pt)})}else(1!==Dt||1!==Pt)&&Ut.push(W(Ut)+"scale("+Dt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Dt,Pt),et=gt=null,function(Ut){for(var Yt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Zn:An;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function Jn(c,v){var i=Ka(c),m="transform"===i?Ie:oi;return this.attrTween(c,"function"==typeof v?(i.local?nn:Cn)(i,m,ai(this,"attr."+c,v)):null==v?(i.local?qi:Pi)(i):(i.local?tn:Yi)(i,m,v))},attrTween:function Uo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=Ka(c);return this.tween(i,(m.local?cr:co)(m,v))},style:function rb(c,v,i){var m="transform"==(c+="")?ue:oi;return null==v?this.styleTween(c,function cg(c,v){var i,m,W;return function(){var ce=dc(this,c),De=(this.style.removeProperty(c),dc(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Cc(c)):"function"==typeof v?this.styleTween(c,function nb(c,v,i){var m,W,ce;return function(){var De=dc(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=dc(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,ai(this,"style."+c,v))).each(function sb(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=An(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Cc(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function Op(c,v,i){var m,ce,W=i+"";return function(){var De=dc(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Ew(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Dw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function Mw(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function Aw(c){return this.tween("text","function"==typeof c?function ym(c){return function(){var v=c(this);this.textContent=v??""}}(ai(this,"text",c)):function vm(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function hx(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function ob(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Iw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function ib(){return this.on("end.remove",function rx(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function zt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=qn(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Wl.prototype.transition=function gx(c){var v,i;c instanceof ch?(v=c._id,c=c._name):(v=xm(),(i=lb).time=je(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function Rp(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function gg(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<0?et=Dt+1:gt=Dt}while(etNr(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===Nr||c===Rp?c:fb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Dt=W(Ve,qe,et,gt-1);return Dt>et&&m(Ve[Dt-1],qe)>-m(Ve[Dt],qe)?Dt-1:Dt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<=0?et=Dt+1:gt=Dt}while(et=kx?10:ce>=gb?5:ce>=Mx?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etho(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(bb.setTime(+ce),vb.setTime(+De),c(bb),c(vb),Math.floor(i(bb,vb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Tm=ho(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Tm.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?ho(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Tm:null);const vu=ho(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*uh)},(c,v)=>(v-c)/uh,c=>c.getUTCSeconds()),yu=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getMinutes()),km=ho(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getUTCMinutes()),bg=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh-c.getMinutes()*Il)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getHours()),Mm=ho(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getUTCHours()),ha=ho(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Il)/Zl,c=>c.getDate()-1),xb=(ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>c.getUTCDate()-1),ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>Math.floor(c/Zl)));function xu(c){return ho(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Il)/mb)}const vg=xu(0);function zh(c){return ho(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/mb)}xu(1),xu(2),xu(3),xu(4),xu(5),xu(6);const Tb=zh(0),Om=(zh(1),zh(2),zh(3),zh(4),zh(5),zh(6),ho(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),zp=ho(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),Gp=ho(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());Gp.every=c=>isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const _g=ho(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function Pm(c,v,i,m,W,ce){const De=[[vu,1,uh],[vu,5,5e3],[vu,15,15e3],[vu,30,3e4],[ce,1,Il],[ce,5,5*Il],[ce,15,15*Il],[ce,30,30*Il],[W,1,ph],[W,3,3*ph],[W,6,6*ph],[W,12,12*ph],[m,1,Zl],[m,2,2*Zl],[i,1,mb],[v,1,Ex],[v,3,3*Ex],[c,1,Fp]];function qe(et,gt,Dt){const Pt=Math.abs(gt-et)/Dt,Ut=gg(([,,Yt])=>Yt).right(De,Pt);if(Ut===De.length)return c.every(wm(et/Fp,gt/Fp,Dt));if(0===Ut)return Tm.every(Math.max(wm(et,gt,Dt),1));const[Zt,hi]=De[Pt/De[Ut-1][2]isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Lm,Cg]=Pm(_g,zp,Tb,xb,Mm,km),[Db,Rm]=Pm(Gp,Om,vg,ha,bg,yu);var vd=new Date,wg=new Date;function ql(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return vd.setTime(+ce),wg.setTime(+De),c(vd),c(wg),Math.floor(i(vd,wg))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const Hp=864e5,Eb=7*Hp;function Gh(c){return ql(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/Eb})}var In=Gh(0),Up=Gh(1),yd=(Gh(2),Gh(3),Gh(4));const jm=(Gh(5),Gh(6),ql(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/Hp},function(c){return c.getUTCDate()-1}));function xd(c){return ql(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/Eb})}var Nb=xd(0),kg=xd(1),wu=(xd(2),xd(3),xd(4));const Mg=(xd(5),xd(6),ql(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/Hp,c=>c.getDate()-1));var Vm=ql(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});Vm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const $p=Vm;var Dg=ql(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});Dg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const Xp=Dg;function Yp(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function zm(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function Kp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Bb={"-":"",_:" ",0:"0"},uo=/^\s*\d+/,Tc=/^%/,Gm=/[\\^$*+?|[\]().{}]/g;function ys(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Eg(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Xw(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function Vb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=uo.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Zp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Wm(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function fh(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function e_(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function zb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function $m(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function Gb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function qp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function Hb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function ku(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Qp(c,v,i){var m=uo.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Xm(c,v,i){var m=Tc.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Jp(c,v,i){var m=uo.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Ub(c,v,i){var m=uo.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ys(c.getDate(),v,2)}function t_(c,v){return ys(c.getHours(),v,2)}function i_(c,v){return ys(c.getHours()%12||12,v,2)}function n_(c,v){return ys(1+Mg.count($p(c),c),v,3)}function Wb(c,v){return ys(c.getMilliseconds(),v,3)}function s_(c,v){return Wb(c,v)+"000"}function r_(c,v){return ys(c.getMonth()+1,v,2)}function $b(c,v){return ys(c.getMinutes(),v,2)}function Xb(c,v){return ys(c.getSeconds(),v,2)}function Yb(c){var v=c.getDay();return 0===v?7:v}function Kb(c,v){return ys(Nb.count($p(c)-1,c),v,2)}function ef(c){var v=c.getDay();return v>=4||0===v?wu(c):wu.ceil(c)}function o_(c,v){return c=ef(c),ys(wu.count($p(c),c)+(4===$p(c).getDay()),v,2)}function Yw(c){return c.getDay()}function a_(c,v){return ys(kg.count($p(c)-1,c),v,2)}function l_(c,v){return ys(c.getFullYear()%100,v,2)}function Zb(c,v){return ys((c=ef(c)).getFullYear()%100,v,2)}function c_(c,v){return ys(c.getFullYear()%1e4,v,4)}function h_(c,v){var i=c.getDay();return ys((c=i>=4||0===i?wu(c):wu.ceil(c)).getFullYear()%1e4,v,4)}function qb(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ys(v/60|0,"0",2)+ys(v%60,"0",2)}function Ag(c,v){return ys(c.getUTCDate(),v,2)}function Qb(c,v){return ys(c.getUTCHours(),v,2)}function tf(c,v){return ys(c.getUTCHours()%12||12,v,2)}function nf(c,v){return ys(1+jm.count(Xp(c),c),v,3)}function Mu(c,v){return ys(c.getUTCMilliseconds(),v,3)}function d_(c,v){return Mu(c,v)+"000"}function u_(c,v){return ys(c.getUTCMonth()+1,v,2)}function p_(c,v){return ys(c.getUTCMinutes(),v,2)}function Ig(c,v){return ys(c.getUTCSeconds(),v,2)}function Km(c){var v=c.getUTCDay();return 0===v?7:v}function f_(c,v){return ys(In.count(Xp(c)-1,c),v,2)}function g_(c){var v=c.getUTCDay();return v>=4||0===v?yd(c):yd.ceil(c)}function Kw(c,v){return c=g_(c),ys(yd.count(Xp(c),c)+(4===Xp(c).getUTCDay()),v,2)}function m_(c){return c.getUTCDay()}function b_(c,v){return ys(Up.count(Xp(c)-1,c),v,2)}function Zw(c,v){return ys(c.getUTCFullYear()%100,v,2)}function v_(c,v){return ys((c=g_(c)).getUTCFullYear()%100,v,2)}function qw(c,v){return ys(c.getUTCFullYear()%1e4,v,4)}function y_(c,v){var i=c.getUTCDay();return ys((c=i>=4||0===i?yd(c):yd.ceil(c)).getUTCFullYear()%1e4,v,4)}function x_(){return"+0000"}function Jb(){return"%"}function Og(c){return+c}function Du(c){return Math.floor(+c/1e3)}function Eu(c){return null===c?NaN:+c}!function __(c){(function Qx(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Tu(W),gt=Su(W),Dt=Tu(ce),Pt=Su(ce),Ut=Tu(De),Zt=Su(De),hi=Tu(Ve),Yt=Su(Ve),di=Tu(qe),wi=Su(qe),gi={a:function Ei(Ii){return De[Ii.getDay()]},A:function ji(Ii){return ce[Ii.getDay()]},b:function Wi(Ii){return qe[Ii.getMonth()]},B:function Nn(Ii){return Ve[Ii.getMonth()]},c:null,d:Ym,e:Ym,f:s_,g:Zb,G:h_,H:t_,I:i_,j:n_,L:Wb,m:r_,M:$b,p:function ts(Ii){return W[+(Ii.getHours()>=12)]},q:function Wn(Ii){return 1+~~(Ii.getMonth()/3)},Q:Og,s:Du,S:Xb,u:Yb,U:Kb,V:o_,w:Yw,W:a_,x:null,X:null,y:l_,Y:c_,Z:qb,"%":Jb},ki={a:function Yr(Ii){return De[Ii.getUTCDay()]},A:function ds(Ii){return ce[Ii.getUTCDay()]},b:function Kr(Ii){return qe[Ii.getUTCMonth()]},B:function Ll(Ii){return Ve[Ii.getUTCMonth()]},c:null,d:Ag,e:Ag,f:d_,g:v_,G:y_,H:Qb,I:tf,j:nf,L:Mu,m:u_,M:p_,p:function is(Ii){return W[+(Ii.getUTCHours()>=12)]},q:function Zr(Ii){return 1+~~(Ii.getUTCMonth()/3)},Q:Og,s:Du,S:Ig,u:Km,U:f_,V:Kw,w:m_,W:b_,x:null,X:null,y:Zw,Y:qw,Z:x_,"%":Jb},Bi={a:function Ln(Ii,gn,Vn){var xi=Ut.exec(gn.slice(Vn));return xi?(Ii.w=Zt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},A:function Ui(Ii,gn,Vn){var xi=Dt.exec(gn.slice(Vn));return xi?(Ii.w=Pt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},b:function Un(Ii,gn,Vn){var xi=di.exec(gn.slice(Vn));return xi?(Ii.m=wi.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},B:function Ri(Ii,gn,Vn){var xi=hi.exec(gn.slice(Vn));return xi?(Ii.m=Yt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},c:function Ji(Ii,gn,Vn){return ln(Ii,v,gn,Vn)},d:zb,e:zb,f:Qp,g:Zp,G:Um,H:Gb,I:Gb,j:$m,L:ku,m:e_,M:qp,p:function ps(Ii,gn,Vn){var xi=et.exec(gn.slice(Vn));return xi?(Ii.p=gt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},q:fh,Q:Jp,s:Ub,S:Hb,u:Hm,U:Xw,V:jb,w:Eg,W:Vb,x:function Qs(Ii,gn,Vn){return ln(Ii,i,gn,Vn)},X:function yi(Ii,gn,Vn){return ln(Ii,m,gn,Vn)},y:Zp,Y:Um,Z:Wm,"%":Xm};function Mi(Ii,gn){return function(Vn){var Yo,mn,ur,xi=[],dr=-1,Es=0,Xo=Ii.length;for(Vn instanceof Date||(Vn=new Date(+Vn));++dr53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Xo=(Es=zm(Kp(xi.y,0,1))).getUTCDay(),Es=Xo>4||0===Xo?Up.ceil(Es):Up(Es),Es=jm.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Xo=(Es=Yp(Kp(xi.y,0,1))).getDay(),Es=Xo>4||0===Xo?kg.ceil(Es):kg(Es),Es=Mg.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Xo="Z"in xi?zm(Kp(xi.y,0,1)).getUTCDay():Yp(Kp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Xo+5)%7:xi.w+7*xi.U-(Xo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,zm(xi)):Yp(xi)}}function ln(Ii,gn,Vn,xi){for(var Yo,mn,dr=0,Es=gn.length,Xo=Vn.length;dr=Xo)return-1;if(37===(Yo=gn.charCodeAt(dr++))){if(Yo=gn.charAt(dr++),!(mn=Bi[Yo in Bb?gn.charAt(dr++):Yo])||(xi=mn(Ii,Vn,xi))<0)return-1}else if(Yo!=Vn.charCodeAt(xi++))return-1}return xi}return gi.x=Mi(i,gi),gi.X=Mi(m,gi),gi.c=Mi(v,gi),ki.x=Mi(i,ki),ki.X=Mi(m,ki),ki.c=Mi(v,ki),{format:function(Ii){var gn=Mi(Ii+="",gi);return gn.toString=function(){return Ii},gn},parse:function(Ii){var gn=an(Ii+="",!1);return gn.toString=function(){return Ii},gn},utcFormat:function(Ii){var gn=Mi(Ii+="",ki);return gn.toString=function(){return Ii},gn},utcParse:function(Ii){var gn=an(Ii+="",!0);return gn.toString=function(){return Ii},gn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const nv=gg(Nr).right,sv=(gg(Eu),nv);function w_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function S_(c){return+c}var rv=[0,1];function Uh(c){return c}function _d(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function T_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function Pg(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Lg:Pg,qe=et=null,Dt}function Dt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Dt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Go)))(Pt)))},Dt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,S_),gt()):c.slice()},Dt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Dt.rangeRound=function(Pt){return v=Array.from(Pt),i=w_,gt()},Dt.clamp=function(Pt){return arguments.length?(De=!!Pt||Uh,gt()):De!==Uh},Dt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Dt.unknown=function(Pt){return arguments.length?(ce=Pt,Dt):ce},function(Pt,Ut){return m=Pt,W=Ut,gt()}}()(Uh,Uh)}function Cd(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Qm,O_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function gh(c){if(!(v=O_.exec(c)))throw new Error("invalid format: "+c);var v;return new Au({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function Au(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function af(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Iu(c){return(c=af(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}gh.prototype=Au.prototype,Au.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function P_(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function R_(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Qm=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+af(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function Rg(c){return c}var cf,uv,N_,dv=Array.prototype.map,Jm=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function j_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function Dx(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=mg(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function wd(){var c=ov();return c.copy=function(){return function M_(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,wd())},Cd.apply(c,arguments),j_(c)}function t0(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(dv.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?Rg:function L_(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(dv.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Dt){var Pt=(Dt=gh(Dt)).fill,Ut=Dt.align,Zt=Dt.sign,hi=Dt.symbol,Yt=Dt.zero,di=Dt.width,wi=Dt.comma,gi=Dt.precision,ki=Dt.trim,Bi=Dt.type;"n"===Bi?(wi=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Yt||"0"===Pt&&"="===Ut)&&(Yt=!0,Pt="0",Ut="=");var Mi="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",an="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Ln(Ui){var Ji,Qs,yi,Un=Mi,Ri=an;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function lf(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?Jm[8+Qm/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Qs=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}wi&&!Yt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Ln.toString=function(){return Dt+""},Ln}return{format:et,formatPrefix:function gt(Dt,Pt){var Ut=et(((Dt=gh(Dt)).type="f",Dt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Iu(Pt)/3))),hi=Math.pow(10,-Zt),Yt=Jm[8+Zt/3];return function(di){return Ut(hi*di)+Yt}}}}(c),uv=cf.format,N_=cf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=r0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(s0(this,v))}has(v){return super.has(s0(this,v))}set(v,i){return super.set(function pv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function Wh({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function s0({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function r0(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const Ng=Symbol("implicit");function o0(){var c=new n0,v=[],i=[],m=Ng;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==Ng)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return o0(v,i).unknown(m)},Cd.apply(W,arguments),W}function Fg(){var ce,De,c=o0().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Dt(){var Pt=v().length,Ut=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function hf(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?df:c<=-1?-df:Math.asin(c)}const kd=Math.PI,h0=2*kd,Md=1e-6,G_=h0-Md;function mv(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return mv;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;WMd)if(Math.abs(Dt*qe-et*gt)>Md&&ce){let Ut=m-De,Zt=W-Ve,hi=qe*qe+et*et,Yt=Ut*Ut+Zt*Zt,di=Math.sqrt(hi),wi=Math.sqrt(Pt),gi=ce*Math.tan((kd-Math.acos((hi+Pt-Yt)/(2*di*wi)))/2),ki=gi/wi,Bi=gi/di;Math.abs(ki-1)>Md&&this._append`L${v+ki*gt},${i+ki*Dt}`,this._append`A${ce},${ce},0,0,${+(Dt*Ut>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Dt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>Md||Math.abs(this._y1-gt)>Md)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%h0+h0),Pt>G_?this._append`A${m},${m},0,1,${Dt},${v-Ve},${i-qe}A${m},${m},0,1,${Dt},${this._x1=et},${this._y1=gt}`:Pt>Md&&this._append`A${m},${m},0,${+(Pt>=kd)},${Dt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function W_(c){return c.innerRadius}function $_(c){return c.outerRadius}function bv(c){return c.startAngle}function vv(c){return c.endAngle}function d0(c){return c&&c.padAngle}function Gg(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/kc(Ve*Ve+qe*qe),gt=et*qe,Dt=-et*Ve,Pt=c+gt,Ut=v+Dt,Zt=i+gt,hi=m+Dt,Yt=(Pt+Zt)/2,di=(Ut+hi)/2,wi=Zt-Pt,gi=hi-Ut,ki=wi*wi+gi*gi,Bi=W-ce,Mi=Pt*hi-Zt*Ut,an=(gi<0?-1:1)*kc(c0(0,Bi*Bi*ki-Mi*Mi)),ln=(Mi*gi-wi*an)/ki,ps=(-Mi*wi-gi*an)/ki,Ln=(Mi*gi+wi*an)/ki,Ui=(-Mi*wi+gi*an)/ki,Un=ln-Yt,Ri=ps-di,Ji=Ln-Yt,Qs=Ui-di;return Un*Un+Ri*Ri>Ji*Ji+Qs*Qs&&(ln=Ln,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Dt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function Hg(){var c=W_,v=$_,i=Wo(0),m=null,W=bv,ce=vv,De=d0,Ve=null,qe=function zg(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Vg(v)}(et);function et(){var gt,Dt,Pt=+c.apply(this,arguments),Ut=+v.apply(this,arguments),Zt=W.apply(this,arguments)-df,hi=ce.apply(this,arguments)-df,Yt=Ou(hi-Zt),di=hi>Zt;if(Ve||(Ve=gt=qe()),UtJa)if(Yt>uf-Ja)Ve.moveTo(Ut*Sd(Zt),Ut*So(Zt)),Ve.arc(0,0,Ut,Zt,hi,!di),Pt>Ja&&(Ve.moveTo(Pt*Sd(hi),Pt*So(hi)),Ve.arc(0,0,Pt,hi,Zt,di));else{var Ri,Ji,wi=Zt,gi=hi,ki=Zt,Bi=hi,Mi=Yt,an=Yt,ln=De.apply(this,arguments)/2,ps=ln>Ja&&(m?+m.apply(this,arguments):kc(Pt*Pt+Ut*Ut)),Ln=jg(Ou(Ut-Pt)/2,+i.apply(this,arguments)),Ui=Ln,Un=Ln;if(ps>Ja){var Qs=gv(ps/Pt*So(ln)),yi=gv(ps/Ut*So(ln));(Mi-=2*Qs)>Ja?(ki+=Qs*=di?1:-1,Bi-=Qs):(Mi=0,ki=Bi=(Zt+hi)/2),(an-=2*yi)>Ja?(wi+=yi*=di?1:-1,gi-=yi):(an=0,wi=gi=(Zt+hi)/2)}var Ei=Ut*Sd(wi),ji=Ut*So(wi),Wi=Pt*Sd(Bi),Nn=Pt*So(Bi);if(Ln>Ja){var Kr,ts=Ut*Sd(gi),Wn=Ut*So(gi),Yr=Pt*Sd(ki),ds=Pt*So(ki);if(Yt<$h)if(Kr=function yv(c,v,i,m,W,ce,De,Ve){var qe=i-c,et=m-v,gt=De-W,Dt=Ve-ce,Pt=Dt*qe-gt*et;if(!(Pt*Pt1?0:c<-1?$h:Math.acos(c)}((Ll*Zr+is*Ii)/(kc(Ll*Ll+is*is)*kc(Zr*Zr+Ii*Ii)))/2),Vn=kc(Kr[0]*Kr[0]+Kr[1]*Kr[1]);Ui=jg(Ln,(Pt-Vn)/(gn-1)),Un=jg(Ln,(Ut-Vn)/(gn+1))}else Ui=Un=0}an>Ja?Un>Ja?(Ri=Gg(Yr,ds,Ei,ji,Ut,Un,di),Ji=Gg(ts,Wn,Wi,Nn,Ut,Un,di),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),UnJa&&Mi>Ja?Ui>Ja?(Ri=Gg(Wi,Nn,ts,Wn,Pt,-Ui,di),Ji=Gg(Ei,ji,Yr,ds,Pt,-Ui,di),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function X_(c){return c}var u0=He(76021);const p0=["caretElm"],wv=c=>({model:c});function f0(c,v){}function g0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,f0,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,wv,i.context))}}function Z_(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function q_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function Q_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Tv=["*"];function Sv(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function m0(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const d1=["ngx-charts-svg-radial-gradient",""];function fT(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const f1=["ngx-charts-count-up",""];function Vv(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function mT(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function m1(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function zv(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function v0(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function b1(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function v1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,m1,1,2,"div",11)(3,zv,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,v0,1,2,"div",14)(7,b1,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const y1=["tooltipTemplate"],ff=(c,v)=>[c,v],sy=["ngx-charts-pie-label",""],Bu=["ngx-charts-pie-arc",""];function ju(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Vu=["ngx-charts-pie-series",""];function zu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Gu(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,zu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function my(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function dS(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:my(ce.value,c,v)}),this[W]}}}}var Hn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Hn||{});function qg(c,v,i){return i===Hn.Top?c.top-7:i===Hn.Bottom?c.top+c.height-v.height+7:i===Hn.Center?c.top+c.height/2-v.height/2:void 0}function Qg(c,v,i){return i===Hn.Left?c.left-7:i===Hn.Right?c.left+c.width-v.width+7:i===Hn.Center?c.left+c.width/2-v.width/2:void 0}class hr{static calculateVerticalAlignment(v,i,m){let W=qg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Hn.Top&&(ce=v.height/2-m.height/2+7),W===Hn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Hn.Center&&(ce=i.height/2-m.height/2);const De=qg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Qg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Hn.Left&&(ce=v.width/2-m.width/2+7),W===Hn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Hn.Center&&(ce=i.width/2-m.width/2);const De=Qg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Hn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Hn.Left&&v.left-i.width-W<0&&(ce=!0),m===Hn.Top&&v.top-i.height-W<0&&(ce=!0),m===Hn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=-7,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Left?(Ve=i.width,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Top?(De=i.height,Ve=hr.calculateHorizontalCaret(m,i,W,ce)):v===Hn.Bottom&&(De=-7,Ve=hr.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=m.left+m.width+W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Left?(Ve=m.left-i.width-W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Top?(De=m.top-i.height-W,Ve=hr.calculateHorizontalAlignment(m,i,ce)):v===Hn.Bottom&&(De=m.top+m.height+W,Ve=hr.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(hr.shouldFlip(m,i,v,W)){if(v===Hn.Right)return Hn.Left;if(v===Hn.Left)return Hn.Right;if(v===Hn.Top)return Hn.Bottom;if(v===Hn.Bottom)return Hn.Top}return v}}let rC=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Zi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=hr.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=hr.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=hr.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(p0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,g0,2,4,"span",3)(5,Z_,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Zi.bT,Zi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,We.Cg)([dS(100)],c.prototype,"onWindowResize",null),c})();class by{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let Pl=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function Dc(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new cc(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new Dn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),el=(()=>{class c extends by{constructor(i){super(i),this.type=rC}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(Pl))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Od=function(c){return c.Right="right",c.Below="below",c}(Od||{}),Uu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Uu||{}),wn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(wn||{});let vy=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function Df(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Jg=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Wu=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=Df(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,q_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,Q_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Jg,Zi.bT,Zi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),yy=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Od,this.LegendType=Uu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Od.Right)&&(i=this.legendType===Uu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Od.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===wn.Linear?Uu.ScaleLegend:Uu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([el]),e.OA$],ngContentSelectors:Tv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Sv,1,5,"ngx-charts-scale-legend",2)(4,m0,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[vy,Wu,Zi.bT],encapsulation:2,changeDetection:0}),c})(),xy=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function _y(c){return"[object Date]"===toString.call(c)}let I0=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=wn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Zi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new xy(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Zi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function wy(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var P0=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(P0||{});let Ty=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD]]}),c})();var Ef=function(c){return c.popover="popover",c.tooltip="tooltip",c}(Ef||{}),$u=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}($u||{});let L0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Hn.Top,this.tooltipAlignment=Hn.Center,this.tooltipType=Ef.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=$u.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.focus}get listensForHover(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(el),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),em=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[Pl,el],imports:[[Zi.MD]]}),c})();const Sy={};function Pd(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,Sy[c]?Pd():(Sy[c]=!0,c)}var Ec=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(Ec||{});let N0=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:d1,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,fT,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Zi.Sq],encapsulation:2,changeDetection:0}),c})();function F0(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function B0(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Dt;function Pt(Ut){let Zt;const hi=Ut-Dt;Zt=Ve?ce-F0(hi,0,ce-De,gt):F0(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Yt=hiPt(di))}return requestAnimationFrame(Ut=>(Dt=Ut,Pt(Ut)))}let Of,My=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function dC(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=B0(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:f1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?Of=window:typeof global<"u"&&(Of=global);let V0=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=Df(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:wy(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,Vv,1,2,"div",1)(2,mT,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,v1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[My,Zi.bT,Zi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),tl=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD,Ty,em],Zi.MD,Ty,em]}),c})();const Pf=[{name:"vivid",selectable:!0,group:wn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:wn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:wn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:wn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:wn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:wn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:wn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:wn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:wn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:wn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:wn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:wn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:wn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:wn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:wn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class nm{constructor(v,i,m,W){"string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),i){case wn.Quantile:W=hf().range(v.domain).domain(m);break;case wn.Ordinal:W=o0().range(v.domain).domain(m);break;case wn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=t0(0,1,1/ce.length);W=wd().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===wn.Linear){const i=wd().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=wd().domain(this.domain).range([0,1]),W=Fg().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Dt=[];for(Dt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Dt.push({color:Pt,offset:Ut,opacity:1}),gt=Ut,et++}}if(Dt[Dt.length-1].offset<100&&Dt.push({color:ce,offset:qe,opacity:1}),qe===De)Dt[0].offset=0,Dt[1].offset=100;else if(100!==Dt[Dt.length-1].offset)for(const Pt of Dt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Dt}}let Ku=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),da=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})();u0();let Py=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),CC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),W0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),SC=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=wy}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Zi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=Hg().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=Ec,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Pd().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),Hg().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=qa(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Bu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,ju,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[N0,Zi.bT],encapsulation:2,changeDetection:0}),c})(),Ly=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Hn,this.styleTypes=Ef}ngOnChanges(i){this.update()}update(){const m=function Y_(){var c=X_,v=Cv,i=null,m=Wo(0),W=Wo(uf),ce=Wo(0);function De(Ve){var qe,gt,Dt,di,ki,et=(Ve=function _v(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Ut=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Yt=Math.min(uf,Math.max(-uf,W.apply(this,arguments)-hi)),wi=Math.min(Math.abs(Yt)/et,ce.apply(this,arguments)),gi=wi*(Yt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Ut.sort(function(Bi,Mi){return v(Zt[Bi],Zt[Mi])}):null!=i&&Ut.sort(function(Bi,Mi){return i(Ve[Bi],Ve[Mi])}),qe=0,Dt=Pt?(Yt-et*gi)/Pt:0;qe0?ki*Dt:0)+gi,padAngle:wi};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:Wo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:Wo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:Wo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:Wo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function K_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return Hg().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return Df(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=Df(i.data.value);return`\n ${function A0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Vu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Gu,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[SC,kC,Zi.Sq,Zi.bT,L0],encapsulation:2,changeDetection:0}),c})(),Nf=(()=>{class c extends I0{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function uC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=wn.Ordinal,legendPosition:Dt=Od.Right,columns:Pt=12}){let Ut=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Dt===Od.Right&&(Pt-=gt===wn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Ut+=De,Ut+=10,qe&&(Zt-=30,Ut+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Ut)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new nm(this.scheme,wn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,y1,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,ff,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[yy,Ly,V0],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),$0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Ny=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,W0]]}),c})(),IC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),PC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Fy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,da]]}),c})(),Ff=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),NC=(()=>{class c{constructor(){!function RC(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[tl,Ku,da,Py,_C,CC,Ff,W0,Ny,IC,$0,PC,Fy]}),c})();var lm=He(91346),By=He(12168),BC=He(38833),cm=He(46247),jC=He(41570);const Y0=()=>({width:"75vw"}),VC=()=>[10,25,50];function jy(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Vy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function zC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function GC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function HC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function K0(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function UC(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const WC=[sn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getStats()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Dt=et._TS;return gt>Dt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new lm.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Nl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Lr.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Pr.c$),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,jy,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Vy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,zC,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,GC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,HC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,K0,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,UC,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,Y0)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,VC))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Zi.bT,Nf,Pr.Mm,lm.S6,cm.XI,yl.Ei,cm.Tg,cm.yc,jC.l,Pr.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Ir.o6)("dashboard")}}])];let $C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forChild(WC),fr.iI]})}return c})(),XC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:lm.SV,useFactory:()=>[By,BC]}],imports:[Bt,NC,$C,Zi.MD,at.X1,Pr.h,lm.Fr,Ks.G]})}return c})(),YC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Zi.MD,Pr.h,rr.UN,at.YN,fr.iI]})}return c})(),KC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Be]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Pr.h.forRoot(),Re,rr.UN,Ir.Ui,Ks.G,YC,XC,ml._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Bn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Bn.JV.TRACKING,trackerUrl:Or.c.trackerUrl,siteId:Or.c.siteId}),Vl,vl]})}return c})();Or.c.production&&(0,e.SmG)(),M.sG().bootstrapModule(KC,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Mt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Mt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Mt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>mo,B3:()=>Ki,Jj:()=>bn,MD:()=>ga,N0:()=>ba,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>er,VF:()=>Z,Vy:()=>ll,XO:()=>r,Xr:()=>sr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>Js,fG:()=>ns,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>os,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Oi=>+Oi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Oi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),es=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Oi,Xn,es),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Oi,ci=[];for(;ut;){if(Oi=Fe.exec(ut),!Oi){ci.push(ut);break}{ci=ci.concat(Oi.slice(1));const as=ci.pop();if(!as)break;ut=as}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function ui(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Jt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let es="";return ci.forEach(as=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Mt(1);break;case"YY":ut=Mt(2,!0);break;case"YYY":ut=Mt(3);break;case"YYYY":ut=Mt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(as);es+=Sn?Sn(Et,Ke,Xn):"''"===as?"'":as.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),es}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Oi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Oi]);break;case"long":const Xn=_e(Ge,"longTime"),es=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,es]);break;case"full":const as=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[as,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Oi>-Ke)&&(Oi+=Ke),Ge===ee.Hours)0===Oi&&-12===Ke&&(Oi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Oi,ut);const Xn=H(ci,g.MinusSign);return Ee(Oi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Oi=Ge.getMinutes();if(qt){const es=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),as=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=es.findIndex(us=>{if(Array.isArray(us)){const[ss,Bs]=us,Rr=ci>=ss.hours&&Oi>=ss.minutes,Gn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Oi=qt.getTime()-ci.getTime();Et=1+Math.round(Oi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Mt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Oi=at.get(qt);at.move(Oi,ci),Ti(Oi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new rs,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class rs{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let os=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),Js=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),ns=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function pr(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,Jr=new Oa;let bn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return Jr;throw pr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const rl=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw pr()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(rl,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=pa}transform(Ke,at=pa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function go(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function pa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const mo="browser",ma="server";function er(Ge){return Ge===mo}function ll(Ge){return Ge===ma}let sr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>er((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new Zo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Ar(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class Zo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class ba{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),os=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:os}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:os,url:Js}=si(),ns=null;cn!==C.NoContent&&(ns=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=ns?C.Ok:0);let Qr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof ns){const nr=ns;ns=ns.replace(Xe,"");try{ns=""!==ns?JSON.parse(ns):null}catch(Ls){ns=nr,Qr&&(Qr=!1,ns={error:Ls,text:ns})}}Qr?($e.next(new l({body:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0})),$e.complete()):$e.error(new d({error:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0}))},Si=Xi=>{const{url:cn}=si(),os=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(os)};let Hi=!1;const rs=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const ui=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:ui,useFactory:he},{provide:R,useExisting:ui,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>fd,iLQ:()=>gw,sZ2:()=>rh,hnV:()=>Jk,Hbi:()=>uA,o8S:()=>qu,BIS:()=>Kl,gRc:()=>uM,Ql9:()=>BE,OM3:()=>lf,Ocv:()=>$E,abz:()=>yc,Z63:()=>Io,aKT:()=>hu,uvJ:()=>xo,zcH:()=>Za,bkB:()=>aa,$GK:()=>bn,nKC:()=>$e,zZn:()=>zo,_q3:()=>ww,MKu:()=>Tw,xe9:()=>Yy,Co$:()=>w1,Vns:()=>Dd,SKi:()=>kr,Xx1:()=>er,Agw:()=>jh,PLl:()=>fu,sFG:()=>R_,_9s:()=>Qm,czy:()=>yg,WPN:()=>dh,kdw:()=>Gr,C4Q:()=>Mu,NYb:()=>IE,giA:()=>qk,RxE:()=>Hk,c1b:()=>zg,gXe:()=>Oo,mal:()=>Fg,Af3:()=>Ge,tdH:()=>dv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>_0,w6W:()=>T1,oH4:()=>lM,QZP:()=>HM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>Qi,hFB:()=>Dp,QuC:()=>vo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>r1,O8t:()=>WA,An2:()=>Au,H3F:()=>Uk,H8p:()=>Ns,KH2:()=>Lf,TgB:()=>gf,wOt:()=>me,WHO:()=>Kk,e01:()=>Zk,lNU:()=>he,h9k:()=>lb,$MX:()=>cg,ZF7:()=>lh,Kcf:()=>lg,e5t:()=>rx,UyX:()=>nx,cWb:()=>ix,osQ:()=>sx,H5H:()=>z0,Zy3:()=>Ce,mq5:()=>fC,JZv:()=>Ze,LfX:()=>fo,plB:()=>Td,jNT:()=>pw,zjR:()=>Qk,TL$:()=>Ap,Tbb:()=>pt,rcV:()=>Al,nM4:()=>Gv,Vt3:()=>v0,Mj6:()=>Zi,GFd:()=>C1,OA$:()=>wl,Jv_:()=>ek,aNF:()=>tk,R7$:()=>Up,BMQ:()=>ay,HbH:()=>by,ZvI:()=>aC,AVh:()=>Qg,vxM:()=>Af,wni:()=>Qs,VBU:()=>Ac,FsC:()=>Lr,jDH:()=>$i,G2t:()=>kn,$C:()=>Fl,EJ8:()=>Ic,rXU:()=>Cu,nrm:()=>j0,eu8:()=>Ey,bVm:()=>nm,qex:()=>Pf,k0s:()=>im,j41:()=>Xu,RV6:()=>pC,xGo:()=>Jd,Mr5:()=>Iy,pXf:()=>ce,KVO:()=>Is,kS0:()=>th,QTQ:()=>yd,bIt:()=>gt,lsd:()=>ji,joV:()=>xp,qSk:()=>yp,XpG:()=>di,nI1:()=>Tk,bMT:()=>Sk,i5U:()=>kk,SdG:()=>ki,NAR:()=>gi,Y8G:()=>Hn,FS9:()=>Bi,Mz_:()=>Mi,lJ4:()=>hk,eq3:()=>dk,l_i:()=>uk,sMw:()=>pk,ziG:()=>fk,s1E:()=>gk,l4e:()=>mk,sGs:()=>bk,zJS:()=>vk,mGM:()=>Ei,sdS:()=>Yr,Dyx:()=>F0,Z7z:()=>N0,fX1:()=>If,Njj:()=>Hc,EBC:()=>Ix,tSv:()=>bg,eBV:()=>Ka,npT:()=>cb,f$h:()=>dg,B4B:()=>Pp,n$t:()=>To,Aen:()=>hr,xc7:()=>qg,zvX:()=>Oy,DNE:()=>bf,C5r:()=>Mk,EFF:()=>WS,JRh:()=>ZC,SpI:()=>Gy,Lme:()=>qC,E5c:()=>QC,LHq:()=>JC,DH7:()=>QS,mxI:()=>tw,R50:()=>ew,GBs:()=>yi}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Mt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Di(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function kn(t){return{providers:t.providers||[],imports:t.imports||[]}}function jr(t){return qr(t,Rt)||qr(t,bt)}function fo(t){return null!==jr(t)}function qr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const os=st({\u0275cmp:st}),Js=st({\u0275dir:st}),ns=st({\u0275pipe:st}),Qr=st({\u0275mod:st}),nr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),Vr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function Jr(t,s){throw new me(-201,!1)}var bn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bn||{});let Ko;function nl(){return Ko}function Gs(t){const s=Ko;return Ko=t,s}function eo(t,s,h){const P=jr(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&bn.Optional?null:void 0!==s?s:void Jr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",ua=/\n/gm,go="__source";let xr;function Dr(t){const s=xr;return xr=t,s}function fa(t,s=bn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?eo(t,void 0,s):xr.get(t,s&bn.Optional?null:void 0,s)}function Is(t,s=bn.Default){return(nl()||fa)(Mt(t),s)}function Qi(t,s=bn.Default){return Is(t,zr(s))}function zr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Do(t){const s=[];for(let h=0;hArray.isArray(h)?Ar(h,s):s(h))}function Zo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function ba(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Xs(t,s,h){let P=Hr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function to(t,s){const h=Hr(t,s);if(h>=0)return t[1|h]}function Hr(t,s){return function ec(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Ks(P))return!1;ke=!0}}}}else{if(!ke&&!Ks(P)&&!Ks(ze))return!1;if(ke&&Ks(ze))continue;ke=!1,P=ze|1&P}}return Ks(P)||ke}function Ks(t){return!(1&t)}function Or(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Ks(ke)&&(s+=tc(ge,Q),Q=""),P=ke,ge=ge||!Ks(P);h++}return""!==Q&&(s+=tc(ge,Q)),s}function Ac(t){return ee(()=>{const s=dl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===hl.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Oo.Emulated,styles:t.styles||Mn,_:null,schemas:t.schemas||null,tView:null,id:""};ul(h);const P=t.dependencies;return h.directiveDefs=pl(P,!1),h.pipeDefs=pl(P,!0),h.id=function ic(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function so(t){return hn(t)||Rs(t)}function Kh(t){return null!==t}function Fl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Mn,declarations:t.declarations||Mn,imports:t.imports||Mn,exports:t.exports||Mn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ys;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Zi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Zi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Lr(t){return ee(()=>{const s=dl(t);return ul(s),s})}function Ic(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[os]||null}function Rs(t){return t[Js]||null}function Ss(t){return t[ns]||null}function vo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function Zs(t,s){const h=t[Qr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function dl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ys,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Mn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function ul(t){t.features?.forEach(s=>s(t))}function pl(t,s){if(!t)return null;const h=s?Ss:so;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Kh)}function za(t){return{\u0275providers:t}}function Bl(...t){return{\u0275providers:fl(0,t),\u0275fromNgModule:!0}}function fl(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Ar(s,ke=>{const Le=ke;nc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Pc(Q,ge),h}function Pc(t,s){for(let h=0;h{s(ge,P)})}}function nc(t,s,h,P){if(!(t=Mt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)nc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Ar(ge.imports,dt=>{nc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Pc(Je,s)}if(!Le){const Je=Er(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Mn},Q),s({provide:qo,useValue:Q,multi:!0},Q),s({provide:Io,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;Po(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function Po(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?Po(h,s):s(h)}const Rc=st({provide:String,useValue:st});function jl(t){return null!==t&&"object"==typeof t&&Rc in t}function Lo(t){return"function"==typeof t}const Ns=new $e(""),Fs={},ea={};let gl;function yo(){return void 0===gl&&(gl=new bo),gl}class xo{}class _a extends xo{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ia(s,ke=>this.processProvider(ke)),this.records.set(ya,_r(void 0,this)),Q.has("environment")&&this.records.set(xo,_r(void 0,this));const ge=this.records.get(Ns);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(qo,Mn,bn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=Dr(this),P=Gs(void 0);try{return s()}finally{Dr(h),Gs(P)}}get(s,h=vr,P=bn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(Vr))return s[Vr](this);P=zr(P);const ge=Dr(this),ke=Gs(void 0);try{if(!(P&bn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Ur(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&jr(s);ze=Je&&this.injectableDefInScope(Je)?_r(Ca(s),Fs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&bn.Self?yo():this.parent).get(s,h=P&bn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ma(t,s,h,P){const Q=t[yr];throw s[go]&&Q.unshift(s[go]),t.message=function al(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(ua,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),Dr(ge)}}resolveInjectorInitializers(){const s=re(null),h=Dr(this),P=Gs(void 0);try{const ge=this.get(Io,Mn,bn.Self);for(const ke of ge)ke()}finally{Dr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Lo(s=Mt(s))?s:Mt(s&&s.provide);const P=function Fc(t){return jl(t)?_r(void 0,t.useValue):_r(ml(t),Fs)}(s);if(!Lo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Fs,!0),Q.factory=()=>Do(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Fs&&(h.value=ea,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ta(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Mt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function Ca(t){const s=jr(t),h=null!==s?s.factory:Er(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function Vl(t){if(t.length>0)throw new me(204,!1);const h=function ir(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function ml(t,s,h){let P;if(Lo(t)){const Q=Mt(t);return Er(Q)||Ca(Q)}if(jl(t))P=()=>Mt(t.useValue);else if(function Nc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Do(t.deps||[]));else if(function tr(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Mt(t.useExisting));else{const Q=Mt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Er(Q)||Ca(Q);P=()=>new Q(...Do(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function ia(t,s){for(const h of t)Array.isArray(h)?ia(h,s):h&&cn(h)?ia(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof _a&&t.assertNotDestroyed();const P=Dr(t),Q=Gs(void 0);try{return s()}finally{Dr(P),Gs(Q)}}function na(){return void 0!==nl()||null!=function pa(){return xr}()}function Ge(t){if(!na())throw new me(-203,!1)}const Gn=0,pi=1,zi=2,Yn=3,gs=4,ks=5,or=6,wa=7,ms=8,gr=9,_o=10,en=11,Ro=12,sc=13,bs=14,Kn=15,Ta=16,zl=17,Co=18,rc=19,Sa=20,No=21,bl=22,Ua=23,sn=25,oc=1,Fo=7,yl=9,js=10;var lc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(lc||{});function mr(t){return Array.isArray(t)&&"object"==typeof t[oc]}function Vs(t){return Array.isArray(t)&&!0===t[oc]}function Gl(t){return!!(4&t.flags)}function sa(t){return t.componentOffset>-1}function xl(t){return!(1&~t.flags)}function Wr(t){return!!t.template}function Bc(t){return!!(512&t[zi])}class Hl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Cl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function wl(){return cc}function cc(t){return t.type.prototype.ngOnChanges&&(t.setInput=tp),Wa}function Wa(){const t=ip(this),s=t?.current;if(s){const h=t.previous;if(h===Ys)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function tp(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=ip(t)||function np(t,s){return t[ed]=s}(t,{previous:Ys,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Hl(Je&&Je.currentValue,h,ze===Ys),Cl(t,s,Q,h)}wl.ngInherit=!0;const ed="__ngSimpleChanges__";function ip(t){return t[ed]||null}const Bo=function(t,s,h){},yh="svg";let op=!1;function Ts(t){for(;Array.isArray(t);)t=t[Gn];return t}function jc(t,s){return Ts(s[t])}function $r(t,s){return Ts(s[t.index])}function xh(t,s){return t.data[s]}function Vc(t,s){return t[s]}function jo(t,s){const h=s[t];return mr(h)?h:h[Gn]}function td(t){return!(128&~t[zi])}function $a(t,s){return null==s?null:t[s]}function ap(t){t[zl]=0}function lp(t){1024&t[zi]||(t[zi]|=1024,td(t)&&Ch(t))}function Gc(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function _h(t){t[_o].changeDetectionScheduler?.notify(1),Gc(t)?Ch(t):64&t[zi]&&(function Vf(){return op}()?(t[zi]|=1024,Ch(t)):t[_o].changeDetectionScheduler?.notify())}function Ch(t){t[_o].changeDetectionScheduler?.notify();let s=Xa(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,td(s));)s=Xa(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[No]&&(t[No]=[]),t[No].push(s)}function Xa(t){const s=t[Yn];return Vs(s)?s[Yn]:s}const on={lFrame:sd(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function hc(){return on.bindingsEnabled}function Ya(){return null!==on.skipHydrationRootTNode}function ni(){return on.lFrame.lView}function xn(){return on.lFrame.tView}function Ka(t){return on.lFrame.contextLView=t,t[ms]}function Hc(t){return on.lFrame.contextLView=null,t}function hs(){let t=Uc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Uc(){return on.lFrame.currentTNode}function ra(){const t=on.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function oa(t,s){const h=on.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return on.lFrame.isParent}function jd(){on.lFrame.isParent=!1}function oo(){const t=on.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function Sl(){return on.lFrame.bindingIndex}function ka(){return on.lFrame.bindingIndex++}function kl(t){const s=on.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function mp(t){on.lFrame.inI18n=t}function bp(t,s){const h=on.lFrame;h.bindingIndex=h.bindingRootIndex=t,Sh(s)}function Sh(t){on.lFrame.currentDirectiveIndex=t}function kh(t){const s=on.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function nd(){return on.lFrame.currentQueryIndex}function Wc(t){on.lFrame.currentQueryIndex=t}function Xf(t){const s=t[pi];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Mh(t,s,h){if(h&bn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&bn.Host||(Q=Xf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=on.lFrame=vp();return P.currentTNode=s,P.lView=t,!0}function Vd(t){const s=vp(),h=t[pi];on.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function vp(){const t=on.lFrame,s=null===t?null:t.child;return null===s?sd(t):s}function sd(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function zd(){const t=on.lFrame;return on.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Gd=zd;function rd(){const t=zd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Xr(){return on.lFrame.selectedIndex}function uc(t){on.lFrame.selectedIndex=t}function Os(){const t=on.lFrame;return xh(t.tView,t.selectedIndex)}function yp(){on.lFrame.currentNamespace=yh}function xp(){!function Hd(){on.lFrame.currentNamespace=null}()}let $c=!0;function Xc(){return $c}function Vo(t){$c=t}function Yc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[zl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,Ml(Le,ge)):Ml(Le,ge)}const pc=-1;class Kc{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function qc(t){return t!==pc}function br(t){return 32767&t}function fc(t,s){let h=function Xd(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let Wl=!0;function Cr(t){const s=Wl;return Wl=t,s}const Qc=255,Dl=5;let Oh=0;const Ma={};function Jc(t,s){const h=gc(t,s);if(-1!==h)return h;const P=s[pi];P.firstCreatePass&&(t.injectorIndex=s.length,Kd(P.data,t),Kd(s,null),Kd(P.blueprint,null));const Q=Zd(t,s),ge=t.injectorIndex;if(qc(Q)){const ke=br(Q),Le=fc(Q,s),ze=Le[pi].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kd(t,s){t.push(0,0,0,0,0,0,0,0,s)}function gc(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zd(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=cd(Q),null===P)return pc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return pc}function Ph(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Oh++);const Q=P&Qc;s.data[t+(Q>>Dl)]|=1<=0?s&Qc:wp:s}(h);if("function"==typeof ge){if(!Mh(s,t,P))return P&bn.Host?Qd(Q,0,P):eh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&bn.Optional)return ke;Jr()}finally{Gd()}}else if("number"==typeof ge){let ke=null,Le=gc(t,s),ze=pc,Je=P&bn.Host?s[Kn][ks]:null;for((-1===Le||P&bn.SkipSelf)&&(ze=-1===Le?Zd(t,s):s[Le+8],ze!==pc&&Cp(P,!1)?(ke=s[pi],Le=br(ze),s=fc(ze,s)):Le=-1);-1!==Le;){const dt=s[pi];if(Da(ge,Le,dt.data)){const Ct=mc(Le,s,h,ke,P,Je);if(Ct!==Ma)return Ct}ze=s[Le+8],ze!==pc&&Cp(P,s[pi].data[Le+8]===Je)&&Da(ge,Le,s)?(ke=dt,Le=br(ze),s=fc(ze,s)):Le=-1}}return Q}function mc(t,s,h,P,Q,ge){const ke=s[pi],Le=ke.data[t+8],dt=El(Le,ke,h,null==P?sa(Le)&&Wl:P!=ke&&!!(3&Le.type),Q&bn.Host&&ge===Le);return null!==dt?wo(s,ke,dt,Le):Ma}function El(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Wr(Ht)&&Ht.type===h)return ze}return null}function wo(t,s,h,P){let Q=t[h];const ge=s.data;if(function Ah(t){return t instanceof Kc}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Cr(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Mh(t,P,bn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Dh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=cc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Cr(Le),ke.resolving=!1,Gd()}}return Q}function Da(t,s,h){return!!(h[s+(t>>Dl)]&1<{const s=t.prototype.constructor,h=s[nr]||ld(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[nr]||ld(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function ld(t){return At(t)?()=>{const s=ld(Mt(t));return s&&s()}:Er(t)}function cd(t){const s=t[pi],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function th(t){return function qd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new bo;static create(h,P){if(Array.isArray(h))return Tp({name:""},P,h,"");{const Q=h.name??"";return Tp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(ya)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function dd(t){return t.ngOriginalError}class Za{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&dd(s);for(;h&&dd(h);)h=dd(h);return h||null}}const ou=new $e("",{providedIn:"root",factory:()=>Qi(Za).handleError.bind(void 0)});let yc=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=tg;static#t=this.__NG_ENV_ID__=h=>h}return t})();class au extends yc{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[No])return;const h=t[No].indexOf(s);-1!==h&&t[No].splice(h,1)}(this._lView,s)}}function tg(){return new au(ni())}function lu(t,s){return oe(t,s)}const Dp=(lu.required=function cu(t){return oe(Se,t)},lu);function bm(){return xc(hs(),ni())}function xc(t,s){return new hu($r(t,s))}let hu=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=bm}return t})();function du(t){return t instanceof hu?t.nativeElement:t}function Go(t){return s=>{setTimeout(t,void 0,s)}}const aa=class ng extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,na()&&(this.destroyRef=Qi(yc,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=Go(ge),Q&&(Q=Go(Q)),ke&&(ke=Go(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function uu(){return this._results[Symbol.iterator]()}class Nh{static#e=Symbol.iterator;get changes(){return this._changes??=new aa}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=Nh.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=uu)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function sr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Poh}),oh="ng",fu=new $e(""),jh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),fd=new $e(""),Kl=new $e("",{providedIn:"root",factory:()=>Ho().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const qi=new $e("",{providedIn:"root",factory:()=>!1});let tn,cr;function nn(t){return function Cn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function co(){if(void 0===cr&&(cr=null,Ze.trustedTypes))try{cr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return cr}function Uo(t){return co()?.createHTML(t)||t}function Aa(t){return co()?.createScriptURL(t)||t}class Sr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class la extends Sr{getTypeName(){return"HTML"}}class gu extends Sr{getTypeName(){return"Style"}}class rg extends Sr{getTypeName(){return"Script"}}class og extends Sr{getTypeName(){return"URL"}}class Ip extends Sr{getTypeName(){return"ResourceURL"}}function Al(t){return t instanceof Sr?t.changingThisBreaksApplicationSecurity:t}function lh(t,s){const h=function ag(t){return t instanceof Sr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function lg(t){return new la(t)}function ix(t){return new gu(t)}function nx(t){return new rg(t)}function sx(t){return new og(t)}function rx(t){return new Ip(t)}function ib(t){const s=new ax(t);return function lx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new ox(s):s}class ox{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class ax{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const cx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function cg(t){return(t=String(t)).match(cx)?t:"unsafe:"+t}function Cc(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function Op(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const nb=Cc("area,br,col,hr,img,wbr"),sb=Cc("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rb=Cc("rp,rt"),vm=Op(nb,Op(sb,Cc("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Op(rb,Cc("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Op(rb,sb)),ym=Cc("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),ob=Op(ym,Cc("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Cc("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),hx=Cc("script,style,template");class dx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=ch(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=px(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=ab(s).toLowerCase();if(!vm.hasOwnProperty(h))return this.sanitizedSomething=!0,!hx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=ab(s).toLowerCase();vm.hasOwnProperty(h)&&!nb.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(fx(s))}}function px(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw xm(s);return s}function ch(t){const s=t.firstChild;if(s&&function ux(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw xm(s);return s}function ab(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function xm(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const hh=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ow=/([^\#-~ |!])/g;function fx(t){return t.replace(/&/g,"&").replace(hh,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Ow,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let hg;function lb(t,s){let h=null;try{hg=hg||ib(t);let P=s?String(s):"";h=hg.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=hg.getInertBodyElement(P)}while(P!==ge);return nn((new dx).sanitizeChildren(_m(h)||h))}finally{if(h){const P=_m(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function _m(t){return"content"in t&&function gx(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var dh=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(dh||{});function cb(t){const s=gd();return s?Uo(s.sanitize(dh.HTML,t)||""):lh(t,"HTML")?Uo(Al(t)):lb(Ho(),Ki(t))}function Pp(t){const s=gd();return s?s.sanitize(dh.URL,t)||"":lh(t,"URL")?Al(t):cg(Ki(t))}function dg(t){const s=gd();if(s)return Aa(s.sanitize(dh.RESOURCE_URL,t)||"");if(lh(t,"ResourceURL"))return Aa(Al(t));throw new me(904,!1)}function To(t,s,h){return function hb(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?dg:Pp}(s,h)(t)}function gd(){const t=ni();return t&&t[_o].sanitizer}const ug=/^>|^->||--!>|)/g,vx="\u200b$1\u200b";const md=new Map;let _x=0;const Lp="__ngContext__";function Nr(t,s){mr(s)?(t[Lp]=s[rc],function wx(t){md.set(t[rc],t)}(s)):t[Lp]=s}function bg(t){return t.ownerDocument.defaultView}function Ix(t){return t.ownerDocument}function ha(t){return t instanceof Function?t():t}var yg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(yg||{});let Dm;function Em(t,s){return Dm(t,s)}function jp(t,s,h,P,Q){if(null!=P){let ge,ke=!1;Vs(P)?ge=P:mr(P)&&(ke=!0,P=P[Gn]);const Le=Ts(P);0===t&&null!==h?null==Q?Bx(s,h,Le):_u(s,h,Le,Q||null,!0):1===t&&null!==h?_u(s,h,Le,Q||null,!0):2===t?function vd(t,s,h){const P=zp(t,s);P&&function Om(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function Hp(t,s,h,P,Q){const ge=h[Fo];ge!==Ts(h)&&jp(s,t,P,ge,Q);for(let Le=js;Les.replace(pg,vx))}(s))}function Am(t,s,h){return t.createElement(s,h)}function zh(t,s){s[_o].changeDetectionScheduler?.notify(1),Nm(t,s,s[en],2,null,null)}function Sb(t,s){const h=t[yl],P=h.indexOf(s);h.splice(P,1)}function Vp(t,s){if(t.length<=js)return;const h=js+s,P=t[h];if(P){const Q=P[Ta];null!==Q&&Q!==t&&Sb(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=ba(t,js+s);!function Rw(t,s){zh(t,s),s[Gn]=null,s[ks]=null}(P[pi],P);const ke=ge[Co];null!==ke&&ke.detachView(ge[pi]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function xg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&Nm(t,s,h,3,null,null),function Tb(t){let s=t[Ro];if(!s)return Im(t[pi],t);for(;s;){let h=null;if(mr(s))h=s[Ro];else{const P=s[js];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)mr(s)&&Im(s[pi],s),s=s[Yn];null===s&&(s=t),mr(s)&&Im(s[pi],s),h=s&&s[gs]}s=h}}(s)}}function Im(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[wa]=null);const Q=s[No];if(null!==Q){s[No]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Oo.None||ge===Oo.Emulated)return null}return $r(P,h)}}function _u(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function Bx(t,s,h){t.appendChild(s,h)}function jx(t,s,h,P,Q){null!==P?_u(t,s,h,P,Q):Bx(t,s,h)}function zp(t,s){return t.parentNode(s)}function Gp(t,s,h){return _g(t,s,h)}function Vx(t,s,h){return 40&t.type?$r(t,h):null}let Mb,_g=Vx;function Pm(t,s){_g=t,Mb=s}function Lm(t,s,h,P){const Q=kb(t,P,s),ge=s[en],Le=Gp(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zesn&&Ab(t,s,sn,!1),Bo(ke?2:0,Q),h(P,Q)}finally{uc(ge),Bo(ke?3:1,Q)}}function Pb(t,s,h){if(Gl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function Yx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Zi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Kx(P,h,Je,Le,ze):Kx(P,h,Je,Le)}return P}function Kx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=$r(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?(Wm(t,h,dt,P,Q),sa(s)&&function Hw(t,s){const h=jo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function Gw(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Mg(t,s,h,P){if(hc()){const Q=null===P?null:{"":-1},ge=function $w(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,Tg(t,h,Q.hostVars,In),Q)}function Tc(t,s,h,P,Q,ge){const ke=$r(t,s);!function Gm(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function ys(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{Ch(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function $b(t){return Yb(t[Ro])}function Xb(t){return Yb(t[gs])}function Yb(t){for(;null!==t&&!Vs(t);)t=t[gs];return t}const Kb=100;function ef(t,s=!0,h=0){const P=t[_o],Q=P.rendererFactory;Q.begin?.();try{!function o_(t,s){Ag(t,s);let h=0;for(;Gc(t);){if(h===Kb)throw new me(103,!1);h++,Ag(t,1)}}(t,h)}catch(ke){throw s&&Zp(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function a_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[_o].inlineEffectRunner?.flush(),Vd(s);let ke=null,Le=null;(function l_(t){return 2!==t.type})(t)&&(Le=function t_(t){return t[Ua]??function i_(t){const s=Ym.pop()??Object.create(Wb);return s.lView=t,s}(t)}(s),ke=L(Le));try{ap(s),function dc(t){return on.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&Ux(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&od(s,Ct,0,null),Eh(s,0)}if(function c_(t){for(let s=$b(t);null!==s;s=Xb(s)){if(!(s[zi]&lc.HasTransplantedViews))continue;const h=s[yl];for(let P=0;P-1&&(Vp(s,P),ba(h,P))}this._attachedToViewContainer=!1}xg(this._lView[pi],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){tf(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){_h(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,ef(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,zh(this._lView[pi],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,_h(this._lView)}}let Mu=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=p_}return t})();const d_=Mu,u_=class extends d_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=qp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new nf(Q)}};function p_(){return Ig(hs(),ni())}function Ig(t,s){return 4&t.type?new u_(s,t,xc(t,s)):null}let qm=()=>null;function gh(t,s){return qm(t,s)}class Au{}class P_{}class af{}class L_{resolveComponentFactory(s){throw function Iu(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let lf=(()=>{class t{static#e=this.NULL=new L_}return t})();class Qm{}let R_=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function cv(){const t=ni(),h=jo(hs().index,t);return(mr(h)?h:t)[en]}()}return t})(),hv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Rg={};function dv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const Jm=new Set;function Sc(t){Jm.has(t)||(Jm.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function cf(...t){}class kr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new aa(!1),this.onMicrotaskEmpty=new aa(!1),this.onStable=new aa(!1),this.onError=new aa(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function uv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function j_(t){const s=()=>{!function B_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,wd(t),t.isCheckStableRunning=!0,e0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),wd(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function s0(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return t0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),n0(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return t0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),n0(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,wd(t),e0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(kr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,F_,cf,cf);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const F_={};function e0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function wd(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function t0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function n0(t){t._nesting--,e0(t)}class V_{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new aa,this.onMicrotaskEmpty=new aa,this.onStable=new aa,this.onError=new aa}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Wh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Wh||{});const r0={destroy(){}};function Fg(t,s){!s&&Ge();const h=s?.injector??Qi(zo);if(!function bd(t){return"browser"===(t??Qi(zo)).get(jh)}(h))return r0;Sc("NgAfterNextRender");const P=h.get(Bg),Q=P.handler??=new fv,ge=s?.phase??Wh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(yc).onDestroy(ke),ze=Ha(h,()=>new a0(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class a0{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=Qi(kr),this.errorHandler=Qi(Za,{optional:!0}),Qi(Au,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class fv{constructor(){this.executingCallbacks=!1,this.buckets={[Wh.EarlyRead]:new Set,[Wh.Write]:new Set,[Wh.MixedReadWrite]:new Set,[Wh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let Bg=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function Td(t){return!!Zs(t)}function $h(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Gx(t,h,ge.join(" "))}}(Ht,Mo,li,P),void 0!==h&&function U_(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=W_}return t})();function W_(){return yv(hs(),ni())}const $_=zg,bv=class extends $_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return xc(this._hostTNode,this._hostLView)}get injector(){return new ar(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zd(this._hostTNode,this._hostLView);if(qc(s)){const h=fc(s,this._hostLView),P=br(s);return new ar(h[pi].data[P+8],h)}return new ar(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=vv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-js}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=gh(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,ku(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Oi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new kd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(xo,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=gh(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,ku(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Hf(t){return Vs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new bv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Qp(ke,Q,ge,P),s.attachToViewContainerRef(),Zo(d0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=vv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);P&&(ba(d0(this._lContainer),h),xg(P[pi],P))}detach(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);return P&&null!=ba(d0(this._lContainer),h)?new nf(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function vv(t){return t[8]}function d0(t){return t[8]||(t[8]=[])}function yv(t,s){let h;const P=s[t.index];return Vs(P)?h=P:(h=Tu(P,s,null,t),s[t.index]=h,Eg(s,h)),Hg(h,s,t,P),new bv(h,t,s)}let Hg=function Cv(t,s,h,P){if(t[Fo])return;let Q;Q=8&h.type?Ts(P):function Gg(t,s){const h=t[en],P=h.createComment(""),Q=$r(s,t);return _u(h,zp(h,Q),P,function jw(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Fo]=Q},xv=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=js;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=o1.bind(h),h}function o1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function a1(t){return function s1(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function zv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Wr(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=y0(t.inputs),ke.inputTransforms=y0(t.inputTransforms),ke.declaredInputs=y0(t.declaredInputs),ke.outputs=y0(t.outputs);const Le=Q.hostBindings;Le&&ff(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&y1(t,ze),Je&&bT(t,Je),b1(t,Q),kt(t.outputs,Q.outputs),Wr(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function b1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function y0(t){return t===Ys?{}:t===Mn?[]:t}function y1(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function bT(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function ff(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function Gv(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Mt(Q),inputs:Ys,outputs:Ys}:{directive:Mt(Q.directive),inputs:Hv(Q.inputs),outputs:Hv(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=x1,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function x1(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);_T(Q.declaredInputs,P.inputs),x1(Q,s,h),h.set(Q,P),s.push(Q)}}function Hv(t){if(void 0===t||0===t.length)return Ys;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Uv extends w1{constructor(s){super(),this.moduleType=s}create(s){return new x0(this.moduleType,s,[])}}class S1 extends Dd{constructor(s){super(),this.componentFactoryResolver=new df(this),this.instance=null;const h=new _a([...s.providers,{provide:Dd,useValue:this},{provide:lf,useValue:this.componentFactoryResolver}],s.parent||yo(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function _0(t,s,h=null){return new S1({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let gf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $g(t){return!!Wv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Wv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function mh(t,s,h){return t[s]=h}function mf(t,s){return t[s]}function Fr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Ed(t,s,h,P){const Q=Fr(t,s,h);return Fr(t,s+1,P)||Q}function C0(t,s,h,P,Q){const ge=Ed(t,s,h,P);return Fr(t,s+2,Q)||ge}function Ql(t,s,h,P,Q,ge){const ke=Ed(t,s,h,P);return Ed(t,s+2,Q,ge)||ke}function bf(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=xn(),dt=t+sn,Ct=Je.firstCreatePass?function k1(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Wp(s,t,4,ke||null,$a(Je,Le));Mg(s,h,dt,$a(Je,ze)),Yc(s,dt);const Ct=dt.tView=Rb(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];oa(Ct,!1);const jt=$v(Je,ze,Ct,t);Xc()&&Lm(Je,ze,jt,Ct),Nr(jt,ze);const Ht=Tu(jt,ze,jt,Ct);return ze[dt]=Ht,Eg(ze,Ht),function _v(t,s,h){return xv(t,s,h)}(Ht,Ct,ze),xl(Ct)&&Lb(Je,ze,Ct),null!=ke&&Sg(ze,Ct,Le),bf}let $v=function M1(t,s,h,P){return Vo(!0),s[en].createComment("")};function ay(t,s,h,P){const Q=ni();return Fr(Q,ka(),s)&&(xn(),Tc(Os(),Q,t,s,h,P)),ay}function Tf(t,s,h,P){return Fr(t,ka(),h)?s+Ki(h)+P:In}function D0(t,s){return t<<17|s<<2}function Id(t){return t>>17&32767}function py(t){return 2|t}function Hu(t){return(131068&t)>>2}function E0(t,s){return-131069&t|s<<2}function fy(t){return 1|t}function eC(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Id(Q):Hu(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];sS(t[ke],s)&&(Le=!0,t[ke+1]=P?fy(Je):py(Je)),ke=P?Id(Je):Hu(Je)}Le&&(t[h+1]=P?py(Q):fy(Q))}function sS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Hr(t,s)>=0}const po={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function tC(t){return t.substring(po.key,po.keyEnd)}function rS(t){return t.substring(po.value,po.valueEnd)}function iC(t,s){const h=po.textEnd;return h===s?-1:(s=po.keyEnd=function lS(t,s,h){for(;s32;)s++;return s}(t,po.key=s,h),Mf(t,s,h))}function nC(t,s){const h=po.textEnd;let P=po.key=Mf(t,s,h);return h===P?-1:(P=po.keyEnd=function cS(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=gy(t,P,h),P=po.value=Mf(t,P,h),P=po.valueEnd=function hS(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),gy(t,P,h))}function sC(t){po.key=0,po.keyEnd=0,po.value=0,po.valueEnd=0,po.textEnd=t.length}function Mf(t,s,h){for(;s=0;h=nC(s,h))xy(t,tC(s),rS(s))}function by(t){el(_y,Dc,t,!0)}function Dc(t,s){for(let h=function oS(t){return sC(t),iC(t,Mf(t,0,po.textEnd))}(s);h>=0;h=iC(s,h))Xs(t,tC(s),!0)}function Pl(t,s,h,P){const Q=ni(),ge=xn(),ke=kl(2);ge.firstUpdatePass&&Uu(ge,t,ke,P),s!==In&&Fr(Q,ke,s)&&I0(ge,ge.data[Xr()],Q,Q[en],t,Q[ke+1]=function wy(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(Al(t)))),t}(s,h),P,ke)}function el(t,s,h,P){const Q=xn(),ge=kl(2);Q.firstUpdatePass&&Uu(Q,null,ge,P);const ke=ni();if(h!==In&&Fr(ke,ge,h)){const Le=Q.data[Xr()];if(oC(Le,P)&&!Od(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Mc(Q,Le,ke,h,P)}else!function uS(t,s,h,P,Q,ge,ke,Le){Q===In&&(Q=Mn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function Uu(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Xr()],ke=Od(t,h);oC(ge,P)&&null===s&&!ke&&(s=!1),s=function wn(t,s,h,P){const Q=kh(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Wu(h=Jg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Jg(Q,t,s,h,P),null===ge){let ze=function vy(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Hu(P))return t[Id(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Jg(null,t,s,ze[1],P),ze=Wu(ze,s.attrs,P),function Df(t,s,h,P){t[Id(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function A0(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Id(t[Le+1]);t[P+1]=D0(jt,Le),0!==jt&&(t[jt+1]=E0(t[jt+1],P)),t[Le+1]=function tS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=D0(Le,0),0!==Le&&(t[Le+1]=E0(t[Le+1],P)),Le=P;else t[P+1]=D0(ze,0),0===Le?Le=P:t[ze+1]=E0(t[ze+1],P),ze=P;Je&&(t[P+1]=py(t[P+1])),eC(t,dt,P,!0),eC(t,dt,P,!1),function nS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Hr(ge,s)>=0&&(h[P+1]=fy(h[P+1]))}(s,dt,t,P,ge),ke=D0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Jg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===In&&(jt=Ct?Mn:void 0);let Ht=Ct?to(jt,P):dt===P?jt:void 0;if(Je&&!O0(Ht)&&(Ht=to(ze,P)),O0(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Id(Kt):Hu(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=to(ze,P))}return Le}function O0(t){return void 0!==t}function oC(t,s){return!!(t.flags&(s?8:16))}function aC(t,s,h){el(Xs,Dc,Tf(ni(),t,s,h),!0)}class L0{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function em(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function Pd(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Ec(t,s,h,P,Q){if(Pd(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function tm(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class R0{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Af(t,s,h){Sc("NgControlFlow");const P=ni(),Q=ka(),ge=B0(P,sn+t);if(Fr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=Of(P[pi],sn+s),Je=gh(ge,ze.tView.ssrId);Qp(ge,qp(P,ze,h,{dehydratedView:Je}),0,ku(ze,Je))}}finally{re(Le)}}else{const Le=Hb(ge,0);void 0!==Le&&(Le[ms]=h)}}class lC{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-js}}function If(t,s){return s}class cC{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function N0(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Sc("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new cC(Ht,li);Kt[sn+t]=bi,bf(t+1,s,h,P,Q,ge),Ht&&bf(t+2,ze,Je,dt,Ct,jt)}class hC extends L0{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-js}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[or];this.needsIndexUpdate||=s!==this.length,Qp(this.lContainer,h,s,ku(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function dC(t,s){return Vp(t,s)}(this.lContainer,s)}create(s,h){const P=gh(this.lContainer,this.templateTNode.tView.ssrId);return qp(this.hostLView,this.templateTNode,new lC(this.lContainer,h,s),{dehydratedView:P})}destroy(s){xg(s[pi],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=ka(),ze=0===ke.length;if(Fr(P,Le,ze)){const Je=h+2,dt=B0(P,Je);if(ze){const Ct=Of(Q,Je),jt=gh(dt,Ct.tView.ssrId);Qp(dt,qp(P,Ct,void 0,{dehydratedView:jt}),0,ku(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function B0(t,s){return t[s]}function Of(t,s){return xh(t,s)}function Xu(t,s,h,P){const Q=ni(),ge=xn(),ke=sn+t,Le=Q[en],ze=ge.firstCreatePass?function Dy(t,s,h,P,Q,ge){const ke=s.consts,ze=Wp(s,t,2,P,$a(ke,Q));return Mg(s,h,ze,$a(ke,ge)),null!==ze.attrs&&$h(ze,ze.attrs,!1),null!==ze.mergedAttrs&&$h(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=V0(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=xl(ze);return oa(ze,!0),Gh(Le,Je,ze),!function Xg(t){return!(32&~t.flags)}(ze)&&Xc()&&Lm(ge,Q,Je,ze),0===function Tl(){return on.lFrame.elementDepthCount}()&&Nr(Je,Q),function id(){on.lFrame.elementDepthCount++}(),dt&&(Lb(ge,Q,ze),Pb(ge,ze,Q)),null!==P&&Sg(Q,ze),Xu}function im(){let t=hs();Bd()?jd():(t=t.parent,oa(t,!1));const s=t;(function Fd(t){return on.skipHydrationRootTNode===t})(s)&&function pp(){on.skipHydrationRootTNode=null}(),function Wf(){on.lFrame.elementDepthCount--}();const h=xn();return h.firstCreatePass&&(Yc(h,t),Gl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function $d(t){return!!(8&t.flags)}(s)&&Mc(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Ih(t){return!!(16&t.flags)}(s)&&Mc(h,s,ni(),s.stylesWithoutHost,!1),im}function j0(t,s,h,P){return Xu(t,s,h,P),im(),j0}let V0=(t,s,h,P,Q,ge)=>(Vo(!0),Am(P,Q,function Ud(){return on.lFrame.currentNamespace}()));function Pf(t,s,h){const P=ni(),Q=xn(),ge=t+sn,ke=Q.firstCreatePass?function uC(t,s,h,P,Q){const ge=s.consts,ke=$a(ge,P),Le=Wp(s,t,8,"ng-container",ke);return null!==ke&&$h(Le,ke,!0),Mg(s,h,Le,$a(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];oa(ke,!0);const Le=Ay(Q,P,ke,t);return P[ge]=Le,Xc()&&Lm(Q,P,Le,ke),Nr(Le,P),xl(ke)&&(Lb(Q,P,ke),Pb(Q,ke,P)),null!=h&&Sg(P,ke),Pf}function nm(){let t=hs();const s=xn();return Bd()?jd():(t=t.parent,oa(t,!1)),s.firstCreatePass&&(Yc(s,t),Gl(t)&&s.queries.elementEnd(t)),nm}function Ey(t,s,h){return Pf(t,s,h),nm(),Ey}let Ay=(t,s,h,P)=>(Vo(!0),wb(s[en],""));function pC(){return ni()}function Iy(t,s,h){const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!0),Iy}function Oy(t,s,h){const P=ni();if(Fr(P,ka(),s)){const ge=xn(),ke=Os();Qa(ge,ke,P,t,s,Um(kh(ge.data),ke,P),h,!0)}return Oy}const Yu=void 0;var CS=["en",[["a","p"],["AM","PM"],Yu],[["AM","PM"],Yu,Yu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yu,"{1} 'at' {0}",Yu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function _S(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let Ku={};function z0(t){const s=function TS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=gC(s);if(h)return h;const P=s.split("-")[0];if(h=gC(P),h)return h;if("en"===P)return CS;throw new me(701,!1)}function fC(t){return z0(t)[Lf.PluralCase]}function gC(t){return t in Ku||(Ku[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),Ku[t]}var Lf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Lf||{});const Rf="en-US",G0={marker:"element"},H0={marker:"ICU"};var da=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(da||{});let mC=Rf;function vC(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?Vx(t,0,h):Ts(h[Q])}function Py(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];xC(P)||ES(P,s)&&null===AS(P)&&_C(P,s.index)}}function xC(t){return!(64&t.type)}function ES(t,s){return xC(s)||t.index>s.index}function AS(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function _C(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Pm(vC,Py),t.insertBeforeIndex=s)}function CC(t,s,h){const P=Ob(t,h,64,null,null);return yC(s,P),P}let Nf=(t,s,h,P)=>(Vo(!0),function Ly(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return wb(P,s);case Node.TEXT_NODE:return Cb(P,s);case Node.ELEMENT_NODE:return Am(P,s,null)}}(t,h,P));function FS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function U0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Mn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[pi].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const X0=/\ufffd(\d+):?\d*\ufffd/gi,jS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,am="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,LC=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,VS=/\uE500/g;function Fy(t,s,h,P,Q,ge,ke){const Le=Tg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function Y0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(jC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function VC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=ib(Ho()).getInertBodyElement(Le),Kt=_m(Ht)||Ht;return Kt?jy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function jy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=Tg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(vm.hasOwnProperty(bi)){K0(ge,G0,bi,Je,Kt),s.data[Kt]=bi;const xs=li.attributes;for(let Mo=0;Mo>>da.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=Nf(t,dt,s[ge],(ke&da.COMMENT)===da.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Xc()),Je&&null!==h&&jt&&_u(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),mp(!0)}function ce(t,s,h){m(t,s,h),function W(){mp(!1)}()}function gt(t,s,h,P){const Q=ni(),ge=xn(),ke=hs();return Ut(ge,Q,Q[en],ke,t,s,P),gt}function Ut(t,s,h,P,Q,ge,ke){const Le=xl(P),Je=t.firstCreatePass&&Vb(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=$r(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?xs=>ke(Ts(xs[P.index])):P.index;let yn=null;if(!ke&&Le&&(yn=function Pt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==yn)(yn.__ngLastListenerFn__||yn).__ngNextListenerFn__=ge,yn.__ngLastListenerFn__=ge,jt=!1;else{ge=hi(P,s,dt,ge,!1);const xs=h.listen(bi,Q,ge);Ct.push(ge,xs),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=hi(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?jo(t.index,s):s);let ze=Zt(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=Zt(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function di(t=1){return function Yf(t){return(on.lFrame.contextLView=function cp(t,s){for(;t>0;)s=s[bs],t--;return s}(t,on.lFrame.contextLView))[ms]}(t)}function wi(t,s){let h=null;const P=function Pr(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Vo(!0),Cb(s[en],P));function ZC(t){return Gy("",t,""),ZC}function Gy(t,s,h){const P=ni(),Q=Tf(P,t,s,h);return Q!==In&&fh(P,Xr(),Q),Gy}function qC(t,s,h,P,Q){const ge=ni(),ke=function Bu(t,s,h,P,Q,ge){const Le=Ed(t,Sl(),h,Q);return kl(2),Le?s+Ki(h)+P+Ki(Q)+ge:In}(ge,t,s,h,P,Q);return ke!==In&&fh(ge,Xr(),ke),qC}function QC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function ju(t,s,h,P,Q,ge,ke,Le){const Je=C0(t,Sl(),h,Q,ke);return kl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:In}(Le,t,s,h,P,Q,ge,ke);return ze!==In&&fh(Le,Xr(),ze),QC}function JC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Vu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=Ql(t,Sl(),h,Q,ke,ze);return kl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:In}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==In&&fh(Je,Xr(),dt),JC}function ew(t,s,h){a1(s)&&(s=s());const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!1),ew}function QS(t,s){const h=a1(t);return h&&t.set(s),h}function tw(t,s){const h=ni(),P=xn(),Q=hs();return Ut(P,h,h[en],Q,t,s),tw}function iw(t,s,h,P,Q){if(t=Mt(t),Array.isArray(t))for(let ge=0;ge>20;if(Lo(t)||!t.multi){const Ht=new Kc(Je,Q,Cu),Kt=sw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Ph(Jc(Le,ke),ge,ze),nw(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=sw(ze,s,dt+jt,Ct),Kt=sw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Ph(Jc(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new Kc(t,h,Cu);return ge.multi=[],ge.index=s,ge.componentProviders=0,JS(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),nw(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else nw(ge,t,Ht>-1?Ht:Kt,JS(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function nw(t,s,h,P){const Q=Lo(s),ge=function xa(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Mt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function JS(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function sw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=xn();if(P.firstCreatePass){const Q=Wr(t);iw(h,P.data,P.blueprint,Q,!0),iw(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=fl(0,h.type),Q=P.length>0?_0([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(xo))})}return t})();function tk(t){Sc("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function hk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===In?mh(Q,P,h?s.call(h):s()):mf(Q,P)}function dk(t,s,h,P){return yk(ni(),oo(),t,s,h,P)}function uk(t,s,h,P,Q){return xk(ni(),oo(),t,s,h,P,Q)}function pk(t,s,h,P,Q,ge){return function _k(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return C0(t,ze,Q,ge,ke)?mh(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):Z0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function fk(t,s,h,P,Q,ge,ke){return function Ck(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return Ql(t,Je,Q,ge,ke,Le)?mh(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):Z0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function gk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=Ql(Je,ze,h,P,Q,ge);return Fr(Je,ze+4,ke)||dt?mh(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):mf(Je,ze+5)}function mk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=Ql(dt,Je,h,P,Q,ge);return Ed(dt,Je+4,ke,Le)||Ct?mh(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):mf(dt,Je+6)}function bk(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=Ql(Ct,dt,h,P,Q,ge);return C0(Ct,dt+4,ke,Le,ze)||jt?mh(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):mf(Ct,dt+7)}function vk(t,s,h,P){return function wk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Er(P.type)),Le=Gs(Cu);try{const ze=Cr(!1),Je=ge();return Cr(ze),function Wn(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Sk(t,s,h){const P=t+sn,Q=ni(),ge=Vc(Q,P);return q0(Q,P)?yk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function kk(t,s,h,P){const Q=t+sn,ge=ni(),ke=Vc(ge,Q);return q0(ge,Q)?xk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function q0(t,s){return t[pi].data[s].pure}function Mk(t,s){return Ig(t,s)}class Hk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Uk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Kk=new $e(""),Zk=new $e("");let uw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,uw||(function OE(t){uw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(kr),Is(qk),Is(Zk))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),qk=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return uw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pw(t){return!!t&&"function"==typeof t.then}function Qk(t){return!!t&&"function"==typeof t.subscribe}const Jk=new $e("");let fw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=Qi(Jk,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(pw(ge))h.push(ge);else if(Qk(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const gw=new $e("");function iM(t,s){return Array.isArray(s)?s.reduce(iM,t):{...t,...s}}let qu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qi(ou),this.afterRenderEffectManager=Qi(Bg),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=Qi(gf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=Qi(xo)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof af;if(!this._injector.get(fw).done)throw!Q&&vo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(lf).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Dd),Je=ke.create(zo.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Kk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),$y(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Kb)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;$y(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(gw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>$y(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $y(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!mw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,ef(t,s,P)}(t,h,s)}function mw(t){return Gc(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Uv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=ha(Zs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new kd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=Qi(kr),this.applicationRef=Qi(qu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=Qi(kr),s=Qi(Za);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=Qi(kr),this.pendingTasks=Qi(gf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yy=new $e("",{providedIn:"root",factory:()=>Qi(Yy,bn.Optional|bn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Rf}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),bw=new $e("");let oM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function pv(t="zone.js",s){return"noop"===t?new V_:"zone.js"===t?new kr(s):t}(P?.ngZone,function rM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function CT(t,s,h){return new x0(t,s,h)}(h.moduleType,this.injector,function sM(t){return[{provide:kr,useFactory:t},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(UE);return()=>{s.initialize()}}},{provide:ou,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Za,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{$y(this._modules,ge),Le.unsubscribe()})}),function tM(t,s,h){try{const P=h();return pw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(fw);return Le.runInitializers(),Le.donePromise.then(()=>(function bC(t){"string"==typeof t&&(mC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(Yy,Rf)||Rf),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=iM({},P);return function VE(t,s,h){const P=new Uv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(qu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(bw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zo))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Qu=null;const aM=new $e("");function lM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=vw();if(!ke||ke.injector.get(aM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Qu&&!Qu.get(aM,!1))throw new me(400,!1);(function eM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Qu=t;const s=t.get(oM);(function hM(t){t.get(fu,null)?.forEach(h=>h())})(t)}(function cM(t=[],s){return zo.create({name:s,providers:[{provide:Ns,useValue:"platform"},{provide:bw,useValue:new Set([()=>Qu=null])},...t]})}(Le,P))}return function KE(t){const s=vw();if(!s)throw new me(401,!1);return s}()}}function vw(){return Qu?.get(oM)??null}function qE(){}let uM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(sa(t)&&!h){const P=jo(t.index,s);return new nf(P,P)}return 47&t.type?new nf(s[Kn],s):null}(hs(),ni(),!(16&~t))}class mM{constructor(){}supports(s){return $g(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new bM),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new bM),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class bM{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function vM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function xM(){return new ww([new mM])}let ww=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:xM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||xM()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function _M(){return new Tw([new yM])}let Tw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:_M});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||_M()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=lM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(qu))};static#t=this.\u0275mod=Fl({type:t});static#i=this.\u0275inj=kn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Sc("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>Qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qi(gf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Za,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function HM(t,s){Sc("NgSignals"),!s?.injector&&Ge();const h=s?.injector??Qi(zo),P=!0!==s?.manualCleanup?h.get(yc):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(uM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[bl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||yo();return new kd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new kd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Er,X1:()=>ja,YN:()=>Qo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>bo,qT:()=>Jl,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(vn){return Bt.onChange(vn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt._handleInput(vn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(vn){return Bt._compositionEnd(vn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Jt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Mt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class ui extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends ui{}const Fn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function zn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function ws(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function Cs(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Di(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Di(ct._rawValidators,Bt),Di(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Di(ct._rawValidators,vt),Di(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const rs=class extends Jt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const Vr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,vn,no){super(),this._changeDetectorRef=vn,this.callSetDisabledState=no,this.control=new rs,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){zn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([Vr]),M.Vt3,M.OA$]})}return ot})(),Jl=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const pr={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt.onChange(vn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([pr]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),rl={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return zn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof rs)(Bt)&&(zn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function kn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function jr(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(vn){return Bt.onSubmit(vn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([rl]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ol={provide:x,useExisting:(0,M.Rfq)(()=>ua)};let ua=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ol]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof ua)}const go={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,vn){super(),this._ngModelWarningConfig=vn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([go]),M.Vt3,M.OA$]})}return ot})();let er=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const cl={provide:F,useExisting:(0,M.Rfq)(()=>Er),multi:!0};let Er=(()=>{class ot extends er{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Eo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([cl]),M.Vt3]})}return ot})(),Ys=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Mn extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let bo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new ui(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new rs(Ye,{...Vi,nonNullable:!0})):new rs(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(vn=>this._createControl(vn));return new Mn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof rs||Ye instanceof Jt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Qo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Mt){return new URL(Mt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Mt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const fe=new M.nKC("");let pe=(()=>{class Mt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Jt=>{Jt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Jt){return this._findPluginFor(wt).addEventListener(_t,wt,Jt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(ui=>ui.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Mt{constructor(_t,wt,Jt,ui={}){this.doc=_t,this.appId=wt,this.nonce=Jt,this.platformId=ui,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(ui),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Jt=>Jt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Jt=>{null!=Jt.textContent&&wt.set(Jt.textContent,Jt)}),wt}return null}changeUsageCount(_t,wt){const Jt=this.styleRef;if(Jt.has(_t)){const ui=Jt.get(_t);return ui.usage+=wt,ui.usage}return Jt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Jt=this.styleNodesInDOM,ui=Jt?.get(wt);if(ui?.parentNode===_t)return Jt.delete(wt),ui.removeAttribute(te),ui;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Jt=this.getStyleElement(_t,wt),ui=this.styleRef,Fi=ui.get(wt)?.elements;Fi?Fi.push(Jt):ui.set(wt,{elements:[Jt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Mt,At){return At.map(_t=>_t.replace(B,Mt))}let z=(()=>{class Mt{constructor(_t,wt,Jt,ui,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Jt,this.removeStylesOnCompDestroy=ui,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Jt=this.getOrCreateRenderer(_t,wt);return Jt instanceof n?Jt.applyToHost(_t):Jt instanceof o&&Jt.applyStyles(),Jt}getOrCreateRenderer(_t,wt){const Jt=this.rendererByCompId;let ui=Jt.get(wt.id);if(!ui){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,_s=this.removeStylesOnCompDestroy,Fn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:ui=new n(vi,Gi,wt,this.appId,_s,Fi,mi,Fn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,Fn);default:ui=new o(vi,Gi,wt,_s,Fi,mi,Fn)}Jt.set(wt.id,ui)}return ui}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class O{constructor(At,_t,wt,Jt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Jt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Jt){if(Jt){_t=Jt+":"+_t;const ui=A[Jt];ui?At.setAttributeNS(ui,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Jt=A[wt];Jt?At.removeAttributeNS(Jt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Jt){Jt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Jt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Mt){return"TEMPLATE"===Mt.tagName&&void 0!==Mt.content}class y extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Jt.id,Jt.styles);for(const _s of Gi){const Fn=document.createElement("style");mi&&Fn.setAttribute("nonce",mi),Fn.textContent=_s,this.shadowRoot.appendChild(Fn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Jt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){const Gi=Jt+"-"+wt.id;super(At,_t,wt,ui,Fi,mi,vi,Gi),this.contentAttr=function _(Mt){return D.replace(B,Mt)}(Gi),this.hostAttr=function b(Mt){return L.replace(B,Mt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Jt){return _t.addEventListener(wt,Jt,!1),()=>this.removeEventListener(_t,wt,Jt)}removeEventListener(_t,wt,Jt){return _t.removeEventListener(wt,Jt)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Mt=>Mt.altKey,control:Mt=>Mt.ctrlKey,meta:Mt=>Mt.metaKey,shift:Mt=>Mt.shiftKey};let k=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return null!=Mt.parseEventName(_t)}addEventListener(_t,wt,Jt){const ui=Mt.parseEventName(wt),Fi=Mt.eventCallback(ui.fullKey,Jt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,ui.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Jt=wt.shift();if(0===wt.length||"keydown"!==Jt&&"keyup"!==Jt)return null;const ui=Mt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const _s=wt.indexOf(Gi);_s>-1&&(wt.splice(_s,1),Fi+=Gi+".")}),Fi+=ui,0!=wt.length||0===ui.length)return null;const vi={};return vi.domEventName=Jt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Jt=d[_t.key]||_t.key,ui="";return wt.indexOf("code.")>-1&&(Jt=_t.code,ui="code."),!(null==Jt||!Jt)&&(Jt=Jt.toLowerCase()," "===Jt?Jt="space":"."===Jt&&(Jt="dot"),l.forEach(Fi=>{Fi!==Jt&&(0,C[Fi])(_t)&&(ui+=Fi+".")}),ui+=Jt,ui===wt)}static eventCallback(_t,wt,Jt){return ui=>{Mt.matchEventFullKeyCode(ui,_t)&&Jt.runGuarded(()=>wt(ui))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Jt=!0)=>{const ui=At.findTestabilityInTree(wt,Jt);if(null==ui)throw new M.wOt(5103,!1);return ui},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Jt=M.JZv.getAllAngularTestabilities();let ui=Jt.length;const Fi=function(){ui--,0==ui&&wt()};Jt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Mt{constructor(_t){}static withServerTransition(_t){return{ngModule:Mt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Mt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Mt})(),he=(()=>{class Mt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})(),Xe=(()=>{class Mt{static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:function(wt){let Jt=null;return Jt=wt?new(wt||Mt):M.KVO(Ze),Jt},providedIn:"root"})}return Mt})(),Ze=(()=>{class Mt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>go,wF:()=>un,Kp:()=>ms,b:()=>Oi,Ix:()=>pi,Wk:()=>gs,wQ:()=>ks,iI:()=>xl,n3:()=>Do});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new zn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function ui(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Mt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Mt(Re.path)}${function Jt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Mt(Ue)}=${Mt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,_s=/^[^=?&#]+/,ls=/^[^&#]+/;class zn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function Fn(Re){const Ue=Re.match(_s);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Di(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Di(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,ei]of Object.entries(mt.children))Ue[Ot]=ei;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function Cs(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Xt of mt.children){const Li=Be(Xt);Ot[Xt.outlet]=Li}const ei=new Me(mt.url,Ot);return mt===Re&&(Ue=ei),ei}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return kn(rt,rt,rt,Be,We);const mt=function qr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new fo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const ei={};return Object.entries(mt.outlets).forEach(([Xt,Li])=>{ei[Xt]="string"==typeof Li?Li.split("/"):Li}),[...rt,{outlets:ei}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((ei,Xt)=>{0==Xt&&"."===ei||(0==Xt&&""===ei?Be=!0:".."===ei?Ue++:""!=ei&&rt.push(ei))}),rt):[...rt,mt]},[]);return new fo(Be,Ue,We)}(Ue);if(mt.toRoot())return kn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new ir(Ue,!0,0);if(!Be)return new ir(Ue,!1,NaN);if(null===Be.parent)return new ir(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new ir(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),ei=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return kn(rt,Ot.segmentGroup,ei,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function ws(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function kn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Xt,Li])=>{mt[Xt]=Array.isArray(Li)?Li.map(pn=>`${pn}`):`${Li}`}),Ot=Re===Ue?Be:jr(Re,Ue,Be);const ei=dn(Di(Ot));return new _e(ei,mt,rt)}function jr(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:jr(mt,Ue,Be)}),new Me(Re.segments,We)}class fo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(ws);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ir{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],ei=Be[We];if(ws(ei))break;const Xt=`${ei}`,Li=We0&&void 0===Xt)break;if(Xt&&Li&&"object"==typeof Li&&void 0===Li.outlets){if(!si(Xt,Li,Ot))return mt;We+=2}else{if(!si(Xt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class rs extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class os extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Js extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class ns extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Qr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Vr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Jl{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class pr{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Jr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class bn{}class Ko{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new eo,this.attachRef=null}}let eo=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class sl{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=rl(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=rl(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function rl(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=rl(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ol extends sl{constructor(Ue,Be){super(Ue),this.snapshot=Be,fa(this,Ue)}toString(){return this.snapshot.toString()}}function ua(Re){const Ue=function Ra(Re){const mt=new pa([],{},{},"",{},w,Re,null,{});return new Dr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),ei=new go(Be,We,mt,Ot,rt,w,Re,Ue.root);return ei.snapshot=Ue.root,new ol(new Hs(ei,[]),Ue)}class go{constructor(Ue,Be,We,rt,mt,Ot,ei,Xt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=ei,this._futureSnapshot=Xt,this.title=this.dataSubject?.pipe((0,_.T)(Li=>Li[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&zr(rt)&&(We.resolve[X]=rt.title),We}class pa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,ei,Xt,Li){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=ei,this.routeConfig=Xt,this._resolve=Li}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Dr extends sl{constructor(Ue,Be){super(Be),this.url=Ue,fa(this,Be)}toString(){return Is(this._root)}}function fa(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>fa(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||Qi(Re.parent,Ue.parent))}function zr(Re){return"string"==typeof Re.title||null===Re.title}let Do=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(mo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,ei=this.parentContexts.getOrCreateContext(this.name).children,Xt=new ga(Be,ei,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Xt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ga{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===go?this.route:Ue===eo?this.childContexts:this.parent.get(Ue,Be)}}const mo=new M.nKC("");let ma=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,ei],Xt)=>(ei={...mt,...Ot,...ei},0===Xt?(0,Pe.of)(ei):Promise.resolve(ei)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:ei}of Ot.inputs)Be.activatedComponentRef.setInput(ei,mt[ei]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Eo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function er(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Eo(Re,We,rt);return Eo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(ei=>Eo(Re,ei)),Ot}}const We=function ll(Re){return new go(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Eo(Re,mt));return new Hs(We,rt)}}const Gr="ngNavigationCancelingError";function cl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Er(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Er(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[Gr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[Gr]}let Ar=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Do],encapsulation:2})}return Re})();function Hr(Re){const Ue=Re.children&&Re.children.map(Hr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Ar),Be}function io(Re){return Re.outlet||w}function Ys(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class ya{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),ei=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:ei})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const ei=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(ei.contexts),Ot.attachRef=ei.componentRef,Ot.route=ei.route.value,Ot.outlet&&Ot.outlet.attach(ei.componentRef,ei.route.value),Us(ei.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const ei=Ys(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=ei,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class bo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function hl(Re,Ue,Be){const We=Re._root;return Qo(We,Ue?Ue._root:null,Be,[We.value])}function Zi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Qo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,ei=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Xt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!Qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Xt?rt.canActivateChecks.push(new qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Qo(Re,Ue,mt.component?ei?ei.children:null:Be,We,rt),Xt&&ei&&ei.outlet&&ei.outlet.isActivated&&rt.canDeactivateChecks.push(new bo(ei.outlet.component,Ot))}else Ot&&ct(Ue,ei,rt),rt.canActivateChecks.push(new qo(We)),Qo(Re,null,mt.component?ei?ei.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,ei])=>ct(ei,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new bo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Ks(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Or=Symbol("INITIAL_VALUE");function rr(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Or)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Or)return Or;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Or),(0,T.s)(1)))}function so(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw cl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Fl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Lr(Re){return(0,J.$)(new Fl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const ei=mt.substring(1);We[rt]=Be[ei]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([ei,Xt])=>{Ot[ei]=this.createSegmentGroup(Ue,Xt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const vo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zs(Re,Ue,Be,We,rt){const mt=dl(Re,Ue,Be);return mt.matched?(We=function Zo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Kh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Ir(Re){return Re&&Ye(Re.canMatch)}(ei)?ei.canMatch(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...vo}))):(0,Pe.of)(mt)}function dl(Re,Ue,Be){if("**"===Ue.path)return function ul(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...vo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...vo};const mt={};Object.entries(rt.posParams??{}).forEach(([ei,Xt])=>{mt[ei]=Xt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function pl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We)&&io(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ic(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Bl(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Oc(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Oc(Re,Ue,Be,We){const rt={};for(const mt of Be)if(fl(Re,Ue,mt)&&!We[io(mt)]){const Ot=new Me([],{});rt[io(mt)]=Ot}return{...We,...rt}}function ic(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&io(We)!==w){const rt=new Me([],{});Be[io(We)]=rt}return Be}function fl(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Lc{}class jl{constructor(Ue,Be,We,rt,mt,Ot,ei){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=ei,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=pl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new pa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new Dr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Fl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],ei=function ec(Re,Ue){const Be=Re.filter(We=>io(We)===Ue);return Be.push(...Re.filter(We=>io(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,ei,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let ei=Be,Xt=Ue,Li=0;mt.subscribe((0,F._)(Ot,pn=>{const Dn=Li++;Xt=ei?Re(Xt,pn,Dn):(ei=!0,pn),We&&Ot.next(Xt)},rt&&(()=>{ei&&Ot.next(Xt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Lr(We);const Ot=Lo(mt);return function tr(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(ei=>this.processSegmentAgainstRoute(ei._injector??Ue,Be,ei,We,rt,mt,Ot).pipe((0,d.W)(Xt=>{if(Xt instanceof Fl)return(0,Pe.of)(null);throw Xt}))),n(ei=>!!ei),(0,d.W)(ei=>{if(Ks(ei))return function nc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Lc):Lr(We);throw ei}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,ei){return function Pc(Re,Ue,Be,We){return!!(io(Re)===We||We!==w&&fl(Ue,Be,Re))&&dl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&ei?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Lr(rt):Lr(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:ei,consumedSegments:Xt,positionalParamSegments:Li,remainingSegments:pn}=dl(Be,rt,mt);if(!ei)return Lr(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const Dn=this.applyRedirects.applyRedirectCommands(Xt,rt.redirectTo,Li);return this.applyRedirects.lineralizeSegments(rt,Dn).pipe((0,f.Z)(qs=>this.processSegment(Ue,We,Be,qs.concat(pn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=Zs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(ei=>ei.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Xt})=>{const Li=We._loadedInjector??Ue,{consumedSegments:pn,remainingSegments:Dn,parameters:qs}=ei,Hl=new pa(pn,qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ns(Re){return Re.data||{}}(We),io(We),We.component??We._loadedComponent??null,We,function Fs(Re){return Re.resolve||{}}(We)),{segmentGroup:Cl,slicedSegments:wl}=pl(Be,pn,Dn,Xt);if(0===wl.length&&Cl.hasChildren())return this.processChildren(Li,Xt,Cl).pipe((0,_.T)(Wa=>null===Wa?null:new Hs(Hl,Wa)));if(0===Xt.length&&0===wl.length)return(0,Pe.of)(new Hs(Hl,[]));const cc=io(We)===mt;return this.processSegment(Li,Xt,Cl,wl,cc?w:mt,!0).pipe((0,_.T)(Wa=>new Hs(Hl,Wa instanceof Hs?[Wa]:[])))})):Lr(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Ac(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(ei)?ei.canLoad(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Er(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Nc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Lo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Nc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Lo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function yo(Re){const Ue=Re.children.map(Be=>yo(Be)).flat();return[Re,...Ue]}function Vl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Fc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(ml),providedIn:"root"})}return Re})(),ml=(()=>{class Re extends Fc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ta=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Ur(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,ei=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Hr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function ia(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let na=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Li=>{mt=Li}),ei=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Xt}=We;return Xt&&(0,M.N4e)(Re,()=>Xt({transition:ei,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ta),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(mo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Fc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(na),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new Jl(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,ei=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Xt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Xt.id,initialUrl:Xt.rawUrl,extractedUrl:Xt.extractedUrl,trigger:Xt.source,extras:Xt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Li=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Li&&"reload"!==(Xt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.rawUrl),Dn,cn.IgnoredSameUrlNavigation)),Xt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Xt.rawUrl))return(0,Pe.of)(Xt).pipe((0,b.n)(Dn=>{const qs=this.transitions?.getValue();return this.events.next(new rs(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),Dn.source,Dn.restoredState)),qs!==this.transitions?.getValue()?te.w:Promise.resolve(Dn)}),function ea(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function Po(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new jl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:ei,tree:Xt})=>({...Ot,targetSnapshot:ei,urlAfterRedirects:Xt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(Dn=>{mt.targetSnapshot=Dn.targetSnapshot,mt.urlAfterRedirects=Dn.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:Dn.urlAfterRedirects};const qs=new Qr(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),this.urlSerializer.serialize(Dn.urlAfterRedirects),Dn.targetSnapshot);this.events.next(qs)}));if(Li&&this.urlHandlingStrategy.shouldProcessUrl(Xt.currentRawUrl)){const{id:Dn,extractedUrl:qs,source:Hl,restoredState:Cl,extras:wl}=Xt,cc=new rs(Dn,this.urlSerializer.serialize(qs),Hl,Cl);this.events.next(cc);const Wa=ua(this.rootComponentType).snapshot;return this.currentTransition=mt={...Xt,targetSnapshot:Wa,urlAfterRedirects:qs,extras:{...wl,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=qs,(0,Pe.of)(mt)}{const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),Dn,cn.IgnoredByUrlHandlingStrategy)),Xt.resolve(null),te.w}}),(0,l.M)(Xt=>{const Li=new nr(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot);this.events.next(Li)}),(0,_.T)(Xt=>(this.currentTransition=mt={...Xt,guards:hl(Xt.targetSnapshot,Xt.currentSnapshot,this.rootContexts)},mt)),function Pr(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Bn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Yh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(ei=>{const Xt=Ys(Ue)??rt,Li=Zi(ei,Xt);return Ce(function no(Re){return Re&&Ye(Re.canDeactivate)}(Li)?Li.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Xt,()=>Li(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(rr())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(ei=>ei&&function vt(Re){return"boolean"==typeof Re}(ei)?function fr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function tc(Re,Ue){return null!==Re&&Ue&&Ue(new pr(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function Jo(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Xh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Oo(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const ei=Ot.guards.map(Xt=>{const Li=Ys(Ot.node)??Be,pn=Zi(Xt,Li);return Ce(function vn(Re){return Re&&Ye(Re.canActivateChild)}(pn)?pn.canActivateChild(We,Re):(0,M.N4e)(Li,()=>pn(We,Re))).pipe(n())});return(0,Pe.of)(ei).pipe(rr())}));return(0,Pe.of)(mt).pipe(rr())}(Re,rt.path,Be),function Nl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ys(Ue)??Be,ei=Zi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(ei)?ei.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>ei(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(rr())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(ei)),(0,_.T)(ei=>({...Be,guardsResult:ei})))})}(this.environmentInjector,Xt=>this.events.next(Xt)),(0,l.M)(Xt=>{if(mt.guardsResult=Xt.guardsResult,On(Xt.guardsResult))throw cl(0,Xt.guardsResult);const Li=new Ls(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot,!!Xt.guardsResult);this.events.next(Li)}),(0,O.p)(Xt=>!!Xt.guardsResult||(this.cancelNavigationTransition(Xt,"",Xi.GuardRejected),!1)),Vl(Xt=>{if(Xt.guards.canActivateChecks.length)return(0,Pe.of)(Xt).pipe((0,l.M)(Li=>{const pn=new Vr(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}),(0,b.n)(Li=>{let pn=!1;return(0,Pe.of)(Li).pipe(function gl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Xt=>Xt.route)),Ot=new Set;for(const Xt of mt)if(!Ot.has(Xt))for(const Li of yo(Xt))Ot.add(Li);let ei=0;return(0,V.H)(Ot).pipe((0,r.H)(Xt=>mt.has(Xt)?function xo(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!zr(rt)&&(mt[X]=rt.title),function _a(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function Ca(Re,Ue,Be,We){const rt=Ys(Ue)??We,mt=Zi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(ei=>{mt[Ot]=ei}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Ks(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Xt,We,Re,Ue):(Xt.data=xr(Xt,Xt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>ei++),p(1),(0,f.Z)(Xt=>ei===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>pn=!0,complete:()=>{pn||this.cancelNavigationTransition(Li,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Li=>{const pn=new Ki(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}))}),Vl(Xt=>{const Li=pn=>{const Dn=[];pn.routeConfig?.loadComponent&&!pn.routeConfig._loadedComponent&&Dn.push(this.configLoader.loadComponent(pn.routeConfig).pipe((0,l.M)(qs=>{pn.component=qs}),(0,_.T)(()=>{})));for(const qs of pn.children)Dn.push(...Li(qs));return Dn};return(0,ie.z)(Li(Xt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),Vl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Xt,targetSnapshot:Li}=mt,pn=this.createViewTransition?.(this.environmentInjector,Xt.root,Li.root);return pn?(0,V.H)(pn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Xt=>{const Li=function al(Re,Ue,Be){const We=Eo(Re,Ue._root,Be?Be._root:void 0);return new ol(We,Ue)}(Be.routeReuseStrategy,Xt.targetSnapshot,Xt.currentRouterState);return this.currentTransition=mt={...Xt,targetRouterState:Li},this.currentNavigation.targetRouterState=Li,mt}),(0,l.M)(()=>{this.events.next(new bn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new ya(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Xt=>this.events.next(Xt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Xt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Xt.targetRouterState.snapshot),Xt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Xt=>{throw Xt}))),(0,H.j)(()=>{!Ot&&!ei&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Xt=>{if(ei=!0,cs(Xt))this.events.next(new os(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt.message,Xt.cancellationCode)),function sr(Re){return cs(Re)&&On(Re.url)}(Xt)?this.events.next(new Ko(Xt.url)):mt.resolve(!1);else{this.events.next(new ns(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Xt))}catch(Li){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Li)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new os(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Oi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(es),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let es=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),as=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends as{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(na),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=ua(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof rs)this.stateMemento=this.createStateMemento();else if(Be instanceof Js)this.rawUrlTree=We.initialUrl;else if(Be instanceof Qr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof bn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof os&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof ns?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ss(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof os||Be instanceof ns||Be instanceof Js),(0,_.T)(Be=>Be instanceof un||Be instanceof Js?us.COMPLETE:Be instanceof os&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function Bs(Re){throw Re}const Rr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Gn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(as),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(na),this._events=new I.B,this.errorHandler=this.options.errorHandler||Bs,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Oi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(mo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof os&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Ko){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),ei={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,ei,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof bn||Re instanceof Ko)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Xt={...rt};delete Xt.navigationId,delete Xt.\u0275routerPageId,0!==Object.keys(Xt).length&&(mt.state=Xt)}const ei=this.parseUrl(Be);this.scheduleNavigation(ei,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Hr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:ei,preserveFragment:Xt}=We,Li=Xt?this.currentUrlTree.fragment:Ot;let Dn,pn=null;switch(ei){case"merge":pn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":pn=this.currentUrlTree.queryParams;break;default:pn=mt||null}null!==pn&&(pn=this.removeEmptyProps(pn));try{Dn=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),Dn=this.currentUrlTree.root}return $n(Dn,Be,pn,Li??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let ei,Xt,Li;Ot?(ei=Ot.resolve,Xt=Ot.reject,Li=Ot.promise):Li=new Promise((Dn,qs)=>{ei=Dn,Xt=qs});const pn=this.pendingTasks.add();return ss(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(pn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:ei,reject:Xt,promise:Li,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Li.catch(Dn=>Promise.reject(Dn))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,ei){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=ei,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Xt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Xt||"area"===Xt,this.isAnchorElement?this.subscription=Be.events.subscribe(Li=>{Li instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const ei=this.urlTree;return!!(null===ei||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(ei,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(go),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(ei=>{ei instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function or(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class wa{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),_o=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,ei=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(ei,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(pi),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(wa),M.KVO(ta))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Ro=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof rs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof Js&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof Jr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Jr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function Sa(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(pi),rt=Re.get(No);1===Re.get(bl)&&We.initialNavigation(),Re.get(vl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const No=new M.nKC("",{factory:()=>new I.B}),bl=new M.nKC("",{providedIn:"root",factory:()=>1}),vl=new M.nKC("");function Fo(Re){return Kn(0,[{provide:vl,useExisting:_o},{provide:wa,useExisting:Re}])}function mr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const Gl=new M.nKC("ROUTER_FORROOT_GUARD"),sa=[E.aZ,{provide:Qe,useClass:st},pi,eo,{provide:go,useFactory:function bs(Re){return Re.routerState.root},deps:[pi]},ta,[]];let xl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[sa,[],{provide:Ga,multi:!0,useValue:Be},{provide:Gl,useFactory:Zh,deps:[[pi,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Ro(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Fo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Qn(We):[],We?.bindToComponentInputs?Kn(8,[ma,{provide:mo,useExisting:ma}]).\u0275providers:[],We?.enableViewTransitions?mr().\u0275providers:[],[{provide:_l,useFactory:Sa},{provide:M.iLQ,multi:!0,useExisting:_l}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(Gl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function Zh(Re){return"guarded"}function Qn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(pi);return()=>{Ue.setUpLocationChangeListener()}}},{provide:bl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:bl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(pi),mt=Ue.get(No);ss(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const _l=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Vo,do:()=>Yc,Bq:()=>qc,UN:()=>ah,ZM:()=>cd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Wt=>Wt.length)){const Wt=Ne.map(Qt=>Qt.shift());we.next(je?je(...Wt):Wt),Ne.some((Qt,ii)=>!Qt.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Wt=0;Wt{it[Wt]=Qt,!Vt&&!ft[Wt]&&(ft[Wt]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Wt=>{if(Vt){const Qt=[Wt,...it];we.next(je?je(...Qt):Qt)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Wt=!ht()&&ae,Qt=(we.left+(Wt&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Wt&&Vt?Vt.offsetTop:0))/it,Ci=we.width/Ne,_i=we.height/it;return{width:Ci,height:_i,top:ii,right:Qt+Ci,bottom:ii+_i,left:Qt,x:Qt,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Jt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function ui(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&ui(be)?be:Fi(Jt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],ui(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Jt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function Fn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function _s(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Jt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Mt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Wt=0;if(Ne){it=Ne.width,ft=Ne.height;var Qt=ht();(Qt||!Qt&&"fixed"===je)&&(Vt=Ne.offsetLeft,Wt=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Wt}}(be,ae)):Ee(je)?function zn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Wt=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Wt}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Wt,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Wt={x:ft,y:je.y-ae.height};break;case U:Wt={x:ft,y:je.y+je.height};break;case se:Wt={x:je.x+je.width,y:Vt};break;case w:Wt={x:je.x-ae.width,y:Vt};break;default:Wt={x:je.x,y:je.y}}var Qt=Ne?Pn(Ne):null;if(null!=Qt){var ii="y"===Qt?"height":"width";switch(it){case x:Wt[Qt]=Wt[Qt]-(je[ii]/2-ae[ii]/2);break;case N:Wt[Qt]=Wt[Qt]+(je[ii]/2-ae[ii]/2)}}return Wt}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function ws(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function kn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Wt=void 0===Vt?"clippingParents":Vt,Qt=je.rootBoundary,ii=void 0===Qt?K:Qt,Ci=je.elementContext,_i=void 0===Ci?q:Ci,Ai=je.altBoundary,_n=void 0!==Ai&&Ai,rn=je.padding,fn=void 0===rn?0:rn,Rn=$i("number"!=typeof fn?fn:ws(fn,G)),vs=be.rects.popper,En=be.elements[_n?_i===q?"reference":q:_i],Zn=function Cs(be,je,ae,we){var Ne="clippingParents"===je?function Di(be){var je=mi(Jt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?Fn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Wt,Qt){var ii=dn(be,Qt,we);return Wt.top=Qe(ii.top,Wt.top),Wt.right=st(ii.right,Wt.right),Wt.bottom=st(ii.bottom,Wt.bottom),Wt.left=Qe(ii.left,Wt.left),Wt},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(En)?En:En.contextElement||lt(be.elements.popper),Wt,ii,ft),An=Lt(be.elements.reference),qn=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ps=fs(Object.assign({},vs,qn)),lr=_i===q?Ps:An,zs={top:Zn.top-lr.top+Rn.top,bottom:lr.bottom-Zn.bottom+Rn.bottom,left:Zn.left-lr.left+Rn.left,right:lr.right-Zn.right+Rn.right},wr=be.modifiersData.offset;if(_i===q&&wr){var lo=wr[Ne];Object.keys(zs).forEach(function(Tr){var xe=[se,U].indexOf(Tr)>=0?1:-1,tt=[Y,U].indexOf(Tr)>=0?"y":"x";zs[Tr]+=lo[tt]*xe})}return zs}const ir={name:"flip",enabled:!0,phase:"main",fn:function qr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Wt=ae.fallbackPlacements,Qt=ae.padding,ii=ae.boundary,Ci=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,_n=void 0===Ai||Ai,rn=ae.allowedAutoPlacements,fn=je.options.placement,Rn=S(fn),vs=Wt||(Rn!==fn&&_n?function fo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(fn):[p(fn)]),En=[fn].concat(vs).reduce(function(oi,Pi){return oi.concat(S(Pi)===X?function jr(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Wt=je.allowedAutoPlacements,Qt=void 0===Wt?Ce:Wt,ii=On(je.placement),Ci=ii?Vt?me:me.filter(function(_n){return On(_n)===ii}):G,_i=Ci.filter(function(_n){return Qt.indexOf(_n)>=0});0===_i.length&&(_i=Ci);var Ai=_i.reduce(function(_n,rn){return _n[rn]=kn(be,{placement:rn,boundary:Ne,rootBoundary:it,padding:ft})[S(rn)],_n},{});return Object.keys(Ai).sort(function(_n,rn){return Ai[_n]-Ai[rn]})}(je,{placement:Pi,boundary:ii,rootBoundary:Ci,padding:Qt,flipVariations:_n,allowedAutoPlacements:rn}):Pi)},[]),Zn=je.rects.reference,An=je.rects.popper,qn=new Map,Ps=!0,lr=En[0],zs=0;zs=0,tt=xe?"width":"height",u=kn(je,{placement:wr,boundary:ii,rootBoundary:Ci,altBoundary:_i,padding:Qt}),ne=xe?Tr?se:w:Tr?U:Y;Zn[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[lo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){lr=wr,Ps=!1;break}qn.set(wr,Ie)}if(Ps)for(var Tt=function(Pi){var qi=En.find(function(Yi){var tn=qn.get(Yi);if(tn)return tn.slice(0,Pi).every(function(Cn){return Cn})});if(qi)return lr=qi,"break"},zt=_n?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==lr&&(je.modifiersData[we]._skip=!0,je.placement=lr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,_n=ae.tetherOffset,rn=void 0===_n?0:_n,fn=kn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Rn=S(je.placement),jn=On(je.placement),vs=!jn,En=Pn(Rn),Zn=function St(be){return"x"===be?"y":"x"}(En),An=je.modifiersData.popperOffsets,qn=je.rects.reference,Ps=je.rects.popper,lr="function"==typeof rn?rn(Object.assign({},je.rects,{placement:je.placement})):rn,zs="number"==typeof lr?{mainAxis:lr,altAxis:lr}:Object.assign({mainAxis:0,altAxis:0},lr),wr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,lo={x:0,y:0};if(An){if(it){var Tr,xe="y"===En?Y:w,tt="y"===En?U:se,u="y"===En?"height":"width",ne=An[En],ue=ne+fn[xe],Ie=ne-fn[tt],nt=Ai?-Ps[u]/2:0,Tt=jn===x?qn[u]:Ps[u],zt=jn===x?-Ps[u]:-qn[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Pi=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},qi=Pi[xe],Yi=Pi[tt],tn=Rt(0,qn[u],oi[u]),Cn=vs?qn[u]/2-nt-tn-qi-zs.mainAxis:Tt-tn-qi-zs.mainAxis,nn=vs?-qn[u]/2+nt+tn+Yi+zs.mainAxis:zt+tn+Yi+zs.mainAxis,Jn=je.elements.arrow&&Fn(je.elements.arrow),Ds=Jn?"y"===En?Jn.clientTop||0:Jn.clientLeft||0:0,Ws=null!=(Tr=wr?.[En])?Tr:0,co=ne+nn-Ws,Uo=Rt(Ai?st(ue,ne+Cn-Ws-Ds):ue,ne,Ai?Qe(Ie,co):Ie);An[En]=Uo,lo[En]=Uo-ne}if(Vt){var _c,la=An[Zn],gu="y"===Zn?"height":"width",rg=la+fn["x"===En?Y:w],og=la-fn["x"===En?U:se],Ip=-1!==[Y,w].indexOf(Rn),Al=null!=(_c=wr?.[Zn])?_c:0,lh=Ip?rg:la-qn[gu]-Ps[gu]-Al+zs.altAxis,ag=Ip?la+qn[gu]+Ps[gu]-Al-zs.altAxis:og,lg=Ai&&Ip?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(lh,la,ag):Rt(Ai?lh:rg,la,Ai?ag:og);An[Zn]=lg,lo[Zn]=lg-la}je.modifiersData[we]=lo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Wt=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var Ci=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:ws(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Wt?Y:w,_n="y"===Wt?U:se,rn=ae.rects.reference[ii]+ae.rects.reference[Wt]-ft[Wt]-ae.rects.popper[ii],fn=ft[Wt]-ae.rects.reference[Wt],Rn=Fn(it),jn=Rn?"y"===Wt?Rn.clientHeight||0:Rn.clientWidth||0:0,An=jn/2-_i[ii]/2+(rn/2-fn/2),qn=Rt(Ci[Ai],An,jn-_i[ii]-Ci[_n]);ae.modifiersData[we]=((je={})[Wt]=qn,je.centerOffset=qn-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function rs(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Wt={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||ui(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Wt=Lt(je,!0)).x+=je.clientLeft,Wt.y+=je.clientTop):it&&(Wt.x=ti(it))),{x:ft.left+Vt.scrollLeft-Wt.x,y:ft.top+Vt.scrollTop-Wt.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Wt=je.get(Vt);Wt&&Ne(Wt)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var Js={placement:"bottom",modifiers:[],strategy:"absolute"};function ns(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(Ci,je.rects,it),ii},{}),Vt=ft[je.placement],Qt=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=Qt),je.modifiersData[we]=ft}},Hs=["*"],Xs=["dialog"];function Jo(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function tc(be,je){}function Nl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,Jo,1,1,"ng-template",null,0,M.C5r)(3,tc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Lc={animation:!0,transitionTimerDelayMs:5};let Po=(()=>{class be{constructor(){this.animation=Lc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function xa(be){return"string"==typeof be}function ea(be){return null!=be}function Ca(be){return(be||document.body).getBoundingClientRect()}function ml(be=document){const je=be?.activeElement;return je?je.shadowRoot?ml(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Lc,ta=new Map,Ur=(be,je,ae,we)=>{let Ne=we.context||{};const it=ta.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ta.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function Vl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Wt=new ie.B,Qt=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ta.set(je,{transition$:Vt,complete:()=>{Wt.next(),Wt.complete()},context:Ne});const ii=function jl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const Ci=(0,re.R)(je,"transitionend").pipe((0,I.Q)(Qt),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(Qt)),Ci,Wt).pipe((0,I.Q)(Qt)).subscribe(()=>{ta.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},na=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),Ca(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Ur(this._zone,this._element.nativeElement,na,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ro=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),sc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Qn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Qn||{});const Jh=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function _a(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const Qt=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Qn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!Jh(Ai,ft)&&("inside"===ae?Jh(Ai,it)&&Re(Ai,Vt):"outside"===ae?!Jh(Ai,it):Re(Ai,Vt)||!Jh(Ai,it))}),(0,I.Q)(Ne)),Ci=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([Qt.pipe((0,T.T)(_i=>0)),Ci.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let ei=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Xt=/\s+/,Li=/ +/gi,pn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},qs=/^left/,Hl=/^right/,Cl=/^start/,wl=/^end/;function Wa({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Xt),it=we.findIndex(Qt=>"auto"===Qt);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(Qt){null==we.find(ii=>-1!==ii.search("^"+Qt))&&we.splice(it++,1,Qt)});const ft=we.map(Qt=>function Dn(be,je){const[ae,we]=pn[be];return je&&we||ae}(Qt,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:Qt}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),Ci=Qt.elements.popper,_i=Qt.placement;let Ai=Ci.className;Ai=Ai.replace(ii,""),Ai+=` ${function cc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(qs,"start").replace(Hl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Cl,"top").replace(wl,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Li," "),Ci.className=Ai}},ir,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function tp(be){return be}function ed(){const be=(0,M.WQX)(ei);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je=eo(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function Bo(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Hd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ud=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Vo=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,$c,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Dh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Yc=(()=>{class be extends Dh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Dh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(Ud),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=ed(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(Bo([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Wt,Qt)=>{Wt.contains(ae.target)&&(ft=Wt),Wt===ml(this._document)&&(it=Qt)}),we!==Qn.Space&&we!==Qn.Enter){if(we!==Qn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Qn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Qn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Qn.Home:it=0;break;case Qn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Wt=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Wt[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Wt[Wt.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Wt})=>{this._nativeElement.contains(Wt)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Vo,5),M.wni(it,Dh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Eh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Wd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class Ml{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class _p{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Ur(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Ur(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new Ml([we.rootNodes],we)}return new Ml([[this._document.createTextNode(`${je}`)]])}return new Ml([])}}let pc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Kc=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Ur(this._zone,this._nativeElement,(ae,we)=>{we&&Ca(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Ur(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Ah{update(je){}close(je){}dismiss(je){}}const ad=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Zc=["animation","backdropClass"];class $d{_applyWindowOptions(je,ae){ad.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Zc.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function gl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Ih=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Ih||{});let Zf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":xa(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Ur(this._zone,ae,()=>ae.classList.remove("show"),we),Ur(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Ur(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&Ca(it),it.classList.add("show")},ae),Ur(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Qn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Ih.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Ih.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Ur(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Xs,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),qf=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(pc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Qn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Wt]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Wt.focus(),it.preventDefault()),ft===Wt&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ea(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Ah,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Wt=this._getContentRef(ae,Vt,we,ft,Ne);let Qt=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Wt.nodes),Ci=new $d(ii,Wt,Qt,Ne.beforeDismiss);return this._registerModalRef(Ci),this._registerWindowCmpt(ii),Ci.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{Ci.close(_i)},ft.dismiss=_i=>{Ci.dismiss(_i)},ft.update=_i=>{Ci.update(_i)},Ci.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),Qt&&Qt.instance&&Qt.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),Ci}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)(Kc,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Zf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):xa(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new Ml([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new Ml([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new Ml([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Ah,useValue:it}],parent:ae}),Wt=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),Qt=Wt.location.nativeElement;return ft.scrollable&&Qt.classList.add("component-host-scrollable"),this._applicationRef.attachView(Wt.hostView),new Ml([[Qt]],Wt.hostView,Wt)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),qc=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(qf),this._config=(0,M.WQX)(Wd)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),br=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[qc]})}return be})(),qd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Xl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let Jd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ld=0,eu=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Nl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),cd=(()=>{class be{constructor(){this._config=(0,M.WQX)(Jd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+ld++,this._popupService=new _p(eu),this._windowRef=null,this._positioning=ed()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(Bo([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function wp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function ar(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Wt=new Set,Qt=[];let ii;function Ci(Ai,_n){be.addEventListener(Ai,_n),Qt.push(()=>be.removeEventListener(Ai,_n))}function _i(Ai,_n){clearTimeout(ii),_n>0?ii=setTimeout(Ai,_n):Ai()}for(const[Ai,_n]of Vt)_n?(Ci(Ai,()=>{Wt.add(Ai),_i(()=>Wt.size>0&&we(),it)}),Ci(_n,()=>{Wt.delete(Ai),_i(()=>0===Wt.size&&Ne(),ft)})):Ci(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>Qt.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(xa(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ih=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ea=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ig=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),xc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),aa=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let Bh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const Vh=[Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh];let ah=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[Vh,Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Jt,vr:()=>ir,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Mt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Jt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),ui=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),_s=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),Fn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),zn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Di={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function Cs(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Di[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=Cs(xt).toLocaleLowerCase(),this.filteredItems.find($e=>Cs($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:Cs(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Mt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return Cs($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Mt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),rs=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=rs,Ti.value=Hi(It,rs.map(un=>un.value)),yt.push(Ti),yt.push(...rs)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let ws=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),kn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),jr=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),fo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const qr=new M.nKC("ng-select-selection-model");let ir=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const rs=this.selectedItems.find(un=>un.value===Hi);this.unselect(rs)},this.trackByOption=(Hi,rs)=>this.trackByFn?this.trackByFn(rs.value):rs,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Mt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Mt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Mt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(jr),M.rXU(qr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(fo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Jt,5,M.C4Q),M.wni($t,ui,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,_s,5,M.C4Q),M.wni($t,Fn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,zn,5,M.C4Q),M.wni($t,kn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(ws,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,ws,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:qr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>Zn,hp:()=>fn,FP:()=>Ai,yc:()=>Qt,Tg:()=>Wt,XI:()=>Ne,bG:()=>Tr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Mt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Jt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Mt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function ui(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function Fn(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function zn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Di(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Cs(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,Cs,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function ws(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function kn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function jr(xe,tt){}function fo(xe,tt){1&xe&&e.DNE(0,jr,0,0,"ng-template")}function qr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,ws,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,kn,1,0,"ChevronDownIcon",7)(9,fo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function ir(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,ir,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,ui,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,Fn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,zn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Di,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,qr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Jt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Pi=Math.ceil((nt+Ie)/7);for(let qi=0;qint){let Cn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:Cn.month,year:Cn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,Cn.month,Cn.year),selectable:this.isSelectable(zt-nt,Cn.month,Cn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Pi&&this.maxDate.toDateString()===Pi&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Pi=ue+1{let Yi=""+Pi;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Pi]:qi[Pi];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Pi=-1,qi=-1,Yi=!1,Cn=Ws=>{let cr=ue+1{let cr=Cn(Ws),co="@"===Ws?14:"!"===Ws?20:"y"===Ws&&cr?4:"o"===Ws?3:2,_c=new RegExp("^\\d{"+("y"===Ws?co:1)+","+co+"}"),Aa=u.substring(Tt).match(_c);if(!Aa)throw"Missing number at position "+Tt;return Tt+=Aa[0].length,parseInt(Aa[0],10)},Jn=(Ws,cr,co)=>{let Uo=-1,_c=Cn(Ws)?co:cr,Aa=[];for(let Sr=0;Sr<_c.length;Sr++)Aa.push([Sr,_c[Sr]]);Aa.sort((Sr,la)=>-(Sr[1].length-la[1].length));for(let Sr=0;Sr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Pi=1),ue=0;ue-1)for(oi=1,Pi=qi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Pi<=Ie);)oi++,Pi-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Pi=-1===Pi?1:Pi),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Pi)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Pi)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),rs=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],os=["*"],Js=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi,qi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Pi,"p-overlay-right-start":qi,"p-overlay-right-end":Yi}),ns=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Qr=xe=>({value:"visible",params:xe}),nr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function Vr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,Vr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Qr,e.sMw(7,ns,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,nr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,Js,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const Jl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},pr=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([Jl])],ngContentSelectors:os,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(pr)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var Jr=He(38757);const bn=["element"],Ko=["content"],nl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),eo=(xe,tt)=>({$implicit:xe,options:tt}),sl=xe=>({"p-scroller-loading":xe}),rl=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ol=(xe,tt)=>({rows:xe,columns:tt});function ua(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ua,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u.loadedItems,u.getContentOptions()))}}function go(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,go,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u,ue.getOptions(ne)))}}function pa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,sl,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function Dr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function fa(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,fa,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function Qi(xe,tt){1&xe&&e.eu8(0)}function zr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Do(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ga(xe,tt){if(1&xe&&e.DNE(0,zr,2,5,"ng-container",6)(1,Do,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function mo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ga,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,rl,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ma(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,pa,3,7,"ng-template",null,2,e.C5r)(6,Dr,1,2,"div",8)(7,mo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function al(xe,tt){1&xe&&e.eu8(0)}function Eo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,al,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,eo,u.items,e.l_i(2,ol,u._items,u.loadedColumns)))}}function er(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Eo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let ll=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Pi=(Jn=0,Ds)=>Jn<=Ds?0:Jn,qi=(Jn,Ds,Ws)=>Jn*Ds+Ws,Yi=(Jn=0,Ds=0)=>this.scrollTo({left:Jn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,Cn=!1,nn=!1;this.both?(tn={rows:Pi(u[0],zt[0]),cols:Pi(u[1],zt[1])},Yi(qi(tn.cols,oi[1],ai.left),qi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,Cn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Pi(u,zt),this.horizontal?Yi(qi(tn,oi,ai.left),nt):Yi(Tt,qi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),Cn=tn!==Ie),this.isRangeChanged=Cn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Pi=0)=>this.scrollTo({left:oi,top:Pi,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,Jn)=>nn?nn>Jn?nn-Jn:nn:0,nt=(nn,Jn)=>Math.floor(nn/(Jn||nn)),Tt=(nn,Jn,Ds,Ws,cr,co)=>nn<=cr?cr:co?Ds-Ws-cr:Jn+cr-1,zt=(nn,Jn,Ds,Ws,cr,co,Uo)=>nn<=co?0:Math.max(0,Uo?nnJn?Ds:nn-2*co),ai=(nn,Jn,Ds,Ws,cr,co=!1)=>{let Uo=Jn+Ws+2*cr;return nn>=cr&&(Uo+=cr+1),this.getLast(Uo,co)},oi=Ie(ne.scrollTop,ue.top),Pi=Ie(ne.scrollLeft,ue.left);let qi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,Cn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,Jn=this.lastScrollPos.left<=Pi;if(!this._appendOnly||this._appendOnly&&(nn||Jn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Pi,this._itemSize[1])},Ws={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],Jn)};qi={rows:zt(Ds.rows,Ws.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,Ws.cols,this.first.cols,0,0,this.d_numToleratedItems[1],Jn)},Yi={rows:ai(Ds.rows,qi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,qi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=qi.rows!==this.first.rows||Yi.rows!==this.last.rows||qi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,Cn={top:oi,left:Pi}}}else{const nn=this.horizontal?Pi:oi,Jn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&Jn){const Ds=nt(nn,this._itemSize);qi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,Jn),this.first,0,0,this.d_numToleratedItems,Jn),Yi=ai(Ds,qi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=qi!==this.first||Yi!==this.last||this.isRangeChanged,Cn=nn}}return{first:qi,last:Yi,isRangeChanged:tn,scrollPos:Cn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(bn,5),e.GBs(Ko,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:nl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ma,8,16,"ng-container",6)(1,er,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Jr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),Gr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Jr.N,Pe.Gg]})}return xe})(),cl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Er=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),sr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Ar=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),Zo=xe=>({$implicit:xe});function ba(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Ao=["container"],Fa=["filter"],Ba=["focusInput"],va=["editableInput"],Xs=["items"],to=["scroller"],Hr=["overlay"],io=["firstHiddenFocusableEl"],ec=["lastHiddenFocusableEl"],Ys=xe=>({options:xe}),Mn=(xe,tt)=>({$implicit:xe,options:tt}),Io=()=>({});function ya(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,Zo,u.selectedOption))}}function bo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function hl(xe,tt){if(1&xe&&e.DNE(0,bo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Oo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,ya,2,1,"ng-container",23)(3,qo,1,4,"ng-container",24)(4,hl,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Zi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Qo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function vn(xe,tt){}function no(xe,tt){1&xe&&e.DNE(0,vn,0,0,"ng-template")}function Ir(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,no,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Ks(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){1&xe&&e.eu8(0)}function rr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Or,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u.filterOptions))}}function Pr(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Bn(xe,tt){}function fr(xe,tt){1&xe&&e.DNE(0,Bn,0,0,"ng-template")}function Jo(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,fr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function tc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Pr,1,1,"SearchIcon",33)(4,Jo,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,rr,2,4,"ng-container",23)(2,tc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Xh(xe,tt){1&xe&&e.eu8(0)}function Yh(xe,tt){if(1&xe&&e.DNE(0,Xh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Mn,u,ne))}}function Ac(xe,tt){1&xe&&e.eu8(0)}function so(xe,tt){if(1&xe&&e.DNE(0,Ac,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u))}}function Kh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,so,1,4,"ng-template",49),e.bVm())}function Fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Yh,1,5,"ng-template",21)(3,Kh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Mn,ne.visibleOptions(),e.lJ4(2,Io)))}}function Ic(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ic,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,Zo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function vo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function Zs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function dl(xe,tt){1&xe&&e.eu8(0,null,12)}function ul(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,Zs,2,1,"ng-container",23)(2,dl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function pl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Oc(xe,tt){1&xe&&e.eu8(0,null,13)}function ic(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,pl,2,1,"ng-container",23)(2,Oc,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,vo,2,2,"ng-template",51)(3,ul,3,6,"li",52)(4,ic,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Bl(xe,tt){1&xe&&e.eu8(0)}function fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Ks,1,0,"ng-container",31)(4,Nl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Fl,4,10,"p-scroller",41)(7,Lr,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Bl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Pc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Lc),multi:!0};let nc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,ba,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Ar,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,Zo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Lc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Ao,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(va,5),e.GBs(Xs,5),e.GBs(to,5),e.GBs(Hr,5),e.GBs(io,5),e.GBs(ec,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Pc])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Oo,6,20,"span",15)(3,Zi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Ir,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,fl,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,cl,ll,rs,A.A,$,sr,nc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Po=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Er,ve.Z,Gr,un,A.A,$,sr,La,Pe.Gg,Gr]})}return xe})(),Rc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),jl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),tr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Nc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Lo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),xa=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Ns=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ea=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),gl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),yo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),xo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var _a=He(22242);const Ca=["input"],Vl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Fc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),ml=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ta(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Ur(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ta,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function ia(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Ur,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function na(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,na,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Oi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Oi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function es(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function as(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ss(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,as,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function Bs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,es,1,2,"span",13)(2,ss,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Rr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Gn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function pi(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,pi,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Gn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Rr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>or),multi:!0};let or=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Pi,currencyCharIndex:qi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=qi>=nt?qi-1:Pi>=nt?Pi:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,Cn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,Cn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ca,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,ia,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,Bs,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,Vl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,_a.S,Z._f,A.A,xo,yo],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),wa=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,_a.u,Z.tm,A.A,xo,yo,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),gr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Ro=xe=>({"p-disabled":xe}),sc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Ta(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function zl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function Co(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rc(xe,tt){}function Sa(xe,tt){1&xe&&e.DNE(0,rc,0,0,"ng-template")}function No(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Sa,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function bl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,Co,1,1,"AngleDoubleLeftIcon",6)(2,No,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sn(xe,tt){}function oc(xe,tt){1&xe&&e.DNE(0,sn,0,0,"ng-template")}function vl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,oc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Fo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function ac(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Fo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function yl(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function js(xe,tt){1&xe&&e.eu8(0)}function lc(xe,tt){if(1&xe&&e.DNE(0,js,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function mr(xe,tt){1&xe&&e.DNE(0,lc,1,1,"ng-template",28)}function Vs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,yl,1,1,"ng-template",26)(2,mr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Gl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sa(xe,tt){}function xl(xe,tt){1&xe&&e.DNE(0,sa,0,0,"ng-template")}function Wr(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,xl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Bc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function vh(xe,tt){}function Zh(xe,tt){1&xe&&e.DNE(0,vh,0,0,"ng-template")}function Qn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Zh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function _l(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Bc,1,1,"AngleDoubleRightIcon",6)(2,Qn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Qh(xe,tt){1&xe&&e.eu8(0)}function jf(xe,tt){if(1&xe&&e.DNE(0,Qh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,sc,u))}}function Ju(xe,tt){1&xe&&(e.qex(0),e.DNE(1,jf,1,4,"ng-template",32),e.bVm())}function ep(xe,tt){1&xe&&e.eu8(0)}function Ld(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Jh(xe,tt){1&xe&&e.DNE(0,Ld,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Ju,2,0,"ng-container",27)(2,Jh,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Ta,2,5,"div",2)(2,zl,2,1,"span",3)(3,bl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,vl,2,1,"span",7),e.k0s(),e.DNE(7,ac,2,1,"span",8)(8,Vs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,Gl,1,1,"AngleRightIcon",6)(11,Wr,2,1,"span",7),e.k0s(),e.DNE(12,_l,3,7,"button",11)(13,qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Lc,Pe.Ei,or,V.BC,V.vS,ve.n,ms,gr,_o,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Po,wa,V.YN,Pe.Gg,ve.Z,ms,gr,_o,en,Po,wa,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],ei=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Xt=(xe,tt)=>({$implicit:xe,index:tt});function Li(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function pn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Li,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function Dn(xe,tt){1&xe&&e.eu8(0)}function qs(xe,tt){if(1&xe&&e.DNE(0,Dn,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Xt,ne,ue))}}function Hl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,pn,4,3,"ng-container",5)(2,qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,ei,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Cl={provide:V.kq,useExisting:(0,e.Rfq)(()=>wl),multi:!0};let wl=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Cl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Hl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),cc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const Wa=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),tp=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),ed=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function ip(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function np(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Rd(xe,tt){}function sp(xe,tt){1&xe&&e.DNE(0,Rd,0,0,"ng-template")}function Bo(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,sp,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function yh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,np,1,2,"CheckIcon",9)(2,Bo,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function rp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ip,1,2,"span",7)(2,yh,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function op(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Vf(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function zf(xe,tt){}function Ts(xe,tt){1&xe&&e.DNE(0,zf,0,0,"ng-template")}function Nd(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Ts,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function jc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Vf,1,2,"TimesIcon",9)(2,Nd,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function $r(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,op,1,2,"span",7)(2,jc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Gf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,ed,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const xh={provide:V.kq,useExisting:(0,e.Rfq)(()=>Vc),multi:!0};let Vc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([xh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,rp,3,2,"ng-container",5)(6,$r,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Gf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,Wa,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,tp,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,tr,A.A],encapsulation:2,changeDetection:0})}return xe})(),jo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,tr,A.A,Pe.Gg]})}return xe})();var zc=He(21413);const td=["container"],Hf=["resizeHelper"],$a=["reorderIndicatorUp"],ap=["reorderIndicatorDown"],lp=["wrapper"],cp=["table"],Gc=["thead"],_h=["tfoot"],Ch=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Xa=xe=>({height:xe}),on=(xe,tt)=>({$implicit:xe,options:tt}),wh=xe=>({columns:xe}),Uf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function id(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function Wf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function hc(xe,tt){}function Ya(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ya,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function hp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Wf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function dp(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,id,1,2,"i",22)(2,hp,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function up(xe,tt){1&xe&&e.eu8(0)}function pp(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,up,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function xn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function Ka(xe,tt){1&xe&&e.DNE(0,xn,1,1,"ng-template",30)}function Hc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,Hc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function ra(xe,tt){1&xe&&e.eu8(0)}function oa(xe,tt){if(1&xe&&e.DNE(0,ra,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,oa,1,1,"ng-template",32)}function jd(xe,tt){1&xe&&e.eu8(0)}function fp(xe,tt){if(1&xe&&e.DNE(0,jd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function fm(xe,tt){1&xe&&e.DNE(0,fp,1,1,"ng-template",33)}function gp(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,gp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Sl(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function dc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,Ka,1,0,null,16)(2,Uc,1,0,null,16)(3,Bd,1,0,null,16)(4,fm,1,0,null,16)(5,Sl,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function ka(xe,tt){1&xe&&e.eu8(0)}function kl(xe,tt){if(1&xe&&e.DNE(0,ka,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,on,u,ne))}}function $f(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,kl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Xa,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function mp(xe,tt){1&xe&&e.eu8(0)}function bp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,mp,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,on,u.processedData,e.eq3(2,wh,u.columns)))}}function Th(xe,tt){1&xe&&e.eu8(0)}function Sh(xe,tt){1&xe&&e.eu8(0)}function kh(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function nd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Wc(xe,tt){1&xe&&e.eu8(0)}function Xf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Wc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Mh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,Th,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,Sh,1,0,"ng-container",37),e.k0s(),e.DNE(6,kh,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,nd,1,2,"tbody",42)(9,Xf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Uf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Vd(xe,tt){1&xe&&e.eu8(0)}function vp(xe,tt){if(1&xe&&e.DNE(0,Vd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function sd(xe,tt){1&xe&&e.DNE(0,vp,1,1,"ng-template",30)}function zd(xe,tt){1&xe&&e.eu8(0)}function Gd(xe,tt){if(1&xe&&e.DNE(0,zd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function rd(xe,tt){1&xe&&e.DNE(0,Gd,1,1,"ng-template",31)}function Yf(xe,tt){1&xe&&e.eu8(0)}function Xr(xe,tt){if(1&xe&&e.DNE(0,Yf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function uc(xe,tt){1&xe&&e.DNE(0,Xr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function yp(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Kf(xe,tt){1&xe&&e.DNE(0,yp,1,1,"ng-template",33)}function xp(xe,tt){1&xe&&e.eu8(0)}function Hd(xe,tt){if(1&xe&&e.DNE(0,xp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Ud(xe,tt){1&xe&&e.DNE(0,Hd,1,1,"ng-template",34)}function $c(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,sd,1,0,null,16)(2,rd,1,0,null,16)(3,uc,1,0,null,16)(4,Kf,1,0,null,16)(5,Ud,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Xc(xe,tt){1&xe&&e.eu8(0)}function Vo(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Xc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Dh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Yc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function od(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Eh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Yc,1,0,"ArrowDownIcon",16)(3,od,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function Wd(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function Ml(xe,tt){}function _p(xe,tt){1&xe&&e.DNE(0,Ml,0,0,"ng-template")}function pc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,Wd,1,0,"ArrowUpIcon",16)(3,_p,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const Kc=["pTableBody",""],Ah=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),ad=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Zc=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),$d=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Ih=(xe,tt)=>({$implicit:xe,frozen:tt});function Zf(xe,tt){1&xe&&e.eu8(0)}function qf(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Zf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function qc(xe,tt){1&xe&&e.eu8(0)}function br(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Xd(xe,tt){1&xe&&e.eu8(0)}function fc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,ad,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function Wl(xe,tt){1&xe&&e.eu8(0)}function Cr(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Qf(xe,tt){if(1&xe&&e.DNE(0,qf,2,8,"ng-container",2)(1,br,2,8,"ng-container",0)(2,fc,2,10,"ng-container",0)(3,Cr,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qf,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Dl(xe,tt){1&xe&&e.eu8(0)}function Oh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Dl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Ma,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Jc(xe,tt){1&xe&&e.eu8(0)}function Kd(xe,tt){1&xe&&e.eu8(0)}function gc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jc,1,0,"ng-container",4)(2,gc,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Ph(xe,tt){if(1&xe&&e.DNE(0,Oh,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zd,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ph,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Qd(xe,tt){1&xe&&e.eu8(0)}function eh(xe,tt){1&xe&&e.eu8(0)}function Lh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,eh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function $l(xe,tt){if(1&xe&&e.DNE(0,Qd,1,0,"ng-container",4)(1,Lh,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Zc,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function mc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$l,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function El(xe,tt){1&xe&&e.eu8(0)}function wo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,El,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function bc(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function Cp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Xl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function ar(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Cp,1,1,"SortAltIcon",3)(2,Xl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function wp(xe,tt){}function Jd(xe,tt){1&xe&&e.DNE(0,wp,0,0,"ng-template")}function ld(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,Jd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function eu(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function cd(xe,tt){1&xe&&e.eu8(0)}function th(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function Jf(xe,tt){1&xe&&e.eu8(0)}function tu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jf,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new zc.B;selectionSource=new zc.B;contextMenuSource=new zc.B;valueSource=new zc.B;totalRecordsSource=new zc.B;columnsSource=new zc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Pi,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=qi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Pi?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Pi=this.findIndexInSelection(nt);this._selection=this.selection.filter((qi,Yi)=>Yi!=Pi),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):Ieqi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Pi=>{let qi=le.BF.resolveFieldData(oi,Pi.field);return qi=null!=qi?this.exportFunction?this.exportFunction({data:qi,field:Pi.field}):String(qi).replace(/"/g,'""'):"",'"'+qi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(td,5),e.GBs(Hf,5),e.GBs($a,5),e.GBs(ap,5),e.GBs(lp,5),e.GBs(cp,5),e.GBs(Gc,5),e.GBs(_h,5),e.GBs(Ch,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,dp,3,2,"div",11)(3,pp,2,1,"div",12)(4,dc,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,$f,3,17,"p-scroller",15)(8,bp,2,7,"ng-container",16)(9,Mh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,$c,6,24,"p-paginator",13)(12,Vo,2,1,"div",17)(13,Dh,2,0,"div",18)(14,Eh,4,2,"span",19)(15,pc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,ll,Rc,jl,Jr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kc,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,2,"ng-container",0)(1,qd,2,2,"ng-container",0)(2,mc,2,2,"ng-container",0)(3,wo,2,5,"ng-container",0)(4,Da,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Wt=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),Qt=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,ar,4,3,"ng-container",0)(1,ld,2,4,"span",1)(2,eu,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Ns,ea,Fs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),fn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Rn=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),Zn=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(fn,8),e.rXU(Rn,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,th,2,1,"ng-container",0)(1,tu,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),Tr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,_a.u,Po,V.YN,Z.tm,cc,Hi,wa,jo,Gr,Rc,jl,Jr.N,Ns,ea,Fs,tr,Nc,Lo,xa,gl,Pe.Gg,Gr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/main.9ba23901ff72f37a.js b/www/z4d/main.9ba23901ff72f37a.js deleted file mode 100644 index 5d72f581f..000000000 --- a/www/z4d/main.9ba23901ff72f37a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:"alt.z",refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Dt=gt&&Ve||new Map;qe.forEach((Pt,Ut)=>{let Zt=Ut,hi=Pt;if("offset"!==Ut)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Ut);break;case Z.kp:hi=m.get(Ut);break;default:hi=c.normalizeStyleValue(Ut,Zt,hi,W)}Dt.set(Zt,hi)}),gt||ce.push(Dt),Ve=Dt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=_s(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=_s(m);c.style[W]=""})}function Jt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function _s(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function zn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Di=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class Cs extends Te{normalizePropertyName(v,i){return _s(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Di.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const kn="*";const ir=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=ir.has(c)||St.has(c),m=ir.has(v)||St.has(v);return(W,ce)=>{let De=c==kn||c==W,Ve=v==kn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?ir.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?ir.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),zn(this,Jt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=zn(this,Jt(v.animation),i),W=function jr(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function fo(c,v,i){if(":"==c[0]){const qe=function qr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=kn||De!=kn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>zn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=zn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return rs(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=rs(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return rs(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Dt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Dt=!1),ce=gt.startTime),Dt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function ui(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(di=>{const wi=this._makeStyleAst(di,i);let gi=null!=wi.offset?wi.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(wi.styles),ki=0;return null!=gi&&(ce++,ki=wi.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?wi==Ut?1:Pt*wi:De[wi],ki=gi*Yt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(di,i),di.offset=gi,m.styles.push(di)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:zn(this,Jt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=zn(this,Jt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:zn(this,Jt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function rs(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const Js=new RegExp(":enter","g"),Qr=new RegExp(":leave","g");function nr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Dt=new Ki(v,i,et,W,ce,gt,[]);Dt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Dt.currentTimeline.delayNextStep(Pt),Dt.currentTimeline.setStyles([De],null,Dt.errors,qe),zn(this,m,Dt);const Ut=Dt.timelines.filter(Zt=>Zt.containsAnimation());if(Ut.length&&Ve.size){let Zt;for(let hi=Ut.length-1;hi>=0;hi--){const Yt=Ut[hi];if(Yt.element===i){Zt=Yt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Dt.errors,qe)}return Ut.length?Ut.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),zn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=Vr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>zn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),zn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=Vr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Dt=i.createSubContext(v.options,et);ce&&Dt.delayNextStep(ce),et===i.element&&(qe=Dt.currentTimeline),zn(this,v.animation,Dt),Dt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Dt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Dt=gt.currentTime;zn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Dt+(W.startTime-m.currentTimeline.startTime)}}const Vr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Vr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=Vr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new Jl(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(Js,"."+this._enterClassName)).replace(Qr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Dt)=>{gt===Z.FX?v.add(Dt):gt===Z.kp&&i.add(Dt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class Jl extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",pr(Ve)),ce.push(et);const gt=v.length-1;for(let Dt=1;Dt<=gt;Dt++){let Pt=new Map(v[Dt]);const Ut=Pt.get("offset");Pt.set("offset",pr((i+Ut*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function pr(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Dt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Dt,errors:Pt}}const La={};class Jr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Ko(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Dt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Dt),hi=qe&&qe.params||La,Yt=this.buildStyles(W,hi,Dt),di=new Set,wi=new Map,gi=new Map,ki="void"===W,Bi={params:nl(hi,Pt),delay:this.ast.options?.delay},Mi=gt?[]:nr(v,i,this.ast.animation,ce,De,Zt,Yt,Bi,et,Dt);let an=0;return Mi.forEach(ln=>{an=Math.max(ln.duration+ln.delay,an)}),Dt.length?Pa(i,this._triggerName,m,W,ki,Zt,Yt,[],[],wi,gi,an,Dt):(Mi.forEach(ln=>{const ps=ln.element,Ln=N(wi,ps,new Set);ln.preStyleProps.forEach(Un=>Ln.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&di.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Yt,Mi,[...di.values()],wi,gi,an))}}function nl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=nl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class sl{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new Jr(v,W,this.states))}),this.fallbackTransition=function rl(c,v,i){return new Jr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=nr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Dt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Dt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Dt)=>{gt.forEach((Pt,Ut)=>{gt.set(Ut,this._driver.computeStyle(Dt,Ut,Z.kp))})});const et=se(De.map(gt=>{const Dt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Dt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ol="ng-animate-queued",Ra="ng-animate-disabled",Dr=[],fa={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class Qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Eo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const zr="void",Do=new Qi(zr);class ga{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,sr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function ll(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(sr(v,Qe),sr(v,Qe+"-"+i),Ve.set(i,Do)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ma(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(sr(v,Qe),sr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new Qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Do),et.value!==zr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Yt),_t(v,di)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Ut=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Ut){if(!W)return;Ut=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Ut,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(sr(v,ol),De.onStart(()=>{cs(v,ol)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Yt=this._engine.playersByElement.get(v);if(Yt){let di=Yt.indexOf(De);di>=0&&Yt.splice(di,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,zr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Do,gt=new Qi(zr),Dt=new ma(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Dt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===fa)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){sr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class mo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ga(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(er(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!er(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),sr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(er(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return er(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=fa,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))});const Yt=[],di=new Set,wi=new Set;for(let yi=0;yidi.add(Wi)):wi.add(Ei))}const gi=new Map,ki=Er(Pt,Array.from(di));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))}),v.push(()=>{Ut.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Yt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Mi=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Nn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const is=Nn[Us];if(is&&is.setForMove){if(is.previousTriggersValues&&is.previousTriggersValues.has(ji.triggerName)){const Zr=is.previousTriggersValues.get(ji.triggerName),Ii=this.statesByElement.get(ji.element);if(Ii&&Ii.has(ji.triggerName)){const gn=Ii.get(ji.triggerName);gn.value=Zr,Ii.set(ji.triggerName,gn)}}return void Wi.destroy()}}const ts=!Dt||!this.driver.containsElement(Dt,Nn),Wn=gi.get(Nn),Yr=Zt.get(Nn),ds=this._buildInstruction(ji,m,Yr,Wn,ts);if(ds.errors&&ds.errors.length)return void Mi.push(ds);if(ts)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);const Kr=[];ds.timelines.forEach(is=>{is.stretchStartingKeyframe=!0,this.disabledNodes.has(is.element)||Kr.push(is)}),ds.timelines=Kr,m.append(Nn,ds.timelines),De.push({instruction:ds,player:Wi,element:Nn}),ds.queriedElements.forEach(is=>N(Ve,is,[]).push(Wi)),ds.preStyleProps.forEach((is,Zr)=>{if(is.size){let Ii=qe.get(Zr);Ii||qe.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))}}),ds.postStyleProps.forEach((is,Zr)=>{let Ii=et.get(Zr);Ii||et.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))})});if(Mi.length){const yi=[];Mi.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const an=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,an))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(an,Ei,[]).push(Wi),Wi.destroy()})});const ps=Yt.filter(yi=>Ao(yi,qe,et)),Ln=new Map;cl(Ln,this.driver,wi,et,Z.kp).forEach(yi=>{Ao(yi,qe,et)&&ps.push(yi)});const Un=new Map;Ut.forEach((yi,Ei)=>{cl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Ln.get(yi),ji=Un.get(yi);Ln.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Qs={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Nn=Qs;if(ln.size>1){let Wn=Ei;const Yr=[];for(;Wn=Wn.parentNode;){const ds=ln.get(Wn);if(ds){Nn=ds;break}Yr.push(Wn)}Yr.forEach(ds=>ln.set(ds,Nn))}const ts=this._buildAnimation(ji.namespaceId,Wi,an,ce,Un,Ln);if(ji.setRealPlayer(ts),Nn===Qs)Ri.push(ji);else{const Wn=this.playersByElement.get(Nn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!ts.destroyed);Nn.length?Ar(this,Ei,Nn):this.processLeaveNode(Ei)}return Yt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==zr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Dt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Ut=>{const Zt=Ut.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Ut.destroy(),Dt.push(Ut)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Dt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Yt=hi[Us];if(Yt&&Yt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const di=hi!==qe,wi=function Zo(c){const v=[];return ba(c,v),v}((m.get(hi)||Dr).map(an=>an.getRealPlayer())).filter(an=>!!an.element&&an.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Mi=this._buildPlayer(Zt,Bi,wi);if(Zt.subTimeline&&W&&Dt.add(hi),di){const an=new ma(v,Ve,hi);an.setRealPlayer(Mi),et.push(an)}return Mi});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function al(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>sr(Zt,kt));const Ut=se(Pt);return Ut.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Dt.forEach(Zt=>{N(W,Zt,[]).push(Ut)}),Ut}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ma{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function er(c){return c&&1===c.nodeType}function Gr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function cl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(Gr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Dt=>{const Pt=v.computeStyle(et,Dt,W);gt.set(Dt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>Gr(qe,ce[Ve++])),De}function Er(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function sr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Ar(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function ba(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new mo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function eo(c,v,i){return new sl(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class va{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=va.initialStylesByElement.get(v);W||va.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(va.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Xs(c){let v=null;return c.forEach((i,m)=>{(function to(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Hr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class io{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Ut=>Ut instanceof Hr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Ut=>{Ut.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Dt=function Mt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Ut=>new Map(Ut));Dt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Dt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Xs(v[0]),v.length>1&&(m=Xs(v[v.length-1]))):v instanceof Map&&(i=Xs(v)),i||m?new va(c,i,m):null}(v,Dt);return new Hr(v,Dt,qe,Pt)}}const Io="@.disabled";class ya{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Io?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class qo extends ya{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Io?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function bo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function hl(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Oo{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new ya("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Zi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new Cs}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Zi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Oo(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new io},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Ir=He(38117),Ks=He(93887),Or=He(20546),rr=He(88652),Pr=He(19664),Bn=He(37542),fr=He(93331),Jo=He(7673),tc=He(33669),Nl=He(27468),Xh=He(86648),Yh=He(84572),Ac=He(91986),so=He(5964),Kh=He(23294),Va=He(25558),Lr=He(96354),Ic=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),vo=He(73703);const Zs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),dl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},ul=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Bn.PI),i=(0,e.WQX)(Zs,{optional:!0})||{};return{...dl,...i,enableLinkTracking:v,disabled:c}}}),pl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Oc(c){return{provide:pl,multi:!0,useClass:c}}function ic(c){return c?c.map(Oc):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const jl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new tr((0,e.WQX)(M.hE))});class tr{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,Jo.of)(this.title.getTitle())}}const Nc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new xa((0,e.WQX)(ul),(0,e.WQX)(Zi.kB,{optional:!0}),(0,e.WQX)(Zi.hb))});class xa{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,Jo.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Lo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Ns(c){return c instanceof fr.wF}function Fs(c){return"string"==typeof c?new RegExp(c):c}let yo=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Bn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?tc.D:(0,Ac.c)(this.config.delay);this.router.events.pipe((0,so.p)(Ns),(0,so.p)(function gl(c){const v=function ea(c){return c?Array.isArray(c)?c.map(Fs):[Fs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Fl(c,v){return(0,Kh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Lr.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ic.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Rc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Nl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,Jo.of)(void 0):(0,Xh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,vo.u)(void 0),(0,Ss.U)(void 0)):(0,Jo.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,Jo.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Yh.z)([m,W]).pipe((0,Lr.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(fr.Ix),e.KVO(ul),e.KVO(jl),e.KVO(Nc),e.KVO(Bn.kA),e.KVO(pl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Vl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Fc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})(),Fc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(Vl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})();var ml=He(45794),_r=He(41584),Ga=He(39974),ta=He(54360),Ur=He(58750);function ia(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?tc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ta._)(De,Dt=>{W&&(Ve=0),De.next(Dt)},void 0,Dt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Ut="number"==typeof m?(0,_r.O)(m):(0,Ur.Tg)(m(Dt,Ve)),Zt=(0,ta._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Ut.subscribe(Zt)}else Pt()}else De.error(Dt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),na=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Oi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),es=()=>["/admin/firmware"],as=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ss(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function Bs(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ss,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Rr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Gn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,as)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function pi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Lr.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(ml.tw),e.rXU(Ir.W4),e.rXU(Ke.G),e.rXU(Pr.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,Bs,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Rr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Gn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,pi,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Oi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,es)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Zi.Sq,Zi.bT,Pr.Mm,rr.$G,rr.tg,rr.do,rr.U0,rr.ZM,at.Zm,at.BC,at.vS,fr.Wk,fr.wQ,Pr.D9],styles:[".navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function or(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function wa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function gr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function _o(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,gr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Ro(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function sc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,sc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function zl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Ta,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Co(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function rc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,or,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,wa,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,_o,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Ro,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,zl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,Co,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function Sa(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function No(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let bl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Nl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Lr.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.fork$),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,rc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,Sa,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,No,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Zi.YU,Zi.bT,Pr.Mm,rr.ZM,Zi.vh,Pr.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[fr.n3,Yn,bl]})}return c})();class sn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const oc=[sn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let vl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forRoot(oc,{preloadingStrategy:fr.Kp}),fr.iI]})}return c})();var Fo=He(57786),ac=He(73028),yl=He(5779),js=He(21413),lc=He(33726),mr=He(983),Vs=He(71985),Gl=He(70152),sa=He(70980);function Qn(){return["Mac","iPhone","iPad","iPhone"].some(v=>navigator.platform.includes(v))?"apple":"pc"}function _l(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new js.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=_l(W.keys,Qn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,lc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,Gl.B)(this.sequenceDebounce),(0,ac.Z)(()=>{const gt=et;et="";const Dt=this.sequenceMaps.get(Ve);if(Dt.hotkeyMap.has(gt)){const Pt=Dt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,Jo.of)(Pt.hotkey)}return mr.w}))},W={...this.defaults,...i};let ce=_l(W.keys,Qn());return(()=>{const Ve={subject:new js.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,Jo.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Dt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Dt)}return Ve.subject.asObservable()})().pipe((0,na.Q)(this.dispose.pipe((0,so.p)(Ve=>Ve===ce))),(0,so.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,sa.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=_l(m.keys,Qn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,Jo.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new Vs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,na.Q)(this.dispose.pipe((0,so.p)(De=>De===W))))}removeShortcuts(i){(function Zh(c){return Array.isArray(c)?c:[c]})(i).map(W=>_l(W,Qn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Zi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Re=(()=>{class c{static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({imports:[Zi.MD]})}return c})();const Ue=new Ir.Vy("App");let Be=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Or.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Or.c.production&&Ir.Vy.enableProductionMode(),Ue.debug("init"),this.i18nService.init(Or.c.defaultLanguage,Or.c.supportedLanguages),this.subs.sink=(0,Nl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.subs.add(this.hotkeys.addShortcut({keys:this.keysBoundActive}).subscribe(i=>{console.log("ben"+i),this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))}setTitle(){const i=this.router.events.pipe((0,so.p)(m=>m instanceof fr.wF));(0,Fo.h)(this.translateService.onLangChange,i).pipe((0,Lr.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,so.p)(m=>"primary"===m.outlet),(0,ac.Z)(m=>m.data),(0,Ir.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(fr.Ix),e.rXU(fr.nX),e.rXU(M.hE),e.rXU(Pr.c$),e.rXU(Ke.G),e.rXU(Ir.W4),e.rXU(ut.d),e.rXU(yl.r1),e.rXU(qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[fr.n3]})}return c})();var We=He(31635);class pn{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class Dn extends pn{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class qs extends pn{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Hl extends pn{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Cl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof Dn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof qs?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Hl?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class cc extends Cl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Bo(){}function yh(c){return null==c?Bo:function(){return this.querySelector(c)}}function Vf(){return[]}function zf(c){return null==c?Vf:function(){return this.querySelectorAll(c)}}function jc(c){return function(){return this.matches(c)}}function $r(c){return function(v){return v.matches(c)}}var Gf=Array.prototype.find;function Vc(){return this.firstElementChild}var zc=Array.prototype.filter;function td(){return Array.from(this.children)}function lp(c){return new Array(c.length)}function Gc(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function Ch(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}Gc.prototype={constructor:Gc,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var ni="http://www.w3.org/1999/xhtml";const xn={svg:"http://www.w3.org/2000/svg",xhtml:ni,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ka(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),xn.hasOwnProperty(v)?{space:xn[v],local:c}:c}function Hc(c){return function(){this.removeAttribute(c)}}function hs(c){return function(){this.removeAttributeNS(c.space,c.local)}}function Uc(c,v){return function(){this.setAttribute(c,v)}}function ra(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function Bd(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function fp(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function fm(c){return function(){this.style.removeProperty(c)}}function gp(c,v,i){return function(){this.style.setProperty(c,v,i)}}function oo(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function dc(c,v){return c.style.getPropertyValue(v)||fp(c).getComputedStyle(c,null).getPropertyValue(v)}function ka(c){return function(){delete this[c]}}function kl(c,v){return function(){this[c]=v}}function $f(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function bp(c){return c.trim().split(/^|\s+/)}function Th(c){return c.classList||new Sh(c)}function Sh(c){this._node=c,this._names=bp(c.getAttribute("class")||"")}function kh(c,v){for(var i=Th(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var qc=[null];function br(c,v){this._groups=c,this._parents=v}function Xd(){return new br([[document.documentElement]],qc)}br.prototype=Xd.prototype={constructor:br,select:function rp(c){"function"!=typeof c&&(c=yh(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=wi+1);!(Bi=Yt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function Wf(c){function v(Dt,Pt){return Dt&&Pt?c(Dt.__data__,Pt.__data__):!Dt-!Pt}c||(c=hc);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?fm:"function"==typeof v?oo:gp)(c,v,i??"")):dc(this.node(),c)},property:function mp(c,v){return arguments.length>1?this.each((null==v?ka:"function"==typeof v?$f:kl)(c,v)):this.node()[c]},classed:function Vd(c,v){var i=bp(c+"");if(arguments.length<2){for(var m=Th(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?Ah:Kc,W=0;W{}};function Qc(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?hd(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?hd(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=Xl.exec(c))?new ao(v[1],v[2],v[3],1):(v=vc.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=ar.exec(c))?hd(v[1],v[2],v[3],v[4]):(v=wp.exec(c))?hd(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=Jd.exec(c))?Tp(v[1],v[2]/100,v[3]/100,1):(v=ld.exec(c))?Tp(v[1],v[2]/100,v[3]/100,v[4]):eu.hasOwnProperty(c)?ih(eu[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function ih(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function hd(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function Rh(c,v,i,m){return 1===arguments.length?function gm(c){return c instanceof $l||(c=Yl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}`}function nu(){const c=su(this.opacity);return`${1===c?"rgb(":"rgba("}${nh(this.r)}, ${nh(this.g)}, ${nh(this.b)}${1===c?")":`, ${c})`}`}function su(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function nh(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function sh(c){return((c=nh(c))<16?"0":"")+c.toString(16)}function Tp(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ea(c,v,i,m)}function ru(c){if(c instanceof Ea)return new Ea(c.h,c.s,c.l,c.opacity);if(c instanceof $l||(c=Yl(c)),!c)return new Ea;if(c instanceof Ea)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ea(De,Ve,qe,c.opacity)}function Ea(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function Sp(c){return(c=(c||0)%360)<0?c+360:c}function kp(c){return Math.max(0,Math.min(1,c||0))}function dd(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function Za(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}eh($l,Yl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:cd,formatHex:cd,formatHex8:function th(){return this.rgb().formatHex8()},formatHsl:function Jf(){return ru(this).formatHsl()},formatRgb:tu,toString:tu}),eh(ao,Rh,Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(nh(this.r),nh(this.g),nh(this.b),su(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function eg(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}${sh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nu,toString:nu})),eh(Ea,function zo(c,v,i,m){return 1===arguments.length?ru(c):new Ea(c,v,i,m??1)},Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new Ea(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ea(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(dd(c>=240?c-240:c+120,W,m),dd(c,W,m),dd(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ea(Sp(this.h),kp(this.s),kp(this.l),su(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=su(this.opacity);return`${1===c?"hsl(":"hsla("}${Sp(this.h)}, ${100*kp(this.s)}%, ${100*kp(this.l)}%${1===c?")":`, ${c})`}`}}));const au=c=>()=>c;function lu(c,v){var i=v-c;return i?function tg(c,v){return function(i){return c+i*v}}(c,i):au(isNaN(c)?v:c)}const cu=function c(v){var i=function mm(c){return 1==(c=+c)?lu:function(v,i){return i-v?function Mp(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):au(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=Rh(W)).r,(ce=Rh(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=lu(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function Dp(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return Za((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Go(m,W)})),i=Nh.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--Ho}()}finally{Ho=0,function Wt(){for(var c,i,v=jh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:jh=i);pd=c,Qt(m)}(),Kl=0}}function Vt(){var c=ah.now(),v=c-fd;v>fu&&(Vh-=v,fd=c)}function Qt(c){Ho||(rh&&(rh=clearTimeout(rh)),c-Kl>24?(c<1/0&&(rh=setTimeout(ft,c-ah.now()-Vh)),oh&&(oh=clearInterval(oh))):(oh||(fd=ah.now(),oh=setInterval(Vt,fu)),Ho=1,be(ft)))}function ii(c,v,i){var m=new we;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}we.prototype=Ne.prototype={constructor:we,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?je():+i)+(null==v?0:+v),!this._next&&pd!==this&&(pd?pd._next=this:jh=this,pd=this),this._call=c,this._time=i,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var Ci=Jc("start","end","cancel","interrupt"),_i=[],Ai=0,fn=3;function En(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Dt,Pt,Ut;if(1!==i.state)return qe();for(gt in m)if((Ut=m[gt]).name===i.name){if(Ut.state===fn)return ii(De);4===Ut.state?(Ut.state=6,Ut.timer.stop(),Ut.on.call("interrupt",c,c.__data__,Ut.index,Ut.group),delete m[gt]):+gtAi)throw new Error("too late; already scheduled");return i}function An(c,v){var i=qn(c,v);if(i.state>fn)throw new Error("too late; already running");return i}function qn(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var xe,wr=180/Math.PI,lo={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Dt.push(W(Dt)+"rotate(",null,m)-2,x:Go(et,gt)})):gt&&Dt.push(W(Dt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Dt,Pt),function Ve(et,gt,Dt,Pt){et!==gt?Pt.push({i:Dt.push(W(Dt)+"skewX(",null,m)-2,x:Go(et,gt)}):gt&&Dt.push(W(Dt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Dt,Pt),function qe(et,gt,Dt,Pt,Ut,Zt){if(et!==Dt||gt!==Pt){var hi=Ut.push(W(Ut)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Go(et,Dt)},{i:hi-2,x:Go(gt,Pt)})}else(1!==Dt||1!==Pt)&&Ut.push(W(Ut)+"scale("+Dt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Dt,Pt),et=gt=null,function(Ut){for(var Yt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Zn:An;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function Jn(c,v){var i=Ka(c),m="transform"===i?Ie:oi;return this.attrTween(c,"function"==typeof v?(i.local?nn:Cn)(i,m,ai(this,"attr."+c,v)):null==v?(i.local?qi:Pi)(i):(i.local?tn:Yi)(i,m,v))},attrTween:function Uo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=Ka(c);return this.tween(i,(m.local?cr:co)(m,v))},style:function rb(c,v,i){var m="transform"==(c+="")?ue:oi;return null==v?this.styleTween(c,function cg(c,v){var i,m,W;return function(){var ce=dc(this,c),De=(this.style.removeProperty(c),dc(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Cc(c)):"function"==typeof v?this.styleTween(c,function nb(c,v,i){var m,W,ce;return function(){var De=dc(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=dc(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,ai(this,"style."+c,v))).each(function sb(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=An(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Cc(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function Op(c,v,i){var m,ce,W=i+"";return function(){var De=dc(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Ew(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Dw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function Mw(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function Aw(c){return this.tween("text","function"==typeof c?function ym(c){return function(){var v=c(this);this.textContent=v??""}}(ai(this,"text",c)):function vm(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function hx(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function ob(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Iw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function ib(){return this.on("end.remove",function rx(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function zt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=qn(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Wl.prototype.transition=function gx(c){var v,i;c instanceof ch?(v=c._id,c=c._name):(v=xm(),(i=lb).time=je(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function Rp(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function gg(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<0?et=Dt+1:gt=Dt}while(etNr(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===Nr||c===Rp?c:fb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Dt=W(Ve,qe,et,gt-1);return Dt>et&&m(Ve[Dt-1],qe)>-m(Ve[Dt],qe)?Dt-1:Dt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<=0?et=Dt+1:gt=Dt}while(et=kx?10:ce>=gb?5:ce>=Mx?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etho(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(bb.setTime(+ce),vb.setTime(+De),c(bb),c(vb),Math.floor(i(bb,vb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Tm=ho(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Tm.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?ho(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Tm:null);const vu=ho(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*uh)},(c,v)=>(v-c)/uh,c=>c.getUTCSeconds()),yu=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getMinutes()),km=ho(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getUTCMinutes()),bg=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh-c.getMinutes()*Il)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getHours()),Mm=ho(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getUTCHours()),ha=ho(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Il)/Zl,c=>c.getDate()-1),xb=(ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>c.getUTCDate()-1),ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>Math.floor(c/Zl)));function xu(c){return ho(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Il)/mb)}const vg=xu(0);function zh(c){return ho(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/mb)}xu(1),xu(2),xu(3),xu(4),xu(5),xu(6);const Tb=zh(0),Om=(zh(1),zh(2),zh(3),zh(4),zh(5),zh(6),ho(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),zp=ho(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),Gp=ho(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());Gp.every=c=>isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const _g=ho(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function Pm(c,v,i,m,W,ce){const De=[[vu,1,uh],[vu,5,5e3],[vu,15,15e3],[vu,30,3e4],[ce,1,Il],[ce,5,5*Il],[ce,15,15*Il],[ce,30,30*Il],[W,1,ph],[W,3,3*ph],[W,6,6*ph],[W,12,12*ph],[m,1,Zl],[m,2,2*Zl],[i,1,mb],[v,1,Ex],[v,3,3*Ex],[c,1,Fp]];function qe(et,gt,Dt){const Pt=Math.abs(gt-et)/Dt,Ut=gg(([,,Yt])=>Yt).right(De,Pt);if(Ut===De.length)return c.every(wm(et/Fp,gt/Fp,Dt));if(0===Ut)return Tm.every(Math.max(wm(et,gt,Dt),1));const[Zt,hi]=De[Pt/De[Ut-1][2]isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Lm,Cg]=Pm(_g,zp,Tb,xb,Mm,km),[Db,Rm]=Pm(Gp,Om,vg,ha,bg,yu);var vd=new Date,wg=new Date;function ql(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return vd.setTime(+ce),wg.setTime(+De),c(vd),c(wg),Math.floor(i(vd,wg))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const Hp=864e5,Eb=7*Hp;function Gh(c){return ql(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/Eb})}var In=Gh(0),Up=Gh(1),yd=(Gh(2),Gh(3),Gh(4));const jm=(Gh(5),Gh(6),ql(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/Hp},function(c){return c.getUTCDate()-1}));function xd(c){return ql(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/Eb})}var Nb=xd(0),kg=xd(1),wu=(xd(2),xd(3),xd(4));const Mg=(xd(5),xd(6),ql(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/Hp,c=>c.getDate()-1));var Vm=ql(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});Vm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const $p=Vm;var Dg=ql(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});Dg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const Xp=Dg;function Yp(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function zm(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function Kp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Bb={"-":"",_:" ",0:"0"},uo=/^\s*\d+/,Tc=/^%/,Gm=/[\\^$*+?|[\]().{}]/g;function ys(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Eg(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Xw(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function Vb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=uo.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Zp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Wm(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function fh(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function e_(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function zb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function $m(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function Gb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function qp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function Hb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function ku(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Qp(c,v,i){var m=uo.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Xm(c,v,i){var m=Tc.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Jp(c,v,i){var m=uo.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Ub(c,v,i){var m=uo.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ys(c.getDate(),v,2)}function t_(c,v){return ys(c.getHours(),v,2)}function i_(c,v){return ys(c.getHours()%12||12,v,2)}function n_(c,v){return ys(1+Mg.count($p(c),c),v,3)}function Wb(c,v){return ys(c.getMilliseconds(),v,3)}function s_(c,v){return Wb(c,v)+"000"}function r_(c,v){return ys(c.getMonth()+1,v,2)}function $b(c,v){return ys(c.getMinutes(),v,2)}function Xb(c,v){return ys(c.getSeconds(),v,2)}function Yb(c){var v=c.getDay();return 0===v?7:v}function Kb(c,v){return ys(Nb.count($p(c)-1,c),v,2)}function ef(c){var v=c.getDay();return v>=4||0===v?wu(c):wu.ceil(c)}function o_(c,v){return c=ef(c),ys(wu.count($p(c),c)+(4===$p(c).getDay()),v,2)}function Yw(c){return c.getDay()}function a_(c,v){return ys(kg.count($p(c)-1,c),v,2)}function l_(c,v){return ys(c.getFullYear()%100,v,2)}function Zb(c,v){return ys((c=ef(c)).getFullYear()%100,v,2)}function c_(c,v){return ys(c.getFullYear()%1e4,v,4)}function h_(c,v){var i=c.getDay();return ys((c=i>=4||0===i?wu(c):wu.ceil(c)).getFullYear()%1e4,v,4)}function qb(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ys(v/60|0,"0",2)+ys(v%60,"0",2)}function Ag(c,v){return ys(c.getUTCDate(),v,2)}function Qb(c,v){return ys(c.getUTCHours(),v,2)}function tf(c,v){return ys(c.getUTCHours()%12||12,v,2)}function nf(c,v){return ys(1+jm.count(Xp(c),c),v,3)}function Mu(c,v){return ys(c.getUTCMilliseconds(),v,3)}function d_(c,v){return Mu(c,v)+"000"}function u_(c,v){return ys(c.getUTCMonth()+1,v,2)}function p_(c,v){return ys(c.getUTCMinutes(),v,2)}function Ig(c,v){return ys(c.getUTCSeconds(),v,2)}function Km(c){var v=c.getUTCDay();return 0===v?7:v}function f_(c,v){return ys(In.count(Xp(c)-1,c),v,2)}function g_(c){var v=c.getUTCDay();return v>=4||0===v?yd(c):yd.ceil(c)}function Kw(c,v){return c=g_(c),ys(yd.count(Xp(c),c)+(4===Xp(c).getUTCDay()),v,2)}function m_(c){return c.getUTCDay()}function b_(c,v){return ys(Up.count(Xp(c)-1,c),v,2)}function Zw(c,v){return ys(c.getUTCFullYear()%100,v,2)}function v_(c,v){return ys((c=g_(c)).getUTCFullYear()%100,v,2)}function qw(c,v){return ys(c.getUTCFullYear()%1e4,v,4)}function y_(c,v){var i=c.getUTCDay();return ys((c=i>=4||0===i?yd(c):yd.ceil(c)).getUTCFullYear()%1e4,v,4)}function x_(){return"+0000"}function Jb(){return"%"}function Og(c){return+c}function Du(c){return Math.floor(+c/1e3)}function Eu(c){return null===c?NaN:+c}!function __(c){(function Qx(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Tu(W),gt=Su(W),Dt=Tu(ce),Pt=Su(ce),Ut=Tu(De),Zt=Su(De),hi=Tu(Ve),Yt=Su(Ve),di=Tu(qe),wi=Su(qe),gi={a:function Ei(Ii){return De[Ii.getDay()]},A:function ji(Ii){return ce[Ii.getDay()]},b:function Wi(Ii){return qe[Ii.getMonth()]},B:function Nn(Ii){return Ve[Ii.getMonth()]},c:null,d:Ym,e:Ym,f:s_,g:Zb,G:h_,H:t_,I:i_,j:n_,L:Wb,m:r_,M:$b,p:function ts(Ii){return W[+(Ii.getHours()>=12)]},q:function Wn(Ii){return 1+~~(Ii.getMonth()/3)},Q:Og,s:Du,S:Xb,u:Yb,U:Kb,V:o_,w:Yw,W:a_,x:null,X:null,y:l_,Y:c_,Z:qb,"%":Jb},ki={a:function Yr(Ii){return De[Ii.getUTCDay()]},A:function ds(Ii){return ce[Ii.getUTCDay()]},b:function Kr(Ii){return qe[Ii.getUTCMonth()]},B:function Ll(Ii){return Ve[Ii.getUTCMonth()]},c:null,d:Ag,e:Ag,f:d_,g:v_,G:y_,H:Qb,I:tf,j:nf,L:Mu,m:u_,M:p_,p:function is(Ii){return W[+(Ii.getUTCHours()>=12)]},q:function Zr(Ii){return 1+~~(Ii.getUTCMonth()/3)},Q:Og,s:Du,S:Ig,u:Km,U:f_,V:Kw,w:m_,W:b_,x:null,X:null,y:Zw,Y:qw,Z:x_,"%":Jb},Bi={a:function Ln(Ii,gn,Vn){var xi=Ut.exec(gn.slice(Vn));return xi?(Ii.w=Zt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},A:function Ui(Ii,gn,Vn){var xi=Dt.exec(gn.slice(Vn));return xi?(Ii.w=Pt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},b:function Un(Ii,gn,Vn){var xi=di.exec(gn.slice(Vn));return xi?(Ii.m=wi.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},B:function Ri(Ii,gn,Vn){var xi=hi.exec(gn.slice(Vn));return xi?(Ii.m=Yt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},c:function Ji(Ii,gn,Vn){return ln(Ii,v,gn,Vn)},d:zb,e:zb,f:Qp,g:Zp,G:Um,H:Gb,I:Gb,j:$m,L:ku,m:e_,M:qp,p:function ps(Ii,gn,Vn){var xi=et.exec(gn.slice(Vn));return xi?(Ii.p=gt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},q:fh,Q:Jp,s:Ub,S:Hb,u:Hm,U:Xw,V:jb,w:Eg,W:Vb,x:function Qs(Ii,gn,Vn){return ln(Ii,i,gn,Vn)},X:function yi(Ii,gn,Vn){return ln(Ii,m,gn,Vn)},y:Zp,Y:Um,Z:Wm,"%":Xm};function Mi(Ii,gn){return function(Vn){var Yo,mn,ur,xi=[],dr=-1,Es=0,Xo=Ii.length;for(Vn instanceof Date||(Vn=new Date(+Vn));++dr53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Xo=(Es=zm(Kp(xi.y,0,1))).getUTCDay(),Es=Xo>4||0===Xo?Up.ceil(Es):Up(Es),Es=jm.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Xo=(Es=Yp(Kp(xi.y,0,1))).getDay(),Es=Xo>4||0===Xo?kg.ceil(Es):kg(Es),Es=Mg.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Xo="Z"in xi?zm(Kp(xi.y,0,1)).getUTCDay():Yp(Kp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Xo+5)%7:xi.w+7*xi.U-(Xo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,zm(xi)):Yp(xi)}}function ln(Ii,gn,Vn,xi){for(var Yo,mn,dr=0,Es=gn.length,Xo=Vn.length;dr=Xo)return-1;if(37===(Yo=gn.charCodeAt(dr++))){if(Yo=gn.charAt(dr++),!(mn=Bi[Yo in Bb?gn.charAt(dr++):Yo])||(xi=mn(Ii,Vn,xi))<0)return-1}else if(Yo!=Vn.charCodeAt(xi++))return-1}return xi}return gi.x=Mi(i,gi),gi.X=Mi(m,gi),gi.c=Mi(v,gi),ki.x=Mi(i,ki),ki.X=Mi(m,ki),ki.c=Mi(v,ki),{format:function(Ii){var gn=Mi(Ii+="",gi);return gn.toString=function(){return Ii},gn},parse:function(Ii){var gn=an(Ii+="",!1);return gn.toString=function(){return Ii},gn},utcFormat:function(Ii){var gn=Mi(Ii+="",ki);return gn.toString=function(){return Ii},gn},utcParse:function(Ii){var gn=an(Ii+="",!0);return gn.toString=function(){return Ii},gn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const nv=gg(Nr).right,sv=(gg(Eu),nv);function w_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function S_(c){return+c}var rv=[0,1];function Uh(c){return c}function _d(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function T_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function Pg(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Lg:Pg,qe=et=null,Dt}function Dt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Dt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Go)))(Pt)))},Dt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,S_),gt()):c.slice()},Dt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Dt.rangeRound=function(Pt){return v=Array.from(Pt),i=w_,gt()},Dt.clamp=function(Pt){return arguments.length?(De=!!Pt||Uh,gt()):De!==Uh},Dt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Dt.unknown=function(Pt){return arguments.length?(ce=Pt,Dt):ce},function(Pt,Ut){return m=Pt,W=Ut,gt()}}()(Uh,Uh)}function Cd(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Qm,O_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function gh(c){if(!(v=O_.exec(c)))throw new Error("invalid format: "+c);var v;return new Au({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function Au(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function af(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Iu(c){return(c=af(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}gh.prototype=Au.prototype,Au.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function P_(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function R_(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Qm=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+af(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function Rg(c){return c}var cf,uv,N_,dv=Array.prototype.map,Jm=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function j_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function Dx(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=mg(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function wd(){var c=ov();return c.copy=function(){return function M_(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,wd())},Cd.apply(c,arguments),j_(c)}function t0(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(dv.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?Rg:function L_(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(dv.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Dt){var Pt=(Dt=gh(Dt)).fill,Ut=Dt.align,Zt=Dt.sign,hi=Dt.symbol,Yt=Dt.zero,di=Dt.width,wi=Dt.comma,gi=Dt.precision,ki=Dt.trim,Bi=Dt.type;"n"===Bi?(wi=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Yt||"0"===Pt&&"="===Ut)&&(Yt=!0,Pt="0",Ut="=");var Mi="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",an="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Ln(Ui){var Ji,Qs,yi,Un=Mi,Ri=an;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function lf(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?Jm[8+Qm/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Qs=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}wi&&!Yt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Ln.toString=function(){return Dt+""},Ln}return{format:et,formatPrefix:function gt(Dt,Pt){var Ut=et(((Dt=gh(Dt)).type="f",Dt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Iu(Pt)/3))),hi=Math.pow(10,-Zt),Yt=Jm[8+Zt/3];return function(di){return Ut(hi*di)+Yt}}}}(c),uv=cf.format,N_=cf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=r0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(s0(this,v))}has(v){return super.has(s0(this,v))}set(v,i){return super.set(function pv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function Wh({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function s0({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function r0(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const Ng=Symbol("implicit");function o0(){var c=new n0,v=[],i=[],m=Ng;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==Ng)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return o0(v,i).unknown(m)},Cd.apply(W,arguments),W}function Fg(){var ce,De,c=o0().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Dt(){var Pt=v().length,Ut=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function hf(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?df:c<=-1?-df:Math.asin(c)}const kd=Math.PI,h0=2*kd,Md=1e-6,G_=h0-Md;function mv(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return mv;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;WMd)if(Math.abs(Dt*qe-et*gt)>Md&&ce){let Ut=m-De,Zt=W-Ve,hi=qe*qe+et*et,Yt=Ut*Ut+Zt*Zt,di=Math.sqrt(hi),wi=Math.sqrt(Pt),gi=ce*Math.tan((kd-Math.acos((hi+Pt-Yt)/(2*di*wi)))/2),ki=gi/wi,Bi=gi/di;Math.abs(ki-1)>Md&&this._append`L${v+ki*gt},${i+ki*Dt}`,this._append`A${ce},${ce},0,0,${+(Dt*Ut>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Dt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>Md||Math.abs(this._y1-gt)>Md)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%h0+h0),Pt>G_?this._append`A${m},${m},0,1,${Dt},${v-Ve},${i-qe}A${m},${m},0,1,${Dt},${this._x1=et},${this._y1=gt}`:Pt>Md&&this._append`A${m},${m},0,${+(Pt>=kd)},${Dt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function W_(c){return c.innerRadius}function $_(c){return c.outerRadius}function bv(c){return c.startAngle}function vv(c){return c.endAngle}function d0(c){return c&&c.padAngle}function Gg(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/kc(Ve*Ve+qe*qe),gt=et*qe,Dt=-et*Ve,Pt=c+gt,Ut=v+Dt,Zt=i+gt,hi=m+Dt,Yt=(Pt+Zt)/2,di=(Ut+hi)/2,wi=Zt-Pt,gi=hi-Ut,ki=wi*wi+gi*gi,Bi=W-ce,Mi=Pt*hi-Zt*Ut,an=(gi<0?-1:1)*kc(c0(0,Bi*Bi*ki-Mi*Mi)),ln=(Mi*gi-wi*an)/ki,ps=(-Mi*wi-gi*an)/ki,Ln=(Mi*gi+wi*an)/ki,Ui=(-Mi*wi+gi*an)/ki,Un=ln-Yt,Ri=ps-di,Ji=Ln-Yt,Qs=Ui-di;return Un*Un+Ri*Ri>Ji*Ji+Qs*Qs&&(ln=Ln,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Dt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function Hg(){var c=W_,v=$_,i=Wo(0),m=null,W=bv,ce=vv,De=d0,Ve=null,qe=function zg(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Vg(v)}(et);function et(){var gt,Dt,Pt=+c.apply(this,arguments),Ut=+v.apply(this,arguments),Zt=W.apply(this,arguments)-df,hi=ce.apply(this,arguments)-df,Yt=Ou(hi-Zt),di=hi>Zt;if(Ve||(Ve=gt=qe()),UtJa)if(Yt>uf-Ja)Ve.moveTo(Ut*Sd(Zt),Ut*So(Zt)),Ve.arc(0,0,Ut,Zt,hi,!di),Pt>Ja&&(Ve.moveTo(Pt*Sd(hi),Pt*So(hi)),Ve.arc(0,0,Pt,hi,Zt,di));else{var Ri,Ji,wi=Zt,gi=hi,ki=Zt,Bi=hi,Mi=Yt,an=Yt,ln=De.apply(this,arguments)/2,ps=ln>Ja&&(m?+m.apply(this,arguments):kc(Pt*Pt+Ut*Ut)),Ln=jg(Ou(Ut-Pt)/2,+i.apply(this,arguments)),Ui=Ln,Un=Ln;if(ps>Ja){var Qs=gv(ps/Pt*So(ln)),yi=gv(ps/Ut*So(ln));(Mi-=2*Qs)>Ja?(ki+=Qs*=di?1:-1,Bi-=Qs):(Mi=0,ki=Bi=(Zt+hi)/2),(an-=2*yi)>Ja?(wi+=yi*=di?1:-1,gi-=yi):(an=0,wi=gi=(Zt+hi)/2)}var Ei=Ut*Sd(wi),ji=Ut*So(wi),Wi=Pt*Sd(Bi),Nn=Pt*So(Bi);if(Ln>Ja){var Kr,ts=Ut*Sd(gi),Wn=Ut*So(gi),Yr=Pt*Sd(ki),ds=Pt*So(ki);if(Yt<$h)if(Kr=function yv(c,v,i,m,W,ce,De,Ve){var qe=i-c,et=m-v,gt=De-W,Dt=Ve-ce,Pt=Dt*qe-gt*et;if(!(Pt*Pt1?0:c<-1?$h:Math.acos(c)}((Ll*Zr+is*Ii)/(kc(Ll*Ll+is*is)*kc(Zr*Zr+Ii*Ii)))/2),Vn=kc(Kr[0]*Kr[0]+Kr[1]*Kr[1]);Ui=jg(Ln,(Pt-Vn)/(gn-1)),Un=jg(Ln,(Ut-Vn)/(gn+1))}else Ui=Un=0}an>Ja?Un>Ja?(Ri=Gg(Yr,ds,Ei,ji,Ut,Un,di),Ji=Gg(ts,Wn,Wi,Nn,Ut,Un,di),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),UnJa&&Mi>Ja?Ui>Ja?(Ri=Gg(Wi,Nn,ts,Wn,Pt,-Ui,di),Ji=Gg(Ei,ji,Yr,ds,Pt,-Ui,di),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function X_(c){return c}var u0=He(76021);const p0=["caretElm"],wv=c=>({model:c});function f0(c,v){}function g0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,f0,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,wv,i.context))}}function Z_(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function q_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function Q_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Tv=["*"];function Sv(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function m0(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const d1=["ngx-charts-svg-radial-gradient",""];function fT(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const f1=["ngx-charts-count-up",""];function Vv(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function mT(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function m1(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function zv(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function v0(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function b1(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function v1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,m1,1,2,"div",11)(3,zv,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,v0,1,2,"div",14)(7,b1,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const y1=["tooltipTemplate"],ff=(c,v)=>[c,v],sy=["ngx-charts-pie-label",""],Bu=["ngx-charts-pie-arc",""];function ju(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Vu=["ngx-charts-pie-series",""];function zu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Gu(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,zu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function my(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function dS(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:my(ce.value,c,v)}),this[W]}}}}var Hn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Hn||{});function qg(c,v,i){return i===Hn.Top?c.top-7:i===Hn.Bottom?c.top+c.height-v.height+7:i===Hn.Center?c.top+c.height/2-v.height/2:void 0}function Qg(c,v,i){return i===Hn.Left?c.left-7:i===Hn.Right?c.left+c.width-v.width+7:i===Hn.Center?c.left+c.width/2-v.width/2:void 0}class hr{static calculateVerticalAlignment(v,i,m){let W=qg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Hn.Top&&(ce=v.height/2-m.height/2+7),W===Hn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Hn.Center&&(ce=i.height/2-m.height/2);const De=qg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Qg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Hn.Left&&(ce=v.width/2-m.width/2+7),W===Hn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Hn.Center&&(ce=i.width/2-m.width/2);const De=Qg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Hn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Hn.Left&&v.left-i.width-W<0&&(ce=!0),m===Hn.Top&&v.top-i.height-W<0&&(ce=!0),m===Hn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=-7,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Left?(Ve=i.width,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Top?(De=i.height,Ve=hr.calculateHorizontalCaret(m,i,W,ce)):v===Hn.Bottom&&(De=-7,Ve=hr.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=m.left+m.width+W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Left?(Ve=m.left-i.width-W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Top?(De=m.top-i.height-W,Ve=hr.calculateHorizontalAlignment(m,i,ce)):v===Hn.Bottom&&(De=m.top+m.height+W,Ve=hr.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(hr.shouldFlip(m,i,v,W)){if(v===Hn.Right)return Hn.Left;if(v===Hn.Left)return Hn.Right;if(v===Hn.Top)return Hn.Bottom;if(v===Hn.Bottom)return Hn.Top}return v}}let rC=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Zi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=hr.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=hr.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=hr.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(p0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,g0,2,4,"span",3)(5,Z_,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Zi.bT,Zi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,We.Cg)([dS(100)],c.prototype,"onWindowResize",null),c})();class by{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let Pl=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function Dc(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new cc(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new Dn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),el=(()=>{class c extends by{constructor(i){super(i),this.type=rC}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(Pl))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Od=function(c){return c.Right="right",c.Below="below",c}(Od||{}),Uu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Uu||{}),wn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(wn||{});let vy=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function Df(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Jg=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Wu=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=Df(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,q_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,Q_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Jg,Zi.bT,Zi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),yy=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Od,this.LegendType=Uu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Od.Right)&&(i=this.legendType===Uu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Od.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===wn.Linear?Uu.ScaleLegend:Uu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([el]),e.OA$],ngContentSelectors:Tv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Sv,1,5,"ngx-charts-scale-legend",2)(4,m0,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[vy,Wu,Zi.bT],encapsulation:2,changeDetection:0}),c})(),xy=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function _y(c){return"[object Date]"===toString.call(c)}let I0=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=wn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Zi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new xy(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Zi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function wy(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var P0=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(P0||{});let Ty=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD]]}),c})();var Ef=function(c){return c.popover="popover",c.tooltip="tooltip",c}(Ef||{}),$u=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}($u||{});let L0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Hn.Top,this.tooltipAlignment=Hn.Center,this.tooltipType=Ef.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=$u.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.focus}get listensForHover(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(el),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),em=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[Pl,el],imports:[[Zi.MD]]}),c})();const Sy={};function Pd(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,Sy[c]?Pd():(Sy[c]=!0,c)}var Ec=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(Ec||{});let N0=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:d1,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,fT,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Zi.Sq],encapsulation:2,changeDetection:0}),c})();function F0(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function B0(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Dt;function Pt(Ut){let Zt;const hi=Ut-Dt;Zt=Ve?ce-F0(hi,0,ce-De,gt):F0(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Yt=hiPt(di))}return requestAnimationFrame(Ut=>(Dt=Ut,Pt(Ut)))}let Of,My=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function dC(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=B0(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:f1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?Of=window:typeof global<"u"&&(Of=global);let V0=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=Df(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:wy(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,Vv,1,2,"div",1)(2,mT,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,v1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[My,Zi.bT,Zi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),tl=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD,Ty,em],Zi.MD,Ty,em]}),c})();const Pf=[{name:"vivid",selectable:!0,group:wn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:wn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:wn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:wn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:wn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:wn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:wn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:wn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:wn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:wn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:wn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:wn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:wn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:wn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:wn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class nm{constructor(v,i,m,W){"string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),i){case wn.Quantile:W=hf().range(v.domain).domain(m);break;case wn.Ordinal:W=o0().range(v.domain).domain(m);break;case wn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=t0(0,1,1/ce.length);W=wd().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===wn.Linear){const i=wd().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=wd().domain(this.domain).range([0,1]),W=Fg().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Dt=[];for(Dt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Dt.push({color:Pt,offset:Ut,opacity:1}),gt=Ut,et++}}if(Dt[Dt.length-1].offset<100&&Dt.push({color:ce,offset:qe,opacity:1}),qe===De)Dt[0].offset=0,Dt[1].offset=100;else if(100!==Dt[Dt.length-1].offset)for(const Pt of Dt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Dt}}let Ku=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),da=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})();u0();let Py=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),CC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),W0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),SC=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=wy}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Zi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=Hg().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=Ec,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Pd().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),Hg().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=qa(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Bu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,ju,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[N0,Zi.bT],encapsulation:2,changeDetection:0}),c})(),Ly=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Hn,this.styleTypes=Ef}ngOnChanges(i){this.update()}update(){const m=function Y_(){var c=X_,v=Cv,i=null,m=Wo(0),W=Wo(uf),ce=Wo(0);function De(Ve){var qe,gt,Dt,di,ki,et=(Ve=function _v(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Ut=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Yt=Math.min(uf,Math.max(-uf,W.apply(this,arguments)-hi)),wi=Math.min(Math.abs(Yt)/et,ce.apply(this,arguments)),gi=wi*(Yt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Ut.sort(function(Bi,Mi){return v(Zt[Bi],Zt[Mi])}):null!=i&&Ut.sort(function(Bi,Mi){return i(Ve[Bi],Ve[Mi])}),qe=0,Dt=Pt?(Yt-et*gi)/Pt:0;qe0?ki*Dt:0)+gi,padAngle:wi};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:Wo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:Wo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:Wo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:Wo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function K_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return Hg().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return Df(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=Df(i.data.value);return`\n ${function A0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Vu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Gu,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[SC,kC,Zi.Sq,Zi.bT,L0],encapsulation:2,changeDetection:0}),c})(),Nf=(()=>{class c extends I0{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function uC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=wn.Ordinal,legendPosition:Dt=Od.Right,columns:Pt=12}){let Ut=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Dt===Od.Right&&(Pt-=gt===wn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Ut+=De,Ut+=10,qe&&(Zt-=30,Ut+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Ut)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new nm(this.scheme,wn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,y1,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,ff,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[yy,Ly,V0],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),$0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Ny=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,W0]]}),c})(),IC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),PC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Fy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,da]]}),c})(),Ff=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),NC=(()=>{class c{constructor(){!function RC(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[tl,Ku,da,Py,_C,CC,Ff,W0,Ny,IC,$0,PC,Fy]}),c})();var lm=He(91346),By=He(12168),BC=He(38833),cm=He(46247),jC=He(41570);const Y0=()=>({width:"75vw"}),VC=()=>[10,25,50];function jy(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Vy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function zC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function GC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function HC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function K0(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function UC(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const WC=[sn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getStats()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Dt=et._TS;return gt>Dt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new lm.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Nl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Lr.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Pr.c$),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,jy,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Vy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,zC,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,GC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,HC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,K0,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,UC,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,Y0)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,VC))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Zi.bT,Nf,Pr.Mm,lm.S6,cm.XI,yl.Ei,cm.Tg,cm.yc,jC.l,Pr.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Ir.o6)("dashboard")}}])];let $C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forChild(WC),fr.iI]})}return c})(),XC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:lm.SV,useFactory:()=>[By,BC]}],imports:[Bt,NC,$C,Zi.MD,at.X1,Pr.h,lm.Fr,Ks.G]})}return c})(),YC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Zi.MD,Pr.h,rr.UN,at.YN,fr.iI]})}return c})(),KC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Be]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Pr.h.forRoot(),Re,rr.UN,Ir.Ui,Ks.G,YC,XC,ml._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Bn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Bn.JV.TRACKING,trackerUrl:Or.c.trackerUrl,siteId:Or.c.siteId}),Vl,vl]})}return c})();Or.c.production&&(0,e.SmG)(),M.sG().bootstrapModule(KC,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Mt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Mt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Mt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>mo,B3:()=>Ki,Jj:()=>bn,MD:()=>ga,N0:()=>ba,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>er,VF:()=>Z,Vy:()=>ll,XO:()=>r,Xr:()=>sr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>Js,fG:()=>ns,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>os,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Oi=>+Oi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Oi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),es=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Oi,Xn,es),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Oi,ci=[];for(;ut;){if(Oi=Fe.exec(ut),!Oi){ci.push(ut);break}{ci=ci.concat(Oi.slice(1));const as=ci.pop();if(!as)break;ut=as}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function ui(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Jt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let es="";return ci.forEach(as=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Mt(1);break;case"YY":ut=Mt(2,!0);break;case"YYY":ut=Mt(3);break;case"YYYY":ut=Mt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(as);es+=Sn?Sn(Et,Ke,Xn):"''"===as?"'":as.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),es}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Oi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Oi]);break;case"long":const Xn=_e(Ge,"longTime"),es=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,es]);break;case"full":const as=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[as,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Oi>-Ke)&&(Oi+=Ke),Ge===ee.Hours)0===Oi&&-12===Ke&&(Oi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Oi,ut);const Xn=H(ci,g.MinusSign);return Ee(Oi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Oi=Ge.getMinutes();if(qt){const es=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),as=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=es.findIndex(us=>{if(Array.isArray(us)){const[ss,Bs]=us,Rr=ci>=ss.hours&&Oi>=ss.minutes,Gn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Oi=qt.getTime()-ci.getTime();Et=1+Math.round(Oi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Mt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Oi=at.get(qt);at.move(Oi,ci),Ti(Oi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new rs,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class rs{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let os=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),Js=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),ns=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function pr(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,Jr=new Oa;let bn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return Jr;throw pr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const rl=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw pr()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(rl,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=pa}transform(Ke,at=pa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function go(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function pa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const mo="browser",ma="server";function er(Ge){return Ge===mo}function ll(Ge){return Ge===ma}let sr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>er((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new Zo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Ar(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class Zo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class ba{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),os=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:os}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:os,url:Js}=si(),ns=null;cn!==C.NoContent&&(ns=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=ns?C.Ok:0);let Qr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof ns){const nr=ns;ns=ns.replace(Xe,"");try{ns=""!==ns?JSON.parse(ns):null}catch(Ls){ns=nr,Qr&&(Qr=!1,ns={error:Ls,text:ns})}}Qr?($e.next(new l({body:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0})),$e.complete()):$e.error(new d({error:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0}))},Si=Xi=>{const{url:cn}=si(),os=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(os)};let Hi=!1;const rs=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const ui=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:ui,useFactory:he},{provide:R,useExisting:ui,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>fd,iLQ:()=>gw,sZ2:()=>rh,hnV:()=>Jk,Hbi:()=>uA,o8S:()=>qu,BIS:()=>Kl,gRc:()=>uM,Ql9:()=>BE,OM3:()=>lf,Ocv:()=>$E,abz:()=>yc,Z63:()=>Io,aKT:()=>hu,uvJ:()=>xo,zcH:()=>Za,bkB:()=>aa,$GK:()=>bn,nKC:()=>$e,zZn:()=>zo,_q3:()=>ww,MKu:()=>Tw,xe9:()=>Yy,Co$:()=>w1,Vns:()=>Dd,SKi:()=>kr,Xx1:()=>er,Agw:()=>jh,PLl:()=>fu,sFG:()=>R_,_9s:()=>Qm,czy:()=>yg,WPN:()=>dh,kdw:()=>Gr,C4Q:()=>Mu,NYb:()=>IE,giA:()=>qk,RxE:()=>Hk,c1b:()=>zg,gXe:()=>Oo,mal:()=>Fg,Af3:()=>Ge,tdH:()=>dv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>_0,w6W:()=>T1,oH4:()=>lM,QZP:()=>HM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>Qi,hFB:()=>Dp,QuC:()=>vo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>r1,O8t:()=>WA,An2:()=>Au,H3F:()=>Uk,H8p:()=>Ns,KH2:()=>Lf,TgB:()=>gf,wOt:()=>me,WHO:()=>Kk,e01:()=>Zk,lNU:()=>he,h9k:()=>lb,$MX:()=>cg,ZF7:()=>lh,Kcf:()=>lg,e5t:()=>rx,UyX:()=>nx,cWb:()=>ix,osQ:()=>sx,H5H:()=>z0,Zy3:()=>Ce,mq5:()=>fC,JZv:()=>Ze,LfX:()=>fo,plB:()=>Td,jNT:()=>pw,zjR:()=>Qk,TL$:()=>Ap,Tbb:()=>pt,rcV:()=>Al,nM4:()=>Gv,Vt3:()=>v0,Mj6:()=>Zi,GFd:()=>C1,OA$:()=>wl,Jv_:()=>ek,aNF:()=>tk,R7$:()=>Up,BMQ:()=>ay,HbH:()=>by,ZvI:()=>aC,AVh:()=>Qg,vxM:()=>Af,wni:()=>Qs,VBU:()=>Ac,FsC:()=>Lr,jDH:()=>$i,G2t:()=>kn,$C:()=>Fl,EJ8:()=>Ic,rXU:()=>Cu,nrm:()=>j0,eu8:()=>Ey,bVm:()=>nm,qex:()=>Pf,k0s:()=>im,j41:()=>Xu,RV6:()=>pC,xGo:()=>Jd,Mr5:()=>Iy,pXf:()=>ce,KVO:()=>Is,kS0:()=>th,QTQ:()=>yd,bIt:()=>gt,lsd:()=>ji,joV:()=>xp,qSk:()=>yp,XpG:()=>di,nI1:()=>Tk,bMT:()=>Sk,i5U:()=>kk,SdG:()=>ki,NAR:()=>gi,Y8G:()=>Hn,FS9:()=>Bi,Mz_:()=>Mi,lJ4:()=>hk,eq3:()=>dk,l_i:()=>uk,sMw:()=>pk,ziG:()=>fk,s1E:()=>gk,l4e:()=>mk,sGs:()=>bk,zJS:()=>vk,mGM:()=>Ei,sdS:()=>Yr,Dyx:()=>F0,Z7z:()=>N0,fX1:()=>If,Njj:()=>Hc,EBC:()=>Ix,tSv:()=>bg,eBV:()=>Ka,npT:()=>cb,f$h:()=>dg,B4B:()=>Pp,n$t:()=>To,Aen:()=>hr,xc7:()=>qg,zvX:()=>Oy,DNE:()=>bf,C5r:()=>Mk,EFF:()=>WS,JRh:()=>ZC,SpI:()=>Gy,Lme:()=>qC,E5c:()=>QC,LHq:()=>JC,DH7:()=>QS,mxI:()=>tw,R50:()=>ew,GBs:()=>yi}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Mt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Di(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function kn(t){return{providers:t.providers||[],imports:t.imports||[]}}function jr(t){return qr(t,Rt)||qr(t,bt)}function fo(t){return null!==jr(t)}function qr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const os=st({\u0275cmp:st}),Js=st({\u0275dir:st}),ns=st({\u0275pipe:st}),Qr=st({\u0275mod:st}),nr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),Vr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function Jr(t,s){throw new me(-201,!1)}var bn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bn||{});let Ko;function nl(){return Ko}function Gs(t){const s=Ko;return Ko=t,s}function eo(t,s,h){const P=jr(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&bn.Optional?null:void 0!==s?s:void Jr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",ua=/\n/gm,go="__source";let xr;function Dr(t){const s=xr;return xr=t,s}function fa(t,s=bn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?eo(t,void 0,s):xr.get(t,s&bn.Optional?null:void 0,s)}function Is(t,s=bn.Default){return(nl()||fa)(Mt(t),s)}function Qi(t,s=bn.Default){return Is(t,zr(s))}function zr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Do(t){const s=[];for(let h=0;hArray.isArray(h)?Ar(h,s):s(h))}function Zo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function ba(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Xs(t,s,h){let P=Hr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function to(t,s){const h=Hr(t,s);if(h>=0)return t[1|h]}function Hr(t,s){return function ec(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Ks(P))return!1;ke=!0}}}}else{if(!ke&&!Ks(P)&&!Ks(ze))return!1;if(ke&&Ks(ze))continue;ke=!1,P=ze|1&P}}return Ks(P)||ke}function Ks(t){return!(1&t)}function Or(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Ks(ke)&&(s+=tc(ge,Q),Q=""),P=ke,ge=ge||!Ks(P);h++}return""!==Q&&(s+=tc(ge,Q)),s}function Ac(t){return ee(()=>{const s=dl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===hl.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Oo.Emulated,styles:t.styles||Mn,_:null,schemas:t.schemas||null,tView:null,id:""};ul(h);const P=t.dependencies;return h.directiveDefs=pl(P,!1),h.pipeDefs=pl(P,!0),h.id=function ic(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function so(t){return hn(t)||Rs(t)}function Kh(t){return null!==t}function Fl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Mn,declarations:t.declarations||Mn,imports:t.imports||Mn,exports:t.exports||Mn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ys;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Zi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Zi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Lr(t){return ee(()=>{const s=dl(t);return ul(s),s})}function Ic(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[os]||null}function Rs(t){return t[Js]||null}function Ss(t){return t[ns]||null}function vo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function Zs(t,s){const h=t[Qr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function dl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ys,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Mn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function ul(t){t.features?.forEach(s=>s(t))}function pl(t,s){if(!t)return null;const h=s?Ss:so;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Kh)}function za(t){return{\u0275providers:t}}function Bl(...t){return{\u0275providers:fl(0,t),\u0275fromNgModule:!0}}function fl(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Ar(s,ke=>{const Le=ke;nc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Pc(Q,ge),h}function Pc(t,s){for(let h=0;h{s(ge,P)})}}function nc(t,s,h,P){if(!(t=Mt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)nc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Ar(ge.imports,dt=>{nc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Pc(Je,s)}if(!Le){const Je=Er(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Mn},Q),s({provide:qo,useValue:Q,multi:!0},Q),s({provide:Io,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;Po(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function Po(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?Po(h,s):s(h)}const Rc=st({provide:String,useValue:st});function jl(t){return null!==t&&"object"==typeof t&&Rc in t}function Lo(t){return"function"==typeof t}const Ns=new $e(""),Fs={},ea={};let gl;function yo(){return void 0===gl&&(gl=new bo),gl}class xo{}class _a extends xo{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ia(s,ke=>this.processProvider(ke)),this.records.set(ya,_r(void 0,this)),Q.has("environment")&&this.records.set(xo,_r(void 0,this));const ge=this.records.get(Ns);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(qo,Mn,bn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=Dr(this),P=Gs(void 0);try{return s()}finally{Dr(h),Gs(P)}}get(s,h=vr,P=bn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(Vr))return s[Vr](this);P=zr(P);const ge=Dr(this),ke=Gs(void 0);try{if(!(P&bn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Ur(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&jr(s);ze=Je&&this.injectableDefInScope(Je)?_r(Ca(s),Fs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&bn.Self?yo():this.parent).get(s,h=P&bn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ma(t,s,h,P){const Q=t[yr];throw s[go]&&Q.unshift(s[go]),t.message=function al(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(ua,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),Dr(ge)}}resolveInjectorInitializers(){const s=re(null),h=Dr(this),P=Gs(void 0);try{const ge=this.get(Io,Mn,bn.Self);for(const ke of ge)ke()}finally{Dr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Lo(s=Mt(s))?s:Mt(s&&s.provide);const P=function Fc(t){return jl(t)?_r(void 0,t.useValue):_r(ml(t),Fs)}(s);if(!Lo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Fs,!0),Q.factory=()=>Do(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Fs&&(h.value=ea,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ta(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Mt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function Ca(t){const s=jr(t),h=null!==s?s.factory:Er(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function Vl(t){if(t.length>0)throw new me(204,!1);const h=function ir(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function ml(t,s,h){let P;if(Lo(t)){const Q=Mt(t);return Er(Q)||Ca(Q)}if(jl(t))P=()=>Mt(t.useValue);else if(function Nc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Do(t.deps||[]));else if(function tr(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Mt(t.useExisting));else{const Q=Mt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Er(Q)||Ca(Q);P=()=>new Q(...Do(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function ia(t,s){for(const h of t)Array.isArray(h)?ia(h,s):h&&cn(h)?ia(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof _a&&t.assertNotDestroyed();const P=Dr(t),Q=Gs(void 0);try{return s()}finally{Dr(P),Gs(Q)}}function na(){return void 0!==nl()||null!=function pa(){return xr}()}function Ge(t){if(!na())throw new me(-203,!1)}const Gn=0,pi=1,zi=2,Yn=3,gs=4,ks=5,or=6,wa=7,ms=8,gr=9,_o=10,en=11,Ro=12,sc=13,bs=14,Kn=15,Ta=16,zl=17,Co=18,rc=19,Sa=20,No=21,bl=22,Ua=23,sn=25,oc=1,Fo=7,yl=9,js=10;var lc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(lc||{});function mr(t){return Array.isArray(t)&&"object"==typeof t[oc]}function Vs(t){return Array.isArray(t)&&!0===t[oc]}function Gl(t){return!!(4&t.flags)}function sa(t){return t.componentOffset>-1}function xl(t){return!(1&~t.flags)}function Wr(t){return!!t.template}function Bc(t){return!!(512&t[zi])}class Hl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Cl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function wl(){return cc}function cc(t){return t.type.prototype.ngOnChanges&&(t.setInput=tp),Wa}function Wa(){const t=ip(this),s=t?.current;if(s){const h=t.previous;if(h===Ys)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function tp(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=ip(t)||function np(t,s){return t[ed]=s}(t,{previous:Ys,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Hl(Je&&Je.currentValue,h,ze===Ys),Cl(t,s,Q,h)}wl.ngInherit=!0;const ed="__ngSimpleChanges__";function ip(t){return t[ed]||null}const Bo=function(t,s,h){},yh="svg";let op=!1;function Ts(t){for(;Array.isArray(t);)t=t[Gn];return t}function jc(t,s){return Ts(s[t])}function $r(t,s){return Ts(s[t.index])}function xh(t,s){return t.data[s]}function Vc(t,s){return t[s]}function jo(t,s){const h=s[t];return mr(h)?h:h[Gn]}function td(t){return!(128&~t[zi])}function $a(t,s){return null==s?null:t[s]}function ap(t){t[zl]=0}function lp(t){1024&t[zi]||(t[zi]|=1024,td(t)&&Ch(t))}function Gc(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function _h(t){t[_o].changeDetectionScheduler?.notify(1),Gc(t)?Ch(t):64&t[zi]&&(function Vf(){return op}()?(t[zi]|=1024,Ch(t)):t[_o].changeDetectionScheduler?.notify())}function Ch(t){t[_o].changeDetectionScheduler?.notify();let s=Xa(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,td(s));)s=Xa(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[No]&&(t[No]=[]),t[No].push(s)}function Xa(t){const s=t[Yn];return Vs(s)?s[Yn]:s}const on={lFrame:sd(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function hc(){return on.bindingsEnabled}function Ya(){return null!==on.skipHydrationRootTNode}function ni(){return on.lFrame.lView}function xn(){return on.lFrame.tView}function Ka(t){return on.lFrame.contextLView=t,t[ms]}function Hc(t){return on.lFrame.contextLView=null,t}function hs(){let t=Uc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Uc(){return on.lFrame.currentTNode}function ra(){const t=on.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function oa(t,s){const h=on.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return on.lFrame.isParent}function jd(){on.lFrame.isParent=!1}function oo(){const t=on.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function Sl(){return on.lFrame.bindingIndex}function ka(){return on.lFrame.bindingIndex++}function kl(t){const s=on.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function mp(t){on.lFrame.inI18n=t}function bp(t,s){const h=on.lFrame;h.bindingIndex=h.bindingRootIndex=t,Sh(s)}function Sh(t){on.lFrame.currentDirectiveIndex=t}function kh(t){const s=on.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function nd(){return on.lFrame.currentQueryIndex}function Wc(t){on.lFrame.currentQueryIndex=t}function Xf(t){const s=t[pi];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Mh(t,s,h){if(h&bn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&bn.Host||(Q=Xf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=on.lFrame=vp();return P.currentTNode=s,P.lView=t,!0}function Vd(t){const s=vp(),h=t[pi];on.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function vp(){const t=on.lFrame,s=null===t?null:t.child;return null===s?sd(t):s}function sd(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function zd(){const t=on.lFrame;return on.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Gd=zd;function rd(){const t=zd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Xr(){return on.lFrame.selectedIndex}function uc(t){on.lFrame.selectedIndex=t}function Os(){const t=on.lFrame;return xh(t.tView,t.selectedIndex)}function yp(){on.lFrame.currentNamespace=yh}function xp(){!function Hd(){on.lFrame.currentNamespace=null}()}let $c=!0;function Xc(){return $c}function Vo(t){$c=t}function Yc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[zl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,Ml(Le,ge)):Ml(Le,ge)}const pc=-1;class Kc{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function qc(t){return t!==pc}function br(t){return 32767&t}function fc(t,s){let h=function Xd(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let Wl=!0;function Cr(t){const s=Wl;return Wl=t,s}const Qc=255,Dl=5;let Oh=0;const Ma={};function Jc(t,s){const h=gc(t,s);if(-1!==h)return h;const P=s[pi];P.firstCreatePass&&(t.injectorIndex=s.length,Kd(P.data,t),Kd(s,null),Kd(P.blueprint,null));const Q=Zd(t,s),ge=t.injectorIndex;if(qc(Q)){const ke=br(Q),Le=fc(Q,s),ze=Le[pi].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kd(t,s){t.push(0,0,0,0,0,0,0,0,s)}function gc(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zd(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=cd(Q),null===P)return pc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return pc}function Ph(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Oh++);const Q=P&Qc;s.data[t+(Q>>Dl)]|=1<=0?s&Qc:wp:s}(h);if("function"==typeof ge){if(!Mh(s,t,P))return P&bn.Host?Qd(Q,0,P):eh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&bn.Optional)return ke;Jr()}finally{Gd()}}else if("number"==typeof ge){let ke=null,Le=gc(t,s),ze=pc,Je=P&bn.Host?s[Kn][ks]:null;for((-1===Le||P&bn.SkipSelf)&&(ze=-1===Le?Zd(t,s):s[Le+8],ze!==pc&&Cp(P,!1)?(ke=s[pi],Le=br(ze),s=fc(ze,s)):Le=-1);-1!==Le;){const dt=s[pi];if(Da(ge,Le,dt.data)){const Ct=mc(Le,s,h,ke,P,Je);if(Ct!==Ma)return Ct}ze=s[Le+8],ze!==pc&&Cp(P,s[pi].data[Le+8]===Je)&&Da(ge,Le,s)?(ke=dt,Le=br(ze),s=fc(ze,s)):Le=-1}}return Q}function mc(t,s,h,P,Q,ge){const ke=s[pi],Le=ke.data[t+8],dt=El(Le,ke,h,null==P?sa(Le)&&Wl:P!=ke&&!!(3&Le.type),Q&bn.Host&&ge===Le);return null!==dt?wo(s,ke,dt,Le):Ma}function El(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Wr(Ht)&&Ht.type===h)return ze}return null}function wo(t,s,h,P){let Q=t[h];const ge=s.data;if(function Ah(t){return t instanceof Kc}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Cr(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Mh(t,P,bn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Dh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=cc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Cr(Le),ke.resolving=!1,Gd()}}return Q}function Da(t,s,h){return!!(h[s+(t>>Dl)]&1<{const s=t.prototype.constructor,h=s[nr]||ld(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[nr]||ld(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function ld(t){return At(t)?()=>{const s=ld(Mt(t));return s&&s()}:Er(t)}function cd(t){const s=t[pi],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function th(t){return function qd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new bo;static create(h,P){if(Array.isArray(h))return Tp({name:""},P,h,"");{const Q=h.name??"";return Tp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(ya)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function dd(t){return t.ngOriginalError}class Za{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&dd(s);for(;h&&dd(h);)h=dd(h);return h||null}}const ou=new $e("",{providedIn:"root",factory:()=>Qi(Za).handleError.bind(void 0)});let yc=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=tg;static#t=this.__NG_ENV_ID__=h=>h}return t})();class au extends yc{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[No])return;const h=t[No].indexOf(s);-1!==h&&t[No].splice(h,1)}(this._lView,s)}}function tg(){return new au(ni())}function lu(t,s){return oe(t,s)}const Dp=(lu.required=function cu(t){return oe(Se,t)},lu);function bm(){return xc(hs(),ni())}function xc(t,s){return new hu($r(t,s))}let hu=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=bm}return t})();function du(t){return t instanceof hu?t.nativeElement:t}function Go(t){return s=>{setTimeout(t,void 0,s)}}const aa=class ng extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,na()&&(this.destroyRef=Qi(yc,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=Go(ge),Q&&(Q=Go(Q)),ke&&(ke=Go(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function uu(){return this._results[Symbol.iterator]()}class Nh{static#e=Symbol.iterator;get changes(){return this._changes??=new aa}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=Nh.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=uu)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function sr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Poh}),oh="ng",fu=new $e(""),jh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),fd=new $e(""),Kl=new $e("",{providedIn:"root",factory:()=>Ho().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const qi=new $e("",{providedIn:"root",factory:()=>!1});let tn,cr;function nn(t){return function Cn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function co(){if(void 0===cr&&(cr=null,Ze.trustedTypes))try{cr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return cr}function Uo(t){return co()?.createHTML(t)||t}function Aa(t){return co()?.createScriptURL(t)||t}class Sr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class la extends Sr{getTypeName(){return"HTML"}}class gu extends Sr{getTypeName(){return"Style"}}class rg extends Sr{getTypeName(){return"Script"}}class og extends Sr{getTypeName(){return"URL"}}class Ip extends Sr{getTypeName(){return"ResourceURL"}}function Al(t){return t instanceof Sr?t.changingThisBreaksApplicationSecurity:t}function lh(t,s){const h=function ag(t){return t instanceof Sr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function lg(t){return new la(t)}function ix(t){return new gu(t)}function nx(t){return new rg(t)}function sx(t){return new og(t)}function rx(t){return new Ip(t)}function ib(t){const s=new ax(t);return function lx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new ox(s):s}class ox{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class ax{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const cx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function cg(t){return(t=String(t)).match(cx)?t:"unsafe:"+t}function Cc(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function Op(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const nb=Cc("area,br,col,hr,img,wbr"),sb=Cc("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rb=Cc("rp,rt"),vm=Op(nb,Op(sb,Cc("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Op(rb,Cc("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Op(rb,sb)),ym=Cc("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),ob=Op(ym,Cc("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Cc("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),hx=Cc("script,style,template");class dx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=ch(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=px(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=ab(s).toLowerCase();if(!vm.hasOwnProperty(h))return this.sanitizedSomething=!0,!hx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=ab(s).toLowerCase();vm.hasOwnProperty(h)&&!nb.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(fx(s))}}function px(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw xm(s);return s}function ch(t){const s=t.firstChild;if(s&&function ux(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw xm(s);return s}function ab(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function xm(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const hh=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ow=/([^\#-~ |!])/g;function fx(t){return t.replace(/&/g,"&").replace(hh,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Ow,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let hg;function lb(t,s){let h=null;try{hg=hg||ib(t);let P=s?String(s):"";h=hg.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=hg.getInertBodyElement(P)}while(P!==ge);return nn((new dx).sanitizeChildren(_m(h)||h))}finally{if(h){const P=_m(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function _m(t){return"content"in t&&function gx(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var dh=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(dh||{});function cb(t){const s=gd();return s?Uo(s.sanitize(dh.HTML,t)||""):lh(t,"HTML")?Uo(Al(t)):lb(Ho(),Ki(t))}function Pp(t){const s=gd();return s?s.sanitize(dh.URL,t)||"":lh(t,"URL")?Al(t):cg(Ki(t))}function dg(t){const s=gd();if(s)return Aa(s.sanitize(dh.RESOURCE_URL,t)||"");if(lh(t,"ResourceURL"))return Aa(Al(t));throw new me(904,!1)}function To(t,s,h){return function hb(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?dg:Pp}(s,h)(t)}function gd(){const t=ni();return t&&t[_o].sanitizer}const ug=/^>|^->||--!>|)/g,vx="\u200b$1\u200b";const md=new Map;let _x=0;const Lp="__ngContext__";function Nr(t,s){mr(s)?(t[Lp]=s[rc],function wx(t){md.set(t[rc],t)}(s)):t[Lp]=s}function bg(t){return t.ownerDocument.defaultView}function Ix(t){return t.ownerDocument}function ha(t){return t instanceof Function?t():t}var yg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(yg||{});let Dm;function Em(t,s){return Dm(t,s)}function jp(t,s,h,P,Q){if(null!=P){let ge,ke=!1;Vs(P)?ge=P:mr(P)&&(ke=!0,P=P[Gn]);const Le=Ts(P);0===t&&null!==h?null==Q?Bx(s,h,Le):_u(s,h,Le,Q||null,!0):1===t&&null!==h?_u(s,h,Le,Q||null,!0):2===t?function vd(t,s,h){const P=zp(t,s);P&&function Om(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function Hp(t,s,h,P,Q){const ge=h[Fo];ge!==Ts(h)&&jp(s,t,P,ge,Q);for(let Le=js;Les.replace(pg,vx))}(s))}function Am(t,s,h){return t.createElement(s,h)}function zh(t,s){s[_o].changeDetectionScheduler?.notify(1),Nm(t,s,s[en],2,null,null)}function Sb(t,s){const h=t[yl],P=h.indexOf(s);h.splice(P,1)}function Vp(t,s){if(t.length<=js)return;const h=js+s,P=t[h];if(P){const Q=P[Ta];null!==Q&&Q!==t&&Sb(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=ba(t,js+s);!function Rw(t,s){zh(t,s),s[Gn]=null,s[ks]=null}(P[pi],P);const ke=ge[Co];null!==ke&&ke.detachView(ge[pi]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function xg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&Nm(t,s,h,3,null,null),function Tb(t){let s=t[Ro];if(!s)return Im(t[pi],t);for(;s;){let h=null;if(mr(s))h=s[Ro];else{const P=s[js];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)mr(s)&&Im(s[pi],s),s=s[Yn];null===s&&(s=t),mr(s)&&Im(s[pi],s),h=s&&s[gs]}s=h}}(s)}}function Im(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[wa]=null);const Q=s[No];if(null!==Q){s[No]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Oo.None||ge===Oo.Emulated)return null}return $r(P,h)}}function _u(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function Bx(t,s,h){t.appendChild(s,h)}function jx(t,s,h,P,Q){null!==P?_u(t,s,h,P,Q):Bx(t,s,h)}function zp(t,s){return t.parentNode(s)}function Gp(t,s,h){return _g(t,s,h)}function Vx(t,s,h){return 40&t.type?$r(t,h):null}let Mb,_g=Vx;function Pm(t,s){_g=t,Mb=s}function Lm(t,s,h,P){const Q=kb(t,P,s),ge=s[en],Le=Gp(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zesn&&Ab(t,s,sn,!1),Bo(ke?2:0,Q),h(P,Q)}finally{uc(ge),Bo(ke?3:1,Q)}}function Pb(t,s,h){if(Gl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function Yx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Zi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Kx(P,h,Je,Le,ze):Kx(P,h,Je,Le)}return P}function Kx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=$r(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?(Wm(t,h,dt,P,Q),sa(s)&&function Hw(t,s){const h=jo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function Gw(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Mg(t,s,h,P){if(hc()){const Q=null===P?null:{"":-1},ge=function $w(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,Tg(t,h,Q.hostVars,In),Q)}function Tc(t,s,h,P,Q,ge){const ke=$r(t,s);!function Gm(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function ys(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{Ch(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function $b(t){return Yb(t[Ro])}function Xb(t){return Yb(t[gs])}function Yb(t){for(;null!==t&&!Vs(t);)t=t[gs];return t}const Kb=100;function ef(t,s=!0,h=0){const P=t[_o],Q=P.rendererFactory;Q.begin?.();try{!function o_(t,s){Ag(t,s);let h=0;for(;Gc(t);){if(h===Kb)throw new me(103,!1);h++,Ag(t,1)}}(t,h)}catch(ke){throw s&&Zp(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function a_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[_o].inlineEffectRunner?.flush(),Vd(s);let ke=null,Le=null;(function l_(t){return 2!==t.type})(t)&&(Le=function t_(t){return t[Ua]??function i_(t){const s=Ym.pop()??Object.create(Wb);return s.lView=t,s}(t)}(s),ke=L(Le));try{ap(s),function dc(t){return on.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&Ux(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&od(s,Ct,0,null),Eh(s,0)}if(function c_(t){for(let s=$b(t);null!==s;s=Xb(s)){if(!(s[zi]&lc.HasTransplantedViews))continue;const h=s[yl];for(let P=0;P-1&&(Vp(s,P),ba(h,P))}this._attachedToViewContainer=!1}xg(this._lView[pi],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){tf(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){_h(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,ef(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,zh(this._lView[pi],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,_h(this._lView)}}let Mu=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=p_}return t})();const d_=Mu,u_=class extends d_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=qp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new nf(Q)}};function p_(){return Ig(hs(),ni())}function Ig(t,s){return 4&t.type?new u_(s,t,xc(t,s)):null}let qm=()=>null;function gh(t,s){return qm(t,s)}class Au{}class P_{}class af{}class L_{resolveComponentFactory(s){throw function Iu(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let lf=(()=>{class t{static#e=this.NULL=new L_}return t})();class Qm{}let R_=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function cv(){const t=ni(),h=jo(hs().index,t);return(mr(h)?h:t)[en]}()}return t})(),hv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Rg={};function dv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const Jm=new Set;function Sc(t){Jm.has(t)||(Jm.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function cf(...t){}class kr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new aa(!1),this.onMicrotaskEmpty=new aa(!1),this.onStable=new aa(!1),this.onError=new aa(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function uv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function j_(t){const s=()=>{!function B_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,wd(t),t.isCheckStableRunning=!0,e0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),wd(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function s0(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return t0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),n0(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return t0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),n0(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,wd(t),e0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(kr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,F_,cf,cf);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const F_={};function e0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function wd(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function t0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function n0(t){t._nesting--,e0(t)}class V_{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new aa,this.onMicrotaskEmpty=new aa,this.onStable=new aa,this.onError=new aa}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Wh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Wh||{});const r0={destroy(){}};function Fg(t,s){!s&&Ge();const h=s?.injector??Qi(zo);if(!function bd(t){return"browser"===(t??Qi(zo)).get(jh)}(h))return r0;Sc("NgAfterNextRender");const P=h.get(Bg),Q=P.handler??=new fv,ge=s?.phase??Wh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(yc).onDestroy(ke),ze=Ha(h,()=>new a0(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class a0{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=Qi(kr),this.errorHandler=Qi(Za,{optional:!0}),Qi(Au,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class fv{constructor(){this.executingCallbacks=!1,this.buckets={[Wh.EarlyRead]:new Set,[Wh.Write]:new Set,[Wh.MixedReadWrite]:new Set,[Wh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let Bg=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function Td(t){return!!Zs(t)}function $h(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Gx(t,h,ge.join(" "))}}(Ht,Mo,li,P),void 0!==h&&function U_(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=W_}return t})();function W_(){return yv(hs(),ni())}const $_=zg,bv=class extends $_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return xc(this._hostTNode,this._hostLView)}get injector(){return new ar(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zd(this._hostTNode,this._hostLView);if(qc(s)){const h=fc(s,this._hostLView),P=br(s);return new ar(h[pi].data[P+8],h)}return new ar(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=vv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-js}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=gh(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,ku(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Oi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new kd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(xo,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=gh(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,ku(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Hf(t){return Vs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new bv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Qp(ke,Q,ge,P),s.attachToViewContainerRef(),Zo(d0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=vv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);P&&(ba(d0(this._lContainer),h),xg(P[pi],P))}detach(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);return P&&null!=ba(d0(this._lContainer),h)?new nf(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function vv(t){return t[8]}function d0(t){return t[8]||(t[8]=[])}function yv(t,s){let h;const P=s[t.index];return Vs(P)?h=P:(h=Tu(P,s,null,t),s[t.index]=h,Eg(s,h)),Hg(h,s,t,P),new bv(h,t,s)}let Hg=function Cv(t,s,h,P){if(t[Fo])return;let Q;Q=8&h.type?Ts(P):function Gg(t,s){const h=t[en],P=h.createComment(""),Q=$r(s,t);return _u(h,zp(h,Q),P,function jw(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Fo]=Q},xv=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=js;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=o1.bind(h),h}function o1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function a1(t){return function s1(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function zv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Wr(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=y0(t.inputs),ke.inputTransforms=y0(t.inputTransforms),ke.declaredInputs=y0(t.declaredInputs),ke.outputs=y0(t.outputs);const Le=Q.hostBindings;Le&&ff(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&y1(t,ze),Je&&bT(t,Je),b1(t,Q),kt(t.outputs,Q.outputs),Wr(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function b1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function y0(t){return t===Ys?{}:t===Mn?[]:t}function y1(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function bT(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function ff(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function Gv(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Mt(Q),inputs:Ys,outputs:Ys}:{directive:Mt(Q.directive),inputs:Hv(Q.inputs),outputs:Hv(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=x1,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function x1(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);_T(Q.declaredInputs,P.inputs),x1(Q,s,h),h.set(Q,P),s.push(Q)}}function Hv(t){if(void 0===t||0===t.length)return Ys;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Uv extends w1{constructor(s){super(),this.moduleType=s}create(s){return new x0(this.moduleType,s,[])}}class S1 extends Dd{constructor(s){super(),this.componentFactoryResolver=new df(this),this.instance=null;const h=new _a([...s.providers,{provide:Dd,useValue:this},{provide:lf,useValue:this.componentFactoryResolver}],s.parent||yo(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function _0(t,s,h=null){return new S1({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let gf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $g(t){return!!Wv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Wv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function mh(t,s,h){return t[s]=h}function mf(t,s){return t[s]}function Fr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Ed(t,s,h,P){const Q=Fr(t,s,h);return Fr(t,s+1,P)||Q}function C0(t,s,h,P,Q){const ge=Ed(t,s,h,P);return Fr(t,s+2,Q)||ge}function Ql(t,s,h,P,Q,ge){const ke=Ed(t,s,h,P);return Ed(t,s+2,Q,ge)||ke}function bf(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=xn(),dt=t+sn,Ct=Je.firstCreatePass?function k1(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Wp(s,t,4,ke||null,$a(Je,Le));Mg(s,h,dt,$a(Je,ze)),Yc(s,dt);const Ct=dt.tView=Rb(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];oa(Ct,!1);const jt=$v(Je,ze,Ct,t);Xc()&&Lm(Je,ze,jt,Ct),Nr(jt,ze);const Ht=Tu(jt,ze,jt,Ct);return ze[dt]=Ht,Eg(ze,Ht),function _v(t,s,h){return xv(t,s,h)}(Ht,Ct,ze),xl(Ct)&&Lb(Je,ze,Ct),null!=ke&&Sg(ze,Ct,Le),bf}let $v=function M1(t,s,h,P){return Vo(!0),s[en].createComment("")};function ay(t,s,h,P){const Q=ni();return Fr(Q,ka(),s)&&(xn(),Tc(Os(),Q,t,s,h,P)),ay}function Tf(t,s,h,P){return Fr(t,ka(),h)?s+Ki(h)+P:In}function D0(t,s){return t<<17|s<<2}function Id(t){return t>>17&32767}function py(t){return 2|t}function Hu(t){return(131068&t)>>2}function E0(t,s){return-131069&t|s<<2}function fy(t){return 1|t}function eC(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Id(Q):Hu(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];sS(t[ke],s)&&(Le=!0,t[ke+1]=P?fy(Je):py(Je)),ke=P?Id(Je):Hu(Je)}Le&&(t[h+1]=P?py(Q):fy(Q))}function sS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Hr(t,s)>=0}const po={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function tC(t){return t.substring(po.key,po.keyEnd)}function rS(t){return t.substring(po.value,po.valueEnd)}function iC(t,s){const h=po.textEnd;return h===s?-1:(s=po.keyEnd=function lS(t,s,h){for(;s32;)s++;return s}(t,po.key=s,h),Mf(t,s,h))}function nC(t,s){const h=po.textEnd;let P=po.key=Mf(t,s,h);return h===P?-1:(P=po.keyEnd=function cS(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=gy(t,P,h),P=po.value=Mf(t,P,h),P=po.valueEnd=function hS(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),gy(t,P,h))}function sC(t){po.key=0,po.keyEnd=0,po.value=0,po.valueEnd=0,po.textEnd=t.length}function Mf(t,s,h){for(;s=0;h=nC(s,h))xy(t,tC(s),rS(s))}function by(t){el(_y,Dc,t,!0)}function Dc(t,s){for(let h=function oS(t){return sC(t),iC(t,Mf(t,0,po.textEnd))}(s);h>=0;h=iC(s,h))Xs(t,tC(s),!0)}function Pl(t,s,h,P){const Q=ni(),ge=xn(),ke=kl(2);ge.firstUpdatePass&&Uu(ge,t,ke,P),s!==In&&Fr(Q,ke,s)&&I0(ge,ge.data[Xr()],Q,Q[en],t,Q[ke+1]=function wy(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(Al(t)))),t}(s,h),P,ke)}function el(t,s,h,P){const Q=xn(),ge=kl(2);Q.firstUpdatePass&&Uu(Q,null,ge,P);const ke=ni();if(h!==In&&Fr(ke,ge,h)){const Le=Q.data[Xr()];if(oC(Le,P)&&!Od(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Mc(Q,Le,ke,h,P)}else!function uS(t,s,h,P,Q,ge,ke,Le){Q===In&&(Q=Mn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function Uu(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Xr()],ke=Od(t,h);oC(ge,P)&&null===s&&!ke&&(s=!1),s=function wn(t,s,h,P){const Q=kh(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Wu(h=Jg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Jg(Q,t,s,h,P),null===ge){let ze=function vy(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Hu(P))return t[Id(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Jg(null,t,s,ze[1],P),ze=Wu(ze,s.attrs,P),function Df(t,s,h,P){t[Id(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function A0(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Id(t[Le+1]);t[P+1]=D0(jt,Le),0!==jt&&(t[jt+1]=E0(t[jt+1],P)),t[Le+1]=function tS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=D0(Le,0),0!==Le&&(t[Le+1]=E0(t[Le+1],P)),Le=P;else t[P+1]=D0(ze,0),0===Le?Le=P:t[ze+1]=E0(t[ze+1],P),ze=P;Je&&(t[P+1]=py(t[P+1])),eC(t,dt,P,!0),eC(t,dt,P,!1),function nS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Hr(ge,s)>=0&&(h[P+1]=fy(h[P+1]))}(s,dt,t,P,ge),ke=D0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Jg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===In&&(jt=Ct?Mn:void 0);let Ht=Ct?to(jt,P):dt===P?jt:void 0;if(Je&&!O0(Ht)&&(Ht=to(ze,P)),O0(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Id(Kt):Hu(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=to(ze,P))}return Le}function O0(t){return void 0!==t}function oC(t,s){return!!(t.flags&(s?8:16))}function aC(t,s,h){el(Xs,Dc,Tf(ni(),t,s,h),!0)}class L0{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function em(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function Pd(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Ec(t,s,h,P,Q){if(Pd(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function tm(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class R0{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Af(t,s,h){Sc("NgControlFlow");const P=ni(),Q=ka(),ge=B0(P,sn+t);if(Fr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=Of(P[pi],sn+s),Je=gh(ge,ze.tView.ssrId);Qp(ge,qp(P,ze,h,{dehydratedView:Je}),0,ku(ze,Je))}}finally{re(Le)}}else{const Le=Hb(ge,0);void 0!==Le&&(Le[ms]=h)}}class lC{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-js}}function If(t,s){return s}class cC{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function N0(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Sc("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new cC(Ht,li);Kt[sn+t]=bi,bf(t+1,s,h,P,Q,ge),Ht&&bf(t+2,ze,Je,dt,Ct,jt)}class hC extends L0{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-js}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[or];this.needsIndexUpdate||=s!==this.length,Qp(this.lContainer,h,s,ku(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function dC(t,s){return Vp(t,s)}(this.lContainer,s)}create(s,h){const P=gh(this.lContainer,this.templateTNode.tView.ssrId);return qp(this.hostLView,this.templateTNode,new lC(this.lContainer,h,s),{dehydratedView:P})}destroy(s){xg(s[pi],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=ka(),ze=0===ke.length;if(Fr(P,Le,ze)){const Je=h+2,dt=B0(P,Je);if(ze){const Ct=Of(Q,Je),jt=gh(dt,Ct.tView.ssrId);Qp(dt,qp(P,Ct,void 0,{dehydratedView:jt}),0,ku(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function B0(t,s){return t[s]}function Of(t,s){return xh(t,s)}function Xu(t,s,h,P){const Q=ni(),ge=xn(),ke=sn+t,Le=Q[en],ze=ge.firstCreatePass?function Dy(t,s,h,P,Q,ge){const ke=s.consts,ze=Wp(s,t,2,P,$a(ke,Q));return Mg(s,h,ze,$a(ke,ge)),null!==ze.attrs&&$h(ze,ze.attrs,!1),null!==ze.mergedAttrs&&$h(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=V0(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=xl(ze);return oa(ze,!0),Gh(Le,Je,ze),!function Xg(t){return!(32&~t.flags)}(ze)&&Xc()&&Lm(ge,Q,Je,ze),0===function Tl(){return on.lFrame.elementDepthCount}()&&Nr(Je,Q),function id(){on.lFrame.elementDepthCount++}(),dt&&(Lb(ge,Q,ze),Pb(ge,ze,Q)),null!==P&&Sg(Q,ze),Xu}function im(){let t=hs();Bd()?jd():(t=t.parent,oa(t,!1));const s=t;(function Fd(t){return on.skipHydrationRootTNode===t})(s)&&function pp(){on.skipHydrationRootTNode=null}(),function Wf(){on.lFrame.elementDepthCount--}();const h=xn();return h.firstCreatePass&&(Yc(h,t),Gl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function $d(t){return!!(8&t.flags)}(s)&&Mc(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Ih(t){return!!(16&t.flags)}(s)&&Mc(h,s,ni(),s.stylesWithoutHost,!1),im}function j0(t,s,h,P){return Xu(t,s,h,P),im(),j0}let V0=(t,s,h,P,Q,ge)=>(Vo(!0),Am(P,Q,function Ud(){return on.lFrame.currentNamespace}()));function Pf(t,s,h){const P=ni(),Q=xn(),ge=t+sn,ke=Q.firstCreatePass?function uC(t,s,h,P,Q){const ge=s.consts,ke=$a(ge,P),Le=Wp(s,t,8,"ng-container",ke);return null!==ke&&$h(Le,ke,!0),Mg(s,h,Le,$a(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];oa(ke,!0);const Le=Ay(Q,P,ke,t);return P[ge]=Le,Xc()&&Lm(Q,P,Le,ke),Nr(Le,P),xl(ke)&&(Lb(Q,P,ke),Pb(Q,ke,P)),null!=h&&Sg(P,ke),Pf}function nm(){let t=hs();const s=xn();return Bd()?jd():(t=t.parent,oa(t,!1)),s.firstCreatePass&&(Yc(s,t),Gl(t)&&s.queries.elementEnd(t)),nm}function Ey(t,s,h){return Pf(t,s,h),nm(),Ey}let Ay=(t,s,h,P)=>(Vo(!0),wb(s[en],""));function pC(){return ni()}function Iy(t,s,h){const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!0),Iy}function Oy(t,s,h){const P=ni();if(Fr(P,ka(),s)){const ge=xn(),ke=Os();Qa(ge,ke,P,t,s,Um(kh(ge.data),ke,P),h,!0)}return Oy}const Yu=void 0;var CS=["en",[["a","p"],["AM","PM"],Yu],[["AM","PM"],Yu,Yu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yu,"{1} 'at' {0}",Yu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function _S(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let Ku={};function z0(t){const s=function TS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=gC(s);if(h)return h;const P=s.split("-")[0];if(h=gC(P),h)return h;if("en"===P)return CS;throw new me(701,!1)}function fC(t){return z0(t)[Lf.PluralCase]}function gC(t){return t in Ku||(Ku[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),Ku[t]}var Lf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Lf||{});const Rf="en-US",G0={marker:"element"},H0={marker:"ICU"};var da=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(da||{});let mC=Rf;function vC(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?Vx(t,0,h):Ts(h[Q])}function Py(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];xC(P)||ES(P,s)&&null===AS(P)&&_C(P,s.index)}}function xC(t){return!(64&t.type)}function ES(t,s){return xC(s)||t.index>s.index}function AS(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function _C(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Pm(vC,Py),t.insertBeforeIndex=s)}function CC(t,s,h){const P=Ob(t,h,64,null,null);return yC(s,P),P}let Nf=(t,s,h,P)=>(Vo(!0),function Ly(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return wb(P,s);case Node.TEXT_NODE:return Cb(P,s);case Node.ELEMENT_NODE:return Am(P,s,null)}}(t,h,P));function FS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function U0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Mn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[pi].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const X0=/\ufffd(\d+):?\d*\ufffd/gi,jS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,am="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,LC=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,VS=/\uE500/g;function Fy(t,s,h,P,Q,ge,ke){const Le=Tg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function Y0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(jC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function VC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=ib(Ho()).getInertBodyElement(Le),Kt=_m(Ht)||Ht;return Kt?jy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function jy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=Tg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(vm.hasOwnProperty(bi)){K0(ge,G0,bi,Je,Kt),s.data[Kt]=bi;const xs=li.attributes;for(let Mo=0;Mo>>da.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=Nf(t,dt,s[ge],(ke&da.COMMENT)===da.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Xc()),Je&&null!==h&&jt&&_u(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),mp(!0)}function ce(t,s,h){m(t,s,h),function W(){mp(!1)}()}function gt(t,s,h,P){const Q=ni(),ge=xn(),ke=hs();return Ut(ge,Q,Q[en],ke,t,s,P),gt}function Ut(t,s,h,P,Q,ge,ke){const Le=xl(P),Je=t.firstCreatePass&&Vb(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=$r(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?xs=>ke(Ts(xs[P.index])):P.index;let yn=null;if(!ke&&Le&&(yn=function Pt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==yn)(yn.__ngLastListenerFn__||yn).__ngNextListenerFn__=ge,yn.__ngLastListenerFn__=ge,jt=!1;else{ge=hi(P,s,dt,ge,!1);const xs=h.listen(bi,Q,ge);Ct.push(ge,xs),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=hi(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?jo(t.index,s):s);let ze=Zt(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=Zt(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function di(t=1){return function Yf(t){return(on.lFrame.contextLView=function cp(t,s){for(;t>0;)s=s[bs],t--;return s}(t,on.lFrame.contextLView))[ms]}(t)}function wi(t,s){let h=null;const P=function Pr(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Vo(!0),Cb(s[en],P));function ZC(t){return Gy("",t,""),ZC}function Gy(t,s,h){const P=ni(),Q=Tf(P,t,s,h);return Q!==In&&fh(P,Xr(),Q),Gy}function qC(t,s,h,P,Q){const ge=ni(),ke=function Bu(t,s,h,P,Q,ge){const Le=Ed(t,Sl(),h,Q);return kl(2),Le?s+Ki(h)+P+Ki(Q)+ge:In}(ge,t,s,h,P,Q);return ke!==In&&fh(ge,Xr(),ke),qC}function QC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function ju(t,s,h,P,Q,ge,ke,Le){const Je=C0(t,Sl(),h,Q,ke);return kl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:In}(Le,t,s,h,P,Q,ge,ke);return ze!==In&&fh(Le,Xr(),ze),QC}function JC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Vu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=Ql(t,Sl(),h,Q,ke,ze);return kl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:In}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==In&&fh(Je,Xr(),dt),JC}function ew(t,s,h){a1(s)&&(s=s());const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!1),ew}function QS(t,s){const h=a1(t);return h&&t.set(s),h}function tw(t,s){const h=ni(),P=xn(),Q=hs();return Ut(P,h,h[en],Q,t,s),tw}function iw(t,s,h,P,Q){if(t=Mt(t),Array.isArray(t))for(let ge=0;ge>20;if(Lo(t)||!t.multi){const Ht=new Kc(Je,Q,Cu),Kt=sw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Ph(Jc(Le,ke),ge,ze),nw(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=sw(ze,s,dt+jt,Ct),Kt=sw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Ph(Jc(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new Kc(t,h,Cu);return ge.multi=[],ge.index=s,ge.componentProviders=0,JS(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),nw(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else nw(ge,t,Ht>-1?Ht:Kt,JS(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function nw(t,s,h,P){const Q=Lo(s),ge=function xa(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Mt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function JS(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function sw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=xn();if(P.firstCreatePass){const Q=Wr(t);iw(h,P.data,P.blueprint,Q,!0),iw(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=fl(0,h.type),Q=P.length>0?_0([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(xo))})}return t})();function tk(t){Sc("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function hk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===In?mh(Q,P,h?s.call(h):s()):mf(Q,P)}function dk(t,s,h,P){return yk(ni(),oo(),t,s,h,P)}function uk(t,s,h,P,Q){return xk(ni(),oo(),t,s,h,P,Q)}function pk(t,s,h,P,Q,ge){return function _k(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return C0(t,ze,Q,ge,ke)?mh(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):Z0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function fk(t,s,h,P,Q,ge,ke){return function Ck(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return Ql(t,Je,Q,ge,ke,Le)?mh(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):Z0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function gk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=Ql(Je,ze,h,P,Q,ge);return Fr(Je,ze+4,ke)||dt?mh(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):mf(Je,ze+5)}function mk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=Ql(dt,Je,h,P,Q,ge);return Ed(dt,Je+4,ke,Le)||Ct?mh(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):mf(dt,Je+6)}function bk(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=Ql(Ct,dt,h,P,Q,ge);return C0(Ct,dt+4,ke,Le,ze)||jt?mh(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):mf(Ct,dt+7)}function vk(t,s,h,P){return function wk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Er(P.type)),Le=Gs(Cu);try{const ze=Cr(!1),Je=ge();return Cr(ze),function Wn(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Sk(t,s,h){const P=t+sn,Q=ni(),ge=Vc(Q,P);return q0(Q,P)?yk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function kk(t,s,h,P){const Q=t+sn,ge=ni(),ke=Vc(ge,Q);return q0(ge,Q)?xk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function q0(t,s){return t[pi].data[s].pure}function Mk(t,s){return Ig(t,s)}class Hk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Uk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Kk=new $e(""),Zk=new $e("");let uw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,uw||(function OE(t){uw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(kr),Is(qk),Is(Zk))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),qk=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return uw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pw(t){return!!t&&"function"==typeof t.then}function Qk(t){return!!t&&"function"==typeof t.subscribe}const Jk=new $e("");let fw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=Qi(Jk,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(pw(ge))h.push(ge);else if(Qk(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const gw=new $e("");function iM(t,s){return Array.isArray(s)?s.reduce(iM,t):{...t,...s}}let qu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qi(ou),this.afterRenderEffectManager=Qi(Bg),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=Qi(gf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=Qi(xo)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof af;if(!this._injector.get(fw).done)throw!Q&&vo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(lf).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Dd),Je=ke.create(zo.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Kk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),$y(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Kb)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;$y(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(gw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>$y(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $y(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!mw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,ef(t,s,P)}(t,h,s)}function mw(t){return Gc(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Uv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=ha(Zs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new kd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=Qi(kr),this.applicationRef=Qi(qu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=Qi(kr),s=Qi(Za);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=Qi(kr),this.pendingTasks=Qi(gf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yy=new $e("",{providedIn:"root",factory:()=>Qi(Yy,bn.Optional|bn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Rf}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),bw=new $e("");let oM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function pv(t="zone.js",s){return"noop"===t?new V_:"zone.js"===t?new kr(s):t}(P?.ngZone,function rM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function CT(t,s,h){return new x0(t,s,h)}(h.moduleType,this.injector,function sM(t){return[{provide:kr,useFactory:t},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(UE);return()=>{s.initialize()}}},{provide:ou,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Za,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{$y(this._modules,ge),Le.unsubscribe()})}),function tM(t,s,h){try{const P=h();return pw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(fw);return Le.runInitializers(),Le.donePromise.then(()=>(function bC(t){"string"==typeof t&&(mC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(Yy,Rf)||Rf),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=iM({},P);return function VE(t,s,h){const P=new Uv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(qu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(bw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zo))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Qu=null;const aM=new $e("");function lM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=vw();if(!ke||ke.injector.get(aM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Qu&&!Qu.get(aM,!1))throw new me(400,!1);(function eM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Qu=t;const s=t.get(oM);(function hM(t){t.get(fu,null)?.forEach(h=>h())})(t)}(function cM(t=[],s){return zo.create({name:s,providers:[{provide:Ns,useValue:"platform"},{provide:bw,useValue:new Set([()=>Qu=null])},...t]})}(Le,P))}return function KE(t){const s=vw();if(!s)throw new me(401,!1);return s}()}}function vw(){return Qu?.get(oM)??null}function qE(){}let uM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(sa(t)&&!h){const P=jo(t.index,s);return new nf(P,P)}return 47&t.type?new nf(s[Kn],s):null}(hs(),ni(),!(16&~t))}class mM{constructor(){}supports(s){return $g(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new bM),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new bM),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class bM{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function vM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function xM(){return new ww([new mM])}let ww=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:xM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||xM()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function _M(){return new Tw([new yM])}let Tw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:_M});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||_M()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=lM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(qu))};static#t=this.\u0275mod=Fl({type:t});static#i=this.\u0275inj=kn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Sc("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>Qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qi(gf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Za,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function HM(t,s){Sc("NgSignals"),!s?.injector&&Ge();const h=s?.injector??Qi(zo),P=!0!==s?.manualCleanup?h.get(yc):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(uM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[bl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||yo();return new kd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new kd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Er,X1:()=>ja,YN:()=>Qo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>bo,qT:()=>Jl,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(vn){return Bt.onChange(vn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt._handleInput(vn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(vn){return Bt._compositionEnd(vn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Jt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Mt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class ui extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends ui{}const Fn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function zn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function ws(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function Cs(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Di(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Di(ct._rawValidators,Bt),Di(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Di(ct._rawValidators,vt),Di(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const rs=class extends Jt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const Vr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,vn,no){super(),this._changeDetectorRef=vn,this.callSetDisabledState=no,this.control=new rs,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){zn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([Vr]),M.Vt3,M.OA$]})}return ot})(),Jl=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const pr={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt.onChange(vn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([pr]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),rl={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return zn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof rs)(Bt)&&(zn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function kn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function jr(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(vn){return Bt.onSubmit(vn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([rl]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ol={provide:x,useExisting:(0,M.Rfq)(()=>ua)};let ua=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ol]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof ua)}const go={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,vn){super(),this._ngModelWarningConfig=vn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([go]),M.Vt3,M.OA$]})}return ot})();let er=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const cl={provide:F,useExisting:(0,M.Rfq)(()=>Er),multi:!0};let Er=(()=>{class ot extends er{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Eo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([cl]),M.Vt3]})}return ot})(),Ys=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Mn extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let bo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new ui(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new rs(Ye,{...Vi,nonNullable:!0})):new rs(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(vn=>this._createControl(vn));return new Mn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof rs||Ye instanceof Jt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Qo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Mt){return new URL(Mt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Mt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const fe=new M.nKC("");let pe=(()=>{class Mt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Jt=>{Jt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Jt){return this._findPluginFor(wt).addEventListener(_t,wt,Jt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(ui=>ui.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Mt{constructor(_t,wt,Jt,ui={}){this.doc=_t,this.appId=wt,this.nonce=Jt,this.platformId=ui,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(ui),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Jt=>Jt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Jt=>{null!=Jt.textContent&&wt.set(Jt.textContent,Jt)}),wt}return null}changeUsageCount(_t,wt){const Jt=this.styleRef;if(Jt.has(_t)){const ui=Jt.get(_t);return ui.usage+=wt,ui.usage}return Jt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Jt=this.styleNodesInDOM,ui=Jt?.get(wt);if(ui?.parentNode===_t)return Jt.delete(wt),ui.removeAttribute(te),ui;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Jt=this.getStyleElement(_t,wt),ui=this.styleRef,Fi=ui.get(wt)?.elements;Fi?Fi.push(Jt):ui.set(wt,{elements:[Jt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Mt,At){return At.map(_t=>_t.replace(B,Mt))}let z=(()=>{class Mt{constructor(_t,wt,Jt,ui,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Jt,this.removeStylesOnCompDestroy=ui,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Jt=this.getOrCreateRenderer(_t,wt);return Jt instanceof n?Jt.applyToHost(_t):Jt instanceof o&&Jt.applyStyles(),Jt}getOrCreateRenderer(_t,wt){const Jt=this.rendererByCompId;let ui=Jt.get(wt.id);if(!ui){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,_s=this.removeStylesOnCompDestroy,Fn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:ui=new n(vi,Gi,wt,this.appId,_s,Fi,mi,Fn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,Fn);default:ui=new o(vi,Gi,wt,_s,Fi,mi,Fn)}Jt.set(wt.id,ui)}return ui}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class O{constructor(At,_t,wt,Jt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Jt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Jt){if(Jt){_t=Jt+":"+_t;const ui=A[Jt];ui?At.setAttributeNS(ui,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Jt=A[wt];Jt?At.removeAttributeNS(Jt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Jt){Jt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Jt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Mt){return"TEMPLATE"===Mt.tagName&&void 0!==Mt.content}class y extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Jt.id,Jt.styles);for(const _s of Gi){const Fn=document.createElement("style");mi&&Fn.setAttribute("nonce",mi),Fn.textContent=_s,this.shadowRoot.appendChild(Fn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Jt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){const Gi=Jt+"-"+wt.id;super(At,_t,wt,ui,Fi,mi,vi,Gi),this.contentAttr=function _(Mt){return D.replace(B,Mt)}(Gi),this.hostAttr=function b(Mt){return L.replace(B,Mt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Jt){return _t.addEventListener(wt,Jt,!1),()=>this.removeEventListener(_t,wt,Jt)}removeEventListener(_t,wt,Jt){return _t.removeEventListener(wt,Jt)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Mt=>Mt.altKey,control:Mt=>Mt.ctrlKey,meta:Mt=>Mt.metaKey,shift:Mt=>Mt.shiftKey};let k=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return null!=Mt.parseEventName(_t)}addEventListener(_t,wt,Jt){const ui=Mt.parseEventName(wt),Fi=Mt.eventCallback(ui.fullKey,Jt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,ui.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Jt=wt.shift();if(0===wt.length||"keydown"!==Jt&&"keyup"!==Jt)return null;const ui=Mt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const _s=wt.indexOf(Gi);_s>-1&&(wt.splice(_s,1),Fi+=Gi+".")}),Fi+=ui,0!=wt.length||0===ui.length)return null;const vi={};return vi.domEventName=Jt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Jt=d[_t.key]||_t.key,ui="";return wt.indexOf("code.")>-1&&(Jt=_t.code,ui="code."),!(null==Jt||!Jt)&&(Jt=Jt.toLowerCase()," "===Jt?Jt="space":"."===Jt&&(Jt="dot"),l.forEach(Fi=>{Fi!==Jt&&(0,C[Fi])(_t)&&(ui+=Fi+".")}),ui+=Jt,ui===wt)}static eventCallback(_t,wt,Jt){return ui=>{Mt.matchEventFullKeyCode(ui,_t)&&Jt.runGuarded(()=>wt(ui))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Jt=!0)=>{const ui=At.findTestabilityInTree(wt,Jt);if(null==ui)throw new M.wOt(5103,!1);return ui},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Jt=M.JZv.getAllAngularTestabilities();let ui=Jt.length;const Fi=function(){ui--,0==ui&&wt()};Jt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Mt{constructor(_t){}static withServerTransition(_t){return{ngModule:Mt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Mt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Mt})(),he=(()=>{class Mt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})(),Xe=(()=>{class Mt{static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:function(wt){let Jt=null;return Jt=wt?new(wt||Mt):M.KVO(Ze),Jt},providedIn:"root"})}return Mt})(),Ze=(()=>{class Mt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>go,wF:()=>un,Kp:()=>ms,b:()=>Oi,Ix:()=>pi,Wk:()=>gs,wQ:()=>ks,iI:()=>xl,n3:()=>Do});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new zn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function ui(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Mt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Mt(Re.path)}${function Jt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Mt(Ue)}=${Mt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,_s=/^[^=?&#]+/,ls=/^[^&#]+/;class zn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function Fn(Re){const Ue=Re.match(_s);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Di(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Di(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,ei]of Object.entries(mt.children))Ue[Ot]=ei;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function Cs(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Xt of mt.children){const Li=Be(Xt);Ot[Xt.outlet]=Li}const ei=new Me(mt.url,Ot);return mt===Re&&(Ue=ei),ei}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return kn(rt,rt,rt,Be,We);const mt=function qr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new fo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const ei={};return Object.entries(mt.outlets).forEach(([Xt,Li])=>{ei[Xt]="string"==typeof Li?Li.split("/"):Li}),[...rt,{outlets:ei}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((ei,Xt)=>{0==Xt&&"."===ei||(0==Xt&&""===ei?Be=!0:".."===ei?Ue++:""!=ei&&rt.push(ei))}),rt):[...rt,mt]},[]);return new fo(Be,Ue,We)}(Ue);if(mt.toRoot())return kn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new ir(Ue,!0,0);if(!Be)return new ir(Ue,!1,NaN);if(null===Be.parent)return new ir(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new ir(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),ei=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return kn(rt,Ot.segmentGroup,ei,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function ws(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function kn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Xt,Li])=>{mt[Xt]=Array.isArray(Li)?Li.map(pn=>`${pn}`):`${Li}`}),Ot=Re===Ue?Be:jr(Re,Ue,Be);const ei=dn(Di(Ot));return new _e(ei,mt,rt)}function jr(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:jr(mt,Ue,Be)}),new Me(Re.segments,We)}class fo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(ws);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ir{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],ei=Be[We];if(ws(ei))break;const Xt=`${ei}`,Li=We0&&void 0===Xt)break;if(Xt&&Li&&"object"==typeof Li&&void 0===Li.outlets){if(!si(Xt,Li,Ot))return mt;We+=2}else{if(!si(Xt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class rs extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class os extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Js extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class ns extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Qr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Vr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Jl{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class pr{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Jr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class bn{}class Ko{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new eo,this.attachRef=null}}let eo=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class sl{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=rl(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=rl(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function rl(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=rl(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ol extends sl{constructor(Ue,Be){super(Ue),this.snapshot=Be,fa(this,Ue)}toString(){return this.snapshot.toString()}}function ua(Re){const Ue=function Ra(Re){const mt=new pa([],{},{},"",{},w,Re,null,{});return new Dr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),ei=new go(Be,We,mt,Ot,rt,w,Re,Ue.root);return ei.snapshot=Ue.root,new ol(new Hs(ei,[]),Ue)}class go{constructor(Ue,Be,We,rt,mt,Ot,ei,Xt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=ei,this._futureSnapshot=Xt,this.title=this.dataSubject?.pipe((0,_.T)(Li=>Li[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&zr(rt)&&(We.resolve[X]=rt.title),We}class pa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,ei,Xt,Li){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=ei,this.routeConfig=Xt,this._resolve=Li}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Dr extends sl{constructor(Ue,Be){super(Be),this.url=Ue,fa(this,Be)}toString(){return Is(this._root)}}function fa(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>fa(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||Qi(Re.parent,Ue.parent))}function zr(Re){return"string"==typeof Re.title||null===Re.title}let Do=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(mo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,ei=this.parentContexts.getOrCreateContext(this.name).children,Xt=new ga(Be,ei,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Xt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ga{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===go?this.route:Ue===eo?this.childContexts:this.parent.get(Ue,Be)}}const mo=new M.nKC("");let ma=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,ei],Xt)=>(ei={...mt,...Ot,...ei},0===Xt?(0,Pe.of)(ei):Promise.resolve(ei)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:ei}of Ot.inputs)Be.activatedComponentRef.setInput(ei,mt[ei]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Eo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function er(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Eo(Re,We,rt);return Eo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(ei=>Eo(Re,ei)),Ot}}const We=function ll(Re){return new go(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Eo(Re,mt));return new Hs(We,rt)}}const Gr="ngNavigationCancelingError";function cl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Er(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Er(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[Gr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[Gr]}let Ar=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Do],encapsulation:2})}return Re})();function Hr(Re){const Ue=Re.children&&Re.children.map(Hr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Ar),Be}function io(Re){return Re.outlet||w}function Ys(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class ya{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),ei=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:ei})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const ei=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(ei.contexts),Ot.attachRef=ei.componentRef,Ot.route=ei.route.value,Ot.outlet&&Ot.outlet.attach(ei.componentRef,ei.route.value),Us(ei.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const ei=Ys(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=ei,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class bo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function hl(Re,Ue,Be){const We=Re._root;return Qo(We,Ue?Ue._root:null,Be,[We.value])}function Zi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Qo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,ei=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Xt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!Qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Xt?rt.canActivateChecks.push(new qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Qo(Re,Ue,mt.component?ei?ei.children:null:Be,We,rt),Xt&&ei&&ei.outlet&&ei.outlet.isActivated&&rt.canDeactivateChecks.push(new bo(ei.outlet.component,Ot))}else Ot&&ct(Ue,ei,rt),rt.canActivateChecks.push(new qo(We)),Qo(Re,null,mt.component?ei?ei.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,ei])=>ct(ei,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new bo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Ks(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Or=Symbol("INITIAL_VALUE");function rr(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Or)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Or)return Or;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Or),(0,T.s)(1)))}function so(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw cl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Fl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Lr(Re){return(0,J.$)(new Fl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const ei=mt.substring(1);We[rt]=Be[ei]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([ei,Xt])=>{Ot[ei]=this.createSegmentGroup(Ue,Xt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const vo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zs(Re,Ue,Be,We,rt){const mt=dl(Re,Ue,Be);return mt.matched?(We=function Zo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Kh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Ir(Re){return Re&&Ye(Re.canMatch)}(ei)?ei.canMatch(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...vo}))):(0,Pe.of)(mt)}function dl(Re,Ue,Be){if("**"===Ue.path)return function ul(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...vo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...vo};const mt={};Object.entries(rt.posParams??{}).forEach(([ei,Xt])=>{mt[ei]=Xt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function pl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We)&&io(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ic(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Bl(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Oc(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Oc(Re,Ue,Be,We){const rt={};for(const mt of Be)if(fl(Re,Ue,mt)&&!We[io(mt)]){const Ot=new Me([],{});rt[io(mt)]=Ot}return{...We,...rt}}function ic(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&io(We)!==w){const rt=new Me([],{});Be[io(We)]=rt}return Be}function fl(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Lc{}class jl{constructor(Ue,Be,We,rt,mt,Ot,ei){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=ei,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=pl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new pa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new Dr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Fl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],ei=function ec(Re,Ue){const Be=Re.filter(We=>io(We)===Ue);return Be.push(...Re.filter(We=>io(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,ei,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let ei=Be,Xt=Ue,Li=0;mt.subscribe((0,F._)(Ot,pn=>{const Dn=Li++;Xt=ei?Re(Xt,pn,Dn):(ei=!0,pn),We&&Ot.next(Xt)},rt&&(()=>{ei&&Ot.next(Xt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Lr(We);const Ot=Lo(mt);return function tr(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(ei=>this.processSegmentAgainstRoute(ei._injector??Ue,Be,ei,We,rt,mt,Ot).pipe((0,d.W)(Xt=>{if(Xt instanceof Fl)return(0,Pe.of)(null);throw Xt}))),n(ei=>!!ei),(0,d.W)(ei=>{if(Ks(ei))return function nc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Lc):Lr(We);throw ei}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,ei){return function Pc(Re,Ue,Be,We){return!!(io(Re)===We||We!==w&&fl(Ue,Be,Re))&&dl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&ei?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Lr(rt):Lr(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:ei,consumedSegments:Xt,positionalParamSegments:Li,remainingSegments:pn}=dl(Be,rt,mt);if(!ei)return Lr(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const Dn=this.applyRedirects.applyRedirectCommands(Xt,rt.redirectTo,Li);return this.applyRedirects.lineralizeSegments(rt,Dn).pipe((0,f.Z)(qs=>this.processSegment(Ue,We,Be,qs.concat(pn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=Zs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(ei=>ei.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Xt})=>{const Li=We._loadedInjector??Ue,{consumedSegments:pn,remainingSegments:Dn,parameters:qs}=ei,Hl=new pa(pn,qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ns(Re){return Re.data||{}}(We),io(We),We.component??We._loadedComponent??null,We,function Fs(Re){return Re.resolve||{}}(We)),{segmentGroup:Cl,slicedSegments:wl}=pl(Be,pn,Dn,Xt);if(0===wl.length&&Cl.hasChildren())return this.processChildren(Li,Xt,Cl).pipe((0,_.T)(Wa=>null===Wa?null:new Hs(Hl,Wa)));if(0===Xt.length&&0===wl.length)return(0,Pe.of)(new Hs(Hl,[]));const cc=io(We)===mt;return this.processSegment(Li,Xt,Cl,wl,cc?w:mt,!0).pipe((0,_.T)(Wa=>new Hs(Hl,Wa instanceof Hs?[Wa]:[])))})):Lr(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Ac(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(ei)?ei.canLoad(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Er(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Nc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Lo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Nc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Lo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function yo(Re){const Ue=Re.children.map(Be=>yo(Be)).flat();return[Re,...Ue]}function Vl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Fc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(ml),providedIn:"root"})}return Re})(),ml=(()=>{class Re extends Fc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ta=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Ur(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,ei=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Hr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function ia(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let na=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Li=>{mt=Li}),ei=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Xt}=We;return Xt&&(0,M.N4e)(Re,()=>Xt({transition:ei,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ta),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(mo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Fc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(na),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new Jl(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,ei=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Xt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Xt.id,initialUrl:Xt.rawUrl,extractedUrl:Xt.extractedUrl,trigger:Xt.source,extras:Xt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Li=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Li&&"reload"!==(Xt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.rawUrl),Dn,cn.IgnoredSameUrlNavigation)),Xt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Xt.rawUrl))return(0,Pe.of)(Xt).pipe((0,b.n)(Dn=>{const qs=this.transitions?.getValue();return this.events.next(new rs(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),Dn.source,Dn.restoredState)),qs!==this.transitions?.getValue()?te.w:Promise.resolve(Dn)}),function ea(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function Po(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new jl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:ei,tree:Xt})=>({...Ot,targetSnapshot:ei,urlAfterRedirects:Xt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(Dn=>{mt.targetSnapshot=Dn.targetSnapshot,mt.urlAfterRedirects=Dn.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:Dn.urlAfterRedirects};const qs=new Qr(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),this.urlSerializer.serialize(Dn.urlAfterRedirects),Dn.targetSnapshot);this.events.next(qs)}));if(Li&&this.urlHandlingStrategy.shouldProcessUrl(Xt.currentRawUrl)){const{id:Dn,extractedUrl:qs,source:Hl,restoredState:Cl,extras:wl}=Xt,cc=new rs(Dn,this.urlSerializer.serialize(qs),Hl,Cl);this.events.next(cc);const Wa=ua(this.rootComponentType).snapshot;return this.currentTransition=mt={...Xt,targetSnapshot:Wa,urlAfterRedirects:qs,extras:{...wl,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=qs,(0,Pe.of)(mt)}{const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),Dn,cn.IgnoredByUrlHandlingStrategy)),Xt.resolve(null),te.w}}),(0,l.M)(Xt=>{const Li=new nr(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot);this.events.next(Li)}),(0,_.T)(Xt=>(this.currentTransition=mt={...Xt,guards:hl(Xt.targetSnapshot,Xt.currentSnapshot,this.rootContexts)},mt)),function Pr(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Bn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Yh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(ei=>{const Xt=Ys(Ue)??rt,Li=Zi(ei,Xt);return Ce(function no(Re){return Re&&Ye(Re.canDeactivate)}(Li)?Li.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Xt,()=>Li(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(rr())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(ei=>ei&&function vt(Re){return"boolean"==typeof Re}(ei)?function fr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function tc(Re,Ue){return null!==Re&&Ue&&Ue(new pr(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function Jo(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Xh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Oo(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const ei=Ot.guards.map(Xt=>{const Li=Ys(Ot.node)??Be,pn=Zi(Xt,Li);return Ce(function vn(Re){return Re&&Ye(Re.canActivateChild)}(pn)?pn.canActivateChild(We,Re):(0,M.N4e)(Li,()=>pn(We,Re))).pipe(n())});return(0,Pe.of)(ei).pipe(rr())}));return(0,Pe.of)(mt).pipe(rr())}(Re,rt.path,Be),function Nl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ys(Ue)??Be,ei=Zi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(ei)?ei.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>ei(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(rr())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(ei)),(0,_.T)(ei=>({...Be,guardsResult:ei})))})}(this.environmentInjector,Xt=>this.events.next(Xt)),(0,l.M)(Xt=>{if(mt.guardsResult=Xt.guardsResult,On(Xt.guardsResult))throw cl(0,Xt.guardsResult);const Li=new Ls(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot,!!Xt.guardsResult);this.events.next(Li)}),(0,O.p)(Xt=>!!Xt.guardsResult||(this.cancelNavigationTransition(Xt,"",Xi.GuardRejected),!1)),Vl(Xt=>{if(Xt.guards.canActivateChecks.length)return(0,Pe.of)(Xt).pipe((0,l.M)(Li=>{const pn=new Vr(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}),(0,b.n)(Li=>{let pn=!1;return(0,Pe.of)(Li).pipe(function gl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Xt=>Xt.route)),Ot=new Set;for(const Xt of mt)if(!Ot.has(Xt))for(const Li of yo(Xt))Ot.add(Li);let ei=0;return(0,V.H)(Ot).pipe((0,r.H)(Xt=>mt.has(Xt)?function xo(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!zr(rt)&&(mt[X]=rt.title),function _a(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function Ca(Re,Ue,Be,We){const rt=Ys(Ue)??We,mt=Zi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(ei=>{mt[Ot]=ei}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Ks(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Xt,We,Re,Ue):(Xt.data=xr(Xt,Xt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>ei++),p(1),(0,f.Z)(Xt=>ei===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>pn=!0,complete:()=>{pn||this.cancelNavigationTransition(Li,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Li=>{const pn=new Ki(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}))}),Vl(Xt=>{const Li=pn=>{const Dn=[];pn.routeConfig?.loadComponent&&!pn.routeConfig._loadedComponent&&Dn.push(this.configLoader.loadComponent(pn.routeConfig).pipe((0,l.M)(qs=>{pn.component=qs}),(0,_.T)(()=>{})));for(const qs of pn.children)Dn.push(...Li(qs));return Dn};return(0,ie.z)(Li(Xt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),Vl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Xt,targetSnapshot:Li}=mt,pn=this.createViewTransition?.(this.environmentInjector,Xt.root,Li.root);return pn?(0,V.H)(pn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Xt=>{const Li=function al(Re,Ue,Be){const We=Eo(Re,Ue._root,Be?Be._root:void 0);return new ol(We,Ue)}(Be.routeReuseStrategy,Xt.targetSnapshot,Xt.currentRouterState);return this.currentTransition=mt={...Xt,targetRouterState:Li},this.currentNavigation.targetRouterState=Li,mt}),(0,l.M)(()=>{this.events.next(new bn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new ya(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Xt=>this.events.next(Xt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Xt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Xt.targetRouterState.snapshot),Xt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Xt=>{throw Xt}))),(0,H.j)(()=>{!Ot&&!ei&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Xt=>{if(ei=!0,cs(Xt))this.events.next(new os(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt.message,Xt.cancellationCode)),function sr(Re){return cs(Re)&&On(Re.url)}(Xt)?this.events.next(new Ko(Xt.url)):mt.resolve(!1);else{this.events.next(new ns(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Xt))}catch(Li){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Li)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new os(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Oi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(es),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let es=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),as=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends as{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(na),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=ua(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof rs)this.stateMemento=this.createStateMemento();else if(Be instanceof Js)this.rawUrlTree=We.initialUrl;else if(Be instanceof Qr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof bn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof os&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof ns?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ss(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof os||Be instanceof ns||Be instanceof Js),(0,_.T)(Be=>Be instanceof un||Be instanceof Js?us.COMPLETE:Be instanceof os&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function Bs(Re){throw Re}const Rr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Gn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(as),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(na),this._events=new I.B,this.errorHandler=this.options.errorHandler||Bs,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Oi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(mo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof os&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Ko){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),ei={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,ei,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof bn||Re instanceof Ko)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Xt={...rt};delete Xt.navigationId,delete Xt.\u0275routerPageId,0!==Object.keys(Xt).length&&(mt.state=Xt)}const ei=this.parseUrl(Be);this.scheduleNavigation(ei,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Hr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:ei,preserveFragment:Xt}=We,Li=Xt?this.currentUrlTree.fragment:Ot;let Dn,pn=null;switch(ei){case"merge":pn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":pn=this.currentUrlTree.queryParams;break;default:pn=mt||null}null!==pn&&(pn=this.removeEmptyProps(pn));try{Dn=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),Dn=this.currentUrlTree.root}return $n(Dn,Be,pn,Li??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let ei,Xt,Li;Ot?(ei=Ot.resolve,Xt=Ot.reject,Li=Ot.promise):Li=new Promise((Dn,qs)=>{ei=Dn,Xt=qs});const pn=this.pendingTasks.add();return ss(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(pn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:ei,reject:Xt,promise:Li,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Li.catch(Dn=>Promise.reject(Dn))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,ei){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=ei,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Xt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Xt||"area"===Xt,this.isAnchorElement?this.subscription=Be.events.subscribe(Li=>{Li instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const ei=this.urlTree;return!!(null===ei||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(ei,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(go),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(ei=>{ei instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function or(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class wa{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),_o=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,ei=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(ei,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(pi),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(wa),M.KVO(ta))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Ro=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof rs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof Js&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof Jr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Jr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function Sa(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(pi),rt=Re.get(No);1===Re.get(bl)&&We.initialNavigation(),Re.get(vl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const No=new M.nKC("",{factory:()=>new I.B}),bl=new M.nKC("",{providedIn:"root",factory:()=>1}),vl=new M.nKC("");function Fo(Re){return Kn(0,[{provide:vl,useExisting:_o},{provide:wa,useExisting:Re}])}function mr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const Gl=new M.nKC("ROUTER_FORROOT_GUARD"),sa=[E.aZ,{provide:Qe,useClass:st},pi,eo,{provide:go,useFactory:function bs(Re){return Re.routerState.root},deps:[pi]},ta,[]];let xl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[sa,[],{provide:Ga,multi:!0,useValue:Be},{provide:Gl,useFactory:Zh,deps:[[pi,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Ro(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Fo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Qn(We):[],We?.bindToComponentInputs?Kn(8,[ma,{provide:mo,useExisting:ma}]).\u0275providers:[],We?.enableViewTransitions?mr().\u0275providers:[],[{provide:_l,useFactory:Sa},{provide:M.iLQ,multi:!0,useExisting:_l}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(Gl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function Zh(Re){return"guarded"}function Qn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(pi);return()=>{Ue.setUpLocationChangeListener()}}},{provide:bl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:bl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(pi),mt=Ue.get(No);ss(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const _l=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Vo,do:()=>Yc,Bq:()=>qc,UN:()=>ah,ZM:()=>cd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Wt=>Wt.length)){const Wt=Ne.map(Qt=>Qt.shift());we.next(je?je(...Wt):Wt),Ne.some((Qt,ii)=>!Qt.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Wt=0;Wt{it[Wt]=Qt,!Vt&&!ft[Wt]&&(ft[Wt]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Wt=>{if(Vt){const Qt=[Wt,...it];we.next(je?je(...Qt):Qt)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Wt=!ht()&&ae,Qt=(we.left+(Wt&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Wt&&Vt?Vt.offsetTop:0))/it,Ci=we.width/Ne,_i=we.height/it;return{width:Ci,height:_i,top:ii,right:Qt+Ci,bottom:ii+_i,left:Qt,x:Qt,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Jt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function ui(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&ui(be)?be:Fi(Jt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],ui(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Jt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function Fn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function _s(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Jt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Mt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Wt=0;if(Ne){it=Ne.width,ft=Ne.height;var Qt=ht();(Qt||!Qt&&"fixed"===je)&&(Vt=Ne.offsetLeft,Wt=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Wt}}(be,ae)):Ee(je)?function zn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Wt=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Wt}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Wt,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Wt={x:ft,y:je.y-ae.height};break;case U:Wt={x:ft,y:je.y+je.height};break;case se:Wt={x:je.x+je.width,y:Vt};break;case w:Wt={x:je.x-ae.width,y:Vt};break;default:Wt={x:je.x,y:je.y}}var Qt=Ne?Pn(Ne):null;if(null!=Qt){var ii="y"===Qt?"height":"width";switch(it){case x:Wt[Qt]=Wt[Qt]-(je[ii]/2-ae[ii]/2);break;case N:Wt[Qt]=Wt[Qt]+(je[ii]/2-ae[ii]/2)}}return Wt}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function ws(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function kn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Wt=void 0===Vt?"clippingParents":Vt,Qt=je.rootBoundary,ii=void 0===Qt?K:Qt,Ci=je.elementContext,_i=void 0===Ci?q:Ci,Ai=je.altBoundary,_n=void 0!==Ai&&Ai,rn=je.padding,fn=void 0===rn?0:rn,Rn=$i("number"!=typeof fn?fn:ws(fn,G)),vs=be.rects.popper,En=be.elements[_n?_i===q?"reference":q:_i],Zn=function Cs(be,je,ae,we){var Ne="clippingParents"===je?function Di(be){var je=mi(Jt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?Fn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Wt,Qt){var ii=dn(be,Qt,we);return Wt.top=Qe(ii.top,Wt.top),Wt.right=st(ii.right,Wt.right),Wt.bottom=st(ii.bottom,Wt.bottom),Wt.left=Qe(ii.left,Wt.left),Wt},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(En)?En:En.contextElement||lt(be.elements.popper),Wt,ii,ft),An=Lt(be.elements.reference),qn=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ps=fs(Object.assign({},vs,qn)),lr=_i===q?Ps:An,zs={top:Zn.top-lr.top+Rn.top,bottom:lr.bottom-Zn.bottom+Rn.bottom,left:Zn.left-lr.left+Rn.left,right:lr.right-Zn.right+Rn.right},wr=be.modifiersData.offset;if(_i===q&&wr){var lo=wr[Ne];Object.keys(zs).forEach(function(Tr){var xe=[se,U].indexOf(Tr)>=0?1:-1,tt=[Y,U].indexOf(Tr)>=0?"y":"x";zs[Tr]+=lo[tt]*xe})}return zs}const ir={name:"flip",enabled:!0,phase:"main",fn:function qr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Wt=ae.fallbackPlacements,Qt=ae.padding,ii=ae.boundary,Ci=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,_n=void 0===Ai||Ai,rn=ae.allowedAutoPlacements,fn=je.options.placement,Rn=S(fn),vs=Wt||(Rn!==fn&&_n?function fo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(fn):[p(fn)]),En=[fn].concat(vs).reduce(function(oi,Pi){return oi.concat(S(Pi)===X?function jr(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Wt=je.allowedAutoPlacements,Qt=void 0===Wt?Ce:Wt,ii=On(je.placement),Ci=ii?Vt?me:me.filter(function(_n){return On(_n)===ii}):G,_i=Ci.filter(function(_n){return Qt.indexOf(_n)>=0});0===_i.length&&(_i=Ci);var Ai=_i.reduce(function(_n,rn){return _n[rn]=kn(be,{placement:rn,boundary:Ne,rootBoundary:it,padding:ft})[S(rn)],_n},{});return Object.keys(Ai).sort(function(_n,rn){return Ai[_n]-Ai[rn]})}(je,{placement:Pi,boundary:ii,rootBoundary:Ci,padding:Qt,flipVariations:_n,allowedAutoPlacements:rn}):Pi)},[]),Zn=je.rects.reference,An=je.rects.popper,qn=new Map,Ps=!0,lr=En[0],zs=0;zs=0,tt=xe?"width":"height",u=kn(je,{placement:wr,boundary:ii,rootBoundary:Ci,altBoundary:_i,padding:Qt}),ne=xe?Tr?se:w:Tr?U:Y;Zn[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[lo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){lr=wr,Ps=!1;break}qn.set(wr,Ie)}if(Ps)for(var Tt=function(Pi){var qi=En.find(function(Yi){var tn=qn.get(Yi);if(tn)return tn.slice(0,Pi).every(function(Cn){return Cn})});if(qi)return lr=qi,"break"},zt=_n?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==lr&&(je.modifiersData[we]._skip=!0,je.placement=lr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,_n=ae.tetherOffset,rn=void 0===_n?0:_n,fn=kn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Rn=S(je.placement),jn=On(je.placement),vs=!jn,En=Pn(Rn),Zn=function St(be){return"x"===be?"y":"x"}(En),An=je.modifiersData.popperOffsets,qn=je.rects.reference,Ps=je.rects.popper,lr="function"==typeof rn?rn(Object.assign({},je.rects,{placement:je.placement})):rn,zs="number"==typeof lr?{mainAxis:lr,altAxis:lr}:Object.assign({mainAxis:0,altAxis:0},lr),wr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,lo={x:0,y:0};if(An){if(it){var Tr,xe="y"===En?Y:w,tt="y"===En?U:se,u="y"===En?"height":"width",ne=An[En],ue=ne+fn[xe],Ie=ne-fn[tt],nt=Ai?-Ps[u]/2:0,Tt=jn===x?qn[u]:Ps[u],zt=jn===x?-Ps[u]:-qn[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Pi=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},qi=Pi[xe],Yi=Pi[tt],tn=Rt(0,qn[u],oi[u]),Cn=vs?qn[u]/2-nt-tn-qi-zs.mainAxis:Tt-tn-qi-zs.mainAxis,nn=vs?-qn[u]/2+nt+tn+Yi+zs.mainAxis:zt+tn+Yi+zs.mainAxis,Jn=je.elements.arrow&&Fn(je.elements.arrow),Ds=Jn?"y"===En?Jn.clientTop||0:Jn.clientLeft||0:0,Ws=null!=(Tr=wr?.[En])?Tr:0,co=ne+nn-Ws,Uo=Rt(Ai?st(ue,ne+Cn-Ws-Ds):ue,ne,Ai?Qe(Ie,co):Ie);An[En]=Uo,lo[En]=Uo-ne}if(Vt){var _c,la=An[Zn],gu="y"===Zn?"height":"width",rg=la+fn["x"===En?Y:w],og=la-fn["x"===En?U:se],Ip=-1!==[Y,w].indexOf(Rn),Al=null!=(_c=wr?.[Zn])?_c:0,lh=Ip?rg:la-qn[gu]-Ps[gu]-Al+zs.altAxis,ag=Ip?la+qn[gu]+Ps[gu]-Al-zs.altAxis:og,lg=Ai&&Ip?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(lh,la,ag):Rt(Ai?lh:rg,la,Ai?ag:og);An[Zn]=lg,lo[Zn]=lg-la}je.modifiersData[we]=lo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Wt=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var Ci=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:ws(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Wt?Y:w,_n="y"===Wt?U:se,rn=ae.rects.reference[ii]+ae.rects.reference[Wt]-ft[Wt]-ae.rects.popper[ii],fn=ft[Wt]-ae.rects.reference[Wt],Rn=Fn(it),jn=Rn?"y"===Wt?Rn.clientHeight||0:Rn.clientWidth||0:0,An=jn/2-_i[ii]/2+(rn/2-fn/2),qn=Rt(Ci[Ai],An,jn-_i[ii]-Ci[_n]);ae.modifiersData[we]=((je={})[Wt]=qn,je.centerOffset=qn-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function rs(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Wt={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||ui(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Wt=Lt(je,!0)).x+=je.clientLeft,Wt.y+=je.clientTop):it&&(Wt.x=ti(it))),{x:ft.left+Vt.scrollLeft-Wt.x,y:ft.top+Vt.scrollTop-Wt.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Wt=je.get(Vt);Wt&&Ne(Wt)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var Js={placement:"bottom",modifiers:[],strategy:"absolute"};function ns(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(Ci,je.rects,it),ii},{}),Vt=ft[je.placement],Qt=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=Qt),je.modifiersData[we]=ft}},Hs=["*"],Xs=["dialog"];function Jo(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function tc(be,je){}function Nl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,Jo,1,1,"ng-template",null,0,M.C5r)(3,tc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Lc={animation:!0,transitionTimerDelayMs:5};let Po=(()=>{class be{constructor(){this.animation=Lc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function xa(be){return"string"==typeof be}function ea(be){return null!=be}function Ca(be){return(be||document.body).getBoundingClientRect()}function ml(be=document){const je=be?.activeElement;return je?je.shadowRoot?ml(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Lc,ta=new Map,Ur=(be,je,ae,we)=>{let Ne=we.context||{};const it=ta.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ta.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function Vl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Wt=new ie.B,Qt=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ta.set(je,{transition$:Vt,complete:()=>{Wt.next(),Wt.complete()},context:Ne});const ii=function jl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const Ci=(0,re.R)(je,"transitionend").pipe((0,I.Q)(Qt),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(Qt)),Ci,Wt).pipe((0,I.Q)(Qt)).subscribe(()=>{ta.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},na=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),Ca(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Ur(this._zone,this._element.nativeElement,na,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ro=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),sc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Qn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Qn||{});const Jh=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function _a(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const Qt=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Qn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!Jh(Ai,ft)&&("inside"===ae?Jh(Ai,it)&&Re(Ai,Vt):"outside"===ae?!Jh(Ai,it):Re(Ai,Vt)||!Jh(Ai,it))}),(0,I.Q)(Ne)),Ci=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([Qt.pipe((0,T.T)(_i=>0)),Ci.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let ei=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Xt=/\s+/,Li=/ +/gi,pn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},qs=/^left/,Hl=/^right/,Cl=/^start/,wl=/^end/;function Wa({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Xt),it=we.findIndex(Qt=>"auto"===Qt);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(Qt){null==we.find(ii=>-1!==ii.search("^"+Qt))&&we.splice(it++,1,Qt)});const ft=we.map(Qt=>function Dn(be,je){const[ae,we]=pn[be];return je&&we||ae}(Qt,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:Qt}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),Ci=Qt.elements.popper,_i=Qt.placement;let Ai=Ci.className;Ai=Ai.replace(ii,""),Ai+=` ${function cc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(qs,"start").replace(Hl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Cl,"top").replace(wl,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Li," "),Ci.className=Ai}},ir,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function tp(be){return be}function ed(){const be=(0,M.WQX)(ei);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je=eo(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function Bo(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Hd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ud=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Vo=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,$c,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Dh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Yc=(()=>{class be extends Dh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Dh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(Ud),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=ed(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(Bo([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Wt,Qt)=>{Wt.contains(ae.target)&&(ft=Wt),Wt===ml(this._document)&&(it=Qt)}),we!==Qn.Space&&we!==Qn.Enter){if(we!==Qn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Qn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Qn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Qn.Home:it=0;break;case Qn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Wt=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Wt[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Wt[Wt.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Wt})=>{this._nativeElement.contains(Wt)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Vo,5),M.wni(it,Dh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Eh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Wd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class Ml{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class _p{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Ur(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Ur(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new Ml([we.rootNodes],we)}return new Ml([[this._document.createTextNode(`${je}`)]])}return new Ml([])}}let pc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Kc=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Ur(this._zone,this._nativeElement,(ae,we)=>{we&&Ca(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Ur(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Ah{update(je){}close(je){}dismiss(je){}}const ad=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Zc=["animation","backdropClass"];class $d{_applyWindowOptions(je,ae){ad.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Zc.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function gl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Ih=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Ih||{});let Zf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":xa(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Ur(this._zone,ae,()=>ae.classList.remove("show"),we),Ur(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Ur(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&Ca(it),it.classList.add("show")},ae),Ur(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Qn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Ih.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Ih.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Ur(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Xs,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),qf=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(pc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Qn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Wt]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Wt.focus(),it.preventDefault()),ft===Wt&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ea(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Ah,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Wt=this._getContentRef(ae,Vt,we,ft,Ne);let Qt=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Wt.nodes),Ci=new $d(ii,Wt,Qt,Ne.beforeDismiss);return this._registerModalRef(Ci),this._registerWindowCmpt(ii),Ci.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{Ci.close(_i)},ft.dismiss=_i=>{Ci.dismiss(_i)},ft.update=_i=>{Ci.update(_i)},Ci.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),Qt&&Qt.instance&&Qt.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),Ci}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)(Kc,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Zf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):xa(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new Ml([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new Ml([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new Ml([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Ah,useValue:it}],parent:ae}),Wt=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),Qt=Wt.location.nativeElement;return ft.scrollable&&Qt.classList.add("component-host-scrollable"),this._applicationRef.attachView(Wt.hostView),new Ml([[Qt]],Wt.hostView,Wt)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),qc=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(qf),this._config=(0,M.WQX)(Wd)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),br=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[qc]})}return be})(),qd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Xl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let Jd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ld=0,eu=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Nl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),cd=(()=>{class be{constructor(){this._config=(0,M.WQX)(Jd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+ld++,this._popupService=new _p(eu),this._windowRef=null,this._positioning=ed()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(Bo([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function wp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function ar(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Wt=new Set,Qt=[];let ii;function Ci(Ai,_n){be.addEventListener(Ai,_n),Qt.push(()=>be.removeEventListener(Ai,_n))}function _i(Ai,_n){clearTimeout(ii),_n>0?ii=setTimeout(Ai,_n):Ai()}for(const[Ai,_n]of Vt)_n?(Ci(Ai,()=>{Wt.add(Ai),_i(()=>Wt.size>0&&we(),it)}),Ci(_n,()=>{Wt.delete(Ai),_i(()=>0===Wt.size&&Ne(),ft)})):Ci(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>Qt.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(xa(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ih=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ea=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ig=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),xc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),aa=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let Bh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const Vh=[Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh];let ah=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[Vh,Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Jt,vr:()=>ir,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Mt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Jt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),ui=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),_s=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),Fn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),zn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Di={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function Cs(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Di[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=Cs(xt).toLocaleLowerCase(),this.filteredItems.find($e=>Cs($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:Cs(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Mt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return Cs($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Mt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),rs=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=rs,Ti.value=Hi(It,rs.map(un=>un.value)),yt.push(Ti),yt.push(...rs)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let ws=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),kn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),jr=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),fo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const qr=new M.nKC("ng-select-selection-model");let ir=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const rs=this.selectedItems.find(un=>un.value===Hi);this.unselect(rs)},this.trackByOption=(Hi,rs)=>this.trackByFn?this.trackByFn(rs.value):rs,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Mt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Mt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Mt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(jr),M.rXU(qr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(fo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Jt,5,M.C4Q),M.wni($t,ui,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,_s,5,M.C4Q),M.wni($t,Fn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,zn,5,M.C4Q),M.wni($t,kn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(ws,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,ws,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:qr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>Zn,hp:()=>fn,FP:()=>Ai,yc:()=>Qt,Tg:()=>Wt,XI:()=>Ne,bG:()=>Tr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Mt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Jt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Mt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function ui(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function Fn(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function zn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Di(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Cs(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,Cs,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function ws(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function kn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function jr(xe,tt){}function fo(xe,tt){1&xe&&e.DNE(0,jr,0,0,"ng-template")}function qr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,ws,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,kn,1,0,"ChevronDownIcon",7)(9,fo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function ir(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,ir,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,ui,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,Fn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,zn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Di,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,qr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Jt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Pi=Math.ceil((nt+Ie)/7);for(let qi=0;qint){let Cn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:Cn.month,year:Cn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,Cn.month,Cn.year),selectable:this.isSelectable(zt-nt,Cn.month,Cn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Pi&&this.maxDate.toDateString()===Pi&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Pi=ue+1{let Yi=""+Pi;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Pi]:qi[Pi];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Pi=-1,qi=-1,Yi=!1,Cn=Ws=>{let cr=ue+1{let cr=Cn(Ws),co="@"===Ws?14:"!"===Ws?20:"y"===Ws&&cr?4:"o"===Ws?3:2,_c=new RegExp("^\\d{"+("y"===Ws?co:1)+","+co+"}"),Aa=u.substring(Tt).match(_c);if(!Aa)throw"Missing number at position "+Tt;return Tt+=Aa[0].length,parseInt(Aa[0],10)},Jn=(Ws,cr,co)=>{let Uo=-1,_c=Cn(Ws)?co:cr,Aa=[];for(let Sr=0;Sr<_c.length;Sr++)Aa.push([Sr,_c[Sr]]);Aa.sort((Sr,la)=>-(Sr[1].length-la[1].length));for(let Sr=0;Sr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Pi=1),ue=0;ue-1)for(oi=1,Pi=qi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Pi<=Ie);)oi++,Pi-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Pi=-1===Pi?1:Pi),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Pi)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Pi)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),rs=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],os=["*"],Js=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi,qi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Pi,"p-overlay-right-start":qi,"p-overlay-right-end":Yi}),ns=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Qr=xe=>({value:"visible",params:xe}),nr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function Vr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,Vr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Qr,e.sMw(7,ns,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,nr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,Js,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const Jl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},pr=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([Jl])],ngContentSelectors:os,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(pr)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var Jr=He(38757);const bn=["element"],Ko=["content"],nl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),eo=(xe,tt)=>({$implicit:xe,options:tt}),sl=xe=>({"p-scroller-loading":xe}),rl=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ol=(xe,tt)=>({rows:xe,columns:tt});function ua(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ua,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u.loadedItems,u.getContentOptions()))}}function go(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,go,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u,ue.getOptions(ne)))}}function pa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,sl,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function Dr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function fa(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,fa,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function Qi(xe,tt){1&xe&&e.eu8(0)}function zr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Do(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ga(xe,tt){if(1&xe&&e.DNE(0,zr,2,5,"ng-container",6)(1,Do,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function mo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ga,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,rl,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ma(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,pa,3,7,"ng-template",null,2,e.C5r)(6,Dr,1,2,"div",8)(7,mo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function al(xe,tt){1&xe&&e.eu8(0)}function Eo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,al,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,eo,u.items,e.l_i(2,ol,u._items,u.loadedColumns)))}}function er(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Eo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let ll=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Pi=(Jn=0,Ds)=>Jn<=Ds?0:Jn,qi=(Jn,Ds,Ws)=>Jn*Ds+Ws,Yi=(Jn=0,Ds=0)=>this.scrollTo({left:Jn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,Cn=!1,nn=!1;this.both?(tn={rows:Pi(u[0],zt[0]),cols:Pi(u[1],zt[1])},Yi(qi(tn.cols,oi[1],ai.left),qi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,Cn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Pi(u,zt),this.horizontal?Yi(qi(tn,oi,ai.left),nt):Yi(Tt,qi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),Cn=tn!==Ie),this.isRangeChanged=Cn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Pi=0)=>this.scrollTo({left:oi,top:Pi,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,Jn)=>nn?nn>Jn?nn-Jn:nn:0,nt=(nn,Jn)=>Math.floor(nn/(Jn||nn)),Tt=(nn,Jn,Ds,Ws,cr,co)=>nn<=cr?cr:co?Ds-Ws-cr:Jn+cr-1,zt=(nn,Jn,Ds,Ws,cr,co,Uo)=>nn<=co?0:Math.max(0,Uo?nnJn?Ds:nn-2*co),ai=(nn,Jn,Ds,Ws,cr,co=!1)=>{let Uo=Jn+Ws+2*cr;return nn>=cr&&(Uo+=cr+1),this.getLast(Uo,co)},oi=Ie(ne.scrollTop,ue.top),Pi=Ie(ne.scrollLeft,ue.left);let qi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,Cn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,Jn=this.lastScrollPos.left<=Pi;if(!this._appendOnly||this._appendOnly&&(nn||Jn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Pi,this._itemSize[1])},Ws={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],Jn)};qi={rows:zt(Ds.rows,Ws.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,Ws.cols,this.first.cols,0,0,this.d_numToleratedItems[1],Jn)},Yi={rows:ai(Ds.rows,qi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,qi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=qi.rows!==this.first.rows||Yi.rows!==this.last.rows||qi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,Cn={top:oi,left:Pi}}}else{const nn=this.horizontal?Pi:oi,Jn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&Jn){const Ds=nt(nn,this._itemSize);qi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,Jn),this.first,0,0,this.d_numToleratedItems,Jn),Yi=ai(Ds,qi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=qi!==this.first||Yi!==this.last||this.isRangeChanged,Cn=nn}}return{first:qi,last:Yi,isRangeChanged:tn,scrollPos:Cn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(bn,5),e.GBs(Ko,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:nl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ma,8,16,"ng-container",6)(1,er,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Jr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),Gr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Jr.N,Pe.Gg]})}return xe})(),cl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Er=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),sr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Ar=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),Zo=xe=>({$implicit:xe});function ba(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Ao=["container"],Fa=["filter"],Ba=["focusInput"],va=["editableInput"],Xs=["items"],to=["scroller"],Hr=["overlay"],io=["firstHiddenFocusableEl"],ec=["lastHiddenFocusableEl"],Ys=xe=>({options:xe}),Mn=(xe,tt)=>({$implicit:xe,options:tt}),Io=()=>({});function ya(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,Zo,u.selectedOption))}}function bo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function hl(xe,tt){if(1&xe&&e.DNE(0,bo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Oo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,ya,2,1,"ng-container",23)(3,qo,1,4,"ng-container",24)(4,hl,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Zi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Qo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function vn(xe,tt){}function no(xe,tt){1&xe&&e.DNE(0,vn,0,0,"ng-template")}function Ir(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,no,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Ks(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){1&xe&&e.eu8(0)}function rr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Or,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u.filterOptions))}}function Pr(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Bn(xe,tt){}function fr(xe,tt){1&xe&&e.DNE(0,Bn,0,0,"ng-template")}function Jo(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,fr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function tc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Pr,1,1,"SearchIcon",33)(4,Jo,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,rr,2,4,"ng-container",23)(2,tc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Xh(xe,tt){1&xe&&e.eu8(0)}function Yh(xe,tt){if(1&xe&&e.DNE(0,Xh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Mn,u,ne))}}function Ac(xe,tt){1&xe&&e.eu8(0)}function so(xe,tt){if(1&xe&&e.DNE(0,Ac,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u))}}function Kh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,so,1,4,"ng-template",49),e.bVm())}function Fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Yh,1,5,"ng-template",21)(3,Kh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Mn,ne.visibleOptions(),e.lJ4(2,Io)))}}function Ic(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ic,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,Zo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function vo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function Zs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function dl(xe,tt){1&xe&&e.eu8(0,null,12)}function ul(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,Zs,2,1,"ng-container",23)(2,dl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function pl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Oc(xe,tt){1&xe&&e.eu8(0,null,13)}function ic(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,pl,2,1,"ng-container",23)(2,Oc,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,vo,2,2,"ng-template",51)(3,ul,3,6,"li",52)(4,ic,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Bl(xe,tt){1&xe&&e.eu8(0)}function fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Ks,1,0,"ng-container",31)(4,Nl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Fl,4,10,"p-scroller",41)(7,Lr,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Bl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Pc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Lc),multi:!0};let nc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,ba,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Ar,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,Zo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Lc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Ao,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(va,5),e.GBs(Xs,5),e.GBs(to,5),e.GBs(Hr,5),e.GBs(io,5),e.GBs(ec,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Pc])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Oo,6,20,"span",15)(3,Zi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Ir,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,fl,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,cl,ll,rs,A.A,$,sr,nc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Po=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Er,ve.Z,Gr,un,A.A,$,sr,La,Pe.Gg,Gr]})}return xe})(),Rc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),jl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),tr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Nc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Lo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),xa=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Ns=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ea=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),gl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),yo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),xo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var _a=He(22242);const Ca=["input"],Vl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Fc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),ml=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ta(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Ur(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ta,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function ia(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Ur,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function na(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,na,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Oi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Oi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function es(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function as(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ss(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,as,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function Bs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,es,1,2,"span",13)(2,ss,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Rr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Gn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function pi(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,pi,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Gn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Rr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>or),multi:!0};let or=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Pi,currencyCharIndex:qi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=qi>=nt?qi-1:Pi>=nt?Pi:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,Cn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,Cn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ca,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,ia,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,Bs,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,Vl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,_a.S,Z._f,A.A,xo,yo],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),wa=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,_a.u,Z.tm,A.A,xo,yo,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),gr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Ro=xe=>({"p-disabled":xe}),sc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Ta(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function zl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function Co(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rc(xe,tt){}function Sa(xe,tt){1&xe&&e.DNE(0,rc,0,0,"ng-template")}function No(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Sa,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function bl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,Co,1,1,"AngleDoubleLeftIcon",6)(2,No,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sn(xe,tt){}function oc(xe,tt){1&xe&&e.DNE(0,sn,0,0,"ng-template")}function vl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,oc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Fo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function ac(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Fo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function yl(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function js(xe,tt){1&xe&&e.eu8(0)}function lc(xe,tt){if(1&xe&&e.DNE(0,js,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function mr(xe,tt){1&xe&&e.DNE(0,lc,1,1,"ng-template",28)}function Vs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,yl,1,1,"ng-template",26)(2,mr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Gl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sa(xe,tt){}function xl(xe,tt){1&xe&&e.DNE(0,sa,0,0,"ng-template")}function Wr(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,xl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Bc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function vh(xe,tt){}function Zh(xe,tt){1&xe&&e.DNE(0,vh,0,0,"ng-template")}function Qn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Zh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function _l(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Bc,1,1,"AngleDoubleRightIcon",6)(2,Qn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Qh(xe,tt){1&xe&&e.eu8(0)}function jf(xe,tt){if(1&xe&&e.DNE(0,Qh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,sc,u))}}function Ju(xe,tt){1&xe&&(e.qex(0),e.DNE(1,jf,1,4,"ng-template",32),e.bVm())}function ep(xe,tt){1&xe&&e.eu8(0)}function Ld(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Jh(xe,tt){1&xe&&e.DNE(0,Ld,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Ju,2,0,"ng-container",27)(2,Jh,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Ta,2,5,"div",2)(2,zl,2,1,"span",3)(3,bl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,vl,2,1,"span",7),e.k0s(),e.DNE(7,ac,2,1,"span",8)(8,Vs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,Gl,1,1,"AngleRightIcon",6)(11,Wr,2,1,"span",7),e.k0s(),e.DNE(12,_l,3,7,"button",11)(13,qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Lc,Pe.Ei,or,V.BC,V.vS,ve.n,ms,gr,_o,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Po,wa,V.YN,Pe.Gg,ve.Z,ms,gr,_o,en,Po,wa,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],ei=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Xt=(xe,tt)=>({$implicit:xe,index:tt});function Li(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function pn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Li,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function Dn(xe,tt){1&xe&&e.eu8(0)}function qs(xe,tt){if(1&xe&&e.DNE(0,Dn,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Xt,ne,ue))}}function Hl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,pn,4,3,"ng-container",5)(2,qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,ei,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Cl={provide:V.kq,useExisting:(0,e.Rfq)(()=>wl),multi:!0};let wl=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Cl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Hl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),cc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const Wa=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),tp=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),ed=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function ip(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function np(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Rd(xe,tt){}function sp(xe,tt){1&xe&&e.DNE(0,Rd,0,0,"ng-template")}function Bo(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,sp,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function yh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,np,1,2,"CheckIcon",9)(2,Bo,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function rp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ip,1,2,"span",7)(2,yh,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function op(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Vf(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function zf(xe,tt){}function Ts(xe,tt){1&xe&&e.DNE(0,zf,0,0,"ng-template")}function Nd(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Ts,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function jc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Vf,1,2,"TimesIcon",9)(2,Nd,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function $r(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,op,1,2,"span",7)(2,jc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Gf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,ed,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const xh={provide:V.kq,useExisting:(0,e.Rfq)(()=>Vc),multi:!0};let Vc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([xh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,rp,3,2,"ng-container",5)(6,$r,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Gf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,Wa,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,tp,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,tr,A.A],encapsulation:2,changeDetection:0})}return xe})(),jo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,tr,A.A,Pe.Gg]})}return xe})();var zc=He(21413);const td=["container"],Hf=["resizeHelper"],$a=["reorderIndicatorUp"],ap=["reorderIndicatorDown"],lp=["wrapper"],cp=["table"],Gc=["thead"],_h=["tfoot"],Ch=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Xa=xe=>({height:xe}),on=(xe,tt)=>({$implicit:xe,options:tt}),wh=xe=>({columns:xe}),Uf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function id(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function Wf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function hc(xe,tt){}function Ya(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ya,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function hp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Wf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function dp(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,id,1,2,"i",22)(2,hp,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function up(xe,tt){1&xe&&e.eu8(0)}function pp(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,up,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function xn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function Ka(xe,tt){1&xe&&e.DNE(0,xn,1,1,"ng-template",30)}function Hc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,Hc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function ra(xe,tt){1&xe&&e.eu8(0)}function oa(xe,tt){if(1&xe&&e.DNE(0,ra,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,oa,1,1,"ng-template",32)}function jd(xe,tt){1&xe&&e.eu8(0)}function fp(xe,tt){if(1&xe&&e.DNE(0,jd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function fm(xe,tt){1&xe&&e.DNE(0,fp,1,1,"ng-template",33)}function gp(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,gp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Sl(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function dc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,Ka,1,0,null,16)(2,Uc,1,0,null,16)(3,Bd,1,0,null,16)(4,fm,1,0,null,16)(5,Sl,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function ka(xe,tt){1&xe&&e.eu8(0)}function kl(xe,tt){if(1&xe&&e.DNE(0,ka,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,on,u,ne))}}function $f(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,kl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Xa,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function mp(xe,tt){1&xe&&e.eu8(0)}function bp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,mp,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,on,u.processedData,e.eq3(2,wh,u.columns)))}}function Th(xe,tt){1&xe&&e.eu8(0)}function Sh(xe,tt){1&xe&&e.eu8(0)}function kh(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function nd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Wc(xe,tt){1&xe&&e.eu8(0)}function Xf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Wc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Mh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,Th,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,Sh,1,0,"ng-container",37),e.k0s(),e.DNE(6,kh,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,nd,1,2,"tbody",42)(9,Xf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Uf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Vd(xe,tt){1&xe&&e.eu8(0)}function vp(xe,tt){if(1&xe&&e.DNE(0,Vd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function sd(xe,tt){1&xe&&e.DNE(0,vp,1,1,"ng-template",30)}function zd(xe,tt){1&xe&&e.eu8(0)}function Gd(xe,tt){if(1&xe&&e.DNE(0,zd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function rd(xe,tt){1&xe&&e.DNE(0,Gd,1,1,"ng-template",31)}function Yf(xe,tt){1&xe&&e.eu8(0)}function Xr(xe,tt){if(1&xe&&e.DNE(0,Yf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function uc(xe,tt){1&xe&&e.DNE(0,Xr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function yp(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Kf(xe,tt){1&xe&&e.DNE(0,yp,1,1,"ng-template",33)}function xp(xe,tt){1&xe&&e.eu8(0)}function Hd(xe,tt){if(1&xe&&e.DNE(0,xp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Ud(xe,tt){1&xe&&e.DNE(0,Hd,1,1,"ng-template",34)}function $c(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,sd,1,0,null,16)(2,rd,1,0,null,16)(3,uc,1,0,null,16)(4,Kf,1,0,null,16)(5,Ud,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Xc(xe,tt){1&xe&&e.eu8(0)}function Vo(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Xc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Dh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Yc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function od(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Eh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Yc,1,0,"ArrowDownIcon",16)(3,od,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function Wd(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function Ml(xe,tt){}function _p(xe,tt){1&xe&&e.DNE(0,Ml,0,0,"ng-template")}function pc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,Wd,1,0,"ArrowUpIcon",16)(3,_p,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const Kc=["pTableBody",""],Ah=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),ad=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Zc=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),$d=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Ih=(xe,tt)=>({$implicit:xe,frozen:tt});function Zf(xe,tt){1&xe&&e.eu8(0)}function qf(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Zf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function qc(xe,tt){1&xe&&e.eu8(0)}function br(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Xd(xe,tt){1&xe&&e.eu8(0)}function fc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,ad,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function Wl(xe,tt){1&xe&&e.eu8(0)}function Cr(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Qf(xe,tt){if(1&xe&&e.DNE(0,qf,2,8,"ng-container",2)(1,br,2,8,"ng-container",0)(2,fc,2,10,"ng-container",0)(3,Cr,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qf,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Dl(xe,tt){1&xe&&e.eu8(0)}function Oh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Dl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Ma,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Jc(xe,tt){1&xe&&e.eu8(0)}function Kd(xe,tt){1&xe&&e.eu8(0)}function gc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jc,1,0,"ng-container",4)(2,gc,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Ph(xe,tt){if(1&xe&&e.DNE(0,Oh,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zd,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ph,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Qd(xe,tt){1&xe&&e.eu8(0)}function eh(xe,tt){1&xe&&e.eu8(0)}function Lh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,eh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function $l(xe,tt){if(1&xe&&e.DNE(0,Qd,1,0,"ng-container",4)(1,Lh,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Zc,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function mc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$l,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function El(xe,tt){1&xe&&e.eu8(0)}function wo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,El,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function bc(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function Cp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Xl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function ar(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Cp,1,1,"SortAltIcon",3)(2,Xl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function wp(xe,tt){}function Jd(xe,tt){1&xe&&e.DNE(0,wp,0,0,"ng-template")}function ld(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,Jd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function eu(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function cd(xe,tt){1&xe&&e.eu8(0)}function th(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function Jf(xe,tt){1&xe&&e.eu8(0)}function tu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jf,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new zc.B;selectionSource=new zc.B;contextMenuSource=new zc.B;valueSource=new zc.B;totalRecordsSource=new zc.B;columnsSource=new zc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Pi,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=qi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Pi?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Pi=this.findIndexInSelection(nt);this._selection=this.selection.filter((qi,Yi)=>Yi!=Pi),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):Ieqi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Pi=>{let qi=le.BF.resolveFieldData(oi,Pi.field);return qi=null!=qi?this.exportFunction?this.exportFunction({data:qi,field:Pi.field}):String(qi).replace(/"/g,'""'):"",'"'+qi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(td,5),e.GBs(Hf,5),e.GBs($a,5),e.GBs(ap,5),e.GBs(lp,5),e.GBs(cp,5),e.GBs(Gc,5),e.GBs(_h,5),e.GBs(Ch,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,dp,3,2,"div",11)(3,pp,2,1,"div",12)(4,dc,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,$f,3,17,"p-scroller",15)(8,bp,2,7,"ng-container",16)(9,Mh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,$c,6,24,"p-paginator",13)(12,Vo,2,1,"div",17)(13,Dh,2,0,"div",18)(14,Eh,4,2,"span",19)(15,pc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,ll,Rc,jl,Jr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kc,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,2,"ng-container",0)(1,qd,2,2,"ng-container",0)(2,mc,2,2,"ng-container",0)(3,wo,2,5,"ng-container",0)(4,Da,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Wt=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),Qt=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,ar,4,3,"ng-container",0)(1,ld,2,4,"span",1)(2,eu,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Ns,ea,Fs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),fn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Rn=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),Zn=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(fn,8),e.rXU(Rn,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,th,2,1,"ng-container",0)(1,tu,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),Tr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,_a.u,Po,V.YN,Z.tm,cc,Hi,wa,jo,Gr,Rc,jl,Jr.N,Ns,ea,Fs,tr,Nc,Lo,xa,gl,Pe.Gg,Gr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file From 907e0319821e94b4741762388b012f117c644908 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 15:18:04 +0200 Subject: [PATCH 168/301] handle command only if ControllerLink is up --- plugin.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugin.py b/plugin.py index d28a7628c..17b33a7ba 100644 --- a/plugin.py +++ b/plugin.py @@ -462,7 +462,7 @@ def onStart(self): # https://github.com/python/cpython/issues/91375 self.log.logging("Plugin", "Status", "Multi instances plugin detected. Enable zigpy workaround") sys.modules["_asyncio"] = None - + if "LogLevel" not in self.pluginParameters: log_level = self.domoticzdb_Hardware.get_loglevel_value() if log_level: @@ -584,7 +584,6 @@ def onStart(self): self.busy = False - def onStop(self): # sourcery skip: class-extract-method Domoticz.Log("onStop()") uninstall_Z4D_to_domoticz_custom_ui() @@ -680,6 +679,7 @@ def onDeviceRemoved(self, Unit): self.log.logging("Plugin", "Status", f"Request device {DeviceID} to be remove from Group(s)") self.groupmgt.FullRemoveOfGroup(Unit, DeviceID) + def onConnect(self, Connection, Status, Description): self.log.logging("Plugin", "Debug", "onConnect called with status: %s" % Status) @@ -726,6 +726,7 @@ def onConnect(self, Connection, Status, Description): return True + def onMessage(self, Connection, Data): # self.log.logging( 'Plugin', 'Debug', "onMessage called on Connection " + " Data = '" +str(Data) + "'") if self.webserver and isinstance(Data, dict): @@ -739,6 +740,7 @@ def onMessage(self, Connection, Data): self.connectionState = 1 self.ControllerLink.on_message(Data) + def processFrame(self, Data): if not self.VersionNewFashion: return @@ -748,9 +750,11 @@ def processFrame(self, Data): # stop_time = int(time.time() *1000) # Domoticz.Log("### Completion: %s is %s ms" %(Data, ( stop_time - start_time))) + def zigpy_chk_upd_device(self, ieee, nwkid ): chk_and_update_IEEE_NWKID(self, nwkid, ieee) - + + def zigpy_get_device(self, ieee=None, nwkid=None): # allow to inter-connect zigpy world and plugin self.log.logging("TransportZigpy", "Debug", "zigpy_get_device( %s, %s)" %( ieee, nwkid)) @@ -779,14 +783,14 @@ def zigpy_get_device(self, ieee=None, nwkid=None): self.log.logging("TransportZigpy", "Debug", "zigpy_get_device( %s, %s returns %04x %016x" %( sieee, snwkid, int(nwkid,16), int(ieee,16) )) return int(nwkid,16) ,int(ieee,16) + def zigpy_backup_available(self, backups): handle_zigpy_backup(self, backups) #def onCommand(self, DeviceID, Unit, Command, Level, Color): def onCommand(self, Unit, Command, Level, Color): - - if ( not self.VersionNewFashion or self.pluginconf is None or not self.log ): - # Not yet ready, plugin not fully started, we drop the command + if ( self.ControllerLink is None or not self.VersionNewFashion or self.pluginconf is None or not self.log ): + self.log.logging( "Command", "Log", "onCommand - Not yet ready, plugin not fully started, we drop the command") return self.log.logging( "Command", "Debug", "onCommand - unit: %s, command: %s, level: %s, color: %s" % (Unit, Command, Level, Color) ) From c7e14d83a69a727b24a1f69c2d918c19a0cd7cb5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 15:20:10 +0200 Subject: [PATCH 169/301] check nValue, and if None then error and do not process --- Modules/domoticzAbstractLayer.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index d02987116..86e93d21b 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -398,6 +398,11 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel self.log.logging("AbstractDz", "Debug", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) + if nValue is None: + self.log.logging("AbstractDz", "Error", "domo_update_api: DeviceID_ : %s Unit_: %s nValue: %s sValue: %s SignalLevel: %s BatteryLevel: %s TimedOut: %s Color: %s : %s" %( + DeviceID_, Unit_, nValue, sValue, SignalLevel, BatteryLevel, TimedOut, Color, Options), DeviceID_) + return + if DOMOTICZ_EXTENDED_API: Devices[DeviceID_].Units[Unit_].nValue = nValue Devices[DeviceID_].Units[Unit_].sValue = sValue From 1fc2c28f0f9066185e618f382cdaef710d9aea00 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 15:21:51 +0200 Subject: [PATCH 170/301] fix update_domoticz_widget when not a blind, not a dimmer --- Modules/command.py | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/Modules/command.py b/Modules/command.py index 7b6a6daa0..265ccf8c2 100644 --- a/Modules/command.py +++ b/Modules/command.py @@ -262,9 +262,7 @@ def handle_command_stop(self,Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, if _model_name in ("PR412", "CPR412", "CPR412-E"): profalux_stop(self, Nwkid) else: - # https://github.com/fairecasoimeme/ZiGate/issues/125#issuecomment-456085847 actuator_stop( self, Nwkid, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "02") if DeviceType in ( "CurtainInverted", "Curtain"): # Refresh will be done via the Report Attribute @@ -273,7 +271,6 @@ def handle_command_stop(self,Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, update_domoticz_widget(self, Devices, DeviceID, Unit, 17, "0", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) else: actuator_stop( self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0083", "02" + Nwkid + ZIGATE_EP + EPout + "02") # Let's force a refresh of Attribute in the next Heartbeat request_read_device_status(self, Nwkid) @@ -317,7 +314,6 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device else: self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - OnOff Mode") actuator_off(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "00") update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return @@ -466,15 +462,12 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device elif DeviceType == "WindowCovering": actuator_off(self, Nwkid, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "01") # Blind inverted (On, for Close) elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): actuator_on(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") else: actuator_on(self, Nwkid, EPout, "WindowCovering") - #sendZigateCmd( self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "01") # Venetian Inverted/Blind (On, for Close) if DeviceType in ( "CurtainInverted", "Curtain"): # Refresh will be done via the Report Attribute @@ -484,7 +477,6 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device elif DeviceType in ( "Venetian", "Vanne", "Curtain"): if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "PR412", "CPR412", "CPR412-E"): actuator_off(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "00") elif ( DeviceType in ("Vanne", "Curtain",) or "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "TS130F",) @@ -497,7 +489,6 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device else: actuator_on(self, Nwkid, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "00") # Venetian /Blind (Off, for Close) elif DeviceType == "AlarmWD": self.iaszonemgt.alarm_off(Nwkid, EPout) @@ -524,7 +515,6 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device # Remaining Slider widget if profalux: # Profalux are define as LvlControl but should be managed as Blind Inverted actuator_setlevel(self, Nwkid, EPout, 0, "Light", "0000", withOnOff=False) - #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + "01" + "%02X" % 0 + "0000") else: if ( "Param" in self.ListOfDevices[Nwkid] @@ -542,16 +532,13 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device self.log.logging("Command", "Debug", "mgtCommand : %s fading Off effect: %s" % (Nwkid, effect)) # Increase brightness by 20% (if possible) in 0.5 seconds then fade to off in 1 second (default) actuator_off(self, Nwkid, EPout, "Light", effect) - #sendZigateCmd(self, "0094", "02" + Nwkid + ZIGATE_EP + EPout + effect) else: actuator_off(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "00") # Making a trick for the GLEDOPTO LED STRIP. if _model_name == "GLEDOPTO" and EPout == "0a": # When switching off the WW channel, make sure to switch Off the RGB channel actuator_off(self, Nwkid, "0b", "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + "0b" + "00") # Update Devices if is_dimmable_blind(self, Devices, DeviceID, Unit): @@ -619,7 +606,6 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT else: self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - OnOff Mode") actuator_on(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") if _model_name in ("TS0601-Energy",): tuya_energy_onoff(self, Nwkid, "01") @@ -663,9 +649,7 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT profalux_MoveToLiftAndTilt(self, Nwkid, level=255) elif DeviceType == "WindowCovering": - # https://github.com/fairecasoimeme/ZiGate/issues/125#issuecomment-456085847 actuator_on(self, Nwkid, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "00") # Blind inverted (Off, for Open) elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): @@ -680,14 +664,12 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT elif DeviceType in ("Venetian", "Vanne", "Curtain"): if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): actuator_on(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") elif DeviceType in ( "Vanne", "Curtain",) or "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "TS130F",): actuator_on(self, Nwkid, EPout, "WindowCovering") else: actuator_off(self, Nwkid, EPout, "WindowCovering") - #sendZigateCmd(self, "00FA", "02" + Nwkid + ZIGATE_EP + EPout + "01") # Venetian/Blind (On, for Open) if DeviceType in ( "CurtainInverted", "Curtain"): # Refresh will be done via the Report Attribute @@ -714,10 +696,8 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT # Remaining Slider widget if profalux: actuator_setlevel(self, Nwkid, EPout, 255, "Light", "0000", withOnOff=False) - #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + "01" + "%02X" % 255 + "0000") else: actuator_on(self, Nwkid, EPout, "Light") - #sendZigateCmd(self, "0092", "02" + Nwkid + ZIGATE_EP + EPout + "01") if is_dimmable_blind(self, Devices, DeviceID, Unit): update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "100", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) @@ -1295,7 +1275,6 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D else: if profalux: actuator_setlevel(self, Nwkid, EPout, Level, "Light", "0000", withOnOff=False) - #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + OnOff + value + "0000") else: if Level > 1 and get_deviceconf_parameter_value(self, _model_name, "ForceSwitchOnformoveToLevel", return_default=False): actuator_on(self, Nwkid, EPout, "Light") @@ -1303,10 +1282,9 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D if "Param" in self.ListOfDevices[Nwkid] and "moveToLevel" in self.ListOfDevices[Nwkid]["Param"]: transitionMoveLevel = "%04x" % int(self.ListOfDevices[Nwkid]["Param"]["moveToLevel"]) actuator_setlevel(self, Nwkid, EPout, Level, "Light", transitionMoveLevel, withOnOff=True ) - #sendZigateCmd(self, "0081", "02" + Nwkid + ZIGATE_EP + EPout + OnOff + value + transitionMoveLevel) - - if is_dimmable_blind(self, Devices, DeviceID, Unit) and Level in ( 0, 50, 100): + dimmable_blind = is_dimmable_blind(self, Devices, DeviceID, Unit) + if dimmable_blind and Level in ( 0, 50, 100): if Level == 0: update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "0", BatteryLevel, SignalLevel) @@ -1315,9 +1293,11 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D elif Level == 50: update_domoticz_widget(self, Devices, DeviceID, Unit, 17, "0", BatteryLevel, SignalLevel) - + else: - partially_opened_nValue = is_dimmable_blind(self, Devices, DeviceID, Unit) or is_dimmable_light(self, Devices, DeviceID, Unit) or is_dimmable_switch(self, Devices, DeviceID, Unit) + partially_opened_nValue = dimmable_blind or is_dimmable_light(self, Devices, DeviceID, Unit) or is_dimmable_switch(self, Devices, DeviceID, Unit) + if partially_opened_nValue is None: + partially_opened_nValue = 1 update_domoticz_widget(self, Devices, DeviceID, Unit, partially_opened_nValue, str(Level), BatteryLevel, SignalLevel) # Let's force a refresh of Attribute in the next Heartbeat From ae21c63e1412a068caab3de52feb31ab33ac6ba0 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 15:26:11 +0200 Subject: [PATCH 171/301] Plugin wip-develop version 7.2.051 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 2439ca1f2..4fa27654c 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.050"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.051"} \ No newline at end of file From 59a9c615de945ac870fa5f8f5b2c0526928c73ab Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 16:50:07 +0200 Subject: [PATCH 172/301] revert zigpy version to 0.63.4, to prevent https://github.com/zigpy/zigpy/discussions/1375, https://github.com/crate-py/rpds/issues/63 --- Modules/pluginHelpers.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 086b96872..ac62b8a50 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -22,7 +22,7 @@ from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { - "zigpy": "0.63.5", + "zigpy": "0.63.4", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", "bellows": "0.38.1", diff --git a/requirements.txt b/requirements.txt index 54caf410d..ab22ca9c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -zigpy==0.63.5 +zigpy==0.63.4 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 From 6e40d56e270b49f3f92896205a35faf429dbb862 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 16:50:17 +0200 Subject: [PATCH 173/301] Plugin wip-develop version 7.2.052 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4fa27654c..13182e54f 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.051"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.052"} \ No newline at end of file From 742a9ffe822aa54a4d187579f1ca8c6fe88d02d9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 17:48:23 +0200 Subject: [PATCH 174/301] remove extra log --- plugin.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugin.py b/plugin.py index 17b33a7ba..55b95172e 100644 --- a/plugin.py +++ b/plugin.py @@ -798,8 +798,6 @@ def onCommand(self, Unit, Command, Level, Color): if not is_domoticz_extended(): DeviceID = find_legacy_DeviceID_from_unit(self, Devices, Unit) - self.log.logging( "Command", "Log", f"Command: {DeviceID} {Unit}" ) - # Let's check if this is End Node, or Group related. if DeviceID in self.IEEE2NWK: # Command belongs to a end node From 13eff9db408549afc685e733915efc5e8f4dd6b6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 17:48:58 +0200 Subject: [PATCH 175/301] Plugin wip-develop version 7.2.053 --- .hidden/VERSION | 2 +- Modules/casaia.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 13182e54f..c89a64cf1 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.052"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.053"} \ No newline at end of file diff --git a/Modules/casaia.py b/Modules/casaia.py index b218552b0..11e52222a 100644 --- a/Modules/casaia.py +++ b/Modules/casaia.py @@ -821,7 +821,7 @@ def get_ffac_endpoint(self, NwkId): def store_casaia_attribute(self, NwkId, Attribute, Value, device_id=None): - self.log.logging("CasaIA", "Log", "store_casaia_attribute %s %s %s %s" % (NwkId, Attribute, Value, device_id)) + self.log.logging("CasaIA", "Debug", "store_casaia_attribute %s %s %s %s" % (NwkId, Attribute, Value, device_id)) if "CASA.IA" not in self.ListOfDevices[NwkId]: self.ListOfDevices[NwkId]["CASA.IA"] = {} if device_id: From 10a39aba09b3f86dc6afd986060aa7d1c1d2909a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 19:10:20 +0200 Subject: [PATCH 176/301] as described in https://github.com/zigpy/zigpy/discussions/1375 force jsonschema to 4.17.3 to prevent the PyO3 error --- Modules/pluginHelpers.py | 2 +- requirements.txt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index ac62b8a50..086b96872 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -22,7 +22,7 @@ from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { - "zigpy": "0.63.4", + "zigpy": "0.63.5", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", "bellows": "0.38.1", diff --git a/requirements.txt b/requirements.txt index ab22ca9c5..2e1401234 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -zigpy==0.63.4 +zigpy==0.63.5 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 @@ -9,3 +9,4 @@ z4d-certified-devices charset-normalizer==2.0.11 distro pyserial-asyncio-fast +jsonschema==4.17.3 From f0d4a4a1d2a83bc2e67d2b613aea09550138e047 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 19:10:31 +0200 Subject: [PATCH 177/301] Plugin wip-develop version 7.2.054 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index c89a64cf1..4fd03f369 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.053"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.054"} \ No newline at end of file From 91cb6f0d23e92740042cfaf5d12d9dfa026e73a5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 21:47:14 +0200 Subject: [PATCH 178/301] define list of Python modules constraints --- constraints.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 constraints.txt diff --git a/constraints.txt b/constraints.txt new file mode 100644 index 000000000..767ce9167 --- /dev/null +++ b/constraints.txt @@ -0,0 +1,9 @@ +charset-normalizer==2.0.11 +zigpy==0.63.5 +zigpy_znp==0.12.1 +zigpy_deconz==0.23.1 +bellows==0.38.1 +dnspython==2.3.0 +pyserial>=3.5 +charset-normalizer==2.0.11 +jsonschema==4.17.3 From eff588d91caba15bd1ab55886f5c6aeccf7b9c00 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 21:47:53 +0200 Subject: [PATCH 179/301] in case we find -c constraints.txt string, do no process it --- Modules/pluginHelpers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 086b96872..90b1cae34 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -138,8 +138,11 @@ def check_requirements(home_folder): for req_str in requirements_list: req_str = req_str.strip() - package = re.split(r'[<>!=]+', req_str)[0].strip() + if req_str == '-c constraints.txt': + continue + package = re.split(r'[<>!=]+', req_str)[0].strip() + version = None try: installed_version = importlib.metadata.version(package) From 3f1d4269a7da28cc64f2df0d5a27282734df060c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 5 Apr 2024 10:37:22 +0200 Subject: [PATCH 180/301] rely on constraints file for the specific versions --- requirements.txt | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/requirements.txt b/requirements.txt index 2e1401234..7b1754500 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,10 @@ -zigpy==0.63.5 -zigpy_znp==0.12.1 -zigpy_deconz==0.23.1 -bellows==0.38.1 -zigpy-cli==1.0.4 -dnspython==2.3.0 -pyserial>=3.5 +-c constraints.txt +zigpy +zigpy-cli +dnspython z4d-certified-devices -charset-normalizer==2.0.11 distro pyserial-asyncio-fast -jsonschema==4.17.3 +zigpy_znp +zigpy_deconz +bellows From b950acc47f5998002d2b8f23b36dcf85ae9ee453 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 5 Apr 2024 10:38:02 +0200 Subject: [PATCH 181/301] resilience. Check that attribut result is present before browsing it --- Classes/DomoticzDB.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Classes/DomoticzDB.py b/Classes/DomoticzDB.py index acc769ea0..3591523dc 100644 --- a/Classes/DomoticzDB.py +++ b/Classes/DomoticzDB.py @@ -329,7 +329,9 @@ def extract_AddValue(self, ID, attribute): result = self.get_device_status( ID) if result is None: return 0 - + + if 'result' not in result: + return 0 AdjValue = 0 for x in result['result']: AdjValue = x[attribute] From e0dd065b3376fb2a7af4584a6f2b0ba823997bb6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 5 Apr 2024 10:40:30 +0200 Subject: [PATCH 182/301] Plugin wip-develop version 7.2.055 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4fd03f369..233bb16e3 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.054"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.055"} \ No newline at end of file From b33d32670fb68fd3404c75402dff18e8a0fd67bf Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 15:46:40 +0200 Subject: [PATCH 183/301] Address #1680 , and refactor few functions --- Modules/domoMaj.py | 68 +++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index f858e4402..22decffa6 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -1189,7 +1189,7 @@ def _domo_convert_windows_covering( self, value, Devices, DeviceId, Unit, NwkId, def _domo_convert_colorcontrol( self, value ): - return getDimmerLevelOfColor(self, value) + return get_dimmer_level_of_color(self, value) def _domo_convert_strenght( value ): @@ -1233,7 +1233,7 @@ def _domo_convert_level_control( self, Devices, DeviceId, Unit, value, NwkId, sw elif WidgetType in ( "ColorControlRGB", "ColorControlWW", "ColorControlRGBWW", "ColorControlFull", "ColorControl", ): if prev_nValue != 0 or prev_sValue != "Off": - nValue, sValue = getDimmerLevelOfColor(self, value) + nValue, sValue = get_dimmer_level_of_color(self, value) return nValue, str(sValue), False elif WidgetType == "LegrandSelector": @@ -1459,17 +1459,14 @@ def CheckUpdateGroup(self, NwkId, Ep, ClusterId): self.groupmgt.checkAndTriggerIfMajGroupNeeded(NwkId, Ep, ClusterId) -def getDimmerLevelOfColor(self, value): - nValue = 1 - analogValue = value if isinstance(value, int) else int(value, 16) +def get_dimmer_level_of_color(self, value): + n_value = 15 # https://github.com/zigbeefordomoticz/Domoticz-Zigbee/issues/1680 + analog_value = value if isinstance(value, int) else int(value, 16) - if analogValue >= 255: - sValue = 100 - else: - sValue = min(round((analogValue / 255) * 100), 100) - sValue = max(sValue, 1) if sValue > 0 else 0 + s_value = 100 if analog_value >= 255 else min(round((analog_value / 255) * 100), 100) + s_value = max(s_value, 1) if s_value > 0 else 0 - return nValue, sValue + return n_value, s_value def check_erratic_value(self, NwkId, value_type, value, expected_min, expected_max): @@ -1592,26 +1589,24 @@ def retrieve_data_from_current(self, Devices, DeviceID, Unit, current_nValue, cu def normalized_lvl_value( switchType, value ): - + # Normalize sValue vs. analog value coomming from a ReadAttribute - analogValue = value if isinstance( value, int) else int(value, 16) + analog_value = value if isinstance( value, int) else int(value, 16) - if analogValue >= 255: - normalized_value = 255 + # Ensure analog value is within valid range + analog_value = min(max(analog_value, 0), 255) - normalized_value = round(((analogValue * 100) / 255)) - normalized_value = min(normalized_value, 100) - if normalized_value == 0 and analogValue > 0: - normalized_value = 1 + # Normalize analog value to percentage (0-100) + normalized_value = round((analog_value / 255) * 100) # Looks like in the case of the Profalux shutter, we never get 0 or 100 if switchType in (13, 14, 15, 16): - if normalized_value == 1 and analogValue == 1: + if normalized_value == 1 and analog_value == 1: normalized_value = 0 - if normalized_value == 99 and analogValue == 254: + if normalized_value == 99 and analog_value == 254: normalized_value = 100 - return normalized_value + return max(normalized_value, 1) # Ensure normalized value is at least 1 def is_PowerNegative_widget( ClusterTypeList): @@ -1660,19 +1655,24 @@ def temp_adjustement_value(self, Devices, NwkId, DeviceId, Device_Unit): def _retreive_instant_power(self, NwkId, Ep): """ retreive Instant Power in 0x0702/0x0400 or 0x0b04/0x050b""" - - if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0400" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: - return round(float(self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0400"]), 2) - - if "0b04" in self.ListOfDevices[NwkId]["Ep"][Ep] and "050b" in self.ListOfDevices[NwkId]["Ep"][Ep]["0b04"]: - return round(float(self.ListOfDevices[NwkId]["Ep"][Ep]["050b"]["0b04"]), 2) - - return 0 + + ep_data = self.ListOfDevices.get(NwkId, {}).get("Ep", {}).get(Ep, {}) + if "0702" in ep_data and "0400" in ep_data["0702"]: + return round(float(ep_data["0702"]["0400"]), 2) + + if "0b04" in ep_data and "050b" in ep_data["0b04"]: + return round(float(ep_data["0b04"]["050b"]), 2) + + return 0 + def _retreive_summation_power(self, NwkId, Ep): - - if "0702" in self.ListOfDevices[NwkId]["Ep"][Ep] and "0000" in self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]: - value_0000 = self.ListOfDevices[NwkId]["Ep"][Ep]["0702"]["0000"] + + ep_data = self.ListOfDevices.get(NwkId, {}).get("Ep", {}).get(Ep, {}) + + if "0702" in ep_data and "0000" in ep_data["0702"]: + value_0000 = ep_data["0702"]["0000"] if value_0000 not in ({}, "", "0"): return int(float(value_0000)) - return None + + return None \ No newline at end of file From d2b6dc097d65f1b055ae41a97819a15b96b03fd3 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sat, 6 Apr 2024 18:40:13 +0200 Subject: [PATCH 184/301] simplify and reduce complexity (wip) (#1722) * simplify and reduce complexity in Domoticz command handling --- Modules/command.py | 983 ++++++++++++++----------------- Modules/domoticzAbstractLayer.py | 2 + plugin.py | 4 +- 3 files changed, 446 insertions(+), 543 deletions(-) diff --git a/Modules/command.py b/Modules/command.py index 265ccf8c2..c3631219a 100644 --- a/Modules/command.py +++ b/Modules/command.py @@ -1,8 +1,16 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + + """ Module: z_command.py @@ -13,14 +21,15 @@ from Modules.actuators import (actuator_off, actuator_on, actuator_setcolor, actuator_setlevel, actuator_stop, actuators) from Modules.adeo import adeo_fip -from Modules.casaia import (casaia_ac201_fan_control, casaia_setpoint, - casaia_swing_OnOff, casaia_system_mode) +from Modules.casaia import (casaia_ac201_fan_control, casaia_swing_OnOff, + casaia_system_mode) from Modules.cmdsDoorLock import cluster0101_lock_door, cluster0101_unlock_door from Modules.danfoss import danfoss_on_off -from Modules.domoticzAbstractLayer import ( - domo_read_Name, domo_read_nValue_sValue, domo_read_SwitchType_SubType_Type, - is_dimmable_blind, is_dimmable_light, is_dimmable_switch, - retreive_widgetid_from_deviceId_unit) +from Modules.domoticzAbstractLayer import (domo_read_Name, + domo_read_nValue_sValue, + is_dimmable_blind, + is_dimmable_light, + is_dimmable_switch) from Modules.domoTools import (RetreiveSignalLvlBattery, RetreiveWidgetTypeList, update_domoticz_widget) from Modules.fanControl import change_fan_mode @@ -35,7 +44,7 @@ schneider_temp_Setcurrent) from Modules.switchSelectorWidgets import SWITCH_SELECTORS from Modules.thermostats import thermostat_Mode, thermostat_Setpoint -from Modules.tools import get_deviceconf_parameter_value, str_round +from Modules.tools import get_deviceconf_parameter_value from Modules.tuya import (tuya_curtain_lvl, tuya_curtain_openclose, tuya_dimmer_dimmer, tuya_dimmer_onoff, tuya_energy_onoff, tuya_garage_door_action, @@ -45,16 +54,15 @@ tuya_siren_humi_alarm, tuya_siren_temp_alarm) from Modules.tuyaTRV import (tuya_coil_fan_thermostat, tuya_fan_speed, tuya_lidl_set_mode, tuya_trv_brt100_set_mode, - tuya_trv_mode, tuya_trv_onoff, - tuya_trv_switch_onoff) + tuya_trv_mode, tuya_trv_onoff) from Modules.tuyaTS0601 import ts0601_actuator, ts0601_extract_data_point_infos from Modules.zigateConsts import (THERMOSTAT_LEVEL_2_MODE, - THERMOSTAT_LEVEL_3_MODE, ZIGATE_EP) + THERMOSTAT_LEVEL_3_MODE) # Matrix between Domoticz Type, Subtype, SwitchType and Plugin DeviceType # Type, Subtype, Switchtype DEVICE_SWITCH_MATRIX = { - ( 242, 1, ): ("ThermoSetpoint", "TempSetCurrent"), + (242, 1, ): ("ThermoSetpoint", "TempSetCurrent"), (241, 2, 7): ("ColorControlRGB",), (241, 4, 7): ("ColorControlRGBWW",), (241, 7, 7): ("ColorControlFull",), @@ -63,6 +71,7 @@ (241, 1, 7): ("ColorControlRGBW",), (244, 62, 18): ("Switch Selector",), (244, 73, 0): ("Switch", "" "LivoloSWL", "LivoloSWR", "SwitchButton", "Water", "Plug"), + (244, 73, 3): ("WindowCovering",), (244, 73, 5): ("Smoke",), (244, 73, 7): ("LvlControl",), (244, 73, 9): ("Button",), @@ -135,131 +144,79 @@ ] - -def mgtCommand(self, Devices, DeviceID, Unit, Nwkid, Command, Level, Color): +def domoticz_command(self, Devices, DeviceID, Unit, Nwkid, Command, Level, Color): + """ Handle Domoticz onCommand""" widget_name = domo_read_Name(self, Devices, DeviceID, Unit) - self.log.logging("Command", "Debug", f"mgtCommand ({Nwkid}) {DeviceID} {Unit} Name: {widget_name} Command: {Command} Level: {Level} Color: {Color}", Nwkid) - deviceSwitchType, deviceSubType, deviceType = domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit) - - # domoticzType = DEVICE_SWITCH_MATRIX.get((deviceType, deviceSubType, deviceSwitchType)) - # if domoticzType is not None: - # self.log.logging("Command", "Debug", f"---------> DeviceType: {domoticzType}", Nwkid) - SignalLevel, BatteryLevel = RetreiveSignalLvlBattery(self, Nwkid) - ClusterTypeList = RetreiveWidgetTypeList(self, Devices, DeviceID, Nwkid, Unit) - if not ClusterTypeList: - self.log.logging("Command", "Error", f"mgtCommand - no ClusterType found ! {self.ListOfDevices[Nwkid]}") - return - - self.log.logging("Command", "Debug", f"--------->1 ClusterType founds: {ClusterTypeList} for Unit: {Unit}", Nwkid) - - if len(ClusterTypeList) != 1: - self.log.logging("Command", "Error", f"mgtCommand - Not Expected. ClusterType: {ClusterTypeList} for Nwkid: {Nwkid}") + + if not ClusterTypeList or len(ClusterTypeList) != 1: + self.log.logging("Command", "Error", f"Unexpected ClusterTypeList: {ClusterTypeList} for Nwkid: {Nwkid}") return - if ClusterTypeList[0][0] == "00": - EPout = "01" - EPout, DeviceTypeWidgetId, DeviceType = ClusterTypeList[0] - self.log.logging("Command", "Debug", f"--------->2 EPOut: {EPout} DeviceType: {DeviceType} WidgetID: {DeviceTypeWidgetId}", Nwkid) - - if Nwkid in self.ListOfDevices and self.ListOfDevices[Nwkid].get("Health") == "Disabled": - self.log.logging("Command", "Error", f"You tried to action a disabled device: {widget_name}/{Nwkid}", Nwkid) + if self.ListOfDevices.get(Nwkid, {}).get("Health") == "Disabled": + self.log.logging("Command", "Error", f"Attempted action on a disabled device: {widget_name}/{Nwkid}") return - forceUpdateDev = False - if DeviceType in SWITCH_SELECTORS and SWITCH_SELECTORS[DeviceType].get("ForceUpdate"): - forceUpdateDev = SWITCH_SELECTORS[DeviceType]["ForceUpdate"] - self.log.logging("Command", "Debug", f"--------->3 forceUpdateDev: {forceUpdateDev}", Nwkid) + forceUpdateDev = SWITCH_SELECTORS.get(DeviceType, {}).get("ForceUpdate", False) if DeviceType not in ACTIONATORS and not self.pluginconf.pluginConf.get("forcePassiveWidget"): self.log.logging("Command", "Log", f"mgtCommand - You are trying to action not allowed for Device: {widget_name} Type: {ClusterTypeList} and DeviceType: {DeviceType} Command: {Command} Level:{Level}", Nwkid) return - self.log.logging("Command", "Debug", "---------> Ready to action", Nwkid) - - profalux = self.ListOfDevices[Nwkid].get("Manufacturer") == "1110" and self.ListOfDevices[Nwkid].get("ZDeviceID") in ("0200", "0202") - self.log.logging("Command", "Debug", f"---------> profalux: {profalux}", Nwkid) - - _model_name = self.ListOfDevices[Nwkid].get("Model", "") - self.log.logging("Command", "Debug", f"---------> Model Name: {_model_name}", Nwkid) - - health_value = self.ListOfDevices[Nwkid].get("Health") + health_value = self.ListOfDevices.get(Nwkid, {}).get("Health") if health_value == "Not Reachable": - self.ListOfDevices[Nwkid]["Health"] = "" - self.log.logging("Command", "Debug", f"---------> Health: {health_value}", Nwkid) + self.ListOfDevices.setdefault(Nwkid, {})["Health"] = "" + if Command == "Stop": - handle_command_stop(self, Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) + handle_command_stop(self, Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev) elif Command in ("Off", "Close"): - handle_command_off(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) + handle_command_off(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev) elif Command in ("On", "Open"): - handle_command_on(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) + handle_command_on(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev) elif Command == "Set Level": - handle_command_setlevel(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) + handle_command_setlevel(self, Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev) elif Command == "Set Color": - handle_command_setcolor(self, Devices, DeviceID, Unit, Level, Color, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev) - - -def get_previous_switch_level(self, Nwkid, Ep): - - if Nwkid not in self.ListOfDevices: - return None - if Ep not in self.ListOfDevices[ Nwkid ][ 'Ep']: - return None - if "0008" not in self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep]: - return None - if "0000" not in self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]: - return None - if self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] in ( '', {} ): - return None - switch_level = self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] - if switch_level is None: - return None - if self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] in ( '', {} ): - return None - if isinstance( self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"], str): - return int( self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"], 16) - if isinstance( self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"], int): - return self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"] - - self.log.logging( "Command", "Error", "get_previous_switch_level : level is bizarre >%s<" % ( - self.ListOfDevices[ Nwkid ][ 'Ep' ][ Ep][ "0008" ]["0000"]), Nwkid, ) - return None + handle_command_setcolor(self, Devices, DeviceID, Unit, Level, Color, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev) def request_read_device_status(self, Nwkid): - # Purpose is to reset the Heartbeat in order to trigger a readattribute - + """ request a read attribute, by setting device heartbeat to -1""" self.ListOfDevices[Nwkid]["Heartbeat"] = "-1" -def handle_command_stop(self,Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): - self.log.logging( "Command", "Debug", "mgtCommand : Stop for Device: %s EPout: %s Unit: %s DeviceType: %s" % (Nwkid, EPout, Unit, DeviceType), Nwkid, ) +def handle_command_stop(self,Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev): + """ STOP command. Usally STOP opening/closing blind,windows covering.""" + + self.log.logging( "Command", "Debug", "handle_command_stop : Stop for Device: %s EPout: %s Unit: %s DeviceType: %s" % (Nwkid, EPout, Unit, DeviceType), Nwkid, ) - if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": + model_name = self.ListOfDevices[Nwkid].get("Model", "") + profalux = self.ListOfDevices[Nwkid].get("Manufacturer") == "1110" and self.ListOfDevices[Nwkid].get("ZDeviceID") in ("0200", "0202") + + if DeviceType == "LvlControl" and model_name == "TS0601-curtain": tuya_curtain_openclose(self, Nwkid, EPout, "01") elif profalux: # Profalux offer a Manufacturer command to make Stop on Cluster 0x0008 profalux_stop(self, Nwkid) - elif _model_name in ( "TS0601-_TZE200_nklqjk62", ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Garage Door %s" % Nwkid) + elif model_name in ( "TS0601-_TZE200_nklqjk62", ): + self.log.logging("Command", "Debug", "handle_command_stop : Off for Tuya Garage Door %s" % Nwkid) tuya_garage_door_action( self, Nwkid, "02") update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) elif DeviceType in ("WindowCovering", "VenetianInverted", "Venetian", "Vanne", "VanneInverted", "Curtain", "CurtainInverted"): - if _model_name in ("PR412", "CPR412", "CPR412-E"): + if model_name in ("PR412", "CPR412", "CPR412-E"): profalux_stop(self, Nwkid) else: actuator_stop( self, Nwkid, EPout, "WindowCovering") @@ -276,70 +233,63 @@ def handle_command_stop(self,Devices, DeviceID, Unit, Nwkid, EPout, DeviceType, request_read_device_status(self, Nwkid) -def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): - # Let's force a refresh of Attribute in the next Heartbeat +def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev): + """ OFF command""" + + model_name = self.ListOfDevices[Nwkid].get("Model", "") + profalux = self.ListOfDevices[Nwkid].get("Manufacturer") == "1110" and self.ListOfDevices[Nwkid].get("ZDeviceID") in ("0200", "0202") + if DeviceType not in ( "CurtainInverted", "Curtain"): # Refresh will be done via the Report Attribute request_read_device_status(self, Nwkid) - self.log.logging( - "Command", - "Debug", - "mgtCommand : Off for Device: %s EPout: %s Unit: %s DeviceType: %s modelName: %s" - % (Nwkid, EPout, Unit, DeviceType, _model_name), - Nwkid, - ) + self.log.logging("Command", "Debug", f"handle_command_off : Off for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} modelName: {model_name}", Nwkid) - if _model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Switches Gang/EPout: %s" % EPout) + if model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): + self.log.logging("Command", "Debug", "handle_command_off : Off for Tuya Switches Gang/EPout: %s" % EPout) tuya_switch_command(self, Nwkid, "00", gang=int(EPout, 16)) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if _model_name in ( "TS0601-_TZE200_nklqjk62", ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya Garage Door %s" % Nwkid) + if model_name in ( "TS0601-_TZE200_nklqjk62", ): + self.log.logging("Command", "Debug", "handle_command_off : Off for Tuya Garage Door %s" % Nwkid) tuya_garage_door_action( self, Nwkid, "00") update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if _model_name == "TS0601-Parkside-Watering-Timer": - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time") - if ( - "Param" in self.ListOfDevices[Nwkid] - and "TimerMode" in self.ListOfDevices[Nwkid]["Param"] - and self.ListOfDevices[Nwkid]["Param"]["TimerMode"] - ): - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - Timer Mode") + if model_name == "TS0601-Parkside-Watering-Timer": + self.log.logging("Command", "Debug", "handle_command_off : On for Tuya ParkSide Water Time") + if self.ListOfDevices[Nwkid].get("Param", {}).get("TimerMode"): + self.log.logging("Command", "Debug", "handle_command_off : Off for Tuya ParkSide Water Time - Timer Mode") tuya_watertimer_command(self, Nwkid, "00", gang=int(EPout, 16)) else: - self.log.logging("Command", "Debug", "mgtCommand : Off for Tuya ParkSide Water Time - OnOff Mode") + self.log.logging("Command", "Debug", "handle_command_off : Off for Tuya ParkSide Water Time - OnOff Mode") actuator_off(self, Nwkid, EPout, "Light") update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj": + if DeviceType == "SwitchAlarm" and model_name == "TS0601-_TZE200_t1blo2bj": tuya_siren2_trigger(self, Nwkid, '00') update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "SwitchAlarm" and _model_name == "SMSZB-120" and self.iaszonemgt: + if DeviceType == "SwitchAlarm" and model_name == "SMSZB-120" and self.iaszonemgt: self.iaszonemgt.iaswd_develco_warning(Nwkid, EPout, "00") update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): + if DeviceType == "SwitchAlarm" and model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TuyaAlarmSwitch", 0) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "TamperSwitch" and ts0601_extract_data_point_infos( self, _model_name): + if DeviceType == "TamperSwitch" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TuyaTamperSwitch", 0) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if _model_name in ("TS0601-Energy",): + if model_name in ("TS0601-Energy",): tuya_energy_onoff(self, Nwkid, "00") - # update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off",BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return if DeviceType == "LivoloSWL": @@ -366,21 +316,8 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device return if DeviceType in ("ThermoMode", "ACMode", "ThermoMode_3", "CAC221ACMode"): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging("Command", "Debug", f"handle_command_off : Set Level for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) - self.log.logging( - "Command", - "Debug", - " - Set Thermostat Mode to : %s / %s" % (Level, THERMOSTAT_LEVEL_2_MODE[Level]), - Nwkid, - ) thermostat_Mode(self, Nwkid, "Off") update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) @@ -389,15 +326,9 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device return if DeviceType == ("ThermoMode_2", ): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) - if ts0601_extract_data_point_infos( self, _model_name): + self.log.logging("Command", "Debug", f"handle_command_off : Set Level for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid) + + if ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TRV7SystemMode", 0) return @@ -406,21 +337,19 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device return if DeviceType in ("ThermoMode_4", "ThermoMode_5", "ThermoMode_6", "ThermoMode_7"): - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( - Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) - self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) + self.log.logging("Command", "Debug", f"handle_command_off : Set Level for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid) - if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, _model_name): + if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TRV6SystemMode", 0) return - if _model_name in ( "TS0601-_TZE200_dzuqwsyg", "TS0601-eTRV5"): + if model_name in ( "TS0601-_TZE200_dzuqwsyg", "TS0601-eTRV5"): tuya_trv_onoff(self, Nwkid, 0x01) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return if DeviceType == "ThermoModeEHZBRTS": - self.log.logging("Command", "Debug", "MajDomoDevice EHZBRTS Schneider Thermostat Mode Off", Nwkid) + self.log.logging("Command", "Debug", "handle_command_off EHZBRTS Schneider Thermostat Mode Off", Nwkid) schneider_EHZBRTS_thermoMode(self, Nwkid, 0) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) # Let's force a refresh of Attribute in the next Heartbeat @@ -431,21 +360,21 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device casaia_system_mode(self, Nwkid, "Off") return - if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): + if DeviceType == "AirPurifierMode" and model_name in ('STARKVIND Air purifier', ): ikea_air_purifier_mode( self, Nwkid, EPout, 0 ) - if ( DeviceType == "ACSwing" and "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "AC201A" ): + if DeviceType == "ACSwing" and model_name == "AC201A": casaia_swing_OnOff(self, Nwkid, "00") update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) return - if DeviceType == "LvlControl" and _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): + if DeviceType == "LvlControl" and model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): tuya_dimmer_onoff(self, Nwkid, EPout, "00") _, cur_sValue = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, cur_sValue, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) return - if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": + if DeviceType == "LvlControl" and model_name == "TS0601-curtain": tuya_curtain_openclose(self, Nwkid, "02") elif DeviceType == "BSO-Volet" and profalux: @@ -464,7 +393,7 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device actuator_off(self, Nwkid, EPout, "WindowCovering") elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): + if model_name in ("PR412", "CPR412", "CPR412-E"): actuator_on(self, Nwkid, EPout, "Light") else: actuator_on(self, Nwkid, EPout, "WindowCovering") @@ -473,17 +402,15 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device # Refresh will be done via the Report Attribute return - elif DeviceType in ( "Venetian", "Vanne", "Curtain"): - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "PR412", "CPR412", "CPR412-E"): + if model_name in ( "PR412", "CPR412", "CPR412-E"): actuator_off(self, Nwkid, EPout, "Light") - elif ( - DeviceType in ("Vanne", "Curtain",) - or "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "TS130F",) - ): + + elif ( DeviceType in ("Vanne", "Curtain",) or model_name in ( "TS130F",) ): + actuator_off(self, Nwkid, EPout, "WindowCovering") - if DeviceType in ( "CurtainInverted", "Curtain"): + elif DeviceType in ( "CurtainInverted", "Curtain"): # Refresh will be done via the Report Attribute return @@ -498,47 +425,22 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device elif DeviceType == "ThermoOnOff": self.log.logging("Command", "Debug", "ThermoOnOff - requested Off", Nwkid) - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("eTRV0100"): + if model_name in ("eTRV0100"): danfoss_on_off(self, Nwkid, 0x00) else: tuya_trv_onoff(self, Nwkid, 0x00) update_domoticz_widget(self, Devices, DeviceID, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) elif DeviceType == "ShutterCalibration": - self.log.logging("Command", "Debug", "mgtCommand : Disable Window Cover Calibration") + self.log.logging("Command", "Debug", "handle_command_off : Disable Window Cover Calibration") tuya_window_cover_calibration(self, Nwkid, "01") - elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, _model_name): + elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "switch", 0) else: # Remaining Slider widget - if profalux: # Profalux are define as LvlControl but should be managed as Blind Inverted - actuator_setlevel(self, Nwkid, EPout, 0, "Light", "0000", withOnOff=False) - else: - if ( - "Param" in self.ListOfDevices[Nwkid] - and "fadingOff" in self.ListOfDevices[Nwkid]["Param"] - and self.ListOfDevices[Nwkid]["Param"]["fadingOff"] - ): - effect = "0000" - if self.ListOfDevices[Nwkid]["Param"]["fadingOff"] == 1: - effect = "0002" # 50% dim down in 0.8 seconds then fade to off in 12 seconds - elif self.ListOfDevices[Nwkid]["Param"]["fadingOff"] == 2: - effect = "0100" # 20% dim up in 0.5s then fade to off in 1 second - elif self.ListOfDevices[Nwkid]["Param"]["fadingOff"] == 255: - effect = "0001" # No fade - - self.log.logging("Command", "Debug", "mgtCommand : %s fading Off effect: %s" % (Nwkid, effect)) - # Increase brightness by 20% (if possible) in 0.5 seconds then fade to off in 1 second (default) - actuator_off(self, Nwkid, EPout, "Light", effect) - else: - actuator_off(self, Nwkid, EPout, "Light") - - # Making a trick for the GLEDOPTO LED STRIP. - if _model_name == "GLEDOPTO" and EPout == "0a": - # When switching off the WW channel, make sure to switch Off the RGB channel - actuator_off(self, Nwkid, "0b", "Light") + _off_command_default(self, Nwkid, EPout, profalux, model_name) # Update Devices if is_dimmable_blind(self, Devices, DeviceID, Unit): @@ -550,69 +452,90 @@ def handle_command_off(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, Device request_read_device_status(self, Nwkid) -def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): - # Let's force a refresh of Attribute in the next Heartbeat +def _off_command_default(self, Nwkid, EPout, profalux, model_name): + """ Handle all other widgets for the OFF command""" + + if profalux: # Profalux are define as LvlControl but should be managed as Blind Inverted + actuator_setlevel(self, Nwkid, EPout, 0, "Light", "0000", withOnOff=False) + + elif self.ListOfDevices[Nwkid].get("Param", {}).get("fadingOff", False): + effect_mapping = { + 1: "0002", # 50% dim down in 0.8 seconds then fade to off in 12 seconds + 2: "0100", # 20% dim up in 0.5s then fade to off in 1 second + 255: "0001" # No fade + } + + effect = effect_mapping.get(self.ListOfDevices[Nwkid].get("Param", {}).get("fadingOff")) + if effect is None: + effect = "0000" + + self.log.logging("Command", "Debug", f"mgtCommand : {Nwkid} fading Off effect: {effect}") + + actuator_off(self, Nwkid, EPout, "Light", effect) + else: + actuator_off(self, Nwkid, EPout, "Light") + + # Making a trick for the GLEDOPTO LED STRIP. + if model_name == "GLEDOPTO" and EPout == "0a": + # When switching off the WW channel, make sure to switch Off the RGB channel + actuator_off(self, Nwkid, "0b", "Light") + + +def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev): + model_name = self.ListOfDevices[Nwkid].get("Model", "") + profalux = self.ListOfDevices[Nwkid].get("Manufacturer") == "1110" and self.ListOfDevices[Nwkid].get("ZDeviceID") in ("0200", "0202") + request_read_device_status(self, Nwkid) - self.log.logging( - "Command", - "Debug", - "mgtCommand : On for Device: %s EPout: %s Unit: %s DeviceType: %s ModelName: %s" - % (Nwkid, EPout, Unit, DeviceType, _model_name), - Nwkid, - ) - - if _model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): + + self.log.logging( "Command", "Debug", f"mgtCommand : On for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} ModelName: {model_name}", Nwkid, ) + + if model_name in ( "TS0601-switch", "TS0601-2Gangs-switch", "TS0601-2Gangs-switch", ): self.log.logging("Command", "Debug", "mgtCommand : On for Tuya Switches Gang/EPout: %s" % EPout) tuya_switch_command(self, Nwkid, "01", gang=int(EPout, 16)) update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj": + if DeviceType == "SwitchAlarm" and model_name == "TS0601-_TZE200_t1blo2bj": tuya_siren2_trigger(self, Nwkid, '01') update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "SwitchAlarm" and _model_name == "SMSZB-120" and self.iaszonemgt: + if DeviceType == "SwitchAlarm" and model_name == "SMSZB-120" and self.iaszonemgt: update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) self.iaszonemgt.iaswd_develco_warning(Nwkid, EPout, "01") return - if DeviceType == "SwitchAlarm" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): + if DeviceType == "SwitchAlarm" and model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TuyaAlarmSwitch", 1) update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "TamperSwitch" and _model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, _model_name): + if DeviceType == "TamperSwitch" and model_name == "TS0601-Solar-Siren" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TuyaTamperSwitch", 1) update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if _model_name in ("TS0601-_TZE200_nklqjk62", ): - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya Garage Door %s" % Nwkid) + if model_name in ("TS0601-_TZE200_nklqjk62", ): + self.log.logging("Command", "Debug", "handle_command_on : On for Tuya Garage Door %s" % Nwkid) tuya_garage_door_action( self, Nwkid, "01") update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if _model_name == "TS0601-Parkside-Watering-Timer": - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time") - if ( - "Param" in self.ListOfDevices[Nwkid] - and "TimerMode" in self.ListOfDevices[Nwkid]["Param"] - and self.ListOfDevices[Nwkid]["Param"]["TimerMode"] - ): - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - Timer Mode") + if model_name == "TS0601-Parkside-Watering-Timer": + self.log.logging("Command", "Debug", "handle_command_on : On for Tuya ParkSide Water Time") + if self.ListOfDevices[Nwkid].get("Param", {}).get("TimerMode"): + self.log.logging("Command", "Debug", "handle_command_on : On for Tuya ParkSide Water Time - Timer Mode") tuya_watertimer_command(self, Nwkid, "01", gang=int(EPout, 16)) else: - self.log.logging("Command", "Debug", "mgtCommand : On for Tuya ParkSide Water Time - OnOff Mode") + self.log.logging("Command", "Debug", "handle_command_on : On for Tuya ParkSide Water Time - OnOff Mode") actuator_on(self, Nwkid, EPout, "Light") - if _model_name in ("TS0601-Energy",): + if model_name in ("TS0601-Energy",): tuya_energy_onoff(self, Nwkid, "01") - # update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "On",BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): + if DeviceType == "AirPurifierMode" and model_name in ('STARKVIND Air purifier', ): ikea_air_purifier_mode( self, Nwkid, EPout, 1 ) if DeviceType == "LivoloSWL": @@ -635,13 +558,13 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT self.ListOfDevices[Nwkid]["Heartbeat"] = 0 return - if DeviceType == "LvlControl" and _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): + if DeviceType == "LvlControl" and model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): tuya_dimmer_onoff(self, Nwkid, EPout, "01") _, cur_sValue = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) update_domoticz_widget(self, Devices, DeviceID, Unit, 1, cur_sValue, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "LvlControl" and _model_name == "TS0601-curtain": + if DeviceType == "LvlControl" and model_name == "TS0601-curtain": tuya_curtain_openclose(self, Nwkid, "00") elif DeviceType == "BSO-Volet" and profalux: @@ -652,7 +575,7 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT actuator_on(self, Nwkid, EPout, "WindowCovering") elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): + if model_name in ("PR412", "CPR412", "CPR412-E"): actuator_off(self, Nwkid, EPout, "Light") else: actuator_off(self, Nwkid, EPout, "WindowCovering") @@ -662,16 +585,18 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT return elif DeviceType in ("Venetian", "Vanne", "Curtain"): - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("PR412", "CPR412", "CPR412-E"): + if model_name in ("PR412", "CPR412", "CPR412-E"): actuator_on(self, Nwkid, EPout, "Light") - elif DeviceType in ( "Vanne", "Curtain",) or "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ( "TS130F",): + elif DeviceType in ( "Vanne", "Curtain",) or model_name in ( "TS130F",): actuator_on(self, Nwkid, EPout, "WindowCovering") + elif DeviceType in ( "CurtainInverted", "Curtain"): + return + else: actuator_off(self, Nwkid, EPout, "WindowCovering") - if DeviceType in ( "CurtainInverted", "Curtain"): # Refresh will be done via the Report Attribute return @@ -679,7 +604,7 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT thermostat_Mode(self, Nwkid, "Heat") elif DeviceType == "ThermoOnOff": - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] in ("eTRV0100"): + if model_name in ("eTRV0100"): danfoss_on_off(self, Nwkid, 0x01) else: tuya_trv_onoff(self, Nwkid, 0x01) @@ -689,21 +614,22 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT self.log.logging("Command", "Debug", "mgtCommand : Enable Window Cover Calibration") tuya_window_cover_calibration(self, Nwkid, "00") - elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, _model_name): + elif DeviceType == "Switch" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "switch", 1) - else: - # Remaining Slider widget - if profalux: + elif profalux: actuator_setlevel(self, Nwkid, EPout, 255, "Light", "0000", withOnOff=False) - else: - actuator_on(self, Nwkid, EPout, "Light") + + else: + actuator_on(self, Nwkid, EPout, "Light") if is_dimmable_blind(self, Devices, DeviceID, Unit): + # (13, 14, 15, 16) update_domoticz_widget(self, Devices, DeviceID, Unit, 1, "100", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + else: previous_level = get_previous_switch_level(self, Nwkid, EPout) - self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" % ( + self.log.logging( "Command", "Debug", "handle_command_on : Previous Level was %s" % ( previous_level), Nwkid, ) if previous_level is None: @@ -711,55 +637,32 @@ def handle_command_on(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceT elif is_dimmable_light(self, Devices, DeviceID, Unit): percentage_level = int(( (previous_level * 100 )/ 255)) - self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" %previous_level) + self.log.logging( "Command", "Debug", "handle_command_on : Previous Level was %s" %previous_level) update_domoticz_widget(self, Devices, DeviceID, Unit, 1, str(percentage_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) else: percentage_level = int(( (previous_level * 100 )/ 255)) - self.log.logging( "Command", "Debug", "mgtCommand : Previous Level was %s" %(previous_level,)) + self.log.logging( "Command", "Debug", "handle_command_on : Previous Level was %s" %(previous_level,)) update_domoticz_widget(self, Devices, DeviceID, Unit, 2, str(percentage_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) # Let's force a refresh of Attribute in the next Heartbeat - self.log.logging( "Command", "Debug", "mgtCommand : request_read_device_status()") + self.log.logging( "Command", "Debug", "handle_command_on : request_read_device_status()") request_read_device_status(self, Nwkid) -def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): - # Level is normally an integer but may be a floating point number if the Unit is linked to a thermostat device - # There is too, move max level, mode = 00/01 for 0%/100% - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( - Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) +def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev): + + model_name = self.ListOfDevices[Nwkid].get("Model", "") + profalux = self.ListOfDevices[Nwkid].get("Manufacturer") == "1110" and self.ListOfDevices[Nwkid].get("ZDeviceID") in ("0200", "0202") + + self.log.logging( "Command", "Debug", f"handle_command_setlevel : Set Level for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid, ) if DeviceType == "ThermoSetpoint": - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) - value = int(float(Level) * 100) - thermostat_Setpoint(self, Nwkid, value) - Level = round(float(Level), 2) - # Normalize SetPoint value with 2 digits - Level = str_round(float(Level), 2) # 2 decimals - update_domoticz_widget(self, Devices, DeviceID, Unit, 0, str(Level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, Nwkid) + _set_level_setpoint(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, BatteryLevel, SignalLevel,DeviceType, forceUpdateDev ) return if DeviceType == "TempSetCurrent": - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Temp for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) - value = int(float(Level) * 100) - schneider_temp_Setcurrent(self, Nwkid, value) - Level = round(float(Level), 2) - # Normalize SetPoint value with 2 digits - Level = str_round(float(Level), 2) # 2 decimals - update_domoticz_widget(self, Devices, DeviceID, Unit, 0, str(Level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, Nwkid) + _set_level_set_current_temp(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, BatteryLevel, SignalLevel,DeviceType, forceUpdateDev) return if DeviceType == "ThermoModeEHZBRTS": @@ -772,57 +675,20 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D return if DeviceType == "HACTMODE": - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for HACT Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) - if "Schneider Wiser" not in self.ListOfDevices[Nwkid]: - self.ListOfDevices[Nwkid]["Schneider Wiser"] = {} - - if "HACT Mode" not in self.ListOfDevices[Nwkid]["Schneider Wiser"]: - self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT Mode"] = "" - - if Level == 10: # Conventional - update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT Mode"] = "conventional" - schneider_hact_heater_type(self, Nwkid, "conventional") - - elif Level == 20: # fip - update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) - self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT Mode"] = "FIP" - schneider_hact_heater_type(self, Nwkid, "fip") - - else: - self.log.logging("Command", "Error", "Unknown mode %s for HACTMODE for device %s" % (Level, Nwkid)) - - # Let's force a refresh of Attribute in the next Heartbeat - request_read_device_status(self, Nwkid) + _set_level_hact_mode(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, BatteryLevel, SignalLevel,DeviceType, forceUpdateDev) return if DeviceType == "LegranCableMode": - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Legrand Cable Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for Legrand Cable Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) cable_connected_mode(self, Nwkid, str(Level)) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) request_read_device_status(self, Nwkid) return if DeviceType == "ContractPower": - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for ContractPower Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for ContractPower Mode: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) CONTRACT_MODE = { 10: 3, 20: 6, @@ -834,12 +700,8 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D self.ListOfDevices[Nwkid]["Schneider Wiser"] = {} if Level in CONTRACT_MODE: - self.log.logging( - "Command", - "Debug", - "mgtCommand : -----> Contract Power : %s - %s KVA" % (Level, CONTRACT_MODE[Level]), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : -----> Contract Power : %s - %s KVA" % ( + Level, CONTRACT_MODE[Level]), Nwkid, ) if ( "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "EH-ZB-BMS" @@ -861,31 +723,26 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D 50: "Frost Protection", 60: "Off", } - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for FIP: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for FIP: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) if "Schneider Wiser" not in self.ListOfDevices[Nwkid]: self.ListOfDevices[Nwkid]["Schneider Wiser"] = {} - if ( Level in FIL_PILOT_MODE and "Model" in self.ListOfDevices[Nwkid] ): - if self.ListOfDevices[Nwkid]["Model"] == "EH-ZB-HACT": - self.log.logging( "Command", "Debug","mgtCommand : -----> HACT -> Fil Pilote mode: %s - %s" % ( + if ( Level in FIL_PILOT_MODE and model_name ): + if model_name == "EH-ZB-HACT": + self.log.logging( "Command", "Debug","handle_command_setlevel : -----> HACT -> Fil Pilote mode: %s - %s" % ( Level, FIL_PILOT_MODE[Level]),Nwkid, ) self.ListOfDevices[Nwkid]["Schneider Wiser"]["HACT FIP Mode"] = FIL_PILOT_MODE[Level] schneider_hact_fip_mode(self, Nwkid, FIL_PILOT_MODE[Level]) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - elif self.ListOfDevices[Nwkid]["Model"] == "Cable outlet": - self.log.logging( "Command", "Debug", "mgtCommand : -----> Fil Pilote mode: %s - %s" % ( + elif model_name == "Cable outlet": + self.log.logging( "Command", "Debug", "handle_command_setlevel : -----> Fil Pilote mode: %s - %s" % ( Level, FIL_PILOT_MODE[Level]), Nwkid, ) legrand_fc40(self, Nwkid, FIL_PILOT_MODE[Level]) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev, ) - elif self.ListOfDevices[Nwkid]["Model"] in ( "SIN-4-FP-21_EQU", "SIN-4-FP-21"): + elif model_name in ( "SIN-4-FP-21_EQU", "SIN-4-FP-21"): ADEO_FIP_ONOFF_COMMAND = { 10: 1, 20: 4, @@ -894,7 +751,7 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D 50: 3, 60: 0, } - self.log.logging( "Command", "Log", "mgtCommand : -----> Adeo/Nodon/Enky Fil Pilote mode: %s - %s" % ( + self.log.logging( "Command", "Log", "handle_command_setlevel : -----> Adeo/Nodon/Enky Fil Pilote mode: %s - %s" % ( Level, ADEO_FIP_ONOFF_COMMAND[Level]), Nwkid, ) adeo_fip(self, Nwkid, EPout, ADEO_FIP_ONOFF_COMMAND[ Level ]) @@ -905,21 +762,12 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D return if DeviceType in ("ThermoMode_3", ): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) self.log.logging("Command", "Debug", "ThermoMode_3 (Acova) - requested Level: %s" % Level, Nwkid) if Level in THERMOSTAT_LEVEL_3_MODE: - self.log.logging( - "Command", - "Debug", - " - Set Thermostat Mode to : %s / T2:%s " % (Level, THERMOSTAT_LEVEL_3_MODE[Level]), - Nwkid, - ) + self.log.logging( "Command", "Debug", " - Set Thermostat Mode to : %s / T2:%s " % ( + Level, THERMOSTAT_LEVEL_3_MODE[Level]), Nwkid, ) thermostat_Mode(self, Nwkid, THERMOSTAT_LEVEL_3_MODE[Level]) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) @@ -928,21 +776,12 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D return if DeviceType in ("ThermoMode", ): - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) if Level in THERMOSTAT_LEVEL_2_MODE: - self.log.logging( - "Command", - "Debug", - " - Set Thermostat Mode to : %s / %s" % (Level, THERMOSTAT_LEVEL_2_MODE[Level]), - Nwkid, - ) + self.log.logging( "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % ( + Level, THERMOSTAT_LEVEL_2_MODE[Level]), Nwkid, ) thermostat_Mode(self, Nwkid, THERMOSTAT_LEVEL_2_MODE[Level]) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) # Let's force a refresh of Attribute in the next Heartbeat @@ -957,18 +796,11 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D 30: "Dry", 40: "Fan Only", } - self.log.logging( - "Command", - "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) if Level in ACLEVEL_TO_MODE: - self.log.logging( - "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, ACLEVEL_TO_MODE[Level]), Nwkid - ) + self.log.logging( "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, ACLEVEL_TO_MODE[Level]), Nwkid ) thermostat_Mode(self, Nwkid, ACLEVEL_TO_MODE[Level]) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) # Let's force a refresh of Attribute in the next Heartbeat @@ -984,7 +816,8 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D 40: "Dry", 50: "Fan Only", } - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) self.log.logging("Command", "Debug", "ThermoMode - requested Level: %s" % Level, Nwkid) if Level in CAC221ACLevel_TO_MODE: self.log.logging( "Command", "Debug", " - Set Thermostat Mode to : %s / %s" % (Level, CAC221ACLevel_TO_MODE[Level]), Nwkid ) @@ -995,9 +828,10 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D return if DeviceType == "ThermoMode_2": - self.log.logging( "Command", "Debug", "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) + self.log.logging( "Command", "Debug", "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % ( + Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) self.log.logging("Command", "Debug", "ThermoMode_2 - requested Level: %s" % Level, Nwkid) - if ts0601_extract_data_point_infos( self, _model_name): + if ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TRV7SystemMode", int(Level // 10)) return @@ -1009,19 +843,19 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) - if "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-_TZE200_b6wax7g0": + if model_name == "TS0601-_TZE200_b6wax7g0": self.log.logging("Command", "Debug", "ThermoMode_4 - requested Level: %s" % Level, Nwkid) # 0x00 - Auto, 0x01 - Manual, 0x02 - Temp Hand, 0x03 - Holliday tuya_trv_brt100_set_mode(self, Nwkid, int(Level / 10) - 1) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return - if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, _model_name): + if DeviceType == "ThermoMode_7" and ts0601_extract_data_point_infos( self, model_name): ts0601_actuator(self, Nwkid, "TRV6SystemMode", int(Level // 10)) return @@ -1029,23 +863,23 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D self.log.logging( "Command", "Debug", - "mgtCommand : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" + "handle_command_setlevel : Set Level for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s" % (Nwkid, EPout, Unit, DeviceType, Level), Nwkid, ) - if "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-_TZE200_chyvmhay": + if model_name == "TS0601-_TZE200_chyvmhay": # 1: // manual 2: // away 0: // auto tuya_lidl_set_mode( self, Nwkid, int(Level / 10) - 1 ) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-_TZE200_dzuqwsyg": + elif model_name == "TS0601-_TZE200_dzuqwsyg": tuya_trv_onoff(self, Nwkid, 0x01) tuya_coil_fan_thermostat(self, Nwkid, int(Level / 10) - 1) update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif "Model" in self.ListOfDevices[ Nwkid ] and self.ListOfDevices[ Nwkid ][ "Model" ] == "TS0601-eTRV5": + elif model_name == "TS0601-eTRV5": # "fr-FR": {"LevelNames": "Arrêt|Auto|Manual|Away"}}, # Off: 00 -> Will get Command Off, so not here # Auto:10 -> 00 [0] Scheduled/auto @@ -1060,7 +894,7 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level // 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) return - if DeviceType == "AirPurifierMode" and _model_name in ('STARKVIND Air purifier', ): + if DeviceType == "AirPurifierMode" and model_name in ('STARKVIND Air purifier', ): self.log.logging( "Command", "Debug", " Air Purifier Mode: %s" % ( Level ), Nwkid,) if Level == 10: @@ -1070,86 +904,26 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D ikea_air_purifier_mode( self, Nwkid, EPout, mode) if DeviceType == "FanControl": - - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "AC201A": - casaia_ac201_fan_control(self, Nwkid, Level) - return - - if "Model" in self.ListOfDevices[Nwkid] and self.ListOfDevices[Nwkid]["Model"] == "TS0601-_TZE200_dzuqwsyg": - self.log.logging( - "Command", - "Debug", - "mgtCommand : Fan Control: %s EPout: %s Unit: %s DeviceType: %s Level: %s" - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) - - FAN_SPEED_MAPPING = { - 10: 0x03, - 20: 0x00, - 30: 0x01, - 40: 0x02, - } - if Level in FAN_SPEED_MAPPING: - tuya_fan_speed(self, Nwkid, FAN_SPEED_MAPPING[ Level ]) - update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - return - - self.log.logging( - "Command", - "Debug", - "mgtCommand : Fan Control not expected Level : %s EPout: %s Unit: %s DeviceType: %s Level: %s " - % (Nwkid, EPout, Unit, DeviceType, Level), - Nwkid, - ) - - FAN_MODE = { - 0: "Off", - 20: "Low", - 30: "Medium", - 40: "High", - 10: "Auto", - } - - if Level in FAN_MODE: - change_fan_mode(self, Nwkid, EPout, FAN_MODE[Level]) - request_read_device_status(self, Nwkid) + _set_level_fan_control(self, Devices, DeviceID, Unit, BatteryLevel, SignalLevel, forceUpdateDev, DeviceType, Nwkid, EPout, Level, model_name) if DeviceType == "ACSwing": if Level == 10: casaia_swing_OnOff(self, Nwkid, "01") - # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) return if DeviceType == "ACMode_2": - if Level == 10: - casaia_system_mode(self, Nwkid, "Cool") - # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Level == 20: - casaia_system_mode(self, Nwkid, "Heat") - # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Level == 30: - casaia_system_mode(self, Nwkid, "Dry") - # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) - elif Level == 40: - casaia_system_mode(self, Nwkid, "Fan") - # update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level)//10, Level,BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + _set_level_acmode_2(self, Nwkid, EPout, Level) return if DeviceType == "BSO-Volet": if profalux: # Transform slider % into analog value - lift = (255 * Level) // 100 - if Level == 0: - lift = 1 - elif Level > 255: - lift = 255 + lift = min(max((255 * Level) // 100, 1), 255) self.log.logging( "Command", "Debug", - "mgtCommand : profalux_MoveToLiftAndTilt: %s BSO-Volet Lift: Level:%s Lift: %s" - % (Nwkid, Level, lift), + f"handle_command_setlevel : profalux_MoveToLiftAndTilt: {Nwkid} BSO-Volet Lift: Level: {Level} Lift: {lift}", Nwkid, ) profalux_MoveToLiftAndTilt(self, Nwkid, level=lift) @@ -1160,90 +934,19 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D self.log.logging( "Command", "Debug", - "mgtCommand : profalux_MoveToLiftAndTilt: %s BSO-Orientation : Level: %s Tilt: %s" - % (Nwkid, Level, Tilt), + f"handle_command_setlevel : profalux_MoveToLiftAndTilt: {Nwkid} BSO-Orientation : Level: {Level} Tilt: {Tilt}", Nwkid, ) profalux_MoveToLiftAndTilt(self, Nwkid, tilt=Tilt) - elif DeviceType == "WindowCovering": # Blind Inverted - if Level == 0: - Level = 1 - elif Level >= 100: - Level = 99 - value = "%02x" % Level - self.log.logging( - "Command", - "Debug", - "WindowCovering - Lift Percentage Command - %s/%s Level: 0x%s %s" % (Nwkid, EPout, value, Level), - Nwkid, - ) - actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") - - elif DeviceType in ("Venetian", "Vanne", "Curtain",): - if Level == 0: - Level = 1 - elif Level >= 100: - Level = 99 - value = "%02x" % Level - self.log.logging( - "Command", - "Debug", - "Venetian blind - Lift Percentage Command - %s/%s Level: 0x%s %s" % (Nwkid, EPout, value, Level), - Nwkid, - ) - actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return - - elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - Level = 100 - Level - if Level == 0: - Level = 1 - elif Level >= 100: - Level = 99 - value = "%02x" % Level - self.log.logging( - "Command", - "Debug", - "VenetianInverted blind - Lift Percentage Command - %s/%s Level: 0x%s %s" - % (Nwkid, EPout, value, Level), - Nwkid, - ) - actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") - - if DeviceType in ( "CurtainInverted", "Curtain"): - # Refresh will be done via the Report Attribute - return + elif DeviceType in ( "WindowCovering", "Venetian", "Vanne", "Curtain", "VenetianInverted", "VanneInverted", "CurtainInverted"): + _set_level_windows_covering(self, DeviceType, Nwkid, EPout, Level) elif DeviceType == "AlarmWD": - self.log.logging("Command", "Debug", "Alarm WarningDevice - value: %s" % Level) - if Level == 0: # Stop - self.iaszonemgt.alarm_off(Nwkid, EPout) - elif Level == 10: # Alarm - self.iaszonemgt.alarm_on(Nwkid, EPout) - elif Level == 20: # Siren Only - self.iaszonemgt.siren_only(Nwkid, EPout) - elif Level == 30: # Strobe Only - self.iaszonemgt.strobe_only(Nwkid, EPout) - elif Level == 40: # Armed - Squawk - self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "armed") - elif Level == 50: # Disarmed - self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "disarmed") + handle_alarm_command(self, Nwkid, EPout, Level) elif DeviceType == "TuyaSiren": - if Level == 10: - tuya_siren_alarm(self, Nwkid, 0x01, 1) - elif Level == 20: - tuya_siren_alarm(self, Nwkid, 0x01, 2) - elif Level == 30: - tuya_siren_alarm(self, Nwkid, 0x01, 3) - elif Level == 40: - tuya_siren_alarm(self, Nwkid, 0x01, 4) - elif Level == 50: - tuya_siren_alarm(self, Nwkid, 0x01, 5) + _set_level_tuya_siren(self, Nwkid, EPout, Level) elif DeviceType == "TuyaSirenHumi": if Level == 10: @@ -1254,35 +957,31 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D tuya_siren_temp_alarm(self, Nwkid, 0x01) elif DeviceType == "Toggle": - self.log.logging("Command", "Debug", "Toggle switch - value: %s" % Level) - if Level == 10: # Off - actuators(self, Nwkid, EPout, "Off", "Switch") - elif Level == 20: # On - actuators(self, Nwkid, EPout, "On", "Switch") - elif Level == 30: # Toggle - actuators(self, Nwkid, EPout, "Toggle", "Switch") - - elif _model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): + _set_level_device_toggle(self, Nwkid, EPout, Level) + + elif model_name in ("TS0601-dimmer", "TS0601-2Gangs-dimmer"): cur_nValue, _ = domo_read_nValue_sValue(self, Devices, DeviceID, Unit) if cur_nValue == 0: tuya_dimmer_onoff(self, Nwkid, EPout, "01") Level = max(Level, 1) tuya_dimmer_dimmer(self, Nwkid, EPout, Level) - elif _model_name == "TS0601-curtain": + elif model_name == "TS0601-curtain": tuya_curtain_lvl(self, Nwkid, (Level)) + elif profalux: + actuator_setlevel(self, Nwkid, EPout, Level, "Light", "0000", withOnOff=False) + else: - if profalux: - actuator_setlevel(self, Nwkid, EPout, Level, "Light", "0000", withOnOff=False) - else: - if Level > 1 and get_deviceconf_parameter_value(self, _model_name, "ForceSwitchOnformoveToLevel", return_default=False): - actuator_on(self, Nwkid, EPout, "Light") - transitionMoveLevel = "0010" # Compatibility. It was 0010 before - if "Param" in self.ListOfDevices[Nwkid] and "moveToLevel" in self.ListOfDevices[Nwkid]["Param"]: - transitionMoveLevel = "%04x" % int(self.ListOfDevices[Nwkid]["Param"]["moveToLevel"]) - actuator_setlevel(self, Nwkid, EPout, Level, "Light", transitionMoveLevel, withOnOff=True ) + if Level > 1 and get_deviceconf_parameter_value(self, model_name, "ForceSwitchOnformoveToLevel", return_default=False): + actuator_on(self, Nwkid, EPout, "Light") + + move_to_level = self.ListOfDevices.get(Nwkid, {}).get("Param", {}).get("moveToLevel") + transitionMoveLevel = f"{int(move_to_level):04x}" if move_to_level is not None else "0010" + + actuator_setlevel(self, Nwkid, EPout, Level, "Light", transitionMoveLevel, withOnOff=True) + # Domoticz widget update dimmable_blind = is_dimmable_blind(self, Devices, DeviceID, Unit) if dimmable_blind and Level in ( 0, 50, 100): if Level == 0: @@ -1304,13 +1003,215 @@ def handle_command_setlevel(self,Devices, DeviceID, Unit, Level, Nwkid, EPout, D request_read_device_status(self, Nwkid) -def handle_command_setcolor(self,Devices, DeviceID, Unit, Level, Color, Nwkid, EPout, DeviceType, _model_name, profalux, BatteryLevel, SignalLevel, forceUpdateDev): +def get_previous_switch_level(self, Nwkid, Ep): + device = self.ListOfDevices.get(Nwkid) + if not device: + return None + + ep_data = device.get('Ep', {}) + if Ep not in ep_data: + return None + + ep_0008_data = ep_data[Ep].get('0008', {}) + switch_level = ep_0008_data.get('0000') + + if switch_level in ('', {}): + return None + + if isinstance(switch_level, str): + return int(switch_level, 16) + + if isinstance(switch_level, int): + return switch_level + + self.log.logging( "Command", "Debug", f"get_previous_switch_level : Mostlikely a non-dimmable device >{switch_level}<", Nwkid, ) + return None + + +def _set_level_hact_mode(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, BatteryLevel, SignalLevel, DeviceType, forceUpdateDev): + self.log.logging("Command", "Debug", f"_set_level_hact_mode: Set Level for HACT Mode: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid) + + schneider_wiser_data = self.ListOfDevices.setdefault(Nwkid, {}).setdefault("Schneider Wiser", {}) + hact_mode = None + + if Level == 10: # Conventional + hact_mode = "conventional" + elif Level == 20: # fip + hact_mode = "FIP" + + if hact_mode: + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level) // 10, Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + schneider_wiser_data["HACT Mode"] = hact_mode + schneider_hact_heater_type(self, Nwkid, hact_mode) + else: + self.log.logging("Command", "Error", f"Unknown mode {Level} for HACTMODE for device {Nwkid}") + + # Let's force a refresh of Attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + return + + +def _set_level_set_current_temp(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, BatteryLevel, SignalLevel, DeviceType, forceUpdateDev): + self.log.logging( "Command", "Debug", f"_set_level_set_current_temp : Set Temp for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid, ) + + # Convert Level to the appropriate format for temperature + temp_value = int(float(Level) * 100) + + # Set current temperature + schneider_temp_Setcurrent(self, Nwkid, temp_value) + + # Normalize Level value with 2 digits + normalized_level = round(float(Level), 2) + + # Update Domoticz widget + update_domoticz_widget( self, Devices, DeviceID, Unit, 0, str(normalized_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + + # Request a refresh of attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + + return + + +def _set_level_setpoint(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, BatteryLevel, SignalLevel, DeviceType, forceUpdateDev): + # Log the command + self.log.logging( "Command", "Debug", f"_set_level_setpoint : Set Level for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid, ) + + # Convert Level to the appropriate format for the thermostat + thermostat_value = int(float(Level) * 100) + + # Set the thermostat setpoint + thermostat_Setpoint(self, Nwkid, thermostat_value) + + # Normalize the Level value to 2 decimal places + normalized_level = round(float(Level), 2) + + # Update the Domoticz widget + update_domoticz_widget( self, Devices, DeviceID, Unit, 0, str(normalized_level), BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev ) + + # Request a refresh of the attribute in the next Heartbeat + request_read_device_status(self, Nwkid) + + return + +def _set_level_fan_control(self, Devices, DeviceID, Unit, BatteryLevel, SignalLevel, forceUpdateDev, DeviceType, Nwkid, EPout, Level, model_name): + if model_name == "AC201A": + casaia_ac201_fan_control(self, Nwkid, Level) + return + + if model_name == "TS0601-_TZE200_dzuqwsyg": + self.log.logging( "Command", "Debug", f"mgtCommand : Fan Control: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid, ) + + FAN_SPEED_MAPPING = { + 10: 0x03, + 20: 0x00, + 30: 0x01, + 40: 0x02, + } + if Level in FAN_SPEED_MAPPING: + tuya_fan_speed(self, Nwkid, FAN_SPEED_MAPPING[ Level ]) + update_domoticz_widget(self, Devices, DeviceID, Unit, int(Level / 10), Level, BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev) + return + + self.log.logging( "Command", "Debug", f"mgtCommand : Fan Control not expected Level : {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level}", Nwkid, ) + return + + # Generic FAN + FAN_MODE = { + 0: "Off", + 20: "Low", + 30: "Medium", + 40: "High", + 10: "Auto", + } + + if Level in FAN_MODE: + change_fan_mode(self, Nwkid, EPout, FAN_MODE[Level]) + request_read_device_status(self, Nwkid) + + +def _set_level_acmode_2(self, Nwkid, EPout, Level): + mode_mapping = { + 10: "Cool", + 20: "Heat", + 30: "Dry", + 40: "Fan", + } + mode = mode_mapping.get(Level) + if mode: + casaia_system_mode(self, Nwkid, mode) + + +def _set_level_windows_covering(self, DeviceType, Nwkid, EPout, Level): + if DeviceType in ("WindowCovering", "Venetian", "Vanne", "Curtain"): + Level = min(max(Level, 1), 99) + elif DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): + Level = min(max(100 - Level, 1), 99) + + value = "%02x" % Level + if DeviceType == "WindowCovering": + log_message = f"WindowCovering - Lift Percentage Command - {Nwkid}/{EPout} Level: 0x{value} {Level}" + else: + log_message = ( + f"Venetian blind - Lift Percentage Command - {Nwkid}/{EPout} Level: 0x{value} {Level}" + ) + if DeviceType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): + log_message = ( + f"VenetianInverted blind - Lift Percentage Command - {Nwkid}/{EPout} Level: 0x{value} {Level}" + ) + + self.log.logging("Command", "Debug", log_message, Nwkid) + actuator_setlevel(self, Nwkid, EPout, Level, "WindowCovering") + + if DeviceType in ("CurtainInverted", "Curtain"): + # Refresh will be done via the Report Attribute + return + + +def handle_alarm_command(self, Nwkid, EPout, Level): + action_mapping = { + 0: self.iaszonemgt.alarm_off, + 10: self.iaszonemgt.alarm_on, + 20: self.iaszonemgt.siren_only, + 30: self.iaszonemgt.strobe_only, + 40: lambda: self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "armed"), + 50: lambda: self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "disarmed"), + } + action = action_mapping.get(Level) + if action: + action() + else: + self.log.logging("Command", "Error", "Invalid alarm level: %s" % Level) + + +def _set_level_tuya_siren(self, Nwkid, EPout, Level): + level_mapping = { + 10: (0x01, 1), + 20: (0x01, 2), + 30: (0x01, 3), + 40: (0x01, 4), + 50: (0x01, 5), + } + params = level_mapping.get(Level) + if params: + tuya_siren_alarm(self, Nwkid, *params) + else: + self.log.logging("Command", "Error", "Invalid level for tuya siren: %s" % Level) + + +def _set_level_device_toggle(self, Nwkid, EPout, Level): + self.log.logging("Command", "Debug", "Toggle switch - value: %s" % Level) + if Level in (10, 20, 30): + command = {10: "Off", 20: "On", 30: "Toggle"}[Level] + actuators(self, Nwkid, EPout, command, "Switch") + else: + self.log.logging("Command", "Error", "Invalid level for device toggle: %s" % Level) - self.log.logging( "Command", "Debug", "mgtCommand : Set Color for Device: %s EPout: %s Unit: %s DeviceType: %s Level: %s Color: %s" % ( - Nwkid, EPout, Unit, DeviceType, Level, Color), Nwkid, - ) + +def handle_command_setcolor(self,Devices, DeviceID, Unit, Level, Color, Nwkid, EPout, DeviceType, BatteryLevel, SignalLevel, forceUpdateDev): + self.log.logging("Command", "Debug", f"mgtCommand : Set Color for Device: {Nwkid} EPout: {EPout} Unit: {Unit} DeviceType: {DeviceType} Level: {Level} Color: {Color}", Nwkid) actuator_setcolor(self, Nwkid, EPout, Level, Color) request_read_device_status(self, Nwkid) - update_domoticz_widget(self, Devices, DeviceID, Unit, 1, str(Level), BatteryLevel, SignalLevel, str(Color)) + # Use nValue=15 as https://github.com/zigbeefordomoticz/Domoticz-Zigbee/issues/1680 + update_domoticz_widget(self, Devices, DeviceID, Unit, 15, str(Level), BatteryLevel, SignalLevel, str(Color)) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 86e93d21b..b5cf788c2 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -31,6 +31,8 @@ (13, 73, 244): { "Widget": "Blind", "Name": "Blind Percentage", "partially_opened_nValue": 2}, (15, 73, 244): { "Widget": "Blind", "Name": "Venetian Blinds EU", "partially_opened_nValue": 17}, (21, 73, 244): { "Widget": "Blind", "Name": "Blinds + Stop", "partially_opened_nValue": 2}, + (3, 73, 244): { "Widget": "Blind", "Name": "BSO-Volet", "partially_opened_nValue": 17}, + } DOMOTICZ_EXTENDED_API = False diff --git a/plugin.py b/plugin.py index 55b95172e..1b6d3c2b0 100644 --- a/plugin.py +++ b/plugin.py @@ -130,7 +130,7 @@ from Modules.casaia import restart_plugin_reset_ModuleIRCode from Modules.checkingUpdate import (checkFirmwareUpdate, checkPluginUpdate, checkPluginVersion) -from Modules.command import mgtCommand +from Modules.command import domoticz_command from Modules.database import (LoadDeviceList, WriteDeviceList, checkDevices2LOD, checkListOfDevice2Devices, import_local_device_conf) @@ -801,7 +801,7 @@ def onCommand(self, Unit, Command, Level, Color): # Let's check if this is End Node, or Group related. if DeviceID in self.IEEE2NWK: # Command belongs to a end node - mgtCommand(self, Devices, DeviceID, Unit, self.IEEE2NWK[ DeviceID], Command, Level, Color) + domoticz_command(self, Devices, DeviceID, Unit, self.IEEE2NWK[ DeviceID], Command, Level, Color) elif self.groupmgt and DeviceID in self.groupmgt.ListOfGroups: # Command belongs to a Zigate group From 016db590111b3e150a10d9c2ce4e83205b6d2ec9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 18:40:42 +0200 Subject: [PATCH 185/301] Plugin wip-develop version 7.2.056 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 233bb16e3..b6f139338 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.055"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.056"} \ No newline at end of file From dea7cb9a6a3c80273aed54b6f51f44a4eb0a8202 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 19:17:22 +0200 Subject: [PATCH 186/301] prevent stack trace, when specific Widget Id do not exist --- Modules/domoticzAbstractLayer.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index b5cf788c2..6afe33515 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -190,7 +190,7 @@ def find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ): if Widget_Idx in self.ListOfDomoticzWidget: return self.ListOfDomoticzWidget[Widget_Idx]['Unit'] - self.log.logging( "AbstractDz", "Log", f"- {Widget_Idx} Not Found in ListOfDomoticzWidget, looking the old way" ) + self.log.logging( "AbstractDz", "Log", f"Plugin looks for Domoticz Widget Id {Widget_Idx} which do not exist !!" ) # In case it is not found with the new way, let's keep the old way # TO-DO: Remove @@ -549,9 +549,19 @@ def domo_read_TimedOut( self, Devices, DeviceId_ ): return next( ( 1 for x in Devices if Devices[x].DeviceID == DeviceId_ and Devices[x].TimedOut ), 0, ) -def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_,): +def domo_read_LastUpdate(self, Devices, DeviceId_, Unit_): self.log.logging("AbstractDz", "Debug", f"domo_read_LastUpdate: DeviceID: {DeviceId_} Unit {Unit_}") - return Devices[DeviceId_].Units[Unit_].LastUpdate if DOMOTICZ_EXTENDED_API else Devices[Unit_].LastUpdate + + if DOMOTICZ_EXTENDED_API: + device = Devices.get(DeviceId_) + if device: + return device.Units.get(Unit_).LastUpdate if device.Units else None + else: + device = Devices.get(Unit_) + if device: + return device.LastUpdate + + return None def domo_read_BatteryLevel( self, Devices, DeviceId_, Unit_, ): From 2350782dceabd8f0ddfff97b38a8510c08e75529 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 21:44:09 +0200 Subject: [PATCH 187/301] stop the periodic zigpy tasks --- Classes/ZigpyTransport/AppGeneric.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 691030d04..6f778201c 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -166,12 +166,27 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) async def shutdown(self) -> None: """Shutdown controller.""" + LOGGER.info("Zigpy shutdown") + if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: self.callBackBackup(await self.backups.create_backup(load_devices=True)) + # Cancel watchdog task if it exists if self._watchdog_task is not None: self._watchdog_task.cancel() + # Stop periodic broadcasts for OTA + if self.ota: + self.ota.stop_periodic_broadcasts() + + # Stop periodic backups + if self.backups: + self.backups.stop_periodic_backups() + + # Stop periodic scans for topology + if self.topology: + self.topology.stop_periodic_scans() + try: await self.disconnect() except Exception: @@ -566,7 +581,6 @@ def build_json_to_store(self, scan_result): def scan_channel( self, scan_result ): - list_channels = [] for channel, value in scan_result.items(): percentage = 100 * value / 255 @@ -577,6 +591,6 @@ def scan_channel( self, scan_result ): def is_zigpy_topology_in_progress(self): - zigpy_topology = self.topology return zigpy_topology._scan_task is not None and not zigpy_topology._scan_task.done() + From 34f8bf3edf182fa9f8dbc7ca922393b8931a42aa Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 21:45:13 +0200 Subject: [PATCH 188/301] private members for storing topology and interefences task --- Classes/ZigpyTransport/Transport.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Classes/ZigpyTransport/Transport.py b/Classes/ZigpyTransport/Transport.py index 7aaf6faca..37ddcc8d1 100644 --- a/Classes/ZigpyTransport/Transport.py +++ b/Classes/ZigpyTransport/Transport.py @@ -71,7 +71,10 @@ def __init__(self, ControllerData, pluginParameters, pluginconf, F_out, zigpy_up self.structured_log_command_file_handler = None instrument_log_command_open( self) - + + self.manual_topology_scan_task = None # Store topology task when manual started + self.manual_interference_scan_task = None # Store topology task when manual started + self.use_of_zigpy_persistent_db = self.pluginconf.pluginConf["enableZigpyPersistentInFile"] or self.pluginconf.pluginConf["enableZigpyPersistentInMemory"] From 25a215b95201b00e8c34f4556e20e1c4749d3c8f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 22:07:29 +0200 Subject: [PATCH 189/301] refactor, and start Topology and Interefence in a dedicated tasks --- Classes/ZigpyTransport/zigpyThread.py | 110 ++++++++++++++------------ 1 file changed, 60 insertions(+), 50 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 686f18cb8..c2b763668 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -63,9 +63,17 @@ def stop_zigpy_thread(self): self.writer_queue.put_nowait("STOP") self.zigpy_running = False + # Make sure top the manualy started task + if self.manual_topology_scan_task: + self.manual_topology_scan_task.cancel() + + if self.manual_interference_scan_task: + self.manual_interference_scan_task.cancel() + def start_zigpy_thread(self): self.log.logging("TransportZigpy", "Debug", "start_zigpy_thread - Starting zigpy thread (1)") + if sys.platform == "win32" and (3, 8, 0) <= sys.version_info < (3, 9, 0): asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) @@ -75,28 +83,29 @@ def start_zigpy_thread(self): def setup_zigpy_thread(self): self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - Starting zigpy thread (1)") self.zigpy_loop = get_or_create_eventloop() - + if self.zigpy_loop: self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - Starting zigpy thread") - + self.zigpy_thread = Thread(name=f"ZigpyCom_{self.hardwareid}", target=zigpy_thread, args=(self,)) - self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - zigpy thread setup done") - self.zigpy_thread.start() + self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - zigpy thread started") def get_or_create_eventloop(): - loop = None try: loop = asyncio.get_event_loop() except RuntimeError as ex: if "There is no current event loop in thread" in str(ex): loop = asyncio.new_event_loop() - - asyncio.set_event_loop( loop ) - return loop + asyncio.set_event_loop(loop) + else: + if loop.is_closed(): + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + return loop def zigpy_thread(self): @@ -376,7 +385,7 @@ def display_network_infos(self): async def worker_loop(self): self.log.logging("TransportZigpy", "Debug", "worker_loop - ZigyTransport: worker_loop start.") - self.writer_queue = queue.Queue() + self.writer_queue = queue.Queue() # We MUST use queue and not asyncio.Queue, because it is not compatible with the Domoticz framework while self.zigpy_running and self.writer_queue is not None: self.log.logging("TransportZigpy", "Debug", "wait for command") @@ -385,7 +394,8 @@ async def worker_loop(self): if command_to_send is None: continue - elif command_to_send == "STOP": + + if command_to_send == "STOP": # Shutting down self.log.logging("TransportZigpy", "Debug", "worker_loop - Shutting down ... exit.") self.zigpy_running = False @@ -394,8 +404,8 @@ async def worker_loop(self): data = json.loads(command_to_send) self.log.logging("TransportZigpy", "Debug", f"got a command {data['cmd']} ({type(data['cmd'])})") - if self.pluginconf.pluginConf["ZiGateReactTime"]: - t_start = 1000 * time.time() + if self.pluginconf.pluginConf.get("ZiGateReactTime", False): + t_start = int(1000 * time.time()) try: await dispatch_command(self, data) @@ -403,7 +413,7 @@ async def worker_loop(self): except (DeliveryError, APIException, ControllerException, InvalidFrame, CommandNotRecognized, ValueError, InvalidResponse, InvalidCommandResponse, asyncio.TimeoutError, RuntimeError) as e: - log_exception(self, type(e).__name__, e, data["cmd"], data["datas"]) + log_exception(self, type(e).__name__, e, data.get("cmd", ""), data.get("datas", "")) if isinstance(e, (APIException, ControllerException)): await asyncio.sleep(1.0) @@ -411,16 +421,16 @@ async def worker_loop(self): self.log.logging("TransportZigpy", "Error", f"Error while receiving a Plugin command: >{e}<") handle_thread_error(self, e, data) - if self.pluginconf.pluginConf["ZiGateReactTime"]: - t_end = 1000 * time.time() - t_elapse = int(t_end - t_start) + if self.pluginconf.pluginConf.get("ZiGateReactTime", False): + t_end = int(1000 * time.time()) + t_elapse = t_end - t_start self.statistics.add_timing_zigpy(t_elapse) if t_elapse > 1000: - self.log.logging( "TransportZigpy", "Log", "process_raw_command (zigpyThread) spend more than 1s (%s ms) frame: %s" % (t_elapse, data), ) + self.log.logging("TransportZigpy", "Log", f"process_raw_command (zigpyThread) spent more than 1s ({t_elapse} ms) frame: {data}") async def get_next_command(self): - """ Get the next command in the writer Queue """ + """Get the next command in the writer Queue.""" while True: try: return self.writer_queue.get_nowait() @@ -429,7 +439,7 @@ async def get_next_command(self): await asyncio.sleep(0.100) except Exception as e: - self.log.logging( "TransportZigpy", "Log", f"Error in get_next_command: {e}") + self.log.logging("TransportZigpy", "Log", f"Error in get_next_command: {e}") return None @@ -477,10 +487,11 @@ async def dispatch_command(self, data): await self.app.set_zigpy_tx_power(datas["Param1"]) elif cmd == "INTERFERENCE-SCAN": - await self.app.network_interference_scan() + self.manual_interference_scan_task = asyncio.create_task( self.app.network_interference_scan(), name="INTERFERENCE-SCAN") elif cmd == "ZIGPY-TOPOLOGY-SCAN": - await self.app.start_topology_scan() + self.manual_topology_scan_task = asyncio.create_task( self.app.start_topology_scan(), name="ZIGPY-TOPOLOGY-SCAN") + async def _permit_to_joint(self, data): @@ -528,9 +539,8 @@ async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): extended_timeout = not data.get("RxOnIdle", False) and not self.pluginconf.pluginConf["PluginRetrys"] self.log.logging( "TransportZigpy", "Debug", f"process_raw_command: extended_timeout {extended_timeout}") - delay = data["Delay"] if "Delay" in data else None - self.log.logging( "TransportZigpy", "Debug", "process_raw_command: process_raw_command ready to request Function: %s NwkId: %04x/%s Cluster: %04x Seq: %02x Payload: %s AddrMode: %02x EnableAck: %s, Sqn: %s, Delay: %s, Extended_TO: %s" % ( - Function, int(NwkId, 16), dEp, Cluster, sequence, binascii.hexlify(payload).decode("utf-8"), addressmode, not AckIsDisable, Sqn, delay,extended_timeout ), ) + delay = data.get("Delay", None) + self.log.logging("TransportZigpy", "Debug", f"process_raw_command: process_raw_command ready to request Function: {Function} NwkId: {NwkId}/{dEp} Cluster: {Cluster} Seq: {sequence} Payload: {payload.hex()} AddrMode: {addressmode} EnableAck: {not AckIsDisable}, Sqn: {Sqn}, Delay: {delay}, Extended_TO: {extended_timeout}") destination, transport_needs = _get_destination(self, NwkId, addressmode, Profile, Cluster, sEp, dEp, sequence, payload) @@ -538,24 +548,21 @@ async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): return if transport_needs == "Broadcast": - self.log.logging("TransportZigpy", "Debug", "process_raw_command Broadcast: %s" % NwkId) + self.log.logging("TransportZigpy", "Debug", f"process_raw_command Broadcast: {NwkId}") result, msg = await self.app.broadcast( Profile, Cluster, sEp, dEp, 0x0, 0x0, sequence, payload, ) await asyncio.sleep( 2 * WAITING_TIME_BETWEEN_ATTEMPTS) elif addressmode == 0x01: # Group Mode destination = int(NwkId, 16) - self.log.logging("TransportZigpy", "Debug", "process_raw_command Multicast: %s" % destination) + self.log.logging("TransportZigpy", "Debug", f"process_raw_command Multicast: {destination}") result, msg = await self.app.mrequest(destination, Profile, Cluster, sEp, sequence, payload) await asyncio.sleep( 2 * WAITING_TIME_BETWEEN_ATTEMPTS) elif transport_needs == "Unicast": - self.log.logging( "TransportZigpy", "Debug", "process_raw_command Unicast destination: %s Profile: %s Cluster: %s sEp: %s dEp: %s Seq: %s Payload: %s" % ( - destination, Profile, Cluster, sEp, dEp, sequence, payload)) + self.log.logging("TransportZigpy", "Debug", f"process_raw_command Unicast destination: {destination} Profile: {Profile} Cluster: {Cluster} sEp: {sEp} dEp: {dEp} Seq: {sequence} Payload: {payload.hex()}") - if self.pluginconf.pluginConf["ForceAPSAck"]: - self.log.logging( "TransportZigpy", "Debug", " Forcing Ack by setting AckIsDisable = False and so ack_is_disable == False" ) - AckIsDisable = False + AckIsDisable = False if self.pluginconf.pluginConf["ForceAPSAck"] else AckIsDisable try: task = asyncio.create_task( @@ -566,28 +573,28 @@ async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): except (asyncio.TimeoutError, asyncio.exceptions.TimeoutError) as e: self.log.logging("TransportZigpy", "Log", f"process_raw_command: TimeoutError {destination} {Profile} {Cluster} {payload}") - error_msg = "%s" % e + error_msg = str(e) result = 0xB6 except (asyncio.CancelledError, asyncio.exceptions.CancelledError) as e: self.log.logging("TransportZigpy", "Log", f"process_raw_command: CancelledError {destination} {Profile} {Cluster} {payload}") - error_msg = "%s" % e + error_msg = str(e) result = 0xB6 except AttributeError as e: self.log.logging("TransportZigpy", "Log", f"process_raw_command: AttributeError {Profile} {type(Profile)} {Cluster} {type(Cluster)}") - error_msg = "%s" % e + error_msg = str(e) result = 0xB6 except DeliveryError as e: # This could be relevant to APS NACK after retry # Request failed after 5 attempts: - self.log.logging("TransportZigpy", "Debug", "process_raw_command - DeliveryError : %s" % e) - error_msg = "%s" % e + self.log.logging("TransportZigpy", "Debug", f"process_raw_command - DeliveryError : {e}") + error_msg = str(e) result = int(e.status) if hasattr(e, 'status') else 0xB6 if result: - self.log.logging( "TransportZigpy", "Debug", "ZigyTransport: process_raw_command completed NwkId: %s result: %s msg: %s" % (destination, result, error_msg), ) + self.log.logging("TransportZigpy", "Debug", f"ZigyTransport: process_raw_command completed NwkId: {destination} result: {result} msg: {error_msg}") return @@ -781,31 +788,34 @@ async def _limit_concurrency(self, destination, sequence): Async context manager that prevents devices from being overwhelmed by requests. Mainly a thin wrapper around `asyncio.Semaphore` that logs when it has to wait. """ - _ieee = str(destination.ieee) - _nwkid = destination.nwk.serialize()[::-1].hex() + ieee = str(destination.ieee) + nwkid = destination.nwk.serialize()[::-1].hex() - if _ieee not in self._concurrent_requests_semaphores_list: - self._concurrent_requests_semaphores_list[_ieee] = asyncio.Semaphore(MAX_CONCURRENT_REQUESTS_PER_DEVICE) - self._currently_waiting_requests_list[_ieee] = 0 + # Create semaphore if it doesn't exist for the given IEEE + if ieee not in self._concurrent_requests_semaphores_list: + self._concurrent_requests_semaphores_list[ieee] = asyncio.Semaphore(MAX_CONCURRENT_REQUESTS_PER_DEVICE) + self._currently_waiting_requests_list[ieee] = 0 start_time = time.monotonic() - was_locked = self._concurrent_requests_semaphores_list[_ieee].locked() + was_locked = self._concurrent_requests_semaphores_list[ieee].locked() + # Log when waiting due to max concurrency if was_locked: - self._currently_waiting_requests_list[_ieee] += 1 - self.log.logging( "TransportZigpy", "Debug", "Max concurrency reached for %s, delaying request %s (%s enqueued)" % ( - _nwkid, sequence, self._currently_waiting_requests_list[_ieee]), _nwkid, ) + self._currently_waiting_requests_list[ieee] += 1 + self.log.logging("TransportZigpy", "Debug", f"Max concurrency reached for {nwkid}, delaying request {sequence} ({self._currently_waiting_requests_list[ieee]} enqueued)", nwkid) try: - async with self._concurrent_requests_semaphores_list[_ieee]: + async with self._concurrent_requests_semaphores_list[ieee]: + # Log when a previously delayed request starts running if was_locked: - self.log.logging( "TransportZigpy", "Debug", "Previously delayed request %s is now running, " "delayed by %0.2f seconds for %s" % ( - sequence, (time.monotonic() - start_time), _nwkid), _nwkid, ) + elapsed_time = time.monotonic() - start_time + self.log.logging("TransportZigpy", "Debug", f"Previously delayed request {sequence} is now running, delayed by {elapsed_time:.2f} seconds for {nwkid}", nwkid) yield finally: if was_locked: - self._currently_waiting_requests_list[_ieee] -= 1 + # Decrement the waiting count if a request is processed + self._currently_waiting_requests_list[ieee] -= 1 def specific_endpoints(self): From 8e3082d4e97622318445126150abb64d21f2fb09 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 6 Apr 2024 22:07:51 +0200 Subject: [PATCH 190/301] Plugin wip-develop version 7.2.057 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index b6f139338..cd5e219d2 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.056"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.057"} \ No newline at end of file From 503aecae689017794a4e5937a5e3223fd48a8f07 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sat, 6 Apr 2024 22:12:22 +0200 Subject: [PATCH 191/301] Adding MacOs hotkey on WebUI dashboard ( z+i+g ) (#1726) --- www/z4d/index.html | 2 +- www/z4d/main.66cd2ebacafbbb03.js | 1 + www/z4d/main.8ee40e8b0b699ec4.js | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 www/z4d/main.66cd2ebacafbbb03.js delete mode 100644 www/z4d/main.8ee40e8b0b699ec4.js diff --git a/www/z4d/index.html b/www/z4d/index.html index a75bd13ad..9d6c05843 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -24,5 +24,5 @@

    This page requires JavaScript to work properly. Please enable JavaScript in your browser.

    - + diff --git a/www/z4d/main.66cd2ebacafbbb03.js b/www/z4d/main.66cd2ebacafbbb03.js new file mode 100644 index 000000000..339d9eb9a --- /dev/null +++ b/www/z4d/main.66cd2ebacafbbb03.js @@ -0,0 +1 @@ +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"Param\xe8tres de l\'objet","device.byname.parameter.popover.text":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet. Vert indique que les param\xe8tres ont \xe9t\xe9 pris envoy\xe9 \xe0 l\'objet, Orange indique que les param\xe8tres n\'ont pas encore \xe9t\xe9 envoy\xe9","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Active l\'utilisation du scan de topologie zigpy","ZigpyTopologyReportAutoBackup":"Sauvegarde les scan topologie interne zigpy"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:["alt.z","z>i>g"],refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Mt=gt&&Ve||new Map;qe.forEach((Pt,Wt)=>{let Zt=Wt,hi=Pt;if("offset"!==Wt)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Wt);break;case Z.kp:hi=m.get(Wt);break;default:hi=c.normalizeStyleValue(Wt,Zt,hi,W)}Mt.set(Zt,hi)}),gt||ce.push(Mt),Ve=Mt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=xs(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=xs(m);c.style[W]=""})}function Qt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function xs(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function Gn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Mi=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class _s extends Te{normalizePropertyName(v,i){return xs(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Mi.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const Mn="*";const nr=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=nr.has(c)||St.has(c),m=nr.has(v)||St.has(v);return(W,ce)=>{let De=c==Mn||c==W,Ve=v==Mn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?nr.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?nr.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),Gn(this,Qt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=Gn(this,Qt(v.animation),i),W=function Br(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function mo(c,v,i){if(":"==c[0]){const qe=function Kr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=Mn||De!=Mn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>Gn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=Gn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return ss(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=ss(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return ss(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Mt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Mt=!1),ce=gt.startTime),Mt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function di(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(pi=>{const Ci=this._makeStyleAst(pi,i);let gi=null!=Ci.offset?Ci.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(Ci.styles),ki=0;return null!=gi&&(ce++,ki=Ci.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?Ci==Wt?1:Pt*Ci:De[Ci],ki=gi*Xt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(pi,i),pi.offset=gi,m.styles.push(pi)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:Gn(this,Qt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=Gn(this,Qt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:Gn(this,Qt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function ss(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const er=new RegExp(":enter","g"),Zr=new RegExp(":leave","g");function sr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Mt=new Ki(v,i,et,W,ce,gt,[]);Mt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Mt.currentTimeline.delayNextStep(Pt),Mt.currentTimeline.setStyles([De],null,Mt.errors,qe),Gn(this,m,Mt);const Wt=Mt.timelines.filter(Zt=>Zt.containsAnimation());if(Wt.length&&Ve.size){let Zt;for(let hi=Wt.length-1;hi>=0;hi--){const Xt=Wt[hi];if(Xt.element===i){Zt=Xt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Mt.errors,qe)}return Wt.length?Wt.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),Gn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=jr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>Gn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),Gn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=jr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Mt=i.createSubContext(v.options,et);ce&&Mt.delayNextStep(ce),et===i.element&&(qe=Mt.currentTimeline),Gn(this,v.animation,Mt),Mt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Mt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Mt=gt.currentTime;Gn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Mt+(W.startTime-m.currentTimeline.startTime)}}const jr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=jr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=jr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new sc(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(er,"."+this._enterClassName)).replace(Zr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Mt)=>{gt===Z.FX?v.add(Mt):gt===Z.kp&&i.add(Mt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class sc extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",ur(Ve)),ce.push(et);const gt=v.length-1;for(let Mt=1;Mt<=gt;Mt++){let Pt=new Map(v[Mt]);const Wt=Pt.get("offset");Pt.set("offset",ur((i+Wt*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function ur(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Mt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Mt,errors:Pt}}const La={};class qr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Zo(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Mt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Mt),hi=qe&&qe.params||La,Xt=this.buildStyles(W,hi,Mt),pi=new Set,Ci=new Map,gi=new Map,ki="void"===W,Bi={params:rl(hi,Pt),delay:this.ast.options?.delay},Di=gt?[]:sr(v,i,this.ast.animation,ce,De,Zt,Xt,Bi,et,Mt);let on=0;return Di.forEach(ln=>{on=Math.max(ln.duration+ln.delay,on)}),Mt.length?Pa(i,this._triggerName,m,W,ki,Zt,Xt,[],[],Ci,gi,on,Mt):(Di.forEach(ln=>{const ps=ln.element,Nn=N(Ci,ps,new Set);ln.preStyleProps.forEach(Un=>Nn.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&pi.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Xt,Di,[...pi.values()],Ci,gi,on))}}function rl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=rl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class ol{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new qr(v,W,this.states))}),this.fallbackTransition=function al(c,v,i){return new qr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=sr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Mt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Mt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Mt)=>{gt.forEach((Pt,Wt)=>{gt.set(Wt,this._driver.computeStyle(Mt,Wt,Z.kp))})});const et=se(De.map(gt=>{const Mt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Mt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ll="ng-animate-queued",Ra="ng-animate-disabled",kr=[],ga={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Oo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const Vr="void",Io=new qi(Vr);class ma{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,rr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function hl(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(rr(v,Qe),rr(v,Qe+"-"+i),Ve.set(i,Io)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ba(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(rr(v,Qe),rr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Io),et.value!==Vr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Xt),_t(v,pi)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Wt=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Wt){if(!W)return;Wt=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Wt,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(rr(v,ll),De.onStart(()=>{cs(v,ll)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Xt=this._engine.playersByElement.get(v);if(Xt){let pi=Xt.indexOf(De);pi>=0&&Xt.splice(pi,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,Vr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Io,gt=new qi(Vr),Mt=new ba(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Mt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===ga)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){rr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class vo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ma(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(tr(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!tr(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),rr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(tr(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return tr(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=ga,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>rr(Wi,ji))});const Xt=[],pi=new Set,Ci=new Set;for(let yi=0;yipi.add(Wi)):Ci.add(Ei))}const gi=new Map,ki=Mr(Pt,Array.from(pi));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>rr(Wi,ji))}),v.push(()=>{Wt.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Xt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Di=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Bn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const ts=Bn[Us];if(ts&&ts.setForMove){if(ts.previousTriggersValues&&ts.previousTriggersValues.has(ji.triggerName)){const Yr=ts.previousTriggersValues.get(ji.triggerName),Oi=this.statesByElement.get(ji.element);if(Oi&&Oi.has(ji.triggerName)){const fn=Oi.get(ji.triggerName);fn.value=Yr,Oi.set(ji.triggerName,fn)}}return void Wi.destroy()}}const es=!Mt||!this.driver.containsElement(Mt,Bn),Wn=gi.get(Bn),go=Zt.get(Bn),as=this._buildInstruction(ji,m,go,Wn,es);if(as.errors&&as.errors.length)return void Di.push(as);if(es)return Wi.onStart(()=>wt(Bn,as.fromStyles)),Wi.onDestroy(()=>_t(Bn,as.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Bn,as.fromStyles)),Wi.onDestroy(()=>_t(Bn,as.toStyles)),void W.push(Wi);const Xr=[];as.timelines.forEach(ts=>{ts.stretchStartingKeyframe=!0,this.disabledNodes.has(ts.element)||Xr.push(ts)}),as.timelines=Xr,m.append(Bn,as.timelines),De.push({instruction:as,player:Wi,element:Bn}),as.queriedElements.forEach(ts=>N(Ve,ts,[]).push(Wi)),as.preStyleProps.forEach((ts,Yr)=>{if(ts.size){let Oi=qe.get(Yr);Oi||qe.set(Yr,Oi=new Set),ts.forEach((fn,zn)=>Oi.add(zn))}}),as.postStyleProps.forEach((ts,Yr)=>{let Oi=et.get(Yr);Oi||et.set(Yr,Oi=new Set),ts.forEach((fn,zn)=>Oi.add(zn))})});if(Di.length){const yi=[];Di.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const on=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,on))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(on,Ei,[]).push(Wi),Wi.destroy()})});const ps=Xt.filter(yi=>Po(yi,qe,et)),Nn=new Map;dl(Nn,this.driver,Ci,et,Z.kp).forEach(yi=>{Po(yi,qe,et)&&ps.push(yi)});const Un=new Map;Wt.forEach((yi,Ei)=>{dl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Nn.get(yi),ji=Un.get(yi);Nn.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Js={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Bn=Js;if(ln.size>1){let Wn=Ei;const go=[];for(;Wn=Wn.parentNode;){const as=ln.get(Wn);if(as){Bn=as;break}go.push(Wn)}go.forEach(as=>ln.set(as,Bn))}const es=this._buildAnimation(ji.namespaceId,Wi,on,ce,Un,Nn);if(ji.setRealPlayer(es),Bn===Js)Ri.push(ji);else{const Wn=this.playersByElement.get(Bn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!es.destroyed);Bn.length?Dr(this,Ei,Bn):this.processLeaveNode(Ei)}return Xt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==Vr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Mt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Wt=>{const Zt=Wt.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Wt.destroy(),Mt.push(Wt)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Mt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Xt=hi[Us];if(Xt&&Xt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const pi=hi!==qe,Ci=function qo(c){const v=[];return va(c,v),v}((m.get(hi)||kr).map(on=>on.getRealPlayer())).filter(on=>!!on.element&&on.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Di=this._buildPlayer(Zt,Bi,Ci);if(Zt.subTimeline&&W&&Mt.add(hi),pi){const on=new ba(v,Ve,hi);on.setRealPlayer(Di),et.push(on)}return Di});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function cl(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>rr(Zt,kt));const Wt=se(Pt);return Wt.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Mt.forEach(Zt=>{N(W,Zt,[]).push(Wt)}),Wt}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ba{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function tr(c){return c&&1===c.nodeType}function zr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function dl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(zr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Mt=>{const Pt=v.computeStyle(et,Mt,W);gt.set(Mt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>zr(qe,ce[Ve++])),De}function Mr(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function rr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Dr(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function va(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new vo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function Qr(c,v,i){return new ol(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class ya{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=ya.initialStylesByElement.get(v);W||ya.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(ya.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Ys(c){let v=null;return c.forEach((i,m)=>{(function Jr(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Gr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class eo{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Wt=>Wt instanceof Gr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Wt=>{Wt.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Mt=function Dt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Wt=>new Map(Wt));Mt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Mt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Ys(v[0]),v.length>1&&(m=Ys(v[v.length-1]))):v instanceof Map&&(i=Ys(v)),i||m?new ya(c,i,m):null}(v,Mt);return new Gr(v,Mt,qe,Pt)}}const Lo="@.disabled";class xa{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Lo?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class Qo extends xa{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Lo?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function yo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function ul(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Ro{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new xa("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new Qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Qi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new _s}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Qi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Ro(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new eo},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Er=He(38117),Zs=He(93887),Ar=He(20546),or=He(88652),Ir=He(19664),Vn=He(37542),pr=He(93331),ea=He(7673),oc=He(33669),Rl=He(27468),Yh=He(86648),Kh=He(84572),Dc=He(91986),io=He(5964),Zh=He(23294),Va=He(25558),Or=He(96354),Ec=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),xo=He(73703);const qs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),pl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},fl=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Vn.PI),i=(0,e.WQX)(qs,{optional:!0})||{};return{...pl,...i,enableLinkTracking:v,disabled:c}}}),gl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Ac(c){return{provide:gl,multi:!0,useClass:c}}function ac(c){return c?c.map(Ac):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const Bl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new ir((0,e.WQX)(M.hE))});class ir{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,ea.of)(this.title.getTitle())}}const Lc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new _a((0,e.WQX)(fl),(0,e.WQX)(Qi.kB,{optional:!0}),(0,e.WQX)(Qi.hb))});class _a{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,ea.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Fo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Fs(c){return c instanceof pr.wF}function Bs(c){return"string"==typeof c?new RegExp(c):c}let _o=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Vn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?oc.D:(0,Dc.c)(this.config.delay);this.router.events.pipe((0,io.p)(Fs),(0,io.p)(function bl(c){const v=function ta(c){return c?Array.isArray(c)?c.map(Bs):[Bs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Nl(c,v){return(0,Zh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Or.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ec.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Pc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Rl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,ea.of)(void 0):(0,Yh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,xo.u)(void 0),(0,Ss.U)(void 0)):(0,ea.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,ea.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Kh.z)([m,W]).pipe((0,Or.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(pr.Ix),e.KVO(fl),e.KVO(Bl),e.KVO(Lc),e.KVO(Vn.kA),e.KVO(gl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),jl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:qs,useValue:i},ac(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(_o),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Rc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Vn.HU,useValue:!0}]})}return c})(),Rc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:qs,useValue:i},ac(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(_o),e.KVO(jl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Vn.HU,useValue:!0}]})}return c})();var vl=He(45794),_r=He(41584),Ga=He(39974),ia=He(54360),Hr=He(58750);function na(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?oc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ia._)(De,Mt=>{W&&(Ve=0),De.next(Mt)},void 0,Mt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Wt="number"==typeof m?(0,_r.O)(m):(0,Hr.Tg)(m(Mt,Ve)),Zt=(0,ia._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Wt.subscribe(Zt)}else Pt()}else De.error(Mt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),sa=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Pi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),Qn=()=>["/admin/firmware"],os=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ns(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function js(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ns,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Pr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Hn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,os)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function ui(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Or.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(vl.tw),e.rXU(Er.W4),e.rXU(Ke.G),e.rXU(Ir.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,js,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Pr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Hn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,ui,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Pi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,Qn)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Qi.Sq,Qi.bT,Ir.Mm,or.$G,or.tg,or.do,or.U0,or.ZM,at.Zm,at.BC,at.vS,pr.Wk,pr.wQ,Ir.D9],styles:[".navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function ar(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function fr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function wo(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,fr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Bo(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function cc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,cc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Sa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function Vl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Sa,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function To(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function hc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,ar,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,Ta,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,wo,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Bo,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,Vl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,To,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function ka(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function jo(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let yl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Rl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Or.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.fork$),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Vn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,hc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,ka,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,jo,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Qi.YU,Qi.bT,Ir.Mm,or.ZM,Qi.vh,Ir.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[pr.n3,Yn,yl]})}return c})();class rn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const dc=[rn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let xl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[pr.iI.forRoot(dc,{preloadingStrategy:pr.Kp}),pr.iI]})}return c})();var Vo=He(57786),uc=He(73028),_l=He(5779),Vs=He(21413),pc=He(33726),gr=He(983),zs=He(71985),zl=He(70152),ra=He(70980);function Zn(){return["Mac","iPhone","iPad"].some(v=>navigator.userAgent.includes(v))?"apple":"pc"}function wl(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let Qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new Vs.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=wl(W.keys,Zn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,pc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,zl.B)(this.sequenceDebounce),(0,uc.Z)(()=>{const gt=et;et="";const Mt=this.sequenceMaps.get(Ve);if(Mt.hotkeyMap.has(gt)){const Pt=Mt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,ea.of)(Pt.hotkey)}return gr.w}))},W={...this.defaults,...i};let ce=wl(W.keys,Zn());return(()=>{const Ve={subject:new Vs.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,ea.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Mt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Mt)}return Ve.subject.asObservable()})().pipe((0,sa.Q)(this.dispose.pipe((0,io.p)(Ve=>Ve===ce))),(0,io.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,ra.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=wl(m.keys,Zn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,ea.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new zs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,sa.Q)(this.dispose.pipe((0,io.p)(De=>De===W))))}removeShortcuts(i){(function qh(c){return Array.isArray(c)?c:[c]})(i).map(W=>wl(W,Zn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Qi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();const Re=new Er.Vy("App");let Ue=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Ar.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Ar.c.production&&Er.Vy.enableProductionMode(),Re.debug("init"),this.i18nService.init(Ar.c.defaultLanguage,Ar.c.supportedLanguages),this.subs.sink=(0,Rl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.keysBoundActive.forEach(i=>{this.subs.add(this.hotkeys.addSequenceShortcut({keys:i}).subscribe(()=>{this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))})}setTitle(){const i=this.router.events.pipe((0,io.p)(m=>m instanceof pr.wF));(0,Vo.h)(this.translateService.onLangChange,i).pipe((0,Or.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,io.p)(m=>"primary"===m.outlet),(0,uc.Z)(m=>m.data),(0,Er.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(pr.Ix),e.rXU(pr.nX),e.rXU(M.hE),e.rXU(Ir.c$),e.rXU(Ke.G),e.rXU(Er.W4),e.rXU(ut.d),e.rXU(_l.r1),e.rXU(Qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[pr.n3]})}return c})();var Be=He(31635);class Ii{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class vn extends Ii{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class In extends Ii{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Qs extends Ii{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Gl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof vn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof In?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Qs?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Wa extends Gl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Pd(){}function no(c){return null==c?Pd:function(){return this.querySelector(c)}}function Ku(){return[]}function Zu(c){return null==c?Ku:function(){return this.querySelectorAll(c)}}function id(c){return function(){return this.matches(c)}}function Bc(c){return function(v){return v.matches(c)}}var so=Array.prototype.find;function vh(){return this.firstElementChild}var zo=Array.prototype.filter;function Vc(){return Array.from(this.children)}function Rd(c){return new Array(c.length)}function yh(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function xh(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}yh.prototype={constructor:yh,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var rd="http://www.w3.org/1999/xhtml";const ni={svg:"http://www.w3.org/2000/svg",xhtml:rd,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function pn(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),ni.hasOwnProperty(v)?{space:ni[v],local:c}:c}function gc(c){return function(){this.removeAttribute(c)}}function zc(c){return function(){this.removeAttributeNS(c.space,c.local)}}function hs(c,v){return function(){this.setAttribute(c,v)}}function Gc(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function aa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function od(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function Vf(c){return function(){this.style.removeProperty(c)}}function mm(c,v,i){return function(){this.style.setProperty(c,v,i)}}function ep(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function So(c,v){return c.style.getPropertyValue(v)||od(c).getComputedStyle(c,null).getPropertyValue(v)}function tp(c){return function(){delete this[c]}}function Ma(c,v){return function(){this[c]=v}}function Sl(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function jd(c){return c.trim().split(/^|\s+/)}function Vd(c){return c.classList||new ad(c)}function ad(c){this._node=c,this._names=jd(c.getAttribute("class")||"")}function wh(c,v){for(var i=Vd(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var op=[null];function Lr(c,v){this._groups=c,this._parents=v}function Wl(){return new Lr([[document.documentElement]],op)}Lr.prototype=Wl.prototype={constructor:Lr,select:function Ld(c){"function"!=typeof c&&(c=no(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=Ci+1);!(Bi=Xt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function sd(c){function v(Mt,Pt){return Mt&&Pt?c(Mt.__data__,Pt.__data__):!Mt-!Pt}c||(c=jf);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?Vf:"function"==typeof v?ep:mm)(c,v,i??"")):So(this.node(),c)},property:function zf(c,v){return arguments.length>1?this.each((null==v?tp:"function"==typeof v?Sl:Ma)(c,v)):this.node()[c]},classed:function Sh(c,v){var i=jd(c+"");if(arguments.length<2){for(var m=Vd(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?$c:bc,W=0;W{}};function lp(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?ql(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?ql(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=hp.exec(c))?new ao(v[1],v[2],v[3],1):(v=Kl.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=vc.exec(c))?ql(v[1],v[2],v[3],v[4]):(v=lr.exec(c))?ql(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=dp.exec(c))?Xf(v[1],v[2]/100,v[3]/100,1):(v=qd.exec(c))?Xf(v[1],v[2]/100,v[3]/100,v[4]):Nh.hasOwnProperty(c)?eu(Nh[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function eu(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function ql(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function tu(c,v,i,m){return 1===arguments.length?function $f(c){return c instanceof Xl||(c=Zl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${eh(this.r)}${eh(this.g)}${eh(this.b)}`}function fp(){const c=Fh(this.opacity);return`${1===c?"rgb(":"rgba("}${Jc(this.r)}, ${Jc(this.g)}, ${Jc(this.b)}${1===c?")":`, ${c})`}`}function Fh(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function Jc(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function eh(c){return((c=Jc(c))<16?"0":"")+c.toString(16)}function Xf(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ws(c,v,i,m)}function gp(c){if(c instanceof Ws)return new Ws(c.h,c.s,c.l,c.opacity);if(c instanceof Xl||(c=Zl(c)),!c)return new Ws;if(c instanceof Ws)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ws(De,Ve,qe,c.opacity)}function Ws(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function bp(c){return(c=(c||0)%360)<0?c+360:c}function fd(c){return Math.max(0,Math.min(1,c||0))}function Yf(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function nu(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}Lh(Xl,Zl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:Qd,formatHex:Qd,formatHex8:function Jd(){return this.rgb().formatHex8()},formatHsl:function Qc(){return gp(this).formatHsl()},formatRgb:up,toString:up}),Lh(ao,tu,Rh(Xl,{brighter(c){return c=null==c?qc:Math.pow(qc,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(Jc(this.r),Jc(this.g),Jc(this.b),Fh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function pp(){return`#${eh(this.r)}${eh(this.g)}${eh(this.b)}${eh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:fp,toString:fp})),Lh(Ws,function mp(c,v,i,m){return 1===arguments.length?gp(c):new Ws(c,v,i,m??1)},Rh(Xl,{brighter(c){return c=null==c?qc:Math.pow(qc,c),new Ws(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ws(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(Yf(c>=240?c-240:c+120,W,m),Yf(c,W,m),Yf(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ws(bp(this.h),fd(this.s),fd(this.l),Fh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=Fh(this.opacity);return`${1===c?"hsl(":"hsla("}${bp(this.h)}, ${100*fd(this.s)}%, ${100*fd(this.l)}%${1===c?")":`, ${c})`}`}}));const Dl=c=>()=>c;function Zf(c,v){var i=v-c;return i?function vp(c,v){return function(i){return c+i*v}}(c,i):Dl(isNaN(c)?v:c)}const Bh=function c(v){var i=function yp(c){return 1==(c=+c)?Zf:function(v,i){return i-v?function bm(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):Dl(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=tu(W)).r,(ce=tu(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=Zf(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function qf(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return nu((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Aa(m,W)})),i=ou.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--ih}()}finally{ih=0,function Vt(){for(var c,i,v=zh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:zh=i);sh=c,Ut(m)}(),xc=0}}function ft(){var c=rh.now(),v=c-cu;v>lu&&(Gh-=v,cu=c)}function Ut(c){ih||(ha&&(ha=clearTimeout(ha)),c-xc>24?(c<1/0&&(ha=setTimeout(it,c-rh.now()-Gh)),nh&&(nh=clearInterval(nh))):(nh||(cu=rh.now(),nh=setInterval(ft,lu)),ih=1,hu(it)))}function ei(c,v,i){var m=new ae;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}ae.prototype=we.prototype={constructor:ae,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?be():+i)+(null==v?0:+v),!this._next&&sh!==this&&(sh?sh._next=this:zh=this,sh=this),this._call=c,this._time=i,Ut()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ut())}};var ii=Yd("start","end","cancel","interrupt"),wi=[],_i=0,sn=3;function vs(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Mt,Pt,Wt;if(1!==i.state)return qe();for(gt in m)if((Wt=m[gt]).name===i.name){if(Wt.state===sn)return ei(De);4===Wt.state?(Wt.state=6,Wt.timer.stop(),Wt.on.call("interrupt",c,c.__data__,Wt.index,Wt.group),delete m[gt]):+gt_i)throw new Error("too late; already scheduled");return i}function En(c,v){var i=An(c,v);if(i.state>sn)throw new Error("too late; already running");return i}function An(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var cr,Ns=180/Math.PI,mr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Mo(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Mt.push(W(Mt)+"rotate(",null,m)-2,x:Aa(et,gt)})):gt&&Mt.push(W(Mt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Mt,Pt),function Ve(et,gt,Mt,Pt){et!==gt?Pt.push({i:Mt.push(W(Mt)+"skewX(",null,m)-2,x:Aa(et,gt)}):gt&&Mt.push(W(Mt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Mt,Pt),function qe(et,gt,Mt,Pt,Wt,Zt){if(et!==Mt||gt!==Pt){var hi=Wt.push(W(Wt)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Aa(et,Mt)},{i:hi-2,x:Aa(gt,Pt)})}else(1!==Mt||1!==Pt)&&Wt.push(W(Wt)+"scale("+Mt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Mt,Pt),et=gt=null,function(Wt){for(var Xt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Rn:En;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function nn(c,v){var i=pn(c),m="transform"===i?ue:ai;return this.attrTween(c,"function"==typeof v?(i.local?wn:tn)(i,m,zt(this,"attr."+c,v)):null==v?(i.local?Li:oi)(i):(i.local?Yi:Zi)(i,m,v))},attrTween:function lo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=pn(c);return this.tween(i,(m.local?$s:hr)(m,v))},style:function J0(c,v,i){var m="transform"==(c+="")?ne:ai;return null==v?this.styleTween(c,function bx(c,v){var i,m,W;return function(){var ce=So(this,c),De=(this.style.removeProperty(c),So(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Sp(c)):"function"==typeof v?this.styleTween(c,function kp(c,v,i){var m,W,ce;return function(){var De=So(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=So(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,zt(this,"style."+c,v))).each(function Q0(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=En(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Sp(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function ah(c,v,i){var m,ce,W=i+"";return function(){var De=So(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Sw(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Tw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function eb(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function _m(c){return this.tween("text","function"==typeof c?function xm(c){return function(){var v=c(this);this.textContent=v??""}}(zt(this,"text",c)):function kw(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function tb(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function Dw(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Mw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function px(){return this.on("end.remove",function ux(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function Tt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=An(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Da.prototype.transition=function wm(c){var v,i;c instanceof lh?(v=c._id,c=c._name):(v=Cm(),(i=ig).time=be(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function $o(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function vd(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Mt],qe)<0?et=Mt+1:gt=Mt}while(etbd(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===bd||c===$o?c:hb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Mt=W(Ve,qe,et,gt-1);return Mt>et&&m(Ve[Mt-1],qe)>-m(Ve[Mt],qe)?Mt-1:Mt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Mt],qe)<=0?et=Mt+1:gt=Mt}while(et=db?10:ce>=Ex?5:ce>=ub?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etco(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(Ap.setTime(+ce),gb.setTime(+De),c(Ap),c(gb),Math.floor(i(Ap,gb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Am=co(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Am.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?co(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Am:null);const Ip=co(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*hh)},(c,v)=>(v-c)/hh,c=>c.getUTCSeconds()),fu=co(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*hh)},(c,v)=>{c.setTime(+c+v*Al)},(c,v)=>(v-c)/Al,c=>c.getMinutes()),lg=co(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Al)},(c,v)=>(v-c)/Al,c=>c.getUTCMinutes()),cg=co(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*hh-c.getMinutes()*Al)},(c,v)=>{c.setTime(+c+v*dh)},(c,v)=>(v-c)/dh,c=>c.getHours()),Om=co(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*dh)},(c,v)=>(v-c)/dh,c=>c.getUTCHours()),Uh=co(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Al)/uh,c=>c.getDate()-1),Rx=(co(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/uh,c=>c.getUTCDate()-1),co(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/uh,c=>Math.floor(c/uh)));function gu(c){return co(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Al)/Ep)}const mb=gu(0);function xd(c){return co(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/Ep)}gu(1),gu(2),gu(3),gu(4),gu(5),gu(6);const Nm=xd(0),ug=(xd(1),xd(2),xd(3),xd(4),xd(5),xd(6),co(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),Gx=co(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),pg=co(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());pg.every=c=>isFinite(c=Math.floor(c))&&c>0?co(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const fg=co(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function gg(c,v,i,m,W,ce){const De=[[Ip,1,hh],[Ip,5,5e3],[Ip,15,15e3],[Ip,30,3e4],[ce,1,Al],[ce,5,5*Al],[ce,15,15*Al],[ce,30,30*Al],[W,1,dh],[W,3,3*dh],[W,6,6*dh],[W,12,12*dh],[m,1,uh],[m,2,2*uh],[i,1,Ep],[v,1,Ax],[v,3,3*Ax],[c,1,fb]];function qe(et,gt,Mt){const Pt=Math.abs(gt-et)/Mt,Wt=vd(([,,Xt])=>Xt).right(De,Pt);if(Wt===De.length)return c.every(ag(et/fb,gt/fb,Mt));if(0===Wt)return Am.every(Math.max(ag(et,gt,Mt),1));const[Zt,hi]=De[Pt/De[Wt-1][2]isFinite(c=Math.floor(c))&&c>0?co(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Wx,Bm]=gg(fg,Gx,Nm,Rx,Om,lg),[Lp,Tb]=gg(pg,ug,mb,Uh,cg,fu);var Rp=new Date,_d=new Date;function wc(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return Rp.setTime(+ce),_d.setTime(+De),c(Rp),c(_d),Math.floor(i(Rp,_d))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const vu=864e5,kb=7*vu;function Wh(c){return wc(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/kb})}var jm=Wh(0),kn=Wh(1),Ql=(Wh(2),Wh(3),Wh(4));const vg=(Wh(5),Wh(6),wc(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/vu},function(c){return c.getUTCDate()-1}));function ph(c){return wc(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/kb})}var Pb=ph(0),yg=ph(1),yu=(ph(2),ph(3),ph(4));const Jx=(ph(5),ph(6),wc(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/vu,c=>c.getDate()-1));var xg=wc(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});xg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?wc(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const Fp=xg;var zm=wc(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});zm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?wc(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const xu=zm;function Gm(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function Bp(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function jp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Fb={"-":"",_:" ",0:"0"},ho=/^\s*\d+/,t_=/^%/,Tc=/[\\^$*+?|[\]().{}]/g;function ds(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Bb(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function _g(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function Zw(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=ho.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Wm(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Cg(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function $m(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function fh(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function Vb(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function n_(c,v,i){var m=ho.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function wg(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function s_(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function zp(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function zb(c,v,i){var m=ho.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Cu(c,v,i){var m=ho.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Gp(c,v,i){var m=t_.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Xm(c,v,i){var m=ho.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Hp(c,v,i){var m=ho.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ds(c.getDate(),v,2)}function Gb(c,v){return ds(c.getHours(),v,2)}function r_(c,v){return ds(c.getHours()%12||12,v,2)}function o_(c,v){return ds(1+Jx.count(Fp(c),c),v,3)}function Hb(c,v){return ds(c.getMilliseconds(),v,3)}function a_(c,v){return Hb(c,v)+"000"}function l_(c,v){return ds(c.getMonth()+1,v,2)}function c_(c,v){return ds(c.getMinutes(),v,2)}function Ub(c,v){return ds(c.getSeconds(),v,2)}function Wb(c){var v=c.getDay();return 0===v?7:v}function $b(c,v){return ds(Pb.count(Fp(c)-1,c),v,2)}function Km(c){var v=c.getDay();return v>=4||0===v?yu(c):yu.ceil(c)}function Tg(c,v){return c=Km(c),ds(yu.count(Fp(c),c)+(4===Fp(c).getDay()),v,2)}function h_(c){return c.getDay()}function qw(c,v){return ds(yg.count(Fp(c)-1,c),v,2)}function d_(c,v){return ds(c.getFullYear()%100,v,2)}function u_(c,v){return ds((c=Km(c)).getFullYear()%100,v,2)}function Xb(c,v){return ds(c.getFullYear()%1e4,v,4)}function p_(c,v){var i=c.getDay();return ds((c=i>=4||0===i?yu(c):yu.ceil(c)).getFullYear()%1e4,v,4)}function f_(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ds(v/60|0,"0",2)+ds(v%60,"0",2)}function Zm(c,v){return ds(c.getUTCDate(),v,2)}function qm(c,v){return ds(c.getUTCHours(),v,2)}function Yb(c,v){return ds(c.getUTCHours()%12||12,v,2)}function Up(c,v){return ds(1+vg.count(xu(c),c),v,3)}function wu(c,v){return ds(c.getUTCMilliseconds(),v,3)}function Wp(c,v){return wu(c,v)+"000"}function g_(c,v){return ds(c.getUTCMonth()+1,v,2)}function m_(c,v){return ds(c.getUTCMinutes(),v,2)}function b_(c,v){return ds(c.getUTCSeconds(),v,2)}function Sg(c){var v=c.getUTCDay();return 0===v?7:v}function Qm(c,v){return ds(jm.count(xu(c)-1,c),v,2)}function Kb(c){var v=c.getUTCDay();return v>=4||0===v?Ql(c):Ql.ceil(c)}function Qw(c,v){return c=Kb(c),ds(Ql.count(xu(c),c)+(4===xu(c).getUTCDay()),v,2)}function Jw(c){return c.getUTCDay()}function v_(c,v){return ds(kn.count(xu(c)-1,c),v,2)}function y_(c,v){return ds(c.getUTCFullYear()%100,v,2)}function eT(c,v){return ds((c=Kb(c)).getUTCFullYear()%100,v,2)}function x_(c,v){return ds(c.getUTCFullYear()%1e4,v,4)}function tT(c,v){var i=c.getUTCDay();return ds((c=i>=4||0===i?Ql(c):Ql.ceil(c)).getUTCFullYear()%1e4,v,4)}function __(){return"+0000"}function Zb(){return"%"}function qb(c){return+c}function kg(c){return Math.floor(+c/1e3)}function ev(c){return null===c?NaN:+c}!function Jb(c){(function e_(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Vp(W),gt=_u(W),Mt=Vp(ce),Pt=_u(ce),Wt=Vp(De),Zt=_u(De),hi=Vp(Ve),Xt=_u(Ve),pi=Vp(qe),Ci=_u(qe),gi={a:function Ei(Oi){return De[Oi.getDay()]},A:function ji(Oi){return ce[Oi.getDay()]},b:function Wi(Oi){return qe[Oi.getMonth()]},B:function Bn(Oi){return Ve[Oi.getMonth()]},c:null,d:Ym,e:Ym,f:a_,g:u_,G:p_,H:Gb,I:r_,j:o_,L:Hb,m:l_,M:c_,p:function es(Oi){return W[+(Oi.getHours()>=12)]},q:function Wn(Oi){return 1+~~(Oi.getMonth()/3)},Q:qb,s:kg,S:Ub,u:Wb,U:$b,V:Tg,w:h_,W:qw,x:null,X:null,y:d_,Y:Xb,Z:f_,"%":Zb},ki={a:function go(Oi){return De[Oi.getUTCDay()]},A:function as(Oi){return ce[Oi.getUTCDay()]},b:function Xr(Oi){return qe[Oi.getUTCMonth()]},B:function Pl(Oi){return Ve[Oi.getUTCMonth()]},c:null,d:Zm,e:Zm,f:Wp,g:eT,G:tT,H:qm,I:Yb,j:Up,L:wu,m:g_,M:m_,p:function ts(Oi){return W[+(Oi.getUTCHours()>=12)]},q:function Yr(Oi){return 1+~~(Oi.getUTCMonth()/3)},Q:qb,s:kg,S:b_,u:Sg,U:Qm,V:Qw,w:Jw,W:v_,x:null,X:null,y:y_,Y:x_,Z:__,"%":Zb},Bi={a:function Nn(Oi,fn,zn){var xi=Wt.exec(fn.slice(zn));return xi?(Oi.w=Zt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},A:function Ui(Oi,fn,zn){var xi=Mt.exec(fn.slice(zn));return xi?(Oi.w=Pt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},b:function Un(Oi,fn,zn){var xi=pi.exec(fn.slice(zn));return xi?(Oi.m=Ci.get(xi[0].toLowerCase()),zn+xi[0].length):-1},B:function Ri(Oi,fn,zn){var xi=hi.exec(fn.slice(zn));return xi?(Oi.m=Xt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},c:function Ji(Oi,fn,zn){return ln(Oi,v,fn,zn)},d:Vb,e:Vb,f:Cu,g:Wm,G:Um,H:wg,I:wg,j:n_,L:zb,m:fh,M:s_,p:function ps(Oi,fn,zn){var xi=et.exec(fn.slice(zn));return xi?(Oi.p=gt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},q:$m,Q:Xm,s:Hp,S:zp,u:_g,U:Hm,V:Zw,w:Bb,W:jb,x:function Js(Oi,fn,zn){return ln(Oi,i,fn,zn)},X:function yi(Oi,fn,zn){return ln(Oi,m,fn,zn)},y:Wm,Y:Um,Z:Cg,"%":Gp};function Di(Oi,fn){return function(zn){var Ko,gn,dr,xi=[],br=-1,Es=0,Yo=Oi.length;for(zn instanceof Date||(zn=new Date(+zn));++br53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Yo=(Es=Bp(jp(xi.y,0,1))).getUTCDay(),Es=Yo>4||0===Yo?kn.ceil(Es):kn(Es),Es=vg.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Yo=(Es=Gm(jp(xi.y,0,1))).getDay(),Es=Yo>4||0===Yo?yg.ceil(Es):yg(Es),Es=Jx.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Yo="Z"in xi?Bp(jp(xi.y,0,1)).getUTCDay():Gm(jp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Yo+5)%7:xi.w+7*xi.U-(Yo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,Bp(xi)):Gm(xi)}}function ln(Oi,fn,zn,xi){for(var Ko,gn,br=0,Es=fn.length,Yo=zn.length;br=Yo)return-1;if(37===(Ko=fn.charCodeAt(br++))){if(Ko=fn.charAt(br++),!(gn=Bi[Ko in Fb?fn.charAt(br++):Ko])||(xi=gn(Oi,zn,xi))<0)return-1}else if(Ko!=zn.charCodeAt(xi++))return-1}return xi}return gi.x=Di(i,gi),gi.X=Di(m,gi),gi.c=Di(v,gi),ki.x=Di(i,ki),ki.X=Di(m,ki),ki.c=Di(v,ki),{format:function(Oi){var fn=Di(Oi+="",gi);return fn.toString=function(){return Oi},fn},parse:function(Oi){var fn=on(Oi+="",!1);return fn.toString=function(){return Oi},fn},utcFormat:function(Oi){var fn=Di(Oi+="",ki);return fn.toString=function(){return Oi},fn},utcParse:function(Oi){var fn=on(Oi+="",!0);return fn.toString=function(){return Oi},fn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const C_=vd(bd).right,Xp=(vd(ev),C_);function T_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function k_(c){return+c}var tv=[0,1];function Tu(c){return c}function Yp(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function S_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function M_(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Ag:M_,qe=et=null,Mt}function Mt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Mt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Aa)))(Pt)))},Mt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,k_),gt()):c.slice()},Mt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Mt.rangeRound=function(Pt){return v=Array.from(Pt),i=T_,gt()},Mt.clamp=function(Pt){return arguments.length?(De=!!Pt||Tu,gt()):De!==Tu},Mt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Mt.unknown=function(Pt){return arguments.length?(ce=Pt,Mt):ce},function(Pt,Wt){return m=Pt,W=Wt,gt()}}()(Tu,Tu)}function qp(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Su,A_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ig(c){if(!(v=A_.exec(c)))throw new Error("invalid format: "+c);var v;return new $h({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function $h(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function Pg(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Cd(c){return(c=Pg(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=Pg(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}Ig.prototype=$h.prototype,$h.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function Og(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function lv(c,v){var i=Pg(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Su=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+Pg(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function dv(c){return c}var Ja,e0,fv,Lg=Array.prototype.map,uv=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function L_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function pb(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=Em(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function Qp(){var c=iv();return c.copy=function(){return function Zp(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,Qp())},qp.apply(c,arguments),L_(c)}function Rg(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(Lg.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?dv:function sT(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(Lg.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Mt){var Pt=(Mt=Ig(Mt)).fill,Wt=Mt.align,Zt=Mt.sign,hi=Mt.symbol,Xt=Mt.zero,pi=Mt.width,Ci=Mt.comma,gi=Mt.precision,ki=Mt.trim,Bi=Mt.type;"n"===Bi?(Ci=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Xt||"0"===Pt&&"="===Wt)&&(Xt=!0,Pt="0",Wt="=");var Di="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",on="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Nn(Ui){var Ji,Js,yi,Un=Di,Ri=on;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function O_(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?uv[8+Su/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Js=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}Ci&&!Xt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Nn.toString=function(){return Mt+""},Nn}return{format:et,formatPrefix:function gt(Mt,Pt){var Wt=et(((Mt=Ig(Mt)).type="f",Mt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Cd(Pt)/3))),hi=Math.pow(10,-Zt),Xt=uv[8+Zt/3];return function(pi){return Wt(hi*pi)+Xt}}}}(c),e0=Ja.format,fv=Ja.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=Xh){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(Ng(this,v))}has(v){return super.has(Ng(this,v))}set(v,i){return super.set(function gv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function mv({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function Ng({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function Xh(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const s0=Symbol("implicit");function Jp(){var c=new n0,v=[],i=[],m=s0;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==s0)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return Jp(v,i).unknown(m)},qp.apply(W,arguments),W}function r0(){var ce,De,c=Jp().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Mt(){var Pt=v().length,Wt=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function gh(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?Td:c<=-1?-Td:Math.asin(c)}const l0=Math.PI,Sd=2*l0,kd=1e-6,B_=Sd-kd;function _v(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return _v;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;Wkd)if(Math.abs(Mt*qe-et*gt)>kd&&ce){let Wt=m-De,Zt=W-Ve,hi=qe*qe+et*et,Xt=Wt*Wt+Zt*Zt,pi=Math.sqrt(hi),Ci=Math.sqrt(Pt),gi=ce*Math.tan((l0-Math.acos((hi+Pt-Xt)/(2*pi*Ci)))/2),ki=gi/Ci,Bi=gi/pi;Math.abs(ki-1)>kd&&this._append`L${v+ki*gt},${i+ki*Mt}`,this._append`A${ce},${ce},0,0,${+(Mt*Wt>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Mt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>kd||Math.abs(this._y1-gt)>kd)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%Sd+Sd),Pt>B_?this._append`A${m},${m},0,1,${Mt},${v-Ve},${i-qe}A${m},${m},0,1,${Mt},${this._x1=et},${this._y1=gt}`:Pt>kd&&this._append`A${m},${m},0,${+(Pt>=l0)},${Mt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function jg(c){return c.innerRadius}function G_(c){return c.outerRadius}function H_(c){return c.startAngle}function Cv(c){return c.endAngle}function wv(c){return c&&c.padAngle}function sf(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/el(Ve*Ve+qe*qe),gt=et*qe,Mt=-et*Ve,Pt=c+gt,Wt=v+Mt,Zt=i+gt,hi=m+Mt,Xt=(Pt+Zt)/2,pi=(Wt+hi)/2,Ci=Zt-Pt,gi=hi-Wt,ki=Ci*Ci+gi*gi,Bi=W-ce,Di=Pt*hi-Zt*Wt,on=(gi<0?-1:1)*el(F_(0,Bi*Bi*ki-Di*Di)),ln=(Di*gi-Ci*on)/ki,ps=(-Di*Ci-gi*on)/ki,Nn=(Di*gi+Ci*on)/ki,Ui=(-Di*Ci+gi*on)/ki,Un=ln-Xt,Ri=ps-pi,Ji=Nn-Xt,Js=Ui-pi;return Un*Un+Ri*Ri>Ji*Ji+Js*Js&&(ln=Nn,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Mt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function h0(){var c=jg,v=G_,i=uo(0),m=null,W=H_,ce=Cv,De=wv,Ve=null,qe=function z_(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Bg(v)}(et);function et(){var gt,Mt,Pt=+c.apply(this,arguments),Wt=+v.apply(this,arguments),Zt=W.apply(this,arguments)-Td,hi=ce.apply(this,arguments)-Td,Xt=a0(hi-Zt),pi=hi>Zt;if(Ve||(Ve=gt=qe()),Wtpo)if(Xt>nf-po)Ve.moveTo(Wt*wd(Zt),Wt*Jl(Zt)),Ve.arc(0,0,Wt,Zt,hi,!pi),Pt>po&&(Ve.moveTo(Pt*wd(hi),Pt*Jl(hi)),Ve.arc(0,0,Pt,hi,Zt,pi));else{var Ri,Ji,Ci=Zt,gi=hi,ki=Zt,Bi=hi,Di=Xt,on=Xt,ln=De.apply(this,arguments)/2,ps=ln>po&&(m?+m.apply(this,arguments):el(Pt*Pt+Wt*Wt)),Nn=tf(a0(Wt-Pt)/2,+i.apply(this,arguments)),Ui=Nn,Un=Nn;if(ps>po){var Js=xv(ps/Pt*Jl(ln)),yi=xv(ps/Wt*Jl(ln));(Di-=2*Js)>po?(ki+=Js*=pi?1:-1,Bi-=Js):(Di=0,ki=Bi=(Zt+hi)/2),(on-=2*yi)>po?(Ci+=yi*=pi?1:-1,gi-=yi):(on=0,Ci=gi=(Zt+hi)/2)}var Ei=Wt*wd(Ci),ji=Wt*Jl(Ci),Wi=Pt*wd(Bi),Bn=Pt*Jl(Bi);if(Nn>po){var Xr,es=Wt*wd(gi),Wn=Wt*Jl(gi),go=Pt*wd(ki),as=Pt*Jl(ki);if(Xt1?0:c<-1?Fg:Math.acos(c)}((Pl*Yr+ts*Oi)/(el(Pl*Pl+ts*ts)*el(Yr*Yr+Oi*Oi)))/2),zn=el(Xr[0]*Xr[0]+Xr[1]*Xr[1]);Ui=tf(Nn,(Pt-zn)/(fn-1)),Un=tf(Nn,(Wt-zn)/(fn+1))}else Ui=Un=0}on>po?Un>po?(Ri=sf(go,as,Ei,ji,Wt,Un,pi),Ji=sf(es,Wn,Wi,Bn,Wt,Un,pi),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Unpo&&Di>po?Ui>po?(Ri=sf(Wi,Bn,es,Wn,Pt,-Ui,pi),Ji=sf(Ei,ji,go,as,Pt,-Ui,pi),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function Sv(c){return c}var X_=He(76021);const u0=["caretElm"],p0=c=>({model:c});function kv(c,v){}function f0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,kv,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,p0,i.context))}}function g0(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function Y_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function K_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Mv=["*"];function Z_(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function Dv(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const Vv=["ngx-charts-svg-radial-gradient",""];function c1(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const d1=["ngx-charts-count-up",""];function xT(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function Hv(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function _T(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function f1(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function Uv(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function v0(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function g1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,_T,1,2,"div",11)(3,f1,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,Uv,1,2,"div",14)(7,v0,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const zg=["tooltipTemplate"],af=(c,v)=>[c,v],dy=["ngx-charts-pie-label",""],Iu=["ngx-charts-pie-arc",""];function Ou(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Pu=["ngx-charts-pie-series",""];function Lu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Ru(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,Lu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function nC(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function Cy(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:nC(ce.value,c,v)}),this[W]}}}}var Jn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Jn||{});function Xg(c,v,i){return i===Jn.Top?c.top-7:i===Jn.Bottom?c.top+c.height-v.height+7:i===Jn.Center?c.top+c.height/2-v.height/2:void 0}function Yg(c,v,i){return i===Jn.Left?c.left-7:i===Jn.Right?c.left+c.width-v.width+7:i===Jn.Center?c.left+c.width/2-v.width/2:void 0}class ua{static calculateVerticalAlignment(v,i,m){let W=Xg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Jn.Top&&(ce=v.height/2-m.height/2+7),W===Jn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Jn.Center&&(ce=i.height/2-m.height/2);const De=Xg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Yg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Jn.Left&&(ce=v.width/2-m.width/2+7),W===Jn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Jn.Center&&(ce=i.width/2-m.width/2);const De=Yg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Jn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Jn.Left&&v.left-i.width-W<0&&(ce=!0),m===Jn.Top&&v.top-i.height-W<0&&(ce=!0),m===Jn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Jn.Right?(Ve=-7,De=ua.calculateVerticalCaret(m,i,W,ce)):v===Jn.Left?(Ve=i.width,De=ua.calculateVerticalCaret(m,i,W,ce)):v===Jn.Top?(De=i.height,Ve=ua.calculateHorizontalCaret(m,i,W,ce)):v===Jn.Bottom&&(De=-7,Ve=ua.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Jn.Right?(Ve=m.left+m.width+W,De=ua.calculateVerticalAlignment(m,i,ce)):v===Jn.Left?(Ve=m.left-i.width-W,De=ua.calculateVerticalAlignment(m,i,ce)):v===Jn.Top?(De=m.top-i.height-W,Ve=ua.calculateHorizontalAlignment(m,i,ce)):v===Jn.Bottom&&(De=m.top+m.height+W,Ve=ua.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(ua.shouldFlip(m,i,v,W)){if(v===Jn.Right)return Jn.Left;if(v===Jn.Left)return Jn.Right;if(v===Jn.Top)return Jn.Bottom;if(v===Jn.Bottom)return Jn.Top}return v}}let tc=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Qi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=ua.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=ua.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=ua.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(u0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,f0,2,4,"span",3)(5,g0,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Qi.bT,Qi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,Be.Cg)([Cy(100)],c.prototype,"onWindowResize",null),c})();class sC{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let ic=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function wy(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new Wa(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new vn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),tl=(()=>{class c extends sC{constructor(i){super(i),this.type=tc}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(ic))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Xo=function(c){return c.Right="right",c.Below="below",c}(Xo||{}),Nu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Nu||{}),xn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(xn||{});let Ty=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function _f(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Sy=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Kg=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=_f(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,Y_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,K_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Sy,Qi.bT,Qi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),Fu=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Xo,this.LegendType=Nu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Xo.Right)&&(i=this.legendType===Nu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Xo.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===xn.Linear?Nu.ScaleLegend:Nu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([tl]),e.OA$],ngContentSelectors:Mv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Z_,1,5,"ngx-charts-scale-legend",2)(4,Dv,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[Ty,Kg,Qi.bT],encapsulation:2,changeDetection:0}),c})(),rC=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function A0(c){return"[object Date]"===toString.call(c)}let ky=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=xn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Qi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new rC(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Qi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function Cf(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var Zg=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(Zg||{});let Dy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Qi.MD]]}),c})();var wf=function(c){return c.popover="popover",c.tooltip="tooltip",c}(wf||{}),Bu=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}(Bu||{});let I0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Jn.Top,this.tooltipAlignment=Jn.Center,this.tooltipType=wf.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=Bu.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===Bu.all||this.tooltipShowEvent===Bu.focus}get listensForHover(){return this.tooltipShowEvent===Bu.all||this.tooltipShowEvent===Bu.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(tl),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),Ey=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[ic,tl],imports:[[Qi.MD]]}),c})();const qg={};function Tf(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,qg[c]?Tf():(qg[c]=!0,c)}var nc=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(nc||{});let Py=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:Vv,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,c1,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Qi.Sq],encapsulation:2,changeDetection:0}),c})();function Ry(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function Ny(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Mt;function Pt(Wt){let Zt;const hi=Wt-Mt;Zt=Ve?ce-Ry(hi,0,ce-De,gt):Ry(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Xt=hiPt(pi))}return requestAnimationFrame(Wt=>(Mt=Wt,Pt(Wt)))}let L0,Fy=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function P0(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=Ny(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:d1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?L0=window:typeof global<"u"&&(L0=global);let nm=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=_f(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:Cf(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,xT,1,2,"div",1)(2,Hv,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,g1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[Fy,Qi.bT,Qi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),il=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Qi.MD,Dy,Ey],Qi.MD,Dy,Ey]}),c})();const By=[{name:"vivid",selectable:!0,group:xn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:xn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:xn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:xn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:xn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:xn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:xn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:xn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:xn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:xn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:xn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:xn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:xn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:xn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:xn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class sm{constructor(v,i,m,W){"string"==typeof v&&(v=By.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=By.find(ce=>ce.name===v)),i){case xn.Quantile:W=gh().range(v.domain).domain(m);break;case xn.Ordinal:W=Jp().range(v.domain).domain(m);break;case xn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=Rg(0,1,1/ce.length);W=Qp().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===xn.Linear){const i=Qp().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=Qp().domain(this.domain).range([0,1]),W=r0().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Mt=[];for(Mt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Mt.push({color:Pt,offset:Wt,opacity:1}),gt=Wt,et++}}if(Mt[Mt.length-1].offset<100&&Mt.push({color:ce,offset:qe,opacity:1}),qe===De)Mt[0].offset=0,Mt[1].offset=100;else if(100!==Mt[Mt.length-1].offset)for(const Pt of Mt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Mt}}let uC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Ef=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})();X_();let zy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),xC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),z0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Gy=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=Cf}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Qi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=h0().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=nc,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Tf().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),h0().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=$r(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=Za(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=Za(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=$r(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=Za(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Iu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,Ou,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[Py,Qi.bT],encapsulation:2,changeDetection:0}),c})(),TC=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Jn,this.styleTypes=wf}ngOnChanges(i){this.update()}update(){const m=function W_(){var c=Sv,v=Tv,i=null,m=uo(0),W=uo(nf),ce=uo(0);function De(Ve){var qe,gt,Mt,pi,ki,et=(Ve=function d0(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Wt=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Xt=Math.min(nf,Math.max(-nf,W.apply(this,arguments)-hi)),Ci=Math.min(Math.abs(Xt)/et,ce.apply(this,arguments)),gi=Ci*(Xt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Wt.sort(function(Bi,Di){return v(Zt[Bi],Zt[Di])}):null!=i&&Wt.sort(function(Bi,Di){return i(Ve[Bi],Ve[Di])}),qe=0,Mt=Pt?(Xt-et*gi)/Pt:0;qe0?ki*Mt:0)+gi,padAngle:Ci};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:uo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:uo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:uo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:uo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function $_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return h0().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return _f(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=_f(i.data.value);return`\n ${function E0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Pu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Ru,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[Gy,wC,Qi.Sq,Qi.bT,I0],encapsulation:2,changeDetection:0}),c})(),Hy=(()=>{class c extends ky{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function cC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=xn.Ordinal,legendPosition:Mt=Xo.Right,columns:Pt=12}){let Wt=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Mt===Xo.Right&&(Pt-=gt===xn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Wt+=De,Wt+=10,qe&&(Zt-=30,Wt+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Wt)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new sm(this.scheme,xn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,zg,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,af,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[Fu,TC,nm],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),cm=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),EC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il,cm,z0]]}),c})(),hm=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Af=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),LC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il,cm,Ef]]}),c})(),RC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),If=(()=>{class c{constructor(){!function Uy(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[il,uC,Ef,zy,xC,_C,RC,z0,EC,hm,cm,Af,LC]}),c})();var Of=He(91346),NC=He(12168),Wy=He(38833),G0=He(46247),$y=He(41570);const FC=()=>({width:"75vw"}),H0=()=>[10,25,50];function BC(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Xy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function Yy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function jC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function VC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function zC(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function U0(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const Ky=[rn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.getStats()),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Mt=et._TS;return gt>Mt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new Of.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Rl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Or.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Ir.c$),e.rXU(Vn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,BC,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Xy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,Yy,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,jC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,VC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,zC,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,U0,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,FC)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,H0))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Qi.bT,Hy,Ir.Mm,Of.S6,G0.XI,_l.Ei,G0.Tg,G0.yc,$y.l,Ir.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Er.o6)("dashboard")}}])];let HC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[pr.iI.forChild(Ky),pr.iI]})}return c})(),UC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:Of.SV,useFactory:()=>[NC,Wy]}],imports:[Bt,If,HC,Qi.MD,at.X1,Ir.h,Of.Fr,Zs.G]})}return c})(),WC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Qi.MD,Ir.h,or.UN,at.YN,pr.iI]})}return c})(),$C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Ue]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Ir.h.forRoot(),or.UN,Er.Ui,Zs.G,WC,UC,vl._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Vn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Vn.JV.TRACKING,trackerUrl:Ar.c.trackerUrl,siteId:Ar.c.siteId}),jl,xl]})}return c})();Ar.c.production&&(0,e.SmG)(),M.sG().bootstrapModule($C,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Dt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Dt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Dt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>vo,B3:()=>Ki,Jj:()=>mn,MD:()=>ma,N0:()=>va,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>tr,VF:()=>Z,Vy:()=>hl,XO:()=>r,Xr:()=>rr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>er,fG:()=>is,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>rs,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Pi=>+Pi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Pi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),Qn=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Pi,Xn,Qn),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Pi,ci=[];for(;ut;){if(Pi=Fe.exec(ut),!Pi){ci.push(ut);break}{ci=ci.concat(Pi.slice(1));const os=ci.pop();if(!os)break;ut=os}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function di(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Qt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let Qn="";return ci.forEach(os=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Dt(1);break;case"YY":ut=Dt(2,!0);break;case"YYY":ut=Dt(3);break;case"YYYY":ut=Dt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(os);Qn+=Sn?Sn(Et,Ke,Xn):"''"===os?"'":os.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),Qn}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Pi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Pi]);break;case"long":const Xn=_e(Ge,"longTime"),Qn=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,Qn]);break;case"full":const os=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[os,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Pi>-Ke)&&(Pi+=Ke),Ge===ee.Hours)0===Pi&&-12===Ke&&(Pi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Pi,ut);const Xn=H(ci,g.MinusSign);return Ee(Pi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Pi=Ge.getMinutes();if(qt){const Qn=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),os=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=Qn.findIndex(us=>{if(Array.isArray(us)){const[ns,js]=us,Pr=ci>=ns.hours&&Pi>=ns.minutes,Hn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Pi=qt.getTime()-ci.getTime();Et=1+Math.round(Pi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Dt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Pi=at.get(qt);at.move(Pi,ci),Ti(Pi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new ss,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class ss{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let rs=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),er=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(rs,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),is=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(rs,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function ur(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,qr=new Oa;let mn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return qr;throw ur()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const al=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw ur()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(al,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=fa}transform(Ke,at=fa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function bo(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function fa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const vo="browser",ba="server";function tr(Ge){return Ge===vo}function hl(Ge){return Ge===ba}let rr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>tr((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new qo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Dr(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class qo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class va{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),rs=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:rs}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:rs,url:er}=si(),is=null;cn!==C.NoContent&&(is=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=is?C.Ok:0);let Zr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof is){const sr=is;is=is.replace(Xe,"");try{is=""!==is?JSON.parse(is):null}catch(Ls){is=sr,Zr&&(Zr=!1,is={error:Ls,text:is})}}Zr?($e.next(new l({body:is,headers:Xi,status:cn,statusText:rs,url:er||void 0})),$e.complete()):$e.error(new d({error:is,headers:Xi,status:cn,statusText:rs,url:er||void 0}))},Si=Xi=>{const{url:cn}=si(),rs=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(rs)};let Hi=!1;const ss=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",ss),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",ss),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const di=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:di,useFactory:he},{provide:R,useExisting:di,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>xc,iLQ:()=>uw,sZ2:()=>nh,hnV:()=>nM,Hbi:()=>uA,o8S:()=>zu,BIS:()=>Gh,gRc:()=>mM,Ql9:()=>BE,OM3:()=>Su,Ocv:()=>$E,abz:()=>Dl,Z63:()=>Lo,aKT:()=>jh,uvJ:()=>Co,zcH:()=>Ml,bkB:()=>ko,$GK:()=>mn,nKC:()=>$e,zZn:()=>Ws,_q3:()=>xw,MKu:()=>_w,xe9:()=>ix,Co$:()=>Xv,Vns:()=>Mu,SKi:()=>Tr,Xx1:()=>tr,Agw:()=>sh,PLl:()=>zh,sFG:()=>cv,_9s:()=>lv,czy:()=>hg,WPN:()=>md,kdw:()=>zr,C4Q:()=>Wp,NYb:()=>IE,giA:()=>tM,RxE:()=>Xk,c1b:()=>jg,gXe:()=>Ro,mal:()=>o0,Af3:()=>Ge,tdH:()=>uv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>qv,w6W:()=>DT,oH4:()=>uM,QZP:()=>XM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>qi,hFB:()=>vm,QuC:()=>xo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>t1,O8t:()=>WA,An2:()=>Og,H3F:()=>Yk,H8p:()=>Fs,KH2:()=>Mf,TgB:()=>lf,wOt:()=>me,WHO:()=>Jk,e01:()=>eM,lNU:()=>he,h9k:()=>nb,$MX:()=>Sp,ZF7:()=>oh,Kcf:()=>tg,e5t:()=>px,UyX:()=>dx,cWb:()=>hx,osQ:()=>ux,H5H:()=>B0,Zy3:()=>Ce,mq5:()=>pC,JZv:()=>Ze,LfX:()=>mo,plB:()=>gh,jNT:()=>hw,zjR:()=>iM,TL$:()=>ih,Tbb:()=>pt,rcV:()=>El,nM4:()=>b1,Vt3:()=>v0,Mj6:()=>Qi,GFd:()=>$v,OA$:()=>Wa,Jv_:()=>sk,aNF:()=>rk,R7$:()=>Mb,BMQ:()=>k0,HbH:()=>wy,ZvI:()=>Zg,AVh:()=>ua,vxM:()=>Ay,wni:()=>yi,VBU:()=>Dc,FsC:()=>Or,jDH:()=>$i,G2t:()=>Mn,$C:()=>Nl,EJ8:()=>Ec,rXU:()=>Ql,nrm:()=>nm,eu8:()=>F0,bVm:()=>N0,qex:()=>sm,k0s:()=>im,j41:()=>tm,RV6:()=>dC,xGo:()=>qd,Mr5:()=>jy,pXf:()=>De,KVO:()=>Is,kS0:()=>Qc,QTQ:()=>Eb,bIt:()=>Mt,lsd:()=>Wi,joV:()=>sp,qSk:()=>np,XpG:()=>Ci,nI1:()=>Dk,bMT:()=>Ek,i5U:()=>Ak,SdG:()=>Bi,NAR:()=>ki,Y8G:()=>Mc,FS9:()=>Di,Mz_:()=>on,lJ4:()=>fk,eq3:()=>gk,l_i:()=>mk,sMw:()=>bk,ziG:()=>vk,s1E:()=>yk,l4e:()=>xk,sGs:()=>_k,zJS:()=>Ck,mGM:()=>ji,sdS:()=>as,Dyx:()=>Ny,Z7z:()=>Ly,fX1:()=>Oy,Njj:()=>zc,EBC:()=>Om,tSv:()=>Ox,eBV:()=>gc,npT:()=>sb,f$h:()=>Mp,B4B:()=>ng,n$t:()=>Do,Aen:()=>tc,xc7:()=>Yg,zvX:()=>Vy,DNE:()=>Eu,C5r:()=>Ik,EFF:()=>KS,JRh:()=>XC,SpI:()=>Zy,Lme:()=>YC,E5c:()=>KC,LHq:()=>ZC,DH7:()=>ik,mxI:()=>QC,R50:()=>qC,GBs:()=>Ei}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Dt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Mi(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Mn(t){return{providers:t.providers||[],imports:t.imports||[]}}function Br(t){return Kr(t,Rt)||Kr(t,bt)}function mo(t){return null!==Br(t)}function Kr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const rs=st({\u0275cmp:st}),er=st({\u0275dir:st}),is=st({\u0275pipe:st}),Zr=st({\u0275mod:st}),sr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),jr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function qr(t,s){throw new me(-201,!1)}var mn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(mn||{});let Zo;function rl(){return Zo}function Gs(t){const s=Zo;return Zo=t,s}function Qr(t,s,h){const P=Br(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&mn.Optional?null:void 0!==s?s:void qr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",pa=/\n/gm,bo="__source";let xr;function kr(t){const s=xr;return xr=t,s}function ga(t,s=mn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?Qr(t,void 0,s):xr.get(t,s&mn.Optional?null:void 0,s)}function Is(t,s=mn.Default){return(rl()||ga)(Dt(t),s)}function qi(t,s=mn.Default){return Is(t,Vr(s))}function Vr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Io(t){const s=[];for(let h=0;hArray.isArray(h)?Dr(h,s):s(h))}function qo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function va(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Ys(t,s,h){let P=Gr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function Jr(t,s){const h=Gr(t,s);if(h>=0)return t[1|h]}function Gr(t,s){return function rc(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Zs(P))return!1;ke=!0}}}}else{if(!ke&&!Zs(P)&&!Zs(ze))return!1;if(ke&&Zs(ze))continue;ke=!1,P=ze|1&P}}return Zs(P)||ke}function Zs(t){return!(1&t)}function Ar(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Zs(ke)&&(s+=oc(ge,Q),Q=""),P=ke,ge=ge||!Zs(P);h++}return""!==Q&&(s+=oc(ge,Q)),s}function Dc(t){return ee(()=>{const s=pl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ul.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Ro.Emulated,styles:t.styles||Dn,_:null,schemas:t.schemas||null,tView:null,id:""};fl(h);const P=t.dependencies;return h.directiveDefs=gl(P,!1),h.pipeDefs=gl(P,!0),h.id=function ac(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function io(t){return hn(t)||Rs(t)}function Zh(t){return null!==t}function Nl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Dn,declarations:t.declarations||Dn,imports:t.imports||Dn,exports:t.exports||Dn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ks;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Qi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Qi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Or(t){return ee(()=>{const s=pl(t);return fl(s),s})}function Ec(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[rs]||null}function Rs(t){return t[er]||null}function Ss(t){return t[is]||null}function xo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function qs(t,s){const h=t[Zr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function pl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ks,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Dn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function fl(t){t.features?.forEach(s=>s(t))}function gl(t,s){if(!t)return null;const h=s?Ss:io;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Zh)}function za(t){return{\u0275providers:t}}function Fl(...t){return{\u0275providers:ml(0,t),\u0275fromNgModule:!0}}function ml(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Dr(s,ke=>{const Le=ke;lc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Ic(Q,ge),h}function Ic(t,s){for(let h=0;h{s(ge,P)})}}function lc(t,s,h,P){if(!(t=Dt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)lc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Dr(ge.imports,dt=>{lc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Ic(Je,s)}if(!Le){const Je=Mr(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Dn},Q),s({provide:Qo,useValue:Q,multi:!0},Q),s({provide:Lo,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;No(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function No(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?No(h,s):s(h)}const Pc=st({provide:String,useValue:st});function Bl(t){return null!==t&&"object"==typeof t&&Pc in t}function Fo(t){return"function"==typeof t}const Fs=new $e(""),Bs={},ta={};let bl;function _o(){return void 0===bl&&(bl=new yo),bl}class Co{}class Ca extends Co{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,na(s,ke=>this.processProvider(ke)),this.records.set(xa,_r(void 0,this)),Q.has("environment")&&this.records.set(Co,_r(void 0,this));const ge=this.records.get(Fs);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(Qo,Dn,mn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=kr(this),P=Gs(void 0);try{return s()}finally{kr(h),Gs(P)}}get(s,h=vr,P=mn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(jr))return s[jr](this);P=Vr(P);const ge=kr(this),ke=Gs(void 0);try{if(!(P&mn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Hr(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&Br(s);ze=Je&&this.injectableDefInScope(Je)?_r(wa(s),Bs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&mn.Self?_o():this.parent).get(s,h=P&mn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ba(t,s,h,P){const Q=t[yr];throw s[bo]&&Q.unshift(s[bo]),t.message=function cl(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(pa,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),kr(ge)}}resolveInjectorInitializers(){const s=re(null),h=kr(this),P=Gs(void 0);try{const ge=this.get(Lo,Dn,mn.Self);for(const ke of ge)ke()}finally{kr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Fo(s=Dt(s))?s:Dt(s&&s.provide);const P=function Rc(t){return Bl(t)?_r(void 0,t.useValue):_r(vl(t),Bs)}(s);if(!Fo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Bs,!0),Q.factory=()=>Io(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Bs&&(h.value=ta,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ia(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Dt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function wa(t){const s=Br(t),h=null!==s?s.factory:Mr(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function jl(t){if(t.length>0)throw new me(204,!1);const h=function nr(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function vl(t,s,h){let P;if(Fo(t)){const Q=Dt(t);return Mr(Q)||wa(Q)}if(Bl(t))P=()=>Dt(t.useValue);else if(function Lc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Io(t.deps||[]));else if(function ir(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Dt(t.useExisting));else{const Q=Dt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Mr(Q)||wa(Q);P=()=>new Q(...Io(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function na(t,s){for(const h of t)Array.isArray(h)?na(h,s):h&&cn(h)?na(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof Ca&&t.assertNotDestroyed();const P=kr(t),Q=Gs(void 0);try{return s()}finally{kr(P),Gs(Q)}}function sa(){return void 0!==rl()||null!=function fa(){return xr}()}function Ge(t){if(!sa())throw new me(-203,!1)}const Hn=0,ui=1,zi=2,Yn=3,gs=4,ks=5,ar=6,Ta=7,ms=8,fr=9,wo=10,en=11,Bo=12,cc=13,bs=14,Kn=15,Sa=16,Vl=17,To=18,hc=19,ka=20,jo=21,yl=22,Ua=23,rn=25,dc=1,Vo=7,_l=9,Vs=10;var pc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(pc||{});function gr(t){return Array.isArray(t)&&"object"==typeof t[dc]}function zs(t){return Array.isArray(t)&&!0===t[dc]}function zl(t){return!!(4&t.flags)}function ra(t){return t.componentOffset>-1}function Cl(t){return!(1&~t.flags)}function Ur(t){return!!t.template}function Nc(t){return!!(512&t[zi])}class Gl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Hl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function Wa(){return Fc}function Fc(t){return t.type.prototype.ngOnChanges&&(t.setInput=Wu),$a}function $a(){const t=$u(this),s=t?.current;if(s){const h=t.previous;if(h===Ks)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function Wu(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=$u(t)||function Xu(t,s){return t[td]=s}(t,{previous:Ks,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Gl(Je&&Je.currentValue,h,ze===Ks),Hl(t,s,Q,h)}Wa.ngInherit=!0;const td="__ngSimpleChanges__";function $u(t){return t[td]||null}const no=function(t,s,h){},Ld="svg";let Ku=!1;function ws(t){for(;Array.isArray(t);)t=t[Hn];return t}function Bc(t,s){return ws(s[t])}function so(t,s){return ws(s[t.index])}function vh(t,s){return t.data[s]}function jc(t,s){return t[s]}function zo(t,s){const h=s[t];return gr(h)?h:h[Hn]}function nd(t){return!(128&~t[zi])}function Xa(t,s){return null==s?null:t[s]}function Rd(t){t[Vl]=0}function Ff(t){1024&t[zi]||(t[zi]|=1024,nd(t)&&_h(t))}function Nd(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function xh(t){t[wo].changeDetectionScheduler?.notify(1),Nd(t)?_h(t):64&t[zi]&&(function Zu(){return Ku}()?(t[zi]|=1024,_h(t)):t[wo].changeDetectionScheduler?.notify())}function _h(t){t[wo].changeDetectionScheduler?.notify();let s=Ya(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,nd(s));)s=Ya(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[jo]&&(t[jo]=[]),t[jo].push(s)}function Ya(t){const s=t[Yn];return zs(s)?s[Yn]:s}const an={lFrame:ld(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function fc(){return an.bindingsEnabled}function Ka(){return null!==an.skipHydrationRootTNode}function ni(){return an.lFrame.lView}function pn(){return an.lFrame.tView}function gc(t){return an.lFrame.contextLView=t,t[ms]}function zc(t){return an.lFrame.contextLView=null,t}function hs(){let t=Gc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Gc(){return an.lFrame.currentTNode}function oa(){const t=an.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function aa(t,s){const h=an.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return an.lFrame.isParent}function od(){an.lFrame.isParent=!1}function oo(){const t=an.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function So(){return an.lFrame.bindingIndex}function Ma(){return an.lFrame.bindingIndex++}function Sl(t){const s=an.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function jd(t){an.lFrame.inI18n=t}function Vd(t,s){const h=an.lFrame;h.bindingIndex=h.bindingRootIndex=t,wh(s)}function wh(t){an.lFrame.currentDirectiveIndex=t}function Th(t){const s=an.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function zd(){return an.lFrame.currentQueryIndex}function Hc(t){an.lFrame.currentQueryIndex=t}function Gf(t){const s=t[ui];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Sh(t,s,h){if(h&mn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&mn.Host||(Q=Gf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=an.lFrame=ip();return P.currentTNode=s,P.lView=t,!0}function Gd(t){const s=ip(),h=t[ui];an.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function ip(){const t=an.lFrame,s=null===t?null:t.child;return null===s?ld(t):s}function ld(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function Hd(){const t=an.lFrame;return an.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Ud=Hd;function cd(){const t=Hd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Wr(){return an.lFrame.selectedIndex}function mc(t){an.lFrame.selectedIndex=t}function Os(){const t=an.lFrame;return vh(t.tView,t.selectedIndex)}function np(){an.lFrame.currentNamespace=Ld}function sp(){!function Wd(){an.lFrame.currentNamespace=null}()}let kh=!0;function Uc(){return kh}function Go(t){kh=t}function Wc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[Vl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,kl(Le,ge)):kl(Le,ge)}const bc=-1;class $c{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function Lr(t){return t!==bc}function Wl(t){return 32767&t}function Da(t,s){let h=function ap(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let $r=!0;function Xc(t){const s=$r;return $r=t,s}const $l=255,Yc=5;let Ph=0;const la={};function ud(t,s){const h=pd(t,s);if(-1!==h)return h;const P=s[ui];P.firstCreatePass&&(t.injectorIndex=s.length,Kc(P.data,t),Kc(s,null),Kc(P.blueprint,null));const Q=Zc(t,s),ge=t.injectorIndex;if(Lr(Q)){const ke=Wl(Q),Le=Da(Q,s),ze=Le[ui].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kc(t,s){t.push(0,0,0,0,0,0,0,0,s)}function pd(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zc(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=Jd(Q),null===P)return bc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return bc}function Kd(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Ph++);const Q=P&$l;s.data[t+(Q>>Yc)]|=1<=0?s&$l:dp:s}(h);if("function"==typeof ge){if(!Sh(s,t,P))return P&mn.Host?Lh(Q,0,P):Rh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&mn.Optional)return ke;qr()}finally{Ud()}}else if("number"==typeof ge){let ke=null,Le=pd(t,s),ze=bc,Je=P&mn.Host?s[Kn][ks]:null;for((-1===Le||P&mn.SkipSelf)&&(ze=-1===Le?Zc(t,s):s[Le+8],ze!==bc&&hp(P,!1)?(ke=s[ui],Le=Wl(ze),s=Da(ze,s)):Le=-1);-1!==Le;){const dt=s[ui];if(cp(ge,Le,dt.data)){const Ct=qc(Le,s,h,ke,P,Je);if(Ct!==la)return Ct}ze=s[Le+8],ze!==bc&&hp(P,s[ui].data[Le+8]===Je)&&cp(ge,Le,s)?(ke=dt,Le=Wl(ze),s=Da(ze,s)):Le=-1}}return Q}function qc(t,s,h,P,Q,ge){const ke=s[ui],Le=ke.data[t+8],dt=Ea(Le,ke,h,null==P?ra(Le)&&$r:P!=ke&&!!(3&Le.type),Q&mn.Host&&ge===Le);return null!==dt?Ho(s,ke,dt,Le):la}function Ea(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Ur(Ht)&&Ht.type===h)return ze}return null}function Ho(t,s,h,P){let Q=t[h];const ge=s.data;if(function Eh(t){return t instanceof $c}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Xc(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Sh(t,P,mn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Mh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=Fc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Xc(Le),ke.resolving=!1,Ud()}}return Q}function cp(t,s,h){return!!(h[s+(t>>Yc)]&1<{const s=t.prototype.constructor,h=s[sr]||Nh(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[sr]||Nh(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function Nh(t){return At(t)?()=>{const s=Nh(Dt(t));return s&&s()}:Mr(t)}function Jd(t){const s=t[ui],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function Qc(t){return function Zd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new yo;static create(h,P){if(Array.isArray(h))return gp({name:""},P,h,"");{const Q=h.name??"";return gp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(xa)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function nu(t){return t.ngOriginalError}class Ml{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&nu(s);for(;h&&nu(h);)h=nu(h);return h||null}}const su=new $e("",{providedIn:"root",factory:()=>qi(Ml).handleError.bind(void 0)});let Dl=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=bm;static#t=this.__NG_ENV_ID__=h=>h}return t})();class vp extends Dl{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[jo])return;const h=t[jo].indexOf(s);-1!==h&&t[jo].splice(h,1)}(this._lView,s)}}function bm(){return new vp(ni())}function Bh(t,s){return oe(t,s)}const vm=(Bh.required=function qf(t){return oe(Se,t)},Bh);function ym(){return yc(hs(),ni())}function yc(t,s){return new jh(so(t,s))}let jh=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=ym}return t})();function xp(t){return t instanceof jh?t.nativeElement:t}function ru(t){return s=>{setTimeout(t,void 0,s)}}const ko=class Aa extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,sa()&&(this.destroyRef=qi(Dl,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=ru(ge),Q&&(Q=ru(Q)),ke&&(ke=ru(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function ou(){return this._results[Symbol.iterator]()}class au{static#e=Symbol.iterator;get changes(){return this._changes??=new ko}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=au.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=ou)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function rr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Plu}),lu="ng",zh=new $e(""),sh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),xc=new $e(""),Gh=new $e("",{providedIn:"root",factory:()=>ha().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const Zi=new $e("",{providedIn:"root",factory:()=>!1});let tn,hr;function nn(t){return function wn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function lo(){if(void 0===hr&&(hr=null,Ze.trustedTypes))try{hr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hr}function Uo(t){return lo()?.createHTML(t)||t}function Ia(t){return lo()?.createScriptURL(t)||t}class wr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class da extends wr{getTypeName(){return"HTML"}}class du extends wr{getTypeName(){return"Style"}}class Qf extends wr{getTypeName(){return"Script"}}class Jf extends wr{getTypeName(){return"URL"}}class Tp extends wr{getTypeName(){return"ResourceURL"}}function El(t){return t instanceof wr?t.changingThisBreaksApplicationSecurity:t}function oh(t,s){const h=function eg(t){return t instanceof wr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function tg(t){return new da(t)}function hx(t){return new du(t)}function dx(t){return new Qf(t)}function ux(t){return new Jf(t)}function px(t){return new Tp(t)}function q0(t){const s=new gx(t);return function mx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new fx(s):s}class fx{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class gx{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const bx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Sp(t){return(t=String(t)).match(bx)?t:"unsafe:"+t}function ah(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function kp(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const Q0=ah("area,br,col,hr,img,wbr"),J0=ah("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),eb=ah("rp,rt"),xm=kp(Q0,kp(J0,ah("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),kp(eb,ah("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),kp(eb,J0)),_m=ah("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),tb=kp(_m,ah("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ah("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),vx=ah("script,style,template");class yx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=_x(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=lh(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=Cm(s).toLowerCase();if(!xm.hasOwnProperty(h))return this.sanitizedSomething=!0,!vx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=Cm(s).toLowerCase();xm.hasOwnProperty(h)&&!Q0.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(ib(s))}}function lh(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw Cc(s);return s}function _x(t){const s=t.firstChild;if(s&&function xx(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw Cc(s);return s}function Cm(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function Cc(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const Ew=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Aw=/([^\#-~ |!])/g;function ib(t){return t.replace(/&/g,"&").replace(Ew,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Aw,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let ig;function nb(t,s){let h=null;try{ig=ig||q0(t);let P=s?String(s):"";h=ig.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=ig.getInertBodyElement(P)}while(P!==ge);return nn((new yx).sanitizeChildren(wm(h)||h))}finally{if(h){const P=wm(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function wm(t){return"content"in t&&function Tm(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var md=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(md||{});function sb(t){const s=Hh();return s?Uo(s.sanitize(md.HTML,t)||""):oh(t,"HTML")?Uo(El(t)):nb(ha(),Ki(t))}function ng(t){const s=Hh();return s?s.sanitize(md.URL,t)||"":oh(t,"URL")?El(t):Sp(Ki(t))}function Mp(t){const s=Hh();if(s)return Ia(s.sanitize(md.RESOURCE_URL,t)||"");if(oh(t,"ResourceURL"))return Ia(El(t));throw new me(904,!1)}function Do(t,s,h){return function Wo(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?Mp:ng}(s,h)(t)}function Hh(){const t=ni();return t&&t[wo].sanitizer}const sg=/^>|^->||--!>|)/g,ch="\u200b$1\u200b";const Mm=new Map;let kx=0;const bd="__ngContext__";function $o(t,s){gr(s)?(t[bd]=s[hc],function Dm(t){Mm.set(t[hc],t)}(s)):t[bd]=s}function Ox(t){return t.ownerDocument.defaultView}function Om(t){return t.ownerDocument}function Il(t){return t instanceof Function?t():t}var hg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(hg||{});let Pm;function Lm(t,s){return Pm(t,s)}function Op(t,s,h,P,Q){if(null!=P){let ge,ke=!1;zs(P)?ge=P:gr(P)&&(ke=!0,P=P[Hn]);const Le=ws(P);0===t&&null!==h?null==Q?zx(s,h,Le):mu(s,h,Le,Q||null,!0):1===t&&null!==h?mu(s,h,Le,Q||null,!0):2===t?function _d(t,s,h){const P=Fm(t,s);P&&function jw(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function kb(t,s,h,P,Q){const ge=h[Vo];ge!==ws(h)&&Op(s,t,P,ge,Q);for(let Le=Vs;Les.replace(wx,ch))}(s))}function Rm(t,s,h){return t.createElement(s,h)}function Nm(t,s){s[wo].changeDetectionScheduler?.notify(1),bu(t,s,s[en],2,null,null)}function _b(t,s){const h=t[_l],P=h.indexOf(s);h.splice(P,1)}function Pp(t,s){if(t.length<=Vs)return;const h=Vs+s,P=t[h];if(P){const Q=P[Sa];null!==Q&&Q!==t&&_b(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=va(t,Vs+s);!function Nw(t,s){Nm(t,s),s[Hn]=null,s[ks]=null}(P[ui],P);const ke=ge[To];null!==ke&&ke.detachView(ge[ui]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function dg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&bu(t,s,h,3,null,null),function Fx(t){let s=t[Bo];if(!s)return Cb(t[ui],t);for(;s;){let h=null;if(gr(s))h=s[Bo];else{const P=s[Vs];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)gr(s)&&Cb(s[ui],s),s=s[Yn];null===s&&(s=t),gr(s)&&Cb(s[ui],s),h=s&&s[gs]}s=h}}(s)}}function Cb(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[Ta]=null);const Q=s[jo];if(null!==Q){s[jo]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Ro.None||ge===Ro.Emulated)return null}return so(P,h)}}function mu(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function zx(t,s,h){t.appendChild(s,h)}function ug(t,s,h,P,Q){null!==P?mu(t,s,h,P,Q):zx(t,s,h)}function Fm(t,s){return t.parentNode(s)}function Hx(t,s,h){return Ux(t,s,h)}function fg(t,s,h){return 40&t.type?so(t,h):null}let gg,Ux=fg;function Wx(t,s){Ux=t,gg=s}function Bm(t,s,h,P){const Q=wb(t,P,s),ge=s[en],Le=Hx(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zern&&Db(t,s,rn,!1),no(ke?2:0,Q),h(P,Q)}finally{mc(ge),no(ke?3:1,Q)}}function Ob(t,s,h){if(zl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function qx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Qi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Qx(P,h,Je,Le,ze):Qx(P,h,Je,Le)}return P}function Qx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=so(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?($m(t,h,dt,P,Q),ra(s)&&function Xw(t,s){const h=zo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function $w(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Nb(t,s,h,P){if(fc()){const Q=null===P?null:{"":-1},ge=function Gm(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,mg(t,h,Q.hostVars,kn),Q)}function Tc(t,s,h,P,Q,ge){const ke=so(t,s);!function ds(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function i_(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{_h(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function Ub(t){return $b(t[Bo])}function Wb(t){return $b(t[gs])}function $b(t){for(;null!==t&&!zs(t);)t=t[gs];return t}const Km=100;function Tg(t,s=!0,h=0){const P=t[wo],Q=P.rendererFactory;Q.begin?.();try{!function h_(t,s){qm(t,s);let h=0;for(;Nd(t);){if(h===Km)throw new me(103,!1);h++,qm(t,1)}}(t,h)}catch(ke){throw s&&Cg(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function d_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[wo].inlineEffectRunner?.flush(),Gd(s);let ke=null,Le=null;(function u_(t){return 2!==t.type})(t)&&(Le=function r_(t){return t[Ua]??function o_(t){const s=Gb.pop()??Object.create(a_);return s.lView=t,s}(t)}(s),ke=L(Le));try{Rd(s),function tp(t){return an.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&$x(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&dd(s,Ct,0,null),Dh(s,0)}if(function p_(t){for(let s=Ub(t);null!==s;s=Wb(s)){if(!(s[zi]&pc.HasTransplantedViews))continue;const h=s[_l];for(let P=0;P-1&&(Pp(s,P),va(h,P))}this._attachedToViewContainer=!1}dg(this._lView[ui],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){Up(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){xh(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,Tg(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,Nm(this._lView[ui],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,xh(this._lView)}}let Wp=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=b_}return t})();const g_=Wp,m_=class extends g_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=zp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new wu(Q)}};function b_(){return Sg(hs(),ni())}function Sg(t,s){return 4&t.type?new m_(s,t,yc(t,s)):null}let ov=()=>null;function $h(t,s){return ov(t,s)}class Og{}class Pg{}class Cd{}class O_{resolveComponentFactory(s){throw function I_(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let Su=(()=>{class t{static#e=this.NULL=new O_}return t})();class lv{}let cv=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function hv(){const t=ni(),h=zo(hs().index,t);return(gr(h)?h:t)[en]}()}return t})(),dv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Lg={};function uv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const pv=new Set;function Ja(t){pv.has(t)||(pv.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function e0(...t){}class Tr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ko(!1),this.onMicrotaskEmpty=new ko(!1),this.onStable=new ko(!1),this.onError=new ko(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function fv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function Qp(t){const s=()=>{!function L_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Rg(t),t.isCheckStableRunning=!0,t0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Rg(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function gv(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return n0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),R_(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return n0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),R_(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,Rg(t),t0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Tr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(Tr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,P_,e0,e0);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const P_={};function t0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Rg(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function n0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function R_(t){t._nesting--,t0(t)}class Ng{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ko,this.onMicrotaskEmpty=new ko,this.onStable=new ko,this.onError=new ko}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Xh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Xh||{});const s0={destroy(){}};function o0(t,s){!s&&Ge();const h=s?.injector??qi(Ws);if(!function yd(t){return"browser"===(t??qi(Ws)).get(sh)}(h))return s0;Ja("NgAfterNextRender");const P=h.get(ef),Q=P.handler??=new N_,ge=s?.phase??Xh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(Dl).onDestroy(ke),ze=Ha(h,()=>new bv(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class bv{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=qi(Tr),this.errorHandler=qi(Ml,{optional:!0}),qi(Og,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class N_{constructor(){this.executingCallbacks=!1,this.buckets={[Xh.EarlyRead]:new Set,[Xh.Write]:new Set,[Xh.MixedReadWrite]:new Set,[Xh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let ef=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function gh(t){return!!qs(t)}function Td(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Wh(t,h,ge.join(" "))}}(Ht,Ao,li,P),void 0!==h&&function oT(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=G_}return t})();function G_(){return sf(hs(),ni())}const H_=jg,Cv=class extends H_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return yc(this._hostTNode,this._hostLView)}get injector(){return new lr(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zc(this._hostTNode,this._hostLView);if(Lr(s)){const h=Da(s,this._hostLView),P=Wl(s);return new lr(h[ui].data[P+8],h)}return new lr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=wv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-Vs}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=$h(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,Cu(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Pi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new Sd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(Co,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=$h(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,Cu(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Nf(t){return zs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new Cv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Gp(ke,Q,ge,P),s.attachToViewContainerRef(),qo(c0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=wv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Pp(this._lContainer,h);P&&(va(c0(this._lContainer),h),dg(P[ui],P))}detach(s){const h=this._adjustIndex(s,-1),P=Pp(this._lContainer,h);return P&&null!=va(c0(this._lContainer),h)?new wu(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function wv(t){return t[8]}function c0(t){return t[8]||(t[8]=[])}function sf(t,s){let h;const P=s[t.index];return zs(P)?h=P:(h=_u(P,s,null,t),s[t.index]=h,_g(s,h)),U_(h,s,t,P),new Cv(h,t,s)}let U_=function Sv(t,s,h,P){if(t[Vo])return;let Q;Q=8&h.type?ws(P):function h0(t,s){const h=t[en],P=h.createComment(""),Q=so(s,t);return mu(h,Fm(h,Q),P,function pg(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Vo]=Q},d0=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=Vs;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=n1.bind(h),h}function n1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function s1(t){return function Lv(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function Uv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Ur(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=zg(t.inputs),ke.inputTransforms=zg(t.inputTransforms),ke.declaredInputs=zg(t.declaredInputs),ke.outputs=zg(t.outputs);const Le=Q.hostBindings;Le&&TT(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&wT(t,ze),Je&&af(t,Je),g1(t,Q),kt(t.outputs,Q.outputs),Ur(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function g1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function zg(t){return t===Ks?{}:t===Dn?[]:t}function wT(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function af(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function TT(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function b1(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Dt(Q),inputs:Ks,outputs:Ks}:{directive:Dt(Q.directive),inputs:v1(Q.inputs),outputs:v1(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=Wv,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function Wv(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);MT(Q.declaredInputs,P.inputs),Wv(Q,s,h),h.set(Q,P),s.push(Q)}}function v1(t){if(void 0===t||0===t.length)return Ks;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Kv extends Xv{constructor(s){super(),this.moduleType=s}create(s){return new Yv(this.moduleType,s,[])}}class Zv extends Mu{constructor(s){super(),this.componentFactoryResolver=new nf(this),this.instance=null;const h=new Ca([...s.providers,{provide:Mu,useValue:this},{provide:Su,useValue:this.componentFactoryResolver}],s.parent||_o(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function qv(t,s,h=null){return new Zv({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let lf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function x0(t){return!!Qv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Qv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function kc(t,s,h){return t[s]=h}function Gg(t,s){return t[s]}function Sr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Du(t,s,h,P){const Q=Sr(t,s,h);return Sr(t,s+1,P)||Q}function _0(t,s,h,P,Q){const ge=Du(t,s,h,P);return Sr(t,s+2,Q)||ge}function ec(t,s,h,P,Q,ge){const ke=Du(t,s,h,P);return Du(t,s+2,Q,ge)||ke}function Eu(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=pn(),dt=t+rn,Ct=Je.firstCreatePass?function NT(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Np(s,t,4,ke||null,Xa(Je,Le));Nb(s,h,dt,Xa(Je,ze)),Wc(s,dt);const Ct=dt.tView=ph(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];aa(Ct,!1);const jt=_1(Je,ze,Ct,t);Uc()&&Bm(Je,ze,jt,Ct),$o(jt,ze);const Ht=_u(jt,ze,jt,Ct);return ze[dt]=Ht,_g(ze,Ht),function Tv(t,s,h){return d0(t,s,h)}(Ht,Ct,ze),Cl(Ct)&&bg(Je,ze,Ct),null!=ke&&vg(ze,Ct,Le),Eu}let _1=function C1(t,s,h,P){return Go(!0),s[en].createComment("")};function k0(t,s,h,P){const Q=ni();return Sr(Q,Ma(),s)&&(pn(),Tc(Os(),Q,t,s,h,P)),k0}function Iu(t,s,h,P){return Sr(t,Ma(),h)?s+Ki(h)+P:kn}function M0(t,s){return t<<17|s<<2}function Ed(t){return t>>17&32767}function xy(t){return 2|t}function Ad(t){return(131068&t)>>2}function D0(t,s){return-131069&t|s<<2}function _y(t){return 1|t}function Z1(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Ed(Q):Ad(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];hS(t[ke],s)&&(Le=!0,t[ke+1]=P?_y(Je):xy(Je)),ke=P?Ed(Je):Ad(Je)}Le&&(t[h+1]=P?xy(Q):_y(Q))}function hS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Gr(t,s)>=0}const fo={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function q1(t){return t.substring(fo.key,fo.keyEnd)}function dS(t){return t.substring(fo.value,fo.valueEnd)}function Q1(t,s){const h=fo.textEnd;return h===s?-1:(s=fo.keyEnd=function fS(t,s,h){for(;s32;)s++;return s}(t,fo.key=s,h),xf(t,s,h))}function J1(t,s){const h=fo.textEnd;let P=fo.key=xf(t,s,h);return h===P?-1:(P=fo.keyEnd=function tC(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=iC(t,P,h),P=fo.value=xf(t,P,h),P=fo.valueEnd=function nC(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),iC(t,P,h))}function eC(t){fo.key=0,fo.keyEnd=0,fo.value=0,fo.valueEnd=0,fo.textEnd=t.length}function xf(t,s,h){for(;s=0;h=J1(s,h))A0(t,q1(s),dS(s))}function wy(t){Xo(gS,ic,t,!0)}function ic(t,s){for(let h=function uS(t){return eC(t),Q1(t,xf(t,0,fo.textEnd))}(s);h>=0;h=Q1(s,h))Ys(t,q1(s),!0)}function tl(t,s,h,P){const Q=ni(),ge=pn(),ke=Sl(2);ge.firstUpdatePass&&xn(ge,t,ke,P),s!==kn&&Sr(Q,ke,s)&&My(ge,ge.data[Wr()],Q,Q[en],t,Q[ke+1]=function mS(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(El(t)))),t}(s,h),P,ke)}function Xo(t,s,h,P){const Q=pn(),ge=Sl(2);Q.firstUpdatePass&&xn(Q,null,ge,P);const ke=ni();if(h!==kn&&Sr(ke,ge,h)){const Le=Q.data[Wr()];if(aC(Le,P)&&!Nu(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Xg(Q,Le,ke,h,P)}else!function ky(t,s,h,P,Q,ge,ke,Le){Q===kn&&(Q=Dn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function xn(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Wr()],ke=Nu(t,h);aC(ge,P)&&null===s&&!ke&&(s=!1),s=function Ty(t,s,h,P){const Q=Th(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Fu(h=Kg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Kg(Q,t,s,h,P),null===ge){let ze=function _f(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Ad(P))return t[Ed(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Kg(null,t,s,ze[1],P),ze=Fu(ze,s.attrs,P),function E0(t,s,h,P){t[Ed(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function Sy(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Ed(t[Le+1]);t[P+1]=M0(jt,Le),0!==jt&&(t[jt+1]=D0(t[jt+1],P)),t[Le+1]=function oS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=M0(Le,0),0!==Le&&(t[Le+1]=D0(t[Le+1],P)),Le=P;else t[P+1]=M0(ze,0),0===Le?Le=P:t[ze+1]=D0(t[ze+1],P),ze=P;Je&&(t[P+1]=xy(t[P+1])),Z1(t,dt,P,!0),Z1(t,dt,P,!1),function cS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Gr(ge,s)>=0&&(h[P+1]=_y(h[P+1]))}(s,dt,t,P,ge),ke=M0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Kg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===kn&&(jt=Ct?Dn:void 0);let Ht=Ct?Jr(jt,P):dt===P?jt:void 0;if(Je&&!Cf(Ht)&&(Ht=Jr(ze,P)),Cf(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Ed(Kt):Ad(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=Jr(ze,P))}return Le}function Cf(t){return void 0!==t}function aC(t,s){return!!(t.flags&(s?8:16))}function Zg(t,s,h){Xo(Ys,ic,Iu(ni(),t,s,h),!0)}class Ey{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function qg(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function nc(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Qg(t,s,h,P,Q){if(nc(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function O0(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class Sf{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Ay(t,s,h){Ja("NgControlFlow");const P=ni(),Q=Ma(),ge=P0(P,rn+t);if(Sr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=em(P[ui],rn+s),Je=$h(ge,ze.tView.ssrId);Gp(ge,zp(P,ze,h,{dehydratedView:Je}),0,Cu(ze,Je))}}finally{re(Le)}}else{const Le=zb(ge,0);void 0!==Le&&(Le[ms]=h)}}class Iy{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-Vs}}function Oy(t,s){return s}class Py{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function Ly(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Ja("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new Py(Ht,li);Kt[rn+t]=bi,Eu(t+1,s,h,P,Q,ge),Ht&&Eu(t+2,ze,Je,dt,Ct,jt)}class Ry extends Ey{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Vs}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[ar];this.needsIndexUpdate||=s!==this.length,Gp(this.lContainer,h,s,Cu(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function Fy(t,s){return Pp(t,s)}(this.lContainer,s)}create(s,h){const P=$h(this.lContainer,this.templateTNode.tView.ssrId);return zp(this.hostLView,this.templateTNode,new Iy(this.lContainer,h,s),{dehydratedView:P})}destroy(s){dg(s[ui],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=Ma(),ze=0===ke.length;if(Sr(P,Le,ze)){const Je=h+2,dt=P0(P,Je);if(ze){const Ct=em(Q,Je),jt=$h(dt,Ct.tView.ssrId);Gp(dt,zp(P,Ct,void 0,{dehydratedView:jt}),0,Cu(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function P0(t,s){return t[s]}function em(t,s){return vh(t,s)}function tm(t,s,h,P){const Q=ni(),ge=pn(),ke=rn+t,Le=Q[en],ze=ge.firstCreatePass?function R0(t,s,h,P,Q,ge){const ke=s.consts,ze=Np(s,t,2,P,Xa(ke,Q));return Nb(s,h,ze,Xa(ke,ge)),null!==ze.attrs&&Td(ze,ze.attrs,!1),null!==ze.mergedAttrs&&Td(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=lC(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=Cl(ze);return aa(ze,!0),jm(Le,Je,ze),!function cf(t){return!(32&~t.flags)}(ze)&&Uc()&&Bm(ge,Q,Je,ze),0===function Tl(){return an.lFrame.elementDepthCount}()&&$o(Je,Q),function sd(){an.lFrame.elementDepthCount++}(),dt&&(bg(ge,Q,ze),Ob(ge,ze,Q)),null!==P&&vg(Q,ze),tm}function im(){let t=hs();Bd()?od():(t=t.parent,aa(t,!1));const s=t;(function Fd(t){return an.skipHydrationRootTNode===t})(s)&&function rd(){an.skipHydrationRootTNode=null}(),function jf(){an.lFrame.elementDepthCount--}();const h=pn();return h.firstCreatePass&&(Wc(h,t),zl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function Xd(t){return!!(8&t.flags)}(s)&&Xg(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Oh(t){return!!(16&t.flags)}(s)&&Xg(h,s,ni(),s.stylesWithoutHost,!1),im}function nm(t,s,h,P){return tm(t,s,h,P),im(),nm}let lC=(t,s,h,P,Q,ge)=>(Go(!0),Rm(P,Q,function hd(){return an.lFrame.currentNamespace}()));function sm(t,s,h){const P=ni(),Q=pn(),ge=t+rn,ke=Q.firstCreatePass?function By(t,s,h,P,Q){const ge=s.consts,ke=Xa(ge,P),Le=Np(s,t,8,"ng-container",ke);return null!==ke&&Td(Le,ke,!0),Nb(s,h,Le,Xa(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];aa(ke,!0);const Le=hC(Q,P,ke,t);return P[ge]=Le,Uc()&&Bm(Q,P,Le,ke),$o(Le,P),Cl(ke)&&(bg(Q,P,ke),Ob(Q,ke,P)),null!=h&&vg(P,ke),sm}function N0(){let t=hs();const s=pn();return Bd()?od():(t=t.parent,aa(t,!1)),s.firstCreatePass&&(Wc(s,t),zl(t)&&s.queries.elementEnd(t)),N0}function F0(t,s,h){return sm(t,s,h),N0(),F0}let hC=(t,s,h,P)=>(Go(!0),xb(s[en],""));function dC(){return ni()}function jy(t,s,h){const P=ni();return Sr(P,Ma(),s)&&Qa(pn(),Os(),P,t,s,P[en],h,!0),jy}function Vy(t,s,h){const P=ni();if(Sr(P,Ma(),s)){const ge=pn(),ke=Os();Qa(ge,ke,P,t,s,Wm(Th(ge.data),ke,P),h,!0)}return Vy}const ju=void 0;var uC=["en",[["a","p"],["AM","PM"],ju],[["AM","PM"],ju,ju],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],ju,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],ju,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",ju,"{1} 'at' {0}",ju],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function TS(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let kf={};function B0(t){const s=function kS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=fC(s);if(h)return h;const P=s.split("-")[0];if(h=fC(P),h)return h;if("en"===P)return uC;throw new me(701,!1)}function pC(t){return B0(t)[Mf.PluralCase]}function fC(t){return t in kf||(kf[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),kf[t]}var Mf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Mf||{});const Df="en-US",j0={marker:"element"},Ef={marker:"ICU"};var nl=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(nl||{});let gC=Df;function zy(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?fg(t,0,h):ws(h[Q])}function bC(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];yC(P)||IS(P,s)&&null===xC(P)&&OS(P,s.index)}}function yC(t){return!(64&t.type)}function IS(t,s){return yC(s)||t.index>s.index}function xC(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function OS(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Wx(zy,bC),t.insertBeforeIndex=s)}function LS(t,s,h){const P=Ib(t,h,64,null,null);return vC(s,P),P}let lm=(t,s,h,P)=>(Go(!0),function Hy(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return xb(P,s);case Node.TEXT_NODE:return yb(P,s);case Node.ELEMENT_NODE:return Rm(P,s,null)}}(t,h,P));function BS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function V0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Dn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[ui].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const hm=/\ufffd(\d+):?\d*\ufffd/gi,zS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,Af="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,GS=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,HS=/\uE500/g;function Uy(t,s,h,P,Q,ge,ke){const Le=mg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function H0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(FC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function BC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=q0(ha()).getInertBodyElement(Le),Kt=wm(Ht)||Ht;return Kt?Xy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function Xy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=mg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(xm.hasOwnProperty(bi)){U0(ge,j0,bi,Je,Kt),s.data[Kt]=bi;const ys=li.attributes;for(let Ao=0;Ao>>nl.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=lm(t,dt,s[ge],(ke&nl.COMMENT)===nl.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Uc()),Je&&null!==h&&jt&&mu(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),jd(!0)}function De(t,s,h){W(t,s,h),function ce(){jd(!1)}()}function Mt(t,s,h,P){const Q=ni(),ge=pn(),ke=hs();return Zt(ge,Q,Q[en],ke,t,s,P),Mt}function Zt(t,s,h,P,Q,ge,ke){const Le=Cl(P),Je=t.firstCreatePass&&Um(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=so(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?ys=>ke(ws(ys[P.index])):P.index;let _n=null;if(!ke&&Le&&(_n=function Wt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==_n)(_n.__ngLastListenerFn__||_n).__ngNextListenerFn__=ge,_n.__ngLastListenerFn__=ge,jt=!1;else{ge=Xt(P,s,dt,ge,!1);const ys=h.listen(bi,Q,ge);Ct.push(ge,ys),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=Xt(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?zo(t.index,s):s);let ze=hi(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=hi(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function Ci(t=1){return function Hf(t){return(an.lFrame.contextLView=function yh(t,s){for(;t>0;)s=s[bs],t--;return s}(t,an.lFrame.contextLView))[ms]}(t)}function gi(t,s){let h=null;const P=function Ir(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Go(!0),yb(s[en],P));function XC(t){return Zy("",t,""),XC}function Zy(t,s,h){const P=ni(),Q=Iu(P,t,s,h);return Q!==kn&&fh(P,Wr(),Q),Zy}function YC(t,s,h,P,Q){const ge=ni(),ke=function Ou(t,s,h,P,Q,ge){const Le=Du(t,So(),h,Q);return Sl(2),Le?s+Ki(h)+P+Ki(Q)+ge:kn}(ge,t,s,h,P,Q);return ke!==kn&&fh(ge,Wr(),ke),YC}function KC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function Pu(t,s,h,P,Q,ge,ke,Le){const Je=_0(t,So(),h,Q,ke);return Sl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:kn}(Le,t,s,h,P,Q,ge,ke);return ze!==kn&&fh(Le,Wr(),ze),KC}function ZC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Lu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=ec(t,So(),h,Q,ke,ze);return Sl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:kn}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==kn&&fh(Je,Wr(),dt),ZC}function qC(t,s,h){s1(s)&&(s=s());const P=ni();return Sr(P,Ma(),s)&&Qa(pn(),Os(),P,t,s,P[en],h,!1),qC}function ik(t,s){const h=s1(t);return h&&t.set(s),h}function QC(t,s){const h=ni(),P=pn(),Q=hs();return Zt(P,h,h[en],Q,t,s),QC}function JC(t,s,h,P,Q){if(t=Dt(t),Array.isArray(t))for(let ge=0;ge>20;if(Fo(t)||!t.multi){const Ht=new $c(Je,Q,Ql),Kt=tw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Kd(ud(Le,ke),ge,ze),ew(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=tw(ze,s,dt+jt,Ct),Kt=tw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Kd(ud(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new $c(t,h,Ql);return ge.multi=[],ge.index=s,ge.componentProviders=0,nk(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),ew(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else ew(ge,t,Ht>-1?Ht:Kt,nk(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function ew(t,s,h,P){const Q=Fo(s),ge=function _a(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Dt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function nk(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function tw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=pn();if(P.firstCreatePass){const Q=Ur(t);JC(h,P.data,P.blueprint,Q,!0),JC(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=ml(0,h.type),Q=P.length>0?qv([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(Co))})}return t})();function rk(t){Ja("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function fk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===kn?kc(Q,P,h?s.call(h):s()):Gg(Q,P)}function gk(t,s,h,P){return wk(ni(),oo(),t,s,h,P)}function mk(t,s,h,P,Q){return Tk(ni(),oo(),t,s,h,P,Q)}function bk(t,s,h,P,Q,ge){return function Sk(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return _0(t,ze,Q,ge,ke)?kc(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):W0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function vk(t,s,h,P,Q,ge,ke){return function kk(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return ec(t,Je,Q,ge,ke,Le)?kc(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):W0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function yk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=ec(Je,ze,h,P,Q,ge);return Sr(Je,ze+4,ke)||dt?kc(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):Gg(Je,ze+5)}function xk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=ec(dt,Je,h,P,Q,ge);return Du(dt,Je+4,ke,Le)||Ct?kc(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):Gg(dt,Je+6)}function _k(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=ec(Ct,dt,h,P,Q,ge);return _0(Ct,dt+4,ke,Le,ze)||jt?kc(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):Gg(Ct,dt+7)}function Ck(t,s,h,P){return function Mk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Mr(P.type)),Le=Gs(Ql);try{const ze=Xc(!1),Je=ge();return Xc(ze),function go(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Ek(t,s,h){const P=t+rn,Q=ni(),ge=jc(Q,P);return $0(Q,P)?wk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function Ak(t,s,h,P){const Q=t+rn,ge=ni(),ke=jc(ge,Q);return $0(ge,Q)?Tk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function $0(t,s){return t[ui].data[s].pure}function Ik(t,s){return Sg(t,s)}class Xk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Yk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Jk=new $e(""),eM=new $e("");let cw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,cw||(function OE(t){cw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Tr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(Tr),Is(tM),Is(eM))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),tM=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return cw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hw(t){return!!t&&"function"==typeof t.then}function iM(t){return!!t&&"function"==typeof t.subscribe}const nM=new $e("");let dw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=qi(nM,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(hw(ge))h.push(ge);else if(iM(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uw=new $e("");function oM(t,s){return Array.isArray(s)?s.reduce(oM,t):{...t,...s}}let zu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=qi(su),this.afterRenderEffectManager=qi(ef),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=qi(lf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=qi(Co)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof Cd;if(!this._injector.get(dw).done)throw!Q&&xo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(Su).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Mu),Je=ke.create(Ws.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Jk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),ex(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Km)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>pw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>pw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;ex(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(uw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>ex(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ex(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!pw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,Tg(t,s,P)}(t,h,s)}function pw(t){return Nd(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Kv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=Il(qs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new Sd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=qi(Tr),this.applicationRef=qi(zu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=qi(Tr),s=qi(Ml);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=qi(Tr),this.pendingTasks=qi(lf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Tr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Tr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ix=new $e("",{providedIn:"root",factory:()=>qi(ix,mn.Optional|mn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Df}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),fw=new $e("");let hM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function mv(t="zone.js",s){return"noop"===t?new Ng:"zone.js"===t?new Tr(s):t}(P?.ngZone,function cM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function AT(t,s,h){return new Yv(t,s,h)}(h.moduleType,this.injector,function lM(t){return[{provide:Tr,useFactory:t},{provide:Lo,multi:!0,useFactory:()=>{const s=qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Lo,multi:!0,useFactory:()=>{const s=qi(UE);return()=>{s.initialize()}}},{provide:su,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Ml,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{ex(this._modules,ge),Le.unsubscribe()})}),function rM(t,s,h){try{const P=h();return hw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(dw);return Le.runInitializers(),Le.donePromise.then(()=>(function mC(t){"string"==typeof t&&(gC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(ix,Df)||Df),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=oM({},P);return function VE(t,s,h){const P=new Kv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(zu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(fw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(Ws))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Gu=null;const dM=new $e("");function uM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=gw();if(!ke||ke.injector.get(dM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Gu&&!Gu.get(dM,!1))throw new me(400,!1);(function sM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Gu=t;const s=t.get(hM);(function fM(t){t.get(zh,null)?.forEach(h=>h())})(t)}(function pM(t=[],s){return Ws.create({name:s,providers:[{provide:Fs,useValue:"platform"},{provide:fw,useValue:new Set([()=>Gu=null])},...t]})}(Le,P))}return function KE(t){const s=gw();if(!s)throw new me(401,!1);return s}()}}function gw(){return Gu?.get(hM)??null}function qE(){}let mM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(ra(t)&&!h){const P=zo(t.index,s);return new wu(P,P)}return 47&t.type?new wu(s[Kn],s):null}(hs(),ni(),!(16&~t))}class xM{constructor(){}supports(s){return x0(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new _M),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new _M),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class _M{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function CM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function TM(){return new xw([new xM])}let xw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:TM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||TM()),deps:[[t,new zr,new tr]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function SM(){return new _w([new wM])}let _w=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:SM});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||SM()),deps:[[t,new zr,new tr]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=uM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zu))};static#t=this.\u0275mod=Nl({type:t});static#i=this.\u0275inj=Mn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Ja("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=qi(lf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Ml,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function XM(t,s){Ja("NgSignals"),!s?.injector&&Ge();const h=s?.injector??qi(Ws),P=!0!==s?.manualCleanup?h.get(Dl):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(mM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[yl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||_o();return new Sd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new Sd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Mr,X1:()=>ja,YN:()=>Jo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>yo,qT:()=>sc,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(bn){return Bt.onChange(bn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(bn){return Bt._handleInput(bn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(bn){return Bt._compositionEnd(bn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Qt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Dt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class di extends Qt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends di{}const jn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function Gn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function Cs(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function _s(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Mi(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Mi(ct._rawValidators,Bt),Mi(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(bn=>bn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(bn=>bn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Mi(ct._rawValidators,vt),Mi(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const ss=class extends Qt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const jr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,bn,to){super(),this._changeDetectorRef=bn,this.callSetDisabledState=to,this.control=new ss,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Gn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(jn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([jr]),M.Vt3,M.OA$]})}return ot})(),sc=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const ur={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(bn){return Bt.onChange(bn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([ur]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),al={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return Gn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof ss)(Bt)&&(Gn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function Mn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function Br(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(jn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(bn){return Bt.onSubmit(bn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([al]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ll={provide:x,useExisting:(0,M.Rfq)(()=>pa)};let pa=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ll]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof pa)}const bo={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,bn){super(),this._ngModelWarningConfig=bn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([bo]),M.Vt3,M.OA$]})}return ot})();let tr=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const dl={provide:F,useExisting:(0,M.Rfq)(()=>Mr),multi:!0};let Mr=(()=>{class ot extends tr{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Oo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([dl]),M.Vt3]})}return ot})(),Ks=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Dn extends Qt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function Qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let yo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return Qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new di(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(Qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new ss(Ye,{...Vi,nonNullable:!0})):new ss(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(bn=>this._createControl(bn));return new Dn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof ss||Ye instanceof Qt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Jo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:jn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ks]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:jn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ks]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Dt){return new URL(Dt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Dt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Dt)};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const fe=new M.nKC("");let pe=(()=>{class Dt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Qt=>{Qt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Qt){return this._findPluginFor(wt).addEventListener(_t,wt,Qt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(di=>di.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Dt{constructor(_t,wt,Qt,di={}){this.doc=_t,this.appId=wt,this.nonce=Qt,this.platformId=di,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(di),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Qt=>Qt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Qt=>{null!=Qt.textContent&&wt.set(Qt.textContent,Qt)}),wt}return null}changeUsageCount(_t,wt){const Qt=this.styleRef;if(Qt.has(_t)){const di=Qt.get(_t);return di.usage+=wt,di.usage}return Qt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Qt=this.styleNodesInDOM,di=Qt?.get(wt);if(di?.parentNode===_t)return Qt.delete(wt),di.removeAttribute(te),di;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Qt=this.getStyleElement(_t,wt),di=this.styleRef,Fi=di.get(wt)?.elements;Fi?Fi.push(Qt):di.set(wt,{elements:[Qt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Dt,At){return At.map(_t=>_t.replace(B,Dt))}let z=(()=>{class Dt{constructor(_t,wt,Qt,di,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Qt,this.removeStylesOnCompDestroy=di,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Qt=this.getOrCreateRenderer(_t,wt);return Qt instanceof n?Qt.applyToHost(_t):Qt instanceof o&&Qt.applyStyles(),Qt}getOrCreateRenderer(_t,wt){const Qt=this.rendererByCompId;let di=Qt.get(wt.id);if(!di){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,xs=this.removeStylesOnCompDestroy,jn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:di=new n(vi,Gi,wt,this.appId,xs,Fi,mi,jn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,jn);default:di=new o(vi,Gi,wt,xs,Fi,mi,jn)}Qt.set(wt.id,di)}return di}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();class O{constructor(At,_t,wt,Qt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Qt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Qt){if(Qt){_t=Qt+":"+_t;const di=A[Qt];di?At.setAttributeNS(di,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Qt=A[wt];Qt?At.removeAttributeNS(Qt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Qt){Qt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Qt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Dt){return"TEMPLATE"===Dt.tagName&&void 0!==Dt.content}class y extends O{constructor(At,_t,wt,Qt,di,Fi,mi,vi){super(At,di,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Qt.id,Qt.styles);for(const xs of Gi){const jn=document.createElement("style");mi&&jn.setAttribute("nonce",mi),jn.textContent=xs,this.shadowRoot.appendChild(jn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Qt,di,Fi,mi,vi){super(At,di,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Qt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Qt,di,Fi,mi,vi){const Gi=Qt+"-"+wt.id;super(At,_t,wt,di,Fi,mi,vi,Gi),this.contentAttr=function _(Dt){return D.replace(B,Dt)}(Gi),this.hostAttr=function b(Dt){return L.replace(B,Dt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Dt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Qt){return _t.addEventListener(wt,Qt,!1),()=>this.removeEventListener(_t,wt,Qt)}removeEventListener(_t,wt,Qt){return _t.removeEventListener(wt,Qt)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Dt=>Dt.altKey,control:Dt=>Dt.ctrlKey,meta:Dt=>Dt.metaKey,shift:Dt=>Dt.shiftKey};let k=(()=>{class Dt extends J{constructor(_t){super(_t)}supports(_t){return null!=Dt.parseEventName(_t)}addEventListener(_t,wt,Qt){const di=Dt.parseEventName(wt),Fi=Dt.eventCallback(di.fullKey,Qt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,di.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Qt=wt.shift();if(0===wt.length||"keydown"!==Qt&&"keyup"!==Qt)return null;const di=Dt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const xs=wt.indexOf(Gi);xs>-1&&(wt.splice(xs,1),Fi+=Gi+".")}),Fi+=di,0!=wt.length||0===di.length)return null;const vi={};return vi.domEventName=Qt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Qt=d[_t.key]||_t.key,di="";return wt.indexOf("code.")>-1&&(Qt=_t.code,di="code."),!(null==Qt||!Qt)&&(Qt=Qt.toLowerCase()," "===Qt?Qt="space":"."===Qt&&(Qt="dot"),l.forEach(Fi=>{Fi!==Qt&&(0,C[Fi])(_t)&&(di+=Fi+".")}),di+=Qt,di===wt)}static eventCallback(_t,wt,Qt){return di=>{Dt.matchEventFullKeyCode(di,_t)&&Qt.runGuarded(()=>wt(di))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Qt=!0)=>{const di=At.findTestabilityInTree(wt,Qt);if(null==di)throw new M.wOt(5103,!1);return di},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Qt=M.JZv.getAllAngularTestabilities();let di=Qt.length;const Fi=function(){di--,0==di&&wt()};Qt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Dt{constructor(_t){}static withServerTransition(_t){return{ngModule:Dt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Dt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Dt})(),he=(()=>{class Dt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac,providedIn:"root"})}return Dt})(),Xe=(()=>{class Dt{static#e=this.\u0275fac=function(wt){return new(wt||Dt)};static#t=this.\u0275prov=M.jDH({token:Dt,factory:function(wt){let Qt=null;return Qt=wt?new(wt||Dt):M.KVO(Ze),Qt},providedIn:"root"})}return Dt})(),Ze=(()=>{class Dt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac,providedIn:"root"})}return Dt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>bo,wF:()=>un,Kp:()=>ms,b:()=>Pi,Ix:()=>ui,Wk:()=>gs,wQ:()=>ks,iI:()=>Cl,n3:()=>Io});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new Gn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function di(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Dt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Dt(Re.path)}${function Qt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Dt(Ue)}=${Dt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,xs=/^[^=?&#]+/,ls=/^[^&#]+/;class Gn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function jn(Re){const Ue=Re.match(xs);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Mi(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Mi(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,Jt]of Object.entries(mt.children))Ue[Ot]=Jt;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function _s(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Yt of mt.children){const Ii=Be(Yt);Ot[Yt.outlet]=Ii}const Jt=new Me(mt.url,Ot);return mt===Re&&(Ue=Jt),Jt}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return Mn(rt,rt,rt,Be,We);const mt=function Kr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new mo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const Jt={};return Object.entries(mt.outlets).forEach(([Yt,Ii])=>{Jt[Yt]="string"==typeof Ii?Ii.split("/"):Ii}),[...rt,{outlets:Jt}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((Jt,Yt)=>{0==Yt&&"."===Jt||(0==Yt&&""===Jt?Be=!0:".."===Jt?Ue++:""!=Jt&&rt.push(Jt))}),rt):[...rt,mt]},[]);return new mo(Be,Ue,We)}(Ue);if(mt.toRoot())return Mn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new nr(Ue,!0,0);if(!Be)return new nr(Ue,!1,NaN);if(null===Be.parent)return new nr(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new nr(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),Jt=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return Mn(rt,Ot.segmentGroup,Jt,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function Cs(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function Mn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Yt,Ii])=>{mt[Yt]=Array.isArray(Ii)?Ii.map(vn=>`${vn}`):`${Ii}`}),Ot=Re===Ue?Be:Br(Re,Ue,Be);const Jt=dn(Mi(Ot));return new _e(Jt,mt,rt)}function Br(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:Br(mt,Ue,Be)}),new Me(Re.segments,We)}class mo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(Cs);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class nr{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],Jt=Be[We];if(Cs(Jt))break;const Yt=`${Jt}`,Ii=We0&&void 0===Yt)break;if(Yt&&Ii&&"object"==typeof Ii&&void 0===Ii.outlets){if(!si(Yt,Ii,Ot))return mt;We+=2}else{if(!si(Yt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class ss extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class rs extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class er extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class is extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Zr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class jr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class sc{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class ur{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class qr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mn{}class Zo{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Qr,this.attachRef=null}}let Qr=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class ol{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=al(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=al(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function al(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=al(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ll extends ol{constructor(Ue,Be){super(Ue),this.snapshot=Be,ga(this,Ue)}toString(){return this.snapshot.toString()}}function pa(Re){const Ue=function Ra(Re){const mt=new fa([],{},{},"",{},w,Re,null,{});return new kr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),Jt=new bo(Be,We,mt,Ot,rt,w,Re,Ue.root);return Jt.snapshot=Ue.root,new ll(new Hs(Jt,[]),Ue)}class bo{constructor(Ue,Be,We,rt,mt,Ot,Jt,Yt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=Jt,this._futureSnapshot=Yt,this.title=this.dataSubject?.pipe((0,_.T)(Ii=>Ii[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&Vr(rt)&&(We.resolve[X]=rt.title),We}class fa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,Jt,Yt,Ii){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=Jt,this.routeConfig=Yt,this._resolve=Ii}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class kr extends ol{constructor(Ue,Be){super(Be),this.url=Ue,ga(this,Be)}toString(){return Is(this._root)}}function ga(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>ga(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||qi(Re.parent,Ue.parent))}function Vr(Re){return"string"==typeof Re.title||null===Re.title}let Io=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(Qr),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(vo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,Jt=this.parentContexts.getOrCreateContext(this.name).children,Yt=new ma(Be,Jt,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Yt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ma{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===bo?this.route:Ue===Qr?this.childContexts:this.parent.get(Ue,Be)}}const vo=new M.nKC("");let ba=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,Jt],Yt)=>(Jt={...mt,...Ot,...Jt},0===Yt?(0,Pe.of)(Jt):Promise.resolve(Jt)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:Jt}of Ot.inputs)Be.activatedComponentRef.setInput(Jt,mt[Jt]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Oo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function tr(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Oo(Re,We,rt);return Oo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(Jt=>Oo(Re,Jt)),Ot}}const We=function hl(Re){return new bo(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Oo(Re,mt));return new Hs(We,rt)}}const zr="ngNavigationCancelingError";function dl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Mr(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Mr(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[zr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[zr]}let Dr=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Io],encapsulation:2})}return Re})();function Gr(Re){const Ue=Re.children&&Re.children.map(Gr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Dr),Be}function eo(Re){return Re.outlet||w}function Ks(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class xa{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),Jt=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:Jt})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const Jt=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(Jt.contexts),Ot.attachRef=Jt.componentRef,Ot.route=Jt.route.value,Ot.outlet&&Ot.outlet.attach(Jt.componentRef,Jt.route.value),Us(Jt.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const Jt=Ks(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=Jt,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class Qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class yo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function ul(Re,Ue,Be){const We=Re._root;return Jo(We,Ue?Ue._root:null,Be,[We.value])}function Qi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Jo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,Jt=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Yt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Yt?rt.canActivateChecks.push(new Qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Jo(Re,Ue,mt.component?Jt?Jt.children:null:Be,We,rt),Yt&&Jt&&Jt.outlet&&Jt.outlet.isActivated&&rt.canDeactivateChecks.push(new yo(Jt.outlet.component,Ot))}else Ot&&ct(Ue,Jt,rt),rt.canActivateChecks.push(new Qo(We)),Jo(Re,null,mt.component?Jt?Jt.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,Jt])=>ct(Jt,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new yo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Zs(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Ar=Symbol("INITIAL_VALUE");function or(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Ar)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Ar)return Ar;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Ar),(0,T.s)(1)))}function io(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw dl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Nl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Or(Re){return(0,J.$)(new Nl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const Jt=mt.substring(1);We[rt]=Be[Jt]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([Jt,Yt])=>{Ot[Jt]=this.createSegmentGroup(Ue,Yt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const xo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function qs(Re,Ue,Be,We,rt){const mt=pl(Re,Ue,Be);return mt.matched?(We=function qo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Zh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const Jt=Qi(Ot,Re);return Ce(function Er(Re){return Re&&Ye(Re.canMatch)}(Jt)?Jt.canMatch(Ue,Be):(0,M.N4e)(Re,()=>Jt(Ue,Be)))});return(0,Pe.of)(mt).pipe(or(),io())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...xo}))):(0,Pe.of)(mt)}function pl(Re,Ue,Be){if("**"===Ue.path)return function fl(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...xo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...xo};const mt={};Object.entries(rt.posParams??{}).forEach(([Jt,Yt])=>{mt[Jt]=Yt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function gl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>ml(Re,Ue,We)&&eo(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ac(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Fl(Re,Ue,Be){return Be.some(We=>ml(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Ac(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Ac(Re,Ue,Be,We){const rt={};for(const mt of Be)if(ml(Re,Ue,mt)&&!We[eo(mt)]){const Ot=new Me([],{});rt[eo(mt)]=Ot}return{...We,...rt}}function ac(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&eo(We)!==w){const rt=new Me([],{});Be[eo(We)]=rt}return Be}function ml(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Oc{}class Bl{constructor(Ue,Be,We,rt,mt,Ot,Jt){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=Jt,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=gl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new fa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new kr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Nl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],Jt=function rc(Re,Ue){const Be=Re.filter(We=>eo(We)===Ue);return Be.push(...Re.filter(We=>eo(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,Jt,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let Jt=Be,Yt=Ue,Ii=0;mt.subscribe((0,F._)(Ot,vn=>{const In=Ii++;Yt=Jt?Re(Yt,vn,In):(Jt=!0,vn),We&&Ot.next(Yt)},rt&&(()=>{Jt&&Ot.next(Yt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Or(We);const Ot=Fo(mt);return function ir(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(Jt=>this.processSegmentAgainstRoute(Jt._injector??Ue,Be,Jt,We,rt,mt,Ot).pipe((0,d.W)(Yt=>{if(Yt instanceof Nl)return(0,Pe.of)(null);throw Yt}))),n(Jt=>!!Jt),(0,d.W)(Jt=>{if(Zs(Jt))return function lc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Oc):Or(We);throw Jt}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,Jt){return function Ic(Re,Ue,Be,We){return!!(eo(Re)===We||We!==w&&ml(Ue,Be,Re))&&pl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&Jt?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Or(rt):Or(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:Jt,consumedSegments:Yt,positionalParamSegments:Ii,remainingSegments:vn}=pl(Be,rt,mt);if(!Jt)return Or(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const In=this.applyRedirects.applyRedirectCommands(Yt,rt.redirectTo,Ii);return this.applyRedirects.lineralizeSegments(rt,In).pipe((0,f.Z)(Qs=>this.processSegment(Ue,We,Be,Qs.concat(vn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=qs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(Jt=>Jt.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Yt})=>{const Ii=We._loadedInjector??Ue,{consumedSegments:vn,remainingSegments:In,parameters:Qs}=Jt,Gl=new fa(vn,Qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Fs(Re){return Re.data||{}}(We),eo(We),We.component??We._loadedComponent??null,We,function Bs(Re){return Re.resolve||{}}(We)),{segmentGroup:Hl,slicedSegments:Wa}=gl(Be,vn,In,Yt);if(0===Wa.length&&Hl.hasChildren())return this.processChildren(Ii,Yt,Hl).pipe((0,_.T)($a=>null===$a?null:new Hs(Gl,$a)));if(0===Yt.length&&0===Wa.length)return(0,Pe.of)(new Hs(Gl,[]));const Fc=eo(We)===mt;return this.processSegment(Ii,Yt,Hl,Wa,Fc?w:mt,!0).pipe((0,_.T)($a=>new Hs(Gl,$a instanceof Hs?[$a]:[])))})):Or(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Dc(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const Jt=Qi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(Jt)?Jt.canLoad(Ue,Be):(0,M.N4e)(Re,()=>Jt(Ue,Be)))});return(0,Pe.of)(mt).pipe(or(),io())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Mr(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Lc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Fo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Lc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Fo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function _o(Re){const Ue=Re.children.map(Be=>_o(Be)).flat();return[Re,...Ue]}function jl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Rc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(vl),providedIn:"root"})}return Re})(),vl=(()=>{class Re extends Rc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ia=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Hr(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,Jt=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Gr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function na(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let sa=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Ii=>{mt=Ii}),Jt=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Yt}=We;return Yt&&(0,M.N4e)(Re,()=>Yt({transition:Jt,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ia),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(Qr),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(vo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Rc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(sa),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new sc(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,Jt=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Yt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Yt.id,initialUrl:Yt.rawUrl,extractedUrl:Yt.extractedUrl,trigger:Yt.source,extras:Yt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Ii=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Ii&&"reload"!==(Yt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const In="";return this.events.next(new er(Yt.id,this.urlSerializer.serialize(Yt.rawUrl),In,cn.IgnoredSameUrlNavigation)),Yt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Yt.rawUrl))return(0,Pe.of)(Yt).pipe((0,b.n)(In=>{const Qs=this.transitions?.getValue();return this.events.next(new ss(In.id,this.urlSerializer.serialize(In.extractedUrl),In.source,In.restoredState)),Qs!==this.transitions?.getValue()?te.w:Promise.resolve(In)}),function ta(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function No(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new Bl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:Jt,tree:Yt})=>({...Ot,targetSnapshot:Jt,urlAfterRedirects:Yt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(In=>{mt.targetSnapshot=In.targetSnapshot,mt.urlAfterRedirects=In.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:In.urlAfterRedirects};const Qs=new Zr(In.id,this.urlSerializer.serialize(In.extractedUrl),this.urlSerializer.serialize(In.urlAfterRedirects),In.targetSnapshot);this.events.next(Qs)}));if(Ii&&this.urlHandlingStrategy.shouldProcessUrl(Yt.currentRawUrl)){const{id:In,extractedUrl:Qs,source:Gl,restoredState:Hl,extras:Wa}=Yt,Fc=new ss(In,this.urlSerializer.serialize(Qs),Gl,Hl);this.events.next(Fc);const $a=pa(this.rootComponentType).snapshot;return this.currentTransition=mt={...Yt,targetSnapshot:$a,urlAfterRedirects:Qs,extras:{...Wa,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=Qs,(0,Pe.of)(mt)}{const In="";return this.events.next(new er(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),In,cn.IgnoredByUrlHandlingStrategy)),Yt.resolve(null),te.w}}),(0,l.M)(Yt=>{const Ii=new sr(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects),Yt.targetSnapshot);this.events.next(Ii)}),(0,_.T)(Yt=>(this.currentTransition=mt={...Yt,guards:ul(Yt.targetSnapshot,Yt.currentSnapshot,this.rootContexts)},mt)),function Ir(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Vn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Kh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(Jt=>{const Yt=Ks(Ue)??rt,Ii=Qi(Jt,Yt);return Ce(function to(Re){return Re&&Ye(Re.canDeactivate)}(Ii)?Ii.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Yt,()=>Ii(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(or())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(Jt=>Jt&&function vt(Re){return"boolean"==typeof Re}(Jt)?function pr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function oc(Re,Ue){return null!==Re&&Ue&&Ue(new ur(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function ea(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Yh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Ro(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const Jt=Ot.guards.map(Yt=>{const Ii=Ks(Ot.node)??Be,vn=Qi(Yt,Ii);return Ce(function bn(Re){return Re&&Ye(Re.canActivateChild)}(vn)?vn.canActivateChild(We,Re):(0,M.N4e)(Ii,()=>vn(We,Re))).pipe(n())});return(0,Pe.of)(Jt).pipe(or())}));return(0,Pe.of)(mt).pipe(or())}(Re,rt.path,Be),function Rl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ks(Ue)??Be,Jt=Qi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(Jt)?Jt.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>Jt(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(or())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(Jt)),(0,_.T)(Jt=>({...Be,guardsResult:Jt})))})}(this.environmentInjector,Yt=>this.events.next(Yt)),(0,l.M)(Yt=>{if(mt.guardsResult=Yt.guardsResult,On(Yt.guardsResult))throw dl(0,Yt.guardsResult);const Ii=new Ls(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects),Yt.targetSnapshot,!!Yt.guardsResult);this.events.next(Ii)}),(0,O.p)(Yt=>!!Yt.guardsResult||(this.cancelNavigationTransition(Yt,"",Xi.GuardRejected),!1)),jl(Yt=>{if(Yt.guards.canActivateChecks.length)return(0,Pe.of)(Yt).pipe((0,l.M)(Ii=>{const vn=new jr(Ii.id,this.urlSerializer.serialize(Ii.extractedUrl),this.urlSerializer.serialize(Ii.urlAfterRedirects),Ii.targetSnapshot);this.events.next(vn)}),(0,b.n)(Ii=>{let vn=!1;return(0,Pe.of)(Ii).pipe(function bl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Yt=>Yt.route)),Ot=new Set;for(const Yt of mt)if(!Ot.has(Yt))for(const Ii of _o(Yt))Ot.add(Ii);let Jt=0;return(0,V.H)(Ot).pipe((0,r.H)(Yt=>mt.has(Yt)?function Co(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!Vr(rt)&&(mt[X]=rt.title),function Ca(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function wa(Re,Ue,Be,We){const rt=Ks(Ue)??We,mt=Qi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(Jt=>{mt[Ot]=Jt}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Zs(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Yt,We,Re,Ue):(Yt.data=xr(Yt,Yt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>Jt++),p(1),(0,f.Z)(Yt=>Jt===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>vn=!0,complete:()=>{vn||this.cancelNavigationTransition(Ii,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Ii=>{const vn=new Ki(Ii.id,this.urlSerializer.serialize(Ii.extractedUrl),this.urlSerializer.serialize(Ii.urlAfterRedirects),Ii.targetSnapshot);this.events.next(vn)}))}),jl(Yt=>{const Ii=vn=>{const In=[];vn.routeConfig?.loadComponent&&!vn.routeConfig._loadedComponent&&In.push(this.configLoader.loadComponent(vn.routeConfig).pipe((0,l.M)(Qs=>{vn.component=Qs}),(0,_.T)(()=>{})));for(const Qs of vn.children)In.push(...Ii(Qs));return In};return(0,ie.z)(Ii(Yt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),jl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Yt,targetSnapshot:Ii}=mt,vn=this.createViewTransition?.(this.environmentInjector,Yt.root,Ii.root);return vn?(0,V.H)(vn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Yt=>{const Ii=function cl(Re,Ue,Be){const We=Oo(Re,Ue._root,Be?Be._root:void 0);return new ll(We,Ue)}(Be.routeReuseStrategy,Yt.targetSnapshot,Yt.currentRouterState);return this.currentTransition=mt={...Yt,targetRouterState:Ii},this.currentNavigation.targetRouterState=Ii,mt}),(0,l.M)(()=>{this.events.next(new mn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new xa(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Yt=>this.events.next(Yt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Yt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Yt.targetRouterState.snapshot),Yt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Yt=>{throw Yt}))),(0,H.j)(()=>{!Ot&&!Jt&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Yt=>{if(Jt=!0,cs(Yt))this.events.next(new rs(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Yt.message,Yt.cancellationCode)),function rr(Re){return cs(Re)&&On(Re.url)}(Yt)?this.events.next(new Zo(Yt.url)):mt.resolve(!1);else{this.events.next(new is(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Yt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Yt))}catch(Ii){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Ii)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new rs(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Pi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Qn),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let Qn=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),os=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends os{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(sa),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=pa(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof ss)this.stateMemento=this.createStateMemento();else if(Be instanceof er)this.rawUrlTree=We.initialUrl;else if(Be instanceof Zr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof mn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof rs&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof is?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ns(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof rs||Be instanceof is||Be instanceof er),(0,_.T)(Be=>Be instanceof un||Be instanceof er?us.COMPLETE:Be instanceof rs&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function js(Re){throw Re}const Pr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Hn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let ui=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(os),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(sa),this._events=new I.B,this.errorHandler=this.options.errorHandler||js,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Pi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(vo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof rs&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Zo){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),Jt={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,Jt,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof mn||Re instanceof Zo)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Yt={...rt};delete Yt.navigationId,delete Yt.\u0275routerPageId,0!==Object.keys(Yt).length&&(mt.state=Yt)}const Jt=this.parseUrl(Be);this.scheduleNavigation(Jt,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Gr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:Jt,preserveFragment:Yt}=We,Ii=Yt?this.currentUrlTree.fragment:Ot;let In,vn=null;switch(Jt){case"merge":vn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":vn=this.currentUrlTree.queryParams;break;default:vn=mt||null}null!==vn&&(vn=this.removeEmptyProps(vn));try{In=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),In=this.currentUrlTree.root}return $n(In,Be,vn,Ii??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let Jt,Yt,Ii;Ot?(Jt=Ot.resolve,Yt=Ot.reject,Ii=Ot.promise):Ii=new Promise((In,Qs)=>{Jt=In,Yt=Qs});const vn=this.pendingTasks.add();return ns(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(vn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:Jt,reject:Yt,promise:Ii,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Ii.catch(In=>Promise.reject(In))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,Jt){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=Jt,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Yt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Yt||"area"===Yt,this.isAnchorElement?this.subscription=Be.events.subscribe(Ii=>{Ii instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const Jt=this.urlTree;return!!(null===Jt||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(Jt,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(ui),M.rXU(bo),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(Jt=>{Jt instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function ar(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(ui),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class Ta{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),wo=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,Jt=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(Jt,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(ui),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(Ta),M.KVO(ia))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Bo=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof ss?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof er&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof qr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new qr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function ka(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(ui),rt=Re.get(jo);1===Re.get(yl)&&We.initialNavigation(),Re.get(xl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const jo=new M.nKC("",{factory:()=>new I.B}),yl=new M.nKC("",{providedIn:"root",factory:()=>1}),xl=new M.nKC("");function Vo(Re){return Kn(0,[{provide:xl,useExisting:wo},{provide:Ta,useExisting:Re}])}function gr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const zl=new M.nKC("ROUTER_FORROOT_GUARD"),ra=[E.aZ,{provide:Qe,useClass:st},ui,Qr,{provide:bo,useFactory:function bs(Re){return Re.routerState.root},deps:[ui]},ia,[]];let Cl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[ra,[],{provide:Ga,multi:!0,useValue:Be},{provide:zl,useFactory:qh,deps:[[ui,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Bo(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Vo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Zn(We):[],We?.bindToComponentInputs?Kn(8,[ba,{provide:vo,useExisting:ba}]).\u0275providers:[],We?.enableViewTransitions?gr().\u0275providers:[],[{provide:wl,useFactory:ka},{provide:M.iLQ,multi:!0,useExisting:wl}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(zl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function qh(Re){return"guarded"}function Zn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(ui);return()=>{Ue.setUpLocationChangeListener()}}},{provide:yl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:yl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(ui),mt=Ue.get(jo);ns(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const wl=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Go,do:()=>Wc,Bq:()=>Lr,UN:()=>hu,ZM:()=>Jd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Ut=>Ut.length)){const Ut=Ne.map(ei=>ei.shift());we.next(je?je(...Ut):Ut),Ne.some((ei,ii)=>!ei.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Ut=0;Ut{it[Ut]=ei,!Vt&&!ft[Ut]&&(ft[Ut]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Ut=>{if(Vt){const ei=[Ut,...it];we.next(je?je(...ei):ei)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Ut=!ht()&&ae,ei=(we.left+(Ut&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Ut&&Vt?Vt.offsetTop:0))/it,wi=we.width/Ne,_i=we.height/it;return{width:wi,height:_i,top:ii,right:ei+wi,bottom:ii+_i,left:ei,x:ei,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Qt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function di(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&di(be)?be:Fi(Qt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],di(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Qt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function jn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function xs(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Qt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Dt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Ut=0;if(Ne){it=Ne.width,ft=Ne.height;var ei=ht();(ei||!ei&&"fixed"===je)&&(Vt=Ne.offsetLeft,Ut=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Ut}}(be,ae)):Ee(je)?function Gn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Ut=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Ut}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Ut,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Ut={x:ft,y:je.y-ae.height};break;case U:Ut={x:ft,y:je.y+je.height};break;case se:Ut={x:je.x+je.width,y:Vt};break;case w:Ut={x:je.x-ae.width,y:Vt};break;default:Ut={x:je.x,y:je.y}}var ei=Ne?Pn(Ne):null;if(null!=ei){var ii="y"===ei?"height":"width";switch(it){case x:Ut[ei]=Ut[ei]-(je[ii]/2-ae[ii]/2);break;case N:Ut[ei]=Ut[ei]+(je[ii]/2-ae[ii]/2)}}return Ut}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function Cs(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function Mn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Ut=void 0===Vt?"clippingParents":Vt,ei=je.rootBoundary,ii=void 0===ei?K:ei,wi=je.elementContext,_i=void 0===wi?q:wi,Ai=je.altBoundary,yn=void 0!==Ai&&Ai,sn=je.padding,Cn=void 0===sn?0:sn,Ln=$i("number"!=typeof Cn?Cn:Cs(Cn,G)),vs=be.rects.popper,Rn=be.elements[yn?_i===q?"reference":q:_i],En=function _s(be,je,ae,we){var Ne="clippingParents"===je?function Mi(be){var je=mi(Qt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?jn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Ut,ei){var ii=dn(be,ei,we);return Ut.top=Qe(ii.top,Ut.top),Ut.right=st(ii.right,Ut.right),Ut.bottom=st(ii.bottom,Ut.bottom),Ut.left=Qe(ii.left,Ut.left),Ut},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(Rn)?Rn:Rn.contextElement||lt(be.elements.popper),Ut,ii,ft),An=Lt(be.elements.reference),Ps=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ts=fs(Object.assign({},vs,Ps)),Cr=_i===q?Ts:An,Ns={top:En.top-Cr.top+Ln.top,bottom:Cr.bottom-En.bottom+Ln.bottom,left:En.left-Cr.left+Ln.left,right:Cr.right-En.right+Ln.right},mr=be.modifiersData.offset;if(_i===q&&mr){var Mo=mr[Ne];Object.keys(Ns).forEach(function(cr){var xe=[se,U].indexOf(cr)>=0?1:-1,tt=[Y,U].indexOf(cr)>=0?"y":"x";Ns[cr]+=Mo[tt]*xe})}return Ns}const nr={name:"flip",enabled:!0,phase:"main",fn:function Kr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Ut=ae.fallbackPlacements,ei=ae.padding,ii=ae.boundary,wi=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,yn=void 0===Ai||Ai,sn=ae.allowedAutoPlacements,Cn=je.options.placement,Ln=S(Cn),vs=Ut||(Ln!==Cn&&yn?function mo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(Cn):[p(Cn)]),Rn=[Cn].concat(vs).reduce(function(oi,Li){return oi.concat(S(Li)===X?function Br(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Ut=je.allowedAutoPlacements,ei=void 0===Ut?Ce:Ut,ii=On(je.placement),wi=ii?Vt?me:me.filter(function(yn){return On(yn)===ii}):G,_i=wi.filter(function(yn){return ei.indexOf(yn)>=0});0===_i.length&&(_i=wi);var Ai=_i.reduce(function(yn,sn){return yn[sn]=Mn(be,{placement:sn,boundary:Ne,rootBoundary:it,padding:ft})[S(sn)],yn},{});return Object.keys(Ai).sort(function(yn,sn){return Ai[yn]-Ai[sn]})}(je,{placement:Li,boundary:ii,rootBoundary:wi,padding:ei,flipVariations:yn,allowedAutoPlacements:sn}):Li)},[]),En=je.rects.reference,An=je.rects.popper,Ps=new Map,Ts=!0,Cr=Rn[0],Ns=0;Ns=0,tt=xe?"width":"height",u=Mn(je,{placement:mr,boundary:ii,rootBoundary:wi,altBoundary:_i,padding:ei}),ne=xe?cr?se:w:cr?U:Y;En[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[Mo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){Cr=mr,Ts=!1;break}Ps.set(mr,Ie)}if(Ts)for(var Tt=function(Li){var Zi=Rn.find(function(Yi){var tn=Ps.get(Yi);if(tn)return tn.slice(0,Li).every(function(wn){return wn})});if(Zi)return Cr=Zi,"break"},zt=yn?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==Cr&&(je.modifiersData[we]._skip=!0,je.placement=Cr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,yn=ae.tetherOffset,sn=void 0===yn?0:yn,Cn=Mn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Ln=S(je.placement),Fn=On(je.placement),vs=!Fn,Rn=Pn(Ln),En=function St(be){return"x"===be?"y":"x"}(Rn),An=je.modifiersData.popperOffsets,Ps=je.rects.reference,Ts=je.rects.popper,Cr="function"==typeof sn?sn(Object.assign({},je.rects,{placement:je.placement})):sn,Ns="number"==typeof Cr?{mainAxis:Cr,altAxis:Cr}:Object.assign({mainAxis:0,altAxis:0},Cr),mr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,Mo={x:0,y:0};if(An){if(it){var cr,xe="y"===Rn?Y:w,tt="y"===Rn?U:se,u="y"===Rn?"height":"width",ne=An[Rn],ue=ne+Cn[xe],Ie=ne-Cn[tt],nt=Ai?-Ts[u]/2:0,Tt=Fn===x?Ps[u]:Ts[u],zt=Fn===x?-Ts[u]:-Ps[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Li=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Zi=Li[xe],Yi=Li[tt],tn=Rt(0,Ps[u],oi[u]),wn=vs?Ps[u]/2-nt-tn-Zi-Ns.mainAxis:Tt-tn-Zi-Ns.mainAxis,nn=vs?-Ps[u]/2+nt+tn+Yi+Ns.mainAxis:zt+tn+Yi+Ns.mainAxis,qn=je.elements.arrow&&jn(je.elements.arrow),Ds=qn?"y"===Rn?qn.clientTop||0:qn.clientLeft||0:0,$s=null!=(cr=mr?.[Rn])?cr:0,lo=ne+nn-$s,Uo=Rt(Ai?st(ue,ne+wn-$s-Ds):ue,ne,Ai?Qe(Ie,lo):Ie);An[Rn]=Uo,Mo[Rn]=Uo-ne}if(Vt){var _c,da=An[En],du="y"===En?"height":"width",Qf=da+Cn["x"===Rn?Y:w],Jf=da-Cn["x"===Rn?U:se],Tp=-1!==[Y,w].indexOf(Ln),El=null!=(_c=mr?.[En])?_c:0,oh=Tp?Qf:da-Ps[du]-Ts[du]-El+Ns.altAxis,eg=Tp?da+Ps[du]+Ts[du]-El-Ns.altAxis:Jf,tg=Ai&&Tp?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(oh,da,eg):Rt(Ai?oh:Qf,da,Ai?eg:Jf);An[En]=tg,Mo[En]=tg-da}je.modifiersData[we]=Mo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Ut=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var wi=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:Cs(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Ut?Y:w,yn="y"===Ut?U:se,sn=ae.rects.reference[ii]+ae.rects.reference[Ut]-ft[Ut]-ae.rects.popper[ii],Cn=ft[Ut]-ae.rects.reference[Ut],Ln=jn(it),Fn=Ln?"y"===Ut?Ln.clientHeight||0:Ln.clientWidth||0:0,An=Fn/2-_i[ii]/2+(sn/2-Cn/2),Ps=Rt(wi[Ai],An,Fn-_i[ii]-wi[yn]);ae.modifiersData[we]=((je={})[Ut]=Ps,je.centerOffset=Ps-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ss(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Ut={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||di(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Ut=Lt(je,!0)).x+=je.clientLeft,Ut.y+=je.clientTop):it&&(Ut.x=ti(it))),{x:ft.left+Vt.scrollLeft-Ut.x,y:ft.top+Vt.scrollTop-Ut.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Ut=je.get(Vt);Ut&&Ne(Ut)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var er={placement:"bottom",modifiers:[],strategy:"absolute"};function is(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(wi,je.rects,it),ii},{}),Vt=ft[je.placement],ei=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=ei),je.modifiersData[we]=ft}},Hs=["*"],Ys=["dialog"];function ea(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function oc(be,je){}function Rl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,ea,1,1,"ng-template",null,0,M.C5r)(3,oc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Oc={animation:!0,transitionTimerDelayMs:5};let No=(()=>{class be{constructor(){this.animation=Oc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function _a(be){return"string"==typeof be}function ta(be){return null!=be}function wa(be){return(be||document.body).getBoundingClientRect()}function vl(be=document){const je=be?.activeElement;return je?je.shadowRoot?vl(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Oc,ia=new Map,Hr=(be,je,ae,we)=>{let Ne=we.context||{};const it=ia.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ia.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function jl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Ut=new ie.B,ei=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ia.set(je,{transition$:Vt,complete:()=>{Ut.next(),Ut.complete()},context:Ne});const ii=function Bl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const wi=(0,re.R)(je,"transitionend").pipe((0,I.Q)(ei),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(ei)),wi,Ut).pipe((0,I.Q)(ei)).subscribe(()=>{ia.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},sa=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),wa(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Hr(this._zone,this._element.nativeElement,sa,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Pr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Bo=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),cc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Zn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Zn||{});const ed=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function Ca(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const ei=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Zn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!ed(Ai,ft)&&("inside"===ae?ed(Ai,it)&&Re(Ai,Vt):"outside"===ae?!ed(Ai,it):Re(Ai,Vt)||!ed(Ai,it))}),(0,I.Q)(Ne)),wi=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([ei.pipe((0,T.T)(_i=>0)),wi.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let Jt=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Yt=/\s+/,Ii=/ +/gi,vn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},Qs=/^left/,Gl=/^right/,Hl=/^start/,Wa=/^end/;function $a({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Yt),it=we.findIndex(ei=>"auto"===ei);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(ei){null==we.find(ii=>-1!==ii.search("^"+ei))&&we.splice(it++,1,ei)});const ft=we.map(ei=>function In(be,je){const[ae,we]=vn[be];return je&&we||ae}(ei,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:ei}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),wi=ei.elements.popper,_i=ei.placement;let Ai=wi.className;Ai=Ai.replace(ii,""),Ai+=` ${function Fc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(Qs,"start").replace(Gl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Hl,"top").replace(Wa,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Ii," "),wi.className=Ai}},nr,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function Wu(be){return be}function td(){const be=(0,M.WQX)(Jt);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||Wu)($a(ae,be));je=Qr(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||Wu)($a(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function no(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Wd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),hd=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),kh=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Go=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,kh,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Mh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Wc=(()=>{class be extends Mh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Mh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(hd),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=td(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(no([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Ut,ei)=>{Ut.contains(ae.target)&&(ft=Ut),Ut===vl(this._document)&&(it=ei)}),we!==Zn.Space&&we!==Zn.Enter){if(we!==Zn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Zn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Zn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Zn.Home:it=0;break;case Zn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Ut=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Ut[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Ut[Ut.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Ut})=>{this._nativeElement.contains(Ut)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Go,5),M.wni(it,Mh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Dh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),$d=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class kl{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class rp{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Hr(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Hr(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new kl([we.rootNodes],we)}return new kl([[this._document.createTextNode(`${je}`)]])}return new kl([])}}let bc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Hr(this._zone,this._nativeElement,(ae,we)=>{we&&wa(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Hr(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Eh{update(je){}close(je){}dismiss(je){}}const Ah=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Ih=["animation","backdropClass"];class Xd{_applyWindowOptions(je,ae){Ah.forEach(we=>{ta(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Ih.forEach(we=>{ta(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function bl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Oh=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Oh||{});let Wf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":_a(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Hr(this._zone,ae,()=>ae.classList.remove("show"),we),Hr(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Hr(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&wa(it),it.classList.add("show")},ae),Hr(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Zn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Oh.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Oh.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Hr(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Ys,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),op=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(bc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Zn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Ut]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Ut.focus(),it.preventDefault()),ft===Ut&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ta(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Eh,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Ut=this._getContentRef(ae,Vt,we,ft,Ne);let ei=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Ut.nodes),wi=new Xd(ii,Ut,ei,Ne.beforeDismiss);return this._registerModalRef(wi),this._registerWindowCmpt(ii),wi.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{wi.close(_i)},ft.dismiss=_i=>{wi.dismiss(_i)},ft.update=_i=>{wi.update(_i)},wi.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),ei&&ei.instance&&ei.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),wi}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)($c,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Wf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):_a(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new kl([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new kl([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new kl([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Eh,useValue:it}],parent:ae}),Ut=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),ei=Ut.location.nativeElement;return ft.scrollable&&ei.classList.add("component-host-scrollable"),this._applicationRef.attachView(Ut.hostView),new kl([[ei]],Ut.hostView,Ut)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Lr=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(op),this._config=(0,M.WQX)($d)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Wl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[Lr]})}return be})(),Zd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let qd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Nh=0,Qd=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Rl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),Jd=(()=>{class be{constructor(){this._config=(0,M.WQX)(qd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+Nh++,this._popupService=new rp(Qd),this._windowRef=null,this._positioning=td()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(no([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function dp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function lr(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Ut=new Set,ei=[];let ii;function wi(Ai,yn){be.addEventListener(Ai,yn),ei.push(()=>be.removeEventListener(Ai,yn))}function _i(Ai,yn){clearTimeout(ii),yn>0?ii=setTimeout(Ai,yn):Ai()}for(const[Ai,yn]of Vt)yn?(wi(Ai,()=>{Ut.add(Ai),_i(()=>Ut.size>0&&we(),it)}),wi(yn,()=>{Ut.delete(Ai),_i(()=>0===Ut.size&&Ne(),ft)})):wi(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>ei.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(_a(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),Qc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ql=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ao=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),bp=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),yp=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),yc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ko=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Gh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const rh=[Sn,Pr,Bo,cc,Wd,Dh,Wl,Zd,Gh,Kl,Qc,ql,ao,bp,yp,yc,ko,th];let hu=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[rh,Sn,Pr,Bo,cc,Wd,Dh,Wl,Zd,Gh,Kl,Qc,ql,ao,bp,yp,yc,ko,th]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Qt,vr:()=>nr,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Dt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Qt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),di=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),xs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),jn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),Gn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Mi={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function _s(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Mi[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=_s(xt).toLocaleLowerCase(),this.filteredItems.find($e=>_s($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:_s(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Dt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return _s($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Dt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),ss=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=ss,Ti.value=Hi(It,ss.map(un=>un.value)),yt.push(Ti),yt.push(...ss)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let Cs=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),Mn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),Br=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),mo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const Kr=new M.nKC("ng-select-selection-model");let nr=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const ss=this.selectedItems.find(un=>un.value===Hi);this.unselect(ss)},this.trackByOption=(Hi,ss)=>this.trackByFn?this.trackByFn(ss.value):ss,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Dt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Dt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Dt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(Br),M.rXU(Kr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(mo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Qt,5,M.C4Q),M.wni($t,di,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,xs,5,M.C4Q),M.wni($t,jn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,Gn,5,M.C4Q),M.wni($t,Mn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(Cs,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,Cs,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:Kr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>En,hp:()=>Cn,FP:()=>Ai,yc:()=>ei,Tg:()=>Ut,XI:()=>Ne,bG:()=>cr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Dt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Qt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Dt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function di(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function xs(xe,tt){}function jn(xe,tt){1&xe&&e.DNE(0,xs,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function Gn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Mi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function Cs(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Mn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Br(xe,tt){}function mo(xe,tt){1&xe&&e.DNE(0,Br,0,0,"ng-template")}function Kr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,Cs,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,Mn,1,0,"ChevronDownIcon",7)(9,mo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function nr(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,nr,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,di,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,jn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,Gn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Mi,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,Kr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Qt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Li=Math.ceil((nt+Ie)/7);for(let Zi=0;Zint){let wn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:wn.month,year:wn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,wn.month,wn.year),selectable:this.isSelectable(zt-nt,wn.month,wn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Li&&this.maxDate.toDateString()===Li&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Li=ue+1{let Yi=""+Li;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Li]:Zi[Li];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Li=-1,Zi=-1,Yi=!1,wn=$s=>{let hr=ue+1{let hr=wn($s),lo="@"===$s?14:"!"===$s?20:"y"===$s&&hr?4:"o"===$s?3:2,_c=new RegExp("^\\d{"+("y"===$s?lo:1)+","+lo+"}"),Ia=u.substring(Tt).match(_c);if(!Ia)throw"Missing number at position "+Tt;return Tt+=Ia[0].length,parseInt(Ia[0],10)},qn=($s,hr,lo)=>{let Uo=-1,_c=wn($s)?lo:hr,Ia=[];for(let wr=0;wr<_c.length;wr++)Ia.push([wr,_c[wr]]);Ia.sort((wr,da)=>-(wr[1].length-da[1].length));for(let wr=0;wr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Li=1),ue=0;ue-1)for(oi=1,Li=Zi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Li<=Ie);)oi++,Li-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Li=-1===Li?1:Li),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Li)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Li)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),ss=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],rs=["*"],er=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Li,Zi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Li,"p-overlay-right-start":Zi,"p-overlay-right-end":Yi}),is=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Zr=xe=>({value:"visible",params:xe}),sr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function jr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,jr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Zr,e.sMw(7,is,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,sr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,er,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const sc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},ur=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([sc])],ngContentSelectors:rs,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(ur)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var qr=He(38757);const mn=["element"],Zo=["content"],rl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),Qr=(xe,tt)=>({$implicit:xe,options:tt}),ol=xe=>({"p-scroller-loading":xe}),al=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ll=(xe,tt)=>({rows:xe,columns:tt});function pa(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,pa,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,Qr,u.loadedItems,u.getContentOptions()))}}function bo(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bo,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,Qr,u,ue.getOptions(ne)))}}function fa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,ol,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function kr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function ga(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ga,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function qi(xe,tt){1&xe&&e.eu8(0)}function Vr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Io(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ma(xe,tt){if(1&xe&&e.DNE(0,Vr,2,5,"ng-container",6)(1,Io,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function vo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ma,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,al,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ba(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,fa,3,7,"ng-template",null,2,e.C5r)(6,kr,1,2,"div",8)(7,vo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function cl(xe,tt){1&xe&&e.eu8(0)}function Oo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cl,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,Qr,u.items,e.l_i(2,ll,u._items,u.loadedColumns)))}}function tr(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Oo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let hl=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Li=(qn=0,Ds)=>qn<=Ds?0:qn,Zi=(qn,Ds,$s)=>qn*Ds+$s,Yi=(qn=0,Ds=0)=>this.scrollTo({left:qn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,wn=!1,nn=!1;this.both?(tn={rows:Li(u[0],zt[0]),cols:Li(u[1],zt[1])},Yi(Zi(tn.cols,oi[1],ai.left),Zi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,wn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Li(u,zt),this.horizontal?Yi(Zi(tn,oi,ai.left),nt):Yi(Tt,Zi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),wn=tn!==Ie),this.isRangeChanged=wn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Li=0)=>this.scrollTo({left:oi,top:Li,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,qn)=>nn?nn>qn?nn-qn:nn:0,nt=(nn,qn)=>Math.floor(nn/(qn||nn)),Tt=(nn,qn,Ds,$s,hr,lo)=>nn<=hr?hr:lo?Ds-$s-hr:qn+hr-1,zt=(nn,qn,Ds,$s,hr,lo,Uo)=>nn<=lo?0:Math.max(0,Uo?nnqn?Ds:nn-2*lo),ai=(nn,qn,Ds,$s,hr,lo=!1)=>{let Uo=qn+$s+2*hr;return nn>=hr&&(Uo+=hr+1),this.getLast(Uo,lo)},oi=Ie(ne.scrollTop,ue.top),Li=Ie(ne.scrollLeft,ue.left);let Zi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,wn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,qn=this.lastScrollPos.left<=Li;if(!this._appendOnly||this._appendOnly&&(nn||qn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Li,this._itemSize[1])},$s={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],qn)};Zi={rows:zt(Ds.rows,$s.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,$s.cols,this.first.cols,0,0,this.d_numToleratedItems[1],qn)},Yi={rows:ai(Ds.rows,Zi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,Zi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=Zi.rows!==this.first.rows||Yi.rows!==this.last.rows||Zi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,wn={top:oi,left:Li}}}else{const nn=this.horizontal?Li:oi,qn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&qn){const Ds=nt(nn,this._itemSize);Zi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,qn),this.first,0,0,this.d_numToleratedItems,qn),Yi=ai(Ds,Zi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=Zi!==this.first||Yi!==this.last||this.isRangeChanged,wn=nn}}return{first:Zi,last:Yi,isRangeChanged:tn,scrollPos:wn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(mn,5),e.GBs(Zo,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:rl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ba,8,16,"ng-container",6)(1,tr,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,qr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),zr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,qr.N,Pe.Gg]})}return xe})(),dl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Mr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),rr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Dr=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),qo=xe=>({$implicit:xe});function va(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Po=["container"],Fa=["filter"],Ba=["focusInput"],ya=["editableInput"],Ys=["items"],Jr=["scroller"],Gr=["overlay"],eo=["firstHiddenFocusableEl"],rc=["lastHiddenFocusableEl"],Ks=xe=>({options:xe}),Dn=(xe,tt)=>({$implicit:xe,options:tt}),Lo=()=>({});function xa(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function Qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,qo,u.selectedOption))}}function yo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function ul(xe,tt){if(1&xe&&e.DNE(0,yo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Ro(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,xa,2,1,"ng-container",23)(3,Qo,1,4,"ng-container",24)(4,ul,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Qi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Jo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function bn(xe,tt){}function to(xe,tt){1&xe&&e.DNE(0,bn,0,0,"ng-template")}function Er(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,to,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Zs(xe,tt){1&xe&&e.eu8(0)}function Ar(xe,tt){1&xe&&e.eu8(0)}function or(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ar,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ks,u.filterOptions))}}function Ir(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Vn(xe,tt){}function pr(xe,tt){1&xe&&e.DNE(0,Vn,0,0,"ng-template")}function ea(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,pr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function oc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Ir,1,1,"SearchIcon",33)(4,ea,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Rl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,or,2,4,"ng-container",23)(2,oc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Yh(xe,tt){1&xe&&e.eu8(0)}function Kh(xe,tt){if(1&xe&&e.DNE(0,Yh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Dn,u,ne))}}function Dc(xe,tt){1&xe&&e.eu8(0)}function io(xe,tt){if(1&xe&&e.DNE(0,Dc,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ks,u))}}function Zh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,io,1,4,"ng-template",49),e.bVm())}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Kh,1,5,"ng-template",21)(3,Zh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Dn,ne.visibleOptions(),e.lJ4(2,Lo)))}}function Ec(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ec,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,qo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function xo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function qs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function pl(xe,tt){1&xe&&e.eu8(0,null,12)}function fl(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,qs,2,1,"ng-container",23)(2,pl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function gl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Ac(xe,tt){1&xe&&e.eu8(0,null,13)}function ac(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,gl,2,1,"ng-container",23)(2,Ac,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,xo,2,2,"ng-template",51)(3,fl,3,6,"li",52)(4,ac,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Fl(xe,tt){1&xe&&e.eu8(0)}function ml(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Zs,1,0,"ng-container",31)(4,Rl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Nl,4,10,"p-scroller",41)(7,Or,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Fl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Ic={provide:V.kq,useExisting:(0,e.Rfq)(()=>Oc),multi:!0};let lc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,va,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Dr,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,qo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Oc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Po,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(ya,5),e.GBs(Ys,5),e.GBs(Jr,5),e.GBs(Gr,5),e.GBs(eo,5),e.GBs(rc,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Ic])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Ro,6,20,"span",15)(3,Qi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Er,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,ml,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,dl,hl,ss,A.A,$,rr,lc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),No=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Mr,ve.Z,zr,un,A.A,$,rr,La,Pe.Gg,zr]})}return xe})(),Pc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Bl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ir=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Lc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),_a=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Bs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ta=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),bl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Co=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var Ca=He(22242);const wa=["input"],jl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Rc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),vl=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ia(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Hr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ia,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function na(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Hr,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function sa(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,sa,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Pi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Pi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Rc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,vl))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function Qn(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function os(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ns(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,os,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function js(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,Qn,1,2,"span",13)(2,ns,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Rc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Pr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Hn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function ui(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,ui,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Hn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Pr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,vl))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>ar),multi:!0};let ar=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Li=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Li=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Li,currencyCharIndex:Zi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=Zi>=nt?Zi-1:Li>=nt?Li:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,wn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,wn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(wa,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,na,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,js,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,jl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,Ca.S,Z._f,A.A,Co,_o],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Ta=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Ca.u,Z.tm,A.A,Co,_o,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),fr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),wo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Bo=xe=>({"p-disabled":xe}),cc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Sa(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,cc,u.paginatorState))}}function Vl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function To(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function hc(xe,tt){}function ka(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function jo(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,ka,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function yl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,To,1,1,"AngleDoubleLeftIcon",6)(2,jo,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Bo,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rn(xe,tt){}function dc(xe,tt){1&xe&&e.DNE(0,rn,0,0,"ng-template")}function xl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,dc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Vo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function uc(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Vo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function _l(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function Vs(xe,tt){1&xe&&e.eu8(0)}function pc(xe,tt){if(1&xe&&e.DNE(0,Vs,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function gr(xe,tt){1&xe&&e.DNE(0,pc,1,1,"ng-template",28)}function zs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,_l,1,1,"ng-template",26)(2,gr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function zl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function ra(xe,tt){}function Cl(xe,tt){1&xe&&e.DNE(0,ra,0,0,"ng-template")}function Ur(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Cl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Nc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function bh(xe,tt){}function qh(xe,tt){1&xe&&e.DNE(0,bh,0,0,"ng-template")}function Zn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,qh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function wl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Nc,1,1,"AngleDoubleRightIcon",6)(2,Zn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Bo,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function Qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Jh(xe,tt){1&xe&&e.eu8(0)}function Lf(xe,tt){if(1&xe&&e.DNE(0,Jh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,cc,u))}}function Hu(xe,tt){1&xe&&(e.qex(0),e.DNE(1,Lf,1,4,"ng-template",32),e.bVm())}function Uu(xe,tt){1&xe&&e.eu8(0)}function Id(xe,tt){if(1&xe&&e.DNE(0,Uu,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function ed(xe,tt){1&xe&&e.DNE(0,Id,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Hu,2,0,"ng-container",27)(2,ed,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,cc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Sa,2,5,"div",2)(2,Vl,2,1,"span",3)(3,yl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,xl,2,1,"span",7),e.k0s(),e.DNE(7,uc,2,1,"span",8)(8,zs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,zl,1,1,"AngleRightIcon",6)(11,Ur,2,1,"span",7),e.k0s(),e.DNE(12,wl,3,7,"button",11)(13,Qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Bo,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Bo,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Oc,Pe.Ei,ar,V.BC,V.vS,ve.n,ms,fr,wo,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,No,Ta,V.YN,Pe.Gg,ve.Z,ms,fr,wo,en,No,Ta,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],Jt=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Yt=(xe,tt)=>({$implicit:xe,index:tt});function Ii(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function vn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ii,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function In(xe,tt){1&xe&&e.eu8(0)}function Qs(xe,tt){if(1&xe&&e.DNE(0,In,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Yt,ne,ue))}}function Gl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,vn,4,3,"ng-container",5)(2,Qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,Jt,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Hl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Wa),multi:!0};let Wa=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Hl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Gl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),Fc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const $a=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),Wu=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),td=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function $u(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function Xu(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Od(xe,tt){}function Pd(xe,tt){1&xe&&e.DNE(0,Od,0,0,"ng-template")}function no(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Pd,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function Ld(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xu,1,2,"CheckIcon",9)(2,no,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function Yu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$u,1,2,"span",7)(2,Ld,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function Ku(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Zu(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function gm(xe,tt){}function ws(xe,tt){1&xe&&e.DNE(0,gm,0,0,"ng-template")}function id(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,ws,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function Bc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Zu,1,2,"TimesIcon",9)(2,id,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function so(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ku,1,2,"span",7)(2,Bc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Rf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,td,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const vh={provide:V.kq,useExisting:(0,e.Rfq)(()=>jc),multi:!0};let jc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([vh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,Yu,3,2,"ng-container",5)(6,so,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Rf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,$a,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,Wu,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,ir,A.A],encapsulation:2,changeDetection:0})}return xe})(),zo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,ir,A.A,Pe.Gg]})}return xe})();var Vc=He(21413);const nd=["container"],Nf=["resizeHelper"],Xa=["reorderIndicatorUp"],Rd=["reorderIndicatorDown"],Ff=["wrapper"],yh=["table"],Nd=["thead"],xh=["tfoot"],_h=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Ya=xe=>({height:xe}),an=(xe,tt)=>({$implicit:xe,options:tt}),Ch=xe=>({columns:xe}),Bf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function sd(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function jf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function fc(xe,tt){}function Ka(xe,tt){1&xe&&e.DNE(0,fc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ka,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function qu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,jf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function Qu(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,sd,1,2,"i",22)(2,qu,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function Ju(xe,tt){1&xe&&e.eu8(0)}function rd(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,Ju,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function pn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function gc(xe,tt){1&xe&&e.DNE(0,pn,1,1,"ng-template",30)}function zc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,zc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Gc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function oa(xe,tt){1&xe&&e.eu8(0)}function aa(xe,tt){if(1&xe&&e.DNE(0,oa,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,aa,1,1,"ng-template",32)}function od(xe,tt){1&xe&&e.eu8(0)}function Vf(xe,tt){if(1&xe&&e.DNE(0,od,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function mm(xe,tt){1&xe&&e.DNE(0,Vf,1,1,"ng-template",33)}function ep(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function So(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function tp(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,gc,1,0,null,16)(2,Gc,1,0,null,16)(3,Bd,1,0,null,16)(4,mm,1,0,null,16)(5,So,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Sl(xe,tt){if(1&xe&&e.DNE(0,Ma,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,an,u,ne))}}function zf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,Sl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Ya,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function jd(xe,tt){1&xe&&e.eu8(0)}function Vd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,jd,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,an,u.processedData,e.eq3(2,Ch,u.columns)))}}function ad(xe,tt){1&xe&&e.eu8(0)}function wh(xe,tt){1&xe&&e.eu8(0)}function Th(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function zd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Hc(xe,tt){1&xe&&e.eu8(0)}function Gf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Hc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Sh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,ad,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,wh,1,0,"ng-container",37),e.k0s(),e.DNE(6,Th,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,zd,1,2,"tbody",42)(9,Gf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Bf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Gd(xe,tt){1&xe&&e.eu8(0)}function ip(xe,tt){if(1&xe&&e.DNE(0,Gd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function ld(xe,tt){1&xe&&e.DNE(0,ip,1,1,"ng-template",30)}function Hd(xe,tt){1&xe&&e.eu8(0)}function Ud(xe,tt){if(1&xe&&e.DNE(0,Hd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function cd(xe,tt){1&xe&&e.DNE(0,Ud,1,1,"ng-template",31)}function Hf(xe,tt){1&xe&&e.eu8(0)}function Wr(xe,tt){if(1&xe&&e.DNE(0,Hf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function mc(xe,tt){1&xe&&e.DNE(0,Wr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function np(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Uf(xe,tt){1&xe&&e.DNE(0,np,1,1,"ng-template",33)}function sp(xe,tt){1&xe&&e.eu8(0)}function Wd(xe,tt){if(1&xe&&e.DNE(0,sp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function hd(xe,tt){1&xe&&e.DNE(0,Wd,1,1,"ng-template",34)}function kh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,ld,1,0,null,16)(2,cd,1,0,null,16)(3,mc,1,0,null,16)(4,Uf,1,0,null,16)(5,hd,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.eu8(0)}function Go(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Uc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Mh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Wc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function dd(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Dh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Wc,1,0,"ArrowDownIcon",16)(3,dd,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function $d(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function kl(xe,tt){}function rp(xe,tt){1&xe&&e.DNE(0,kl,0,0,"ng-template")}function bc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,$d,1,0,"ArrowUpIcon",16)(3,rp,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const $c=["pTableBody",""],Eh=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),Ah=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Ih=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),Xd=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Oh=(xe,tt)=>({$implicit:xe,frozen:tt});function Wf(xe,tt){1&xe&&e.eu8(0)}function op(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Lr(xe,tt){1&xe&&e.eu8(0)}function Wl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Lr,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function ap(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ap,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function $r(xe,tt){1&xe&&e.eu8(0)}function Xc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,$r,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function lp(xe,tt){if(1&xe&&e.DNE(0,op,2,8,"ng-container",2)(1,Wl,2,8,"ng-container",0)(2,Da,2,10,"ng-container",0)(3,Xc,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function $l(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,lp,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Yc(xe,tt){1&xe&&e.eu8(0)}function Ph(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Yc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function la(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,la,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function ud(xe,tt){1&xe&&e.eu8(0)}function Kc(xe,tt){1&xe&&e.eu8(0)}function pd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ud,1,0,"ng-container",4)(2,pd,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,Xd,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Kd(xe,tt){if(1&xe&&e.DNE(0,Ph,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zc,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Kd,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Lh(xe,tt){1&xe&&e.eu8(0)}function Rh(xe,tt){1&xe&&e.eu8(0)}function Xl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Rh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,Xd,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function Yl(xe,tt){if(1&xe&&e.DNE(0,Lh,1,0,"ng-container",4)(1,Xl,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Ih,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Yl,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Ea(xe,tt){1&xe&&e.eu8(0)}function Ho(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ea,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Oh,u.columns,u.frozen))}}function ca(xe,tt){1&xe&&e.eu8(0)}function cp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ca,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Oh,u.columns,u.frozen))}}function hp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Kl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,hp,1,1,"SortAltIcon",3)(2,Kl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function dp(xe,tt){}function qd(xe,tt){1&xe&&e.DNE(0,dp,0,0,"ng-template")}function Nh(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,qd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function Qd(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function Jd(xe,tt){1&xe&&e.eu8(0)}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function up(xe,tt){1&xe&&e.eu8(0)}function Zl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,up,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new Vc.B;selectionSource=new Vc.B;contextMenuSource=new Vc.B;valueSource=new Vc.B;totalRecordsSource=new Vc.B;columnsSource=new Vc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Li){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Li,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=Zi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Li?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Li=this.findIndexInSelection(nt);this._selection=this.selection.filter((Zi,Yi)=>Yi!=Li),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):IeZi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Li=>{let Zi=le.BF.resolveFieldData(oi,Li.field);return Zi=null!=Zi?this.exportFunction?this.exportFunction({data:Zi,field:Li.field}):String(Zi).replace(/"/g,'""'):"",'"'+Zi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(nd,5),e.GBs(Nf,5),e.GBs(Xa,5),e.GBs(Rd,5),e.GBs(Ff,5),e.GBs(yh,5),e.GBs(Nd,5),e.GBs(xh,5),e.GBs(_h,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,Qu,3,2,"div",11)(3,rd,2,1,"div",12)(4,tp,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,zf,3,17,"p-scroller",15)(8,Vd,2,7,"ng-container",16)(9,Sh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,kh,6,24,"p-paginator",13)(12,Go,2,1,"div",17)(13,Mh,2,0,"div",18)(14,Dh,4,2,"span",19)(15,bc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,hl,Pc,Bl,qr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:$c,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,$l,2,2,"ng-container",0)(1,Zd,2,2,"ng-container",0)(2,qc,2,2,"ng-container",0)(3,Ho,2,5,"ng-container",0)(4,cp,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Ut=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),ei=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,lr,4,3,"ng-container",0)(1,Nh,2,4,"span",1)(2,Qd,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Fs,ta,Bs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),Cn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Ln=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),En=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(Cn,8),e.rXU(Ln,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,1,"ng-container",0)(1,Zl,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),cr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,Ca.u,No,V.YN,Z.tm,Fc,Hi,Ta,zo,zr,Pc,Bl,qr.N,Fs,ta,Bs,ir,Lc,Fo,_a,bl,Pe.Gg,zr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/main.8ee40e8b0b699ec4.js b/www/z4d/main.8ee40e8b0b699ec4.js deleted file mode 100644 index 9450b6604..000000000 --- a/www/z4d/main.8ee40e8b0b699ec4.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"Param\xe8tres de l\'objet","device.byname.parameter.popover.text":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet. Vert indique que les param\xe8tres ont \xe9t\xe9 pris envoy\xe9 \xe0 l\'objet, Orange indique que les param\xe8tres n\'ont pas encore \xe9t\xe9 envoy\xe9","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Active l\'utilisation du scan de topologie zigpy","ZigpyTopologyReportAutoBackup":"Sauvegarde les scan topologie interne zigpy"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:"alt.z",refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Dt=gt&&Ve||new Map;qe.forEach((Pt,Ut)=>{let Zt=Ut,hi=Pt;if("offset"!==Ut)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Ut);break;case Z.kp:hi=m.get(Ut);break;default:hi=c.normalizeStyleValue(Ut,Zt,hi,W)}Dt.set(Zt,hi)}),gt||ce.push(Dt),Ve=Dt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=_s(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=_s(m);c.style[W]=""})}function Jt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function _s(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function zn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Di=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class Cs extends Te{normalizePropertyName(v,i){return _s(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Di.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const kn="*";const ir=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=ir.has(c)||St.has(c),m=ir.has(v)||St.has(v);return(W,ce)=>{let De=c==kn||c==W,Ve=v==kn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?ir.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?ir.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),zn(this,Jt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=zn(this,Jt(v.animation),i),W=function jr(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function fo(c,v,i){if(":"==c[0]){const qe=function qr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=kn||De!=kn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>zn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=zn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return rs(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=rs(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return rs(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Dt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Dt=!1),ce=gt.startTime),Dt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function ui(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(di=>{const wi=this._makeStyleAst(di,i);let gi=null!=wi.offset?wi.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(wi.styles),ki=0;return null!=gi&&(ce++,ki=wi.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?wi==Ut?1:Pt*wi:De[wi],ki=gi*Yt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(di,i),di.offset=gi,m.styles.push(di)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:zn(this,Jt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=zn(this,Jt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:zn(this,Jt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function rs(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const Js=new RegExp(":enter","g"),Qr=new RegExp(":leave","g");function nr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Dt=new Ki(v,i,et,W,ce,gt,[]);Dt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Dt.currentTimeline.delayNextStep(Pt),Dt.currentTimeline.setStyles([De],null,Dt.errors,qe),zn(this,m,Dt);const Ut=Dt.timelines.filter(Zt=>Zt.containsAnimation());if(Ut.length&&Ve.size){let Zt;for(let hi=Ut.length-1;hi>=0;hi--){const Yt=Ut[hi];if(Yt.element===i){Zt=Yt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Dt.errors,qe)}return Ut.length?Ut.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),zn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=Vr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>zn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),zn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=Vr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Dt=i.createSubContext(v.options,et);ce&&Dt.delayNextStep(ce),et===i.element&&(qe=Dt.currentTimeline),zn(this,v.animation,Dt),Dt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Dt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Dt=gt.currentTime;zn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Dt+(W.startTime-m.currentTimeline.startTime)}}const Vr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Vr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=Vr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new Jl(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(Js,"."+this._enterClassName)).replace(Qr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Dt)=>{gt===Z.FX?v.add(Dt):gt===Z.kp&&i.add(Dt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class Jl extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",pr(Ve)),ce.push(et);const gt=v.length-1;for(let Dt=1;Dt<=gt;Dt++){let Pt=new Map(v[Dt]);const Ut=Pt.get("offset");Pt.set("offset",pr((i+Ut*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function pr(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Dt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Dt,errors:Pt}}const La={};class Jr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Ko(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Dt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Dt),hi=qe&&qe.params||La,Yt=this.buildStyles(W,hi,Dt),di=new Set,wi=new Map,gi=new Map,ki="void"===W,Bi={params:nl(hi,Pt),delay:this.ast.options?.delay},Mi=gt?[]:nr(v,i,this.ast.animation,ce,De,Zt,Yt,Bi,et,Dt);let an=0;return Mi.forEach(ln=>{an=Math.max(ln.duration+ln.delay,an)}),Dt.length?Pa(i,this._triggerName,m,W,ki,Zt,Yt,[],[],wi,gi,an,Dt):(Mi.forEach(ln=>{const ps=ln.element,Ln=N(wi,ps,new Set);ln.preStyleProps.forEach(Un=>Ln.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&di.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Yt,Mi,[...di.values()],wi,gi,an))}}function nl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=nl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class sl{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new Jr(v,W,this.states))}),this.fallbackTransition=function rl(c,v,i){return new Jr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=nr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Dt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Dt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Dt)=>{gt.forEach((Pt,Ut)=>{gt.set(Ut,this._driver.computeStyle(Dt,Ut,Z.kp))})});const et=se(De.map(gt=>{const Dt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Dt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ol="ng-animate-queued",Ra="ng-animate-disabled",Dr=[],fa={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class Qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Eo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const zr="void",Do=new Qi(zr);class ga{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,sr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function ll(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(sr(v,Qe),sr(v,Qe+"-"+i),Ve.set(i,Do)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ma(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(sr(v,Qe),sr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new Qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Do),et.value!==zr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Yt),_t(v,di)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Ut=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Ut){if(!W)return;Ut=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Ut,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(sr(v,ol),De.onStart(()=>{cs(v,ol)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Yt=this._engine.playersByElement.get(v);if(Yt){let di=Yt.indexOf(De);di>=0&&Yt.splice(di,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,zr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Do,gt=new Qi(zr),Dt=new ma(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Dt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===fa)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){sr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class mo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ga(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(er(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!er(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),sr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(er(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return er(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=fa,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))});const Yt=[],di=new Set,wi=new Set;for(let yi=0;yidi.add(Wi)):wi.add(Ei))}const gi=new Map,ki=Er(Pt,Array.from(di));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))}),v.push(()=>{Ut.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Yt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Mi=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Nn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const is=Nn[Us];if(is&&is.setForMove){if(is.previousTriggersValues&&is.previousTriggersValues.has(ji.triggerName)){const Zr=is.previousTriggersValues.get(ji.triggerName),Ii=this.statesByElement.get(ji.element);if(Ii&&Ii.has(ji.triggerName)){const gn=Ii.get(ji.triggerName);gn.value=Zr,Ii.set(ji.triggerName,gn)}}return void Wi.destroy()}}const ts=!Dt||!this.driver.containsElement(Dt,Nn),Wn=gi.get(Nn),Yr=Zt.get(Nn),ds=this._buildInstruction(ji,m,Yr,Wn,ts);if(ds.errors&&ds.errors.length)return void Mi.push(ds);if(ts)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);const Kr=[];ds.timelines.forEach(is=>{is.stretchStartingKeyframe=!0,this.disabledNodes.has(is.element)||Kr.push(is)}),ds.timelines=Kr,m.append(Nn,ds.timelines),De.push({instruction:ds,player:Wi,element:Nn}),ds.queriedElements.forEach(is=>N(Ve,is,[]).push(Wi)),ds.preStyleProps.forEach((is,Zr)=>{if(is.size){let Ii=qe.get(Zr);Ii||qe.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))}}),ds.postStyleProps.forEach((is,Zr)=>{let Ii=et.get(Zr);Ii||et.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))})});if(Mi.length){const yi=[];Mi.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const an=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,an))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(an,Ei,[]).push(Wi),Wi.destroy()})});const ps=Yt.filter(yi=>Ao(yi,qe,et)),Ln=new Map;cl(Ln,this.driver,wi,et,Z.kp).forEach(yi=>{Ao(yi,qe,et)&&ps.push(yi)});const Un=new Map;Ut.forEach((yi,Ei)=>{cl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Ln.get(yi),ji=Un.get(yi);Ln.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Qs={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Nn=Qs;if(ln.size>1){let Wn=Ei;const Yr=[];for(;Wn=Wn.parentNode;){const ds=ln.get(Wn);if(ds){Nn=ds;break}Yr.push(Wn)}Yr.forEach(ds=>ln.set(ds,Nn))}const ts=this._buildAnimation(ji.namespaceId,Wi,an,ce,Un,Ln);if(ji.setRealPlayer(ts),Nn===Qs)Ri.push(ji);else{const Wn=this.playersByElement.get(Nn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!ts.destroyed);Nn.length?Ar(this,Ei,Nn):this.processLeaveNode(Ei)}return Yt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==zr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Dt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Ut=>{const Zt=Ut.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Ut.destroy(),Dt.push(Ut)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Dt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Yt=hi[Us];if(Yt&&Yt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const di=hi!==qe,wi=function Zo(c){const v=[];return ba(c,v),v}((m.get(hi)||Dr).map(an=>an.getRealPlayer())).filter(an=>!!an.element&&an.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Mi=this._buildPlayer(Zt,Bi,wi);if(Zt.subTimeline&&W&&Dt.add(hi),di){const an=new ma(v,Ve,hi);an.setRealPlayer(Mi),et.push(an)}return Mi});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function al(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>sr(Zt,kt));const Ut=se(Pt);return Ut.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Dt.forEach(Zt=>{N(W,Zt,[]).push(Ut)}),Ut}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ma{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function er(c){return c&&1===c.nodeType}function Gr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function cl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(Gr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Dt=>{const Pt=v.computeStyle(et,Dt,W);gt.set(Dt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>Gr(qe,ce[Ve++])),De}function Er(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function sr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Ar(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function ba(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new mo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function eo(c,v,i){return new sl(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class va{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=va.initialStylesByElement.get(v);W||va.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(va.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Xs(c){let v=null;return c.forEach((i,m)=>{(function to(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Hr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class io{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Ut=>Ut instanceof Hr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Ut=>{Ut.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Dt=function Mt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Ut=>new Map(Ut));Dt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Dt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Xs(v[0]),v.length>1&&(m=Xs(v[v.length-1]))):v instanceof Map&&(i=Xs(v)),i||m?new va(c,i,m):null}(v,Dt);return new Hr(v,Dt,qe,Pt)}}const Io="@.disabled";class ya{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Io?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class qo extends ya{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Io?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function bo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function hl(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Oo{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new ya("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Zi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new Cs}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Zi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Oo(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new io},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Ir=He(38117),Ks=He(93887),Or=He(20546),rr=He(88652),Pr=He(19664),Bn=He(37542),fr=He(93331),Jo=He(7673),tc=He(33669),Nl=He(27468),Xh=He(86648),Yh=He(84572),Ac=He(91986),so=He(5964),Kh=He(23294),Va=He(25558),Lr=He(96354),Ic=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),vo=He(73703);const Zs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),dl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},ul=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Bn.PI),i=(0,e.WQX)(Zs,{optional:!0})||{};return{...dl,...i,enableLinkTracking:v,disabled:c}}}),pl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Oc(c){return{provide:pl,multi:!0,useClass:c}}function ic(c){return c?c.map(Oc):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const jl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new tr((0,e.WQX)(M.hE))});class tr{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,Jo.of)(this.title.getTitle())}}const Nc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new xa((0,e.WQX)(ul),(0,e.WQX)(Zi.kB,{optional:!0}),(0,e.WQX)(Zi.hb))});class xa{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,Jo.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Lo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Ns(c){return c instanceof fr.wF}function Fs(c){return"string"==typeof c?new RegExp(c):c}let yo=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Bn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?tc.D:(0,Ac.c)(this.config.delay);this.router.events.pipe((0,so.p)(Ns),(0,so.p)(function gl(c){const v=function ea(c){return c?Array.isArray(c)?c.map(Fs):[Fs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Fl(c,v){return(0,Kh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Lr.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ic.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Rc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Nl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,Jo.of)(void 0):(0,Xh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,vo.u)(void 0),(0,Ss.U)(void 0)):(0,Jo.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,Jo.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Yh.z)([m,W]).pipe((0,Lr.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(fr.Ix),e.KVO(ul),e.KVO(jl),e.KVO(Nc),e.KVO(Bn.kA),e.KVO(pl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Vl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Fc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})(),Fc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(Vl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})();var ml=He(45794),_r=He(41584),Ga=He(39974),ta=He(54360),Ur=He(58750);function ia(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?tc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ta._)(De,Dt=>{W&&(Ve=0),De.next(Dt)},void 0,Dt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Ut="number"==typeof m?(0,_r.O)(m):(0,Ur.Tg)(m(Dt,Ve)),Zt=(0,ta._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Ut.subscribe(Zt)}else Pt()}else De.error(Dt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),na=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Oi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),es=()=>["/admin/firmware"],as=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ss(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function Bs(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ss,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Rr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Gn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,as)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function pi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Lr.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(ml.tw),e.rXU(Ir.W4),e.rXU(Ke.G),e.rXU(Pr.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,Bs,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Rr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Gn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,pi,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Oi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,es)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Zi.Sq,Zi.bT,Pr.Mm,rr.$G,rr.tg,rr.do,rr.U0,rr.ZM,at.Zm,at.BC,at.vS,fr.Wk,fr.wQ,Pr.D9],styles:[".navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function or(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function wa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function gr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function _o(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,gr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Ro(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function sc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,sc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function zl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Ta,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Co(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function rc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,or,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,wa,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,_o,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Ro,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,zl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,Co,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function Sa(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function No(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let bl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Nl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Lr.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.fork$),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,rc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,Sa,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,No,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Zi.YU,Zi.bT,Pr.Mm,rr.ZM,Zi.vh,Pr.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[fr.n3,Yn,bl]})}return c})();class sn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const oc=[sn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let vl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forRoot(oc,{preloadingStrategy:fr.Kp}),fr.iI]})}return c})();var Fo=He(57786),ac=He(73028),yl=He(5779),js=He(21413),lc=He(33726),mr=He(983),Vs=He(71985),Gl=He(70152),sa=He(70980);function Qn(){return["Mac","iPhone","iPad","iPhone"].some(v=>navigator.platform.includes(v))?"apple":"pc"}function _l(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new js.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=_l(W.keys,Qn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,lc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,Gl.B)(this.sequenceDebounce),(0,ac.Z)(()=>{const gt=et;et="";const Dt=this.sequenceMaps.get(Ve);if(Dt.hotkeyMap.has(gt)){const Pt=Dt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,Jo.of)(Pt.hotkey)}return mr.w}))},W={...this.defaults,...i};let ce=_l(W.keys,Qn());return(()=>{const Ve={subject:new js.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,Jo.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Dt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Dt)}return Ve.subject.asObservable()})().pipe((0,na.Q)(this.dispose.pipe((0,so.p)(Ve=>Ve===ce))),(0,so.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,sa.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=_l(m.keys,Qn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,Jo.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new Vs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,na.Q)(this.dispose.pipe((0,so.p)(De=>De===W))))}removeShortcuts(i){(function Zh(c){return Array.isArray(c)?c:[c]})(i).map(W=>_l(W,Qn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Zi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Re=(()=>{class c{static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({imports:[Zi.MD]})}return c})();const Ue=new Ir.Vy("App");let Be=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Or.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Or.c.production&&Ir.Vy.enableProductionMode(),Ue.debug("init"),this.i18nService.init(Or.c.defaultLanguage,Or.c.supportedLanguages),this.subs.sink=(0,Nl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.subs.add(this.hotkeys.addShortcut({keys:this.keysBoundActive}).subscribe(i=>{console.log("ben"+i),this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))}setTitle(){const i=this.router.events.pipe((0,so.p)(m=>m instanceof fr.wF));(0,Fo.h)(this.translateService.onLangChange,i).pipe((0,Lr.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,so.p)(m=>"primary"===m.outlet),(0,ac.Z)(m=>m.data),(0,Ir.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(fr.Ix),e.rXU(fr.nX),e.rXU(M.hE),e.rXU(Pr.c$),e.rXU(Ke.G),e.rXU(Ir.W4),e.rXU(ut.d),e.rXU(yl.r1),e.rXU(qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[fr.n3]})}return c})();var We=He(31635);class pn{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class Dn extends pn{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class qs extends pn{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Hl extends pn{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Cl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof Dn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof qs?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Hl?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class cc extends Cl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Bo(){}function yh(c){return null==c?Bo:function(){return this.querySelector(c)}}function Vf(){return[]}function zf(c){return null==c?Vf:function(){return this.querySelectorAll(c)}}function jc(c){return function(){return this.matches(c)}}function $r(c){return function(v){return v.matches(c)}}var Gf=Array.prototype.find;function Vc(){return this.firstElementChild}var zc=Array.prototype.filter;function td(){return Array.from(this.children)}function lp(c){return new Array(c.length)}function Gc(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function Ch(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}Gc.prototype={constructor:Gc,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var ni="http://www.w3.org/1999/xhtml";const xn={svg:"http://www.w3.org/2000/svg",xhtml:ni,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ka(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),xn.hasOwnProperty(v)?{space:xn[v],local:c}:c}function Hc(c){return function(){this.removeAttribute(c)}}function hs(c){return function(){this.removeAttributeNS(c.space,c.local)}}function Uc(c,v){return function(){this.setAttribute(c,v)}}function ra(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function Bd(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function fp(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function fm(c){return function(){this.style.removeProperty(c)}}function gp(c,v,i){return function(){this.style.setProperty(c,v,i)}}function oo(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function dc(c,v){return c.style.getPropertyValue(v)||fp(c).getComputedStyle(c,null).getPropertyValue(v)}function ka(c){return function(){delete this[c]}}function kl(c,v){return function(){this[c]=v}}function $f(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function bp(c){return c.trim().split(/^|\s+/)}function Th(c){return c.classList||new Sh(c)}function Sh(c){this._node=c,this._names=bp(c.getAttribute("class")||"")}function kh(c,v){for(var i=Th(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var qc=[null];function br(c,v){this._groups=c,this._parents=v}function Xd(){return new br([[document.documentElement]],qc)}br.prototype=Xd.prototype={constructor:br,select:function rp(c){"function"!=typeof c&&(c=yh(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=wi+1);!(Bi=Yt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function Wf(c){function v(Dt,Pt){return Dt&&Pt?c(Dt.__data__,Pt.__data__):!Dt-!Pt}c||(c=hc);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?fm:"function"==typeof v?oo:gp)(c,v,i??"")):dc(this.node(),c)},property:function mp(c,v){return arguments.length>1?this.each((null==v?ka:"function"==typeof v?$f:kl)(c,v)):this.node()[c]},classed:function Vd(c,v){var i=bp(c+"");if(arguments.length<2){for(var m=Th(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?Ah:Kc,W=0;W{}};function Qc(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?hd(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?hd(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=Xl.exec(c))?new ao(v[1],v[2],v[3],1):(v=vc.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=ar.exec(c))?hd(v[1],v[2],v[3],v[4]):(v=wp.exec(c))?hd(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=Jd.exec(c))?Tp(v[1],v[2]/100,v[3]/100,1):(v=ld.exec(c))?Tp(v[1],v[2]/100,v[3]/100,v[4]):eu.hasOwnProperty(c)?ih(eu[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function ih(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function hd(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function Rh(c,v,i,m){return 1===arguments.length?function gm(c){return c instanceof $l||(c=Yl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}`}function nu(){const c=su(this.opacity);return`${1===c?"rgb(":"rgba("}${nh(this.r)}, ${nh(this.g)}, ${nh(this.b)}${1===c?")":`, ${c})`}`}function su(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function nh(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function sh(c){return((c=nh(c))<16?"0":"")+c.toString(16)}function Tp(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ea(c,v,i,m)}function ru(c){if(c instanceof Ea)return new Ea(c.h,c.s,c.l,c.opacity);if(c instanceof $l||(c=Yl(c)),!c)return new Ea;if(c instanceof Ea)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ea(De,Ve,qe,c.opacity)}function Ea(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function Sp(c){return(c=(c||0)%360)<0?c+360:c}function kp(c){return Math.max(0,Math.min(1,c||0))}function dd(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function Za(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}eh($l,Yl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:cd,formatHex:cd,formatHex8:function th(){return this.rgb().formatHex8()},formatHsl:function Jf(){return ru(this).formatHsl()},formatRgb:tu,toString:tu}),eh(ao,Rh,Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(nh(this.r),nh(this.g),nh(this.b),su(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function eg(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}${sh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nu,toString:nu})),eh(Ea,function zo(c,v,i,m){return 1===arguments.length?ru(c):new Ea(c,v,i,m??1)},Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new Ea(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ea(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(dd(c>=240?c-240:c+120,W,m),dd(c,W,m),dd(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ea(Sp(this.h),kp(this.s),kp(this.l),su(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=su(this.opacity);return`${1===c?"hsl(":"hsla("}${Sp(this.h)}, ${100*kp(this.s)}%, ${100*kp(this.l)}%${1===c?")":`, ${c})`}`}}));const au=c=>()=>c;function lu(c,v){var i=v-c;return i?function tg(c,v){return function(i){return c+i*v}}(c,i):au(isNaN(c)?v:c)}const cu=function c(v){var i=function mm(c){return 1==(c=+c)?lu:function(v,i){return i-v?function Mp(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):au(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=Rh(W)).r,(ce=Rh(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=lu(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function Dp(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return Za((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Go(m,W)})),i=Nh.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--Ho}()}finally{Ho=0,function Wt(){for(var c,i,v=jh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:jh=i);pd=c,Qt(m)}(),Kl=0}}function Vt(){var c=ah.now(),v=c-fd;v>fu&&(Vh-=v,fd=c)}function Qt(c){Ho||(rh&&(rh=clearTimeout(rh)),c-Kl>24?(c<1/0&&(rh=setTimeout(ft,c-ah.now()-Vh)),oh&&(oh=clearInterval(oh))):(oh||(fd=ah.now(),oh=setInterval(Vt,fu)),Ho=1,be(ft)))}function ii(c,v,i){var m=new we;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}we.prototype=Ne.prototype={constructor:we,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?je():+i)+(null==v?0:+v),!this._next&&pd!==this&&(pd?pd._next=this:jh=this,pd=this),this._call=c,this._time=i,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var Ci=Jc("start","end","cancel","interrupt"),_i=[],Ai=0,fn=3;function En(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Dt,Pt,Ut;if(1!==i.state)return qe();for(gt in m)if((Ut=m[gt]).name===i.name){if(Ut.state===fn)return ii(De);4===Ut.state?(Ut.state=6,Ut.timer.stop(),Ut.on.call("interrupt",c,c.__data__,Ut.index,Ut.group),delete m[gt]):+gtAi)throw new Error("too late; already scheduled");return i}function An(c,v){var i=qn(c,v);if(i.state>fn)throw new Error("too late; already running");return i}function qn(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var xe,wr=180/Math.PI,lo={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Dt.push(W(Dt)+"rotate(",null,m)-2,x:Go(et,gt)})):gt&&Dt.push(W(Dt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Dt,Pt),function Ve(et,gt,Dt,Pt){et!==gt?Pt.push({i:Dt.push(W(Dt)+"skewX(",null,m)-2,x:Go(et,gt)}):gt&&Dt.push(W(Dt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Dt,Pt),function qe(et,gt,Dt,Pt,Ut,Zt){if(et!==Dt||gt!==Pt){var hi=Ut.push(W(Ut)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Go(et,Dt)},{i:hi-2,x:Go(gt,Pt)})}else(1!==Dt||1!==Pt)&&Ut.push(W(Ut)+"scale("+Dt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Dt,Pt),et=gt=null,function(Ut){for(var Yt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Zn:An;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function Jn(c,v){var i=Ka(c),m="transform"===i?Ie:oi;return this.attrTween(c,"function"==typeof v?(i.local?nn:Cn)(i,m,ai(this,"attr."+c,v)):null==v?(i.local?qi:Pi)(i):(i.local?tn:Yi)(i,m,v))},attrTween:function Uo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=Ka(c);return this.tween(i,(m.local?cr:co)(m,v))},style:function rb(c,v,i){var m="transform"==(c+="")?ue:oi;return null==v?this.styleTween(c,function cg(c,v){var i,m,W;return function(){var ce=dc(this,c),De=(this.style.removeProperty(c),dc(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Cc(c)):"function"==typeof v?this.styleTween(c,function nb(c,v,i){var m,W,ce;return function(){var De=dc(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=dc(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,ai(this,"style."+c,v))).each(function sb(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=An(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Cc(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function Op(c,v,i){var m,ce,W=i+"";return function(){var De=dc(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Ew(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Dw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function Mw(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function Aw(c){return this.tween("text","function"==typeof c?function ym(c){return function(){var v=c(this);this.textContent=v??""}}(ai(this,"text",c)):function vm(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function hx(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function ob(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Iw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function ib(){return this.on("end.remove",function rx(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function zt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=qn(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Wl.prototype.transition=function gx(c){var v,i;c instanceof ch?(v=c._id,c=c._name):(v=xm(),(i=lb).time=je(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function Rp(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function gg(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<0?et=Dt+1:gt=Dt}while(etNr(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===Nr||c===Rp?c:fb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Dt=W(Ve,qe,et,gt-1);return Dt>et&&m(Ve[Dt-1],qe)>-m(Ve[Dt],qe)?Dt-1:Dt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<=0?et=Dt+1:gt=Dt}while(et=kx?10:ce>=gb?5:ce>=Mx?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etho(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(bb.setTime(+ce),vb.setTime(+De),c(bb),c(vb),Math.floor(i(bb,vb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Tm=ho(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Tm.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?ho(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Tm:null);const vu=ho(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*uh)},(c,v)=>(v-c)/uh,c=>c.getUTCSeconds()),yu=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getMinutes()),km=ho(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getUTCMinutes()),bg=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh-c.getMinutes()*Il)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getHours()),Mm=ho(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getUTCHours()),ha=ho(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Il)/Zl,c=>c.getDate()-1),xb=(ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>c.getUTCDate()-1),ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>Math.floor(c/Zl)));function xu(c){return ho(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Il)/mb)}const vg=xu(0);function zh(c){return ho(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/mb)}xu(1),xu(2),xu(3),xu(4),xu(5),xu(6);const Tb=zh(0),Om=(zh(1),zh(2),zh(3),zh(4),zh(5),zh(6),ho(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),zp=ho(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),Gp=ho(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());Gp.every=c=>isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const _g=ho(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function Pm(c,v,i,m,W,ce){const De=[[vu,1,uh],[vu,5,5e3],[vu,15,15e3],[vu,30,3e4],[ce,1,Il],[ce,5,5*Il],[ce,15,15*Il],[ce,30,30*Il],[W,1,ph],[W,3,3*ph],[W,6,6*ph],[W,12,12*ph],[m,1,Zl],[m,2,2*Zl],[i,1,mb],[v,1,Ex],[v,3,3*Ex],[c,1,Fp]];function qe(et,gt,Dt){const Pt=Math.abs(gt-et)/Dt,Ut=gg(([,,Yt])=>Yt).right(De,Pt);if(Ut===De.length)return c.every(wm(et/Fp,gt/Fp,Dt));if(0===Ut)return Tm.every(Math.max(wm(et,gt,Dt),1));const[Zt,hi]=De[Pt/De[Ut-1][2]isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Lm,Cg]=Pm(_g,zp,Tb,xb,Mm,km),[Db,Rm]=Pm(Gp,Om,vg,ha,bg,yu);var vd=new Date,wg=new Date;function ql(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return vd.setTime(+ce),wg.setTime(+De),c(vd),c(wg),Math.floor(i(vd,wg))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const Hp=864e5,Eb=7*Hp;function Gh(c){return ql(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/Eb})}var In=Gh(0),Up=Gh(1),yd=(Gh(2),Gh(3),Gh(4));const jm=(Gh(5),Gh(6),ql(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/Hp},function(c){return c.getUTCDate()-1}));function xd(c){return ql(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/Eb})}var Nb=xd(0),kg=xd(1),wu=(xd(2),xd(3),xd(4));const Mg=(xd(5),xd(6),ql(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/Hp,c=>c.getDate()-1));var Vm=ql(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});Vm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const $p=Vm;var Dg=ql(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});Dg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const Xp=Dg;function Yp(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function zm(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function Kp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Bb={"-":"",_:" ",0:"0"},uo=/^\s*\d+/,Tc=/^%/,Gm=/[\\^$*+?|[\]().{}]/g;function ys(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Eg(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Xw(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function Vb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=uo.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Zp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Wm(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function fh(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function e_(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function zb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function $m(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function Gb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function qp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function Hb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function ku(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Qp(c,v,i){var m=uo.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Xm(c,v,i){var m=Tc.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Jp(c,v,i){var m=uo.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Ub(c,v,i){var m=uo.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ys(c.getDate(),v,2)}function t_(c,v){return ys(c.getHours(),v,2)}function i_(c,v){return ys(c.getHours()%12||12,v,2)}function n_(c,v){return ys(1+Mg.count($p(c),c),v,3)}function Wb(c,v){return ys(c.getMilliseconds(),v,3)}function s_(c,v){return Wb(c,v)+"000"}function r_(c,v){return ys(c.getMonth()+1,v,2)}function $b(c,v){return ys(c.getMinutes(),v,2)}function Xb(c,v){return ys(c.getSeconds(),v,2)}function Yb(c){var v=c.getDay();return 0===v?7:v}function Kb(c,v){return ys(Nb.count($p(c)-1,c),v,2)}function ef(c){var v=c.getDay();return v>=4||0===v?wu(c):wu.ceil(c)}function o_(c,v){return c=ef(c),ys(wu.count($p(c),c)+(4===$p(c).getDay()),v,2)}function Yw(c){return c.getDay()}function a_(c,v){return ys(kg.count($p(c)-1,c),v,2)}function l_(c,v){return ys(c.getFullYear()%100,v,2)}function Zb(c,v){return ys((c=ef(c)).getFullYear()%100,v,2)}function c_(c,v){return ys(c.getFullYear()%1e4,v,4)}function h_(c,v){var i=c.getDay();return ys((c=i>=4||0===i?wu(c):wu.ceil(c)).getFullYear()%1e4,v,4)}function qb(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ys(v/60|0,"0",2)+ys(v%60,"0",2)}function Ag(c,v){return ys(c.getUTCDate(),v,2)}function Qb(c,v){return ys(c.getUTCHours(),v,2)}function tf(c,v){return ys(c.getUTCHours()%12||12,v,2)}function nf(c,v){return ys(1+jm.count(Xp(c),c),v,3)}function Mu(c,v){return ys(c.getUTCMilliseconds(),v,3)}function d_(c,v){return Mu(c,v)+"000"}function u_(c,v){return ys(c.getUTCMonth()+1,v,2)}function p_(c,v){return ys(c.getUTCMinutes(),v,2)}function Ig(c,v){return ys(c.getUTCSeconds(),v,2)}function Km(c){var v=c.getUTCDay();return 0===v?7:v}function f_(c,v){return ys(In.count(Xp(c)-1,c),v,2)}function g_(c){var v=c.getUTCDay();return v>=4||0===v?yd(c):yd.ceil(c)}function Kw(c,v){return c=g_(c),ys(yd.count(Xp(c),c)+(4===Xp(c).getUTCDay()),v,2)}function m_(c){return c.getUTCDay()}function b_(c,v){return ys(Up.count(Xp(c)-1,c),v,2)}function Zw(c,v){return ys(c.getUTCFullYear()%100,v,2)}function v_(c,v){return ys((c=g_(c)).getUTCFullYear()%100,v,2)}function qw(c,v){return ys(c.getUTCFullYear()%1e4,v,4)}function y_(c,v){var i=c.getUTCDay();return ys((c=i>=4||0===i?yd(c):yd.ceil(c)).getUTCFullYear()%1e4,v,4)}function x_(){return"+0000"}function Jb(){return"%"}function Og(c){return+c}function Du(c){return Math.floor(+c/1e3)}function Eu(c){return null===c?NaN:+c}!function __(c){(function Qx(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Tu(W),gt=Su(W),Dt=Tu(ce),Pt=Su(ce),Ut=Tu(De),Zt=Su(De),hi=Tu(Ve),Yt=Su(Ve),di=Tu(qe),wi=Su(qe),gi={a:function Ei(Ii){return De[Ii.getDay()]},A:function ji(Ii){return ce[Ii.getDay()]},b:function Wi(Ii){return qe[Ii.getMonth()]},B:function Nn(Ii){return Ve[Ii.getMonth()]},c:null,d:Ym,e:Ym,f:s_,g:Zb,G:h_,H:t_,I:i_,j:n_,L:Wb,m:r_,M:$b,p:function ts(Ii){return W[+(Ii.getHours()>=12)]},q:function Wn(Ii){return 1+~~(Ii.getMonth()/3)},Q:Og,s:Du,S:Xb,u:Yb,U:Kb,V:o_,w:Yw,W:a_,x:null,X:null,y:l_,Y:c_,Z:qb,"%":Jb},ki={a:function Yr(Ii){return De[Ii.getUTCDay()]},A:function ds(Ii){return ce[Ii.getUTCDay()]},b:function Kr(Ii){return qe[Ii.getUTCMonth()]},B:function Ll(Ii){return Ve[Ii.getUTCMonth()]},c:null,d:Ag,e:Ag,f:d_,g:v_,G:y_,H:Qb,I:tf,j:nf,L:Mu,m:u_,M:p_,p:function is(Ii){return W[+(Ii.getUTCHours()>=12)]},q:function Zr(Ii){return 1+~~(Ii.getUTCMonth()/3)},Q:Og,s:Du,S:Ig,u:Km,U:f_,V:Kw,w:m_,W:b_,x:null,X:null,y:Zw,Y:qw,Z:x_,"%":Jb},Bi={a:function Ln(Ii,gn,Vn){var xi=Ut.exec(gn.slice(Vn));return xi?(Ii.w=Zt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},A:function Ui(Ii,gn,Vn){var xi=Dt.exec(gn.slice(Vn));return xi?(Ii.w=Pt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},b:function Un(Ii,gn,Vn){var xi=di.exec(gn.slice(Vn));return xi?(Ii.m=wi.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},B:function Ri(Ii,gn,Vn){var xi=hi.exec(gn.slice(Vn));return xi?(Ii.m=Yt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},c:function Ji(Ii,gn,Vn){return ln(Ii,v,gn,Vn)},d:zb,e:zb,f:Qp,g:Zp,G:Um,H:Gb,I:Gb,j:$m,L:ku,m:e_,M:qp,p:function ps(Ii,gn,Vn){var xi=et.exec(gn.slice(Vn));return xi?(Ii.p=gt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},q:fh,Q:Jp,s:Ub,S:Hb,u:Hm,U:Xw,V:jb,w:Eg,W:Vb,x:function Qs(Ii,gn,Vn){return ln(Ii,i,gn,Vn)},X:function yi(Ii,gn,Vn){return ln(Ii,m,gn,Vn)},y:Zp,Y:Um,Z:Wm,"%":Xm};function Mi(Ii,gn){return function(Vn){var Yo,mn,ur,xi=[],dr=-1,Es=0,Xo=Ii.length;for(Vn instanceof Date||(Vn=new Date(+Vn));++dr53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Xo=(Es=zm(Kp(xi.y,0,1))).getUTCDay(),Es=Xo>4||0===Xo?Up.ceil(Es):Up(Es),Es=jm.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Xo=(Es=Yp(Kp(xi.y,0,1))).getDay(),Es=Xo>4||0===Xo?kg.ceil(Es):kg(Es),Es=Mg.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Xo="Z"in xi?zm(Kp(xi.y,0,1)).getUTCDay():Yp(Kp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Xo+5)%7:xi.w+7*xi.U-(Xo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,zm(xi)):Yp(xi)}}function ln(Ii,gn,Vn,xi){for(var Yo,mn,dr=0,Es=gn.length,Xo=Vn.length;dr=Xo)return-1;if(37===(Yo=gn.charCodeAt(dr++))){if(Yo=gn.charAt(dr++),!(mn=Bi[Yo in Bb?gn.charAt(dr++):Yo])||(xi=mn(Ii,Vn,xi))<0)return-1}else if(Yo!=Vn.charCodeAt(xi++))return-1}return xi}return gi.x=Mi(i,gi),gi.X=Mi(m,gi),gi.c=Mi(v,gi),ki.x=Mi(i,ki),ki.X=Mi(m,ki),ki.c=Mi(v,ki),{format:function(Ii){var gn=Mi(Ii+="",gi);return gn.toString=function(){return Ii},gn},parse:function(Ii){var gn=an(Ii+="",!1);return gn.toString=function(){return Ii},gn},utcFormat:function(Ii){var gn=Mi(Ii+="",ki);return gn.toString=function(){return Ii},gn},utcParse:function(Ii){var gn=an(Ii+="",!0);return gn.toString=function(){return Ii},gn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const nv=gg(Nr).right,sv=(gg(Eu),nv);function w_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function S_(c){return+c}var rv=[0,1];function Uh(c){return c}function _d(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function T_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function Pg(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Lg:Pg,qe=et=null,Dt}function Dt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Dt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Go)))(Pt)))},Dt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,S_),gt()):c.slice()},Dt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Dt.rangeRound=function(Pt){return v=Array.from(Pt),i=w_,gt()},Dt.clamp=function(Pt){return arguments.length?(De=!!Pt||Uh,gt()):De!==Uh},Dt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Dt.unknown=function(Pt){return arguments.length?(ce=Pt,Dt):ce},function(Pt,Ut){return m=Pt,W=Ut,gt()}}()(Uh,Uh)}function Cd(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Qm,O_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function gh(c){if(!(v=O_.exec(c)))throw new Error("invalid format: "+c);var v;return new Au({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function Au(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function af(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Iu(c){return(c=af(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}gh.prototype=Au.prototype,Au.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function P_(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function R_(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Qm=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+af(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function Rg(c){return c}var cf,uv,N_,dv=Array.prototype.map,Jm=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function j_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function Dx(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=mg(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function wd(){var c=ov();return c.copy=function(){return function M_(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,wd())},Cd.apply(c,arguments),j_(c)}function t0(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(dv.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?Rg:function L_(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(dv.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Dt){var Pt=(Dt=gh(Dt)).fill,Ut=Dt.align,Zt=Dt.sign,hi=Dt.symbol,Yt=Dt.zero,di=Dt.width,wi=Dt.comma,gi=Dt.precision,ki=Dt.trim,Bi=Dt.type;"n"===Bi?(wi=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Yt||"0"===Pt&&"="===Ut)&&(Yt=!0,Pt="0",Ut="=");var Mi="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",an="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Ln(Ui){var Ji,Qs,yi,Un=Mi,Ri=an;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function lf(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?Jm[8+Qm/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Qs=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}wi&&!Yt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Ln.toString=function(){return Dt+""},Ln}return{format:et,formatPrefix:function gt(Dt,Pt){var Ut=et(((Dt=gh(Dt)).type="f",Dt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Iu(Pt)/3))),hi=Math.pow(10,-Zt),Yt=Jm[8+Zt/3];return function(di){return Ut(hi*di)+Yt}}}}(c),uv=cf.format,N_=cf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=r0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(s0(this,v))}has(v){return super.has(s0(this,v))}set(v,i){return super.set(function pv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function Wh({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function s0({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function r0(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const Ng=Symbol("implicit");function o0(){var c=new n0,v=[],i=[],m=Ng;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==Ng)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return o0(v,i).unknown(m)},Cd.apply(W,arguments),W}function Fg(){var ce,De,c=o0().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Dt(){var Pt=v().length,Ut=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function hf(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?df:c<=-1?-df:Math.asin(c)}const kd=Math.PI,h0=2*kd,Md=1e-6,G_=h0-Md;function mv(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return mv;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;WMd)if(Math.abs(Dt*qe-et*gt)>Md&&ce){let Ut=m-De,Zt=W-Ve,hi=qe*qe+et*et,Yt=Ut*Ut+Zt*Zt,di=Math.sqrt(hi),wi=Math.sqrt(Pt),gi=ce*Math.tan((kd-Math.acos((hi+Pt-Yt)/(2*di*wi)))/2),ki=gi/wi,Bi=gi/di;Math.abs(ki-1)>Md&&this._append`L${v+ki*gt},${i+ki*Dt}`,this._append`A${ce},${ce},0,0,${+(Dt*Ut>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Dt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>Md||Math.abs(this._y1-gt)>Md)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%h0+h0),Pt>G_?this._append`A${m},${m},0,1,${Dt},${v-Ve},${i-qe}A${m},${m},0,1,${Dt},${this._x1=et},${this._y1=gt}`:Pt>Md&&this._append`A${m},${m},0,${+(Pt>=kd)},${Dt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function W_(c){return c.innerRadius}function $_(c){return c.outerRadius}function bv(c){return c.startAngle}function vv(c){return c.endAngle}function d0(c){return c&&c.padAngle}function Gg(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/kc(Ve*Ve+qe*qe),gt=et*qe,Dt=-et*Ve,Pt=c+gt,Ut=v+Dt,Zt=i+gt,hi=m+Dt,Yt=(Pt+Zt)/2,di=(Ut+hi)/2,wi=Zt-Pt,gi=hi-Ut,ki=wi*wi+gi*gi,Bi=W-ce,Mi=Pt*hi-Zt*Ut,an=(gi<0?-1:1)*kc(c0(0,Bi*Bi*ki-Mi*Mi)),ln=(Mi*gi-wi*an)/ki,ps=(-Mi*wi-gi*an)/ki,Ln=(Mi*gi+wi*an)/ki,Ui=(-Mi*wi+gi*an)/ki,Un=ln-Yt,Ri=ps-di,Ji=Ln-Yt,Qs=Ui-di;return Un*Un+Ri*Ri>Ji*Ji+Qs*Qs&&(ln=Ln,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Dt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function Hg(){var c=W_,v=$_,i=Wo(0),m=null,W=bv,ce=vv,De=d0,Ve=null,qe=function zg(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Vg(v)}(et);function et(){var gt,Dt,Pt=+c.apply(this,arguments),Ut=+v.apply(this,arguments),Zt=W.apply(this,arguments)-df,hi=ce.apply(this,arguments)-df,Yt=Ou(hi-Zt),di=hi>Zt;if(Ve||(Ve=gt=qe()),UtJa)if(Yt>uf-Ja)Ve.moveTo(Ut*Sd(Zt),Ut*So(Zt)),Ve.arc(0,0,Ut,Zt,hi,!di),Pt>Ja&&(Ve.moveTo(Pt*Sd(hi),Pt*So(hi)),Ve.arc(0,0,Pt,hi,Zt,di));else{var Ri,Ji,wi=Zt,gi=hi,ki=Zt,Bi=hi,Mi=Yt,an=Yt,ln=De.apply(this,arguments)/2,ps=ln>Ja&&(m?+m.apply(this,arguments):kc(Pt*Pt+Ut*Ut)),Ln=jg(Ou(Ut-Pt)/2,+i.apply(this,arguments)),Ui=Ln,Un=Ln;if(ps>Ja){var Qs=gv(ps/Pt*So(ln)),yi=gv(ps/Ut*So(ln));(Mi-=2*Qs)>Ja?(ki+=Qs*=di?1:-1,Bi-=Qs):(Mi=0,ki=Bi=(Zt+hi)/2),(an-=2*yi)>Ja?(wi+=yi*=di?1:-1,gi-=yi):(an=0,wi=gi=(Zt+hi)/2)}var Ei=Ut*Sd(wi),ji=Ut*So(wi),Wi=Pt*Sd(Bi),Nn=Pt*So(Bi);if(Ln>Ja){var Kr,ts=Ut*Sd(gi),Wn=Ut*So(gi),Yr=Pt*Sd(ki),ds=Pt*So(ki);if(Yt<$h)if(Kr=function yv(c,v,i,m,W,ce,De,Ve){var qe=i-c,et=m-v,gt=De-W,Dt=Ve-ce,Pt=Dt*qe-gt*et;if(!(Pt*Pt1?0:c<-1?$h:Math.acos(c)}((Ll*Zr+is*Ii)/(kc(Ll*Ll+is*is)*kc(Zr*Zr+Ii*Ii)))/2),Vn=kc(Kr[0]*Kr[0]+Kr[1]*Kr[1]);Ui=jg(Ln,(Pt-Vn)/(gn-1)),Un=jg(Ln,(Ut-Vn)/(gn+1))}else Ui=Un=0}an>Ja?Un>Ja?(Ri=Gg(Yr,ds,Ei,ji,Ut,Un,di),Ji=Gg(ts,Wn,Wi,Nn,Ut,Un,di),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),UnJa&&Mi>Ja?Ui>Ja?(Ri=Gg(Wi,Nn,ts,Wn,Pt,-Ui,di),Ji=Gg(Ei,ji,Yr,ds,Pt,-Ui,di),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function X_(c){return c}var u0=He(76021);const p0=["caretElm"],wv=c=>({model:c});function f0(c,v){}function g0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,f0,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,wv,i.context))}}function Z_(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function q_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function Q_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Tv=["*"];function Sv(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function m0(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const d1=["ngx-charts-svg-radial-gradient",""];function fT(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const f1=["ngx-charts-count-up",""];function Vv(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function mT(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function m1(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function zv(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function v0(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function b1(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function v1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,m1,1,2,"div",11)(3,zv,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,v0,1,2,"div",14)(7,b1,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const y1=["tooltipTemplate"],ff=(c,v)=>[c,v],sy=["ngx-charts-pie-label",""],Bu=["ngx-charts-pie-arc",""];function ju(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Vu=["ngx-charts-pie-series",""];function zu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Gu(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,zu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function my(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function dS(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:my(ce.value,c,v)}),this[W]}}}}var Hn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Hn||{});function qg(c,v,i){return i===Hn.Top?c.top-7:i===Hn.Bottom?c.top+c.height-v.height+7:i===Hn.Center?c.top+c.height/2-v.height/2:void 0}function Qg(c,v,i){return i===Hn.Left?c.left-7:i===Hn.Right?c.left+c.width-v.width+7:i===Hn.Center?c.left+c.width/2-v.width/2:void 0}class hr{static calculateVerticalAlignment(v,i,m){let W=qg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Hn.Top&&(ce=v.height/2-m.height/2+7),W===Hn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Hn.Center&&(ce=i.height/2-m.height/2);const De=qg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Qg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Hn.Left&&(ce=v.width/2-m.width/2+7),W===Hn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Hn.Center&&(ce=i.width/2-m.width/2);const De=Qg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Hn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Hn.Left&&v.left-i.width-W<0&&(ce=!0),m===Hn.Top&&v.top-i.height-W<0&&(ce=!0),m===Hn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=-7,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Left?(Ve=i.width,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Top?(De=i.height,Ve=hr.calculateHorizontalCaret(m,i,W,ce)):v===Hn.Bottom&&(De=-7,Ve=hr.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=m.left+m.width+W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Left?(Ve=m.left-i.width-W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Top?(De=m.top-i.height-W,Ve=hr.calculateHorizontalAlignment(m,i,ce)):v===Hn.Bottom&&(De=m.top+m.height+W,Ve=hr.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(hr.shouldFlip(m,i,v,W)){if(v===Hn.Right)return Hn.Left;if(v===Hn.Left)return Hn.Right;if(v===Hn.Top)return Hn.Bottom;if(v===Hn.Bottom)return Hn.Top}return v}}let rC=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Zi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=hr.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=hr.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=hr.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(p0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,g0,2,4,"span",3)(5,Z_,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Zi.bT,Zi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,We.Cg)([dS(100)],c.prototype,"onWindowResize",null),c})();class by{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let Pl=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function Dc(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new cc(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new Dn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),el=(()=>{class c extends by{constructor(i){super(i),this.type=rC}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(Pl))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Od=function(c){return c.Right="right",c.Below="below",c}(Od||{}),Uu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Uu||{}),wn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(wn||{});let vy=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function Df(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Jg=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Wu=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=Df(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,q_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,Q_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Jg,Zi.bT,Zi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),yy=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Od,this.LegendType=Uu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Od.Right)&&(i=this.legendType===Uu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Od.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===wn.Linear?Uu.ScaleLegend:Uu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([el]),e.OA$],ngContentSelectors:Tv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Sv,1,5,"ngx-charts-scale-legend",2)(4,m0,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[vy,Wu,Zi.bT],encapsulation:2,changeDetection:0}),c})(),xy=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function _y(c){return"[object Date]"===toString.call(c)}let I0=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=wn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Zi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new xy(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Zi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function wy(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var P0=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(P0||{});let Ty=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD]]}),c})();var Ef=function(c){return c.popover="popover",c.tooltip="tooltip",c}(Ef||{}),$u=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}($u||{});let L0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Hn.Top,this.tooltipAlignment=Hn.Center,this.tooltipType=Ef.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=$u.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.focus}get listensForHover(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(el),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),em=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[Pl,el],imports:[[Zi.MD]]}),c})();const Sy={};function Pd(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,Sy[c]?Pd():(Sy[c]=!0,c)}var Ec=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(Ec||{});let N0=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:d1,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,fT,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Zi.Sq],encapsulation:2,changeDetection:0}),c})();function F0(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function B0(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Dt;function Pt(Ut){let Zt;const hi=Ut-Dt;Zt=Ve?ce-F0(hi,0,ce-De,gt):F0(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Yt=hiPt(di))}return requestAnimationFrame(Ut=>(Dt=Ut,Pt(Ut)))}let Of,My=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function dC(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=B0(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:f1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?Of=window:typeof global<"u"&&(Of=global);let V0=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=Df(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:wy(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,Vv,1,2,"div",1)(2,mT,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,v1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[My,Zi.bT,Zi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),tl=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD,Ty,em],Zi.MD,Ty,em]}),c})();const Pf=[{name:"vivid",selectable:!0,group:wn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:wn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:wn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:wn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:wn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:wn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:wn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:wn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:wn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:wn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:wn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:wn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:wn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:wn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:wn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class nm{constructor(v,i,m,W){"string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),i){case wn.Quantile:W=hf().range(v.domain).domain(m);break;case wn.Ordinal:W=o0().range(v.domain).domain(m);break;case wn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=t0(0,1,1/ce.length);W=wd().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===wn.Linear){const i=wd().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=wd().domain(this.domain).range([0,1]),W=Fg().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Dt=[];for(Dt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Dt.push({color:Pt,offset:Ut,opacity:1}),gt=Ut,et++}}if(Dt[Dt.length-1].offset<100&&Dt.push({color:ce,offset:qe,opacity:1}),qe===De)Dt[0].offset=0,Dt[1].offset=100;else if(100!==Dt[Dt.length-1].offset)for(const Pt of Dt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Dt}}let Ku=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),da=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})();u0();let Py=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),CC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),W0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),SC=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=wy}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Zi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=Hg().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=Ec,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Pd().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),Hg().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=qa(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Bu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,ju,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[N0,Zi.bT],encapsulation:2,changeDetection:0}),c})(),Ly=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Hn,this.styleTypes=Ef}ngOnChanges(i){this.update()}update(){const m=function Y_(){var c=X_,v=Cv,i=null,m=Wo(0),W=Wo(uf),ce=Wo(0);function De(Ve){var qe,gt,Dt,di,ki,et=(Ve=function _v(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Ut=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Yt=Math.min(uf,Math.max(-uf,W.apply(this,arguments)-hi)),wi=Math.min(Math.abs(Yt)/et,ce.apply(this,arguments)),gi=wi*(Yt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Ut.sort(function(Bi,Mi){return v(Zt[Bi],Zt[Mi])}):null!=i&&Ut.sort(function(Bi,Mi){return i(Ve[Bi],Ve[Mi])}),qe=0,Dt=Pt?(Yt-et*gi)/Pt:0;qe0?ki*Dt:0)+gi,padAngle:wi};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:Wo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:Wo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:Wo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:Wo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function K_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return Hg().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return Df(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=Df(i.data.value);return`\n ${function A0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Vu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Gu,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[SC,kC,Zi.Sq,Zi.bT,L0],encapsulation:2,changeDetection:0}),c})(),Nf=(()=>{class c extends I0{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function uC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=wn.Ordinal,legendPosition:Dt=Od.Right,columns:Pt=12}){let Ut=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Dt===Od.Right&&(Pt-=gt===wn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Ut+=De,Ut+=10,qe&&(Zt-=30,Ut+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Ut)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new nm(this.scheme,wn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,y1,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,ff,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[yy,Ly,V0],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),$0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Ny=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,W0]]}),c})(),IC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),PC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Fy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,da]]}),c})(),Ff=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),NC=(()=>{class c{constructor(){!function RC(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[tl,Ku,da,Py,_C,CC,Ff,W0,Ny,IC,$0,PC,Fy]}),c})();var lm=He(91346),By=He(12168),BC=He(38833),cm=He(46247),jC=He(41570);const Y0=()=>({width:"75vw"}),VC=()=>[10,25,50];function jy(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Vy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function zC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function GC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function HC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function K0(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function UC(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const WC=[sn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getStats()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Dt=et._TS;return gt>Dt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new lm.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Nl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Lr.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Pr.c$),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,jy,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Vy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,zC,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,GC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,HC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,K0,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,UC,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,Y0)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,VC))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Zi.bT,Nf,Pr.Mm,lm.S6,cm.XI,yl.Ei,cm.Tg,cm.yc,jC.l,Pr.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Ir.o6)("dashboard")}}])];let $C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forChild(WC),fr.iI]})}return c})(),XC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:lm.SV,useFactory:()=>[By,BC]}],imports:[Bt,NC,$C,Zi.MD,at.X1,Pr.h,lm.Fr,Ks.G]})}return c})(),YC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Zi.MD,Pr.h,rr.UN,at.YN,fr.iI]})}return c})(),KC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Be]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Pr.h.forRoot(),Re,rr.UN,Ir.Ui,Ks.G,YC,XC,ml._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Bn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Bn.JV.TRACKING,trackerUrl:Or.c.trackerUrl,siteId:Or.c.siteId}),Vl,vl]})}return c})();Or.c.production&&(0,e.SmG)(),M.sG().bootstrapModule(KC,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Mt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Mt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Mt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>mo,B3:()=>Ki,Jj:()=>bn,MD:()=>ga,N0:()=>ba,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>er,VF:()=>Z,Vy:()=>ll,XO:()=>r,Xr:()=>sr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>Js,fG:()=>ns,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>os,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Oi=>+Oi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Oi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),es=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Oi,Xn,es),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Oi,ci=[];for(;ut;){if(Oi=Fe.exec(ut),!Oi){ci.push(ut);break}{ci=ci.concat(Oi.slice(1));const as=ci.pop();if(!as)break;ut=as}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function ui(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Jt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let es="";return ci.forEach(as=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Mt(1);break;case"YY":ut=Mt(2,!0);break;case"YYY":ut=Mt(3);break;case"YYYY":ut=Mt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(as);es+=Sn?Sn(Et,Ke,Xn):"''"===as?"'":as.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),es}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Oi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Oi]);break;case"long":const Xn=_e(Ge,"longTime"),es=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,es]);break;case"full":const as=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[as,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Oi>-Ke)&&(Oi+=Ke),Ge===ee.Hours)0===Oi&&-12===Ke&&(Oi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Oi,ut);const Xn=H(ci,g.MinusSign);return Ee(Oi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Oi=Ge.getMinutes();if(qt){const es=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),as=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=es.findIndex(us=>{if(Array.isArray(us)){const[ss,Bs]=us,Rr=ci>=ss.hours&&Oi>=ss.minutes,Gn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Oi=qt.getTime()-ci.getTime();Et=1+Math.round(Oi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Mt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Oi=at.get(qt);at.move(Oi,ci),Ti(Oi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new rs,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class rs{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let os=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),Js=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),ns=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function pr(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,Jr=new Oa;let bn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return Jr;throw pr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const rl=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw pr()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(rl,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=pa}transform(Ke,at=pa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function go(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function pa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const mo="browser",ma="server";function er(Ge){return Ge===mo}function ll(Ge){return Ge===ma}let sr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>er((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new Zo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Ar(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class Zo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class ba{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),os=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:os}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:os,url:Js}=si(),ns=null;cn!==C.NoContent&&(ns=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=ns?C.Ok:0);let Qr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof ns){const nr=ns;ns=ns.replace(Xe,"");try{ns=""!==ns?JSON.parse(ns):null}catch(Ls){ns=nr,Qr&&(Qr=!1,ns={error:Ls,text:ns})}}Qr?($e.next(new l({body:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0})),$e.complete()):$e.error(new d({error:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0}))},Si=Xi=>{const{url:cn}=si(),os=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(os)};let Hi=!1;const rs=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const ui=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:ui,useFactory:he},{provide:R,useExisting:ui,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>fd,iLQ:()=>gw,sZ2:()=>rh,hnV:()=>Jk,Hbi:()=>uA,o8S:()=>qu,BIS:()=>Kl,gRc:()=>uM,Ql9:()=>BE,OM3:()=>lf,Ocv:()=>$E,abz:()=>yc,Z63:()=>Io,aKT:()=>hu,uvJ:()=>xo,zcH:()=>Za,bkB:()=>aa,$GK:()=>bn,nKC:()=>$e,zZn:()=>zo,_q3:()=>ww,MKu:()=>Tw,xe9:()=>Yy,Co$:()=>w1,Vns:()=>Dd,SKi:()=>kr,Xx1:()=>er,Agw:()=>jh,PLl:()=>fu,sFG:()=>R_,_9s:()=>Qm,czy:()=>yg,WPN:()=>dh,kdw:()=>Gr,C4Q:()=>Mu,NYb:()=>IE,giA:()=>qk,RxE:()=>Hk,c1b:()=>zg,gXe:()=>Oo,mal:()=>Fg,Af3:()=>Ge,tdH:()=>dv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>_0,w6W:()=>T1,oH4:()=>lM,QZP:()=>HM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>Qi,hFB:()=>Dp,QuC:()=>vo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>r1,O8t:()=>WA,An2:()=>Au,H3F:()=>Uk,H8p:()=>Ns,KH2:()=>Lf,TgB:()=>gf,wOt:()=>me,WHO:()=>Kk,e01:()=>Zk,lNU:()=>he,h9k:()=>lb,$MX:()=>cg,ZF7:()=>lh,Kcf:()=>lg,e5t:()=>rx,UyX:()=>nx,cWb:()=>ix,osQ:()=>sx,H5H:()=>z0,Zy3:()=>Ce,mq5:()=>fC,JZv:()=>Ze,LfX:()=>fo,plB:()=>Td,jNT:()=>pw,zjR:()=>Qk,TL$:()=>Ap,Tbb:()=>pt,rcV:()=>Al,nM4:()=>Gv,Vt3:()=>v0,Mj6:()=>Zi,GFd:()=>C1,OA$:()=>wl,Jv_:()=>ek,aNF:()=>tk,R7$:()=>Up,BMQ:()=>ay,HbH:()=>by,ZvI:()=>aC,AVh:()=>Qg,vxM:()=>Af,wni:()=>Qs,VBU:()=>Ac,FsC:()=>Lr,jDH:()=>$i,G2t:()=>kn,$C:()=>Fl,EJ8:()=>Ic,rXU:()=>Cu,nrm:()=>j0,eu8:()=>Ey,bVm:()=>nm,qex:()=>Pf,k0s:()=>im,j41:()=>Xu,RV6:()=>pC,xGo:()=>Jd,Mr5:()=>Iy,pXf:()=>ce,KVO:()=>Is,kS0:()=>th,QTQ:()=>yd,bIt:()=>gt,lsd:()=>ji,joV:()=>xp,qSk:()=>yp,XpG:()=>di,nI1:()=>Tk,bMT:()=>Sk,i5U:()=>kk,SdG:()=>ki,NAR:()=>gi,Y8G:()=>Hn,FS9:()=>Bi,Mz_:()=>Mi,lJ4:()=>hk,eq3:()=>dk,l_i:()=>uk,sMw:()=>pk,ziG:()=>fk,s1E:()=>gk,l4e:()=>mk,sGs:()=>bk,zJS:()=>vk,mGM:()=>Ei,sdS:()=>Yr,Dyx:()=>F0,Z7z:()=>N0,fX1:()=>If,Njj:()=>Hc,EBC:()=>Ix,tSv:()=>bg,eBV:()=>Ka,npT:()=>cb,f$h:()=>dg,B4B:()=>Pp,n$t:()=>To,Aen:()=>hr,xc7:()=>qg,zvX:()=>Oy,DNE:()=>bf,C5r:()=>Mk,EFF:()=>WS,JRh:()=>ZC,SpI:()=>Gy,Lme:()=>qC,E5c:()=>QC,LHq:()=>JC,DH7:()=>QS,mxI:()=>tw,R50:()=>ew,GBs:()=>yi}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Mt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Di(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function kn(t){return{providers:t.providers||[],imports:t.imports||[]}}function jr(t){return qr(t,Rt)||qr(t,bt)}function fo(t){return null!==jr(t)}function qr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const os=st({\u0275cmp:st}),Js=st({\u0275dir:st}),ns=st({\u0275pipe:st}),Qr=st({\u0275mod:st}),nr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),Vr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function Jr(t,s){throw new me(-201,!1)}var bn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bn||{});let Ko;function nl(){return Ko}function Gs(t){const s=Ko;return Ko=t,s}function eo(t,s,h){const P=jr(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&bn.Optional?null:void 0!==s?s:void Jr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",ua=/\n/gm,go="__source";let xr;function Dr(t){const s=xr;return xr=t,s}function fa(t,s=bn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?eo(t,void 0,s):xr.get(t,s&bn.Optional?null:void 0,s)}function Is(t,s=bn.Default){return(nl()||fa)(Mt(t),s)}function Qi(t,s=bn.Default){return Is(t,zr(s))}function zr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Do(t){const s=[];for(let h=0;hArray.isArray(h)?Ar(h,s):s(h))}function Zo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function ba(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Xs(t,s,h){let P=Hr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function to(t,s){const h=Hr(t,s);if(h>=0)return t[1|h]}function Hr(t,s){return function ec(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Ks(P))return!1;ke=!0}}}}else{if(!ke&&!Ks(P)&&!Ks(ze))return!1;if(ke&&Ks(ze))continue;ke=!1,P=ze|1&P}}return Ks(P)||ke}function Ks(t){return!(1&t)}function Or(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Ks(ke)&&(s+=tc(ge,Q),Q=""),P=ke,ge=ge||!Ks(P);h++}return""!==Q&&(s+=tc(ge,Q)),s}function Ac(t){return ee(()=>{const s=dl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===hl.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Oo.Emulated,styles:t.styles||Mn,_:null,schemas:t.schemas||null,tView:null,id:""};ul(h);const P=t.dependencies;return h.directiveDefs=pl(P,!1),h.pipeDefs=pl(P,!0),h.id=function ic(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function so(t){return hn(t)||Rs(t)}function Kh(t){return null!==t}function Fl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Mn,declarations:t.declarations||Mn,imports:t.imports||Mn,exports:t.exports||Mn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ys;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Zi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Zi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Lr(t){return ee(()=>{const s=dl(t);return ul(s),s})}function Ic(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[os]||null}function Rs(t){return t[Js]||null}function Ss(t){return t[ns]||null}function vo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function Zs(t,s){const h=t[Qr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function dl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ys,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Mn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function ul(t){t.features?.forEach(s=>s(t))}function pl(t,s){if(!t)return null;const h=s?Ss:so;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Kh)}function za(t){return{\u0275providers:t}}function Bl(...t){return{\u0275providers:fl(0,t),\u0275fromNgModule:!0}}function fl(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Ar(s,ke=>{const Le=ke;nc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Pc(Q,ge),h}function Pc(t,s){for(let h=0;h{s(ge,P)})}}function nc(t,s,h,P){if(!(t=Mt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)nc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Ar(ge.imports,dt=>{nc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Pc(Je,s)}if(!Le){const Je=Er(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Mn},Q),s({provide:qo,useValue:Q,multi:!0},Q),s({provide:Io,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;Po(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function Po(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?Po(h,s):s(h)}const Rc=st({provide:String,useValue:st});function jl(t){return null!==t&&"object"==typeof t&&Rc in t}function Lo(t){return"function"==typeof t}const Ns=new $e(""),Fs={},ea={};let gl;function yo(){return void 0===gl&&(gl=new bo),gl}class xo{}class _a extends xo{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ia(s,ke=>this.processProvider(ke)),this.records.set(ya,_r(void 0,this)),Q.has("environment")&&this.records.set(xo,_r(void 0,this));const ge=this.records.get(Ns);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(qo,Mn,bn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=Dr(this),P=Gs(void 0);try{return s()}finally{Dr(h),Gs(P)}}get(s,h=vr,P=bn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(Vr))return s[Vr](this);P=zr(P);const ge=Dr(this),ke=Gs(void 0);try{if(!(P&bn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Ur(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&jr(s);ze=Je&&this.injectableDefInScope(Je)?_r(Ca(s),Fs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&bn.Self?yo():this.parent).get(s,h=P&bn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ma(t,s,h,P){const Q=t[yr];throw s[go]&&Q.unshift(s[go]),t.message=function al(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(ua,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),Dr(ge)}}resolveInjectorInitializers(){const s=re(null),h=Dr(this),P=Gs(void 0);try{const ge=this.get(Io,Mn,bn.Self);for(const ke of ge)ke()}finally{Dr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Lo(s=Mt(s))?s:Mt(s&&s.provide);const P=function Fc(t){return jl(t)?_r(void 0,t.useValue):_r(ml(t),Fs)}(s);if(!Lo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Fs,!0),Q.factory=()=>Do(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Fs&&(h.value=ea,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ta(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Mt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function Ca(t){const s=jr(t),h=null!==s?s.factory:Er(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function Vl(t){if(t.length>0)throw new me(204,!1);const h=function ir(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function ml(t,s,h){let P;if(Lo(t)){const Q=Mt(t);return Er(Q)||Ca(Q)}if(jl(t))P=()=>Mt(t.useValue);else if(function Nc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Do(t.deps||[]));else if(function tr(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Mt(t.useExisting));else{const Q=Mt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Er(Q)||Ca(Q);P=()=>new Q(...Do(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function ia(t,s){for(const h of t)Array.isArray(h)?ia(h,s):h&&cn(h)?ia(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof _a&&t.assertNotDestroyed();const P=Dr(t),Q=Gs(void 0);try{return s()}finally{Dr(P),Gs(Q)}}function na(){return void 0!==nl()||null!=function pa(){return xr}()}function Ge(t){if(!na())throw new me(-203,!1)}const Gn=0,pi=1,zi=2,Yn=3,gs=4,ks=5,or=6,wa=7,ms=8,gr=9,_o=10,en=11,Ro=12,sc=13,bs=14,Kn=15,Ta=16,zl=17,Co=18,rc=19,Sa=20,No=21,bl=22,Ua=23,sn=25,oc=1,Fo=7,yl=9,js=10;var lc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(lc||{});function mr(t){return Array.isArray(t)&&"object"==typeof t[oc]}function Vs(t){return Array.isArray(t)&&!0===t[oc]}function Gl(t){return!!(4&t.flags)}function sa(t){return t.componentOffset>-1}function xl(t){return!(1&~t.flags)}function Wr(t){return!!t.template}function Bc(t){return!!(512&t[zi])}class Hl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Cl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function wl(){return cc}function cc(t){return t.type.prototype.ngOnChanges&&(t.setInput=tp),Wa}function Wa(){const t=ip(this),s=t?.current;if(s){const h=t.previous;if(h===Ys)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function tp(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=ip(t)||function np(t,s){return t[ed]=s}(t,{previous:Ys,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Hl(Je&&Je.currentValue,h,ze===Ys),Cl(t,s,Q,h)}wl.ngInherit=!0;const ed="__ngSimpleChanges__";function ip(t){return t[ed]||null}const Bo=function(t,s,h){},yh="svg";let op=!1;function Ts(t){for(;Array.isArray(t);)t=t[Gn];return t}function jc(t,s){return Ts(s[t])}function $r(t,s){return Ts(s[t.index])}function xh(t,s){return t.data[s]}function Vc(t,s){return t[s]}function jo(t,s){const h=s[t];return mr(h)?h:h[Gn]}function td(t){return!(128&~t[zi])}function $a(t,s){return null==s?null:t[s]}function ap(t){t[zl]=0}function lp(t){1024&t[zi]||(t[zi]|=1024,td(t)&&Ch(t))}function Gc(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function _h(t){t[_o].changeDetectionScheduler?.notify(1),Gc(t)?Ch(t):64&t[zi]&&(function Vf(){return op}()?(t[zi]|=1024,Ch(t)):t[_o].changeDetectionScheduler?.notify())}function Ch(t){t[_o].changeDetectionScheduler?.notify();let s=Xa(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,td(s));)s=Xa(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[No]&&(t[No]=[]),t[No].push(s)}function Xa(t){const s=t[Yn];return Vs(s)?s[Yn]:s}const on={lFrame:sd(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function hc(){return on.bindingsEnabled}function Ya(){return null!==on.skipHydrationRootTNode}function ni(){return on.lFrame.lView}function xn(){return on.lFrame.tView}function Ka(t){return on.lFrame.contextLView=t,t[ms]}function Hc(t){return on.lFrame.contextLView=null,t}function hs(){let t=Uc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Uc(){return on.lFrame.currentTNode}function ra(){const t=on.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function oa(t,s){const h=on.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return on.lFrame.isParent}function jd(){on.lFrame.isParent=!1}function oo(){const t=on.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function Sl(){return on.lFrame.bindingIndex}function ka(){return on.lFrame.bindingIndex++}function kl(t){const s=on.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function mp(t){on.lFrame.inI18n=t}function bp(t,s){const h=on.lFrame;h.bindingIndex=h.bindingRootIndex=t,Sh(s)}function Sh(t){on.lFrame.currentDirectiveIndex=t}function kh(t){const s=on.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function nd(){return on.lFrame.currentQueryIndex}function Wc(t){on.lFrame.currentQueryIndex=t}function Xf(t){const s=t[pi];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Mh(t,s,h){if(h&bn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&bn.Host||(Q=Xf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=on.lFrame=vp();return P.currentTNode=s,P.lView=t,!0}function Vd(t){const s=vp(),h=t[pi];on.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function vp(){const t=on.lFrame,s=null===t?null:t.child;return null===s?sd(t):s}function sd(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function zd(){const t=on.lFrame;return on.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Gd=zd;function rd(){const t=zd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Xr(){return on.lFrame.selectedIndex}function uc(t){on.lFrame.selectedIndex=t}function Os(){const t=on.lFrame;return xh(t.tView,t.selectedIndex)}function yp(){on.lFrame.currentNamespace=yh}function xp(){!function Hd(){on.lFrame.currentNamespace=null}()}let $c=!0;function Xc(){return $c}function Vo(t){$c=t}function Yc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[zl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,Ml(Le,ge)):Ml(Le,ge)}const pc=-1;class Kc{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function qc(t){return t!==pc}function br(t){return 32767&t}function fc(t,s){let h=function Xd(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let Wl=!0;function Cr(t){const s=Wl;return Wl=t,s}const Qc=255,Dl=5;let Oh=0;const Ma={};function Jc(t,s){const h=gc(t,s);if(-1!==h)return h;const P=s[pi];P.firstCreatePass&&(t.injectorIndex=s.length,Kd(P.data,t),Kd(s,null),Kd(P.blueprint,null));const Q=Zd(t,s),ge=t.injectorIndex;if(qc(Q)){const ke=br(Q),Le=fc(Q,s),ze=Le[pi].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kd(t,s){t.push(0,0,0,0,0,0,0,0,s)}function gc(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zd(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=cd(Q),null===P)return pc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return pc}function Ph(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Oh++);const Q=P&Qc;s.data[t+(Q>>Dl)]|=1<=0?s&Qc:wp:s}(h);if("function"==typeof ge){if(!Mh(s,t,P))return P&bn.Host?Qd(Q,0,P):eh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&bn.Optional)return ke;Jr()}finally{Gd()}}else if("number"==typeof ge){let ke=null,Le=gc(t,s),ze=pc,Je=P&bn.Host?s[Kn][ks]:null;for((-1===Le||P&bn.SkipSelf)&&(ze=-1===Le?Zd(t,s):s[Le+8],ze!==pc&&Cp(P,!1)?(ke=s[pi],Le=br(ze),s=fc(ze,s)):Le=-1);-1!==Le;){const dt=s[pi];if(Da(ge,Le,dt.data)){const Ct=mc(Le,s,h,ke,P,Je);if(Ct!==Ma)return Ct}ze=s[Le+8],ze!==pc&&Cp(P,s[pi].data[Le+8]===Je)&&Da(ge,Le,s)?(ke=dt,Le=br(ze),s=fc(ze,s)):Le=-1}}return Q}function mc(t,s,h,P,Q,ge){const ke=s[pi],Le=ke.data[t+8],dt=El(Le,ke,h,null==P?sa(Le)&&Wl:P!=ke&&!!(3&Le.type),Q&bn.Host&&ge===Le);return null!==dt?wo(s,ke,dt,Le):Ma}function El(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Wr(Ht)&&Ht.type===h)return ze}return null}function wo(t,s,h,P){let Q=t[h];const ge=s.data;if(function Ah(t){return t instanceof Kc}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Cr(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Mh(t,P,bn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Dh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=cc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Cr(Le),ke.resolving=!1,Gd()}}return Q}function Da(t,s,h){return!!(h[s+(t>>Dl)]&1<{const s=t.prototype.constructor,h=s[nr]||ld(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[nr]||ld(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function ld(t){return At(t)?()=>{const s=ld(Mt(t));return s&&s()}:Er(t)}function cd(t){const s=t[pi],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function th(t){return function qd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new bo;static create(h,P){if(Array.isArray(h))return Tp({name:""},P,h,"");{const Q=h.name??"";return Tp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(ya)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function dd(t){return t.ngOriginalError}class Za{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&dd(s);for(;h&&dd(h);)h=dd(h);return h||null}}const ou=new $e("",{providedIn:"root",factory:()=>Qi(Za).handleError.bind(void 0)});let yc=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=tg;static#t=this.__NG_ENV_ID__=h=>h}return t})();class au extends yc{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[No])return;const h=t[No].indexOf(s);-1!==h&&t[No].splice(h,1)}(this._lView,s)}}function tg(){return new au(ni())}function lu(t,s){return oe(t,s)}const Dp=(lu.required=function cu(t){return oe(Se,t)},lu);function bm(){return xc(hs(),ni())}function xc(t,s){return new hu($r(t,s))}let hu=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=bm}return t})();function du(t){return t instanceof hu?t.nativeElement:t}function Go(t){return s=>{setTimeout(t,void 0,s)}}const aa=class ng extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,na()&&(this.destroyRef=Qi(yc,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=Go(ge),Q&&(Q=Go(Q)),ke&&(ke=Go(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function uu(){return this._results[Symbol.iterator]()}class Nh{static#e=Symbol.iterator;get changes(){return this._changes??=new aa}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=Nh.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=uu)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function sr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Poh}),oh="ng",fu=new $e(""),jh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),fd=new $e(""),Kl=new $e("",{providedIn:"root",factory:()=>Ho().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const qi=new $e("",{providedIn:"root",factory:()=>!1});let tn,cr;function nn(t){return function Cn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function co(){if(void 0===cr&&(cr=null,Ze.trustedTypes))try{cr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return cr}function Uo(t){return co()?.createHTML(t)||t}function Aa(t){return co()?.createScriptURL(t)||t}class Sr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class la extends Sr{getTypeName(){return"HTML"}}class gu extends Sr{getTypeName(){return"Style"}}class rg extends Sr{getTypeName(){return"Script"}}class og extends Sr{getTypeName(){return"URL"}}class Ip extends Sr{getTypeName(){return"ResourceURL"}}function Al(t){return t instanceof Sr?t.changingThisBreaksApplicationSecurity:t}function lh(t,s){const h=function ag(t){return t instanceof Sr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function lg(t){return new la(t)}function ix(t){return new gu(t)}function nx(t){return new rg(t)}function sx(t){return new og(t)}function rx(t){return new Ip(t)}function ib(t){const s=new ax(t);return function lx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new ox(s):s}class ox{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class ax{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const cx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function cg(t){return(t=String(t)).match(cx)?t:"unsafe:"+t}function Cc(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function Op(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const nb=Cc("area,br,col,hr,img,wbr"),sb=Cc("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rb=Cc("rp,rt"),vm=Op(nb,Op(sb,Cc("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Op(rb,Cc("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Op(rb,sb)),ym=Cc("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),ob=Op(ym,Cc("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Cc("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),hx=Cc("script,style,template");class dx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=ch(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=px(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=ab(s).toLowerCase();if(!vm.hasOwnProperty(h))return this.sanitizedSomething=!0,!hx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=ab(s).toLowerCase();vm.hasOwnProperty(h)&&!nb.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(fx(s))}}function px(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw xm(s);return s}function ch(t){const s=t.firstChild;if(s&&function ux(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw xm(s);return s}function ab(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function xm(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const hh=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ow=/([^\#-~ |!])/g;function fx(t){return t.replace(/&/g,"&").replace(hh,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Ow,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let hg;function lb(t,s){let h=null;try{hg=hg||ib(t);let P=s?String(s):"";h=hg.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=hg.getInertBodyElement(P)}while(P!==ge);return nn((new dx).sanitizeChildren(_m(h)||h))}finally{if(h){const P=_m(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function _m(t){return"content"in t&&function gx(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var dh=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(dh||{});function cb(t){const s=gd();return s?Uo(s.sanitize(dh.HTML,t)||""):lh(t,"HTML")?Uo(Al(t)):lb(Ho(),Ki(t))}function Pp(t){const s=gd();return s?s.sanitize(dh.URL,t)||"":lh(t,"URL")?Al(t):cg(Ki(t))}function dg(t){const s=gd();if(s)return Aa(s.sanitize(dh.RESOURCE_URL,t)||"");if(lh(t,"ResourceURL"))return Aa(Al(t));throw new me(904,!1)}function To(t,s,h){return function hb(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?dg:Pp}(s,h)(t)}function gd(){const t=ni();return t&&t[_o].sanitizer}const ug=/^>|^->||--!>|)/g,vx="\u200b$1\u200b";const md=new Map;let _x=0;const Lp="__ngContext__";function Nr(t,s){mr(s)?(t[Lp]=s[rc],function wx(t){md.set(t[rc],t)}(s)):t[Lp]=s}function bg(t){return t.ownerDocument.defaultView}function Ix(t){return t.ownerDocument}function ha(t){return t instanceof Function?t():t}var yg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(yg||{});let Dm;function Em(t,s){return Dm(t,s)}function jp(t,s,h,P,Q){if(null!=P){let ge,ke=!1;Vs(P)?ge=P:mr(P)&&(ke=!0,P=P[Gn]);const Le=Ts(P);0===t&&null!==h?null==Q?Bx(s,h,Le):_u(s,h,Le,Q||null,!0):1===t&&null!==h?_u(s,h,Le,Q||null,!0):2===t?function vd(t,s,h){const P=zp(t,s);P&&function Om(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function Hp(t,s,h,P,Q){const ge=h[Fo];ge!==Ts(h)&&jp(s,t,P,ge,Q);for(let Le=js;Les.replace(pg,vx))}(s))}function Am(t,s,h){return t.createElement(s,h)}function zh(t,s){s[_o].changeDetectionScheduler?.notify(1),Nm(t,s,s[en],2,null,null)}function Sb(t,s){const h=t[yl],P=h.indexOf(s);h.splice(P,1)}function Vp(t,s){if(t.length<=js)return;const h=js+s,P=t[h];if(P){const Q=P[Ta];null!==Q&&Q!==t&&Sb(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=ba(t,js+s);!function Rw(t,s){zh(t,s),s[Gn]=null,s[ks]=null}(P[pi],P);const ke=ge[Co];null!==ke&&ke.detachView(ge[pi]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function xg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&Nm(t,s,h,3,null,null),function Tb(t){let s=t[Ro];if(!s)return Im(t[pi],t);for(;s;){let h=null;if(mr(s))h=s[Ro];else{const P=s[js];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)mr(s)&&Im(s[pi],s),s=s[Yn];null===s&&(s=t),mr(s)&&Im(s[pi],s),h=s&&s[gs]}s=h}}(s)}}function Im(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[wa]=null);const Q=s[No];if(null!==Q){s[No]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Oo.None||ge===Oo.Emulated)return null}return $r(P,h)}}function _u(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function Bx(t,s,h){t.appendChild(s,h)}function jx(t,s,h,P,Q){null!==P?_u(t,s,h,P,Q):Bx(t,s,h)}function zp(t,s){return t.parentNode(s)}function Gp(t,s,h){return _g(t,s,h)}function Vx(t,s,h){return 40&t.type?$r(t,h):null}let Mb,_g=Vx;function Pm(t,s){_g=t,Mb=s}function Lm(t,s,h,P){const Q=kb(t,P,s),ge=s[en],Le=Gp(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zesn&&Ab(t,s,sn,!1),Bo(ke?2:0,Q),h(P,Q)}finally{uc(ge),Bo(ke?3:1,Q)}}function Pb(t,s,h){if(Gl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function Yx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Zi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Kx(P,h,Je,Le,ze):Kx(P,h,Je,Le)}return P}function Kx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=$r(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?(Wm(t,h,dt,P,Q),sa(s)&&function Hw(t,s){const h=jo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function Gw(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Mg(t,s,h,P){if(hc()){const Q=null===P?null:{"":-1},ge=function $w(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,Tg(t,h,Q.hostVars,In),Q)}function Tc(t,s,h,P,Q,ge){const ke=$r(t,s);!function Gm(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function ys(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{Ch(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function $b(t){return Yb(t[Ro])}function Xb(t){return Yb(t[gs])}function Yb(t){for(;null!==t&&!Vs(t);)t=t[gs];return t}const Kb=100;function ef(t,s=!0,h=0){const P=t[_o],Q=P.rendererFactory;Q.begin?.();try{!function o_(t,s){Ag(t,s);let h=0;for(;Gc(t);){if(h===Kb)throw new me(103,!1);h++,Ag(t,1)}}(t,h)}catch(ke){throw s&&Zp(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function a_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[_o].inlineEffectRunner?.flush(),Vd(s);let ke=null,Le=null;(function l_(t){return 2!==t.type})(t)&&(Le=function t_(t){return t[Ua]??function i_(t){const s=Ym.pop()??Object.create(Wb);return s.lView=t,s}(t)}(s),ke=L(Le));try{ap(s),function dc(t){return on.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&Ux(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&od(s,Ct,0,null),Eh(s,0)}if(function c_(t){for(let s=$b(t);null!==s;s=Xb(s)){if(!(s[zi]&lc.HasTransplantedViews))continue;const h=s[yl];for(let P=0;P-1&&(Vp(s,P),ba(h,P))}this._attachedToViewContainer=!1}xg(this._lView[pi],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){tf(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){_h(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,ef(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,zh(this._lView[pi],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,_h(this._lView)}}let Mu=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=p_}return t})();const d_=Mu,u_=class extends d_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=qp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new nf(Q)}};function p_(){return Ig(hs(),ni())}function Ig(t,s){return 4&t.type?new u_(s,t,xc(t,s)):null}let qm=()=>null;function gh(t,s){return qm(t,s)}class Au{}class P_{}class af{}class L_{resolveComponentFactory(s){throw function Iu(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let lf=(()=>{class t{static#e=this.NULL=new L_}return t})();class Qm{}let R_=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function cv(){const t=ni(),h=jo(hs().index,t);return(mr(h)?h:t)[en]}()}return t})(),hv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Rg={};function dv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const Jm=new Set;function Sc(t){Jm.has(t)||(Jm.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function cf(...t){}class kr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new aa(!1),this.onMicrotaskEmpty=new aa(!1),this.onStable=new aa(!1),this.onError=new aa(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function uv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function j_(t){const s=()=>{!function B_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,wd(t),t.isCheckStableRunning=!0,e0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),wd(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function s0(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return t0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),n0(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return t0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),n0(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,wd(t),e0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(kr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,F_,cf,cf);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const F_={};function e0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function wd(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function t0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function n0(t){t._nesting--,e0(t)}class V_{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new aa,this.onMicrotaskEmpty=new aa,this.onStable=new aa,this.onError=new aa}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Wh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Wh||{});const r0={destroy(){}};function Fg(t,s){!s&&Ge();const h=s?.injector??Qi(zo);if(!function bd(t){return"browser"===(t??Qi(zo)).get(jh)}(h))return r0;Sc("NgAfterNextRender");const P=h.get(Bg),Q=P.handler??=new fv,ge=s?.phase??Wh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(yc).onDestroy(ke),ze=Ha(h,()=>new a0(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class a0{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=Qi(kr),this.errorHandler=Qi(Za,{optional:!0}),Qi(Au,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class fv{constructor(){this.executingCallbacks=!1,this.buckets={[Wh.EarlyRead]:new Set,[Wh.Write]:new Set,[Wh.MixedReadWrite]:new Set,[Wh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let Bg=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function Td(t){return!!Zs(t)}function $h(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Gx(t,h,ge.join(" "))}}(Ht,Mo,li,P),void 0!==h&&function U_(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=W_}return t})();function W_(){return yv(hs(),ni())}const $_=zg,bv=class extends $_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return xc(this._hostTNode,this._hostLView)}get injector(){return new ar(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zd(this._hostTNode,this._hostLView);if(qc(s)){const h=fc(s,this._hostLView),P=br(s);return new ar(h[pi].data[P+8],h)}return new ar(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=vv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-js}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=gh(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,ku(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Oi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new kd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(xo,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=gh(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,ku(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Hf(t){return Vs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new bv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Qp(ke,Q,ge,P),s.attachToViewContainerRef(),Zo(d0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=vv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);P&&(ba(d0(this._lContainer),h),xg(P[pi],P))}detach(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);return P&&null!=ba(d0(this._lContainer),h)?new nf(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function vv(t){return t[8]}function d0(t){return t[8]||(t[8]=[])}function yv(t,s){let h;const P=s[t.index];return Vs(P)?h=P:(h=Tu(P,s,null,t),s[t.index]=h,Eg(s,h)),Hg(h,s,t,P),new bv(h,t,s)}let Hg=function Cv(t,s,h,P){if(t[Fo])return;let Q;Q=8&h.type?Ts(P):function Gg(t,s){const h=t[en],P=h.createComment(""),Q=$r(s,t);return _u(h,zp(h,Q),P,function jw(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Fo]=Q},xv=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=js;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=o1.bind(h),h}function o1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function a1(t){return function s1(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function zv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Wr(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=y0(t.inputs),ke.inputTransforms=y0(t.inputTransforms),ke.declaredInputs=y0(t.declaredInputs),ke.outputs=y0(t.outputs);const Le=Q.hostBindings;Le&&ff(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&y1(t,ze),Je&&bT(t,Je),b1(t,Q),kt(t.outputs,Q.outputs),Wr(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function b1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function y0(t){return t===Ys?{}:t===Mn?[]:t}function y1(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function bT(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function ff(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function Gv(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Mt(Q),inputs:Ys,outputs:Ys}:{directive:Mt(Q.directive),inputs:Hv(Q.inputs),outputs:Hv(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=x1,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function x1(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);_T(Q.declaredInputs,P.inputs),x1(Q,s,h),h.set(Q,P),s.push(Q)}}function Hv(t){if(void 0===t||0===t.length)return Ys;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Uv extends w1{constructor(s){super(),this.moduleType=s}create(s){return new x0(this.moduleType,s,[])}}class S1 extends Dd{constructor(s){super(),this.componentFactoryResolver=new df(this),this.instance=null;const h=new _a([...s.providers,{provide:Dd,useValue:this},{provide:lf,useValue:this.componentFactoryResolver}],s.parent||yo(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function _0(t,s,h=null){return new S1({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let gf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $g(t){return!!Wv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Wv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function mh(t,s,h){return t[s]=h}function mf(t,s){return t[s]}function Fr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Ed(t,s,h,P){const Q=Fr(t,s,h);return Fr(t,s+1,P)||Q}function C0(t,s,h,P,Q){const ge=Ed(t,s,h,P);return Fr(t,s+2,Q)||ge}function Ql(t,s,h,P,Q,ge){const ke=Ed(t,s,h,P);return Ed(t,s+2,Q,ge)||ke}function bf(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=xn(),dt=t+sn,Ct=Je.firstCreatePass?function k1(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Wp(s,t,4,ke||null,$a(Je,Le));Mg(s,h,dt,$a(Je,ze)),Yc(s,dt);const Ct=dt.tView=Rb(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];oa(Ct,!1);const jt=$v(Je,ze,Ct,t);Xc()&&Lm(Je,ze,jt,Ct),Nr(jt,ze);const Ht=Tu(jt,ze,jt,Ct);return ze[dt]=Ht,Eg(ze,Ht),function _v(t,s,h){return xv(t,s,h)}(Ht,Ct,ze),xl(Ct)&&Lb(Je,ze,Ct),null!=ke&&Sg(ze,Ct,Le),bf}let $v=function M1(t,s,h,P){return Vo(!0),s[en].createComment("")};function ay(t,s,h,P){const Q=ni();return Fr(Q,ka(),s)&&(xn(),Tc(Os(),Q,t,s,h,P)),ay}function Tf(t,s,h,P){return Fr(t,ka(),h)?s+Ki(h)+P:In}function D0(t,s){return t<<17|s<<2}function Id(t){return t>>17&32767}function py(t){return 2|t}function Hu(t){return(131068&t)>>2}function E0(t,s){return-131069&t|s<<2}function fy(t){return 1|t}function eC(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Id(Q):Hu(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];sS(t[ke],s)&&(Le=!0,t[ke+1]=P?fy(Je):py(Je)),ke=P?Id(Je):Hu(Je)}Le&&(t[h+1]=P?py(Q):fy(Q))}function sS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Hr(t,s)>=0}const po={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function tC(t){return t.substring(po.key,po.keyEnd)}function rS(t){return t.substring(po.value,po.valueEnd)}function iC(t,s){const h=po.textEnd;return h===s?-1:(s=po.keyEnd=function lS(t,s,h){for(;s32;)s++;return s}(t,po.key=s,h),Mf(t,s,h))}function nC(t,s){const h=po.textEnd;let P=po.key=Mf(t,s,h);return h===P?-1:(P=po.keyEnd=function cS(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=gy(t,P,h),P=po.value=Mf(t,P,h),P=po.valueEnd=function hS(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),gy(t,P,h))}function sC(t){po.key=0,po.keyEnd=0,po.value=0,po.valueEnd=0,po.textEnd=t.length}function Mf(t,s,h){for(;s=0;h=nC(s,h))xy(t,tC(s),rS(s))}function by(t){el(_y,Dc,t,!0)}function Dc(t,s){for(let h=function oS(t){return sC(t),iC(t,Mf(t,0,po.textEnd))}(s);h>=0;h=iC(s,h))Xs(t,tC(s),!0)}function Pl(t,s,h,P){const Q=ni(),ge=xn(),ke=kl(2);ge.firstUpdatePass&&Uu(ge,t,ke,P),s!==In&&Fr(Q,ke,s)&&I0(ge,ge.data[Xr()],Q,Q[en],t,Q[ke+1]=function wy(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(Al(t)))),t}(s,h),P,ke)}function el(t,s,h,P){const Q=xn(),ge=kl(2);Q.firstUpdatePass&&Uu(Q,null,ge,P);const ke=ni();if(h!==In&&Fr(ke,ge,h)){const Le=Q.data[Xr()];if(oC(Le,P)&&!Od(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Mc(Q,Le,ke,h,P)}else!function uS(t,s,h,P,Q,ge,ke,Le){Q===In&&(Q=Mn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function Uu(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Xr()],ke=Od(t,h);oC(ge,P)&&null===s&&!ke&&(s=!1),s=function wn(t,s,h,P){const Q=kh(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Wu(h=Jg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Jg(Q,t,s,h,P),null===ge){let ze=function vy(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Hu(P))return t[Id(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Jg(null,t,s,ze[1],P),ze=Wu(ze,s.attrs,P),function Df(t,s,h,P){t[Id(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function A0(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Id(t[Le+1]);t[P+1]=D0(jt,Le),0!==jt&&(t[jt+1]=E0(t[jt+1],P)),t[Le+1]=function tS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=D0(Le,0),0!==Le&&(t[Le+1]=E0(t[Le+1],P)),Le=P;else t[P+1]=D0(ze,0),0===Le?Le=P:t[ze+1]=E0(t[ze+1],P),ze=P;Je&&(t[P+1]=py(t[P+1])),eC(t,dt,P,!0),eC(t,dt,P,!1),function nS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Hr(ge,s)>=0&&(h[P+1]=fy(h[P+1]))}(s,dt,t,P,ge),ke=D0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Jg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===In&&(jt=Ct?Mn:void 0);let Ht=Ct?to(jt,P):dt===P?jt:void 0;if(Je&&!O0(Ht)&&(Ht=to(ze,P)),O0(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Id(Kt):Hu(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=to(ze,P))}return Le}function O0(t){return void 0!==t}function oC(t,s){return!!(t.flags&(s?8:16))}function aC(t,s,h){el(Xs,Dc,Tf(ni(),t,s,h),!0)}class L0{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function em(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function Pd(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Ec(t,s,h,P,Q){if(Pd(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function tm(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class R0{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Af(t,s,h){Sc("NgControlFlow");const P=ni(),Q=ka(),ge=B0(P,sn+t);if(Fr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=Of(P[pi],sn+s),Je=gh(ge,ze.tView.ssrId);Qp(ge,qp(P,ze,h,{dehydratedView:Je}),0,ku(ze,Je))}}finally{re(Le)}}else{const Le=Hb(ge,0);void 0!==Le&&(Le[ms]=h)}}class lC{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-js}}function If(t,s){return s}class cC{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function N0(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Sc("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new cC(Ht,li);Kt[sn+t]=bi,bf(t+1,s,h,P,Q,ge),Ht&&bf(t+2,ze,Je,dt,Ct,jt)}class hC extends L0{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-js}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[or];this.needsIndexUpdate||=s!==this.length,Qp(this.lContainer,h,s,ku(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function dC(t,s){return Vp(t,s)}(this.lContainer,s)}create(s,h){const P=gh(this.lContainer,this.templateTNode.tView.ssrId);return qp(this.hostLView,this.templateTNode,new lC(this.lContainer,h,s),{dehydratedView:P})}destroy(s){xg(s[pi],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=ka(),ze=0===ke.length;if(Fr(P,Le,ze)){const Je=h+2,dt=B0(P,Je);if(ze){const Ct=Of(Q,Je),jt=gh(dt,Ct.tView.ssrId);Qp(dt,qp(P,Ct,void 0,{dehydratedView:jt}),0,ku(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function B0(t,s){return t[s]}function Of(t,s){return xh(t,s)}function Xu(t,s,h,P){const Q=ni(),ge=xn(),ke=sn+t,Le=Q[en],ze=ge.firstCreatePass?function Dy(t,s,h,P,Q,ge){const ke=s.consts,ze=Wp(s,t,2,P,$a(ke,Q));return Mg(s,h,ze,$a(ke,ge)),null!==ze.attrs&&$h(ze,ze.attrs,!1),null!==ze.mergedAttrs&&$h(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=V0(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=xl(ze);return oa(ze,!0),Gh(Le,Je,ze),!function Xg(t){return!(32&~t.flags)}(ze)&&Xc()&&Lm(ge,Q,Je,ze),0===function Tl(){return on.lFrame.elementDepthCount}()&&Nr(Je,Q),function id(){on.lFrame.elementDepthCount++}(),dt&&(Lb(ge,Q,ze),Pb(ge,ze,Q)),null!==P&&Sg(Q,ze),Xu}function im(){let t=hs();Bd()?jd():(t=t.parent,oa(t,!1));const s=t;(function Fd(t){return on.skipHydrationRootTNode===t})(s)&&function pp(){on.skipHydrationRootTNode=null}(),function Wf(){on.lFrame.elementDepthCount--}();const h=xn();return h.firstCreatePass&&(Yc(h,t),Gl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function $d(t){return!!(8&t.flags)}(s)&&Mc(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Ih(t){return!!(16&t.flags)}(s)&&Mc(h,s,ni(),s.stylesWithoutHost,!1),im}function j0(t,s,h,P){return Xu(t,s,h,P),im(),j0}let V0=(t,s,h,P,Q,ge)=>(Vo(!0),Am(P,Q,function Ud(){return on.lFrame.currentNamespace}()));function Pf(t,s,h){const P=ni(),Q=xn(),ge=t+sn,ke=Q.firstCreatePass?function uC(t,s,h,P,Q){const ge=s.consts,ke=$a(ge,P),Le=Wp(s,t,8,"ng-container",ke);return null!==ke&&$h(Le,ke,!0),Mg(s,h,Le,$a(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];oa(ke,!0);const Le=Ay(Q,P,ke,t);return P[ge]=Le,Xc()&&Lm(Q,P,Le,ke),Nr(Le,P),xl(ke)&&(Lb(Q,P,ke),Pb(Q,ke,P)),null!=h&&Sg(P,ke),Pf}function nm(){let t=hs();const s=xn();return Bd()?jd():(t=t.parent,oa(t,!1)),s.firstCreatePass&&(Yc(s,t),Gl(t)&&s.queries.elementEnd(t)),nm}function Ey(t,s,h){return Pf(t,s,h),nm(),Ey}let Ay=(t,s,h,P)=>(Vo(!0),wb(s[en],""));function pC(){return ni()}function Iy(t,s,h){const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!0),Iy}function Oy(t,s,h){const P=ni();if(Fr(P,ka(),s)){const ge=xn(),ke=Os();Qa(ge,ke,P,t,s,Um(kh(ge.data),ke,P),h,!0)}return Oy}const Yu=void 0;var CS=["en",[["a","p"],["AM","PM"],Yu],[["AM","PM"],Yu,Yu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yu,"{1} 'at' {0}",Yu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function _S(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let Ku={};function z0(t){const s=function TS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=gC(s);if(h)return h;const P=s.split("-")[0];if(h=gC(P),h)return h;if("en"===P)return CS;throw new me(701,!1)}function fC(t){return z0(t)[Lf.PluralCase]}function gC(t){return t in Ku||(Ku[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),Ku[t]}var Lf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Lf||{});const Rf="en-US",G0={marker:"element"},H0={marker:"ICU"};var da=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(da||{});let mC=Rf;function vC(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?Vx(t,0,h):Ts(h[Q])}function Py(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];xC(P)||ES(P,s)&&null===AS(P)&&_C(P,s.index)}}function xC(t){return!(64&t.type)}function ES(t,s){return xC(s)||t.index>s.index}function AS(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function _C(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Pm(vC,Py),t.insertBeforeIndex=s)}function CC(t,s,h){const P=Ob(t,h,64,null,null);return yC(s,P),P}let Nf=(t,s,h,P)=>(Vo(!0),function Ly(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return wb(P,s);case Node.TEXT_NODE:return Cb(P,s);case Node.ELEMENT_NODE:return Am(P,s,null)}}(t,h,P));function FS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function U0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Mn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[pi].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const X0=/\ufffd(\d+):?\d*\ufffd/gi,jS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,am="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,LC=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,VS=/\uE500/g;function Fy(t,s,h,P,Q,ge,ke){const Le=Tg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function Y0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(jC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function VC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=ib(Ho()).getInertBodyElement(Le),Kt=_m(Ht)||Ht;return Kt?jy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function jy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=Tg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(vm.hasOwnProperty(bi)){K0(ge,G0,bi,Je,Kt),s.data[Kt]=bi;const xs=li.attributes;for(let Mo=0;Mo>>da.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=Nf(t,dt,s[ge],(ke&da.COMMENT)===da.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Xc()),Je&&null!==h&&jt&&_u(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),mp(!0)}function ce(t,s,h){m(t,s,h),function W(){mp(!1)}()}function gt(t,s,h,P){const Q=ni(),ge=xn(),ke=hs();return Ut(ge,Q,Q[en],ke,t,s,P),gt}function Ut(t,s,h,P,Q,ge,ke){const Le=xl(P),Je=t.firstCreatePass&&Vb(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=$r(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?xs=>ke(Ts(xs[P.index])):P.index;let yn=null;if(!ke&&Le&&(yn=function Pt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==yn)(yn.__ngLastListenerFn__||yn).__ngNextListenerFn__=ge,yn.__ngLastListenerFn__=ge,jt=!1;else{ge=hi(P,s,dt,ge,!1);const xs=h.listen(bi,Q,ge);Ct.push(ge,xs),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=hi(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?jo(t.index,s):s);let ze=Zt(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=Zt(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function di(t=1){return function Yf(t){return(on.lFrame.contextLView=function cp(t,s){for(;t>0;)s=s[bs],t--;return s}(t,on.lFrame.contextLView))[ms]}(t)}function wi(t,s){let h=null;const P=function Pr(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Vo(!0),Cb(s[en],P));function ZC(t){return Gy("",t,""),ZC}function Gy(t,s,h){const P=ni(),Q=Tf(P,t,s,h);return Q!==In&&fh(P,Xr(),Q),Gy}function qC(t,s,h,P,Q){const ge=ni(),ke=function Bu(t,s,h,P,Q,ge){const Le=Ed(t,Sl(),h,Q);return kl(2),Le?s+Ki(h)+P+Ki(Q)+ge:In}(ge,t,s,h,P,Q);return ke!==In&&fh(ge,Xr(),ke),qC}function QC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function ju(t,s,h,P,Q,ge,ke,Le){const Je=C0(t,Sl(),h,Q,ke);return kl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:In}(Le,t,s,h,P,Q,ge,ke);return ze!==In&&fh(Le,Xr(),ze),QC}function JC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Vu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=Ql(t,Sl(),h,Q,ke,ze);return kl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:In}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==In&&fh(Je,Xr(),dt),JC}function ew(t,s,h){a1(s)&&(s=s());const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!1),ew}function QS(t,s){const h=a1(t);return h&&t.set(s),h}function tw(t,s){const h=ni(),P=xn(),Q=hs();return Ut(P,h,h[en],Q,t,s),tw}function iw(t,s,h,P,Q){if(t=Mt(t),Array.isArray(t))for(let ge=0;ge>20;if(Lo(t)||!t.multi){const Ht=new Kc(Je,Q,Cu),Kt=sw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Ph(Jc(Le,ke),ge,ze),nw(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=sw(ze,s,dt+jt,Ct),Kt=sw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Ph(Jc(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new Kc(t,h,Cu);return ge.multi=[],ge.index=s,ge.componentProviders=0,JS(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),nw(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else nw(ge,t,Ht>-1?Ht:Kt,JS(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function nw(t,s,h,P){const Q=Lo(s),ge=function xa(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Mt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function JS(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function sw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=xn();if(P.firstCreatePass){const Q=Wr(t);iw(h,P.data,P.blueprint,Q,!0),iw(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=fl(0,h.type),Q=P.length>0?_0([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(xo))})}return t})();function tk(t){Sc("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function hk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===In?mh(Q,P,h?s.call(h):s()):mf(Q,P)}function dk(t,s,h,P){return yk(ni(),oo(),t,s,h,P)}function uk(t,s,h,P,Q){return xk(ni(),oo(),t,s,h,P,Q)}function pk(t,s,h,P,Q,ge){return function _k(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return C0(t,ze,Q,ge,ke)?mh(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):Z0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function fk(t,s,h,P,Q,ge,ke){return function Ck(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return Ql(t,Je,Q,ge,ke,Le)?mh(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):Z0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function gk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=Ql(Je,ze,h,P,Q,ge);return Fr(Je,ze+4,ke)||dt?mh(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):mf(Je,ze+5)}function mk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=Ql(dt,Je,h,P,Q,ge);return Ed(dt,Je+4,ke,Le)||Ct?mh(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):mf(dt,Je+6)}function bk(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=Ql(Ct,dt,h,P,Q,ge);return C0(Ct,dt+4,ke,Le,ze)||jt?mh(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):mf(Ct,dt+7)}function vk(t,s,h,P){return function wk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Er(P.type)),Le=Gs(Cu);try{const ze=Cr(!1),Je=ge();return Cr(ze),function Wn(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Sk(t,s,h){const P=t+sn,Q=ni(),ge=Vc(Q,P);return q0(Q,P)?yk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function kk(t,s,h,P){const Q=t+sn,ge=ni(),ke=Vc(ge,Q);return q0(ge,Q)?xk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function q0(t,s){return t[pi].data[s].pure}function Mk(t,s){return Ig(t,s)}class Hk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Uk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Kk=new $e(""),Zk=new $e("");let uw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,uw||(function OE(t){uw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(kr),Is(qk),Is(Zk))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),qk=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return uw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pw(t){return!!t&&"function"==typeof t.then}function Qk(t){return!!t&&"function"==typeof t.subscribe}const Jk=new $e("");let fw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=Qi(Jk,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(pw(ge))h.push(ge);else if(Qk(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const gw=new $e("");function iM(t,s){return Array.isArray(s)?s.reduce(iM,t):{...t,...s}}let qu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qi(ou),this.afterRenderEffectManager=Qi(Bg),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=Qi(gf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=Qi(xo)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof af;if(!this._injector.get(fw).done)throw!Q&&vo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(lf).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Dd),Je=ke.create(zo.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Kk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),$y(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Kb)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;$y(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(gw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>$y(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $y(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!mw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,ef(t,s,P)}(t,h,s)}function mw(t){return Gc(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Uv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=ha(Zs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new kd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=Qi(kr),this.applicationRef=Qi(qu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=Qi(kr),s=Qi(Za);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=Qi(kr),this.pendingTasks=Qi(gf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yy=new $e("",{providedIn:"root",factory:()=>Qi(Yy,bn.Optional|bn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Rf}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),bw=new $e("");let oM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function pv(t="zone.js",s){return"noop"===t?new V_:"zone.js"===t?new kr(s):t}(P?.ngZone,function rM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function CT(t,s,h){return new x0(t,s,h)}(h.moduleType,this.injector,function sM(t){return[{provide:kr,useFactory:t},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(UE);return()=>{s.initialize()}}},{provide:ou,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Za,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{$y(this._modules,ge),Le.unsubscribe()})}),function tM(t,s,h){try{const P=h();return pw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(fw);return Le.runInitializers(),Le.donePromise.then(()=>(function bC(t){"string"==typeof t&&(mC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(Yy,Rf)||Rf),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=iM({},P);return function VE(t,s,h){const P=new Uv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(qu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(bw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zo))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Qu=null;const aM=new $e("");function lM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=vw();if(!ke||ke.injector.get(aM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Qu&&!Qu.get(aM,!1))throw new me(400,!1);(function eM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Qu=t;const s=t.get(oM);(function hM(t){t.get(fu,null)?.forEach(h=>h())})(t)}(function cM(t=[],s){return zo.create({name:s,providers:[{provide:Ns,useValue:"platform"},{provide:bw,useValue:new Set([()=>Qu=null])},...t]})}(Le,P))}return function KE(t){const s=vw();if(!s)throw new me(401,!1);return s}()}}function vw(){return Qu?.get(oM)??null}function qE(){}let uM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(sa(t)&&!h){const P=jo(t.index,s);return new nf(P,P)}return 47&t.type?new nf(s[Kn],s):null}(hs(),ni(),!(16&~t))}class mM{constructor(){}supports(s){return $g(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new bM),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new bM),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class bM{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function vM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function xM(){return new ww([new mM])}let ww=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:xM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||xM()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function _M(){return new Tw([new yM])}let Tw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:_M});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||_M()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=lM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(qu))};static#t=this.\u0275mod=Fl({type:t});static#i=this.\u0275inj=kn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Sc("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>Qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qi(gf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Za,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function HM(t,s){Sc("NgSignals"),!s?.injector&&Ge();const h=s?.injector??Qi(zo),P=!0!==s?.manualCleanup?h.get(yc):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(uM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[bl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||yo();return new kd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new kd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Er,X1:()=>ja,YN:()=>Qo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>bo,qT:()=>Jl,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(vn){return Bt.onChange(vn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt._handleInput(vn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(vn){return Bt._compositionEnd(vn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Jt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Mt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class ui extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends ui{}const Fn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function zn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function ws(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function Cs(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Di(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Di(ct._rawValidators,Bt),Di(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Di(ct._rawValidators,vt),Di(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const rs=class extends Jt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const Vr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,vn,no){super(),this._changeDetectorRef=vn,this.callSetDisabledState=no,this.control=new rs,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){zn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([Vr]),M.Vt3,M.OA$]})}return ot})(),Jl=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const pr={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt.onChange(vn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([pr]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),rl={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return zn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof rs)(Bt)&&(zn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function kn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function jr(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(vn){return Bt.onSubmit(vn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([rl]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ol={provide:x,useExisting:(0,M.Rfq)(()=>ua)};let ua=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ol]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof ua)}const go={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,vn){super(),this._ngModelWarningConfig=vn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([go]),M.Vt3,M.OA$]})}return ot})();let er=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const cl={provide:F,useExisting:(0,M.Rfq)(()=>Er),multi:!0};let Er=(()=>{class ot extends er{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Eo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([cl]),M.Vt3]})}return ot})(),Ys=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Mn extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let bo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new ui(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new rs(Ye,{...Vi,nonNullable:!0})):new rs(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(vn=>this._createControl(vn));return new Mn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof rs||Ye instanceof Jt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Qo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Mt){return new URL(Mt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Mt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const fe=new M.nKC("");let pe=(()=>{class Mt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Jt=>{Jt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Jt){return this._findPluginFor(wt).addEventListener(_t,wt,Jt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(ui=>ui.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Mt{constructor(_t,wt,Jt,ui={}){this.doc=_t,this.appId=wt,this.nonce=Jt,this.platformId=ui,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(ui),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Jt=>Jt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Jt=>{null!=Jt.textContent&&wt.set(Jt.textContent,Jt)}),wt}return null}changeUsageCount(_t,wt){const Jt=this.styleRef;if(Jt.has(_t)){const ui=Jt.get(_t);return ui.usage+=wt,ui.usage}return Jt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Jt=this.styleNodesInDOM,ui=Jt?.get(wt);if(ui?.parentNode===_t)return Jt.delete(wt),ui.removeAttribute(te),ui;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Jt=this.getStyleElement(_t,wt),ui=this.styleRef,Fi=ui.get(wt)?.elements;Fi?Fi.push(Jt):ui.set(wt,{elements:[Jt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Mt,At){return At.map(_t=>_t.replace(B,Mt))}let z=(()=>{class Mt{constructor(_t,wt,Jt,ui,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Jt,this.removeStylesOnCompDestroy=ui,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Jt=this.getOrCreateRenderer(_t,wt);return Jt instanceof n?Jt.applyToHost(_t):Jt instanceof o&&Jt.applyStyles(),Jt}getOrCreateRenderer(_t,wt){const Jt=this.rendererByCompId;let ui=Jt.get(wt.id);if(!ui){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,_s=this.removeStylesOnCompDestroy,Fn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:ui=new n(vi,Gi,wt,this.appId,_s,Fi,mi,Fn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,Fn);default:ui=new o(vi,Gi,wt,_s,Fi,mi,Fn)}Jt.set(wt.id,ui)}return ui}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class O{constructor(At,_t,wt,Jt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Jt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Jt){if(Jt){_t=Jt+":"+_t;const ui=A[Jt];ui?At.setAttributeNS(ui,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Jt=A[wt];Jt?At.removeAttributeNS(Jt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Jt){Jt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Jt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Mt){return"TEMPLATE"===Mt.tagName&&void 0!==Mt.content}class y extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Jt.id,Jt.styles);for(const _s of Gi){const Fn=document.createElement("style");mi&&Fn.setAttribute("nonce",mi),Fn.textContent=_s,this.shadowRoot.appendChild(Fn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Jt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){const Gi=Jt+"-"+wt.id;super(At,_t,wt,ui,Fi,mi,vi,Gi),this.contentAttr=function _(Mt){return D.replace(B,Mt)}(Gi),this.hostAttr=function b(Mt){return L.replace(B,Mt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Jt){return _t.addEventListener(wt,Jt,!1),()=>this.removeEventListener(_t,wt,Jt)}removeEventListener(_t,wt,Jt){return _t.removeEventListener(wt,Jt)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Mt=>Mt.altKey,control:Mt=>Mt.ctrlKey,meta:Mt=>Mt.metaKey,shift:Mt=>Mt.shiftKey};let k=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return null!=Mt.parseEventName(_t)}addEventListener(_t,wt,Jt){const ui=Mt.parseEventName(wt),Fi=Mt.eventCallback(ui.fullKey,Jt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,ui.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Jt=wt.shift();if(0===wt.length||"keydown"!==Jt&&"keyup"!==Jt)return null;const ui=Mt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const _s=wt.indexOf(Gi);_s>-1&&(wt.splice(_s,1),Fi+=Gi+".")}),Fi+=ui,0!=wt.length||0===ui.length)return null;const vi={};return vi.domEventName=Jt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Jt=d[_t.key]||_t.key,ui="";return wt.indexOf("code.")>-1&&(Jt=_t.code,ui="code."),!(null==Jt||!Jt)&&(Jt=Jt.toLowerCase()," "===Jt?Jt="space":"."===Jt&&(Jt="dot"),l.forEach(Fi=>{Fi!==Jt&&(0,C[Fi])(_t)&&(ui+=Fi+".")}),ui+=Jt,ui===wt)}static eventCallback(_t,wt,Jt){return ui=>{Mt.matchEventFullKeyCode(ui,_t)&&Jt.runGuarded(()=>wt(ui))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Jt=!0)=>{const ui=At.findTestabilityInTree(wt,Jt);if(null==ui)throw new M.wOt(5103,!1);return ui},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Jt=M.JZv.getAllAngularTestabilities();let ui=Jt.length;const Fi=function(){ui--,0==ui&&wt()};Jt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Mt{constructor(_t){}static withServerTransition(_t){return{ngModule:Mt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Mt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Mt})(),he=(()=>{class Mt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})(),Xe=(()=>{class Mt{static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:function(wt){let Jt=null;return Jt=wt?new(wt||Mt):M.KVO(Ze),Jt},providedIn:"root"})}return Mt})(),Ze=(()=>{class Mt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>go,wF:()=>un,Kp:()=>ms,b:()=>Oi,Ix:()=>pi,Wk:()=>gs,wQ:()=>ks,iI:()=>xl,n3:()=>Do});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new zn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function ui(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Mt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Mt(Re.path)}${function Jt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Mt(Ue)}=${Mt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,_s=/^[^=?&#]+/,ls=/^[^&#]+/;class zn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function Fn(Re){const Ue=Re.match(_s);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Di(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Di(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,ei]of Object.entries(mt.children))Ue[Ot]=ei;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function Cs(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Xt of mt.children){const Li=Be(Xt);Ot[Xt.outlet]=Li}const ei=new Me(mt.url,Ot);return mt===Re&&(Ue=ei),ei}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return kn(rt,rt,rt,Be,We);const mt=function qr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new fo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const ei={};return Object.entries(mt.outlets).forEach(([Xt,Li])=>{ei[Xt]="string"==typeof Li?Li.split("/"):Li}),[...rt,{outlets:ei}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((ei,Xt)=>{0==Xt&&"."===ei||(0==Xt&&""===ei?Be=!0:".."===ei?Ue++:""!=ei&&rt.push(ei))}),rt):[...rt,mt]},[]);return new fo(Be,Ue,We)}(Ue);if(mt.toRoot())return kn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new ir(Ue,!0,0);if(!Be)return new ir(Ue,!1,NaN);if(null===Be.parent)return new ir(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new ir(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),ei=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return kn(rt,Ot.segmentGroup,ei,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function ws(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function kn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Xt,Li])=>{mt[Xt]=Array.isArray(Li)?Li.map(pn=>`${pn}`):`${Li}`}),Ot=Re===Ue?Be:jr(Re,Ue,Be);const ei=dn(Di(Ot));return new _e(ei,mt,rt)}function jr(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:jr(mt,Ue,Be)}),new Me(Re.segments,We)}class fo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(ws);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ir{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],ei=Be[We];if(ws(ei))break;const Xt=`${ei}`,Li=We0&&void 0===Xt)break;if(Xt&&Li&&"object"==typeof Li&&void 0===Li.outlets){if(!si(Xt,Li,Ot))return mt;We+=2}else{if(!si(Xt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class rs extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class os extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Js extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class ns extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Qr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Vr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Jl{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class pr{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Jr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class bn{}class Ko{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new eo,this.attachRef=null}}let eo=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class sl{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=rl(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=rl(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function rl(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=rl(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ol extends sl{constructor(Ue,Be){super(Ue),this.snapshot=Be,fa(this,Ue)}toString(){return this.snapshot.toString()}}function ua(Re){const Ue=function Ra(Re){const mt=new pa([],{},{},"",{},w,Re,null,{});return new Dr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),ei=new go(Be,We,mt,Ot,rt,w,Re,Ue.root);return ei.snapshot=Ue.root,new ol(new Hs(ei,[]),Ue)}class go{constructor(Ue,Be,We,rt,mt,Ot,ei,Xt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=ei,this._futureSnapshot=Xt,this.title=this.dataSubject?.pipe((0,_.T)(Li=>Li[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&zr(rt)&&(We.resolve[X]=rt.title),We}class pa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,ei,Xt,Li){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=ei,this.routeConfig=Xt,this._resolve=Li}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Dr extends sl{constructor(Ue,Be){super(Be),this.url=Ue,fa(this,Be)}toString(){return Is(this._root)}}function fa(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>fa(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||Qi(Re.parent,Ue.parent))}function zr(Re){return"string"==typeof Re.title||null===Re.title}let Do=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(mo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,ei=this.parentContexts.getOrCreateContext(this.name).children,Xt=new ga(Be,ei,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Xt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ga{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===go?this.route:Ue===eo?this.childContexts:this.parent.get(Ue,Be)}}const mo=new M.nKC("");let ma=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,ei],Xt)=>(ei={...mt,...Ot,...ei},0===Xt?(0,Pe.of)(ei):Promise.resolve(ei)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:ei}of Ot.inputs)Be.activatedComponentRef.setInput(ei,mt[ei]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Eo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function er(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Eo(Re,We,rt);return Eo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(ei=>Eo(Re,ei)),Ot}}const We=function ll(Re){return new go(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Eo(Re,mt));return new Hs(We,rt)}}const Gr="ngNavigationCancelingError";function cl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Er(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Er(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[Gr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[Gr]}let Ar=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Do],encapsulation:2})}return Re})();function Hr(Re){const Ue=Re.children&&Re.children.map(Hr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Ar),Be}function io(Re){return Re.outlet||w}function Ys(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class ya{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),ei=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:ei})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const ei=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(ei.contexts),Ot.attachRef=ei.componentRef,Ot.route=ei.route.value,Ot.outlet&&Ot.outlet.attach(ei.componentRef,ei.route.value),Us(ei.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const ei=Ys(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=ei,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class bo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function hl(Re,Ue,Be){const We=Re._root;return Qo(We,Ue?Ue._root:null,Be,[We.value])}function Zi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Qo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,ei=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Xt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!Qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Xt?rt.canActivateChecks.push(new qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Qo(Re,Ue,mt.component?ei?ei.children:null:Be,We,rt),Xt&&ei&&ei.outlet&&ei.outlet.isActivated&&rt.canDeactivateChecks.push(new bo(ei.outlet.component,Ot))}else Ot&&ct(Ue,ei,rt),rt.canActivateChecks.push(new qo(We)),Qo(Re,null,mt.component?ei?ei.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,ei])=>ct(ei,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new bo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Ks(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Or=Symbol("INITIAL_VALUE");function rr(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Or)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Or)return Or;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Or),(0,T.s)(1)))}function so(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw cl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Fl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Lr(Re){return(0,J.$)(new Fl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const ei=mt.substring(1);We[rt]=Be[ei]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([ei,Xt])=>{Ot[ei]=this.createSegmentGroup(Ue,Xt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const vo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zs(Re,Ue,Be,We,rt){const mt=dl(Re,Ue,Be);return mt.matched?(We=function Zo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Kh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Ir(Re){return Re&&Ye(Re.canMatch)}(ei)?ei.canMatch(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...vo}))):(0,Pe.of)(mt)}function dl(Re,Ue,Be){if("**"===Ue.path)return function ul(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...vo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...vo};const mt={};Object.entries(rt.posParams??{}).forEach(([ei,Xt])=>{mt[ei]=Xt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function pl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We)&&io(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ic(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Bl(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Oc(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Oc(Re,Ue,Be,We){const rt={};for(const mt of Be)if(fl(Re,Ue,mt)&&!We[io(mt)]){const Ot=new Me([],{});rt[io(mt)]=Ot}return{...We,...rt}}function ic(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&io(We)!==w){const rt=new Me([],{});Be[io(We)]=rt}return Be}function fl(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Lc{}class jl{constructor(Ue,Be,We,rt,mt,Ot,ei){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=ei,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=pl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new pa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new Dr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Fl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],ei=function ec(Re,Ue){const Be=Re.filter(We=>io(We)===Ue);return Be.push(...Re.filter(We=>io(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,ei,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let ei=Be,Xt=Ue,Li=0;mt.subscribe((0,F._)(Ot,pn=>{const Dn=Li++;Xt=ei?Re(Xt,pn,Dn):(ei=!0,pn),We&&Ot.next(Xt)},rt&&(()=>{ei&&Ot.next(Xt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Lr(We);const Ot=Lo(mt);return function tr(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(ei=>this.processSegmentAgainstRoute(ei._injector??Ue,Be,ei,We,rt,mt,Ot).pipe((0,d.W)(Xt=>{if(Xt instanceof Fl)return(0,Pe.of)(null);throw Xt}))),n(ei=>!!ei),(0,d.W)(ei=>{if(Ks(ei))return function nc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Lc):Lr(We);throw ei}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,ei){return function Pc(Re,Ue,Be,We){return!!(io(Re)===We||We!==w&&fl(Ue,Be,Re))&&dl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&ei?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Lr(rt):Lr(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:ei,consumedSegments:Xt,positionalParamSegments:Li,remainingSegments:pn}=dl(Be,rt,mt);if(!ei)return Lr(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const Dn=this.applyRedirects.applyRedirectCommands(Xt,rt.redirectTo,Li);return this.applyRedirects.lineralizeSegments(rt,Dn).pipe((0,f.Z)(qs=>this.processSegment(Ue,We,Be,qs.concat(pn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=Zs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(ei=>ei.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Xt})=>{const Li=We._loadedInjector??Ue,{consumedSegments:pn,remainingSegments:Dn,parameters:qs}=ei,Hl=new pa(pn,qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ns(Re){return Re.data||{}}(We),io(We),We.component??We._loadedComponent??null,We,function Fs(Re){return Re.resolve||{}}(We)),{segmentGroup:Cl,slicedSegments:wl}=pl(Be,pn,Dn,Xt);if(0===wl.length&&Cl.hasChildren())return this.processChildren(Li,Xt,Cl).pipe((0,_.T)(Wa=>null===Wa?null:new Hs(Hl,Wa)));if(0===Xt.length&&0===wl.length)return(0,Pe.of)(new Hs(Hl,[]));const cc=io(We)===mt;return this.processSegment(Li,Xt,Cl,wl,cc?w:mt,!0).pipe((0,_.T)(Wa=>new Hs(Hl,Wa instanceof Hs?[Wa]:[])))})):Lr(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Ac(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(ei)?ei.canLoad(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Er(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Nc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Lo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Nc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Lo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function yo(Re){const Ue=Re.children.map(Be=>yo(Be)).flat();return[Re,...Ue]}function Vl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Fc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(ml),providedIn:"root"})}return Re})(),ml=(()=>{class Re extends Fc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ta=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Ur(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,ei=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Hr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function ia(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let na=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Li=>{mt=Li}),ei=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Xt}=We;return Xt&&(0,M.N4e)(Re,()=>Xt({transition:ei,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ta),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(mo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Fc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(na),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new Jl(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,ei=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Xt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Xt.id,initialUrl:Xt.rawUrl,extractedUrl:Xt.extractedUrl,trigger:Xt.source,extras:Xt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Li=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Li&&"reload"!==(Xt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.rawUrl),Dn,cn.IgnoredSameUrlNavigation)),Xt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Xt.rawUrl))return(0,Pe.of)(Xt).pipe((0,b.n)(Dn=>{const qs=this.transitions?.getValue();return this.events.next(new rs(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),Dn.source,Dn.restoredState)),qs!==this.transitions?.getValue()?te.w:Promise.resolve(Dn)}),function ea(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function Po(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new jl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:ei,tree:Xt})=>({...Ot,targetSnapshot:ei,urlAfterRedirects:Xt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(Dn=>{mt.targetSnapshot=Dn.targetSnapshot,mt.urlAfterRedirects=Dn.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:Dn.urlAfterRedirects};const qs=new Qr(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),this.urlSerializer.serialize(Dn.urlAfterRedirects),Dn.targetSnapshot);this.events.next(qs)}));if(Li&&this.urlHandlingStrategy.shouldProcessUrl(Xt.currentRawUrl)){const{id:Dn,extractedUrl:qs,source:Hl,restoredState:Cl,extras:wl}=Xt,cc=new rs(Dn,this.urlSerializer.serialize(qs),Hl,Cl);this.events.next(cc);const Wa=ua(this.rootComponentType).snapshot;return this.currentTransition=mt={...Xt,targetSnapshot:Wa,urlAfterRedirects:qs,extras:{...wl,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=qs,(0,Pe.of)(mt)}{const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),Dn,cn.IgnoredByUrlHandlingStrategy)),Xt.resolve(null),te.w}}),(0,l.M)(Xt=>{const Li=new nr(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot);this.events.next(Li)}),(0,_.T)(Xt=>(this.currentTransition=mt={...Xt,guards:hl(Xt.targetSnapshot,Xt.currentSnapshot,this.rootContexts)},mt)),function Pr(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Bn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Yh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(ei=>{const Xt=Ys(Ue)??rt,Li=Zi(ei,Xt);return Ce(function no(Re){return Re&&Ye(Re.canDeactivate)}(Li)?Li.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Xt,()=>Li(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(rr())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(ei=>ei&&function vt(Re){return"boolean"==typeof Re}(ei)?function fr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function tc(Re,Ue){return null!==Re&&Ue&&Ue(new pr(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function Jo(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Xh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Oo(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const ei=Ot.guards.map(Xt=>{const Li=Ys(Ot.node)??Be,pn=Zi(Xt,Li);return Ce(function vn(Re){return Re&&Ye(Re.canActivateChild)}(pn)?pn.canActivateChild(We,Re):(0,M.N4e)(Li,()=>pn(We,Re))).pipe(n())});return(0,Pe.of)(ei).pipe(rr())}));return(0,Pe.of)(mt).pipe(rr())}(Re,rt.path,Be),function Nl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ys(Ue)??Be,ei=Zi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(ei)?ei.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>ei(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(rr())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(ei)),(0,_.T)(ei=>({...Be,guardsResult:ei})))})}(this.environmentInjector,Xt=>this.events.next(Xt)),(0,l.M)(Xt=>{if(mt.guardsResult=Xt.guardsResult,On(Xt.guardsResult))throw cl(0,Xt.guardsResult);const Li=new Ls(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot,!!Xt.guardsResult);this.events.next(Li)}),(0,O.p)(Xt=>!!Xt.guardsResult||(this.cancelNavigationTransition(Xt,"",Xi.GuardRejected),!1)),Vl(Xt=>{if(Xt.guards.canActivateChecks.length)return(0,Pe.of)(Xt).pipe((0,l.M)(Li=>{const pn=new Vr(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}),(0,b.n)(Li=>{let pn=!1;return(0,Pe.of)(Li).pipe(function gl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Xt=>Xt.route)),Ot=new Set;for(const Xt of mt)if(!Ot.has(Xt))for(const Li of yo(Xt))Ot.add(Li);let ei=0;return(0,V.H)(Ot).pipe((0,r.H)(Xt=>mt.has(Xt)?function xo(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!zr(rt)&&(mt[X]=rt.title),function _a(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function Ca(Re,Ue,Be,We){const rt=Ys(Ue)??We,mt=Zi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(ei=>{mt[Ot]=ei}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Ks(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Xt,We,Re,Ue):(Xt.data=xr(Xt,Xt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>ei++),p(1),(0,f.Z)(Xt=>ei===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>pn=!0,complete:()=>{pn||this.cancelNavigationTransition(Li,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Li=>{const pn=new Ki(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}))}),Vl(Xt=>{const Li=pn=>{const Dn=[];pn.routeConfig?.loadComponent&&!pn.routeConfig._loadedComponent&&Dn.push(this.configLoader.loadComponent(pn.routeConfig).pipe((0,l.M)(qs=>{pn.component=qs}),(0,_.T)(()=>{})));for(const qs of pn.children)Dn.push(...Li(qs));return Dn};return(0,ie.z)(Li(Xt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),Vl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Xt,targetSnapshot:Li}=mt,pn=this.createViewTransition?.(this.environmentInjector,Xt.root,Li.root);return pn?(0,V.H)(pn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Xt=>{const Li=function al(Re,Ue,Be){const We=Eo(Re,Ue._root,Be?Be._root:void 0);return new ol(We,Ue)}(Be.routeReuseStrategy,Xt.targetSnapshot,Xt.currentRouterState);return this.currentTransition=mt={...Xt,targetRouterState:Li},this.currentNavigation.targetRouterState=Li,mt}),(0,l.M)(()=>{this.events.next(new bn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new ya(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Xt=>this.events.next(Xt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Xt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Xt.targetRouterState.snapshot),Xt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Xt=>{throw Xt}))),(0,H.j)(()=>{!Ot&&!ei&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Xt=>{if(ei=!0,cs(Xt))this.events.next(new os(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt.message,Xt.cancellationCode)),function sr(Re){return cs(Re)&&On(Re.url)}(Xt)?this.events.next(new Ko(Xt.url)):mt.resolve(!1);else{this.events.next(new ns(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Xt))}catch(Li){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Li)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new os(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Oi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(es),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let es=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),as=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends as{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(na),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=ua(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof rs)this.stateMemento=this.createStateMemento();else if(Be instanceof Js)this.rawUrlTree=We.initialUrl;else if(Be instanceof Qr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof bn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof os&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof ns?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ss(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof os||Be instanceof ns||Be instanceof Js),(0,_.T)(Be=>Be instanceof un||Be instanceof Js?us.COMPLETE:Be instanceof os&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function Bs(Re){throw Re}const Rr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Gn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(as),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(na),this._events=new I.B,this.errorHandler=this.options.errorHandler||Bs,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Oi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(mo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof os&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Ko){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),ei={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,ei,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof bn||Re instanceof Ko)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Xt={...rt};delete Xt.navigationId,delete Xt.\u0275routerPageId,0!==Object.keys(Xt).length&&(mt.state=Xt)}const ei=this.parseUrl(Be);this.scheduleNavigation(ei,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Hr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:ei,preserveFragment:Xt}=We,Li=Xt?this.currentUrlTree.fragment:Ot;let Dn,pn=null;switch(ei){case"merge":pn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":pn=this.currentUrlTree.queryParams;break;default:pn=mt||null}null!==pn&&(pn=this.removeEmptyProps(pn));try{Dn=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),Dn=this.currentUrlTree.root}return $n(Dn,Be,pn,Li??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let ei,Xt,Li;Ot?(ei=Ot.resolve,Xt=Ot.reject,Li=Ot.promise):Li=new Promise((Dn,qs)=>{ei=Dn,Xt=qs});const pn=this.pendingTasks.add();return ss(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(pn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:ei,reject:Xt,promise:Li,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Li.catch(Dn=>Promise.reject(Dn))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,ei){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=ei,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Xt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Xt||"area"===Xt,this.isAnchorElement?this.subscription=Be.events.subscribe(Li=>{Li instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const ei=this.urlTree;return!!(null===ei||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(ei,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(go),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(ei=>{ei instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function or(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class wa{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),_o=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,ei=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(ei,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(pi),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(wa),M.KVO(ta))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Ro=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof rs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof Js&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof Jr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Jr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function Sa(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(pi),rt=Re.get(No);1===Re.get(bl)&&We.initialNavigation(),Re.get(vl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const No=new M.nKC("",{factory:()=>new I.B}),bl=new M.nKC("",{providedIn:"root",factory:()=>1}),vl=new M.nKC("");function Fo(Re){return Kn(0,[{provide:vl,useExisting:_o},{provide:wa,useExisting:Re}])}function mr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const Gl=new M.nKC("ROUTER_FORROOT_GUARD"),sa=[E.aZ,{provide:Qe,useClass:st},pi,eo,{provide:go,useFactory:function bs(Re){return Re.routerState.root},deps:[pi]},ta,[]];let xl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[sa,[],{provide:Ga,multi:!0,useValue:Be},{provide:Gl,useFactory:Zh,deps:[[pi,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Ro(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Fo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Qn(We):[],We?.bindToComponentInputs?Kn(8,[ma,{provide:mo,useExisting:ma}]).\u0275providers:[],We?.enableViewTransitions?mr().\u0275providers:[],[{provide:_l,useFactory:Sa},{provide:M.iLQ,multi:!0,useExisting:_l}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(Gl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function Zh(Re){return"guarded"}function Qn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(pi);return()=>{Ue.setUpLocationChangeListener()}}},{provide:bl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:bl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(pi),mt=Ue.get(No);ss(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const _l=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Vo,do:()=>Yc,Bq:()=>qc,UN:()=>ah,ZM:()=>cd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Wt=>Wt.length)){const Wt=Ne.map(Qt=>Qt.shift());we.next(je?je(...Wt):Wt),Ne.some((Qt,ii)=>!Qt.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Wt=0;Wt{it[Wt]=Qt,!Vt&&!ft[Wt]&&(ft[Wt]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Wt=>{if(Vt){const Qt=[Wt,...it];we.next(je?je(...Qt):Qt)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Wt=!ht()&&ae,Qt=(we.left+(Wt&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Wt&&Vt?Vt.offsetTop:0))/it,Ci=we.width/Ne,_i=we.height/it;return{width:Ci,height:_i,top:ii,right:Qt+Ci,bottom:ii+_i,left:Qt,x:Qt,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Jt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function ui(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&ui(be)?be:Fi(Jt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],ui(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Jt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function Fn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function _s(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Jt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Mt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Wt=0;if(Ne){it=Ne.width,ft=Ne.height;var Qt=ht();(Qt||!Qt&&"fixed"===je)&&(Vt=Ne.offsetLeft,Wt=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Wt}}(be,ae)):Ee(je)?function zn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Wt=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Wt}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Wt,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Wt={x:ft,y:je.y-ae.height};break;case U:Wt={x:ft,y:je.y+je.height};break;case se:Wt={x:je.x+je.width,y:Vt};break;case w:Wt={x:je.x-ae.width,y:Vt};break;default:Wt={x:je.x,y:je.y}}var Qt=Ne?Pn(Ne):null;if(null!=Qt){var ii="y"===Qt?"height":"width";switch(it){case x:Wt[Qt]=Wt[Qt]-(je[ii]/2-ae[ii]/2);break;case N:Wt[Qt]=Wt[Qt]+(je[ii]/2-ae[ii]/2)}}return Wt}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function ws(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function kn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Wt=void 0===Vt?"clippingParents":Vt,Qt=je.rootBoundary,ii=void 0===Qt?K:Qt,Ci=je.elementContext,_i=void 0===Ci?q:Ci,Ai=je.altBoundary,_n=void 0!==Ai&&Ai,rn=je.padding,fn=void 0===rn?0:rn,Rn=$i("number"!=typeof fn?fn:ws(fn,G)),vs=be.rects.popper,En=be.elements[_n?_i===q?"reference":q:_i],Zn=function Cs(be,je,ae,we){var Ne="clippingParents"===je?function Di(be){var je=mi(Jt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?Fn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Wt,Qt){var ii=dn(be,Qt,we);return Wt.top=Qe(ii.top,Wt.top),Wt.right=st(ii.right,Wt.right),Wt.bottom=st(ii.bottom,Wt.bottom),Wt.left=Qe(ii.left,Wt.left),Wt},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(En)?En:En.contextElement||lt(be.elements.popper),Wt,ii,ft),An=Lt(be.elements.reference),qn=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ps=fs(Object.assign({},vs,qn)),lr=_i===q?Ps:An,zs={top:Zn.top-lr.top+Rn.top,bottom:lr.bottom-Zn.bottom+Rn.bottom,left:Zn.left-lr.left+Rn.left,right:lr.right-Zn.right+Rn.right},wr=be.modifiersData.offset;if(_i===q&&wr){var lo=wr[Ne];Object.keys(zs).forEach(function(Tr){var xe=[se,U].indexOf(Tr)>=0?1:-1,tt=[Y,U].indexOf(Tr)>=0?"y":"x";zs[Tr]+=lo[tt]*xe})}return zs}const ir={name:"flip",enabled:!0,phase:"main",fn:function qr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Wt=ae.fallbackPlacements,Qt=ae.padding,ii=ae.boundary,Ci=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,_n=void 0===Ai||Ai,rn=ae.allowedAutoPlacements,fn=je.options.placement,Rn=S(fn),vs=Wt||(Rn!==fn&&_n?function fo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(fn):[p(fn)]),En=[fn].concat(vs).reduce(function(oi,Pi){return oi.concat(S(Pi)===X?function jr(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Wt=je.allowedAutoPlacements,Qt=void 0===Wt?Ce:Wt,ii=On(je.placement),Ci=ii?Vt?me:me.filter(function(_n){return On(_n)===ii}):G,_i=Ci.filter(function(_n){return Qt.indexOf(_n)>=0});0===_i.length&&(_i=Ci);var Ai=_i.reduce(function(_n,rn){return _n[rn]=kn(be,{placement:rn,boundary:Ne,rootBoundary:it,padding:ft})[S(rn)],_n},{});return Object.keys(Ai).sort(function(_n,rn){return Ai[_n]-Ai[rn]})}(je,{placement:Pi,boundary:ii,rootBoundary:Ci,padding:Qt,flipVariations:_n,allowedAutoPlacements:rn}):Pi)},[]),Zn=je.rects.reference,An=je.rects.popper,qn=new Map,Ps=!0,lr=En[0],zs=0;zs=0,tt=xe?"width":"height",u=kn(je,{placement:wr,boundary:ii,rootBoundary:Ci,altBoundary:_i,padding:Qt}),ne=xe?Tr?se:w:Tr?U:Y;Zn[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[lo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){lr=wr,Ps=!1;break}qn.set(wr,Ie)}if(Ps)for(var Tt=function(Pi){var qi=En.find(function(Yi){var tn=qn.get(Yi);if(tn)return tn.slice(0,Pi).every(function(Cn){return Cn})});if(qi)return lr=qi,"break"},zt=_n?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==lr&&(je.modifiersData[we]._skip=!0,je.placement=lr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,_n=ae.tetherOffset,rn=void 0===_n?0:_n,fn=kn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Rn=S(je.placement),jn=On(je.placement),vs=!jn,En=Pn(Rn),Zn=function St(be){return"x"===be?"y":"x"}(En),An=je.modifiersData.popperOffsets,qn=je.rects.reference,Ps=je.rects.popper,lr="function"==typeof rn?rn(Object.assign({},je.rects,{placement:je.placement})):rn,zs="number"==typeof lr?{mainAxis:lr,altAxis:lr}:Object.assign({mainAxis:0,altAxis:0},lr),wr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,lo={x:0,y:0};if(An){if(it){var Tr,xe="y"===En?Y:w,tt="y"===En?U:se,u="y"===En?"height":"width",ne=An[En],ue=ne+fn[xe],Ie=ne-fn[tt],nt=Ai?-Ps[u]/2:0,Tt=jn===x?qn[u]:Ps[u],zt=jn===x?-Ps[u]:-qn[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Pi=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},qi=Pi[xe],Yi=Pi[tt],tn=Rt(0,qn[u],oi[u]),Cn=vs?qn[u]/2-nt-tn-qi-zs.mainAxis:Tt-tn-qi-zs.mainAxis,nn=vs?-qn[u]/2+nt+tn+Yi+zs.mainAxis:zt+tn+Yi+zs.mainAxis,Jn=je.elements.arrow&&Fn(je.elements.arrow),Ds=Jn?"y"===En?Jn.clientTop||0:Jn.clientLeft||0:0,Ws=null!=(Tr=wr?.[En])?Tr:0,co=ne+nn-Ws,Uo=Rt(Ai?st(ue,ne+Cn-Ws-Ds):ue,ne,Ai?Qe(Ie,co):Ie);An[En]=Uo,lo[En]=Uo-ne}if(Vt){var _c,la=An[Zn],gu="y"===Zn?"height":"width",rg=la+fn["x"===En?Y:w],og=la-fn["x"===En?U:se],Ip=-1!==[Y,w].indexOf(Rn),Al=null!=(_c=wr?.[Zn])?_c:0,lh=Ip?rg:la-qn[gu]-Ps[gu]-Al+zs.altAxis,ag=Ip?la+qn[gu]+Ps[gu]-Al-zs.altAxis:og,lg=Ai&&Ip?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(lh,la,ag):Rt(Ai?lh:rg,la,Ai?ag:og);An[Zn]=lg,lo[Zn]=lg-la}je.modifiersData[we]=lo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Wt=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var Ci=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:ws(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Wt?Y:w,_n="y"===Wt?U:se,rn=ae.rects.reference[ii]+ae.rects.reference[Wt]-ft[Wt]-ae.rects.popper[ii],fn=ft[Wt]-ae.rects.reference[Wt],Rn=Fn(it),jn=Rn?"y"===Wt?Rn.clientHeight||0:Rn.clientWidth||0:0,An=jn/2-_i[ii]/2+(rn/2-fn/2),qn=Rt(Ci[Ai],An,jn-_i[ii]-Ci[_n]);ae.modifiersData[we]=((je={})[Wt]=qn,je.centerOffset=qn-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function rs(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Wt={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||ui(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Wt=Lt(je,!0)).x+=je.clientLeft,Wt.y+=je.clientTop):it&&(Wt.x=ti(it))),{x:ft.left+Vt.scrollLeft-Wt.x,y:ft.top+Vt.scrollTop-Wt.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Wt=je.get(Vt);Wt&&Ne(Wt)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var Js={placement:"bottom",modifiers:[],strategy:"absolute"};function ns(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(Ci,je.rects,it),ii},{}),Vt=ft[je.placement],Qt=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=Qt),je.modifiersData[we]=ft}},Hs=["*"],Xs=["dialog"];function Jo(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function tc(be,je){}function Nl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,Jo,1,1,"ng-template",null,0,M.C5r)(3,tc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Lc={animation:!0,transitionTimerDelayMs:5};let Po=(()=>{class be{constructor(){this.animation=Lc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function xa(be){return"string"==typeof be}function ea(be){return null!=be}function Ca(be){return(be||document.body).getBoundingClientRect()}function ml(be=document){const je=be?.activeElement;return je?je.shadowRoot?ml(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Lc,ta=new Map,Ur=(be,je,ae,we)=>{let Ne=we.context||{};const it=ta.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ta.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function Vl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Wt=new ie.B,Qt=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ta.set(je,{transition$:Vt,complete:()=>{Wt.next(),Wt.complete()},context:Ne});const ii=function jl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const Ci=(0,re.R)(je,"transitionend").pipe((0,I.Q)(Qt),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(Qt)),Ci,Wt).pipe((0,I.Q)(Qt)).subscribe(()=>{ta.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},na=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),Ca(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Ur(this._zone,this._element.nativeElement,na,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ro=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),sc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Qn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Qn||{});const Jh=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function _a(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const Qt=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Qn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!Jh(Ai,ft)&&("inside"===ae?Jh(Ai,it)&&Re(Ai,Vt):"outside"===ae?!Jh(Ai,it):Re(Ai,Vt)||!Jh(Ai,it))}),(0,I.Q)(Ne)),Ci=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([Qt.pipe((0,T.T)(_i=>0)),Ci.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let ei=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Xt=/\s+/,Li=/ +/gi,pn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},qs=/^left/,Hl=/^right/,Cl=/^start/,wl=/^end/;function Wa({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Xt),it=we.findIndex(Qt=>"auto"===Qt);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(Qt){null==we.find(ii=>-1!==ii.search("^"+Qt))&&we.splice(it++,1,Qt)});const ft=we.map(Qt=>function Dn(be,je){const[ae,we]=pn[be];return je&&we||ae}(Qt,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:Qt}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),Ci=Qt.elements.popper,_i=Qt.placement;let Ai=Ci.className;Ai=Ai.replace(ii,""),Ai+=` ${function cc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(qs,"start").replace(Hl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Cl,"top").replace(wl,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Li," "),Ci.className=Ai}},ir,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function tp(be){return be}function ed(){const be=(0,M.WQX)(ei);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je=eo(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function Bo(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Hd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ud=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Vo=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,$c,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Dh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Yc=(()=>{class be extends Dh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Dh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(Ud),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=ed(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(Bo([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Wt,Qt)=>{Wt.contains(ae.target)&&(ft=Wt),Wt===ml(this._document)&&(it=Qt)}),we!==Qn.Space&&we!==Qn.Enter){if(we!==Qn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Qn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Qn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Qn.Home:it=0;break;case Qn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Wt=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Wt[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Wt[Wt.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Wt})=>{this._nativeElement.contains(Wt)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Vo,5),M.wni(it,Dh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Eh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Wd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class Ml{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class _p{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Ur(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Ur(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new Ml([we.rootNodes],we)}return new Ml([[this._document.createTextNode(`${je}`)]])}return new Ml([])}}let pc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Kc=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Ur(this._zone,this._nativeElement,(ae,we)=>{we&&Ca(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Ur(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Ah{update(je){}close(je){}dismiss(je){}}const ad=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Zc=["animation","backdropClass"];class $d{_applyWindowOptions(je,ae){ad.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Zc.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function gl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Ih=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Ih||{});let Zf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":xa(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Ur(this._zone,ae,()=>ae.classList.remove("show"),we),Ur(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Ur(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&Ca(it),it.classList.add("show")},ae),Ur(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Qn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Ih.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Ih.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Ur(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Xs,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),qf=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(pc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Qn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Wt]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Wt.focus(),it.preventDefault()),ft===Wt&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ea(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Ah,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Wt=this._getContentRef(ae,Vt,we,ft,Ne);let Qt=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Wt.nodes),Ci=new $d(ii,Wt,Qt,Ne.beforeDismiss);return this._registerModalRef(Ci),this._registerWindowCmpt(ii),Ci.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{Ci.close(_i)},ft.dismiss=_i=>{Ci.dismiss(_i)},ft.update=_i=>{Ci.update(_i)},Ci.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),Qt&&Qt.instance&&Qt.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),Ci}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)(Kc,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Zf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):xa(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new Ml([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new Ml([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new Ml([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Ah,useValue:it}],parent:ae}),Wt=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),Qt=Wt.location.nativeElement;return ft.scrollable&&Qt.classList.add("component-host-scrollable"),this._applicationRef.attachView(Wt.hostView),new Ml([[Qt]],Wt.hostView,Wt)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),qc=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(qf),this._config=(0,M.WQX)(Wd)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),br=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[qc]})}return be})(),qd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Xl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let Jd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ld=0,eu=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Nl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),cd=(()=>{class be{constructor(){this._config=(0,M.WQX)(Jd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+ld++,this._popupService=new _p(eu),this._windowRef=null,this._positioning=ed()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(Bo([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function wp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function ar(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Wt=new Set,Qt=[];let ii;function Ci(Ai,_n){be.addEventListener(Ai,_n),Qt.push(()=>be.removeEventListener(Ai,_n))}function _i(Ai,_n){clearTimeout(ii),_n>0?ii=setTimeout(Ai,_n):Ai()}for(const[Ai,_n]of Vt)_n?(Ci(Ai,()=>{Wt.add(Ai),_i(()=>Wt.size>0&&we(),it)}),Ci(_n,()=>{Wt.delete(Ai),_i(()=>0===Wt.size&&Ne(),ft)})):Ci(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>Qt.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(xa(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ih=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ea=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ig=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),xc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),aa=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let Bh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const Vh=[Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh];let ah=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[Vh,Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Jt,vr:()=>ir,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Mt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Jt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),ui=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),_s=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),Fn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),zn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Di={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function Cs(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Di[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=Cs(xt).toLocaleLowerCase(),this.filteredItems.find($e=>Cs($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:Cs(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Mt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return Cs($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Mt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),rs=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=rs,Ti.value=Hi(It,rs.map(un=>un.value)),yt.push(Ti),yt.push(...rs)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let ws=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),kn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),jr=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),fo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const qr=new M.nKC("ng-select-selection-model");let ir=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const rs=this.selectedItems.find(un=>un.value===Hi);this.unselect(rs)},this.trackByOption=(Hi,rs)=>this.trackByFn?this.trackByFn(rs.value):rs,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Mt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Mt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Mt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(jr),M.rXU(qr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(fo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Jt,5,M.C4Q),M.wni($t,ui,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,_s,5,M.C4Q),M.wni($t,Fn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,zn,5,M.C4Q),M.wni($t,kn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(ws,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,ws,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:qr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>Zn,hp:()=>fn,FP:()=>Ai,yc:()=>Qt,Tg:()=>Wt,XI:()=>Ne,bG:()=>Tr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Mt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Jt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Mt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function ui(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function Fn(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function zn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Di(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Cs(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,Cs,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function ws(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function kn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function jr(xe,tt){}function fo(xe,tt){1&xe&&e.DNE(0,jr,0,0,"ng-template")}function qr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,ws,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,kn,1,0,"ChevronDownIcon",7)(9,fo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function ir(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,ir,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,ui,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,Fn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,zn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Di,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,qr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Jt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Pi=Math.ceil((nt+Ie)/7);for(let qi=0;qint){let Cn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:Cn.month,year:Cn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,Cn.month,Cn.year),selectable:this.isSelectable(zt-nt,Cn.month,Cn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Pi&&this.maxDate.toDateString()===Pi&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Pi=ue+1{let Yi=""+Pi;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Pi]:qi[Pi];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Pi=-1,qi=-1,Yi=!1,Cn=Ws=>{let cr=ue+1{let cr=Cn(Ws),co="@"===Ws?14:"!"===Ws?20:"y"===Ws&&cr?4:"o"===Ws?3:2,_c=new RegExp("^\\d{"+("y"===Ws?co:1)+","+co+"}"),Aa=u.substring(Tt).match(_c);if(!Aa)throw"Missing number at position "+Tt;return Tt+=Aa[0].length,parseInt(Aa[0],10)},Jn=(Ws,cr,co)=>{let Uo=-1,_c=Cn(Ws)?co:cr,Aa=[];for(let Sr=0;Sr<_c.length;Sr++)Aa.push([Sr,_c[Sr]]);Aa.sort((Sr,la)=>-(Sr[1].length-la[1].length));for(let Sr=0;Sr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Pi=1),ue=0;ue-1)for(oi=1,Pi=qi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Pi<=Ie);)oi++,Pi-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Pi=-1===Pi?1:Pi),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Pi)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Pi)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),rs=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],os=["*"],Js=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi,qi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Pi,"p-overlay-right-start":qi,"p-overlay-right-end":Yi}),ns=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Qr=xe=>({value:"visible",params:xe}),nr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function Vr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,Vr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Qr,e.sMw(7,ns,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,nr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,Js,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const Jl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},pr=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([Jl])],ngContentSelectors:os,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(pr)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var Jr=He(38757);const bn=["element"],Ko=["content"],nl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),eo=(xe,tt)=>({$implicit:xe,options:tt}),sl=xe=>({"p-scroller-loading":xe}),rl=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ol=(xe,tt)=>({rows:xe,columns:tt});function ua(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ua,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u.loadedItems,u.getContentOptions()))}}function go(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,go,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u,ue.getOptions(ne)))}}function pa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,sl,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function Dr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function fa(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,fa,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function Qi(xe,tt){1&xe&&e.eu8(0)}function zr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Do(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ga(xe,tt){if(1&xe&&e.DNE(0,zr,2,5,"ng-container",6)(1,Do,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function mo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ga,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,rl,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ma(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,pa,3,7,"ng-template",null,2,e.C5r)(6,Dr,1,2,"div",8)(7,mo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function al(xe,tt){1&xe&&e.eu8(0)}function Eo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,al,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,eo,u.items,e.l_i(2,ol,u._items,u.loadedColumns)))}}function er(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Eo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let ll=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Pi=(Jn=0,Ds)=>Jn<=Ds?0:Jn,qi=(Jn,Ds,Ws)=>Jn*Ds+Ws,Yi=(Jn=0,Ds=0)=>this.scrollTo({left:Jn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,Cn=!1,nn=!1;this.both?(tn={rows:Pi(u[0],zt[0]),cols:Pi(u[1],zt[1])},Yi(qi(tn.cols,oi[1],ai.left),qi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,Cn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Pi(u,zt),this.horizontal?Yi(qi(tn,oi,ai.left),nt):Yi(Tt,qi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),Cn=tn!==Ie),this.isRangeChanged=Cn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Pi=0)=>this.scrollTo({left:oi,top:Pi,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,Jn)=>nn?nn>Jn?nn-Jn:nn:0,nt=(nn,Jn)=>Math.floor(nn/(Jn||nn)),Tt=(nn,Jn,Ds,Ws,cr,co)=>nn<=cr?cr:co?Ds-Ws-cr:Jn+cr-1,zt=(nn,Jn,Ds,Ws,cr,co,Uo)=>nn<=co?0:Math.max(0,Uo?nnJn?Ds:nn-2*co),ai=(nn,Jn,Ds,Ws,cr,co=!1)=>{let Uo=Jn+Ws+2*cr;return nn>=cr&&(Uo+=cr+1),this.getLast(Uo,co)},oi=Ie(ne.scrollTop,ue.top),Pi=Ie(ne.scrollLeft,ue.left);let qi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,Cn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,Jn=this.lastScrollPos.left<=Pi;if(!this._appendOnly||this._appendOnly&&(nn||Jn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Pi,this._itemSize[1])},Ws={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],Jn)};qi={rows:zt(Ds.rows,Ws.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,Ws.cols,this.first.cols,0,0,this.d_numToleratedItems[1],Jn)},Yi={rows:ai(Ds.rows,qi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,qi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=qi.rows!==this.first.rows||Yi.rows!==this.last.rows||qi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,Cn={top:oi,left:Pi}}}else{const nn=this.horizontal?Pi:oi,Jn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&Jn){const Ds=nt(nn,this._itemSize);qi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,Jn),this.first,0,0,this.d_numToleratedItems,Jn),Yi=ai(Ds,qi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=qi!==this.first||Yi!==this.last||this.isRangeChanged,Cn=nn}}return{first:qi,last:Yi,isRangeChanged:tn,scrollPos:Cn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(bn,5),e.GBs(Ko,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:nl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ma,8,16,"ng-container",6)(1,er,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Jr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),Gr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Jr.N,Pe.Gg]})}return xe})(),cl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Er=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),sr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Ar=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),Zo=xe=>({$implicit:xe});function ba(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Ao=["container"],Fa=["filter"],Ba=["focusInput"],va=["editableInput"],Xs=["items"],to=["scroller"],Hr=["overlay"],io=["firstHiddenFocusableEl"],ec=["lastHiddenFocusableEl"],Ys=xe=>({options:xe}),Mn=(xe,tt)=>({$implicit:xe,options:tt}),Io=()=>({});function ya(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,Zo,u.selectedOption))}}function bo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function hl(xe,tt){if(1&xe&&e.DNE(0,bo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Oo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,ya,2,1,"ng-container",23)(3,qo,1,4,"ng-container",24)(4,hl,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Zi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Qo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function vn(xe,tt){}function no(xe,tt){1&xe&&e.DNE(0,vn,0,0,"ng-template")}function Ir(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,no,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Ks(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){1&xe&&e.eu8(0)}function rr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Or,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u.filterOptions))}}function Pr(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Bn(xe,tt){}function fr(xe,tt){1&xe&&e.DNE(0,Bn,0,0,"ng-template")}function Jo(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,fr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function tc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Pr,1,1,"SearchIcon",33)(4,Jo,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,rr,2,4,"ng-container",23)(2,tc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Xh(xe,tt){1&xe&&e.eu8(0)}function Yh(xe,tt){if(1&xe&&e.DNE(0,Xh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Mn,u,ne))}}function Ac(xe,tt){1&xe&&e.eu8(0)}function so(xe,tt){if(1&xe&&e.DNE(0,Ac,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u))}}function Kh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,so,1,4,"ng-template",49),e.bVm())}function Fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Yh,1,5,"ng-template",21)(3,Kh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Mn,ne.visibleOptions(),e.lJ4(2,Io)))}}function Ic(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ic,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,Zo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function vo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function Zs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function dl(xe,tt){1&xe&&e.eu8(0,null,12)}function ul(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,Zs,2,1,"ng-container",23)(2,dl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function pl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Oc(xe,tt){1&xe&&e.eu8(0,null,13)}function ic(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,pl,2,1,"ng-container",23)(2,Oc,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,vo,2,2,"ng-template",51)(3,ul,3,6,"li",52)(4,ic,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Bl(xe,tt){1&xe&&e.eu8(0)}function fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Ks,1,0,"ng-container",31)(4,Nl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Fl,4,10,"p-scroller",41)(7,Lr,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Bl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Pc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Lc),multi:!0};let nc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,ba,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Ar,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,Zo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Lc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Ao,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(va,5),e.GBs(Xs,5),e.GBs(to,5),e.GBs(Hr,5),e.GBs(io,5),e.GBs(ec,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Pc])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Oo,6,20,"span",15)(3,Zi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Ir,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,fl,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,cl,ll,rs,A.A,$,sr,nc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Po=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Er,ve.Z,Gr,un,A.A,$,sr,La,Pe.Gg,Gr]})}return xe})(),Rc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),jl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),tr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Nc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Lo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),xa=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Ns=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ea=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),gl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),yo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),xo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var _a=He(22242);const Ca=["input"],Vl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Fc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),ml=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ta(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Ur(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ta,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function ia(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Ur,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function na(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,na,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Oi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Oi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function es(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function as(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ss(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,as,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function Bs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,es,1,2,"span",13)(2,ss,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Rr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Gn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function pi(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,pi,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Gn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Rr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>or),multi:!0};let or=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Pi,currencyCharIndex:qi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=qi>=nt?qi-1:Pi>=nt?Pi:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,Cn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,Cn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ca,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,ia,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,Bs,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,Vl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,_a.S,Z._f,A.A,xo,yo],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),wa=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,_a.u,Z.tm,A.A,xo,yo,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),gr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Ro=xe=>({"p-disabled":xe}),sc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Ta(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function zl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function Co(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rc(xe,tt){}function Sa(xe,tt){1&xe&&e.DNE(0,rc,0,0,"ng-template")}function No(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Sa,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function bl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,Co,1,1,"AngleDoubleLeftIcon",6)(2,No,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sn(xe,tt){}function oc(xe,tt){1&xe&&e.DNE(0,sn,0,0,"ng-template")}function vl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,oc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Fo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function ac(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Fo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function yl(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function js(xe,tt){1&xe&&e.eu8(0)}function lc(xe,tt){if(1&xe&&e.DNE(0,js,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function mr(xe,tt){1&xe&&e.DNE(0,lc,1,1,"ng-template",28)}function Vs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,yl,1,1,"ng-template",26)(2,mr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Gl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sa(xe,tt){}function xl(xe,tt){1&xe&&e.DNE(0,sa,0,0,"ng-template")}function Wr(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,xl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Bc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function vh(xe,tt){}function Zh(xe,tt){1&xe&&e.DNE(0,vh,0,0,"ng-template")}function Qn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Zh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function _l(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Bc,1,1,"AngleDoubleRightIcon",6)(2,Qn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Qh(xe,tt){1&xe&&e.eu8(0)}function jf(xe,tt){if(1&xe&&e.DNE(0,Qh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,sc,u))}}function Ju(xe,tt){1&xe&&(e.qex(0),e.DNE(1,jf,1,4,"ng-template",32),e.bVm())}function ep(xe,tt){1&xe&&e.eu8(0)}function Ld(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Jh(xe,tt){1&xe&&e.DNE(0,Ld,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Ju,2,0,"ng-container",27)(2,Jh,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Ta,2,5,"div",2)(2,zl,2,1,"span",3)(3,bl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,vl,2,1,"span",7),e.k0s(),e.DNE(7,ac,2,1,"span",8)(8,Vs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,Gl,1,1,"AngleRightIcon",6)(11,Wr,2,1,"span",7),e.k0s(),e.DNE(12,_l,3,7,"button",11)(13,qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Lc,Pe.Ei,or,V.BC,V.vS,ve.n,ms,gr,_o,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Po,wa,V.YN,Pe.Gg,ve.Z,ms,gr,_o,en,Po,wa,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],ei=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Xt=(xe,tt)=>({$implicit:xe,index:tt});function Li(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function pn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Li,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function Dn(xe,tt){1&xe&&e.eu8(0)}function qs(xe,tt){if(1&xe&&e.DNE(0,Dn,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Xt,ne,ue))}}function Hl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,pn,4,3,"ng-container",5)(2,qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,ei,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Cl={provide:V.kq,useExisting:(0,e.Rfq)(()=>wl),multi:!0};let wl=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Cl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Hl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),cc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const Wa=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),tp=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),ed=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function ip(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function np(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Rd(xe,tt){}function sp(xe,tt){1&xe&&e.DNE(0,Rd,0,0,"ng-template")}function Bo(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,sp,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function yh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,np,1,2,"CheckIcon",9)(2,Bo,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function rp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ip,1,2,"span",7)(2,yh,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function op(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Vf(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function zf(xe,tt){}function Ts(xe,tt){1&xe&&e.DNE(0,zf,0,0,"ng-template")}function Nd(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Ts,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function jc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Vf,1,2,"TimesIcon",9)(2,Nd,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function $r(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,op,1,2,"span",7)(2,jc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Gf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,ed,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const xh={provide:V.kq,useExisting:(0,e.Rfq)(()=>Vc),multi:!0};let Vc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([xh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,rp,3,2,"ng-container",5)(6,$r,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Gf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,Wa,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,tp,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,tr,A.A],encapsulation:2,changeDetection:0})}return xe})(),jo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,tr,A.A,Pe.Gg]})}return xe})();var zc=He(21413);const td=["container"],Hf=["resizeHelper"],$a=["reorderIndicatorUp"],ap=["reorderIndicatorDown"],lp=["wrapper"],cp=["table"],Gc=["thead"],_h=["tfoot"],Ch=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Xa=xe=>({height:xe}),on=(xe,tt)=>({$implicit:xe,options:tt}),wh=xe=>({columns:xe}),Uf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function id(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function Wf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function hc(xe,tt){}function Ya(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ya,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function hp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Wf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function dp(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,id,1,2,"i",22)(2,hp,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function up(xe,tt){1&xe&&e.eu8(0)}function pp(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,up,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function xn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function Ka(xe,tt){1&xe&&e.DNE(0,xn,1,1,"ng-template",30)}function Hc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,Hc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function ra(xe,tt){1&xe&&e.eu8(0)}function oa(xe,tt){if(1&xe&&e.DNE(0,ra,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,oa,1,1,"ng-template",32)}function jd(xe,tt){1&xe&&e.eu8(0)}function fp(xe,tt){if(1&xe&&e.DNE(0,jd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function fm(xe,tt){1&xe&&e.DNE(0,fp,1,1,"ng-template",33)}function gp(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,gp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Sl(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function dc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,Ka,1,0,null,16)(2,Uc,1,0,null,16)(3,Bd,1,0,null,16)(4,fm,1,0,null,16)(5,Sl,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function ka(xe,tt){1&xe&&e.eu8(0)}function kl(xe,tt){if(1&xe&&e.DNE(0,ka,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,on,u,ne))}}function $f(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,kl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Xa,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function mp(xe,tt){1&xe&&e.eu8(0)}function bp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,mp,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,on,u.processedData,e.eq3(2,wh,u.columns)))}}function Th(xe,tt){1&xe&&e.eu8(0)}function Sh(xe,tt){1&xe&&e.eu8(0)}function kh(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function nd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Wc(xe,tt){1&xe&&e.eu8(0)}function Xf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Wc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Mh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,Th,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,Sh,1,0,"ng-container",37),e.k0s(),e.DNE(6,kh,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,nd,1,2,"tbody",42)(9,Xf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Uf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Vd(xe,tt){1&xe&&e.eu8(0)}function vp(xe,tt){if(1&xe&&e.DNE(0,Vd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function sd(xe,tt){1&xe&&e.DNE(0,vp,1,1,"ng-template",30)}function zd(xe,tt){1&xe&&e.eu8(0)}function Gd(xe,tt){if(1&xe&&e.DNE(0,zd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function rd(xe,tt){1&xe&&e.DNE(0,Gd,1,1,"ng-template",31)}function Yf(xe,tt){1&xe&&e.eu8(0)}function Xr(xe,tt){if(1&xe&&e.DNE(0,Yf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function uc(xe,tt){1&xe&&e.DNE(0,Xr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function yp(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Kf(xe,tt){1&xe&&e.DNE(0,yp,1,1,"ng-template",33)}function xp(xe,tt){1&xe&&e.eu8(0)}function Hd(xe,tt){if(1&xe&&e.DNE(0,xp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Ud(xe,tt){1&xe&&e.DNE(0,Hd,1,1,"ng-template",34)}function $c(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,sd,1,0,null,16)(2,rd,1,0,null,16)(3,uc,1,0,null,16)(4,Kf,1,0,null,16)(5,Ud,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Xc(xe,tt){1&xe&&e.eu8(0)}function Vo(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Xc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Dh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Yc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function od(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Eh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Yc,1,0,"ArrowDownIcon",16)(3,od,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function Wd(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function Ml(xe,tt){}function _p(xe,tt){1&xe&&e.DNE(0,Ml,0,0,"ng-template")}function pc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,Wd,1,0,"ArrowUpIcon",16)(3,_p,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const Kc=["pTableBody",""],Ah=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),ad=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Zc=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),$d=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Ih=(xe,tt)=>({$implicit:xe,frozen:tt});function Zf(xe,tt){1&xe&&e.eu8(0)}function qf(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Zf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function qc(xe,tt){1&xe&&e.eu8(0)}function br(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Xd(xe,tt){1&xe&&e.eu8(0)}function fc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,ad,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function Wl(xe,tt){1&xe&&e.eu8(0)}function Cr(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Qf(xe,tt){if(1&xe&&e.DNE(0,qf,2,8,"ng-container",2)(1,br,2,8,"ng-container",0)(2,fc,2,10,"ng-container",0)(3,Cr,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qf,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Dl(xe,tt){1&xe&&e.eu8(0)}function Oh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Dl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Ma,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Jc(xe,tt){1&xe&&e.eu8(0)}function Kd(xe,tt){1&xe&&e.eu8(0)}function gc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jc,1,0,"ng-container",4)(2,gc,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Ph(xe,tt){if(1&xe&&e.DNE(0,Oh,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zd,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ph,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Qd(xe,tt){1&xe&&e.eu8(0)}function eh(xe,tt){1&xe&&e.eu8(0)}function Lh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,eh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function $l(xe,tt){if(1&xe&&e.DNE(0,Qd,1,0,"ng-container",4)(1,Lh,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Zc,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function mc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$l,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function El(xe,tt){1&xe&&e.eu8(0)}function wo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,El,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function bc(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function Cp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Xl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function ar(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Cp,1,1,"SortAltIcon",3)(2,Xl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function wp(xe,tt){}function Jd(xe,tt){1&xe&&e.DNE(0,wp,0,0,"ng-template")}function ld(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,Jd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function eu(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function cd(xe,tt){1&xe&&e.eu8(0)}function th(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function Jf(xe,tt){1&xe&&e.eu8(0)}function tu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jf,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new zc.B;selectionSource=new zc.B;contextMenuSource=new zc.B;valueSource=new zc.B;totalRecordsSource=new zc.B;columnsSource=new zc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Pi,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=qi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Pi?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Pi=this.findIndexInSelection(nt);this._selection=this.selection.filter((qi,Yi)=>Yi!=Pi),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):Ieqi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Pi=>{let qi=le.BF.resolveFieldData(oi,Pi.field);return qi=null!=qi?this.exportFunction?this.exportFunction({data:qi,field:Pi.field}):String(qi).replace(/"/g,'""'):"",'"'+qi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(td,5),e.GBs(Hf,5),e.GBs($a,5),e.GBs(ap,5),e.GBs(lp,5),e.GBs(cp,5),e.GBs(Gc,5),e.GBs(_h,5),e.GBs(Ch,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,dp,3,2,"div",11)(3,pp,2,1,"div",12)(4,dc,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,$f,3,17,"p-scroller",15)(8,bp,2,7,"ng-container",16)(9,Mh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,$c,6,24,"p-paginator",13)(12,Vo,2,1,"div",17)(13,Dh,2,0,"div",18)(14,Eh,4,2,"span",19)(15,pc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,ll,Rc,jl,Jr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kc,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,2,"ng-container",0)(1,qd,2,2,"ng-container",0)(2,mc,2,2,"ng-container",0)(3,wo,2,5,"ng-container",0)(4,Da,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Wt=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),Qt=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,ar,4,3,"ng-container",0)(1,ld,2,4,"span",1)(2,eu,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Ns,ea,Fs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),fn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Rn=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),Zn=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(fn,8),e.rXU(Rn,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,th,2,1,"ng-container",0)(1,tu,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),Tr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,_a.u,Po,V.YN,Z.tm,cc,Hi,wa,jo,Gr,Rc,jl,Jr.N,Ns,ea,Fs,tr,Nc,Lo,xa,gl,Pe.Gg,Gr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file From 7c58e3797e4798d54d4b75050fa00f0f52fe3b2a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 7 Apr 2024 14:21:52 +0200 Subject: [PATCH 192/301] Plugin wip-develop version 7.2.058 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index cd5e219d2..a12ac8004 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.057"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.058"} \ No newline at end of file From 5c52b059e624bff1f67a2aa6629e92be4b963884 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 7 Apr 2024 16:26:36 +0200 Subject: [PATCH 193/301] Refactoring and adding a Tuya Data_request polling mecanism --- Modules/heartbeat.py | 635 +++++++++++++++++++++++++++---------------- Modules/tuya.py | 64 ++--- 2 files changed, 436 insertions(+), 263 deletions(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index f3b06b8a0..c7b6a05a8 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -16,8 +16,11 @@ from Modules.basicOutputs import getListofAttribute from Modules.casaia import pollingCasaia from Modules.danfoss import danfoss_room_sensor_polling -from Modules.domoticzAbstractLayer import is_device_ieee_in_domoticz_db -from Modules.domoTools import timedOutDevice +from Modules.domoticzAbstractLayer import (find_widget_unit_from_WidgetID, + is_device_ieee_in_domoticz_db) +from Modules.domoTools import (RetreiveWidgetTypeList, + reset_device_ieee_unit_if_needed, + timedOutDevice) from Modules.pairingProcess import (binding_needed_clusters_with_zigate, processNotinDBDevices) from Modules.paramDevice import sanity_check_of_param @@ -43,22 +46,19 @@ ping_device_with_read_attribute, ping_devices_via_group, ping_tuya_device) from Modules.schneider_wiser import schneiderRenforceent +from Modules.switchSelectorWidgets import SWITCH_SELECTORS from Modules.tools import (ReArrangeMacCapaBasedOnModel, deviceconf_device, get_device_nickname, getAttributeValue, getListOfEpForCluster, is_hex, is_time_to_perform_work, mainPoweredDevice, night_shift_jobs, removeNwkInList) +from Modules.tuya import tuya_polling from Modules.tuyaTRV import tuya_switch_online from Modules.zb_tables_management import mgmt_rtg, mgtm_binding from Modules.zigateConsts import HEARTBEAT, MAX_LOAD_ZIGATE from Zigbee.zdpCommands import (zdp_node_descriptor_request, zdp_NWK_address_request) -from Modules.domoticzAbstractLayer import find_widget_unit_from_WidgetID -from Modules.domoTools import reset_device_ieee_unit_if_needed, RetreiveWidgetTypeList -from Modules.switchSelectorWidgets import SWITCH_SELECTORS - - # Read Attribute trigger: Every 10" # Configure Reporting trigger: Every 15 # Network Topology start: 15' after plugin start @@ -81,65 +81,97 @@ FIRST_PING_VIA_GROUP = 127 // HEARTBEAT -def attributeDiscovery(self, NwkId): +#def attributeDiscovery(self, NwkId): +# +# rescheduleAction = False +# # If Attributes not yet discovered, let's do it +# +# if "ConfigSource" not in self.ListOfDevices[NwkId]: +# return False +# +# if self.ListOfDevices[NwkId]["ConfigSource"] == "DeviceConf": +# return False +# +# if "Attributes List" in self.ListOfDevices[NwkId] and len(self.ListOfDevices[NwkId]["Attributes List"]) > 0: +# return False +# +# if "Attributes List" not in self.ListOfDevices[NwkId]: +# self.ListOfDevices[NwkId]["Attributes List"] = {'Ep': {}} +# if "Request" not in self.ListOfDevices[NwkId]["Attributes List"]: +# self.ListOfDevices[NwkId]["Attributes List"]["Request"] = {} +# +# for iterEp in list(self.ListOfDevices[NwkId]["Ep"]): +# if iterEp == "ClusterType": +# continue +# if iterEp not in self.ListOfDevices[NwkId]["Attributes List"]["Request"]: +# self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp] = {} +# +# for iterCluster in list(self.ListOfDevices[NwkId]["Ep"][iterEp]): +# if iterCluster in ("Type", "ClusterType", "ColorMode"): +# continue +# if iterCluster not in self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp]: +# self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp][iterCluster] = 0 +# +# if self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp][iterCluster] != 0: +# continue +# +# if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: +# if int(iterCluster, 16) < 0x0FFF: +# getListofAttribute(self, NwkId, iterEp, iterCluster) +# # getListofAttributeExtendedInfos(self, NwkId, EpOut, cluster, start_attribute=None, manuf_specific=None, manuf_code=None) +# elif ( +# "Manufacturer" in self.ListOfDevices[NwkId] +# and len(self.ListOfDevices[NwkId]["Manufacturer"]) == 4 +# and is_hex(self.ListOfDevices[NwkId]["Manufacturer"]) +# ): +# getListofAttribute( +# self, +# NwkId, +# iterEp, +# iterCluster, +# manuf_specific="01", +# manuf_code=self.ListOfDevices[NwkId]["Manufacturer"], +# ) +# # getListofAttributeExtendedInfos(self, NwkId, EpOut, cluster, start_attribute=None, manuf_specific=None, manuf_code=None) +# +# self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp][iterCluster] = time.time() +# +# else: +# rescheduleAction = True +# +# return rescheduleAction - rescheduleAction = False +def attributeDiscovery(self, NwkId): # If Attributes not yet discovered, let's do it - - if "ConfigSource" not in self.ListOfDevices[NwkId]: - return False - - if self.ListOfDevices[NwkId]["ConfigSource"] == "DeviceConf": + if not self.ListOfDevices[NwkId].get("ConfigSource") or \ + self.ListOfDevices[NwkId]["ConfigSource"] == "DeviceConf" or \ + (self.ListOfDevices[NwkId].get("Attributes List") and len(self.ListOfDevices[NwkId]["Attributes List"]) > 0): return False - if "Attributes List" in self.ListOfDevices[NwkId] and len(self.ListOfDevices[NwkId]["Attributes List"]) > 0: - return False - - if "Attributes List" not in self.ListOfDevices[NwkId]: - self.ListOfDevices[NwkId]["Attributes List"] = {'Ep': {}} - if "Request" not in self.ListOfDevices[NwkId]["Attributes List"]: - self.ListOfDevices[NwkId]["Attributes List"]["Request"] = {} + self.ListOfDevices[NwkId].setdefault("Attributes List", {'Ep': {}}) + self.ListOfDevices[NwkId]["Attributes List"].setdefault("Request", {}) - for iterEp in list(self.ListOfDevices[NwkId]["Ep"]): + for iterEp in self.ListOfDevices[NwkId]["Ep"]: if iterEp == "ClusterType": continue - if iterEp not in self.ListOfDevices[NwkId]["Attributes List"]["Request"]: - self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp] = {} + self.ListOfDevices[NwkId]["Attributes List"]["Request"].setdefault(iterEp, {}) - for iterCluster in list(self.ListOfDevices[NwkId]["Ep"][iterEp]): + for iterCluster in self.ListOfDevices[NwkId]["Ep"][iterEp]: if iterCluster in ("Type", "ClusterType", "ColorMode"): continue - if iterCluster not in self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp]: - self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp][iterCluster] = 0 - - if self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp][iterCluster] != 0: + if self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp].get(iterCluster) != 0: continue if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: if int(iterCluster, 16) < 0x0FFF: getListofAttribute(self, NwkId, iterEp, iterCluster) - # getListofAttributeExtendedInfos(self, nwkid, EpOut, cluster, start_attribute=None, manuf_specific=None, manuf_code=None) - elif ( - "Manufacturer" in self.ListOfDevices[NwkId] - and len(self.ListOfDevices[NwkId]["Manufacturer"]) == 4 - and is_hex(self.ListOfDevices[NwkId]["Manufacturer"]) - ): - getListofAttribute( - self, - NwkId, - iterEp, - iterCluster, - manuf_specific="01", - manuf_code=self.ListOfDevices[NwkId]["Manufacturer"], - ) - # getListofAttributeExtendedInfos(self, nwkid, EpOut, cluster, start_attribute=None, manuf_specific=None, manuf_code=None) - + elif len(self.ListOfDevices[NwkId].get("Manufacturer", "")) == 4 and is_hex(self.ListOfDevices[NwkId].get("Manufacturer", "")): + getListofAttribute(self, NwkId, iterEp, iterCluster, manuf_specific="01", manuf_code=self.ListOfDevices[NwkId]["Manufacturer"]) self.ListOfDevices[NwkId]["Attributes List"]["Request"][iterEp][iterCluster] = time.time() - else: - rescheduleAction = True + return True - return rescheduleAction + return False def DeviceCustomPolling(self, NwkId, HB): @@ -215,13 +247,16 @@ def DeviceCustomPolling(self, NwkId, HB): return False + def ManufSpecOnOffPolling(self, NwkId): ReadAttributeRequest_0006_0000(self, NwkId) ReadAttributeRequest_0008_0000(self, NwkId) + def tuya_trv5_polling(self, NwkId): tuya_switch_online(self, NwkId, 0x01) - + + def check_delay_readattributes( self, NwkId ): if 'DelayReadAttributes' not in self.ListOfDevices[ NwkId ]: @@ -239,8 +274,8 @@ def check_delay_readattributes( self, NwkId ): if len(self.ListOfDevices[ NwkId ]['DelayReadAttributes']['Clusters']) == 0: del self.ListOfDevices[ NwkId ]['DelayReadAttributes'] - - + + def check_delay_binding( self, NwkId, model ): # Profalux is the first one, but could get others # At pairing we need to leave time for the remote to get binded to the VR @@ -282,7 +317,6 @@ def check_delay_binding( self, NwkId, model ): self.configureReporting.processConfigureReporting( NwkId=NwkId ) self.ListOfDevices[ NwkId ]["DelayBindingAtPairing"] = "Completed" - def pollingManufSpecificDevices(self, NwkId, HB): @@ -402,10 +436,10 @@ def checkHealth(self, NwkId): and self.ListOfDevices[NwkId]["Health"] == "Live" ): if "ZDeviceName" in self.ListOfDevices[NwkId]: - self.log.logging("Heartbeat", "Debug", "Device Health - %s Nwkid: %s,Ieee: %s , Model: %s seems to be out of the network" % ( + self.log.logging("Heartbeat", "Debug", "Device Health - %s NwkId: %s,Ieee: %s , Model: %s seems to be out of the network" % ( self.ListOfDevices[NwkId]["ZDeviceName"], NwkId, self.ListOfDevices[NwkId]["IEEE"], self.ListOfDevices[NwkId]["Model"],)) else: - self.log.logging("Heartbeat", "Debug", "Device Health - Nwkid: %s,Ieee: %s , Model: %s seems to be out of the network" % ( + self.log.logging("Heartbeat", "Debug", "Device Health - NwkId: %s,Ieee: %s , Model: %s seems to be out of the network" % ( NwkId, self.ListOfDevices[NwkId]["IEEE"], self.ListOfDevices[NwkId]["Model"]) ) self.ListOfDevices[NwkId]["Health"] = "Not seen last 24hours" @@ -573,26 +607,24 @@ def submitPing(self, NwkId): self.ListOfDevices[NwkId]["Stamp"]["LastPing"] = int(time.time()) ping_device_with_read_attribute(self, NwkId) -def processKnownDevices(self, Devices, NWKID): +def hr_process_device(self, Devices, NwkId): # Begin # Normalize Hearbeat value if needed - intHB = int(self.ListOfDevices[NWKID]["Heartbeat"]) - if intHB > 0xFFFF: - intHB -= 0xFFF0 - self.ListOfDevices[NWKID]["Heartbeat"] = str(intHB) + device_hearbeat = int(self.ListOfDevices.get(NwkId, {}).get("Heartbeat", 0)) + self.ListOfDevices[NwkId]["Heartbeat"] = str(device_hearbeat - 0xFFF0) if device_hearbeat > 0xFFFF else str(device_hearbeat) # Hack bad devices - ReArrangeMacCapaBasedOnModel(self, NWKID, self.ListOfDevices[NWKID]["MacCapa"]) + ReArrangeMacCapaBasedOnModel(self, NwkId, self.ListOfDevices[NwkId]["MacCapa"]) # Check if this is a Main powered device or Not. Source of information are: MacCapa and PowerSource - _mainPowered = mainPoweredDevice(self, NWKID) - _checkHealth = self.ListOfDevices[NWKID]["Health"] == "" - health = checkHealth(self, NWKID) + _mainPowered = mainPoweredDevice(self, NwkId) + _checkHealth = self.ListOfDevices[NwkId]["Health"] == "" + health = checkHealth(self, NwkId) # Pinging devices to check they are still Alive if self.pluginconf.pluginConf["pingDevices"]: - pingDevices(self, NWKID, health, _checkHealth, _mainPowered) + pingDevices(self, NwkId, health, _checkHealth, _mainPowered) # Check if we are in the process of provisioning a new device. If so, just stop if self.CommiSSionning: @@ -600,172 +632,310 @@ def processKnownDevices(self, Devices, NWKID): # If device flag as Not Reachable, don't do anything if not health: - self.log.logging( "Heartbeat", "Debug", "processKnownDevices - %s stop here due to Health %s" % (NWKID, self.ListOfDevices[NWKID]["Health"]), NWKID, ) + self.log.logging( "Heartbeat", "Debug", "hr_process_device - %s stop here due to Health %s" % (NwkId, self.ListOfDevices[NwkId]["Health"]), NwkId, ) return # If we reach this step, the device health is Live - if "pingDeviceRetry" in self.ListOfDevices[NWKID]: - self.log.logging("Heartbeat", "Log", f"Device {NWKID} '{get_device_nickname(self, NwkId=NWKID)}' recover from Non Reachable", NWKID) - del self.ListOfDevices[NWKID]["pingDeviceRetry"] + if "pingDeviceRetry" in self.ListOfDevices[NwkId]: + self.log.logging("Heartbeat", "Log", f"Device {NwkId} '{get_device_nickname(self, NwkId=NwkId)}' recover from Non Reachable", NwkId) + del self.ListOfDevices[NwkId]["pingDeviceRetry"] - model = self.ListOfDevices[NWKID].get("Model", "") - + model = self.ListOfDevices[NwkId].get("Model", "") enabledEndDevicePolling = bool(self.DeviceConf.get(model, {}).get("PollingEnabled", False)) - check_param = self.ListOfDevices.get(NWKID, {}).get("CheckParam", False) + check_param = self.ListOfDevices.get(NwkId, {}).get("CheckParam", False) if check_param and self.HeartbeatCount > QUIET_AFTER_START and self.ControllerLink.loadTransmit() < 5: - sanity_check_of_param(self, NWKID) - self.ListOfDevices[NWKID]["CheckParam"] = False + sanity_check_of_param(self, NwkId) + self.ListOfDevices[NwkId]["CheckParam"] = False - if ( intHB % CHECKING_DELAY_READATTRIBUTE) == 0: - check_delay_readattributes( self, NWKID ) + if ( device_hearbeat % CHECKING_DELAY_READATTRIBUTE) == 0: + check_delay_readattributes( self, NwkId ) if ( - "DelayBindingAtPairing" in self.ListOfDevices[ NWKID ] - and isinstance(self.ListOfDevices[ NWKID ]["DelayBindingAtPairing"],int ) - and self.ListOfDevices[ NWKID ]["DelayBindingAtPairing"] > 0 - and time.time() > self.ListOfDevices[ NWKID ]["DelayBindingAtPairing"] + "DelayBindingAtPairing" in self.ListOfDevices[ NwkId ] + and isinstance(self.ListOfDevices[ NwkId ]["DelayBindingAtPairing"],int ) + and self.ListOfDevices[ NwkId ]["DelayBindingAtPairing"] > 0 + and time.time() > self.ListOfDevices[ NwkId ]["DelayBindingAtPairing"] ): # Will check only after a Command has been sent, in order to limit. - self.log.logging("Heartbeat", "Log", "check_delay_binding inHB = %s" %intHB ) - check_delay_binding( self, NWKID, model ) + self.log.logging("Heartbeat", "Log", "check_delay_binding inHB = %s" %device_hearbeat ) + check_delay_binding( self, NwkId, model ) # Starting this point, it is ony relevant for Main Powered Devices. # Some battery based end device with ZigBee 30 use polling and can receive commands. # We should authporized them for Polling After Action, in order to get confirmation. if not _mainPowered and not enabledEndDevicePolling: return + + process_main_powered_or_force_devices( self, NwkId, device_hearbeat, _mainPowered, enabledEndDevicePolling, model) + + +#def process_main_powered_or_force_devices( self, NwkId, device_hearbeat, _mainPowered, enabledEndDevicePolling, model): +# +# # Action not taken, must be reschedule to next cycle +# rescheduleAction = False +# +# if self.pluginconf.pluginConf["forcePollingAfterAction"] and (device_hearbeat == 1): # HB has been reset to 0 as for a Group command +# # device_hearbeat is 1 as if it has been reset, we get +1 in ProcessListOfDevices +# self.log.logging("Heartbeat", "Debug", "hr_process_device - %s due to device_hearbeat %s" % (NwkId, device_hearbeat), NwkId) +# rescheduleAction = rescheduleAction or pollingDeviceStatus(self, NwkId) +# # Priority on getting the status, nothing more to be done! +# return +# +# # Device Custom defined Polling +# rescheduleAction = rescheduleAction or DeviceCustomPolling(self, NwkId, device_hearbeat) +# +# # Polling Manufacturer Specific devices ( Philips, Gledopto ) if applicable +# rescheduleAction = rescheduleAction or pollingManufSpecificDevices(self, NwkId, device_hearbeat) +# +# # Polling Tuya device +# rescheduleAction = rescheduleAction or tuya_polling(self, NwkId) +# +# _doReadAttribute = bool((self.pluginconf.pluginConf["enableReadAttributes"] or self.pluginconf.pluginConf["resetReadAttributes"]) and device_hearbeat != 0 and (device_hearbeat % READATTRIBUTE_FEQ) == 0) +# +# pairing_time = self.ListOfDevices[NwkId].get("PairingTime") +# load_transmit = self.ControllerLink.loadTransmit() +# +# is_load_transmit_high = load_transmit > 5 +# is_pairing_time_set = pairing_time is not None +# is_within_time_limit = time.time() <= pairing_time + (load_transmit // 5) + 15 +# +# if is_load_transmit_high and is_pairing_time_set and is_within_time_limit: +# self.log.logging( +# "Heartbeat", +# "Debug", +# f"hr_process_device - {NwkId} delay the next ReadAttribute close to the pairing {pairing_time}", +# NwkId, +# ) +# return +# +# if _doReadAttribute: +# self.log.logging( "Heartbeat", "Debug", "hr_process_device - %s device_hearbeat: %s _mainPowered: %s doReadAttr: %s" % ( +# NwkId, device_hearbeat, _mainPowered, _doReadAttribute), NwkId, ) +# rescheduleAction = rescheduleAction or process_read_attributes(self, NwkId, model) +# +# # Call Schneider Reenforcement if needed +# if self.pluginconf.pluginConf["reenforcementWiser"] and (self.HeartbeatCount % self.pluginconf.pluginConf["reenforcementWiser"]) == 0: +# rescheduleAction = rescheduleAction or schneiderRenforceent(self, NwkId) +# +# if self.pluginconf.pluginConf["checkConfigurationReporting"]: +# rescheduleAction = rescheduleAction or check_configuration_reporting(self, NwkId, _mainPowered, device_hearbeat) +# +# if night_shift_jobs( self ) and _mainPowered and not enabledEndDevicePolling and device_hearbeat != 0 and ((device_hearbeat % ATTRIBUTE_DISCOVERY_REFRESH) == 0): +# rescheduleAction = rescheduleAction or attributeDiscovery(self, NwkId) +# +# if night_shift_jobs( self ) and _mainPowered and not enabledEndDevicePolling and device_hearbeat != 0 and ((device_hearbeat % BINDING_TABLE_REFRESH) == 0): +# mgtm_binding(self, NwkId, "BindingTable") +# +# # If corresponding Attributes not present, let's do a Request Node Description +# if night_shift_jobs(self) and _mainPowered and device_hearbeat != 0 and (device_hearbeat % NODE_DESCRIPTOR_REFRESH) == 0: +# required_keys = ["Manufacturer", "DeviceType", "LogicalType", "PowerSource", "ReceiveOnIdle", "_rawNodeDescriptor"] +# if not all(key in self.ListOfDevices.get(NwkId, {}) for key in required_keys): +# if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: +# # sendZigateCmd(self, "0042", str(NwkId), ackIsDisabled=True) # Request a Node Descriptor +# zdp_node_descriptor_request(self, NwkId) +# else: +# rescheduleAction = True +# +# +# if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: +# add_device_group_for_ping(self, NwkId) +# +# if rescheduleAction and device_hearbeat != 0: # Reschedule is set because Zigate was busy or Queue was too long to process +# self.ListOfDevices[NwkId]["Heartbeat"] = str(device_hearbeat - 1) # So next round it trigger again +# else: +# for key in ["LastPollingManufSpecificDevices", "LastCustomPolling"]: +# if key in self.ListOfDevices[NwkId]: +# del self.ListOfDevices[NwkId][key] + +def process_main_powered_or_force_devices(self, NwkId, device_hearbeat, _mainPowered, enabledEndDevicePolling, model): + self.log.logging("Heartbeat", "Debug",f"Calling process_main_powered_or_force_devices with arguments: NwkId={NwkId}, device_hearbeat={device_hearbeat}, _mainPowered={_mainPowered}, enabledEndDevicePolling={enabledEndDevicePolling}, model={model}", NwkId) - # Action not taken, must be reschedule to next cycle rescheduleAction = False - if self.pluginconf.pluginConf["forcePollingAfterAction"] and (intHB == 1): # HB has been reset to 0 as for a Group command - # intHB is 1 as if it has been reset, we get +1 in ProcessListOfDevices - self.log.logging("Heartbeat", "Debug", "processKnownDevices - %s due to intHB %s" % (NWKID, intHB), NWKID) - rescheduleAction = rescheduleAction or pollingDeviceStatus(self, NWKID) - # Priority on getting the status, nothing more to be done! + if self.pluginconf.pluginConf["forcePollingAfterAction"] and device_hearbeat == 1: + self.log.logging("Heartbeat", "Debug", f"process_main_powered_or_force_devices - {NwkId} due to device_hearbeat {device_hearbeat}", NwkId) + rescheduleAction = rescheduleAction or pollingDeviceStatus(self, NwkId) return - # Device Custom defined Polling - rescheduleAction = rescheduleAction or DeviceCustomPolling(self, NWKID, intHB) - - # Polling Manufacturer Specific devices ( Philips, Gledopto ) if applicable - rescheduleAction = rescheduleAction or pollingManufSpecificDevices(self, NWKID, intHB) + rescheduleAction = ( + rescheduleAction + or DeviceCustomPolling(self, NwkId, device_hearbeat) + or pollingManufSpecificDevices(self, NwkId, device_hearbeat) + or tuya_polling(self, NwkId) + ) - _doReadAttribute = bool((self.pluginconf.pluginConf["enableReadAttributes"] or self.pluginconf.pluginConf["resetReadAttributes"]) and intHB != 0 and (intHB % READATTRIBUTE_FEQ) == 0) + _doReadAttribute = ( + (self.pluginconf.pluginConf["enableReadAttributes"] or self.pluginconf.pluginConf["resetReadAttributes"]) + and device_hearbeat != 0 + and (device_hearbeat % READATTRIBUTE_FEQ) == 0 + ) - if ( - self.ControllerLink.loadTransmit() > 5 - and 'PairingTime' in self.ListOfDevices[ NWKID ] - and time.time() <= ( self.ListOfDevices[ NWKID ]["PairingTime"] + ( self.ControllerLink.loadTransmit() // 5 ) + 15 ) - ): - # In case we have just finished the pairing give 3 minutes to finish. - self.log.logging( "Heartbeat", "Debug", "processKnownDevices - %s delay the next ReadAttribute to closed to the pairing %s" % ( - NWKID, self.ListOfDevices[ NWKID ]["PairingTime"],), NWKID, ) + if should_delay_read_attribute(self, NwkId): return - + if _doReadAttribute: - self.log.logging( "Heartbeat", "Debug", "processKnownDevices - %s intHB: %s _mainPowered: %s doReadAttr: %s" % ( - NWKID, intHB, _mainPowered, _doReadAttribute), NWKID, ) - rescheduleAction = rescheduleAction or process_read_attributes(self, NWKID, model) + self.log.logging("Heartbeat", "Debug", f"process_main_powered_or_force_devices - {NwkId} device_hearbeat: {device_hearbeat} _mainPowered: {_mainPowered} doReadAttr: {_doReadAttribute}", NwkId) + rescheduleAction = rescheduleAction or process_read_attributes(self, NwkId, model) - # Call Schneider Reenforcement if needed - if self.pluginconf.pluginConf["reenforcementWiser"] and (self.HeartbeatCount % self.pluginconf.pluginConf["reenforcementWiser"]) == 0: - rescheduleAction = rescheduleAction or schneiderRenforceent(self, NWKID) + if should_reenforce_schneider(self, NwkId): + rescheduleAction = rescheduleAction or schneiderRenforceent(self, NwkId) if self.pluginconf.pluginConf["checkConfigurationReporting"]: - rescheduleAction = rescheduleAction or check_configuration_reporting(self, NWKID, _mainPowered, intHB) + rescheduleAction = rescheduleAction or check_configuration_reporting(self, NwkId, _mainPowered, device_hearbeat) + + if should_discover_attributes(self, NwkId, _mainPowered, enabledEndDevicePolling, device_hearbeat): + rescheduleAction = rescheduleAction or attributeDiscovery(self, NwkId) + + if should_refresh_binding_table(self, NwkId, _mainPowered, enabledEndDevicePolling, device_hearbeat): + mgtm_binding(self, NwkId, "BindingTable") + + if should_request_node_descriptor(self, NwkId, _mainPowered, device_hearbeat): + rescheduleAction = rescheduleAction or zdp_node_descriptor_request(self, NwkId) - if night_shift_jobs( self ) and _mainPowered and not enabledEndDevicePolling and intHB != 0 and ((intHB % ATTRIBUTE_DISCOVERY_REFRESH) == 0): - rescheduleAction = rescheduleAction or attributeDiscovery(self, NWKID) - - if night_shift_jobs( self ) and _mainPowered and not enabledEndDevicePolling and intHB != 0 and ((intHB % BINDING_TABLE_REFRESH) == 0): - mgtm_binding(self, NWKID, "BindingTable") - - # If corresponding Attributes not present, let's do a Request Node Description - if night_shift_jobs( self ) and _mainPowered and intHB != 0 and ((intHB % NODE_DESCRIPTOR_REFRESH) == 0): - if ( - "Manufacturer" not in self.ListOfDevices[NWKID] - or self.ListOfDevices[NWKID]["Manufacturer"] in ( "", {} ) - or "DeviceType" not in self.ListOfDevices[NWKID] - or "LogicalType" not in self.ListOfDevices[NWKID] - or "PowerSource" not in self.ListOfDevices[NWKID] - or "ReceiveOnIdle" not in self.ListOfDevices[NWKID] - or "_rawNodeDescriptor" not in self.ListOfDevices[NWKID] - ): - if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: - #sendZigateCmd(self, "0042", str(NWKID), ackIsDisabled=True) # Request a Node Descriptor - zdp_node_descriptor_request(self, NWKID) - else: - rescheduleAction = True - if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: - add_device_group_for_ping(self, NWKID) - - if rescheduleAction and intHB != 0: # Reschedule is set because Zigate was busy or Queue was too long to process - self.ListOfDevices[NWKID]["Heartbeat"] = str(intHB - 1) # So next round it trigger again - else: - if "LastPollingManufSpecificDevices" in self.ListOfDevices[ NWKID ]: - del self.ListOfDevices[ NWKID ][ "LastPollingManufSpecificDevices"] + add_device_group_for_ping(self, NwkId) + + if rescheduleAction and device_hearbeat != 0: + decrement_heartbeat(self, NwkId) + else: + clear_last_polling_data(self, NwkId) - if "LastCustomPolling" in self.ListOfDevices[ NWKID ]: - del self.ListOfDevices[ NWKID ][ "LastCustomPolling"] - return +def should_delay_read_attribute(self, NwkId): + if ( + self.ControllerLink.loadTransmit() > 5 + and "PairingTime" in self.ListOfDevices[NwkId] + and time.time() <= (self.ListOfDevices[NwkId]["PairingTime"] + (self.ControllerLink.loadTransmit() // 5) + 15) + ): + self.log.logging("Heartbeat", "Debug", f"hr_process_device - {NwkId} delay the next ReadAttribute close to the pairing {self.ListOfDevices[NwkId]['PairingTime']}", NwkId) + return True + return False -def process_read_attributes(self, Nwkid, model): - self.log.logging( "Heartbeat", "Debug", f"process_read_attributes - for {Nwkid} {model}") - process_next_ep_later = False - now = int(time.time()) # Will be used to trigger ReadAttributes - - device_infos = self.ListOfDevices[Nwkid] - for ep in device_infos["Ep"]: +def should_reenforce_schneider(self, NwkId): + return self.pluginconf.pluginConf["reenforcementWiser"] and (self.HeartbeatCount % self.pluginconf.pluginConf["reenforcementWiser"]) == 0 + + +def should_discover_attributes(self, NwkId, _mainPowered, enabledEndDevicePolling, device_hearbeat): + return night_shift_jobs(self) and _mainPowered and not enabledEndDevicePolling and device_hearbeat != 0 and ((device_hearbeat % ATTRIBUTE_DISCOVERY_REFRESH) == 0) + + +def should_refresh_binding_table(self, NwkId, _mainPowered, enabledEndDevicePolling, device_hearbeat): + return night_shift_jobs(self) and _mainPowered and not enabledEndDevicePolling and device_hearbeat != 0 and ((device_hearbeat % BINDING_TABLE_REFRESH) == 0) + + +def should_request_node_descriptor(self, NwkId, _mainPowered, device_hearbeat): + required_keys = ["Manufacturer", "DeviceType", "LogicalType", "PowerSource", "ReceiveOnIdle", "_rawNodeDescriptor"] + return ( + night_shift_jobs(self) + and _mainPowered + and device_hearbeat != 0 + and (device_hearbeat % NODE_DESCRIPTOR_REFRESH) == 0 + and any( + key not in self.ListOfDevices.get(NwkId, {}) + for key in required_keys + ) + ) + + +def decrement_heartbeat(self, NwkId): + self.ListOfDevices[NwkId]["Heartbeat"] = str(int(self.ListOfDevices[NwkId]["Heartbeat"]) - 1) + + +def clear_last_polling_data(self, NwkId): + for key in ["LastPollingManufSpecificDevices", "LastCustomPolling"]: + self.ListOfDevices[NwkId].pop(key, None) + + +#def process_read_attributes(self, NwkId, model): +# self.log.logging( "Heartbeat", "Debug", f"process_read_attributes - for {NwkId} {model}") +# process_next_ep_later = False +# now = int(time.time()) # Will be used to trigger ReadAttributes +# +# device_infos = self.ListOfDevices[NwkId] +# for ep in device_infos["Ep"]: +# if ep == "ClusterType": +# continue +# +# if model == "lumi.ctrl_neutral1" and ep != "02" : # All Eps other than '02' are blacklisted +# continue +# +# if model == "lumi.ctrl_neutral2" and ep not in ("02", "03"): +# continue +# +# for Cluster in READ_ATTRIBUTES_REQUEST: +# # We process ALL available clusters for a particular EndPoint +# +# if ( Cluster not in READ_ATTRIBUTES_REQUEST or Cluster not in device_infos["Ep"][ep] ): +# continue +# +# if self.busy or self.ControllerLink.loadTransmit() > MAX_LOAD_ZIGATE: +# self.log.logging( "Heartbeat", "Debug", "process_read_attributes - %s skip ReadAttribute for now ... system too busy (%s/%s)" % ( +# NwkId, self.busy, self.ControllerLink.loadTransmit()), NwkId, ) +# process_next_ep_later = True +# +# if READ_ATTRIBUTES_REQUEST[Cluster][1] in self.pluginconf.pluginConf: +# timing = self.pluginconf.pluginConf[READ_ATTRIBUTES_REQUEST[Cluster][1]] +# else: +# self.log.logging( "Heartbeat", "Error", "proprocess_read_attributescessKnownDevices - missing timing attribute for Cluster: %s - %s" % ( +# Cluster, READ_ATTRIBUTES_REQUEST[Cluster][1]), NwkId ) +# continue +# +# # Let's check the timing +# if not is_time_to_perform_work(self, "ReadAttributes", NwkId, ep, Cluster, now, timing): +# continue +# +# self.log.logging( "Heartbeat", "Debug", "process_read_attributes - %s/%s and time to request ReadAttribute for %s" % ( +# NwkId, ep, Cluster), NwkId, ) +# +# func = READ_ATTRIBUTES_REQUEST[Cluster][0] +# func(self, NwkId) +# +# if process_next_ep_later: +# return True +# return False + +def process_read_attributes(self, NwkId, model): + self.log.logging("Heartbeat", "Debug", f"process_read_attributes - for {NwkId} {model}") + now = int(time.time()) + device_infos = self.ListOfDevices.get(NwkId, {}) + + for ep, clusters in device_infos.get("Ep", {}).items(): if ep == "ClusterType": continue - - if model == "lumi.ctrl_neutral1" and ep != "02" : # All Eps other than '02' are blacklisted + if model == "lumi.ctrl_neutral1" and ep != "02": continue - if model == "lumi.ctrl_neutral2" and ep not in ("02", "03"): continue for Cluster in READ_ATTRIBUTES_REQUEST: - # We process ALL available clusters for a particular EndPoint - - if ( Cluster not in READ_ATTRIBUTES_REQUEST or Cluster not in device_infos["Ep"][ep] ): + if Cluster not in READ_ATTRIBUTES_REQUEST or Cluster not in clusters: continue if self.busy or self.ControllerLink.loadTransmit() > MAX_LOAD_ZIGATE: - self.log.logging( "Heartbeat", "Debug", "process_read_attributes - %s skip ReadAttribute for now ... system too busy (%s/%s)" % ( - Nwkid, self.busy, self.ControllerLink.loadTransmit()), Nwkid, ) - process_next_ep_later = True + self.log.logging("Heartbeat", "Debug", f"process_read_attributes - {NwkId} skip ReadAttribute for now... system too busy ({self.busy}/{self.ControllerLink.loadTransmit()})", NwkId) + return True - if READ_ATTRIBUTES_REQUEST[Cluster][1] in self.pluginconf.pluginConf: - timing = self.pluginconf.pluginConf[READ_ATTRIBUTES_REQUEST[Cluster][1]] - else: - self.log.logging( "Heartbeat", "Error", "proprocess_read_attributescessKnownDevices - missing timing attribute for Cluster: %s - %s" % ( - Cluster, READ_ATTRIBUTES_REQUEST[Cluster][1]), Nwkid ) + timing = self.pluginconf.pluginConf.get(READ_ATTRIBUTES_REQUEST[Cluster][1]) + if not timing: + self.log.logging("Heartbeat", "Error", f"process_read_attributes - missing timing attribute for Cluster: {Cluster} - {READ_ATTRIBUTES_REQUEST[Cluster][1]}", NwkId) continue - # Let's check the timing - if not is_time_to_perform_work(self, "ReadAttributes", Nwkid, ep, Cluster, now, timing): + if not is_time_to_perform_work(self, "ReadAttributes", NwkId, ep, Cluster, now, timing): continue - self.log.logging( "Heartbeat", "Debug", "process_read_attributes - %s/%s and time to request ReadAttribute for %s" % ( - Nwkid, ep, Cluster), Nwkid, ) + self.log.logging("Heartbeat", "Debug", f"process_read_attributes - {NwkId}/{ep} and time to request ReadAttribute for {Cluster}", NwkId) + READ_ATTRIBUTES_REQUEST[Cluster][0](self, NwkId) + return True - func = READ_ATTRIBUTES_REQUEST[Cluster][0] - func(self, Nwkid) - - if process_next_ep_later: - return True return False -def check_configuration_reporting(self, NWKID, _mainPowered, intHB): + +def check_configuration_reporting(self, NwkId, _mainPowered, device_hearbeat): self.log.logging( "ConfigureReporting", "Debug", "check_configuration_reporting for %s %s %s %s %s >%s<" %( - NWKID, _mainPowered, self.HeartbeatCount, intHB, self.pluginconf.pluginConf["checkConfigurationReporting"], self.zigbee_communication), NWKID) + NwkId, _mainPowered, self.HeartbeatCount, device_hearbeat, self.pluginconf.pluginConf["checkConfigurationReporting"], self.zigbee_communication), NwkId) if self.configureReporting is None: # Cfg Reporting Object not yet ready @@ -775,11 +945,11 @@ def check_configuration_reporting(self, NWKID, _mainPowered, intHB): # leave time at startup return - if "Status" not in self.ListOfDevices[NWKID] or self.ListOfDevices[NWKID]["Status"] != "inDB": + if "Status" not in self.ListOfDevices[NwkId] or self.ListOfDevices[NwkId]["Status"] != "inDB": # Device is not a good state return False - if intHB != 0 and (intHB % (60 // HEARTBEAT)) != 0: + if device_hearbeat != 0 and (device_hearbeat % (60 // HEARTBEAT)) != 0: # check only every minute return @@ -790,7 +960,7 @@ def check_configuration_reporting(self, NWKID, _mainPowered, intHB): # Check if checkConfigurationReporting is enable return - if deviceconf_device(self, NWKID) == {}: + if deviceconf_device(self, NwkId) == {}: # Do only for plugin known devices return @@ -809,16 +979,16 @@ def check_configuration_reporting(self, NWKID, _mainPowered, intHB): if self.zigbee_communication == "zigpy": self.log.logging( "ConfigureReporting", "Debug", "check_configuration_reporting for %s %s %s %s %s >%s<" %( - NWKID, _mainPowered, self.HeartbeatCount, intHB, self.pluginconf.pluginConf["checkConfigurationReporting"], self.zigbee_communication), NWKID) + NwkId, _mainPowered, self.HeartbeatCount, device_hearbeat, self.pluginconf.pluginConf["checkConfigurationReporting"], self.zigbee_communication), NwkId) - if ( not self.configureReporting.check_configuration_reporting_for_device( NWKID, checking_period=self.pluginconf.pluginConf["checkConfigurationReporting"] )): + if ( not self.configureReporting.check_configuration_reporting_for_device( NwkId, checking_period=self.pluginconf.pluginConf["checkConfigurationReporting"] )): # Nothing trigger, let's check if the configure reporting are correct - self.configureReporting.check_and_redo_configure_reporting_if_needed( NWKID) + self.configureReporting.check_and_redo_configure_reporting_if_needed( NwkId) elif self.zigbee_communication == "native": self.log.logging( "ConfigureReporting", "Debug", "Trying Configuration reporting for %s/%s !" %( - NWKID, get_device_nickname( self, NwkId=NWKID)), NWKID) - self.configureReporting.processConfigureReporting( NWKID, batch=True ) + NwkId, get_device_nickname( self, NwkId=NwkId)), NwkId) + self.configureReporting.processConfigureReporting( NwkId, batch=True ) return False @@ -828,77 +998,77 @@ def processListOfDevices(self, Devices): # self.ControllerLink.checkTOwaitFor() entriesToBeRemoved = [] - for NWKID in list(self.ListOfDevices.keys()): - if NWKID in ("ffff", "0000"): + for NwkId in list(self.ListOfDevices.keys()): + if NwkId in ("ffff", "0000"): continue - if NWKID not in self.ListOfDevices: + if NwkId not in self.ListOfDevices: continue # If this entry is empty, then let's remove it . - if len(self.ListOfDevices[NWKID]) == 0: - self.log.logging("Heartbeat", "Debug", "Bad devices detected (empty one), remove it, adr:" + str(NWKID), NWKID) - entriesToBeRemoved.append(NWKID) + if len(self.ListOfDevices[NwkId]) == 0: + self.log.logging("Heartbeat", "Debug", "Bad devices detected (empty one), remove it, adr:" + str(NwkId), NwkId) + entriesToBeRemoved.append(NwkId) continue - if "Param" in self.ListOfDevices[NWKID] and "Disabled" in self.ListOfDevices[NWKID]["Param"]: - if self.ListOfDevices[NWKID]["Param"]["Disabled"] and self.ListOfDevices[NWKID]["Health"] == "Disabled": - self.ListOfDevices[NWKID]["CheckParam"] = False + if "Param" in self.ListOfDevices[NwkId] and "Disabled" in self.ListOfDevices[NwkId]["Param"]: + if self.ListOfDevices[NwkId]["Param"]["Disabled"] and self.ListOfDevices[NwkId]["Health"] == "Disabled": + self.ListOfDevices[NwkId]["CheckParam"] = False continue - if not self.ListOfDevices[NWKID]["Param"]["Disabled"] and self.ListOfDevices[NWKID]["Health"] == "Disabled": + if not self.ListOfDevices[NwkId]["Param"]["Disabled"] and self.ListOfDevices[NwkId]["Health"] == "Disabled": # Looks like it was disabled and it is not any more. # We need to refresh it - self.ListOfDevices[NWKID]["Health"] = "" - del self.ListOfDevices[NWKID]["Stamp"] - self.ListOfDevices[NWKID]["RIA"] = "0" + self.ListOfDevices[NwkId]["Health"] = "" + del self.ListOfDevices[NwkId]["Stamp"] + self.ListOfDevices[NwkId]["RIA"] = "0" - status = self.ListOfDevices[NWKID]["Status"] - if self.ListOfDevices[NWKID]["RIA"] not in ( "", {}): - RIA = int(self.ListOfDevices[NWKID]["RIA"]) + status = self.ListOfDevices[NwkId]["Status"] + if self.ListOfDevices[NwkId]["RIA"] not in ( "", {}): + RIA = int(self.ListOfDevices[NwkId]["RIA"]) else: RIA = 0 - self.ListOfDevices[NWKID]["RIA"] = "0" + self.ListOfDevices[NwkId]["RIA"] = "0" - self.ListOfDevices[NWKID]["Heartbeat"] = str(int(self.ListOfDevices[NWKID]["Heartbeat"]) + 1) + self.ListOfDevices[NwkId]["Heartbeat"] = str(int(self.ListOfDevices[NwkId]["Heartbeat"]) + 1) if status == "failDB": - entriesToBeRemoved.append(NWKID) + entriesToBeRemoved.append(NwkId) continue # Known Devices if status == "inDB": - processKnownDevices(self, Devices, NWKID) + hr_process_device(self, Devices, NwkId) # Check and reset if needed Motion, Vibrator and Switch Selector - check_and_reset_device_if_needed(self, Devices, NWKID) + check_and_reset_device_if_needed(self, Devices, NwkId) elif status == "Leave": - timedOutDevice(self, Devices, NwkId=NWKID) + timedOutDevice(self, Devices, NwkId=NwkId) # Device has sentt a 0x8048 message annoucing its departure (Leave) # Most likely we should receive a 0x004d, where the device come back with a new short address # For now we will display a message in the log every 1' # We might have to remove this entry if the device get not reconnected. - if ((int(self.ListOfDevices[NWKID]["Heartbeat"]) % 36) and int(self.ListOfDevices[NWKID]["Heartbeat"]) != 0) == 0: - if "ZDeviceName" in self.ListOfDevices[NWKID]: + if ((int(self.ListOfDevices[NwkId]["Heartbeat"]) % 36) and int(self.ListOfDevices[NwkId]["Heartbeat"]) != 0) == 0: + if "ZDeviceName" in self.ListOfDevices[NwkId]: self.log.logging( "Heartbeat", "Debug", "processListOfDevices - Device: %s (%s) is in Status = 'Left' for %s HB" % ( - self.ListOfDevices[NWKID]["ZDeviceName"], NWKID, self.ListOfDevices[NWKID]["Heartbeat"]), NWKID, ) + self.ListOfDevices[NwkId]["ZDeviceName"], NwkId, self.ListOfDevices[NwkId]["Heartbeat"]), NwkId, ) else: self.log.logging( "Heartbeat", "Debug", "processListOfDevices - Device: (%s) is in Status = 'Left' for %s HB" % ( - NWKID, self.ListOfDevices[NWKID]["Heartbeat"]), NWKID, ) + NwkId, self.ListOfDevices[NwkId]["Heartbeat"]), NwkId, ) # Let's check if the device still exist in Domoticz - if not is_device_ieee_in_domoticz_db(self, Devices, self.ListOfDevices[NWKID]["IEEE"]): + if not is_device_ieee_in_domoticz_db(self, Devices, self.ListOfDevices[NwkId]["IEEE"]): # Not devices found in Domoticz, so we are safe to remove it from Plugin - if self.ListOfDevices[NWKID]["IEEE"] in self.IEEE2NWK: + if self.ListOfDevices[NwkId]["IEEE"] in self.IEEE2NWK: self.log.logging( "Heartbeat", "Status", "processListOfDevices - Removing %s / %s from IEEE2NWK." % ( - self.ListOfDevices[NWKID]["IEEE"], NWKID) ) - del self.IEEE2NWK[self.ListOfDevices[NWKID]["IEEE"]] - self.log.logging( "Heartbeat", "Status", "processListOfDevices - Removing the entry %s from ListOfDevice" % (NWKID)) - removeNwkInList(self, NWKID) + self.ListOfDevices[NwkId]["IEEE"], NwkId) ) + del self.IEEE2NWK[self.ListOfDevices[NwkId]["IEEE"]] + self.log.logging( "Heartbeat", "Status", "processListOfDevices - Removing the entry %s from ListOfDevice" % (NwkId)) + removeNwkInList(self, NwkId) elif status not in ("inDB", "UNKNOW", "erasePDM"): # Discovery process 0x004d -> 0x0042 -> 0x8042 -> 0w0045 -> 0x8045 -> 0x0043 -> 0x8043 - processNotinDBDevices(self, Devices, NWKID, status, RIA) + processNotinDBDevices(self, Devices, NwkId, status, RIA) # end for key in ListOfDevices if ( @@ -945,38 +1115,39 @@ def processListOfDevices(self, Devices): self.HeartbeatCount, self.busy, self.CommiSSionning, self.ControllerLink.loadTransmit()), ) return -def check_and_reset_device_if_needed(self, Devices, Nwkid): - self.log.logging( "Heartbeat", "Debug", "Check for reseting %s" %Nwkid) +def check_and_reset_device_if_needed(self, Devices, NwkId): + + self.log.logging( "Heartbeat", "Debug", "Check for reseting %s" %NwkId) now = time.time() - device_ieee = self.ListOfDevices[Nwkid]["IEEE"] - ClusterTypeList = RetreiveWidgetTypeList(self, Devices, device_ieee, Nwkid) + device_ieee = self.ListOfDevices[NwkId]["IEEE"] + ClusterTypeList = RetreiveWidgetTypeList(self, Devices, device_ieee, NwkId) for WidgetEp, Widget_Idx, WidgetType in ClusterTypeList: if WidgetType in ( "Motion", "Vibration", SWITCH_SELECTORS): device_unit = find_widget_unit_from_WidgetID(self, Devices, Widget_Idx ) - self.log.logging( "Heartbeat", "Debug", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx)) - reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, Nwkid, WidgetType, Widget_Idx, now) + self.log.logging( "Heartbeat", "Debug", "Candidate for reseting %s %s %s %s %s" %(device_ieee, device_unit, NwkId, WidgetType, Widget_Idx)) + reset_device_ieee_unit_if_needed( self, Devices, device_ieee, device_unit, NwkId, WidgetType, Widget_Idx, now) -def add_device_group_for_ping(self, NWKID): +def add_device_group_for_ping(self, NwkId): if self.groupmgt is None or not self.pluginconf.pluginConf["pingViaGroup"]: return - if not mainPoweredDevice(self, NWKID): + if not mainPoweredDevice(self, NwkId): return - if self.ListOfDevices[NWKID][ "LogicalType" ] != "Router": + if self.ListOfDevices[NwkId][ "LogicalType" ] != "Router": return - if "Capability" in self.ListOfDevices[NWKID] and "Full-Function Device" not in self.ListOfDevices[NWKID][ "Capability" ]: + if "Capability" in self.ListOfDevices[NwkId] and "Full-Function Device" not in self.ListOfDevices[NwkId][ "Capability" ]: return target_ep = None - for ep in self.ListOfDevices[NWKID]["Ep"]: - if "0004" in self.ListOfDevices[NWKID]["Ep"][ ep ]: + for ep in self.ListOfDevices[NwkId]["Ep"]: + if "0004" in self.ListOfDevices[NwkId]["Ep"][ ep ]: target_ep = ep if target_ep is None: @@ -984,16 +1155,16 @@ def add_device_group_for_ping(self, NWKID): target_groupid = "%04x" %self.pluginconf.pluginConf["pingViaGroup"] if ( - "GroupMemberShip" in self.ListOfDevices[NWKID] - and target_groupid in self.ListOfDevices[NWKID][ "GroupMemberShip"][ target_ep ] + "GroupMemberShip" in self.ListOfDevices[NwkId] + and target_groupid in self.ListOfDevices[NwkId][ "GroupMemberShip"][ target_ep ] ): return target_ep = None - for ep in self.ListOfDevices[NWKID]["Ep"]: - if "0004" in self.ListOfDevices[NWKID]["Ep"][ ep ]: + for ep in self.ListOfDevices[NwkId]["Ep"]: + if "0004" in self.ListOfDevices[NwkId]["Ep"][ ep ]: target_ep = ep if target_ep: - self.groupmgt.addGroupMemberShip(NWKID, target_ep, target_groupid) + self.groupmgt.addGroupMemberShip(NwkId, target_ep, target_groupid) \ No newline at end of file diff --git a/Modules/tuya.py b/Modules/tuya.py index 714d2c9a5..59b46ae0f 100644 --- a/Modules/tuya.py +++ b/Modules/tuya.py @@ -20,14 +20,15 @@ import struct import time -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from Modules.basicOutputs import raw_APS_request, write_attribute from Modules.bindings import bindDevice from Modules.domoMaj import MajDomoDevice from Modules.domoTools import Update_Battery_Device -from Modules.tools import (build_fcf, checkAndStoreAttributeValue,get_device_config_param, - get_and_inc_ZCL_SQN, get_deviceconf_parameter_value, +from Modules.tools import (build_fcf, checkAndStoreAttributeValue, + get_and_inc_ZCL_SQN, get_device_config_param, + get_deviceconf_parameter_value, is_ack_tobe_disabled, updSQN) from Modules.tuyaConst import (TUYA_MANUF_CODE, TUYA_SMART_DOOR_LOCK_MODEL, TUYA_eTRV_MODEL) @@ -98,9 +99,7 @@ def tuya_registration(self, nwkid, ty_data_request=False, parkside=False, tuya_r # (3) Cmd 0x03 on Cluster 0xef00 (Cluster Specific) / Tuya TY_DATA_QUERY # (https://developer.tuya.com/en/docs/iot/tuya-zigbee-universal-docking-access-standard?id=K9ik6zvofpzql#subtitle-6-Private%20cluster) if ty_data_request: - payload = "11" + get_and_inc_ZCL_SQN(self, nwkid) + "03" - raw_APS_request( self, nwkid, EPout, "ef00", "0104", payload, zigate_ep=ZIGATE_EP, ackIsDisabled=is_ack_tobe_disabled(self, nwkid), ) - self.log.logging("Tuya", "Debug", "tuya_registration - Nwkid: %s reset device Cmd: 03" % nwkid) + tuya_data_request(self, nwkid, EPout) # Gw->Zigbee gateway query MCU version self.log.logging("Tuya", "Debug", "tuya_registration - Nwkid: %s Request MCU Version Cmd: 10" % nwkid) @@ -110,6 +109,7 @@ def tuya_registration(self, nwkid, ty_data_request=False, parkside=False, tuya_r payload = "11" + get_and_inc_ZCL_SQN(self, nwkid) + "10" + "0002" raw_APS_request( self, nwkid, EPout, "ef00", "0104", payload, zigate_ep=ZIGATE_EP, ackIsDisabled=is_ack_tobe_disabled(self, nwkid), ) + def tuya_cmd_ts004F(self, NwkId, mode): TS004F_MODE = { 'Scene': 0x01, # Scene controller @@ -128,6 +128,7 @@ def tuya_cmd_ts004F(self, NwkId, mode): bindDevice(self, ieee, "03", cluster, destaddr=None, destep="01") bindDevice(self, ieee, "04", cluster, destaddr=None, destep="01") + def tuya_cmd_0x0000_0xf0(self, NwkId): # Seen at pairing of a WGH-JLCZ02 / TS011F and TS0201 and TS0601 (MOES BRT-100) @@ -137,17 +138,28 @@ def tuya_cmd_0x0000_0xf0(self, NwkId): self.log.logging("Tuya", "Debug", "tuya_cmd_0x0000_0xf0 - Nwkid: %s reset device Cmd: fe" % NwkId) -def pollingTuya(self, key): - """ - This fonction is call if enabled to perform any Manufacturer specific polling action - The frequency is defined in the pollingSchneider parameter (in number of seconds) - """ +def tuya_polling(self, nwkid): + """Some Tuya devices, requirea specific polling""" + device_model = self.ListOfDevices.get(nwkid, {}).get("Model") + if device_model is None: + return + + tuya_data_request_polling = get_deviceconf_parameter_value(self, device_model, "TUYA_DATA_REQUEST_POLLING", return_default=0) - # if ( self.busy or self.ControllerLink.loadTransmit() > MAX_LOAD_ZIGATE): - # return True + if tuya_data_request_polling: + device_last_poll = self.ListOfDevices.get(nwkid, {}).get("Tuya", {}).get("LastTuyaDataRequest", 0) + if device_last_poll > (time.time() + tuya_data_request_polling): + self.log.logging("Tuya", "Log", f"tuya_data_request_polling - Nwkid: {nwkid}/01 time for polling {tuya_data_request_polling}") + tuya_data_request(self, nwkid, "01") return False +def tuya_data_request(self, nwkid, epout): + payload = "11" + get_and_inc_ZCL_SQN(self, nwkid) + "03" + raw_APS_request( self, nwkid, epout, "ef00", "0104", payload, zigate_ep=ZIGATE_EP, ackIsDisabled=is_ack_tobe_disabled(self, nwkid), ) + self.log.logging("Tuya", "Debug", "tuya_data_request - Nwkid: %s reset device Cmd: 03" % nwkid) + self.ListOfDevices.setdefault(nwkid, {}).setdefault("Model", time.time()) + def callbackDeviceAwake_Tuya(self, Devices, NwkId, EndPoint, cluster): """ @@ -204,19 +216,15 @@ def tuyaReadRawAPS(self, Devices, NwkId, srcEp, ClusterID, dstNWKID, dstEP, MsgP dp = int(MsgPayload[idx:idx + 2], 16) idx += 2 - self.log.logging( "Tuya", "Debug", " dp: %s" % ( dp ), NwkId, ) datatype = int(MsgPayload[idx:idx + 2], 16) idx += 2 - self.log.logging( "Tuya", "Debug", " datatype: %s" % ( datatype ), NwkId, ) len_data = 2 * int(MsgPayload[idx:idx + 4], 16) idx += 4 - self.log.logging( "Tuya", "Debug", " len_data: %s" % ( len_data ), NwkId, ) data = MsgPayload[idx:idx + len_data] idx += len_data - self.log.logging( "Tuya", "Debug", " data: %s" % ( data ), NwkId, ) self.log.logging( "Tuya", "Debug", "tuyaReadRawAPS - command %s dp: %s dt: %s len: %s data: %s idx: %s" % ( cmd, dp, datatype, len_data, data, idx ), NwkId, ) @@ -361,27 +369,21 @@ def send_timesynchronisation(self, NwkId, srcEp, ClusterID, dstNWKID, dstEP, ser if NwkId not in self.ListOfDevices: return sqn = get_and_inc_ZCL_SQN(self, NwkId) - - field1 = "0d" - field2 = "80" - field3 = "29" + field1, field2, field3 = "0d", "80", "29" EPOCTime = datetime(1970, 1, 1) - now = datetime.utcnow() + now = datetime.now(timezone.utc) UTCTime_in_sec = int((now - EPOCTime).total_seconds()) LOCALtime_in_sec = int((utc_to_local(now) - EPOCTime).total_seconds()) - utctime = "%08x" % UTCTime_in_sec - localtime = "%08x" % LOCALtime_in_sec - self.log.logging( - "Tuya", - "Debug", - "send_timesynchronisation - %s/%s UTC: %s Local: %s" % (NwkId, srcEp, UTCTime_in_sec, LOCALtime_in_sec), - ) + utctime = f"{UTCTime_in_sec:08x}" + localtime = f"{LOCALtime_in_sec:08x}" + self.log.logging( "Tuya", "Debug", f"send_timesynchronisation - {NwkId}/{srcEp} UTC: {UTCTime_in_sec} Local: {LOCALtime_in_sec}", ) - payload = "11" + sqn + "24" + serial_number + utctime + localtime + payload = f"11{sqn}24{serial_number}{utctime}{localtime}" raw_APS_request(self, NwkId, srcEp, "ef00", "0104", payload, zigate_ep=ZIGATE_EP, ackIsDisabled=False) - self.log.logging("Tuya", "Debug", "send_timesynchronisation - %s/%s " % (NwkId, srcEp)) + self.log.logging("Tuya", "Debug", f"send_timesynchronisation - {NwkId}/{srcEp}") + def utc_to_local(dt): From 8c05ebba0cf93799653026e4b0b0c15a6683ae79 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sun, 7 Apr 2024 16:27:30 +0200 Subject: [PATCH 194/301] remove code duplication (#1725) * remove duplication when starting Zigate transport * simplify STGE decoding * simplify adding endpoints * better way to handle exceptions * sorting import --- Classes/GroupMgtv2/GrpCommands.py | 104 ++++--------- Classes/ZigateTransport/Transport.py | 21 ++- Classes/ZigateTransport/readerThread.py | 34 ++-- Classes/ZigpyTransport/AppGeneric.py | 129 +++------------ Modules/readClusters.py | 199 +++++++----------------- Modules/zlinky.py | 139 +++++++---------- plugin.py | 76 ++++----- 7 files changed, 231 insertions(+), 471 deletions(-) diff --git a/Classes/GroupMgtv2/GrpCommands.py b/Classes/GroupMgtv2/GrpCommands.py index 4f3265413..50daac4b6 100644 --- a/Classes/GroupMgtv2/GrpCommands.py +++ b/Classes/GroupMgtv2/GrpCommands.py @@ -1,9 +1,16 @@ -# !/usr/bin/env python3 -# coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # -# All operations to and from Zigate +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + + @@ -27,12 +34,7 @@ def add_group_member_ship(self, NwkId, DeviceEp, GrpId): Add Group Membership GrpId to NwkId """ self.logging("Debug", "add_group_member_ship GrpId: %s, NwkId: %s, Ep: %s" % (GrpId, NwkId, DeviceEp)) - #if not GRP_CMD_WITHOUT_ACK: - # datas = "02" + NwkId + ZIGATE_EP + DeviceEp + GrpId - #else: - # datas = "07" + NwkId + ZIGATE_EP + DeviceEp + GrpId zcl_add_group_membership( self, NwkId , ZIGATE_EP , DeviceEp , GrpId, ackIsDisabled=GRP_CMD_WITHOUT_ACK) - #self.ControllerLink.sendData("0060", datas, ackIsDisabled=GRP_CMD_WITHOUT_ACK) def check_group_member_ship(self, NwkId, DeviceEp, goup_addr): @@ -41,11 +43,6 @@ def check_group_member_ship(self, NwkId, DeviceEp, goup_addr): """ self.logging("Debug", "check_group_member_ship - addr: %s ep: %s group: %s" % (NwkId, DeviceEp, goup_addr)) zcl_check_group_member_ship(self, NwkId, ZIGATE_EP, DeviceEp, goup_addr, GRP_CMD_WITHOUT_ACK) - #if not GRP_CMD_WITHOUT_ACK: - # datas = "02" + NwkId + ZIGATE_EP + DeviceEp + goup_addr - #else: - # datas = "07" + NwkId + ZIGATE_EP + DeviceEp + goup_addr - #self.ControllerLink.sendData("0061", datas, ackIsDisabled=GRP_CMD_WITHOUT_ACK) def look_for_group_member_ship(self, NwkId, DeviceEp, group_list=None): @@ -68,38 +65,23 @@ def look_for_group_member_ship(self, NwkId, DeviceEp, group_list=None): lenGrpLst = 1 zcl_look_for_group_member_ship(self, NwkId, ZIGATE_EP, DeviceEp, "%02.x" % (lenGrpLst), group_list_, GRP_CMD_WITHOUT_ACK) self.logging("Debug", "look_for_group_member_ship - %s/%s from %s" % (NwkId, DeviceEp, group_list)) - #self.ControllerLink.sendData("0062", datas, ackIsDisabled=GRP_CMD_WITHOUT_ACK) def remove_group_member_ship(self, NwkId, DeviceEp, GrpId): self.logging("Debug", "remove_group_member_ship GrpId: %s NwkId: %s Ep: %s" % (GrpId, NwkId, DeviceEp)) zcl_remove_group_member_ship(self, NwkId, ZIGATE_EP, DeviceEp, GrpId, GRP_CMD_WITHOUT_ACK) - #if not GRP_CMD_WITHOUT_ACK: - # datas = "02" + NwkId + ZIGATE_EP + DeviceEp + GrpId - #else: - # datas = "07" + NwkId + ZIGATE_EP + DeviceEp + GrpId - #self.ControllerLink.sendData("0063", datas, ackIsDisabled=GRP_CMD_WITHOUT_ACK) + def remove_all_groups( self, NwkId, DeviceEp): self.logging("Debug", "remove_all_groups NwkId: %s Ep: %s" % ( NwkId, DeviceEp)) zcl_remove_all_groups( self, NwkId, ZIGATE_EP, DeviceEp, GRP_CMD_WITHOUT_ACK) - #if not GRP_CMD_WITHOUT_ACK: - # datas = "02" + NwkId + ZIGATE_EP + DeviceEp - #else: - # datas = "07" + NwkId + ZIGATE_EP + DeviceEp - #self.ControllerLink.sendData("0064", datas, ackIsDisabled=GRP_CMD_WITHOUT_ACK) # Operating commands on groups def send_group_member_ship_identify(self, NwkId, DeviceEp, goup_addr="0000"): zcl_send_group_member_ship_identify(self, NwkId, ZIGATE_EP, DeviceEp, goup_addr, GRP_CMD_WITHOUT_ACK) - #if not GRP_CMD_WITHOUT_ACK: - # datas = "02" + NwkId + ZIGATE_EP + DeviceEp + goup_addr - #else: - # datas = "07" + NwkId + ZIGATE_EP + DeviceEp + goup_addr - #self.ControllerLink.sendData("0065", datas, ackIsDisabled=GRP_CMD_WITHOUT_ACK) def send_group_member_ship_identify_effect(self, GrpId, Ep="01", effect="Okay"): @@ -126,15 +108,6 @@ def send_group_member_ship_identify_effect(self, GrpId, Ep="01", effect="Okay"): if effect not in effect_command: effect = "Okay" - #datas = ( - # "%02d" % ADDRESS_MODE["group"] - # + "%s" % (GrpId) - # + ZIGATE_EP - # + Ep - # + "%02x" % (effect_command[effect]) - # + "%02x" % 0 - #) - #self.ControllerLink.sendData("00E0", datas) zcl_group_identify_trigger_effect(self, "%s" % (GrpId), ZIGATE_EP, Ep, "%02x" % (effect_command[effect]), "%02x" % 0) @@ -143,51 +116,26 @@ def set_kelvin_color(self, mode, addr, EPin, EPout, t, transit="0000"): # Correct values are from 153 (6500K) up to 588 (1700K) # t is 0 > 255 - TempKelvin = int(((255 - int(t)) * (6500 - 1700) / 255) + 1700) - TempMired = 1000000 // TempKelvin - #zigate_cmd = "00C0" - #zigate_param = Hex_Format(4, TempMired) + transit - #datas = "%02d" % mode + addr + EPin + EPout + zigate_param - - #self.logging("Debug", "Command: %s - data: %s" % (zigate_cmd, datas)) - #self.ControllerLink.sendData(zigate_cmd, datas) - zcl_group_move_to_colour_temperature( self, addr, EPin, EPout, Hex_Format(4, TempMired), transit) + TempMired = 1000000 // int(((255 - int(t)) * (6500 - 1700) / 255) + 1700) + zcl_group_move_to_colour_temperature(self, addr, EPin, EPout, Hex_Format(4, TempMired), transit) def set_rgb_color(self, mode, addr, EPin, EPout, r, g, b, transit="0000"): - x, y = rgb_to_xy((int(r), int(g), int(b))) - # Convert 0 > 1 to 0 > FFFF - x = int(x * 65536) - y = int(y * 65536) - #strxy = Hex_Format(4, x) + Hex_Format(4, y) - #zigate_cmd = "00B7" - #zigate_param = strxy + transit - #datas = "%02d" % mode + addr + ZIGATE_EP + EPout + zigate_param - - #self.logging("Debug", "Command: %s - data: %s" % (zigate_cmd, datas)) - #self.ControllerLink.sendData(zigate_cmd, datas) + + # Convert 0-1 range to 0-65535 range (FFFF in hex) + x = int(x * 65535) + y = int(y * 65535) + zcl_group_move_to_colour(self, addr, ZIGATE_EP, EPout, Hex_Format(4, x), Hex_Format(4, y), transit) def set_hue_saturation(self, mode, addr, EPin, EPout, r, g, b, transit=None): + hue, sat, lumi = rgb_to_hsl((int(r), int(g), int(b))) + + hue = int(hue * 254 / 360) # Convert hue to 0-254 range + sat = int(sat * 254 / 100) # Convert saturation to 0-254 range - h, s, l = rgb_to_hsl((int(r), int(g), int(b))) - - saturation = s * 100 # r - hue = h * 360 # 0 > 360 - hue = int(hue * 254 // 360) - saturation = int(saturation * 254 // 100) - self.logging("Log", "---------- Set Hue X: %s Saturation: %s" % (hue, saturation)) - #self.ControllerLink.sendData( - # "00B6", - # "%02d" % ADDRESS_MODE["group"] - # + addr - # + ZIGATE_EP - # + EPout - # + Hex_Format(2, hue) - # + Hex_Format(2, saturation) - # + transit, - #) - zcl_group_move_hue_and_saturation(self, addr, ZIGATE_EP, EPout, Hex_Format(2, hue), Hex_Format(2, saturation), transit) - return l + self.logging("Log", f"---------- Set Hue X: {hue} Saturation: {sat}") + zcl_group_move_hue_and_saturation(self, addr, ZIGATE_EP, EPout, Hex_Format(2, hue), Hex_Format(2, sat), transit) + return lumi diff --git a/Classes/ZigateTransport/Transport.py b/Classes/ZigateTransport/Transport.py index a5ab94a5a..771a76aa6 100644 --- a/Classes/ZigateTransport/Transport.py +++ b/Classes/ZigateTransport/Transport.py @@ -1,8 +1,14 @@ -# !/usr/bin/env python3 -# coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import json import queue @@ -26,16 +32,17 @@ class ZigateTransport(object): + def __init__( self, - hardwareid, + HardwareID, DomoticzBuild, DomoticzMajor, DomoticzMinor, transport, statistics, pluginconf, - F_out, + processFrame, log, serialPort=None, wifiAddress=None, @@ -44,7 +51,7 @@ def __init__( self.zigbee_communication = "native" # Call back function to send back to plugin - self.F_out = F_out # Function to call to bring the decoded Frame at plugin + self.F_out = processFrame # Function to call to bring the decoded Frame at plugin # Logging self.log = log @@ -59,7 +66,7 @@ def __init__( self.pluginconf = pluginconf # Communication/Transport link attributes - self.hardwareid = hardwareid + self.hardwareid = HardwareID self._connection = None # connection handle self._ReqRcv = bytearray() # on going receive buffer self._last_raw_message = bytearray() diff --git a/Classes/ZigateTransport/readerThread.py b/Classes/ZigateTransport/readerThread.py index 7e0409638..29601918d 100644 --- a/Classes/ZigateTransport/readerThread.py +++ b/Classes/ZigateTransport/readerThread.py @@ -1,13 +1,20 @@ -# !/usr/bin/env python3 -# coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import socket from threading import Thread import serial + from Classes.ZigateTransport.readSerial import (open_serial, serial_read_write_from_zigate, serial_reset_line_in, @@ -50,10 +57,10 @@ def start_tcpip_reader_thread(self): def shutdown_reader_thread(self): - self.logging_reader("Debug", "shutdown_reader_thread %s" % self.running) + self.logging_reader("Debug", f"shutdown_reader_thread {self.running}") if self._connection: - if isinstance(self._connection, serial.serialposix.Serial): + if isinstance(self._connection, serial.Serial): self.logging_reader("Log", "Flush and cancel_read") serial_reset_line_in(self) serial_reset_line_out(self) @@ -61,16 +68,17 @@ def shutdown_reader_thread(self): elif isinstance(self._connection, socket.socket): self.logging_reader("Log", "shutdown socket") - if self._connection: - try: - self._connection.shutdown(socket.SHUT_RDWR) - except Exception: - pass + try: + self._connection.shutdown(socket.SHUT_RDWR) + except OSError as e: + self.logging_reader("Error", f"Error while shutting down socket: {e}") else: - self.logging_reader("Log", "unknown connection: %s" % str(self._connection)) + self.logging_reader("Log", f"unknown connection: {self._connection}") self.logging_reader("Log", "close connection") - if self._connection: + try: self._connection.close() - self.logging_reader("Log", "Connection closed") + self.logging_reader("Log", "Connection closed") + except Exception as e: + self.logging_reader("Error", f"Error while closing connection: {e}") diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 6f778201c..cb846b784 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -402,120 +402,37 @@ def get_device_with_address( self, address: t.AddrModeAddress ) -> zigpy.device. else: raise ValueError(f"Invalid address: {address!r}") + async def register_specific_endpoints(self): """ Registers all necessary endpoints. The exact order in which this method is called depends on the radio module. """ - # Wiser2 (new generation 0x03) - if "Wiser2" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["Wiser2"]: - self.log.logging("TransportZigpy", "Status","Adding Wiser2 Endpoint 0x%x" %0x03) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=0x03, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - zigpy.zcl.clusters.hvac.Thermostat.cluster_id, - ], - output_clusters=[ - ], - ) - ) - - # Livolo Switch 0x08 - if "Livolo" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["Livolo"]: - self.log.logging("TransportZigpy", "Status","Adding Livolo Endpoint 0x%x" %0x08) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=0x08, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - zigpy.zcl.clusters.general.OnOff.cluster_id, - ], - output_clusters=[ - zigpy.zcl.clusters.security.IasZone.cluster_id, - ], - ) - ) - - # Orvibo 0x0a - if "Orvibo" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["Orvibo"]: - self.log.logging("TransportZigpy", "Status","Adding Orvibo Endpoint 0x%x" %0x0a) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=0x0a, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - ], - output_clusters=[ - ], - ) - ) - - # Wiser Legacy 0x0b - if "Wiser" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["Wiser"]: - self.log.logging("TransportZigpy", "Status","Adding Wiser legacy Endpoint 0x%x" %0x0b) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=0x0b, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - zigpy.zcl.clusters.hvac.Thermostat.cluster_id, - ], - output_clusters=[ - ], - ) - ) - - - # Terncy 0x6e - if "Terncy" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["Terncy"]: - self.log.logging("TransportZigpy", "Status","Adding Terncy Endpoint 0x%x" %0x6e) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=0x6e, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - ], - output_clusters=[ - ], - ) - ) + # Endpoint configurations + endpoint_configs = { + "Wiser2": (0x03, [zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id], []), + "Livolo": (0x08, [zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.OnOff.cluster_id], [zigpy.zcl.clusters.security.IasZone.cluster_id]), + "Orvibo": (0x0a, [zigpy.zcl.clusters.general.Basic.cluster_id], []), + "Wiser": (0x0b, [zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id], []), + "Terncy": (0x6e, [zigpy.zcl.clusters.general.Basic.cluster_id], []), + "Konke": (0x15, [zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.OnOff.cluster_id], [zigpy.zcl.clusters.security.IasZone.cluster_id]), + } - # Konke 0x15 - if "Konke" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["Konke"]: - self.log.logging("TransportZigpy", "Status","Adding Konke Endpoint 0x%x" %0x15) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=0x15, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - zigpy.zcl.clusters.general.OnOff.cluster_id, - ], - output_clusters=[ - zigpy.zcl.clusters.security.IasZone.cluster_id, - ], + # Iterate through endpoint configurations + for plugin, (endpoint, input_clusters, output_clusters) in endpoint_configs.items(): + if plugin in self.pluginconf.pluginConf and self.pluginconf.pluginConf[plugin]: + self.log.logging("TransportZigpy", "Status", f"Adding {plugin} Endpoint 0x{endpoint:x}") + await self.add_endpoint( + zdo_types.SimpleDescriptor( + endpoint=endpoint, + profile=zigpy.profiles.zha.PROFILE_ID, + device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, + device_version=0b0000, + input_clusters=input_clusters, + output_clusters=output_clusters, + ) ) - ) def do_retreive_backup( self ): diff --git a/Modules/readClusters.py b/Modules/readClusters.py index 02a859404..b711f8872 100644 --- a/Modules/readClusters.py +++ b/Modules/readClusters.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: z_readClusters.py @@ -141,14 +148,7 @@ def storeReadAttributeStatus(self, MsgType, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClu def ReadCluster( self, Devices, MsgType, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttrStatus, MsgAttType, MsgAttSize, MsgClusterData, Source=None, ): if MsgSrcAddr not in self.ListOfDevices: - _context = { - "MsgClusterId": str(MsgClusterId), - "MsgSrcEp": str(MsgSrcEp), - "MsgAttrID": str(MsgAttrID), - "MsgAttType": str(MsgAttType), - "MsgAttSize": str(MsgAttSize), - "MsgClusterData": str(MsgClusterData), - } + _context = create_context(MsgClusterId, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) self.log.logging("Cluster", "Error", "ReadCluster - unknown device: %s" % (MsgSrcAddr), MsgSrcAddr, _context) return @@ -195,14 +195,7 @@ def ReadCluster( self, Devices, MsgType, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgCluste else: checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) - _context = { - "MsgClusterId": str(MsgClusterId), - "MsgSrcEp": str(MsgSrcEp), - "MsgAttrID": str(MsgAttrID), - "MsgAttType": str(MsgAttType), - "MsgAttSize": str(MsgAttSize), - "MsgClusterData": str(MsgClusterData), - } + _context = create_context(MsgClusterId, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) self.log.logging( "Cluster", "Error", "ReadCluster - Warning - unknow %s/%s Cluster: %s Attribute: %s Status: %s DataType: %s DataSize: %s Data: %s" %( MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttrStatus, MsgAttType, MsgAttSize, MsgClusterData), MsgSrcAddr, _context, ) @@ -890,14 +883,7 @@ def Cluster0101(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAt MajDomoDevice(self, Devices, MsgSrcAddr, MsgSrcEp, "0500", "01") else: - _context = { - "MsgClusterId": str(MsgClusterId), - "MsgSrcEp": str(MsgSrcEp), - "MsgAttrID": str(MsgAttrID), - "MsgAttType": str(MsgAttType), - "MsgAttSize": str(MsgAttSize), - "MsgClusterData": str(MsgClusterData), - } + _context = create_context(MsgClusterId, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) self.log.logging( "Cluster", "Error", @@ -1924,57 +1910,14 @@ def Clusterfe03(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAt # - UI,ButtonPressCenterDown # - UI,ButtonPressPlusDown # - ENV,-32768,2637,4777 - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" - % ( - MsgClusterId, - MsgSrcAddr, - MsgSrcEp, - MsgAttrID, - MsgAttType, - MsgAttSize, - decodeAttribute( - self, - MsgAttType, - MsgClusterData, - ), - ), - MsgSrcAddr, - ) - checkAndStoreAttributeValue( - self, - MsgSrcAddr, - MsgSrcEp, - MsgClusterId, - MsgAttrID, - decodeAttribute( - self, - MsgAttType, - MsgClusterData, - ), - ) + model_name = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) def Clusterfc00(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): - - self.log.logging( - "Cluster", - "Debug", - "ReadCluster - %s - %s/%s MsgAttrID: %s, MsgAttType: %s, MsgAttSize: %s, : %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) + model_name = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) if MsgAttrID not in ("0001", "0002", "0003", "0004"): - _context = { - "MsgClusterId": str(MsgClusterId), - "MsgSrcEp": str(MsgSrcEp), - "MsgAttrID": str(MsgAttrID), - "MsgAttType": str(MsgAttType), - "MsgAttSize": str(MsgAttSize), - "MsgClusterData": str(MsgClusterData), - } + _context = create_context(MsgClusterId, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) self.log.logging( "Cluster", "Error", @@ -1984,7 +1927,7 @@ def Clusterfc00(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAt ) return - if "Model" in self.ListOfDevices[MsgSrcAddr] and self.ListOfDevices[MsgSrcAddr]["Model"] == "ROM001": + if model_name == "ROM001": if MsgAttrID == "0001": # On button self.log.logging( "Cluster", "Debug", "ReadCluster - %s - %s/%s - ON Button detected" % (MsgClusterId, MsgSrcAddr, MsgSrcEp), MsgSrcAddr, ) MajDomoDevice(self, Devices, MsgSrcAddr, MsgSrcEp, "0008", "on") @@ -2002,28 +1945,20 @@ def Clusterfc00(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAt if get_deviceconf_parameter_value(self, self.ListOfDevices[MsgSrcAddr]["Model"], "HUE_RWL"): philips_dimmer_switch(self, Devices, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) - -def Clusterfc01(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): +def pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData): + """pre-process a clustre/attribuute and return model name""" + log_message = f"ReadCluster {MsgClusterId} - {MsgSrcAddr}/{MsgSrcEp} Attribute: {MsgAttrID} Type: {MsgAttType} Size: {MsgAttSize} Data: {MsgClusterData}" + self.log.logging("Cluster", "Debug", log_message, MsgSrcAddr) - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) + checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, decodeAttribute(self, MsgAttType, MsgClusterData)) - checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) + return self.ListOfDevices.get(MsgSrcAddr, {}).get("Model") - if "Model" not in self.ListOfDevices[MsgSrcAddr]: +def Clusterfc01(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): + model = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) + if model is None: return - model = self.ListOfDevices[MsgSrcAddr]["Model"] if "Legrand" not in self.ListOfDevices[MsgSrcAddr]: self.ListOfDevices[MsgSrcAddr]["Legrand"] = {} @@ -2065,38 +2000,15 @@ def Clusterfc01(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAt def Clusterfc03(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): # Philips cluster - NOT IMPLEMENTED - - self.log.logging( - "Cluster", - "Info", - "ReadCluster unimplemented %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) - checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) - if "Model" not in self.ListOfDevices[MsgSrcAddr]: + model = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) + if model is None: return def Clusterfc40(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): - - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) - - checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) - - if "Model" not in self.ListOfDevices[MsgSrcAddr]: + model = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) + if model is None: return - # model = self.ListOfDevices[MsgSrcAddr]["Model"] if "Legrand" not in self.ListOfDevices[MsgSrcAddr]: self.ListOfDevices[MsgSrcAddr]["Legrand"] = {} @@ -2115,37 +2027,44 @@ def Clusterfc21(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAt # FC21 : PFX Cluster Profalux # Attribute 0x0001 => Orientation ( value between 0 to 90) - - checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) - - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), - MsgSrcAddr, - ) - + model = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) if MsgAttrID == "0001": - self.log.logging( - "Cluster", - "Debug", - "ReadCluster %s - %s/%s Orientation BSO: %s - %s °" % (MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgClusterData, int(MsgClusterData, 16)), - MsgSrcAddr, - ) + self.log.logging( "Cluster", "Debug", "ReadCluster %s - %s/%s Orientation BSO: %s - %s °" % ( + MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgClusterData, int(MsgClusterData, 16)), MsgSrcAddr, ) MajDomoDevice(self, Devices, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgClusterData) def Clusterfc57(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): - self.log.logging( "Cluster", "Debug", "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % ( - MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), MsgSrcAddr,) - checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) + model = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) + def Clusterfc7d(self, Devices, MsgSQN, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData, Source): - self.log.logging( "Cluster", "Debug", "ReadCluster %s - %s/%s Attribute: %s Type: %s Size: %s Data: %s" % ( - MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData), MsgSrcAddr,) - - checkAndStoreAttributeValue(self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) + model = pre_process_cluster_message(self, MsgClusterId, MsgSrcAddr, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData) + ikea_air_purifier_cluster(self, Devices, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgClusterData) +def create_context(MsgClusterId, MsgSrcEp, MsgAttrID, MsgAttType, MsgAttSize, MsgClusterData): + """ + Create a context dictionary from the provided message attributes. + + Args: + - MsgClusterId: The ID of the message cluster. + - MsgSrcEp: The source endpoint of the message. + - MsgAttrID: The attribute ID of the message. + - MsgAttType: The attribute type of the message. + - MsgAttSize: The attribute size of the message. + - MsgClusterData: The data of the message cluster. + + Returns: + - A dictionary containing the context information. + """ + return { + "MsgClusterId": str(MsgClusterId), + "MsgSrcEp": str(MsgSrcEp), + "MsgAttrID": str(MsgAttrID), + "MsgAttType": str(MsgAttType), + "MsgAttSize": str(MsgAttSize), + "MsgClusterData": str(MsgClusterData), + } DECODE_CLUSTER = { "0006": Cluster0006, diff --git a/Modules/zlinky.py b/Modules/zlinky.py index bb45986d2..9fc23dff1 100644 --- a/Modules/zlinky.py +++ b/Modules/zlinky.py @@ -1,3 +1,14 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import time @@ -321,17 +332,10 @@ def update_zlinky_device_model_if_needed( self, nwkid ): 2: "Blanc", 3: "Rouge" } -def decode_STEG( stge ): - # '003A4001' - # '0b1110100100000000000001' - try: - stge = int( stge, 16) - except Exception as e: - return {} - - # Decodage Registre Statuts +def decode_STEG(stge): + """ decoding of STGE Linky frame""" # Contact Sec : bit 0 # Organe de coupure: bits 1 à 3 # Etat du cache-bornes distributeur: bit 4 @@ -350,78 +354,55 @@ def decode_STEG( stge ): # Couleur du lendemain: bit 26 et 27 # Préavis points mobiles: bit 28 à 29 # Pointe mobile: bit 30 et 31 - contact_sec = ( stge & 0b00000000000000000000000000000001) - organe_coupure = ( stge & 0b00000000000000000000000000001110) >> 1 - etat_cache_bornes = ( stge & 0b00000000000000000000000000010000) >> 4 - sur_tension = ( stge & 0b00000000000000000000000001000000) >> 6 - depassement_puissance = ( stge & 0b00000000000000000000000010000000) >> 7 - mode_fonctionnement =(stge & 0b00000000000000000000000100000000) >> 8 - sens_energie = ( stge & 0b00000000000000000000001000000000) >> 9 - tarif_fourniture = ( stge & 0b00000000000000000011110000000000) >> 10 - tarif_distributeur =( stge & 0b00000000000000001100000000000000) >> 14 - Mode_horloge = ( stge & 0b00000000000000010000000000000000) >> 16 - sortie_tic = ( stge & 0b00000000000000100000000000000000) >> 17 - sortie_euridis = ( stge & 0b00000000000110000000000000000000) >> 19 - status_cpl = ( stge & 0b00000000011000000000000000000000) >> 21 - synchro_cpl = ( stge & 0b00000000100000000000000000000000) >> 23 - couleur_jour = ( stge & 0b00000011000000000000000000000000) >> 24 - couleur_demain = ( stge & 0b00001100000000000000000000000000) >> 26 - preavis_point_mobile = ( stge & 0b00110000000000000000000000000000) >> 28 - pointe_mobile = ( stge & 0b11000000000000000000000000000000) >> 30 - - if contact_sec in CONTACT_SEC: - contact_sec = CONTACT_SEC[ contact_sec ] - - if etat_cache_bornes in ETAT_CACHE_BORNES: - etat_cache_bornes = ETAT_CACHE_BORNES[ etat_cache_bornes ] - - if mode_fonctionnement in FONCTION_PROD_CONSO: - mode_fonctionnement = FONCTION_PROD_CONSO[ mode_fonctionnement ] - - if sens_energie in SENS_ENERGIE: - sens_energie = SENS_ENERGIE[ sens_energie ] - - if Mode_horloge in HORLOGE: - Mode_horloge = HORLOGE[ Mode_horloge] - - if sortie_tic in SORTIE_TIC: - sortie_tic = SORTIE_TIC[ sortie_tic ] - - if sortie_euridis in SORTIE_EURIDIS: - sortie_euridis = SORTIE_EURIDIS[ sortie_euridis ] - - if status_cpl in STATUT_CPL: - status_cpl = STATUT_CPL[ status_cpl ] - - if synchro_cpl in SYNCHRO_CPL: - synchro_cpl = SYNCHRO_CPL[ synchro_cpl ] - - if couleur_jour in COULEUR: - couleur_jour = COULEUR[ couleur_jour] - - if couleur_demain in COULEUR: - couleur_demain = COULEUR[ couleur_demain] - return { - 'Contact sec ': contact_sec, - 'Organe de coupure ': organe_coupure, - 'État du cache-bornes distributeur': etat_cache_bornes, - 'Surtension sur une des phases ': sur_tension, - 'Dépassement de la puissance de référence': depassement_puissance, - 'Fonctionnement producteur/consommateur': mode_fonctionnement, - 'Sens énergie active ': sens_energie, - 'Tarif en cours sur le contrat fourniture': tarif_fourniture, - 'Tarif en cours sur le contrat distributeur': tarif_distributeur, - 'Mode dégradée horloge': Mode_horloge, - 'État de la sortie télé-information ': sortie_tic, - 'État de la sortie communication': sortie_euridis, - 'Statut du CPL ': status_cpl, - 'Synchronisation CPL ': synchro_cpl, - 'Couleur du jour': couleur_jour, - 'Couleur du lendemain': couleur_demain, - 'Préavis pointes mobiles ': preavis_point_mobile, - 'Pointe mobile ': pointe_mobile, + + try: + stge = int(stge, 16) + except ValueError: + return {} + + attributes = { + 'contact_sec': stge & 0x00000001, + 'organe_coupure': (stge & 0x0000000E) >> 1, + 'etat_cache_bornes': (stge & 0x00000010) >> 4, + 'sur_tension': (stge & 0x00000040) >> 6, + 'depassement_puissance': (stge & 0x00000080) >> 7, + 'mode_fonctionnement': (stge & 0x00000100) >> 8, + 'sens_energie': (stge & 0x00000200) >> 9, + 'tarif_fourniture': (stge & 0x0001F000) >> 12, + 'tarif_distributeur': (stge & 0x00060000) >> 14, + 'Mode_horloge': (stge & 0x00100000) >> 16, + 'sortie_tic': (stge & 0x00200000) >> 17, + 'sortie_euridis': (stge & 0x00C00000) >> 19, + 'status_cpl': (stge & 0x03000000) >> 21, + 'synchro_cpl': (stge & 0x08000000) >> 23, + 'couleur_jour': (stge & 0x30000000) >> 24, + 'couleur_demain': (stge & 0xC0000000) >> 26, + 'preavis_point_mobile': (stge & 0x30000000) >> 28, + 'pointe_mobile': (stge & 0xC0000000) >> 30, + } + + # Decode mapped values + mapped_attributes = { + 'contact_sec': CONTACT_SEC, + 'etat_cache_bornes': ETAT_CACHE_BORNES, + 'mode_fonctionnement': FONCTION_PROD_CONSO, + 'sens_energie': SENS_ENERGIE, + 'Mode_horloge': HORLOGE, + 'sortie_tic': SORTIE_TIC, + 'sortie_euridis': SORTIE_EURIDIS, + 'status_cpl': STATUT_CPL, + 'synchro_cpl': SYNCHRO_CPL, + 'couleur_jour': COULEUR, + 'couleur_demain': COULEUR, } + # Decode mapped values for applicable attributes + for attr, mapping in mapped_attributes.items(): + if attr in attributes and attributes[attr] in mapping: + attributes[attr] = mapping[attributes[attr]] + + return attributes + def zlinky_sum_all_indexes( self, nwkid ): diff --git a/plugin.py b/plugin.py index 1b6d3c2b0..be00527ad 100644 --- a/plugin.py +++ b/plugin.py @@ -1002,65 +1002,45 @@ def _start_fake_coordinator(self): def _start_native_usb_zigate(self): - from Classes.ZigateTransport.Transport import ZigateTransport - - self.zigbee_communication = "native" - self.pluginParameters["Zigpy"] = False - self.ControllerLink= ZigateTransport( - self.HardwareID, - self.DomoticzBuild, - self.DomoticzMajor, - self.DomoticzMinor, - self.transport, - self.statistics, - self.pluginconf, - self.processFrame, - self.log, - serialPort=Parameters["SerialPort"], - ) + _start_native_zigate(self, serialPort=Parameters["SerialPort"]) def _start_native_pi_zigate(self): - from Classes.ZigateTransport.Transport import ZigateTransport - check_python_modules_version( self ) - self.pluginconf.pluginConf["ControllerInRawMode"] = False switchPiZigate_mode(self, "run") - self.zigbee_communication = "native" - self.pluginParameters["Zigpy"] = False - self.ControllerLink= ZigateTransport( - self.HardwareID, - self.DomoticzBuild, - self.DomoticzMajor, - self.DomoticzMinor, - self.transport, - self.statistics, - self.pluginconf, - self.processFrame, - self.log, - serialPort=Parameters["SerialPort"], - ) + _start_native_zigate(self, serialPort=Parameters["SerialPort"]) def _start_native_wifi_zigate(self): + _start_native_zigate(self, wifiAddress=Parameters["Address"], wifiPort=Parameters["Port"]) + + +def _start_native_zigate(self, serialPort=None, wifiAddress=None, wifiPort=None): from Classes.ZigateTransport.Transport import ZigateTransport - check_python_modules_version( self ) + check_python_modules_version(self) self.pluginconf.pluginConf["ControllerInRawMode"] = False self.zigbee_communication = "native" self.pluginParameters["Zigpy"] = False - self.ControllerLink= ZigateTransport( - self.HardwareID, - self.DomoticzBuild, - self.DomoticzMajor, - self.DomoticzMinor, - self.transport, - self.statistics, - self.pluginconf, - self.processFrame, - self.log, - wifiAddress=Parameters["Address"], - wifiPort=Parameters["Port"], - ) - + + kwargs = { + "HardwareID": self.HardwareID, + "DomoticzBuild": self.DomoticzBuild, + "DomoticzMajor": self.DomoticzMajor, + "DomoticzMinor": self.DomoticzMinor, + "transport": self.transport, + "statistics": self.statistics, + "pluginconf": self.pluginconf, + "processFrame": self.processFrame, + "log": self.log, + } + if serialPort: + kwargs["serialPort"] = serialPort + if wifiAddress: + kwargs["wifiAddress"] = wifiAddress + if wifiPort: + kwargs["wifiPort"] = wifiPort + + self.ControllerLink = ZigateTransport(**kwargs) + def _start_zigpy_ZNP(self): import zigpy From 66b34dfa809f4a8f069305f591aa05bc6644d4f4 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 7 Apr 2024 16:27:55 +0200 Subject: [PATCH 195/301] Plugin wip-develop version 7.2.059 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index a12ac8004..afd40eea6 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.058"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.059"} \ No newline at end of file From fff0a02fe2eb7a486a3fb216652e735c2f3dd202 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 7 Apr 2024 17:14:32 +0200 Subject: [PATCH 196/301] few cosmetic changes --- plugin.py | 126 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 57 deletions(-) diff --git a/plugin.py b/plugin.py index be00527ad..9c3ec7df6 100644 --- a/plugin.py +++ b/plugin.py @@ -519,20 +519,21 @@ def onStart(self): ) self.onStop() return - - self.log.logging("Plugin", "Debug", "ListOfDevices : ") - for e in self.ListOfDevices.items(): - self.log.logging("Plugin", "Debug", " " + str(e)) + # Log ListOfDevices dictionary + self.log.logging("Plugin", "Debug", "ListOfDevices:") + for key, value in self.ListOfDevices.items(): + self.log.logging("Plugin", "Debug", f" {key}: {value}") - self.log.logging("Plugin", "Debug", "IEEE2NWK : ") - for e in self.IEEE2NWK.items(): - self.log.logging("Plugin", "Debug", " " + str(e)) + # Log IEEE2NWK dictionary + self.log.logging("Plugin", "Debug", "IEEE2NWK:") + for key, value in self.IEEE2NWK.items(): + self.log.logging("Plugin", "Debug", f" {key}: {value}") # Check proper match against Domoticz Devices checkListOfDevice2Devices(self, Devices) checkDevices2LOD(self, Devices) - + for x in self.ListOfDevices: # Fixing Profalux Model is required if "Model" in self.ListOfDevices[x] and self.ListOfDevices[x]["Model"] in ( "", {} ): @@ -546,14 +547,13 @@ def onStart(self): # Connect to Coordinator only when all initialisation are properly done. self.log.logging("Plugin", "Status", "Transport mode: %s" % self.transport) - - + if len(self.ListOfDevices) > 10: # Don't do Energy Scan if too many objects, as Energy scan don't make the difference between real traffic and noise self.pluginconf.pluginConf["EnergyScanAtStatup"] = 0 start_zigbee_transport(self ) - + if self.transport not in ("ZigpyZNP", "ZigpydeCONZ", "ZigpyEZSP", "ZigpyZiGate", "None" ): self.log.logging("Plugin", "Debug", "Establish Zigate connection") self.ControllerLink.open_cie_connection() @@ -574,71 +574,75 @@ def onStart(self): ) if is_domoticz_extended(): - self.log.logging( "Plugin", "Status", "Plugin is using Extended Framework") + framework_status = "Extended Framework" else: - self.log.logging( "Plugin", "Status", "Plugin is using legacy Framework") + framework_status = "legacy Framework" + free_slots = how_many_legacy_slot_available(Devices) + usage_percentage = round(((255 - free_slots) / 255) * 100, 1) + self.log.logging("Plugin", "Status", f"Domoticz Widgets usage is at {usage_percentage}% ({free_slots} units free)") + + self.log.logging("Plugin", "Status", f"Plugin started with !! {framework_status} !!") - if not is_domoticz_extended(): - self.log.logging("Plugin", "Status", "Domoticz Widgets usage is at %s %% (%s units free)" % ( - round( ( ( 255 - how_many_legacy_slot_available( Devices)) / 255 ) * 100, 1 ), how_many_legacy_slot_available( Devices) )) self.busy = False - def onStop(self): # sourcery skip: class-extract-method + def onStop(self): + """ + Performs cleanup actions when the plugin is stopped. + + Stops various plugin functionalities and saves plugin database. + + Returns: + None + """ Domoticz.Log("onStop()") + + # Uninstall Z4D custom UI from Domoticz uninstall_Z4D_to_domoticz_custom_ui() - + + # Log imported modules if configured if self.pluginconf and self.pluginconf.pluginConf["ListImportedModules"]: list_all_modules_loaded(self) + # Log onStop event if self.pluginconf and self.log: self.log.logging("Plugin", "Log", "onStop called") - self.log.logging("Plugin", "Log", "onStop calling (1) domoticzDb DeviceStatus closed") - - if self.pluginconf and self.log: - self.log.logging("Plugin", "Log", "onStop calling (3) Transport off") - + + # Close CIE connection and shutdown transport thread if self.pluginconf and self.ControllerLink: self.ControllerLink.thread_transport_shutdown() self.ControllerLink.close_cie_connection() - if self.pluginconf and self.log: - self.log.logging("Plugin", "Log", "onStop calling (4) WebServer off") - + # Stop WebServer if self.pluginconf and self.webserver: self.webserver.onStop() - - if self.pluginconf and self.log: - self.log.logging("Plugin", "Log", "onStop called (4) WebServer off") - - if self.pluginconf and self.log: - self.log.logging("Plugin", "Log", "onStop calling (5) Plugin Database saved") - + + # Save plugin database if self.pluginconf: WriteDeviceList(self, 0) - - if self.pluginconf and self.log: - self.log.logging("Plugin", "Log", "onStop called (5) Plugin Database saved") + # Print and save statistics if configured if self.pluginconf and self.statistics: self.statistics.printSummary() self.statistics.writeReport() + # Close logging management if self.pluginconf and self.log: - self.log.logging("Plugin", "Log", "onStop calling (6) Close Logging Management") + self.log.logging("Plugin", "Log", "Closing Logging Management") self.log.closeLogFile() - self.log.logging("Plugin", "Log", "onStop called (6) Close Logging Management") + # Log running threads that need to be shutdown for thread in threading.enumerate(): if thread.name != threading.current_thread().name: - Domoticz.Log( "'" + thread.name + "' is running, it must be shutdown otherwise Domoticz will abort on plugin exit.") + Domoticz.Log("'" + thread.name + "' is running, it must be shutdown otherwise Domoticz will abort on plugin exit.") + # Update plugin health status self.PluginHealth["Flag"] = 3 self.PluginHealth["Txt"] = "No Communication" + if self.adminWidgets: self.adminWidgets.updateStatusWidget(Devices, "No Communication") - def onDeviceRemoved(self, Unit): # def onDeviceRemoved(self, DeviceID, Unit): if not self.ControllerIEEE: @@ -1493,24 +1497,32 @@ def pingZigate(self): def debuging_information(self, mode): - self.log.logging("Plugin", mode, "Is GC enabled: %s" % gc.isenabled()) - self.log.logging("Plugin", mode, "DomoticzVersion: %s" % Parameters["DomoticzVersion"]) - for x in self.pluginParameters: - self.log.logging("Plugin", mode, "Parameters[%s] %s" % (x, self.pluginParameters[x])) - - self.log.logging("Plugin", mode, "Debug: %s" % Parameters["Mode6"]) - self.log.logging("Plugin", mode, "Python Version - %s" % sys.version) - self.log.logging("Plugin", mode, "DomoticzVersion: %s" % Parameters["DomoticzVersion"]) - self.log.logging("Plugin", mode, "DomoticzHash: %s" % Parameters["DomoticzHash"]) - self.log.logging("Plugin", mode, "DomoticzBuildTime: %s" % Parameters["DomoticzBuildTime"]) - self.log.logging("Plugin", mode, "Startup Folder: %s" % Parameters["StartupFolder"]) - self.log.logging("Plugin", mode, "Home Folder: %s" % Parameters["HomeFolder"]) - self.log.logging("Plugin", mode, "User Data Folder: %s" % Parameters["UserDataFolder"]) - self.log.logging("Plugin", mode, "Web Root Folder: %s" % Parameters["WebRoot"]) - self.log.logging("Plugin", mode, "Database: %s" % Parameters["Database"]) - self.log.logging("Plugin", mode, "Opening DomoticzDB in raw") - self.log.logging("Plugin", mode, " - DeviceStatus table") + """ + Logs debugging information based on the provided mode. + + Args: + mode (str): Logging mode. + + Returns: + None + """ + debug_info = { + "Is GC enabled": gc.isenabled(), + "DomoticzVersion": Parameters["DomoticzVersion"], + "Debug": Parameters["Mode6"], + "Python Version": sys.version, + "DomoticzHash": Parameters["DomoticzHash"], + "DomoticzBuildTime": Parameters["DomoticzBuildTime"], + "Startup Folder": Parameters["StartupFolder"], + "Home Folder": Parameters["HomeFolder"], + "User Data Folder": Parameters["UserDataFolder"], + "Web Root Folder": Parameters["WebRoot"], + "Database": Parameters["Database"] + } + # Log debug information + for info_name, info_value in debug_info.items(): + self.log.logging("Plugin", mode, "%s: %s" % (info_name, info_value)) global _plugin # pylint: disable=global-variable-not-assigned From 1ed9d026bd0ad38205166ec188716db5f92e719b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 7 Apr 2024 17:14:49 +0200 Subject: [PATCH 197/301] Plugin wip-develop version 7.2.060 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index afd40eea6..a8021565a 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.059"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.060"} \ No newline at end of file From 8e6926dfd6aa834e88429b035fab80d02f6d5e52 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 8 Apr 2024 10:27:10 +0200 Subject: [PATCH 198/301] fix TypeError: can't subtract offset-naive and offset-aware datetimes --- Modules/tuya.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/tuya.py b/Modules/tuya.py index 59b46ae0f..094338c58 100644 --- a/Modules/tuya.py +++ b/Modules/tuya.py @@ -371,7 +371,7 @@ def send_timesynchronisation(self, NwkId, srcEp, ClusterID, dstNWKID, dstEP, ser sqn = get_and_inc_ZCL_SQN(self, NwkId) field1, field2, field3 = "0d", "80", "29" - EPOCTime = datetime(1970, 1, 1) + EPOCTime = datetime(1970, 1, 1, tzinfo=timezone.utc) now = datetime.now(timezone.utc) UTCTime_in_sec = int((now - EPOCTime).total_seconds()) LOCALtime_in_sec = int((utc_to_local(now) - EPOCTime).total_seconds()) From c89f78c802036b51138fd6d103e2e3fb8a362349 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 8 Apr 2024 10:27:54 +0200 Subject: [PATCH 199/301] Plugin wip-develop version 7.2.061 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index a8021565a..45c09f0a6 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.060"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.061"} \ No newline at end of file From 86f933a7cc84cdf6b99dcb6d948d449fdca66ce1 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 9 Apr 2024 15:56:26 +0200 Subject: [PATCH 200/301] do not track Route and Neighbour, this is now handle by a Topology Scan --- plugin.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/plugin.py b/plugin.py index 9c3ec7df6..b17557fd0 100644 --- a/plugin.py +++ b/plugin.py @@ -955,15 +955,14 @@ def retreive_zigpy_topology_data(self): self.ListOfDevices["0000"]["ZigpyTopologyRequested"] = False return - coordinator_data = self.ListOfDevices.get("0000", {}) - if "ZigpyNeighbors" in coordinator_data and "ZigpyRoutes" in coordinator_data: - return - - self.zigpy_topology.copy_zigpy_infos_to_plugin() - coordinator_data = self.ListOfDevices.get("0000", {}) - if "ZigpyNeighbors" not in coordinator_data and "ZigpyRoutes" not in coordinator_data: - self.log.logging("Plugin", "Log", "onHeartbeat request zigpy topology scan as not data available") - self.ControllerLink.sendData("ZIGPY-TOPOLOGY-SCAN", {}) + # coordinator_data = self.ListOfDevices.get("0000", {}) + # if "ZigpyNeighbors" in coordinator_data and "ZigpyRoutes" in coordinator_data: + # return + # self.zigpy_topology.copy_zigpy_infos_to_plugin() + # coordinator_data = self.ListOfDevices.get("0000", {}) + # if "ZigpyNeighbors" not in coordinator_data and "ZigpyRoutes" not in coordinator_data: + # self.log.logging("Plugin", "Log", "onHeartbeat request zigpy topology scan as not data available") + # self.ControllerLink.sendData("ZIGPY-TOPOLOGY-SCAN", {}) def start_zigbee_transport(self ): From aa419bcc3e3af9f38c50cdb2a88c40b1a694479c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 9 Apr 2024 16:33:32 +0200 Subject: [PATCH 201/301] Plugin wip-develop version 7.2.062 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 45c09f0a6..8ddc37bf5 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.061"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.062"} \ No newline at end of file From d8a1ee9d233648f5919eac7311b8d3d9383ed790 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:03:16 +0200 Subject: [PATCH 202/301] if ZigpyTopology remove the old Data Topology (#1727) --- Modules/database.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Modules/database.py b/Modules/database.py index cbb01e3c3..6d9327221 100644 --- a/Modules/database.py +++ b/Modules/database.py @@ -186,7 +186,11 @@ def LoadDeviceList(self): self.DeviceListSize = os.path.getsize(_DeviceListFileName) cleanup_table_entries( self) - + + if self.pluginconf.pluginConf["ZigpyTopologyReport"]: + # Cleanup the old Topology data + remove_legacy_topology_datas(self) + for addr in self.ListOfDevices: # Fixing mistake done in the code. fixing_consumption_lumi(self, addr) @@ -847,6 +851,12 @@ def load_new_param_definition(self): self.ListOfDevices[key]["Param"][param] = self.pluginconf.pluginConf["EnableReleaseButton"] +def remove_legacy_topology_datas(self): + for device_info in self.ListOfDevices.values(): + for table_name in ("RoutingTable", "AssociatedDevices", "Neighbours"): + device_info.pop(table_name, None) + + def cleanup_table_entries( self): for tablename in ("RoutingTable", "AssociatedDevices", "Neighbours" ): From 023e5c67e383da7342aade7e290df83714f99387 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 9 Apr 2024 17:03:37 +0200 Subject: [PATCH 203/301] Plugin wip-develop version 7.2.063 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 8ddc37bf5..65c7593e9 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.062"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.063"} \ No newline at end of file From 2b2d95d57b832921daffc065dc04246bd30591ee Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 10 Apr 2024 11:22:19 +0200 Subject: [PATCH 204/301] disable Zigpy OTA --- Classes/ZigpyTransport/AppDeconz.py | 1 - Classes/ZigpyTransport/AppGeneric.py | 11 ++-- Classes/ZigpyTransport/zigpyThread.py | 74 ++++++++++++++------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 59a027760..f8962f5de 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -31,7 +31,6 @@ async def new(cls, config: dict, auto_form: bool = False, start_radio: bool = Tr async def _load_db(self) -> None: await Classes.ZigpyTransport.AppGeneric._load_db(self) - LOGGER.debug("_load_db") def _add_db_listeners(self): diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index cb846b784..1149b9800 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -42,7 +42,6 @@ async def _load_db(self) -> None: - LOGGER.info("_load_db") database_file = self.config[zigpy_conf.CONF_DATABASE] if not database_file: return @@ -54,7 +53,6 @@ async def _load_db(self) -> None: def _add_db_listeners(self): - LOGGER.info("_add_db_listeners") if self._dblistener is None: return @@ -65,7 +63,6 @@ def _add_db_listeners(self): def _remove_db_listeners(self): - LOGGER.info("_remove_db_listeners") if self._dblistener is None: return @@ -176,15 +173,15 @@ async def shutdown(self) -> None: self._watchdog_task.cancel() # Stop periodic broadcasts for OTA - if self.ota: + if self.ota is not None: self.ota.stop_periodic_broadcasts() # Stop periodic backups - if self.backups: + if self.backups is not None: self.backups.stop_periodic_backups() # Stop periodic scans for topology - if self.topology: + if self.topology is not None: self.topology.stop_periodic_scans() try: @@ -194,7 +191,7 @@ async def shutdown(self) -> None: await asyncio.sleep( 1 ) - if self._dblistener: + if self._dblistener is not None: self._remove_db_listeners() try: diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index c2b763668..c92244191 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -165,29 +165,29 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, try: if radiomodule == "ezsp": - import bellows.config as conf + import bellows.config as radio_specific_conf from Classes.ZigpyTransport.AppBellows import App_bellows as App - config = ezsp_configuration_setup(self, conf, serialPort) + config = ezsp_configuration_setup(self, radio_specific_conf, serialPort) self.log.logging("TransportZigpy", "Status", "Started radio %s port: %s" %( radiomodule, serialPort)) elif radiomodule =="znp": - import zigpy_znp.config as conf + import zigpy_znp.config as radio_specific_conf from Classes.ZigpyTransport.AppZnp import App_znp as App - config = znp_configuration_setup(self, conf, serialPort) + config = znp_configuration_setup(self, radio_specific_conf, serialPort) self.log.logging("TransportZigpy", "Status", "Started radio znp port: %s" %(serialPort)) elif radiomodule =="deCONZ": - import zigpy_deconz.config as conf + import zigpy_deconz.config as radio_specific_conf from Classes.ZigpyTransport.AppDeconz import App_deconz as App - config = deconz_configuration_setup(self, conf, serialPort) + config = deconz_configuration_setup(self, radio_specific_conf, serialPort) self.log.logging("TransportZigpy", "Status", "Started radio deconz port: %s" %(serialPort)) @@ -199,19 +199,16 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, self.log.logging("TransportZigpy", "Error", "%s" %traceback.format_exc()) - optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel) + optional_configuration_setup(self, config, radio_specific_conf, set_extendedPanId, set_channel) try: - if radiomodule in ["znp", "deCONZ"]: + if radiomodule in ["znp", "deCONZ", "ezsp"]: self.app = App(config) - elif radiomodule == "ezsp": - self.app = App(conf.CONFIG_SCHEMA(config)) - else: self.log.logging( "TransportZigpy", "Error", "Wrong radiomode: %s" % (radiomodule), ) return - + except Exception as e: self.log.logging( "TransportZigpy", "Error", "Error while starting radio %s on port: %s - Error: %s" %( radiomodule, serialPort, e) ) return @@ -232,54 +229,67 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, self.log.logging( "TransportZigpy", "Debug", "Exiting co-rounting radio_start") -def ezsp_configuration_setup(self, conf, serialPort): +def ezsp_configuration_setup(self, bellows_conf, serialPort): config = { - conf.CONF_DEVICE: { "path": serialPort, "baudrate": 115200}, - conf.CONF_NWK: {}, - conf.CONF_EZSP_CONFIG: {}, + zigpy.config.CONF_DEVICE: { "path": serialPort, "baudrate": 115200}, + zigpy.config.CONF_NWK: {}, + bellows_conf.CONF_EZSP_CONFIG: {}, + zigpy.config.CONF_OTA: {}, "handle_unknown_devices": True, } if "BellowsNoMoreEndDeviceChildren" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["BellowsNoMoreEndDeviceChildren"]: self.log.logging("TransportZigpy", "Status", "Set The maximum number of end device children that Coordinater will support to 0") - config[conf.CONF_EZSP_CONFIG]["CONFIG_MAX_END_DEVICE_CHILDREN"] = 0 + config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_MAX_END_DEVICE_CHILDREN"] = 0 if self.pluginconf.pluginConf["TXpower_set"]: self.log.logging("TransportZigpy", "Status", "Enables boost power mode and the alternate transmitter output.") - config[conf.CONF_EZSP_CONFIG]["CONFIG_TX_POWER_MODE"] = 0x3 + config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_TX_POWER_MODE"] = 0x3 return config -def znp_configuration_setup(self, conf, serialPort): +def znp_configuration_setup(self, znp_conf, serialPort): config = { - conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, - conf.CONF_NWK: {}, - conf.CONF_ZNP_CONFIG: { }, + zigpy.config.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, + zigpy.config.CONF_NWK: {}, + znp_conf.CONF_ZNP_CONFIG: { }, + zigpy.config.CONF_OTA: {}, } if specific_endpoints(self): - config[ conf.CONF_ZNP_CONFIG][ "prefer_endpoint_1" ] = False + config[ znp_conf.CONF_ZNP_CONFIG][ "prefer_endpoint_1" ] = False if "TXpower_set" in self.pluginconf.pluginConf: - config[conf.CONF_ZNP_CONFIG]["tx_power"] = int(self.pluginconf.pluginConf["TXpower_set"]) + config[znp_conf.CONF_ZNP_CONFIG]["tx_power"] = int(self.pluginconf.pluginConf["TXpower_set"]) return config -def deconz_configuration_setup(self, conf, serialPort): +def deconz_configuration_setup(self, deconz_conf, serialPort): return { - conf.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, - conf.CONF_NWK: {}, - # zigpy.config.CONF_STARTUP_ENERGY_SCAN: False + zigpy.config.CONF_DEVICE: {"path": serialPort, "baudrate": 115200}, + zigpy.config.CONF_NWK: {}, + zigpy.config.CONF_OTA: {}, } def optional_configuration_setup(self, config, conf, set_extendedPanId, set_channel): + # In case we have to set the Extended PAN Id + if set_extendedPanId != 0: + config[conf.CONF_NWK][conf.CONF_NWK_EXTENDED_PAN_ID] = "%s" % ( t.EUI64(t.uint64_t(set_extendedPanId).serialize()) ) + + # In case we have to force the Channel + if set_channel != 0: + config[conf.CONF_NWK][conf.CONF_NWK_CHANNEL] = set_channel + # Enable or not Source Routing based on zigpySourceRouting setting config[zigpy.config.CONF_SOURCE_ROUTING] = bool( self.pluginconf.pluginConf["zigpySourceRouting"] ) - + + # Disable Zigpy OTA + config[zigpy.config.CONF_OTA][zigpy.config.CONF_OTA_ENABLED] = False + # Disable zigpy conf topo scan by default config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = False @@ -302,12 +312,6 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan else: config[zigpy.config.CONF_NWK_BACKUP_ENABLED] = False - if set_extendedPanId != 0: - config[conf.CONF_NWK][conf.CONF_NWK_EXTENDED_PAN_ID] = "%s" % ( t.EUI64(t.uint64_t(set_extendedPanId).serialize()) ) - - if set_channel != 0: - config[conf.CONF_NWK][conf.CONF_NWK_CHANNEL] = set_channel - # Do we do energy scan at startup. By default it is set to False. Plugin might override it in the case of low number of devices. if "EnergyScanAtStatup" in self.pluginconf.pluginConf and not self.pluginconf.pluginConf["EnergyScanAtStatup"]: config[zigpy.config.CONF_STARTUP_ENERGY_SCAN] = False From 9b9d5227454cbdd6afa14aad986f8162704a948d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 10 Apr 2024 11:24:02 +0200 Subject: [PATCH 205/301] Plugin wip-develop version 7.2.064 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 65c7593e9..ea96cb1b7 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.063"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.064"} \ No newline at end of file From 79b3155d2b5d8dcb92596c874c02a23fd0e70c20 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 12 Apr 2024 19:24:30 +0200 Subject: [PATCH 206/301] fix issue when ZLinky structutre is not initialized --- Modules/zlinky.py | 90 +++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 54 deletions(-) diff --git a/Modules/zlinky.py b/Modules/zlinky.py index 9fc23dff1..e0751aa94 100644 --- a/Modules/zlinky.py +++ b/Modules/zlinky.py @@ -205,43 +205,33 @@ def linky_mode( self, nwkid , protocol=False): return None -def get_linky_mode_from_ep(self, nwkid ): - if "Ep" not in self.ListOfDevices[ nwkid ]: - return None - if "01" not in self.ListOfDevices[ nwkid ]["Ep"]: - return None - if "ff66" not in self.ListOfDevices[ nwkid ]["Ep"]["01"]: - return None - if "0300" not in self.ListOfDevices[ nwkid ]["Ep"]["01"]["ff66"]: - return None - if self.ListOfDevices[ nwkid ]["Ep"]["01"]["ff66"]["0300"] not in ZLINKY_MODE: - return None - return self.ListOfDevices[ nwkid ]["Ep"]["01"]["ff66"]["0300"] - -def linky_device_conf(self, nwkid): - if 'ZLinky' not in self.ListOfDevices[ nwkid ]: - mode = get_linky_mode_from_ep(self, nwkid ) - # Let check if we have in the Cluster infos - if mode is None: - return "ZLinky_TIC" +def get_linky_mode_from_ep(self, nwkid): + ep = self.ListOfDevices.get(nwkid, {}).get("Ep", {}).get("01", {}).get("ff66", {}).get("0300") + return ep if ep in ZLINKY_MODE else None - self.log.logging( "Cluster", "Status", "linky_device_conf %s found 0xff66/0x0300: %s" %( nwkid, mode )) - # Fix ZLinky data structure - self.ListOfDevices[ nwkid ]['ZLinky']['PROTOCOL Linky'] = mode - return ZLINKY_MODE[ mode ]["Conf"] - - if 'PROTOCOL Linky' not in self.ListOfDevices[ nwkid ]['ZLinky']: - return "ZLinky_TIC" +def linky_device_conf(self, nwkid): + device = self.ListOfDevices.get(nwkid, {}) + zlinky_info = device.get('ZLinky', {}) + protocol_linky = zlinky_info.get('PROTOCOL Linky') + + if not protocol_linky: + mode = get_linky_mode_from_ep(self, nwkid) + if mode: + self.log.logging("Cluster", "Status", f"linky_device_conf {nwkid} found 0xff66/0x0300: {mode}") + zlinky_info['PROTOCOL Linky'] = mode + return ZLINKY_MODE[mode]["Conf"] + else: + return "ZLinky_TIC" - if self.ListOfDevices[ nwkid ]['ZLinky']['PROTOCOL Linky'] not in ZLINKY_MODE: + if protocol_linky not in ZLINKY_MODE: return "ZLinky_TIC" - self.log.logging( "Cluster", "Debug", "linky_device_conf %s found Protocol Linky: %s" %( nwkid, self.ListOfDevices[ nwkid ]['ZLinky']['PROTOCOL Linky'] )) + self.log.logging("Cluster", "Debug", f"linky_device_conf {nwkid} found Protocol Linky: {protocol_linky}") + return ZLINKY_MODE[protocol_linky]["Conf"] - return ZLINKY_MODE[ self.ListOfDevices[ nwkid ]['ZLinky']['PROTOCOL Linky'] ]["Conf"] - + def linky_upgrade_authorized( current_model, new_model ): return ( @@ -360,7 +350,7 @@ def decode_STEG(stge): except ValueError: return {} - attributes = { + STEG_ATTRIBUTES = { 'contact_sec': stge & 0x00000001, 'organe_coupure': (stge & 0x0000000E) >> 1, 'etat_cache_bornes': (stge & 0x00000010) >> 4, @@ -382,7 +372,7 @@ def decode_STEG(stge): } # Decode mapped values - mapped_attributes = { + STEG_ATTRIBUTES_MAPPING = { 'contact_sec': CONTACT_SEC, 'etat_cache_bornes': ETAT_CACHE_BORNES, 'mode_fonctionnement': FONCTION_PROD_CONSO, @@ -397,34 +387,26 @@ def decode_STEG(stge): } # Decode mapped values for applicable attributes - for attr, mapping in mapped_attributes.items(): - if attr in attributes and attributes[attr] in mapping: - attributes[attr] = mapping[attributes[attr]] + for attr, mapping in STEG_ATTRIBUTES_MAPPING.items(): + if attr in STEG_ATTRIBUTES and STEG_ATTRIBUTES[attr] in mapping: + STEG_ATTRIBUTES[attr] = mapping[STEG_ATTRIBUTES[attr]] - return attributes + return STEG_ATTRIBUTES -def zlinky_sum_all_indexes( self, nwkid ): +def zlinky_sum_all_indexes(self, nwkid): + zlinky_info = self.ListOfDevices.get(nwkid, {}).get("ZLinky", {}) + index_mid_info = zlinky_info.get("INDEX_MID", {}) - if "ZLinky" not in self.ListOfDevices[nwkid]: - return 0 - if "INDEX_MID" not in self.ListOfDevices[nwkid]["ZLinky"]: - return 0 - if "CompteurTotalisateur" not in self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"]: - return 0 + return index_mid_info.get("CompteurTotalisateur", 0) - return self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"]["CompteurTotalisateur"] def zlinky_totalisateur(self, nwkid, attribute, value): + zlinky_info = self.ListOfDevices.setdefault(nwkid, {}).setdefault("ZLinky", {}) + index_mid_info = zlinky_info.setdefault("INDEX_MID", {"CompteurTotalisateur": 0}) - if "ZLinky" not in self.ListOfDevices[nwkid]: - self.ListOfDevices[nwkid]["ZLinky"] = {} - if "INDEX_MID" not in self.ListOfDevices[nwkid]["ZLinky"]: - self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"] = {"CompteurTotalisateur": 0} - previous_index = 0 - if attribute in self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"]: - previous_index = self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"][ attribute ]["Compteur"] - + previous_index = index_mid_info.get(attribute, {}).get("Compteur", 0) increment = value - previous_index - self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"]["CompteurTotalisateur"] += increment - self.ListOfDevices[nwkid]["ZLinky"]["INDEX_MID"][ attribute ] = { "TimeStamp": time.time() , "Compteur": value} + + index_mid_info["CompteurTotalisateur"] += increment + index_mid_info[attribute] = {"TimeStamp": time.time(), "Compteur": value} From aa3b2771ade603152457d9879140e0c28645c38a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 12 Apr 2024 19:25:30 +0200 Subject: [PATCH 207/301] Allow to store Tuya Voltage per ep --- Modules/tuyaTS0601.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/tuyaTS0601.py b/Modules/tuyaTS0601.py index c83671bba..1c290b515 100644 --- a/Modules/tuyaTS0601.py +++ b/Modules/tuyaTS0601.py @@ -380,7 +380,7 @@ def ts0601_instant_power(self, Devices, nwkid, ep, value): def ts0601_voltage(self, Devices, nwkid, ep, value): self.log.logging( "Tuya0601", "Debug", "ts0601_voltage - Voltage %s %s %s" % (nwkid, ep, value), nwkid, ) MajDomoDevice(self, Devices, nwkid, ep, "0001", value) - store_tuya_attribute(self, nwkid, "Voltage", value) + store_tuya_attribute(self, nwkid, "Voltage_%s" %ep, value) def ts0601_trv7_system_mode(self, Devices, nwkid, ep, value): # Auto 0, Manual 1, Off 2 From 620a2eb1a714ad8a034f113bdc92c72468c4c331 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 12 Apr 2024 19:25:42 +0200 Subject: [PATCH 208/301] update --- ReleaseNotes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 187cd9bf1..ec52fba28 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -29,6 +29,9 @@ Release Numbering - [Technical] - Imporving debuging, and allow to select python module level - [Technical] - Do not Touch() and Lastseen so often. - [Technical] - Refactor few domoticz related functions. +- [Technical] - datetime.utcnow() deprecated, use a new way. +- [Technical] - disable OTA in zigpy radio libs. +- [Technical] - Several refactoring, code simplification - [WebUI] - New API to get the list of device settings parameters (/device-settings-help) - [WebUI] - Provides color status of device parameters sync. From caa6ea064e9f26a8c92ca32b4dbe529dce43f9e0 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sun, 14 Apr 2024 10:03:43 +0200 Subject: [PATCH 209/301] Cookie to manage the number of devices listed in Device Management (#1730) --- www/z4d/{12.7c65ce0f2e107a01.js => 12.9d3b53b1dced2927.js} | 2 +- www/z4d/317.388031fbd5f6515c.js | 1 + www/z4d/317.95ec4836cce099fe.js | 1 - www/z4d/{577.291f6dcdf5a2bbd5.js => 577.b613e50ce344a936.js} | 2 +- www/z4d/{837.657d2f41ff2a0f41.js => 837.e9d5b18d020927e4.js} | 2 +- www/z4d/{846.b75ced3ca2bc41c3.js => 846.e10721e2f1184a6d.js} | 2 +- www/z4d/index.html | 2 +- www/z4d/main.66cd2ebacafbbb03.js | 1 - www/z4d/main.db7703bbf8c2ef86.js | 1 + ...{runtime.48f94f53b806b2fe.js => runtime.848b3c2fbf7395f7.js} | 2 +- 10 files changed, 8 insertions(+), 8 deletions(-) rename www/z4d/{12.7c65ce0f2e107a01.js => 12.9d3b53b1dced2927.js} (70%) create mode 100644 www/z4d/317.388031fbd5f6515c.js delete mode 100644 www/z4d/317.95ec4836cce099fe.js rename www/z4d/{577.291f6dcdf5a2bbd5.js => 577.b613e50ce344a936.js} (69%) rename www/z4d/{837.657d2f41ff2a0f41.js => 837.e9d5b18d020927e4.js} (52%) rename www/z4d/{846.b75ced3ca2bc41c3.js => 846.e10721e2f1184a6d.js} (89%) delete mode 100644 www/z4d/main.66cd2ebacafbbb03.js create mode 100644 www/z4d/main.db7703bbf8c2ef86.js rename www/z4d/{runtime.48f94f53b806b2fe.js => runtime.848b3c2fbf7395f7.js} (59%) diff --git a/www/z4d/12.7c65ce0f2e107a01.js b/www/z4d/12.9d3b53b1dced2927.js similarity index 70% rename from www/z4d/12.7c65ce0f2e107a01.js rename to www/z4d/12.9d3b53b1dced2927.js index 8d355adbc..d46547041 100644 --- a/www/z4d/12.7c65ce0f2e107a01.js +++ b/www/z4d/12.9d3b53b1dced2927.js @@ -1 +1 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&n&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"device.byname.placeholder")))}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function $(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function S(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,$,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,S,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.title")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.text"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,3,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&n&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"device.byname.placeholder")))}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function $(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function S(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,$,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,S,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.title")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.text"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","device",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,3,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/317.388031fbd5f6515c.js b/www/z4d/317.388031fbd5f6515c.js new file mode 100644 index 000000000..a20d5d1cc --- /dev/null +++ b/www/z4d/317.388031fbd5f6515c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[317],{22317:(V,m,o)=>{o.r(m),o.d(m,{ManufacturerModule:()=>z});var h=o(93887),d=o(93331),u=o(38117);class _{IRCode;NwkId;constructor(l,n){this.IRCode=l,this.NwkId=n}}var e=o(54438),E=o(3366),g=o(45794),p=o(19664),F=o(89417),i=o(46247),I=o(5779),k=o(22242);const v=()=>["NwkId","Name","IEEE","Model","IRCode"],b=()=>[10,25,50];function T(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",13),e.EFF(2,"\n "),e.j41(3,"span",14),e.EFF(4,"\n "),e.nrm(5,"i",15),e.EFF(6,"\n "),e.j41(7,"input",16),e.nI1(8,"translate"),e.bIt("input",function(r){e.eBV(n),e.XpG();const s=e.sdS(21);return e.Njj(s.filterGlobal(r.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&t&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"manufacturer.casaia.placeholder")))}function R(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",17),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",18),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",19),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",20),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",21),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",22),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",23),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",24),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",25),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",26),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,5,"manufacturer.casaia.nwkid"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,7,"manufacturer.casaia.name"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,9,"manufacturer.casaia.ieee"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,11,"manufacturer.casaia.model"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,13,"manufacturer.casaia.ircode"),""))}function y(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function j(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function w(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",27),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,y,3,1,"ng-template",28),e.EFF(20,"\n "),e.DNE(21,j,3,1,"ng-template",29),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s()()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",n.NwkId,"\n "),e.R7$(3),e.SpI("\n ",n.Name,"\n "),e.R7$(3),e.SpI("\n ",n.IEEE,"\n "),e.R7$(3),e.SpI("\n ",n.Model,"\n "),e.R7$(2),e.Y8G("pEditableColumn",n.IRCode)}}let S=(()=>{class t{apiService;toastr;translate;rows;temp=[];hasEditing=!1;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.getCasaiaDevices()}updateIRCode(n,a){this.hasEditing=!0,this.rows.find(s=>s.NwkId===a).IRCode=n.target.value}updateCasaiaDevices(){const n=[];this.rows.forEach(a=>{n.push(new _(a.IRCode,a.NwkId))}),this.apiService.putCasiaIrcode(n).subscribe(()=>{this.hasEditing=!1,this.getCasaiaDevices(),this.toastr.success(this.translate.instant("api.global.succes.update.notify"))})}getCasaiaDevices(){this.apiService.getCasiaDevices().subscribe(n=>{this.rows=n,this.temp=[...this.rows]})}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-casaia"]],decls:36,vars:23,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","casaia",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],["pSortableColumn","NwkId"],["field","NwkId"],["pSortableColumn","Name"],["field","Name"],["pSortableColumn","IEEE"],["field","IEEE"],["pSortableColumn","Model"],["field","Model"],["pSortableColumn","IRCode",2,"width","8rem"],["field","IRCode"],["pEditableColumnField","IRCode",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"]],template:function(a,r){if(1&a){const s=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.j41(9,"button",5),e.nI1(10,"translate"),e.bIt("click",function(){return e.eBV(s),e.Njj(r.updateCasaiaDevices())}),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.nrm(15,"h5",7),e.nI1(16,"translate"),e.EFF(17,"\n "),e.j41(18,"div",8),e.EFF(19,"\n "),e.j41(20,"p-table",9,0),e.nI1(22,"translate"),e.EFF(23,"\n "),e.DNE(24,T,12,3,"ng-template",10),e.EFF(25,"\n "),e.DNE(26,R,34,15,"ng-template",11),e.EFF(27,"\n "),e.DNE(28,w,24,5,"ng-template",12),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n"),e.k0s(),e.EFF(35,"\n")}2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,13,"manufacturer.casaia.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(10,15,"manufacturer.casaia.validate.button")),e.Y8G("disabled",!r.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(16,17,"manufacturer.casaia.subtitle"),e.npT),e.R7$(5),e.FS9("currentPageReportTemplate",e.bMT(22,19,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(21,v))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(22,b))("value",r.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[F.me,F.BC,F.vS,p.Mm,i.XI,I.Ei,i.Tg,i.hp,i.c5,i.yc,k.S,p.D9]})}return t})();class M{key;value}var N=o(96354),f=o(60177),C=o(97013);const $=()=>[10,25,50];function D(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&t){const n=l.item;e.R7$(5),e.SpI(" : ",n.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",n.Nwkid,"")}}function P(t,l){if(1&t&&(e.j41(0,"p",12),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&t){const n=e.XpG();e.R7$(),e.SpI("\n ",e.bMT(2,1,"manufacturer.zlinky.".concat(n.deviceSelected.protocole)),"\n ")}}function G(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th"),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.key"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,4,"manufacturer.zlinky.value"),"\n "))}function x(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"td"),e.EFF(8),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.".concat(n.key)),"\n "),e.R7$(4),e.SpI("\n ",n.value,"\n ")}}function O(t,l){if(1&t&&(e.j41(0,"p-table",13,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,G,12,6,"ng-template",14),e.EFF(5,"\n "),e.DNE(6,x,10,4,"ng-template",15),e.EFF(7,"\n "),e.k0s()),2&t){const n=e.XpG();e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,$))("value",n.deviceSelected.ParametersForDisplay)("rows",10)("paginator",!0)("scrollable",!0)}}let X=(()=>{class t{apiService;toastr;translate;zlinkys$;deviceSelected;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.zlinkys$=this.apiService.getZlinky().pipe((0,N.T)(n=>(n.forEach(a=>{a.protocole="PROTOCOL_LINKY_"+a["PROTOCOL Linky"],a.ParametersForDisplay=[],a.Parameters.forEach(r=>{const s=new M;s.key=Object.keys(r)[0],s.value=Object.values(r)[0],a.ParametersForDisplay.push(s)})}),n)))}getConfiguration(n){this.deviceSelected=n}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-zlinky"]],decls:33,vars:17,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["bindLabel","ZDeviceName","appendTo","body",1,"w-25",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],["class","mt-3 mb-3 font-weight-bold",4,"ngIf"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","zlinky",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable",4,"ngIf"],[1,"mt-3","mb-3","font-weight-bold"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","zlinky",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"]],template:function(a,r){1&a&&(e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.nrm(12,"h5",6),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.bIt("change",function(c){return r.getConfiguration(c)})("clear",function(){return r.deviceSelected=null}),e.EFF(20,"\n "),e.DNE(21,D,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n\n "),e.DNE(24,P,3,3,"p",10),e.EFF(25,"\n\n "),e.DNE(26,O,8,11,"p-table",11),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n")),2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,9,"manufacturer.zlinky.header"),"\n "),e.R7$(5),e.Y8G("innerHTML",e.bMT(13,11,"manufacturer.zlinky.subtitle"),e.npT),e.R7$(5),e.FS9("placeholder",e.bMT(18,13,"manufacturer.zlinky.placeholder")),e.Y8G("items",e.bMT(19,15,r.zlinkys$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(7),e.Y8G("ngIf",r.deviceSelected),e.R7$(2),e.Y8G("ngIf",r.deviceSelected))},dependencies:[f.bT,C.vr,C.Uq,i.XI,I.Ei,f.Jj,p.D9]})}return t})();const L=[{path:"casaia",component:S,data:{title:(0,u.o6)("manufacturer.casaia")}},{path:"zlinky",component:X,data:{title:(0,u.o6)("manufacturer.zlinky")}}];let Z=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[d.iI.forChild(L),d.iI]})}return t})(),z=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[Z,h.G]})}return t})()}}]); \ No newline at end of file diff --git a/www/z4d/317.95ec4836cce099fe.js b/www/z4d/317.95ec4836cce099fe.js deleted file mode 100644 index 8b085e91e..000000000 --- a/www/z4d/317.95ec4836cce099fe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[317],{22317:(z,m,o)=>{o.r(m),o.d(m,{ManufacturerModule:()=>V});var h=o(93887),d=o(93331),u=o(38117);class _{IRCode;NwkId;constructor(l,n){this.IRCode=l,this.NwkId=n}}var e=o(54438),E=o(3366),g=o(45794),p=o(19664),F=o(89417),i=o(46247),I=o(5779),k=o(22242);const v=()=>["NwkId","Name","IEEE","Model","IRCode"],b=()=>[10,25,50];function T(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",13),e.EFF(2,"\n "),e.j41(3,"span",14),e.EFF(4,"\n "),e.nrm(5,"i",15),e.EFF(6,"\n "),e.j41(7,"input",16),e.nI1(8,"translate"),e.bIt("input",function(r){e.eBV(n),e.XpG();const s=e.sdS(21);return e.Njj(s.filterGlobal(r.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&t&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"manufacturer.casaia.placeholder")))}function R(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",17),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",18),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",19),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",20),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",21),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",22),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",23),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",24),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",25),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",26),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,5,"manufacturer.casaia.nwkid"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,7,"manufacturer.casaia.name"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,9,"manufacturer.casaia.ieee"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,11,"manufacturer.casaia.model"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,13,"manufacturer.casaia.ircode"),""))}function j(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function y(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function w(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",27),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,j,3,1,"ng-template",28),e.EFF(20,"\n "),e.DNE(21,y,3,1,"ng-template",29),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s()()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",n.NwkId,"\n "),e.R7$(3),e.SpI("\n ",n.Name,"\n "),e.R7$(3),e.SpI("\n ",n.IEEE,"\n "),e.R7$(3),e.SpI("\n ",n.Model,"\n "),e.R7$(2),e.Y8G("pEditableColumn",n.IRCode)}}let S=(()=>{class t{apiService;toastr;translate;rows;temp=[];hasEditing=!1;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.getCasaiaDevices()}updateIRCode(n,a){this.hasEditing=!0,this.rows.find(s=>s.NwkId===a).IRCode=n.target.value}updateCasaiaDevices(){const n=[];this.rows.forEach(a=>{n.push(new _(a.IRCode,a.NwkId))}),this.apiService.putCasiaIrcode(n).subscribe(()=>{this.hasEditing=!1,this.getCasaiaDevices(),this.toastr.success(this.translate.instant("api.global.succes.update.notify"))})}getCasaiaDevices(){this.apiService.getCasiaDevices().subscribe(n=>{this.rows=n,this.temp=[...this.rows]})}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-casaia"]],decls:36,vars:23,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","NwkId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],["pSortableColumn","NwkId"],["field","NwkId"],["pSortableColumn","Name"],["field","Name"],["pSortableColumn","IEEE"],["field","IEEE"],["pSortableColumn","Model"],["field","Model"],["pSortableColumn","IRCode",2,"width","8rem"],["field","IRCode"],["pEditableColumnField","IRCode",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"]],template:function(a,r){if(1&a){const s=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.j41(9,"button",5),e.nI1(10,"translate"),e.bIt("click",function(){return e.eBV(s),e.Njj(r.updateCasaiaDevices())}),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.nrm(15,"h5",7),e.nI1(16,"translate"),e.EFF(17,"\n "),e.j41(18,"div",8),e.EFF(19,"\n "),e.j41(20,"p-table",9,0),e.nI1(22,"translate"),e.EFF(23,"\n "),e.DNE(24,T,12,3,"ng-template",10),e.EFF(25,"\n "),e.DNE(26,R,34,15,"ng-template",11),e.EFF(27,"\n "),e.DNE(28,w,24,5,"ng-template",12),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n"),e.k0s(),e.EFF(35,"\n")}2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,13,"manufacturer.casaia.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(10,15,"manufacturer.casaia.validate.button")),e.Y8G("disabled",!r.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(16,17,"manufacturer.casaia.subtitle"),e.npT),e.R7$(5),e.FS9("currentPageReportTemplate",e.bMT(22,19,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(21,v))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(22,b))("value",r.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[F.me,F.BC,F.vS,p.Mm,i.XI,I.Ei,i.Tg,i.hp,i.c5,i.yc,k.S,p.D9]})}return t})();class M{key;value}var N=o(96354),f=o(60177),C=o(97013);const $=()=>[10,25,50];function D(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&t){const n=l.item;e.R7$(5),e.SpI(" : ",n.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",n.Nwkid,"")}}function P(t,l){if(1&t&&(e.j41(0,"p",12),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&t){const n=e.XpG();e.R7$(),e.SpI("\n ",e.bMT(2,1,"manufacturer.zlinky.".concat(n.deviceSelected.protocole)),"\n ")}}function G(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th"),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.key"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,4,"manufacturer.zlinky.value"),"\n "))}function x(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"td"),e.EFF(8),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.".concat(n.key)),"\n "),e.R7$(4),e.SpI("\n ",n.value,"\n ")}}function O(t,l){if(1&t&&(e.j41(0,"p-table",13,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,G,12,6,"ng-template",14),e.EFF(5,"\n "),e.DNE(6,x,10,4,"ng-template",15),e.EFF(7,"\n "),e.k0s()),2&t){const n=e.XpG();e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,$))("value",n.deviceSelected.ParametersForDisplay)("rows",10)("paginator",!0)("scrollable",!0)}}let X=(()=>{class t{apiService;toastr;translate;zlinkys$;deviceSelected;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.zlinkys$=this.apiService.getZlinky().pipe((0,N.T)(n=>(n.forEach(a=>{a.protocole="PROTOCOL_LINKY_"+a["PROTOCOL Linky"],a.ParametersForDisplay=[],a.Parameters.forEach(r=>{const s=new M;s.key=Object.keys(r)[0],s.value=Object.values(r)[0],a.ParametersForDisplay.push(s)})}),n)))}getConfiguration(n){this.deviceSelected=n}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-zlinky"]],decls:33,vars:17,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["bindLabel","ZDeviceName","appendTo","body",1,"w-25",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],["class","mt-3 mb-3 font-weight-bold",4,"ngIf"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable",4,"ngIf"],[1,"mt-3","mb-3","font-weight-bold"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"]],template:function(a,r){1&a&&(e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.nrm(12,"h5",6),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.bIt("change",function(c){return r.getConfiguration(c)})("clear",function(){return r.deviceSelected=null}),e.EFF(20,"\n "),e.DNE(21,D,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n\n "),e.DNE(24,P,3,3,"p",10),e.EFF(25,"\n\n "),e.DNE(26,O,8,11,"p-table",11),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n")),2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,9,"manufacturer.zlinky.header"),"\n "),e.R7$(5),e.Y8G("innerHTML",e.bMT(13,11,"manufacturer.zlinky.subtitle"),e.npT),e.R7$(5),e.FS9("placeholder",e.bMT(18,13,"manufacturer.zlinky.placeholder")),e.Y8G("items",e.bMT(19,15,r.zlinkys$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(7),e.Y8G("ngIf",r.deviceSelected),e.R7$(2),e.Y8G("ngIf",r.deviceSelected))},dependencies:[f.bT,C.vr,C.Uq,i.XI,I.Ei,f.Jj,p.D9]})}return t})();const L=[{path:"casaia",component:S,data:{title:(0,u.o6)("manufacturer.casaia")}},{path:"zlinky",component:X,data:{title:(0,u.o6)("manufacturer.zlinky")}}];let Z=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[d.iI.forChild(L),d.iI]})}return t})(),V=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[Z,h.G]})}return t})()}}]); \ No newline at end of file diff --git a/www/z4d/577.291f6dcdf5a2bbd5.js b/www/z4d/577.b613e50ce344a936.js similarity index 69% rename from www/z4d/577.291f6dcdf5a2bbd5.js rename to www/z4d/577.b613e50ce344a936.js index 0d6f6fa85..6069f50ce 100644 --- a/www/z4d/577.291f6dcdf5a2bbd5.js +++ b/www/z4d/577.b613e50ce344a936.js @@ -1 +1 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[577],{74577:(B,m,s)=>{s.r(m),s.d(m,{GroupModule:()=>X});var p=s(89417),h=s(93887),F=s(93331),g=s(38117),_=s(12298),f=s(28990),t=s(54438),G=s(88652),b=s(3366),u=s(19664),I=s(45794),j=s(38852),E=s(97013),c=s(46247),v=s(5779),k=s(22242);const C=["content"],N=()=>["_GroupId","GroupName"],T=()=>[10,25,50];function S(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",12),t.EFF(2,"\n "),t.j41(3,"span",13),t.EFF(4,"\n "),t.nrm(5,"i",14),t.EFF(6,"\n "),t.j41(7,"input",15),t.nI1(8,"translate"),t.bIt("input",function(o){t.eBV(e),t.XpG();const r=t.sdS(16);return t.Njj(r.filterGlobal(o.target.value,"contains"))}),t.k0s(),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"button",16),t.bIt("click",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.add())}),t.k0s(),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n ")}2&i&&(t.R7$(7),t.FS9("placeholder",t.bMT(8,1,"device.byname.placeholder")))}function w(i,l){1&i&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.nrm(3,"th"),t.EFF(4,"\n "),t.j41(5,"th",17),t.EFF(6),t.nI1(7,"translate"),t.nrm(8,"p-sortIcon",18),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"th",19),t.EFF(12),t.nI1(13,"translate"),t.nrm(14,"p-sortIcon",20),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.j41(17,"th"),t.EFF(18),t.nI1(19,"translate"),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th"),t.EFF(22),t.nI1(23,"translate"),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n ")),2&i&&(t.R7$(6),t.SpI("\n ",t.bMT(7,4,"group.create.shortid.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(13,6,"group.create.groupname.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(19,8,"group.create.devices.column"),"\n "),t.R7$(4),t.SpI("\n ",t.bMT(23,10,"group.create.coordinator.column"),"\n "))}function R(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function $(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function M(i,l){if(1&i&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Widget"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Ep"),t.k0s(),t.EFF(11),t.j41(12,"b"),t.EFF(13,"Id"),t.k0s(),t.EFF(14),t.j41(15,"b"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.k0s(),t.EFF(18,"\n ")),2&i){const e=l.item;t.R7$(5),t.SpI(" : ",e.Name," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" : ",e.Ep," -\n "),t.R7$(3),t.SpI(" : ",e._ID," -\n "),t.R7$(2),t.JRh(e.ZDeviceName)}}function V(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4,"\n "),t.j41(5,"i",21),t.nI1(6,"translate"),t.bIt("click",function(){const o=t.eBV(e).$implicit,r=t.XpG();return t.Njj(r.delete(o))}),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td",22),t.EFF(13,"\n "),t.j41(14,"p-cellEditor"),t.EFF(15,"\n "),t.DNE(16,R,3,1,"ng-template",23),t.EFF(17,"\n "),t.DNE(18,$,3,1,"ng-template",24),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.k0s(),t.EFF(21,"\n "),t.j41(22,"td"),t.EFF(23,"\n "),t.j41(24,"ng-select",25),t.mxI("ngModelChange",function(o){const r=t.eBV(e).$implicit;return t.DH7(r.devicesSelected,o)||(r.devicesSelected=o),t.Njj(o)}),t.bIt("change",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.isFormValid())}),t.EFF(25,"\n "),t.DNE(26,M,19,5,"ng-template",26),t.EFF(27,"\n "),t.k0s(),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.j41(30,"td"),t.EFF(31,"\n "),t.j41(32,"div",27),t.EFF(33,"\n "),t.j41(34,"input",28),t.bIt("click",function(o){const r=t.eBV(e).$implicit,a=t.XpG();return t.Njj(a.updateCoordinator(o,r))}),t.k0s(),t.EFF(35,"\n "),t.k0s(),t.EFF(36,"\n "),t.k0s()()}if(2&i){const e=l.$implicit,n=t.XpG();t.R7$(5),t.FS9("title",t.bMT(6,9,"group.create.delete.button")),t.R7$(5),t.SpI("\n ",e._GroupId,"\n "),t.R7$(2),t.Y8G("pEditableColumn",e.GroupName),t.R7$(12),t.Y8G("items",n.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),t.R50("ngModel",e.devicesSelected),t.R7$(10),t.Y8G("checked",e.coordinatorInside)}}function y(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",30),t.EFF(2,"\n "),t.nrm(3,"h4",31),t.EFF(4,"\n "),t.j41(5,"button",32),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",33),t.EFF(9,"\n "),t.j41(10,"div",34),t.EFF(11,"\n "),t.j41(12,"button",35),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n ")}}const x=[{path:"",component:(()=>{class i extends f.U{modalService;apiService;formBuilder;translate;toastr;headerService;content;form;rows=[];rowsTemp=[];devices;temp=[];hasEditing=!1;waiting=!1;constructor(e,n,o,r,a,d){super(),this.modalService=e,this.apiService=n,this.formBuilder=o,this.translate=r,this.toastr=a,this.headerService=d}ngOnInit(){this.apiService.getZGroupDevicesAvalaible().subscribe(e=>{const n=[];e&&e.length>0&&(e.forEach(o=>{o.WidgetList.forEach(r=>{if("0000"!==o._NwkId){const a=new _.ij;a.Ep=r.Ep,a.IEEE=r.IEEE,a.Name=r.Name,a.ZDeviceName=r.ZDeviceName,a._ID=r._ID,a._NwkId=o._NwkId,n.push(a)}})}),this.devices=[...n],this.getGroups())})}updateValue(e,n){this.hasEditing=!0,this.rows.find(r=>r._GroupId===n).GroupName=e.target.value}updateDevices(){this.rows.forEach(e=>{e.coordinatorInside&&(e.devicesSelected||(e.devicesSelected=[]),e.devicesSelected.push({Ep:"01",_NwkId:"0000"}))}),this.isFormValid&&this.apiService.putZGroups(this.rows).subscribe(()=>{this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getRestartNeeded().subscribe(e=>{1===e.RestartNeeded&&(this.headerService.setRestart(!0),this.open(this.content))}),this.waiting=!0,setTimeout(()=>{this.getGroups(),this.waiting=!1},1e3)})}delete(e){const n=this.rows.indexOf(e,0);n>-1&&(this.rows.splice(n,1),this.rows=[...this.rows],this.temp=[...this.rows])}add(){const e=new _.YJ;e.GroupName="",e.coordinatorInside=!1,this.rows.push(e),this.rows=[...this.rows],this.temp=[...this.rows]}updateCoordinator(e,n){n.coordinatorInside=e.currentTarget.checked}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then()}isFormValid(){let e=!0;return this.rows.forEach(n=>{n.GroupName&&(n.coordinatorInside||n.devicesSelected&&0!==n.devicesSelected.length)||(e=!1)}),!this.waiting&&e}getGroups(){this.apiService.getZGroups().subscribe(e=>{e&&e.length>0&&(e.forEach(n=>{const o=[];n.coordinatorInside=!1,n.Devices.forEach(r=>{if("0000"===r._NwkId)n.coordinatorInside=!0;else{const a=this.devices.find(d=>d._NwkId===r._NwkId&&d.Ep===r.Ep);null!=a&&o.push(a)}}),n.devicesSelected=o}),this.rows=[...e],this.temp=[...e])})}static \u0275fac=function(n){return new(n||i)(t.rXU(G.Bq),t.rXU(b.G),t.rXU(p.ok),t.rXU(u.c$),t.rXU(I.tw),t.rXU(j.d))};static \u0275cmp=t.VBU({type:i,selectors:[["app-group"]],viewQuery:function(n,o){if(1&n&&t.GBs(C,5),2&n){let r;t.mGM(r=t.lsd())&&(o.content=r.first)}},features:[t.Vt3],decls:32,vars:20,consts:[["dt1",""],["content",""],[1,"card"],[1,"card-header","fw-bold"],["translate","group.create.validate.button",1,"btn","btn-primary","float-end",3,"click","disabled"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_GroupId","responsiveLayout","scroll",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"d-flex","justify-content-between"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",1,"w-75",3,"input","placeholder"],["translate","group.create.add.button",1,"btn","btn-primary",3,"click"],["pSortableColumn","_GroupId",2,"width","8rem"],["field","_GroupId"],["pSortableColumn","GroupName",2,"width","10rem"],["field","GroupName"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],["pEditableColumnField","GroupName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["bindLabel","Name","placeholder","Choose device","appendTo","body",3,"ngModelChange","change","items","multiple","closeOnSelect","searchable","ngModel"],["ng-option-tmp",""],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"click","checked"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"],[1,"modal-header"],["id","modal-basic-title","translate","group.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","group.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","group.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(n,o){if(1&n){const r=t.RV6();t.j41(0,"div",2),t.EFF(1,"\n "),t.j41(2,"div",3),t.EFF(3),t.nI1(4,"translate"),t.j41(5,"button",4),t.bIt("click",function(){return t.eBV(r),t.Njj(o.updateDevices())}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",5),t.EFF(9,"\n "),t.nrm(10,"p",6),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",7),t.EFF(14,"\n "),t.j41(15,"p-table",8,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,S,14,3,"ng-template",9),t.EFF(20,"\n "),t.DNE(21,w,26,12,"ng-template",10),t.EFF(22,"\n "),t.DNE(23,V,37,11,"ng-template",11),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n\n "),t.DNE(28,y,15,0,"ng-template",null,1,t.C5r),t.EFF(30,"\n"),t.k0s(),t.EFF(31,"\n")}2&n&&(t.R7$(3),t.SpI("\n ",t.bMT(4,12,"group.create.header"),""),t.R7$(2),t.Y8G("disabled",!o.isFormValid()),t.R7$(5),t.Y8G("innerHTML",t.bMT(11,14,"group.create.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,16,"TOTAL")),t.Y8G("globalFilterFields",t.lJ4(18,N))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(19,T))("value",o.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.me,p.BC,p.vS,E.vr,E.Uq,u.Mm,c.XI,v.Ei,c.Tg,c.hp,c.c5,c.yc,k.S,u.D9]})}return i})(),data:{title:(0,g.o6)("group")}}];let D=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[F.iI.forChild(x),F.iI]})}return i})(),X=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[D,h.G,p.YN]})}return i})()}}]); \ No newline at end of file +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[577],{74577:(B,m,s)=>{s.r(m),s.d(m,{GroupModule:()=>X});var p=s(89417),h=s(93887),F=s(93331),g=s(38117),_=s(12298),f=s(28990),t=s(54438),G=s(88652),b=s(3366),d=s(19664),I=s(45794),j=s(38852),E=s(97013),c=s(46247),v=s(5779),k=s(22242);const C=["content"],N=()=>["_GroupId","GroupName"],T=()=>[10,25,50];function S(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",12),t.EFF(2,"\n "),t.j41(3,"span",13),t.EFF(4,"\n "),t.nrm(5,"i",14),t.EFF(6,"\n "),t.j41(7,"input",15),t.nI1(8,"translate"),t.bIt("input",function(o){t.eBV(e),t.XpG();const r=t.sdS(16);return t.Njj(r.filterGlobal(o.target.value,"contains"))}),t.k0s(),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"button",16),t.bIt("click",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.add())}),t.k0s(),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n ")}2&i&&(t.R7$(7),t.FS9("placeholder",t.bMT(8,1,"device.byname.placeholder")))}function w(i,l){1&i&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.nrm(3,"th"),t.EFF(4,"\n "),t.j41(5,"th",17),t.EFF(6),t.nI1(7,"translate"),t.nrm(8,"p-sortIcon",18),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"th",19),t.EFF(12),t.nI1(13,"translate"),t.nrm(14,"p-sortIcon",20),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.j41(17,"th"),t.EFF(18),t.nI1(19,"translate"),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th"),t.EFF(22),t.nI1(23,"translate"),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n ")),2&i&&(t.R7$(6),t.SpI("\n ",t.bMT(7,4,"group.create.shortid.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(13,6,"group.create.groupname.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(19,8,"group.create.devices.column"),"\n "),t.R7$(4),t.SpI("\n ",t.bMT(23,10,"group.create.coordinator.column"),"\n "))}function R(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function $(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function M(i,l){if(1&i&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Widget"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Ep"),t.k0s(),t.EFF(11),t.j41(12,"b"),t.EFF(13,"Id"),t.k0s(),t.EFF(14),t.j41(15,"b"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.k0s(),t.EFF(18,"\n ")),2&i){const e=l.item;t.R7$(5),t.SpI(" : ",e.Name," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" : ",e.Ep," -\n "),t.R7$(3),t.SpI(" : ",e._ID," -\n "),t.R7$(2),t.JRh(e.ZDeviceName)}}function y(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4,"\n "),t.j41(5,"i",21),t.nI1(6,"translate"),t.bIt("click",function(){const o=t.eBV(e).$implicit,r=t.XpG();return t.Njj(r.delete(o))}),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td",22),t.EFF(13,"\n "),t.j41(14,"p-cellEditor"),t.EFF(15,"\n "),t.DNE(16,R,3,1,"ng-template",23),t.EFF(17,"\n "),t.DNE(18,$,3,1,"ng-template",24),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.k0s(),t.EFF(21,"\n "),t.j41(22,"td"),t.EFF(23,"\n "),t.j41(24,"ng-select",25),t.mxI("ngModelChange",function(o){const r=t.eBV(e).$implicit;return t.DH7(r.devicesSelected,o)||(r.devicesSelected=o),t.Njj(o)}),t.bIt("change",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.isFormValid())}),t.EFF(25,"\n "),t.DNE(26,M,19,5,"ng-template",26),t.EFF(27,"\n "),t.k0s(),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.j41(30,"td"),t.EFF(31,"\n "),t.j41(32,"div",27),t.EFF(33,"\n "),t.j41(34,"input",28),t.bIt("click",function(o){const r=t.eBV(e).$implicit,a=t.XpG();return t.Njj(a.updateCoordinator(o,r))}),t.k0s(),t.EFF(35,"\n "),t.k0s(),t.EFF(36,"\n "),t.k0s()()}if(2&i){const e=l.$implicit,n=t.XpG();t.R7$(5),t.FS9("title",t.bMT(6,9,"group.create.delete.button")),t.R7$(5),t.SpI("\n ",e._GroupId,"\n "),t.R7$(2),t.Y8G("pEditableColumn",e.GroupName),t.R7$(12),t.Y8G("items",n.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),t.R50("ngModel",e.devicesSelected),t.R7$(10),t.Y8G("checked",e.coordinatorInside)}}function V(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",30),t.EFF(2,"\n "),t.nrm(3,"h4",31),t.EFF(4,"\n "),t.j41(5,"button",32),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",33),t.EFF(9,"\n "),t.j41(10,"div",34),t.EFF(11,"\n "),t.j41(12,"button",35),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n ")}}const x=[{path:"",component:(()=>{class i extends f.U{modalService;apiService;formBuilder;translate;toastr;headerService;content;form;rows=[];rowsTemp=[];devices;temp=[];hasEditing=!1;waiting=!1;constructor(e,n,o,r,a,u){super(),this.modalService=e,this.apiService=n,this.formBuilder=o,this.translate=r,this.toastr=a,this.headerService=u}ngOnInit(){this.apiService.getZGroupDevicesAvalaible().subscribe(e=>{const n=[];e&&e.length>0&&(e.forEach(o=>{o.WidgetList.forEach(r=>{if("0000"!==o._NwkId){const a=new _.ij;a.Ep=r.Ep,a.IEEE=r.IEEE,a.Name=r.Name,a.ZDeviceName=r.ZDeviceName,a._ID=r._ID,a._NwkId=o._NwkId,n.push(a)}})}),this.devices=[...n],this.getGroups())})}updateValue(e,n){this.hasEditing=!0,this.rows.find(r=>r._GroupId===n).GroupName=e.target.value}updateDevices(){this.rows.forEach(e=>{e.coordinatorInside&&(e.devicesSelected||(e.devicesSelected=[]),e.devicesSelected.push({Ep:"01",_NwkId:"0000"}))}),this.isFormValid&&this.apiService.putZGroups(this.rows).subscribe(()=>{this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getRestartNeeded().subscribe(e=>{1===e.RestartNeeded&&(this.headerService.setRestart(!0),this.open(this.content))}),this.waiting=!0,setTimeout(()=>{this.getGroups(),this.waiting=!1},1e3)})}delete(e){const n=this.rows.indexOf(e,0);n>-1&&(this.rows.splice(n,1),this.rows=[...this.rows],this.temp=[...this.rows])}add(){const e=new _.YJ;e.GroupName="",e.coordinatorInside=!1,this.rows.push(e),this.rows=[...this.rows],this.temp=[...this.rows]}updateCoordinator(e,n){n.coordinatorInside=e.currentTarget.checked}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then()}isFormValid(){let e=!0;return this.rows.forEach(n=>{n.GroupName&&(n.coordinatorInside||n.devicesSelected&&0!==n.devicesSelected.length)||(e=!1)}),!this.waiting&&e}getGroups(){this.apiService.getZGroups().subscribe(e=>{e&&e.length>0&&(e.forEach(n=>{const o=[];n.coordinatorInside=!1,n.Devices.forEach(r=>{if("0000"===r._NwkId)n.coordinatorInside=!0;else{const a=this.devices.find(u=>u._NwkId===r._NwkId&&u.Ep===r.Ep);null!=a&&o.push(a)}}),n.devicesSelected=o}),this.rows=[...e],this.temp=[...e])})}static \u0275fac=function(n){return new(n||i)(t.rXU(G.Bq),t.rXU(b.G),t.rXU(p.ok),t.rXU(d.c$),t.rXU(I.tw),t.rXU(j.d))};static \u0275cmp=t.VBU({type:i,selectors:[["app-group"]],viewQuery:function(n,o){if(1&n&&t.GBs(C,5),2&n){let r;t.mGM(r=t.lsd())&&(o.content=r.first)}},features:[t.Vt3],decls:32,vars:20,consts:[["dt1",""],["content",""],[1,"card"],[1,"card-header","fw-bold"],["translate","group.create.validate.button",1,"btn","btn-primary","float-end",3,"click","disabled"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_GroupId","responsiveLayout","scroll","stateStorage","local","stateKey","group",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"d-flex","justify-content-between"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",1,"w-75",3,"input","placeholder"],["translate","group.create.add.button",1,"btn","btn-primary",3,"click"],["pSortableColumn","_GroupId",2,"width","8rem"],["field","_GroupId"],["pSortableColumn","GroupName",2,"width","10rem"],["field","GroupName"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],["pEditableColumnField","GroupName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["bindLabel","Name","placeholder","Choose device","appendTo","body",3,"ngModelChange","change","items","multiple","closeOnSelect","searchable","ngModel"],["ng-option-tmp",""],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"click","checked"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"],[1,"modal-header"],["id","modal-basic-title","translate","group.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","group.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","group.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(n,o){if(1&n){const r=t.RV6();t.j41(0,"div",2),t.EFF(1,"\n "),t.j41(2,"div",3),t.EFF(3),t.nI1(4,"translate"),t.j41(5,"button",4),t.bIt("click",function(){return t.eBV(r),t.Njj(o.updateDevices())}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",5),t.EFF(9,"\n "),t.nrm(10,"p",6),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",7),t.EFF(14,"\n "),t.j41(15,"p-table",8,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,S,14,3,"ng-template",9),t.EFF(20,"\n "),t.DNE(21,w,26,12,"ng-template",10),t.EFF(22,"\n "),t.DNE(23,y,37,11,"ng-template",11),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n\n "),t.DNE(28,V,15,0,"ng-template",null,1,t.C5r),t.EFF(30,"\n"),t.k0s(),t.EFF(31,"\n")}2&n&&(t.R7$(3),t.SpI("\n ",t.bMT(4,12,"group.create.header"),""),t.R7$(2),t.Y8G("disabled",!o.isFormValid()),t.R7$(5),t.Y8G("innerHTML",t.bMT(11,14,"group.create.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,16,"TOTAL")),t.Y8G("globalFilterFields",t.lJ4(18,N))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(19,T))("value",o.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.me,p.BC,p.vS,E.vr,E.Uq,d.Mm,c.XI,v.Ei,c.Tg,c.hp,c.c5,c.yc,k.S,d.D9]})}return i})(),data:{title:(0,g.o6)("group")}}];let D=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[F.iI.forChild(x),F.iI]})}return i})(),X=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[D,h.G,p.YN]})}return i})()}}]); \ No newline at end of file diff --git a/www/z4d/837.657d2f41ff2a0f41.js b/www/z4d/837.e9d5b18d020927e4.js similarity index 52% rename from www/z4d/837.657d2f41ff2a0f41.js rename to www/z4d/837.e9d5b18d020927e4.js index fdb0f4a2d..3088d1750 100644 --- a/www/z4d/837.657d2f41ff2a0f41.js +++ b/www/z4d/837.e9d5b18d020927e4.js @@ -1 +1 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[837],{86837:(nt,_t,X)=>{"use strict";X.r(_t),X.d(_t,{NetworkModule:()=>xo});var ht=X(93887),et=X(91346),Q=X(12168),S=X(69820),K=X(38833),O=X(2501),I=X(55782),E=X(10467),t=X(54438),T=X(71985),N=X(43236),j=X(39974),P=X(54360),c=X(58750),m=X(41584);var f=X(88141),k=X(96354),n=X(33726),s=X(25558),d=X(7673),l=X(56977),g=X(84412),b=X(57786),p=X(23294),v=X(91986),D=X(983),r=X(70980);function u(o,F=!1){return(0,j.N)((e,i)=>{let a=0;e.subscribe((0,P._)(i,M=>{const x=o(M,a++);(x||F)&&i.next(M),!x&&i.complete()}))})}var C=X(30536),y=X(60177);let A;try{A=typeof Intl<"u"&&Intl.v8BreakIterator}catch{A=!1}let z=(()=>{class o{constructor(e){this._platformId=e,this.isBrowser=this._platformId?(0,y.UE)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!A)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(t.Agw))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var U=function(o){return o[o.NORMAL=0]="NORMAL",o[o.NEGATED=1]="NEGATED",o[o.INVERTED=2]="INVERTED",o}(U||{});let G;const gt=new t.nKC("cdk-dir-doc",{providedIn:"root",factory:function St(){return(0,t.WQX)(y.qQ)}}),dt=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let mt=(()=>{class o{constructor(e){this.value="ltr",this.change=new t.bkB,e&&(this.value=function ct(o){const F=o?.toLowerCase()||"";return"auto"===F&&typeof navigator<"u"&&navigator?.language?dt.test(navigator.language)?"rtl":"ltr":"rtl"===F?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(gt,8))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var kt=X(89079),Qt=X(21413),me=X(96697),ve=X(85412);const ke="function"==typeof Float32Array;function Zt(o,F){return 1-3*F+3*o}function Kt(o,F){return 3*F-6*o}function qt(o){return 3*o}function At(o,F,e){return((Zt(F,e)*o+Kt(F,e))*o+qt(F))*o}function Jt(o,F,e){return 3*Zt(F,e)*o*o+2*Kt(F,e)*o+qt(F)}function Fe(o){return o}function Me(o,F,e,i){if(!(0<=o&&o<=1&&0<=e&&e<=1))throw new Error("bezier x values must be in [0, 1] range");if(o===F&&e===i)return Fe;const a=ke?new Float32Array(11):new Array(11);for(let x=0;x<11;++x)a[x]=At(.1*x,o,e);return function(L){return 0===L?0:1===L?1:At(function M(x){let L=0,R=1;for(;10!==R&&a[R]<=x;++R)L+=.1;--R;const ut=L+(x-a[R])/(a[R+1]-a[R])*.1,wt=Jt(ut,o,e);return wt>=.001?function Ce(o,F,e,i){for(let a=0;a<4;++a){const M=Jt(F,e,i);if(0===M)return F;F-=(At(F,e,i)-o)/M}return F}(x,ut,o,e):0===wt?ut:function xe(o,F,e,i,a){let M,x,L=0;do{x=F+(e-F)/2,M=At(x,i,a)-o,M>0?e=x:F=x}while(Math.abs(M)>1e-7&&++L<10);return x}(x,L,L+.1,o,e)}(L),F,i)}}const Ee=new t.nKC("SMOOTH_SCROLL_OPTIONS");let Pe=(()=>{class o{get _w(){return this._document.defaultView}get _now(){return this._w.performance?.now?.bind(this._w.performance)||Date.now}constructor(e,i,a){this._document=e,this._platform=i,this.rtlScrollAxisType=function tt(){if("object"!=typeof document||!document)return U.NORMAL;if(null==G){const o=document.createElement("div"),F=o.style;o.dir="rtl",F.width="1px",F.overflow="auto",F.visibility="hidden",F.pointerEvents="none",F.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",o.appendChild(e),document.body.appendChild(o),G=U.NORMAL,0===o.scrollLeft&&(o.scrollLeft=1,G=0===o.scrollLeft?U.NEGATED:U.INVERTED),o.remove()}return G}(),this._onGoingScrolls=new Map,this._defaultOptions={duration:468,easing:{x1:.42,y1:0,x2:.58,y2:1},...a}}_scrollElement(e,i,a){e.scrollLeft=i,e.scrollTop=a}_getElement(e,i){return"string"==typeof e?(i||this._document).querySelector(e):function zt(o){return o instanceof t.aKT?o.nativeElement:o}(e)}_initSmoothScroll(e){return this._onGoingScrolls.has(e)&&this._onGoingScrolls.get(e).next(),this._onGoingScrolls.set(e,new Qt.B).get(e)}_isFinished(e,i,a){return e.currentX!==e.x||e.currentY!==e.y||(i.next(),a(),!1)}_interrupted(e,i){return(0,b.h)((0,n.R)(e,"wheel",{passive:!0,capture:!0}),(0,n.R)(e,"touchmove",{passive:!0,capture:!0}),i).pipe((0,me.s)(1))}_destroy(e,i){i.complete(),this._onGoingScrolls.delete(e)}_step(e){return new T.c(i=>{let a=(this._now()-e.startTime)/e.duration;a=a>1?1:a;const M=e.easing(a);e.currentX=e.startX+(e.x-e.startX)*M,e.currentY=e.startY+(e.y-e.startY)*M,this._scrollElement(e.scrollable,e.currentX,e.currentY),C.X.schedule(()=>i.next(e))})}_applyScrollToOptions(e,i){if(!i.duration)return this._scrollElement(e,i.left,i.top),Promise.resolve();const a=this._initSmoothScroll(e),M={scrollable:e,startTime:this._now(),startX:e.scrollLeft,startY:e.scrollTop,x:null==i.left?e.scrollLeft:~~i.left,y:null==i.top?e.scrollTop:~~i.top,duration:i.duration,easing:Me(i.easing.x1,i.easing.y1,i.easing.x2,i.easing.y2)};return new Promise(x=>{(0,d.of)(null).pipe(function be(o,F=1/0,e){return F=(F||0)<1?1/0:F,(0,j.N)((i,a)=>(0,ve.h)(i,a,o,F,void 0,!0,e))}(()=>this._step(M).pipe(u(L=>this._isFinished(L,a,x)))),(0,l.Q)(this._interrupted(e,a)),(0,r.j)(()=>this._destroy(e,a))).subscribe()})}scrollTo(e,i){if((0,y.UE)(this._platform)){const a=this._getElement(e),M="rtl"===getComputedStyle(a).direction,x={...this._defaultOptions,...i,left:null==i.left?M?i.end:i.start:i.left,right:null==i.right?M?i.start:i.end:i.right};return null!=x.bottom&&(x.top=a.scrollHeight-a.clientHeight-x.bottom),M&&this.rtlScrollAxisType!==U.NORMAL?(null!=x.left&&(x.right=a.scrollWidth-a.clientWidth-x.left),this.rtlScrollAxisType===U.INVERTED?x.left=x.right:this.rtlScrollAxisType===U.NEGATED&&(x.left=x.right?-x.right:x.right)):null!=x.right&&(x.left=a.scrollWidth-a.clientWidth-x.right),this._applyScrollToOptions(a,x)}return Promise.resolve()}scrollToElement(e,i,a={}){const M=this._getElement(e),x=this._getElement(i,M),L={...a,left:x.offsetLeft+(a.left||0),top:x.offsetTop+(a.top||0)};return x?this.scrollTo(M,L):Promise.resolve()}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(y.qQ),t.KVO(t.Agw),t.KVO(Ee,8))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();const Ne=["scrollbarButton",""];function Oe(o,F){if(1&o&&t.nrm(0,"button",5)(1,"button",6),2&o){const e=t.XpG();t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,""),t.R7$(),t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,"")}}function Te(o,F){if(1&o&&t.nrm(0,"button",5)(1,"button",6),2&o){const e=t.XpG();t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,""),t.R7$(),t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,"")}}function Ie(o,F){1&o&&t.nrm(0,"scrollbar-y")}function Le(o,F){1&o&&t.nrm(0,"scrollbar-x")}const je=["contentWrapper"],Re=["*"];let ze=(()=>{class o{constructor(){this.nativeElement=(0,t.WQX)(t.aKT).nativeElement}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollViewport",""]],standalone:!0})}return o})();var It=function(o){return o.AfterInit="AfterInit",o.Resized="ResizeObserver",o}(It||{});const te=new t.nKC("NG_SCROLLBAR_OPTIONS"),ee=new t.nKC("NG_SCROLLBAR_POLYFILL");function oe({element:o,contentWrapper:F,throttleDuration:e}){let a,i=It.AfterInit;const M=new T.c(x=>(a=new ResizeObserver(()=>{x.next(i),i=It.Resized}),a.observe(o),F&&a.observe(F),()=>{a?.disconnect()}));return e?M.pipe(function _(o,F=N.E,e){const i=(0,m.O)(o,F);return function h(o,F){return(0,j.N)((e,i)=>{const{leading:a=!0,trailing:M=!1}=F??{};let x=!1,L=null,R=null,W=!1;const yt=()=>{R?.unsubscribe(),R=null,M&&(ge(),W&&i.complete())},ut=()=>{R=null,W&&i.complete()},wt=Mt=>R=(0,c.Tg)(o(Mt)).subscribe((0,P._)(i,yt,ut)),ge=()=>{if(x){x=!1;const Mt=L;L=null,i.next(Mt),!W&&wt(Mt)}};e.subscribe((0,P._)(i,Mt=>{x=!0,L=Mt,(!R||R.closed)&&(a?ge():wt(Mt))},()=>{W=!0,(!(M&&x&&R)||R.closed)&&i.complete()}))})}(()=>i,e)}(e,null,{leading:!0,trailing:!0})):M}function Yt(o){return(0,f.M)(()=>o.onselectstart=()=>!1)}function Wt(o){return(0,f.M)(()=>o.onselectstart=null)}function Nt(){return(0,f.M)(o=>{o.preventDefault(),o.stopPropagation()})}var Ut=function(o){return o.Viewport="ng-scroll-viewport",o.Content="ng-scroll-content",o}(Ut||{});class Be{constructor(){this.initialized=(0,t.vPA)(!1)}get offsetHeight(){return this.nativeElement.getBoundingClientRect().height}get offsetWidth(){return this.nativeElement.getBoundingClientRect().width}get scrollTop(){return this.nativeElement.scrollTop}get scrollLeft(){return this.nativeElement.scrollLeft}get contentHeight(){return this.contentWrapperElement.getBoundingClientRect().height}get contentWidth(){return this.contentWrapperElement.getBoundingClientRect().width}get scrollMaxX(){return this.contentWidth-this.offsetWidth}get scrollMaxY(){return this.contentHeight-this.offsetHeight}init(F,e,i){F.classList.add(Ut.Viewport),this.nativeElement=F,e.classList.add(Ut.Content),i?(i.style.position="relative",this.contentWrapperElement=i):this.contentWrapperElement=e,this.initialized.set(!0)}scrollYTo(F){this.nativeElement.scrollTop=F}scrollXTo(F){this.nativeElement.scrollLeft=F}}const Lt=new t.nKC("NG_SCROLLBAR"),re={trackClass:"",thumbClass:"",buttonClass:"",orientation:"auto",appearance:"native",visibility:"native",position:"native",trackScrollDuration:50,sensorThrottleTime:0,disableSensor:!1,disableInteraction:!1,buttons:!1};let Ae=(()=>{class o{constructor(){this.injectedOptions=(0,t.WQX)(te,{optional:!0}),this.options=this.injectedOptions?{...re,...this.injectedOptions}:re,this.zone=(0,t.WQX)(t.SKi),this.platform=(0,t.WQX)(z),this.injector=(0,t.WQX)(t.zZn),this.isMobile=this.platform.IOS||this.platform.ANDROID,this.dir=(0,t.WQX)(mt),this.smoothScroll=(0,t.WQX)(Pe),this.nativeElement=(0,t.WQX)(t.aKT).nativeElement,this.dragging=(0,t.vPA)("none"),this.orientation=(0,t.hFB)(this.options.orientation),this.visibility=(0,t.hFB)(this.options.visibility),this.buttons=(0,t.hFB)(this.options.buttons,{transform:t.L39}),this.disableInteraction=(0,t.hFB)(this.options.disableInteraction,{transform:t.L39}),this.disableSensor=(0,t.hFB)(this.options.disableSensor,{transform:t.L39}),this.sensorThrottleTime=(0,t.hFB)(this.options.sensorThrottleTime,{transform:t.Udg}),this.viewportDimension=(0,t.vPA)({contentHeight:0,contentWidth:0,offsetHeight:0,offsetWidth:0}),this.state=(0,t.EWP)(()=>{let e=!1,i=!1,a=!1,M=!1;const x=this.orientation(),L=this.visibility(),R=this.viewportDimension();return("auto"===x||"vertical"===x)&&(a=R.contentHeight>R.offsetHeight,e="visible"===L||a),("auto"===x||"horizontal"===x)&&(M=R.contentWidth>R.offsetWidth,i="visible"===L||M),{verticalUsed:e,horizontalUsed:i,isVerticallyScrollable:a,isHorizontallyScrollable:M}}),this.isVerticallyScrollable=(0,t.EWP)(()=>this.state().isVerticallyScrollable),this.isHorizontallyScrollable=(0,t.EWP)(()=>this.state().isHorizontallyScrollable),this.verticalUsed=(0,t.EWP)(()=>this.state().verticalUsed),this.horizontalUsed=(0,t.EWP)(()=>this.state().horizontalUsed),this.trackScrollDuration=this.options.trackScrollDuration,this.appearance=this.options.appearance,this.position=this.options.position,this.trackClass=this.options.trackClass,this.thumbClass=this.options.thumbClass,this.buttonClass=this.options.thumbClass,this.afterInit=new t.bkB,this.afterUpdate=new t.bkB,this.viewport=new Be}ngOnInit(){(0,t.N4e)(this.injector,()=>{this.direction=(0,kt.ot)(this.dir.change.pipe((0,k.T)(()=>this.dir.value)),{initialValue:this.dir.value}),(0,t.QZP)(e=>{this.disableSensor()?this.sizeChangeSub?.unsubscribe():this.platform.isBrowser&&this.viewport.initialized()&&(this.sizeChangeSub?.unsubscribe(),this.zone.runOutsideAngular(()=>{this.sizeChangeSub=oe({element:this.viewport.nativeElement,contentWrapper:this.viewport.contentWrapperElement,throttleDuration:this.sensorThrottleTime()}).pipe((0,f.M)(i=>this.update(i))).subscribe()})),e(()=>this.sizeChangeSub?.unsubscribe())})})}ngAfterViewInit(){this.platform.isBrowser&&this.disableSensor()&&requestAnimationFrame(()=>{this.update(It.AfterInit)})}update(e){this.updateCSSVariables(),this.zone.run(()=>{this.viewportDimension.set({contentHeight:this.viewport.contentHeight,contentWidth:this.viewport.contentWidth,offsetHeight:this.viewport.offsetHeight,offsetWidth:this.viewport.offsetWidth}),e===It.AfterInit?this.afterInit.emit():this.afterUpdate.emit()})}scrollTo(e){return this.smoothScroll.scrollTo(this.viewport.nativeElement,e)}scrollToElement(e,i){return this.smoothScroll.scrollToElement(this.viewport.nativeElement,e,i)}updateCSSVariables(){this.nativeElement.style.setProperty("--content-height",`${this.viewport.contentHeight}`),this.nativeElement.style.setProperty("--content-width",`${this.viewport.contentWidth}`),this.nativeElement.style.setProperty("--viewport-height",`${this.viewport.offsetHeight}`),this.nativeElement.style.setProperty("--viewport-width",`${this.viewport.offsetWidth}`)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,hostVars:14,hostBindings:function(i,a){2&i&&(t.BMQ("verticalUsed",a.verticalUsed())("horizontalUsed",a.horizontalUsed())("isVerticallyScrollable",a.isVerticallyScrollable())("isHorizontallyScrollable",a.isHorizontallyScrollable())("mobile",a.isMobile)("dir",a.direction())("position",a.position)("dragging",a.dragging())("appearance",a.appearance)("visibility",a.visibility())("orientation",a.orientation())("disableInteraction",a.disableInteraction()),t.AVh("ng-scrollbar",!0))},inputs:{orientation:[t.Mj6.SignalBased,"orientation"],visibility:[t.Mj6.SignalBased,"visibility"],buttons:[t.Mj6.SignalBased,"buttons"],disableInteraction:[t.Mj6.SignalBased,"disableInteraction"],disableSensor:[t.Mj6.SignalBased,"disableSensor"],sensorThrottleTime:[t.Mj6.SignalBased,"sensorThrottleTime"],trackScrollDuration:[t.Mj6.HasDecoratorInputTransform,"trackScrollDuration","trackScrollDuration",t.Udg],appearance:"appearance",position:"position",trackClass:"trackClass",thumbClass:"thumbClass",buttonClass:"buttonClass"},outputs:{afterInit:"afterInit",afterUpdate:"afterUpdate"},features:[t.Jv_([{provide:Lt,useExisting:o}]),t.GFd]})}return o})(),ie=(()=>{class o{constructor(){this.isBrowser=(0,y.UE)((0,t.WQX)(t.Agw)),this._polyfillUrl=(0,t.WQX)(ee,{optional:!0})||"https://flackr.github.io/scroll-timeline/dist/scroll-timeline.js",this.document=(0,t.WQX)(y.qQ),this.window=this.document.defaultView,this.scrollTimelinePolyfill=(0,t.vPA)(null),this.isBrowser&&(!this.window.ScrollTimeline||!CSS.supports("animation-timeline","scroll()"))&&this.initPolyfill()}initPolyfill(){var e=this;return(0,E.A)(function*(){try{const i=e.document.createElement("script");i.src=e._polyfillUrl,yield new Promise((a,M)=>{i.onload=a,i.onerror=M,e.document.head.appendChild(i)}),e.window.ScrollTimeline?e.scrollTimelinePolyfill.set(e.window.ScrollTimeline):console.error("[NgScrollbar]: ScrollTimeline is not attached to the window object.")}catch(i){console.error("[NgScrollbar]: Error loading ScrollTimeline script:",i)}})()}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();const Gt=new t.nKC("SCROLLBAR_CONTROL");let se=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o})}return o})(),Vt=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt),this.control=(0,t.WQX)(Gt),this.document=(0,t.WQX)(y.qQ),this.zone=(0,t.WQX)(t.SKi),this.nativeElement=(0,t.WQX)(t.aKT).nativeElement,(0,t.QZP)(e=>{this.cmp.disableInteraction()?this._pointerEventsSub?.unsubscribe():this.zone.runOutsideAngular(()=>{this._pointerEventsSub=this.pointerEvents.subscribe()}),e(()=>this._pointerEventsSub?.unsubscribe())})}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o})}return o})(),jt=(()=>{class o extends Vt{get trackMax(){return this.track.size-this.size}get clientRect(){return this.nativeElement.getBoundingClientRect()}get pointerEvents(){return(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document),(0,s.n)(e=>{let i,a;const M=(0,d.of)(e).pipe((0,f.M)(()=>{i=this.trackMax,a=this.control.viewportScrollMax,this.setDragging(this.control.axis)})),x=(0,n.R)(this.document,"pointermove").pipe(Nt()),L=(0,n.R)(this.document,"pointerup",{capture:!0}).pipe(Nt(),Wt(this.document),(0,f.M)(()=>this.setDragging("none")));return M.pipe((0,k.T)(R=>R[this.control.clientProperty]),(0,k.T)(R=>R-this.dragStartOffset),(0,s.n)(R=>x.pipe((0,k.T)(W=>W[this.control.clientProperty]),(0,k.T)(W=>W-this.track.offset),(0,k.T)(W=>a*(W-R)/i),(0,f.M)(W=>this.control.instantScrollTo(W,a)),(0,l.Q)(L))))}))}constructor(){(0,t.QZP)(()=>{const e=this.manager.scrollTimelinePolyfill();e&&!this._animation&&(this._animation=function Ye(o,F,e,i){return F.animate({translate:["var(--_scrollbar-thumb-transform-from)","var(--_scrollbar-thumb-transform-to)"]},{fill:"both",easing:"linear",timeline:new o({source:e,axis:i})})}(e,this.nativeElement,this.cmp.viewport.nativeElement,this.control.axis))}),super(),this.manager=(0,t.WQX)(ie),this.track=(0,t.WQX)(Rt)}setDragging(e){this.zone.run(()=>this.cmp.dragging.set(e))}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,features:[t.Vt3]})}return o})(),Rt=(()=>{class o extends Vt{get clientRect(){return this.nativeElement.getBoundingClientRect()}get pointerEvents(){const e=(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document)),i=(0,n.R)(this.document,"pointerup",{passive:!0}).pipe(Wt(this.document)),a=(0,n.R)(this.nativeElement,"pointermove",{passive:!0}).pipe((0,k.T)(L=>(this.currMousePosition=L[this.control.clientProperty],!0))),M=(0,n.R)(this.nativeElement,"pointerout",{passive:!0}).pipe((0,k.T)(()=>!1)),x=new g.t(!0);return e.pipe((0,s.n)(L=>((0,b.h)(a,M).pipe((0,p.F)(),(0,f.M)(R=>x.next(R)),(0,l.Q)(i)).subscribe(),(0,n.R)(this.thumb.nativeElement,"pointermove").pipe(Nt(),(0,l.Q)(i)).subscribe(),this.onTrackFirstClick(L).pipe((0,v.c)(200),(0,s.n)(()=>x.pipe((0,s.n)(R=>{const W=this.getScrollDirection(this.currMousePosition);return R&&this.scrollDirection===W?this.onTrackOngoingMousedown():D.w}),(0,r.j)(()=>{x.next(!0)}))),(0,l.Q)(i)))))}constructor(){(0,t.QZP)(e=>{this.cmp.disableSensor()?(this.update(),this.sizeChangeSub?.unsubscribe()):this.zone.runOutsideAngular(()=>{this.sizeChangeSub=oe({element:this.nativeElement,throttleDuration:this.cmp.sensorThrottleTime()}).pipe((0,f.M)(()=>this.update())).subscribe()}),e(()=>this.sizeChangeSub?.unsubscribe())}),super()}update(){this.cmp.nativeElement.style.setProperty(this.cssLengthProperty,`${this.size}`)}onTrackFirstClick(e){let i;if(this.currMousePosition=e[this.control.clientProperty],this.scrollDirection=this.getScrollDirection(this.currMousePosition),this.scrollMax=this.control.viewportScrollMax,"forward"===this.scrollDirection){const a=this.getScrollForwardIncrement();i=a>=this.scrollMax?this.scrollMax:a}else{const a=this.getScrollBackwardIncrement();i=a<=0?0:a}return this.scrollTo(i)}onTrackOngoingMousedown(){let e,i,a;({position:e,nextPosition:i,endPosition:a}="forward"===this.scrollDirection?this.getOnGoingScrollForward():this.getOnGoingScrollBackward());const M=this.isFinalStep(e);return this.scrollTo(M?a:i).pipe(u(()=>!M),(0,s.n)(()=>this.onTrackOngoingMousedown()))}getCurrPosition(e){return"forward"===this.scrollDirection?Math.abs(e):Math.abs(e+this.thumb.size-this.viewportScrollSize)}isFinalStep(e){const i=this.viewportScrollSize-this.thumb.size-this.getCurrPosition(e);return 0===Math.floor(i/this.viewportSize)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,contentQueries:function(i,a,M){if(1&i&&t.wni(M,jt,5),2&i){let x;t.mGM(x=t.lsd())&&(a.thumb=x.first)}},features:[t.Vt3]})}return o})(),We=(()=>{class o extends Rt{constructor(){super(...arguments),this.cssLengthProperty="--track-x-length"}get offset(){return this.clientRect.left}get size(){return this.clientRect.width}get viewportScrollSize(){return this.cmp.viewport.contentWidth}get viewportSize(){return this.cmp.viewport.offsetWidth}getScrollDirection(e){return"rtl"===this.cmp.direction()?e-this.thumb.offset<0?"forward":"backward":e-this.thumb.offset>0?"forward":"backward"}scrollTo(e){return(0,c.Sx)(this.cmp.scrollTo({left:e,duration:this.cmp.trackScrollDuration}))}getScrollForwardIncrement(){return"rtl"===this.cmp.direction()?this.scrollMax- -(this.control.viewportScrollOffset-this.viewportSize):this.control.viewportScrollOffset+this.viewportSize}getScrollBackwardIncrement(){return"rtl"===this.cmp.direction()?this.scrollMax- -(this.control.viewportScrollOffset+this.viewportSize):this.control.viewportScrollOffset-this.viewportSize}getOnGoingScrollForward(){if("rtl"===this.cmp.direction()){const i=this.control.viewportScrollOffset-this.viewportSize;return{position:i,nextPosition:this.scrollMax+i,endPosition:0}}const e=this.control.viewportScrollOffset+this.viewportSize;return{position:e,nextPosition:e,endPosition:this.scrollMax}}getOnGoingScrollBackward(){if("rtl"===this.cmp.direction()){const i=this.control.viewportScrollOffset+this.viewportSize;return{position:i,nextPosition:this.scrollMax+i,endPosition:this.scrollMax}}const e=this.control.viewportScrollOffset-this.viewportSize;return{position:e,nextPosition:e,endPosition:0}}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarTrackX",""]],standalone:!0,features:[t.Jv_([{provide:Rt,useExisting:o}]),t.Vt3]})}return o})(),Ue=(()=>{class o extends Rt{constructor(){super(...arguments),this.cssLengthProperty="--track-y-length"}get offset(){return this.clientRect.top}get size(){return this.clientRect.height}get viewportScrollSize(){return this.cmp.viewport.contentHeight}get viewportSize(){return this.cmp.viewport.offsetHeight}getScrollDirection(e){return e-this.thumb.offset>0?"forward":"backward"}scrollTo(e){return(0,c.Sx)(this.cmp.scrollTo({top:e,duration:this.cmp.trackScrollDuration}))}getScrollForwardIncrement(){return this.control.viewportScrollOffset+this.viewportSize}getScrollBackwardIncrement(){return this.control.viewportScrollOffset-this.viewportSize}getOnGoingScrollForward(){const e=this.control.viewportScrollOffset+this.viewportSize;return{position:e,nextPosition:e,endPosition:this.scrollMax}}getOnGoingScrollBackward(){const e=this.control.viewportScrollOffset-this.viewportSize;return{position:e,nextPosition:e,endPosition:0}}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarTrackY",""]],standalone:!0,features:[t.Jv_([{provide:Rt,useExisting:o}]),t.Vt3]})}return o})(),Ge=(()=>{class o extends jt{get offset(){return this.clientRect.left}get size(){return this.clientRect.width}get dragStartOffset(){return this.offset+this.document.defaultView.scrollX}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarThumbX",""]],standalone:!0,features:[t.Jv_([{provide:jt,useExisting:o}]),t.Vt3]})}return o})(),Ve=(()=>{class o extends jt{get offset(){return this.clientRect.top}get size(){return this.clientRect.height}get dragStartOffset(){return this.offset+this.document.defaultView.scrollY}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarThumbY",""]],standalone:!0,features:[t.Jv_([{provide:jt,useExisting:o}]),t.Vt3]})}return o})(),ne=(()=>{class o extends Vt{constructor(){super(...arguments),this.injector=(0,t.WQX)(t.zZn),this.afterFirstClickDelay=120,this.firstClickDuration=100,this.scrollBy=50,this.onGoingScrollBy=12,this.canScrollFunc={forward:(e,i)=>Math.abs(e)Math.abs(e)>0},this.scrollStepFunc={forward:(e,i)=>i+e,backward:(e,i)=>i-e},this.horizontalScrollStepFunc={rtl:{forward:(e,i,a)=>a+i-e,backward:(e,i,a)=>a+i+e},ltr:this.scrollStepFunc}}get pointerEvents(){const e=(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document)),i=(0,n.R)(this.document,"pointerup",{passive:!0}).pipe(Wt(this.document)),a=(0,n.R)(this.nativeElement,"pointerleave",{passive:!0}),M=(0,b.h)(i,a);return e.pipe((0,s.n)(()=>this.firstScrollStep().pipe((0,v.c)(this.afterFirstClickDelay),(0,s.n)(()=>this.onOngoingPointerdown()),(0,l.Q)(M))))}ngOnInit(){this.canScroll=this.canScrollFunc[this.scrollDirection],"x"===this.control.axis?(0,t.N4e)(this.injector,()=>{(0,t.QZP)(()=>{const e=this.cmp.direction();this.nextStep=this.horizontalScrollStepFunc[e][this.scrollDirection]})}):this.nextStep=this.scrollStepFunc[this.scrollDirection]}firstScrollStep(){const e=this.nextStep(this.scrollBy,this.control.viewportScrollOffset,this.control.viewportScrollMax);return this.control.scrollTo(e,this.firstClickDuration)}onGoingScrollStep(){const e=this.control.viewportScrollMax,i=this.nextStep(this.onGoingScrollBy,this.control.viewportScrollOffset,e);this.control.instantScrollTo(i,e)}onOngoingPointerdown(){return function w(o=0,F=N.E){return o<0&&(o=0),(0,m.O)(o,o,F)}(0,C.X).pipe(u(()=>this.canScroll(this.control.viewportScrollOffset,this.control.viewportScrollMax)),(0,f.M)(()=>this.onGoingScrollStep()))}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["button","scrollbarButton",""]],inputs:{scrollbarButton:"scrollbarButton",scrollDirection:"scrollDirection"},standalone:!0,features:[t.Vt3,t.aNF],attrs:Ne,decls:3,vars:0,consts:[[1,"ng-scrollbar-button-icon"],["viewBox","0 0 512 512","xmlns","http://www.w3.org/2000/svg"],["d","M413.1,327.3l-1.8-2.1l-136-156.5c-4.6-5.3-11.5-8.6-19.2-8.6c-7.7,0-14.6,3.4-19.2,8.6L101,324.9l-2.3,2.6 C97,330,96,333,96,336.2c0,8.7,7.4,15.8,16.6,15.8v0h286.8v0c9.2,0,16.6-7.1,16.6-15.8C416,332.9,414.9,329.8,413.1,327.3z"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.qSk(),t.j41(1,"svg",1),t.nrm(2,"path",2),t.k0s()())},styles:["[_nghost-%COMP%]{--scrollbar-button-size: 20px;position:relative;border:none;margin:0;padding:0;border-radius:0;appearance:none;background-color:var(--scrollbar-button-color)}[_nghost-%COMP%] svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-fill)}[_nghost-%COMP%]:hover{background:var(--scrollbar-button-hover-color)}[_nghost-%COMP%]:hover svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-hover-fill)}[_nghost-%COMP%]:active{background:var(--scrollbar-button-active-color)}[_nghost-%COMP%]:active svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-active-fill)}[scrollbarButton=top][_nghost-%COMP%], [scrollbarButton=start][_nghost-%COMP%]{order:1}[scrollbarButton=bottom][_nghost-%COMP%], [scrollbarButton=end][_nghost-%COMP%]{order:3}[scrollbarButton=top][_nghost-%COMP%], [scrollbarButton=bottom][_nghost-%COMP%]{width:100%;height:var(--scrollbar-button-size)}[scrollbarButton=start][_nghost-%COMP%], [scrollbarButton=end][_nghost-%COMP%]{width:var(--scrollbar-button-size);height:100%}[scrollbarButton=bottom][_nghost-%COMP%]{--_button-rotate: 180deg}[scrollbarButton=start][_nghost-%COMP%]{--_button-rotate: -90deg}[scrollbarButton=start][_nghost-%COMP%] .ng-scrollbar-button-icon[_ngcontent-%COMP%]{writing-mode:vertical-lr}[scrollbarButton=end][_nghost-%COMP%]{--_button-rotate: 90deg}[scrollbarButton=end][_nghost-%COMP%] .ng-scrollbar-button-icon[_ngcontent-%COMP%]{writing-mode:vertical-rl}.ng-scrollbar-button-icon[_ngcontent-%COMP%]{rotate:var(--_button-rotate);display:flex;place-content:center;place-items:center;width:100%;height:100%}"],changeDetection:0})}return o})(),$e=(()=>{class o extends se{constructor(){super(...arguments),this.clientProperty="clientY",this.axis="y"}get viewportScrollMax(){return this.cmp.viewport.scrollMaxY}get viewportScrollOffset(){return this.cmp.viewport.scrollTop}scrollTo(e,i){return(0,c.Sx)(this.cmp.scrollTo({top:e,duration:i}))}instantScrollTo(e){this.cmp.viewport.scrollYTo(e)}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbar-y"]],standalone:!0,features:[t.Jv_([{provide:Gt,useExisting:o}]),t.Vt3,t.aNF],decls:6,vars:7,consts:[["sticky",""],[1,"ng-scrollbar-sticky"],[1,"ng-scrollbar-track-wrapper"],["scrollbarTrackY",""],["scrollbarThumbY",""],["scrollbarButton","top","scrollDirection","backward"],["scrollbarButton","bottom","scrollDirection","forward"]],template:function(i,a){1&i&&(t.j41(0,"div",1,0)(2,"div",2)(3,"div",3),t.nrm(4,"div",4),t.k0s(),t.DNE(5,Oe,2,6),t.k0s()()),2&i&&(t.R7$(3),t.ZvI("ng-scrollbar-track ",a.cmp.trackClass,""),t.R7$(),t.ZvI("ng-scrollbar-thumb ",a.cmp.thumbClass,""),t.R7$(),t.vxM(5,a.cmp.buttons()?5:-1))},dependencies:[Ue,Ve,ne],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}.ng-scrollbar-sticky[_ngcontent-%COMP%]{top:calc(var(--_scrollbar-wrapper-top) * 1px);left:calc(var(--_scrollbar-wrapper-left) * 1px);right:calc(var(--_scrollbar-wrapper-right) * 1px);height:calc(var(--_scrollbar-wrapper-height) * 1px);width:calc(var(--_scrollbar-wrapper-width) * 1px);position:sticky;z-index:100;opacity:var(--_scrollbar-hover-opacity);transition:var(--_scrollbar-opacity-transition)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{touch-action:none;-webkit-user-select:none;user-select:none;top:var(--_scrollbar-track-top);bottom:var(--_scrollbar-track-bottom);right:var(--_scrollbar-track-right);left:var(--_scrollbar-track-left);pointer-events:var(--_scrollbar-pointer-events);transition:var(--scrollbar-track-wrapper-transition);position:absolute;overflow:hidden;display:flex;place-items:center}.ng-scrollbar-track[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;background-color:var(--scrollbar-track-color);transition:var(--scrollbar-track-transition);border-radius:var(--scrollbar-border-radius);cursor:default;z-index:1;order:2}.ng-scrollbar-thumb[_ngcontent-%COMP%]{box-sizing:border-box;position:absolute;transition:var(--scrollbar-thumb-transition);border-radius:var(--scrollbar-border-radius);height:var(--_thumb-height);width:var(--_thumb-width);animation-name:_ngcontent-%COMP%_scrollbarThumbAnimation;animation-duration:1ms;animation-timing-function:linear}@keyframes _ngcontent-%COMP%_scrollbarThumbAnimation{0%{translate:var(--_scrollbar-thumb-transform-from)}to{translate:var(--_scrollbar-thumb-transform-to)}}","[_nghost-%COMP%]{--_scrollbar-wrapper-top: 0;--_scrollbar-wrapper-left: var(--_scrollbar-wrapper-y-left);--_scrollbar-wrapper-right: var(--_scrollbar-wrapper-y-right);--_scrollbar-wrapper-height: var(--viewport-height);--_scrollbar-wrapper-width: var(--_scrollbar-thickness);--_scrollbar-track-top: var(--_vertical-top);--_scrollbar-track-bottom: var(--_vertical-bottom);--_scrollbar-track-right: var(--_vertical-right);--_scrollbar-track-left: var(--_vertical-left);--_thumb-height: calc(var(--thumb-y-length) * 1px);--_thumb-width: 100%;--_scrollbar-thumb-transform-from: 0 0;--_scrollbar-thumb-transform-to: 0 calc(var(--_scrollbar-y-thumb-transform-to-value) * 1px)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{width:var(--_track-y-thickness);flex-direction:column}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]:hover{--_track-y-thickness: var(--_scrollbar-hover-thickness-px);--_thumb-y-color: var(--scrollbar-thumb-hover-color)}.ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-timeline:var(--_animation-timeline-y);min-height:calc(var(--scrollbar-thumb-min-size) * 1px);display:var(--_vertical-thumb-display);background-color:var(--_thumb-y-color)}"],changeDetection:0})}return o})(),He=(()=>{class o extends se{get viewportScrollMax(){return this.cmp.viewport.scrollMaxX}get viewportScrollOffset(){return this.cmp.viewport.scrollLeft}constructor(){(0,t.QZP)(()=>{this.handlePosition="rtl"===this.cmp.direction()?(e,i)=>-(i-e):e=>e}),super(),this.manager=(0,t.WQX)(ie),this.clientProperty="clientX",this.axis="x"}scrollTo(e,i){return(0,c.Sx)(this.cmp.scrollTo({left:e,duration:i}))}instantScrollTo(e,i){this.cmp.viewport.scrollXTo(this.handlePosition(e,i))}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbar-x"]],hostVars:1,hostBindings:function(i,a){2&i&&t.BMQ("dir",a.cmp.direction())},standalone:!0,features:[t.Jv_([{provide:Gt,useExisting:o}]),t.Vt3,t.aNF],decls:6,vars:7,consts:[["sticky",""],[1,"ng-scrollbar-sticky"],[1,"ng-scrollbar-track-wrapper"],["scrollbarTrackX",""],["scrollbarThumbX",""],["scrollbarButton","start","scrollDirection","backward"],["scrollbarButton","end","scrollDirection","forward"]],template:function(i,a){1&i&&(t.j41(0,"div",1,0)(2,"div",2)(3,"div",3),t.nrm(4,"div",4),t.k0s(),t.DNE(5,Te,2,6),t.k0s()()),2&i&&(t.R7$(3),t.ZvI("ng-scrollbar-track ",a.cmp.trackClass,""),t.R7$(),t.ZvI("ng-scrollbar-thumb ",a.cmp.thumbClass,""),t.R7$(),t.vxM(5,a.cmp.buttons()?5:-1))},dependencies:[We,Ge,ne],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}.ng-scrollbar-sticky[_ngcontent-%COMP%]{top:calc(var(--_scrollbar-wrapper-top) * 1px);left:calc(var(--_scrollbar-wrapper-left) * 1px);right:calc(var(--_scrollbar-wrapper-right) * 1px);height:calc(var(--_scrollbar-wrapper-height) * 1px);width:calc(var(--_scrollbar-wrapper-width) * 1px);position:sticky;z-index:100;opacity:var(--_scrollbar-hover-opacity);transition:var(--_scrollbar-opacity-transition)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{touch-action:none;-webkit-user-select:none;user-select:none;top:var(--_scrollbar-track-top);bottom:var(--_scrollbar-track-bottom);right:var(--_scrollbar-track-right);left:var(--_scrollbar-track-left);pointer-events:var(--_scrollbar-pointer-events);transition:var(--scrollbar-track-wrapper-transition);position:absolute;overflow:hidden;display:flex;place-items:center}.ng-scrollbar-track[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;background-color:var(--scrollbar-track-color);transition:var(--scrollbar-track-transition);border-radius:var(--scrollbar-border-radius);cursor:default;z-index:1;order:2}.ng-scrollbar-thumb[_ngcontent-%COMP%]{box-sizing:border-box;position:absolute;transition:var(--scrollbar-thumb-transition);border-radius:var(--scrollbar-border-radius);height:var(--_thumb-height);width:var(--_thumb-width);animation-name:_ngcontent-%COMP%_scrollbarThumbAnimation;animation-duration:1ms;animation-timing-function:linear}@keyframes _ngcontent-%COMP%_scrollbarThumbAnimation{0%{translate:var(--_scrollbar-thumb-transform-from)}to{translate:var(--_scrollbar-thumb-transform-to)}}","[_nghost-%COMP%]{--_scrollbar-wrapper-top: var(--_scrollbar-wrapper-x-top);--_scrollbar-wrapper-left: 0;--_scrollbar-wrapper-right: 0;--_scrollbar-wrapper-height: var(--_scrollbar-thickness);--_scrollbar-wrapper-width: var(--viewport-width);--_scrollbar-track-top: var(--_horizontal-top);--_scrollbar-track-bottom: var(--_horizontal-bottom);--_scrollbar-track-right: var(--_horizontal-right);--_scrollbar-track-left: var(--_horizontal-left);--_thumb-height: 100%;--_thumb-width: calc(var(--thumb-x-length) * 1px);--_scrollbar-thumb-transform-from: 0;--_scrollbar-thumb-transform-to: calc(var(--_scrollbar-x-thumb-transform-to-value) * 1px)}[_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=start][_ngcontent-%COMP%]{_--button-rotate:90}[_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=end][_ngcontent-%COMP%]{_--button-rotate:-90}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_scrollbarThumbRTLAnimation;will-change:right;--_scrollbar-thumb-transform-to: calc(var(--_scrollbar-x-thumb-transform-to-value) * -1px)}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=start][_ngcontent-%COMP%]{--_button-rotate: 90deg}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=end][_ngcontent-%COMP%]{--_button-rotate: -90deg}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{height:var(--_track-x-thickness);flex-direction:row}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]:hover{--_track-x-thickness: var(--_scrollbar-hover-thickness-px);--_thumb-x-color: var(--scrollbar-thumb-hover-color)}.ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-timeline:var(--_animation-timeline-x);min-width:calc(var(--scrollbar-thumb-min-size) * 1px);display:var(--_horizontal-thumb-display);background-color:var(--_thumb-x-color)}@keyframes _ngcontent-%COMP%_scrollbarThumbRTLAnimation{0%{right:var(--_scrollbar-thumb-transform-from)}to{right:calc(var(--_scrollbar-thumb-transform-to) * -1)}}"],changeDetection:0})}return o})(),ae=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbars"]],standalone:!0,features:[t.aNF],decls:2,vars:2,template:function(i,a){1&i&&t.DNE(0,Ie,1,0,"scrollbar-y")(1,Le,1,0,"scrollbar-x"),2&i&&(t.vxM(0,a.cmp.verticalUsed()?0:-1),t.R7$(),t.vxM(1,a.cmp.horizontalUsed()?1:-1))},dependencies:[He,$e],styles:["[_nghost-%COMP%]{display:contents}"],changeDetection:0})}return o})(),le=(()=>{class o extends Ae{ngOnInit(){this.viewport.init(this.nativeElement,this.contentWrapper.nativeElement),super.ngOnInit()}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["ng-scrollbar",3,"externalViewport",""]],viewQuery:function(i,a){if(1&i&&(t.GBs(je,7),t.GBs(ae,7)),2&i){let M;t.mGM(M=t.lsd())&&(a.contentWrapper=M.first),t.mGM(M=t.lsd())&&(a._scrollbars=M.first)}},exportAs:["ngScrollbar"],standalone:!0,features:[t.Jv_([{provide:Lt,useExisting:o}]),t.nM4([ze]),t.Vt3,t.aNF],ngContentSelectors:Re,decls:4,vars:0,consts:[["contentWrapper",""]],template:function(i,a){1&i&&(t.NAR(),t.j41(0,"div",null,0),t.SdG(2),t.nrm(3,"scrollbars"),t.k0s())},dependencies:[ae],styles:["[_nghost-%COMP%]{display:block;position:relative;max-height:100%;max-width:100%;--scrollbar-border-radius: 0px;--scrollbar-thickness: 5;--scrollbar-offset: 0;--scrollbar-track-wrapper-transition: width 60ms linear, height 60ms linear;--scrollbar-track-color: transparent;--scrollbar-track-transition: none;--scrollbar-thumb-color: rgb(0 0 0 / 20%);--scrollbar-thumb-hover-color: var(--scrollbar-thumb-color);--scrollbar-hover-thickness: var(--scrollbar-thickness);--scrollbar-thumb-transition: none;--scrollbar-thumb-min-size: 20;--scrollbar-button-color: var(--scrollbar-thumb-color);--scrollbar-button-hover-color: var(--scrollbar-button-color);--scrollbar-button-active-color: var(--scrollbar-button-hover-color);--scrollbar-button-fill: white;--scrollbar-button-hover-fill: var(--scrollbar-button-fill);--scrollbar-button-active-fill: var(--scrollbar-button-hover-fill);--scrollbar-hover-opacity-transition-enter-duration: 0;--scrollbar-hover-opacity-transition-leave-duration: .4s;--scrollbar-hover-opacity-transition-leave-delay: 1s;--scrollbar-overscroll-behavior: initial;--scrollbar-mobile-overscroll-behavior: none;--_scrollbar-thickness: calc(var(--scrollbar-thickness) + var(--scrollbar-offset) * 2);--_scrollbar-pointer-events: auto;--_scrollbar-offset-px: calc(var(--scrollbar-offset) * 1px);--_scrollbar-thickness-px: calc(var(--scrollbar-thickness) * 1px);--_scrollbar-hover-thickness-px: calc(var(--scrollbar-hover-thickness) * 1px);--_viewport-padding-top: 0;--_viewport-padding-bottom: 0;--_viewport-padding-left: 0;--_viewport-padding-right: 0;--_horizontal-thumb-display: block;--_vertical-thumb-display: block;--_viewport-overflow: auto;--_thumb-x-color: var(--scrollbar-thumb-color);--_thumb-y-color: var(--scrollbar-thumb-color);--_track-y-thickness: var(--_scrollbar-thickness-px);--_track-x-thickness: var(--_scrollbar-thickness-px);--_viewport-overscroll-behavior: var(--scrollbar-overscroll-behavior);--_scrollbar-content-width: fit-content}[_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-offset-px);--_vertical-bottom: var(--_scrollbar-offset-px);--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-offset-px);--_horizontal-top: initial;--_horizontal-bottom: var(--_scrollbar-offset-px);--_scrollbar-wrapper-x-top: calc(var(--viewport-height) - var(--_scrollbar-thickness));--reached-offset: 1px;--reached-offset-top: var(--reached-offset);--reached-offset-bottom: var(--reached-offset);--reached-offset-start: var(--reached-offset);--reached-offset-end: var(--reached-offset);--_viewport_scroll-timeline: unset;--_animation-timeline-y: unset;--_scrollbar-y-thumb-transform-to-value: unset;--_scrollbar-x-thumb-transform-to-value: unset;--_scrollbar-thumb-transform-from: unset;--_scrollbar-thumb-transform-to: unset}.ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{min-height:100%;min-width:100%;height:100%;max-height:100%;max-width:100%}.ng-scroll-viewport[_nghost-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{position:relative;overflow:var(--_viewport-overflow);scroll-timeline:var(--_viewport_scroll-timeline);box-sizing:border-box!important;-webkit-overflow-scrolling:touch;will-change:scroll-position;-webkit-user-select:var(--_viewport-user-select);user-select:var(--_viewport-user-select);overscroll-behavior:var(--_viewport-overscroll-behavior)}.ng-scroll-viewport[_nghost-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport>.ng-scroll-content{width:var(--_scrollbar-content-width);z-index:1;min-width:100%;min-height:100%;contain:content;padding:var(--_viewport-padding-top, 0) var(--_viewport-padding-right, 0) var(--_viewport-padding-bottom, 0) var(--_viewport-padding-left, 0)}.ng-scroll-viewport[_nghost-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{scrollbar-width:none!important}.ng-scroll-viewport[_nghost-%COMP%]::-webkit-scrollbar, .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport::-webkit-scrollbar{display:none!important}[position=invertX][_nghost-%COMP%], [position=invertAll][_nghost-%COMP%]{--_horizontal-top: var(--_scrollbar-offset-px);--_horizontal-bottom: initial;--_scrollbar-wrapper-x-top: 0}[dir=ltr][_nghost-%COMP%]{--_scrollbar-wrapper-y-right: initial;--_vertical-right: var(--_scrollbar-offset-px);--_vertical-left: initial;--_scrollbar-wrapper-y-left: calc(var(--viewport-width) - var(--_scrollbar-thickness))}[dir=ltr][position=invertY][_nghost-%COMP%], [dir=ltr][position=invertAll][_nghost-%COMP%]{--_vertical-left: var(--_scrollbar-offset-px);--_vertical-right: initial;--_scrollbar-wrapper-y-left: 0}[dir=rtl][_nghost-%COMP%]{--_scrollbar-wrapper-y-left: initial;--_vertical-left: var(--_scrollbar-offset-px);--_vertical-right: initial;--_scrollbar-wrapper-y-right: calc(var(--viewport-width) - var(--_scrollbar-thickness))}[dir=rtl][position=invertY][_nghost-%COMP%], [dir=rtl][position=invertAll][_nghost-%COMP%]{--_vertical-right: var(--_scrollbar-offset-px);--_vertical-left: initial;--_scrollbar-wrapper-y-right: 0}[verticalUsed=true][horizontalUsed=true][_nghost-%COMP%]{--_scrollbar-thickness-margin: calc(var(--scrollbar-thickness) + var(--scrollbar-offset) * 3);--_scrollbar-thickness-margin-px: calc(var(--_scrollbar-thickness-margin) * 1px)}[horizontalUsed=true][_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-offset-px);--_vertical-bottom: var(--_scrollbar-thickness-margin-px)}[horizontalUsed=true][position=invertX][_nghost-%COMP%], [horizontalUsed=true][position=invertAll][_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-thickness-margin-px);--_vertical-bottom: var(--_scrollbar-offset-px)}[verticalUsed=true][dir=ltr][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-thickness-margin-px)}[verticalUsed=true][dir=rtl][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-thickness-margin-px);--_horizontal-right: var(--_scrollbar-offset-px)}[verticalUsed=true][position=invertY][dir=ltr][_nghost-%COMP%], [verticalUsed=true][position=invertAll][dir=ltr][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-thickness-margin-px);--_horizontal-right: var(--_scrollbar-offset-px)}[verticalUsed=true][position=invertY][dir=rtl][_nghost-%COMP%], [verticalUsed=true][position=invertAll][dir=rtl][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-thickness-margin-px)}[appearance=native][verticalUsed=true][dir=ltr][_nghost-%COMP%]{--_viewport-padding-left: 0;--_viewport-padding-right: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][verticalUsed=true][dir=rtl][_nghost-%COMP%]{--_viewport-padding-left: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-right: 0}[appearance=native][verticalUsed=true][position=invertY][dir=ltr][_nghost-%COMP%], [appearance=native][verticalUsed=true][position=invertAll][dir=ltr][_nghost-%COMP%]{--_viewport-padding-left: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-right: 0}[appearance=native][verticalUsed=true][position=invertY][dir=rtl][_nghost-%COMP%], [appearance=native][verticalUsed=true][position=invertAll][dir=rtl][_nghost-%COMP%]{--_viewport-padding-left: 0;--_viewport-padding-right: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][horizontalUsed=true][_nghost-%COMP%]{--_viewport-padding-top: 0;--_viewport-padding-bottom: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][horizontalUsed=true][position=invertX][_nghost-%COMP%], [appearance=native][horizontalUsed=true][position=invertAll][_nghost-%COMP%]{--_viewport-padding-top: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-bottom: 0}[visibility=hover][_nghost-%COMP%]{--_scrollbar-hover-opacity: 0;--_scrollbar-opacity-transition: opacity var(--scrollbar-hover-opacity-transition-leave-duration) var(--scrollbar-hover-opacity-transition-leave-delay)}[visibility=hover][_nghost-%COMP%]:hover, [visibility=hover][_nghost-%COMP%]:active, [visibility=hover][_nghost-%COMP%]:focus{--_scrollbar-hover-opacity: 1;--_scrollbar-opacity-transition: opacity var(--scrollbar-hover-opacity-transition-enter-duration)}[dir=ltr][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{left:0;right:unset}[dir=ltr][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{right:0;left:unset}[dir=rtl][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{right:0;left:unset}[dir=rtl][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{left:0;right:unset}[_nghost-%COMP%] .ng-scroll-reached-wrapper, [_nghost-%COMP%] .scroll-reached-trigger-element{position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:-9999}[_nghost-%COMP%] .ng-scroll-reached-wrapper{visibility:hidden;inset:0;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}[_nghost-%COMP%] [isHorizontallyScrollable=false] .scroll-reached-trigger-element[trigger=end]{display:none}[_nghost-%COMP%] [isVerticallyScrollable=false] .scroll-reached-trigger-element[trigger=bottom]{display:none}[_nghost-%COMP%] .scroll-reached-trigger-element{background:red}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=top], [_nghost-%COMP%] .scroll-reached-trigger-element[trigger=bottom]{left:0;right:0}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start], [_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{top:0;bottom:0}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=top]{top:0;height:var(--reached-offset-top)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=bottom]{bottom:0;height:var(--reached-offset-bottom)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{width:var(--reached-offset-start)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{width:var(--reached-offset-end)}[verticalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerY;--_animation-timeline-y: --scrollerY;--_viewport_scroll-timeline: --scrollerY y;--_scrollbar-y-thumb-transform-to-value: calc(var(--track-y-length) - var(--thumb-y-length))}[horizontalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerX;--_animation-timeline-x: --scrollerX;--_viewport_scroll-timeline: --scrollerX x;--_scrollbar-x-thumb-transform-to-value: calc(var(--track-x-length) - var(--thumb-x-length))}[verticalUsed=true][horizontalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerX, --scrollerY;--_viewport_scroll-timeline: --scrollerX x, --scrollerY y}[orientation=vertical][_nghost-%COMP%]{--_viewport-overflow: hidden auto;--_scrollbar-content-width: unset}[orientation=horizontal][_nghost-%COMP%]{--_viewport-overflow: auto hidden}[disableInteraction=true][_nghost-%COMP%]{--_scrollbar-pointer-events: none}[isVerticallyScrollable=false][_nghost-%COMP%]{--_vertical-thumb-display: none}[isHorizontallyScrollable=false][_nghost-%COMP%]{--_horizontal-thumb-display: none}[dragging=x][_nghost-%COMP%], [dragging=y][_nghost-%COMP%]{--_viewport-user-select: none}[horizontalUsed=true][_nghost-%COMP%]{--thumb-x-length: max(calc(var(--viewport-width) * var(--track-x-length) / var(--content-width)), var(--scrollbar-thumb-min-size))}[verticalUsed=true][_nghost-%COMP%]{--thumb-y-length: max(calc(var(--viewport-height) * var(--track-y-length) / var(--content-height)), var(--scrollbar-thumb-min-size))}[dragging=x][_nghost-%COMP%]{--_track-x-thickness: calc(var(--scrollbar-hover-thickness) * 1px);--_thumb-x-color: var(--scrollbar-thumb-hover-color)}[dragging=y][_nghost-%COMP%]{--_track-y-thickness: calc(var(--scrollbar-hover-thickness) * 1px);--_thumb-y-color: var(--scrollbar-thumb-hover-color)}[mobile=true][_nghost-%COMP%]{--_viewport-overscroll-behavior: var(--scrollbar-mobile-overscroll-behavior)}"],changeDetection:0})}return o})(),Qe=(()=>{class o{static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275mod=t.$C({type:o});static#o=this.\u0275inj=t.G2t({})}return o})();var ce=X(93331),he=X(38117);function de(o,F){const e=/(\d+)|(\D+)/g,i=/\d+/,M=F.value,x=String(o.value).match(e),L=String(M).match(e);for(;x.length&&L.length;){const R=x.shift(),W=L.shift();if(i.test(R)||i.test(W)){if(!i.test(R))return-1;if(!i.test(W))return 1;if(R!==W)return Number(W)-Number(R)}else if(R!==W)return W.localeCompare(R)}return L.length-x.length}var Ct=X(3366),it=X(19664),$t=X(45794);let Ze=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqInter(){this.apiService.getReqInter().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-network-inter"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.inter.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.inter.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqInter()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.inter.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();var pe=X(28990),ue=X(21264);function Ke(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.nrm(11,"div",9),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.k0s()),2&o){const e=t.XpG(2);t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.detail.visu.subtitle"),t.npT),t.R7$(5),t.Y8G("chart",e.chart)}}function qe(o,F){if(1&o&&(t.j41(0,"div",2),t.EFF(1,"\n "),t.DNE(2,Ke,15,4,"div",3),t.EFF(3,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(2),t.Y8G("ngIf",e.chart)}}function Je(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.nrm(11,"div",10),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.detail.visu.subtitle"),t.npT),t.R7$(5),t.Y8G("chart",e.chart2)}}let to=(()=>{class o extends pe.U{apiService;translate;timeStamp;chart;chart2;devices$;totalTx;totalFail;plugin;constructor(e,i){super(),this.apiService=e,this.translate=i}ngOnInit(){this.devices$=this.apiService.getDevices(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}ngOnChanges(e){e.timeStamp.currentValue!==e.timeStamp.previousValue&&this.apiService.getNwkStatsByTimeStamp(this.timeStamp).subscribe(i=>{this.createChart(i),this.createChart2(i)})}createChart(e){const i=[],a=[],M=[],x=[];e.forEach(W=>{const yt=W.Channels;yt.sort((ut,wt)=>Number(ut.Channel)-Number(wt.Channel)),W.Channels=yt}),e[0].Channels.forEach(W=>{a.push(W.Channel)}),e.forEach(W=>{const yt=[];let ut=0;W.Channels.forEach(wt=>{yt.push(wt.Level),x[ut]=x[ut]?Number(x[ut])+Number(wt.Level):Number(wt.Level),ut++}),i.push({name:W.ZDeviceName?W.ZDeviceName:W._NwkId,data:yt})}),x.forEach(W=>{W/=e.length,W=Number(W).toFixed(2),M.push(Number(W))});const L=i;L.push({name:"Average",data:M,type:"spline",marker:{lineWidth:2,lineColor:ue.getOptions().colors[3],fillColor:"white"}});const R=new et.t1({chart:{type:"column",height:"20%"},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:a},yAxis:{title:{text:this.translate.instant("network.stats.detail.visu.chart.y-axis")}},credits:{enabled:!1},series:L});this.chart=R,this.subs.add(R.ref$.subscribe())}createChart2(e){const i=[],a=[];e.forEach(x=>{const L=x.Channels;L.sort((R,W)=>Number(R.Channel)-Number(W.Channel)),x.Channels=L}),e[0].Channels.forEach(x=>{a.push(x.Channel)}),e.forEach(x=>{const L=[];x.Channels.forEach(R=>{L.push(R.Level)}),i.push({name:x.ZDeviceName?x.ZDeviceName:x._NwkId,data:L,pointPlacement:"on"})});const M=new et.t1({chart:{height:"90%",polar:!0,type:"line"},pane:{},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:a,tickmarkPlacement:"on",lineWidth:0},yAxis:{gridLineInterpolation:"polygon",lineWidth:0,min:0},tooltip:{shared:!0,pointFormat:'{series.name}: {point.y:,.0f}
    '},legend:{align:"left",verticalAlign:"bottom"},credits:{enabled:!1},series:i,responsive:{rules:[{condition:{maxWidth:600},chartOptions:{legend:{align:"center",verticalAlign:"bottom"},pane:{size:"80%"}}}]}});this.chart2=M,this.subs.add(M.ref$.subscribe())}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-detail-nwk-stat"]],inputs:{timeStamp:"timeStamp"},features:[t.Vt3,t.OA$],decls:10,vars:2,consts:[[1,"row","row-cols-1","row-cols-md-2","g-4","mt-1"],["class","col",4,"ngIf"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.stats.detail.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"text-center",3,"chart"],[3,"chart"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.DNE(2,qe,4,1,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.DNE(6,Je,15,4,"div",3),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n"),t.k0s(),t.EFF(9,"\n")),2&i&&(t.R7$(2),t.Y8G("ngIf",!(null!=a.plugin&&a.plugin.Zigpy)),t.R7$(4),t.Y8G("ngIf",a.chart2))},dependencies:[y.bT,it.Mm,et.S6,it.D9]})}return o})(),eo=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqFull(){this.apiService.getNwkFull().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-network-full"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.full.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.full.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqFull()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.full.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();function oo(o,F){if(1&o){const e=t.RV6();t.j41(0,"span",14),t.EFF(1,"\n "),t.j41(2,"div",15),t.EFF(3,"\n "),t.j41(4,"button",16),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.nwkStatByDate(a.value))}),t.EFF(5),t.nI1(6,"date"),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"div",15),t.EFF(10,"\n "),t.j41(11,"button",17),t.nI1(12,"translate"),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.deleteNwkStatByDate(a.value))}),t.EFF(13,"\n "),t.nrm(14,"i",18),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.k0s(),t.EFF(17,"\n "),t.k0s()}if(2&o){const e=F.$implicit;t.R7$(5),t.SpI("\n ",t.i5U(6,2,1e3*e.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.R7$(6),t.FS9("title",t.bMT(12,5,"network.stats.visu.delete.button"))}}function ro(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.j41(11,"div",9),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"ng-scrollbar",11),t.EFF(16,"\n "),t.j41(17,"div",12),t.EFF(18,"\n "),t.DNE(19,oo,18,7,"span",13),t.nI1(20,"keyvalue"),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=F.ngIf,i=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.subtitle"),t.npT),t.R7$(13),t.Y8G("ngForOf",t.i5U(20,4,e,i.sortDesc))}}function io(o,F){1&o&&t.nrm(0,"app-req-network-full")}function so(o,F){if(1&o&&(t.j41(0,"div"),t.nrm(1,"app-detail-nwk-stat",19),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("timeStamp",e.timeStamp)}}let no=(()=>{class o{apiService;cdr;stats$;listSubject$=new Qt.B;timeStamp;plugin;constructor(e,i){this.apiService=e,this.cdr=i}ngOnInit(){this.stats$=this.apiService.getNwkStats(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}sortDesc(e,i){return de(e,i)}nwkStatByDate(e){this.timeStamp=e}deleteNwkStatByDate(e){this.apiService.deleteNwkStatsByTimeStamp(e).subscribe(()=>{this.stats$=this.apiService.getNwkStats(),this.cdr.detectChanges()})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(t.gRc))};static \u0275cmp=t.VBU({type:o,selectors:[["app-nwk-stats"]],decls:17,vars:5,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.stats.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","row d-flex align-items-center",4,"ngFor","ngForOf"],[1,"row","d-flex","align-items-center"],[1,"col-sm"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"click","title"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.j41(2,"div",1),t.EFF(3,"\n "),t.DNE(4,ro,28,7,"div",2),t.nI1(5,"async"),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",1),t.nrm(9,"app-req-network-inter"),t.k0s(),t.EFF(10,"\n "),t.j41(11,"div",1),t.DNE(12,io,1,0,"app-req-network-full",3),t.k0s(),t.EFF(13,"\n"),t.k0s(),t.EFF(14,"\n"),t.DNE(15,so,2,1,"div",3),t.EFF(16,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",t.bMT(5,3,a.stats$)),t.R7$(8),t.Y8G("ngIf",!(null!=a.plugin&&a.plugin.Zigpy)),t.R7$(3),t.Y8G("ngIf",a.timeStamp))},dependencies:[y.Sq,y.bT,it.Mm,le,Ze,to,eo,y.Jj,y.vh,y.lG,it.D9],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]})}return o})();var Ft=X(89417),fe=X(97013),Ht=X(46247),ao=X(5779);const lo=o=>({deviceSelected:o}),co=()=>[10,25,50];function ho(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.nrm(9,"div",8),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.topo.visu.subtitle"),t.npT),t.R7$(3),t.Y8G("chart",e.chart1)}}function po(o,F){if(1&o&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Name"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Model"),t.k0s(),t.EFF(11),t.k0s(),t.EFF(12,"\n ")),2&o){const e=F.item;t.R7$(5),t.SpI(" : ",e.ZDeviceName," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" :\n ",e.Model,"\n ")}}function uo(o,F){1&o&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"th",22),t.EFF(4),t.nI1(5,"translate"),t.nrm(6,"p-sortIcon",23),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"th",24),t.EFF(10),t.nI1(11,"translate"),t.nrm(12,"p-sortIcon",25),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.j41(15,"th",26),t.EFF(16),t.nI1(17,"translate"),t.nrm(18,"p-sortIcon",27),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th",28),t.EFF(22),t.nI1(23,"translate"),t.nrm(24,"p-sortIcon",29),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.j41(27,"th",30),t.EFF(28),t.nI1(29,"translate"),t.nrm(30,"p-sortIcon",31),t.EFF(31,"\n "),t.k0s(),t.EFF(32,"\n "),t.j41(33,"th",32),t.EFF(34),t.nI1(35,"translate"),t.nrm(36,"p-sortIcon",33),t.EFF(37,"\n "),t.k0s(),t.EFF(38,"\n "),t.k0s(),t.EFF(39,"\n ")),2&o&&(t.R7$(4),t.SpI("\n ",t.bMT(5,6,"network.topo.visu.network.relation.to"),""),t.R7$(6),t.SpI("\n ",t.bMT(11,8,"network.topo.visu.network.relation.weight"),""),t.R7$(6),t.SpI("\n ",t.bMT(17,10,"network.topo.visu.network.relation.model"),""),t.R7$(6),t.SpI("\n ",t.bMT(23,12,"network.topo.visu.network.relation.status"),""),t.R7$(6),t.SpI("\n ",t.bMT(29,14,"network.topo.visu.network.relation.health"),""),t.R7$(6),t.SpI("\n ",t.bMT(35,16,"network.topo.visu.network.relation.battery"),""))}function fo(o,F){if(1&o&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4),t.k0s(),t.EFF(5,"\n "),t.j41(6,"td"),t.EFF(7),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td"),t.EFF(13),t.k0s(),t.EFF(14,"\n "),t.j41(15,"td"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.j41(18,"td"),t.EFF(19),t.k0s(),t.EFF(20,"\n "),t.k0s()),2&o){const e=F.$implicit;t.R7$(4),t.SpI("\n ",e.to,"\n "),t.R7$(3),t.SpI("\n ",e.weight,"\n "),t.R7$(3),t.SpI("\n ",e.Model,"\n "),t.R7$(3),t.SpI("\n ",e.Status,"\n "),t.R7$(3),t.SpI("\n ",e.Health,"\n "),t.R7$(3),t.SpI("\n ",e.Battery,"\n ")}}function go(o,F){if(1&o&&(t.j41(0,"div",17),t.EFF(1,"\n "),t.j41(2,"div",2),t.EFF(3,"\n "),t.j41(4,"div",4),t.EFF(5,"\n "),t.nrm(6,"div",18),t.EFF(7,"\n "),t.j41(8,"div",6),t.EFF(9,"\n "),t.nrm(10,"p",7),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"p-table",19,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,uo,40,18,"ng-template",20),t.EFF(20,"\n "),t.DNE(21,fo,21,6,"ng-template",21),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=t.XpG(2);t.R7$(6),t.Y8G("translateParams",t.eq3(14,lo,e.selectedPoint.name)),t.R7$(4),t.Y8G("innerHTML",t.bMT(11,10,"network.topo.visu.network.relation.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,12,"TOTAL")),t.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(16,co))("value",e.relationsSelected)("rows",10)("paginator",!0)("scrollable",!0)}}function mo(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",9),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",10),t.EFF(10,"\n "),t.j41(11,"div"),t.EFF(12,"\n "),t.j41(13,"form",11),t.EFF(14,"\n "),t.nrm(15,"input",12),t.EFF(16,"\n "),t.j41(17,"ng-select",13),t.nI1(18,"translate"),t.EFF(19,"\n "),t.DNE(20,po,13,3,"ng-template",14),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.nrm(25,"div",15),t.EFF(26,"\n "),t.DNE(27,go,28,17,"div",16),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.k0s(),t.EFF(30,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,9,"network.topo.visu.network.subtitle"),t.npT),t.R7$(7),t.Y8G("formGroup",e.form),t.R7$(4),t.FS9("placeholder",t.bMT(18,11,"network.topo.visu.network.filter")),t.Y8G("items",e.devices)("multiple",!1)("closeOnSelect",!0)("searchable",!0),t.R7$(8),t.Y8G("chart",e.chart2),t.R7$(2),t.Y8G("ngIf",e.relationsSelected)}}let vo=(()=>{class o extends pe.U{apiService;translate;formBuilder;timeStamp;chart1;chart2;form;datas;devices;showDetail=!1;device;data;relationsSelected;selectedPoint;constructor(e,i,a){super(),this.apiService=e,this.translate=i,this.formBuilder=a}ngOnInit(){this.form=this.formBuilder.group({nodeToFilter:[null],detail:[null]}),this.apiService.getZDeviceName().subscribe(e=>{this.devices=e,this.devices.unshift({IEEE:"",MacCapa:[""],Model:"",Health:"",Status:"",WidgetList:[""],ZDeviceName:"Zigbee Coordinator",_NwkId:""})}),this.subs.sink=this.form.get("nodeToFilter").valueChanges.subscribe(e=>{this.createChart2(e)}),this.subs.add(this.form.get("detail").valueChanges.subscribe(()=>{const e=[];this.selectedPoint=this.chart2.ref.hoverPoint,this.selectedPoint.linksFrom.map(M=>M.options).map(M=>{const x=this.devices.find(L=>L.ZDeviceName===M.to||L._NwkId===M.to);e.push({to:M.to,from:M.from,weight:M.weight,Model:x.Model,Status:x.Status,Health:x.Health,Battery:x.Battery})}),this.selectedPoint.linksTo.map(M=>M.options).map(M=>{if(!e.some(x=>x.to===M.from)){const x=this.devices.find(L=>L.ZDeviceName===M.from||L._NwkId===M.from);e.push({to:M.from,from:M.from,weight:x.LQI,Model:x.Model,Status:x.Status,Health:x.Health,Battery:x.Battery})}}),this.relationsSelected=e}))}ngOnChanges(e){e.timeStamp.currentValue!==e.timeStamp.previousValue&&this.apiService.getTopologieByTimeStamp(this.timeStamp).subscribe(i=>{this.datas=i,this.createChart1(),this.createChart2()})}createChart1(){const e=this.datas.map(a=>{const M=Object.values(a);return M.splice(1,1),M}),i=new et.t1({chart:{type:"dependencywheel",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.chart.title")},credits:{enabled:!1},series:[{type:void 0,keys:["to","from","weight"],data:e}]});this.chart1=i}createChart2(e){let i=this.datas.map(x=>{const L=Object.values(x);return L.splice(1,1),L});e&&(i=i.filter(x=>x[0].toLowerCase()===e.toLowerCase()||x[1].toLowerCase()===e.toLowerCase()));const a=[{nodes:void 0,type:void 0,keys:["to","from","weight"],dataLabels:{enabled:!0,linkFormat:""},data:i}];this.test(a);const M=new et.t1({chart:{type:"networkgraph",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.network.chart.title")},credits:{enabled:!1},plotOptions:{networkgraph:{keys:["to","from","weight"],layoutAlgorithm:{enableSimulation:!0,integration:"verlet"}},series:{point:{events:{click:function(){document.getElementById("detail").dispatchEvent(new Event("input",{bubbles:!0}))}}}}},series:a});this.chart2=M}test(e){const i=ue.getOptions().colors;let a=0;const M={"Zigbee Coordinator":{id:"Zigbee Coordinator",marker:{radius:20}}},x=this.datas.filter(R=>"Zigbee Coordinator"===R.Child),L=[];x.forEach(R=>{M[R.Father]={id:R.Father,marker:{radius:10},color:i[a++]},L.push(R.Father)}),this.colorNode(M,L),e[0].nodes=Object.keys(M).map(function(R){return M[R]})}colorNode(e,i){i.forEach(a=>{const M=[];this.datas.filter(L=>L.Child===a).forEach(L=>{e[L.Father]||(e[L.Father]={id:L.Father,color:e[L.Child].color},M.push(L.Father))}),M.length>0&&this.colorNode(e,M)})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(it.c$),t.rXU(Ft.ok))};static \u0275cmp=t.VBU({type:o,selectors:[["app-detail-topology"]],inputs:{timeStamp:"timeStamp"},features:[t.Vt3,t.OA$],decls:13,vars:2,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-lg-2","g-4","mt-1"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.topo.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text",3,"chart"],["translate","network.topo.visu.network.header",1,"card-header","fw-bold"],[1,"card-text"],[3,"formGroup"],["type","hidden","formControlName","detail","id","detail"],["bindLabel","ZDeviceName","bindValue","ZDeviceName","appendTo","body","formControlName","nodeToFilter",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[3,"chart"],["class","row",4,"ngIf"],[1,"row"],["translate","network.topo.visu.network.relation.header",1,"card-header","fw-bold",3,"translateParams"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"],["pSortableColumn","to"],["field","to"],["pSortableColumn","weight"],["field","weight"],["pSortableColumn","Model",2,"width","8rem"],["field","Model"],["pSortableColumn","Status",2,"width","10rem"],["field","Status"],["pSortableColumn","Health"],["field","Health"],["pSortableColumn","Battery"],["field","Battery"]],template:function(i,a){1&i&&(t.j41(0,"div",1),t.EFF(1,"\n "),t.j41(2,"div",2),t.EFF(3,"\n "),t.DNE(4,ho,12,4,"div",3),t.EFF(5,"\n "),t.k0s(),t.EFF(6,"\n "),t.j41(7,"div",2),t.EFF(8,"\n "),t.DNE(9,mo,31,13,"div",3),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n"),t.k0s(),t.EFF(12,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",a.chart1),t.R7$(5),t.Y8G("ngIf",a.chart2))},dependencies:[y.bT,Ft.qT,Ft.me,Ft.BC,Ft.cb,Ft.j4,Ft.JD,fe.vr,fe.Uq,it.Mm,Ht.XI,ao.Ei,Ht.Tg,Ht.yc,et.S6,it.D9]})}return o})(),bo=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqTopology(){this.apiService.getReqTopologie().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-topology"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.topology.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.topology.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqTopology()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.topology.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();function yo(o,F){if(1&o){const e=t.RV6();t.j41(0,"span",14),t.EFF(1,"\n "),t.j41(2,"button",15),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.topologyByDate(a.value))}),t.EFF(3),t.nI1(4,"date"),t.k0s(),t.EFF(5,"\n "),t.j41(6,"button",16),t.nI1(7,"translate"),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.deleteTopologyByDate(a.value))}),t.EFF(8,"\n "),t.nrm(9,"i",17),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n "),t.k0s()}if(2&o){const e=F.$implicit;t.R7$(3),t.SpI("\n ",t.i5U(4,2,1e3*e.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.R7$(3),t.FS9("title",t.bMT(7,5,"network.topo.visu.delete.button"))}}function wo(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.j41(11,"div",9),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"ng-scrollbar",11),t.EFF(16,"\n "),t.j41(17,"div",12),t.EFF(18,"\n "),t.DNE(19,yo,12,7,"span",13),t.nI1(20,"keyvalue"),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=F.ngIf,i=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.topo.subtitle"),t.npT),t.R7$(13),t.Y8G("ngForOf",t.i5U(20,4,e,i.sortDesc))}}function _o(o,F){if(1&o&&(t.j41(0,"div"),t.nrm(1,"app-detail-topology",18),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("timeStamp",e.timeStamp)}}const So=[{path:"topology",component:(()=>{class o{apiService;cdr;timeStamp;topologies$;constructor(e,i){this.apiService=e,this.cdr=i}ngOnInit(){this.topologies$=this.apiService.getTopologie()}sortDesc(e,i){return de(e,i)}topologyByDate(e){this.timeStamp=e}deleteTopologyByDate(e){this.apiService.deleteTopologieByTimeStamp(e).subscribe(()=>{this.topologies$=this.apiService.getTopologie(),this.cdr.detectChanges()})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(t.gRc))};static \u0275cmp=t.VBU({type:o,selectors:[["app-topology"]],decls:14,vars:4,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.topo.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","d-sm-flex gap-2",4,"ngFor","ngForOf"],[1,"d-sm-flex","gap-2"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"click","title"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.j41(2,"div",1),t.EFF(3,"\n "),t.DNE(4,wo,28,7,"div",2),t.nI1(5,"async"),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div"),t.nrm(9,"app-req-topology"),t.k0s(),t.EFF(10,"\n"),t.k0s(),t.EFF(11,"\n"),t.DNE(12,_o,2,1,"div",3),t.EFF(13,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",t.bMT(5,2,a.topologies$)),t.R7$(8),t.Y8G("ngIf",a.timeStamp))},dependencies:[y.Sq,y.bT,it.Mm,le,vo,bo,y.Jj,y.vh,y.lG,it.D9],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]})}return o})(),data:{title:(0,he.o6)("network.topo")}},{path:"energy-level",component:no,data:{title:(0,he.o6)("network.energy")}}];let ko=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=t.$C({type:o});static \u0275inj=t.G2t({imports:[ce.iI.forChild(So),ce.iI]})}return o})(),xo=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=t.$C({type:o});static \u0275inj=t.G2t({providers:[{provide:et.SV,useFactory:()=>[Q,K,I,S,O]}],imports:[ko,ht.G,et.Fr,Qe]})}return o})()},69820:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/DependencyWheel/DependencyWheelPoint.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{sankey:{prototype:{pointClass:E}}}=O.seriesTypes,{pInt:t,wrap:T}=I;return class N extends E{getDataLabelPath(P){const c=this,h=c.series.chart.renderer,m=c.shapeArgs,_=c.angle<0||c.angle>Math.PI,f=m.start||0,k=m.end||0;return c.dataLabelPath?(c.dataLabelPath=c.dataLabelPath.destroy(),delete c.dataLabelPath):T(P,"destroy",function(n){return c.dataLabelPath&&(c.dataLabelPath=c.dataLabelPath.destroy()),n.call(this)}),c.dataLabelPath=h.arc({open:!0,longArc:Math.abs(Math.abs(f)-Math.abs(k)){v.graphic&&v.graphic.animate({opacity:1},{duration:b})},b*p++))}for(const v of l.points){const D=v.graphic;!v.isNode&&D&&D.attr({opacity:0}).animate({opacity:1},l.options.animation)}}}createNode(d){const l=super.createNode(d);return l.getSum=()=>l.linksFrom.concat(l.linksTo).reduce((g,b)=>g+b.weight,0),l.offset=g=>{const b=r=>r.fromNode===l?r.toNode:r.fromNode;let D,p=0,v=l.linksFrom.concat(l.linksTo);v.sort((r,u)=>b(r).index-b(u).index);for(let r=0;rl.index){v=v.slice(0,r).reverse().concat(v.slice(r).reverse()),D=!0;break}D||v.reverse();for(let r=0;r{const G=g*B,H=Math.cos(p+G)*(z+1),rt=Math.sin(p+G)*(z+1);return $=l.curveFactor||0,Y=Math.abs(q.linkBase[3-U]*g-G),Y>Math.PI&&(Y=2*Math.PI-Y),Y*=z,Y{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/DragNodesComposition.js",[S["Core/Globals.js"],S["Core/Utilities.js"]],function(O,I){const{composed:E}=O,{addEvent:t,pushUnique:T}=I;function j(){const f=this;let k,n,s;f.container&&(k=t(f.container,"mousedown",d=>{const l=f.hoverPoint;l&&l.series&&l.series.hasDraggableNodes&&l.series.options.draggable&&(l.series.onMouseDown(l,d),n=t(f.container,"mousemove",g=>l&&l.series&&l.series.onMouseMove(l,g)),s=t(f.container.ownerDocument,"mouseup",g=>(n(),s(),l&&l.series&&l.series.onMouseUp(l,g))))})),t(f,"destroy",function(){k()})}return{compose:function N(f){T(E,"DragNodes")&&t(f,"load",j)},onMouseDown:function P(f,k){const n=this.chart.pointer?.normalize(k)||k;f.fixedPosition={chartX:n.chartX,chartY:n.chartY,plotX:f.plotX,plotY:f.plotY},f.inDragMode=!0},onMouseMove:function c(f,k){if(f.fixedPosition&&f.inDragMode){const s=this.chart,d=s.pointer?.normalize(k)||k,l=f.fixedPosition.chartX-d.chartX,g=f.fixedPosition.chartY-d.chartY,b=s.graphLayoutsLookup;let p,v;(Math.abs(l)>5||Math.abs(g)>5)&&(p=f.fixedPosition.plotX-l,v=f.fixedPosition.plotY-g,s.isInsidePlot(p,v)&&(f.plotX=p,f.plotY=v,f.hasDragged=!0,this.redrawHalo(f),b.forEach(D=>{D.restartSimulation()})))}},onMouseUp:function h(f){f.fixedPosition&&(f.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),f.inDragMode=f.hasDragged=!1,this.options.fixedDraggable||delete f.fixedPosition)},redrawHalo:function m(f){f&&this.halo&&this.halo.attr({d:f.haloPath(this.options.states.hover.halo.size)})}}}),K(S,"Series/GraphLayoutComposition.js",[S["Core/Animation/AnimationUtilities.js"],S["Core/Globals.js"],S["Core/Utilities.js"]],function(O,I,E){const{setAnimation:t}=O,{composed:T}=I,{addEvent:N,pushUnique:j}=E;function m(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(s=>{s.updateSimulation()}),this.redraw())}function _(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(s=>{s.updateSimulation(!1)}),this.redraw())}function f(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(s=>{s.stop()})}function k(){let s,d=!1;const l=g=>{g.maxIterations--&&isFinite(g.temperature)&&!g.isStable()&&!g.enableSimulation&&(g.beforeStep&&g.beforeStep(),g.step(),s=!1,d=!0)};if(this.graphLayoutsLookup){for(t(!1,this),this.graphLayoutsLookup.forEach(g=>g.start());!s;)s=!0,this.graphLayoutsLookup.forEach(l);d&&this.series.forEach(g=>{g&&g.layout&&g.render()})}}return{compose:function h(s){j(T,"GraphLayout")&&(N(s,"afterPrint",m),N(s,"beforePrint",_),N(s,"predraw",f),N(s,"render",k))},integrations:{},layouts:{}}}),K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{series:{prototype:E,prototype:{pointClass:{prototype:t}}}}=O,{defined:T,extend:N,find:j,merge:P,pick:c}=I;var h;return function(m){function k(){return this.data=[].concat(this.points||[],this.nodes),E.destroy.apply(this,arguments)}function s(){this.nodes&&(this.nodes.forEach(g=>{g.destroy()}),this.nodes.length=0),E.setData.apply(this,arguments)}function d(g){const b=arguments,p=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==g&&p.forEach(v=>{v&&v.series&&(t.setState.apply(v,b),v.isNode||(v.fromNode.graphic&&t.setState.apply(v.fromNode,b),v.toNode&&v.toNode.graphic&&t.setState.apply(v.toNode,b)))}),t.setState.apply(this,b)}function l(g,b,p,v){const D=this.series.options.nodes,r=this.series.options.data,u=r&&r.length||0,w=r&&r[this.index];if(t.update.call(this,g,!this.isNode&&b,p,v),this.isNode){const C=(D||[]).reduce((A,z,V)=>this.id===z.id?V:A,-1),y=P(D&&D[C]||{},r&&r[this.index]||{});r&&(w?r[this.index]=w:r.length=u),D?C>=0?D[C]=y:D.push(y):this.series.options.nodes=[y],c(b,!0)&&this.series.chart.redraw(p)}}m.compose=function _(g,b){const p=g.prototype,v=b.prototype;return p.setNodeState=d,p.setState=d,p.update=l,v.destroy=k,v.setData=s,b},m.createNode=function f(g){const b=this.pointClass,p=(r,u)=>j(r,w=>w.id===u);let D,v=p(this.nodes,g);if(!v){D=this.options.nodes&&p(this.options.nodes,g);const r=new b(this,N({className:"highcharts-node",isNode:!0,id:g,y:1},D));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let u=0,w=0;return r.linksTo.forEach(C=>{u+=C.weight||0}),r.linksFrom.forEach(C=>{w+=C.weight||0}),Math.max(u,w)},r.offset=function(u,w){let C=0;for(let y=0;y{w.outgoing&&u++}),!r.linksTo.length||u!==r.linksTo.length},r.index=this.nodes.push(r)-1,v=r}return v.formatPrefix="node",v.name=v.name||v.options.id||"",v.mass=c(v.options.mass,v.options.marker&&v.options.marker.radius,this.options.marker&&this.options.marker.radius,4),v},m.destroy=k,m.generatePoints=function n(){const g=this.chart,b={};E.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(p=>{p.linksFrom.length=0,p.linksTo.length=0,p.level=p.options.level}),this.points.forEach(p=>{T(p.from)&&(b[p.from]||(b[p.from]=this.createNode(p.from)),b[p.from].linksFrom.push(p),p.fromNode=b[p.from],g.styledMode?p.colorIndex=c(p.options.colorIndex,b[p.from].colorIndex):p.color=p.options.color||b[p.from].color),T(p.to)&&(b[p.to]||(b[p.to]=this.createNode(p.to)),b[p.to].linksTo.push(p),p.toNode=b[p.to]),p.name=p.name||p.id},this),this.nodeLookup=b},m.setNodeState=d,m.updateNode=l}(h||(h={})),h}),K(S,"Series/Networkgraph/NetworkgraphPoint.js",[S["Series/NodesComposition.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){const{series:{prototype:t,prototype:{pointClass:T}}}=I,{addEvent:N,css:j,defined:P,extend:c,pick:h}=E;class m extends T{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(f){f.destroyElements&&f.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),T.prototype.destroy.apply(this,arguments)}getDegree(){const f=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===f?1:f}getLinkAttributes(){const f=this.series.options.link,k=this.options;return{"stroke-width":h(k.width,f.width),stroke:k.color||f.color,dashstyle:k.dashStyle||f.dashStyle,opacity:h(k.opacity,f.opacity,1)}}getLinkPath(){let f=this.fromNode,k=this.toNode;return f.plotX>k.plotX&&(f=this.toNode,k=this.fromNode),[["M",f.plotX||0,f.plotY||0],["L",k.plotX||0,k.plotY||0]]}getMass(){const f=this.fromNode.mass,k=this.toNode.mass,n=f+k;return{fromNode:1-f/n,toNode:1-k/n}}constructor(f,k,n){super(f,k,n),this.series.options.draggable&&!this.series.chart.styledMode&&(N(this,"mouseOver",function(){j(this.series.chart.container,{cursor:"move"})}),N(this,"mouseOut",function(){j(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||P(this.id)}redrawLink(){let k,f=this.getLinkPath();if(this.graphic){this.shapeArgs={d:f},this.series.chart.styledMode||(k=this.series.pointAttribs(this),this.graphic.attr(k),(this.dataLabels||[]).forEach(function(d){d&&d.attr({opacity:k.opacity})})),this.graphic.animate(this.shapeArgs);const n=f[0],s=f[1];"M"===n[0]&&"L"===s[0]&&(this.plotX=(n[1]+s[1])/2,this.plotY=(n[2]+s[2])/2)}}remove(f,k){let l,n=this,s=n.series,d=s.options.nodes||[],g=d.length;if(n.isNode){for(s.points=[],[].concat(n.linksFrom).concat(n.linksTo).forEach(function(b){l=b.fromNode.linksFrom.indexOf(b),l>-1&&b.fromNode.linksFrom.splice(l,1),l=b.toNode.linksTo.indexOf(b),l>-1&&b.toNode.linksTo.splice(l,1),t.removePoint.call(s,s.data.indexOf(b),!1,!1)}),s.points=s.data.slice(),s.nodes.splice(s.nodes.indexOf(n),1);g--;)if(d[g].id===n.options.id){s.options.nodes.splice(g,1);break}n&&n.destroy(),s.isDirty=!0,s.isDirtyData=!0,f&&s.chart.redraw(f)}else s.removePoint(s.data.indexOf(n),f,k)}renderLink(){let f;this.graphic||(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(f=this.series.pointAttribs(this),this.graphic.attr(f),(this.dataLabels||[]).forEach(function(k){k&&k.attr({opacity:f.opacity})})))}}return c(m.prototype,{setState:O.setNodeState}),m}),K(S,"Series/Networkgraph/NetworkgraphSeriesDefaults.js",[],function(){return{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,animation:{duration:50}}},dataLabels:{formatter:function(){return this.key},linkFormatter:function(){return this.point.fromNode.name+"
    "+this.point.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}}),K(S,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function O(c,h,m,_){const f=c.getMass(),k=m.x/_*h,n=m.y/_*h;c.fromNode.fixedPosition||(c.fromNode.dispX-=k*f.fromNode/c.fromNode.degree,c.fromNode.dispY-=n*f.fromNode/c.fromNode.degree),c.toNode.fixedPosition||(c.toNode.dispX+=k*f.toNode/c.toNode.degree,c.toNode.dispY+=n*f.toNode/c.toNode.degree)},attractiveForceFunction:function I(c,h){return c*c/h},barycenter:function E(){const c=this.options.gravitationalConstant,h=this.barycenter.xFactor,m=this.barycenter.yFactor;this.nodes.forEach(function(_){if(!_.fixedPosition){const f=_.getDegree(),k=f*(1+f/2);_.dispX+=(h-_.plotX)*c*k/_.degree,_.dispY+=(m-_.plotY)*c*k/_.degree}})},getK:function t(c){return Math.pow(c.box.width*c.box.height/c.nodes.length,.3)},integrate:function T(c,h){let m;h.dispX+=h.dispX*c.options.friction,h.dispY+=h.dispY*c.options.friction,m=h.temperature=c.vectorLength({x:h.dispX,y:h.dispY}),0!==m&&(h.plotX+=h.dispX/m*Math.min(Math.abs(h.dispX),c.temperature),h.plotY+=h.dispY/m*Math.min(Math.abs(h.dispY),c.temperature))},repulsive:function N(c,h,m,_){c.dispX+=m.x/_*h/c.degree,c.dispY+=m.y/_*h/c.degree},repulsiveForceFunction:function j(c,h){return h*h/c}}}),K(S,"Series/Networkgraph/QuadTreeNode.js",[],function(){class O{constructor(E){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=E,this.boxSize=Math.min(E.width,E.height)}divideBox(){const E=this.box.width/2,t=this.box.height/2;this.nodes[0]=new O({left:this.box.left,top:this.box.top,width:E,height:t}),this.nodes[1]=new O({left:this.box.left+E,top:this.box.top,width:E,height:t}),this.nodes[2]=new O({left:this.box.left+E,top:this.box.top+t,width:E,height:t}),this.nodes[3]=new O({left:this.box.left,top:this.box.top+t,width:E,height:t})}getBoxPosition(E){const T=E.plotYc?1:0)}}}),K(S,"Series/Networkgraph/ReingoldFruchtermanLayout.js",[S["Series/Networkgraph/EulerIntegration.js"],S["Core/Globals.js"],S["Series/GraphLayoutComposition.js"],S["Series/Networkgraph/QuadTree.js"],S["Core/Utilities.js"],S["Series/Networkgraph/VerletIntegration.js"]],function(O,I,E,t,T,N){const{win:j}=I,{clamp:P,defined:c,isFunction:h,fireEvent:m,pick:_}=T;class f{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(n){E.compose(n),E.integrations.euler=O,E.integrations.verlet=N,E.layouts["reingold-fruchterman"]=f}init(n){this.options=n,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=E.integrations[n.integration],this.enableSimulation=n.enableSimulation,this.attractiveForce=_(n.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=_(n.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=n.approximation}updateSimulation(n){this.enableSimulation=_(n,this.options.enableSimulation)}start(){const n=this,s=this.series,d=this.options;n.currentStep=0,n.forces=s[0]&&s[0].forces||[],n.chart=s[0]&&s[0].chart,n.initialRendering&&(n.initPositions(),s.forEach(function(l){l.finishedAnimating=!0,l.render()})),n.setK(),n.resetSimulation(d),n.enableSimulation&&n.step()}step(){const n=this,s=this.series;this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter());for(const d of this.forces||[])n[d+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(const d of s)d.chart&&d.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&j.cancelAnimationFrame(this.simulation),this.simulation=j.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(d=>{m(d,"afterSimulation")}))}}stop(){this.simulation&&j.cancelAnimationFrame(this.simulation)}setArea(n,s,d,l){this.box={left:n,top:s,width:d,height:l}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(n,s){for(const d of n)-1===s.indexOf(d)&&s.push(d)}removeElementFromCollection(n,s){const d=s.indexOf(n);-1!==d&&s.splice(d,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(n){this.maxIterations=_(n,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(n){this.initialRendering=n}createQuadTree(){this.quadTree=new t(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const n=this.options.initialPositions;if(h(n)){n.call(this);for(const s of this.nodes)c(s.prevX)||(s.prevX=s.plotX),c(s.prevY)||(s.prevY=s.plotY),s.dispX=0,s.dispY=0}else"circle"===n?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const n=this.box,s=this.nodes,l=2*Math.PI/(s.length+1),g=s.filter(function(u){return 0===u.linksTo.length}),b={},p=this.options.initialPositionRadius,v=u=>{for(const w of u.linksFrom||[])b[w.toNode.id]||(b[w.toNode.id]=!0,D.push(w.toNode),v(w.toNode))};let r,D=[];for(const u of g)D.push(u),v(u);if(D.length)for(const u of s)-1===D.indexOf(u)&&D.push(u);else D=s;for(let u=0,w=D.length;u{let p=b*b/Math.PI;return p-=Math.floor(p),p};let g;for(let b=0,p=s.length;bthis.barnesHutApproximation(n,s));else{let n,s,d;for(const l of this.nodes)for(const g of this.nodes)l!==g&&!l.fixedPosition&&(d=this.getDistXY(l,g),s=this.vectorLength(d),0!==s&&(n=this.repulsiveForce(s,this.k),this.force("repulsive",l,n*g.mass,d,s)))}}attractiveForces(){let n,s,d;for(const l of this.links)l.fromNode&&l.toNode&&(n=this.getDistXY(l.fromNode,l.toNode),s=this.vectorLength(n),0!==s&&(d=this.attractiveForce(s,this.k),this.force("attractive",l,d,n,s)))}applyLimits(){const n=this.nodes;for(const s of n){if(s.fixedPosition)return;this.integration.integrate(this,s),this.applyLimitBox(s,this.box),s.dispX=0,s.dispY=0}}applyLimitBox(n,s){const d=n.radius;n.plotX=P(n.plotX,s.left+d,s.width-d),n.plotY=P(n.plotY,s.top+d,s.height-d)}coolDown(n,s,d){return n-s*d}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let n=0;for(const s of this.nodes)n+=s.temperature;return n}vectorLength(n){return Math.sqrt(n.x*n.x+n.y*n.y)}getDistR(n,s){const d=this.getDistXY(n,s);return this.vectorLength(d)}getDistXY(n,s){const d=n.plotX-s.plotX,l=n.plotY-s.plotY;return{x:d,y:l,absX:Math.abs(d),absY:Math.abs(l)}}}return f}),K(S,"Series/SimulationSeriesUtilities.js",[S["Core/Utilities.js"],S["Core/Animation/AnimationUtilities.js"]],function(O,I){const{merge:E,syncTimeout:t}=O,{animObject:T}=I;return{initDataLabels:function j(){const c=this,h=c.options.dataLabels;if(!c.dataLabelsGroup){const m=this.initDataLabelsGroup();return!c.chart.styledMode&&h?.style&&m.css(h.style),m.attr({opacity:0}),c.visible&&m.show(),m}return c.dataLabelsGroup.attr(E({opacity:1},this.getPlotBox("data-labels"))),c.dataLabelsGroup},initDataLabelsDefer:function N(){const c=this.options.dataLabels;c?.defer&&this.options.layoutAlgorithm?.enableSimulation?t(()=>{this.deferDataLabels=!1},c?T(c.animation).defer:0):this.deferDataLabels=!1}}}),K(S,"Series/Networkgraph/NetworkgraphSeries.js",[S["Series/DragNodesComposition.js"],S["Series/GraphLayoutComposition.js"],S["Core/Globals.js"],S["Series/Networkgraph/NetworkgraphPoint.js"],S["Series/Networkgraph/NetworkgraphSeriesDefaults.js"],S["Series/NodesComposition.js"],S["Series/Networkgraph/ReingoldFruchtermanLayout.js"],S["Core/Series/SeriesRegistry.js"],S["Series/SimulationSeriesUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c,h){const{noop:m}=E,{series:_,seriesTypes:{column:{prototype:f},line:{prototype:k}}}=P,{initDataLabels:n,initDataLabelsDefer:s}=c,{addEvent:d,defined:l,extend:g,merge:b,pick:p}=h;class v extends _{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(r){O.compose(r),j.compose(r)}deferLayout(){let y,r=this.options.layoutAlgorithm,u=this.chart.graphLayoutsStorage,w=this.chart.graphLayoutsLookup,C=this.chart.options.chart;this.visible&&(u||(this.chart.graphLayoutsStorage=u={},this.chart.graphLayoutsLookup=w=[]),y=u[r.type],y||(r.enableSimulation=l(C.forExport)?!C.forExport:r.enableSimulation,u[r.type]=y=new I.layouts[r.type],y.init(r),w.splice(y.index,0,y)),this.layout=y,y.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),y.addElementsToCollection([this],y.series),y.addElementsToCollection(this.nodes,y.nodes),y.addElementsToCollection(this.points,y.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),N.destroy.call(this)}drawDataLabels(){if(this.deferDataLabels)return;const r=this.options.dataLabels;let u;r?.textPath&&(u=r.textPath),_.prototype.drawDataLabels.call(this,this.nodes),r?.linkTextPath&&(r.textPath=r.linkTextPath),_.prototype.drawDataLabels.call(this,this.data),r?.textPath&&(r.textPath=u)}generatePoints(){let r,u;for(N.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(w){this.nodeLookup[w.id]||(this.nodeLookup[w.id]=this.createNode(w.id))},this),u=this.nodes.length-1;u>=0;u--)r=this.nodes[u],r.degree=r.getDegree(),r.radius=p(r.marker&&r.marker.radius,this.options.marker&&this.options.marker.radius,0),this.nodeLookup[r.id]||r.remove();this.data.forEach(function(w){w.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(r,u){r.index=u})}init(r,u){return super.init(r,u),s.call(this),d(this,"updatedData",()=>{this.layout&&this.layout.stop()}),d(this,"afterUpdate",()=>{this.nodes.forEach(w=>{w&&w.series&&w.resolveColor()})}),d(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(r,u){const w=_.prototype.markerAttribs.call(this,r,u);return l(r.plotY)||(w.y=0),w.x=(r.plotX||0)-(w.width||0)/2,w}pointAttribs(r,u){let w=u||r&&r.state||"normal",C=_.prototype.pointAttribs.call(this,r,w),y=this.options.states[w];return r&&!r.isNode&&(C=r.getLinkAttributes(),y&&(C={stroke:y.linkColor||C.stroke,dashstyle:y.linkDashStyle||C.dashstyle,opacity:p(y.linkOpacity,C.opacity),"stroke-width":y.linkColor||C["stroke-width"]})),C}render(){const r=this,u=r.points,w=r.chart.hoverPoint,C=[];r.points=r.nodes,k.render.call(this),r.points=u,u.forEach(function(y){y.fromNode&&y.toNode&&(y.renderLink(),y.redrawLink())}),w&&w.series===r&&r.redrawHalo(w),r.chart.hasRendered&&!r.options.dataLabels.allowOverlap&&(r.nodes.concat(r.points).forEach(function(y){y.dataLabel&&C.push(y.dataLabel)}),r.chart.hideOverlappingLabels(C))}setState(r,u){u?(this.points=this.nodes.concat(this.data),_.prototype.setState.apply(this,arguments),this.points=this.data):_.prototype.setState.apply(this,arguments),!this.layout.simulation&&!r&&this.render()}translate(){this.processedXData||this.processData(),this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(r){r.isInside=!0,r.linksFrom.forEach(function(u){u.shapeType="path",u.y=1})})}}return v.defaultOptions=b(_.defaultOptions,T),g(v.prototype,{pointClass:t,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:n,buildKDTree:m,createNode:N.createNode,drawTracker:f.drawTracker,onMouseDown:O.onMouseDown,onMouseMove:O.onMouseMove,onMouseUp:O.onMouseUp,redrawHalo:O.redrawHalo}),P.registerSeriesType("networkgraph",v),v}),K(S,"masters/modules/networkgraph.src.js",[S["Core/Globals.js"],S["Series/Networkgraph/NetworkgraphSeries.js"]],function(O,I){return I.compose(O.Chart),O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))},95606:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){var E;let{series:{prototype:t,prototype:{pointClass:{prototype:T}}}}=O,{defined:N,extend:j,find:P,merge:c,pick:h}=I;return function(m){function _(){return this.data=[].concat(this.points||[],this.nodes),t.destroy.apply(this,arguments)}function f(){this.nodes&&(this.nodes.forEach(s=>{s.destroy()}),this.nodes.length=0),t.setData.apply(this,arguments)}function k(s){let d=arguments,l=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==s&&l.forEach(g=>{g&&g.series&&(T.setState.apply(g,d),!g.isNode&&(g.fromNode.graphic&&T.setState.apply(g.fromNode,d),g.toNode&&g.toNode.graphic&&T.setState.apply(g.toNode,d)))}),T.setState.apply(this,d)}function n(s,d,l,g){let b=this.series.options.nodes,p=this.series.options.data,v=p&&p.length||0,D=p&&p[this.index];if(T.update.call(this,s,!this.isNode&&d,l,g),this.isNode){let r=(b||[]).reduce((w,C,y)=>this.id===C.id?y:w,-1),u=c(b&&b[r]||{},p&&p[this.index]||{});p&&(D?p[this.index]=D:p.length=v),b?r>=0?b[r]=u:b.push(u):this.series.options.nodes=[u],h(d,!0)&&this.series.chart.redraw(l)}}m.compose=function(s,d){let l=s.prototype,g=d.prototype;return l.setNodeState=k,l.setState=k,l.update=n,g.destroy=_,g.setData=f,d},m.createNode=function(s){let b,d=this.pointClass,l=(p,v)=>P(p,D=>D.id===v),g=l(this.nodes,s);if(!g){b=this.options.nodes&&l(this.options.nodes,s);let p=new d(this,j({className:"highcharts-node",isNode:!0,id:s,y:1},b));p.linksTo=[],p.linksFrom=[],p.getSum=function(){let v=0,D=0;return p.linksTo.forEach(r=>{v+=r.weight||0}),p.linksFrom.forEach(r=>{D+=r.weight||0}),Math.max(v,D)},p.offset=function(v,D){let r=0;for(let u=0;u{D.outgoing&&v++}),!p.linksTo.length||v!==p.linksTo.length},p.index=this.nodes.push(p)-1,g=p}return g.formatPrefix="node",g.name=g.name||g.options.id||"",g.mass=h(g.options.mass,g.options.marker&&g.options.marker.radius,this.options.marker&&this.options.marker.radius,4),g},m.destroy=_,m.generatePoints=function(){let s=this.chart,d={};t.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(l=>{l.linksFrom.length=0,l.linksTo.length=0,l.level=l.options.level}),this.points.forEach(l=>{N(l.from)&&(d[l.from]||(d[l.from]=this.createNode(l.from)),d[l.from].linksFrom.push(l),l.fromNode=d[l.from],s.styledMode?l.colorIndex=h(l.options.colorIndex,d[l.from].colorIndex):l.color=l.options.color||d[l.from].color),N(l.to)&&(d[l.to]||(d[l.to]=this.createNode(l.to)),d[l.to].linksTo.push(l),l.toNode=d[l.to]),l.name=l.name||l.id},this),this.nodeLookup=d},m.setNodeState=k,m.updateNode=n}(E||(E={})),E}),K(S,"Series/Sankey/SankeyPoint.js",[S["Core/Series/Point.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){let{column:t}=I.seriesTypes,{defined:T}=E;return class N extends t.prototype.pointClass{applyOptions(P,c){return O.prototype.applyOptions.call(this,P,c),T(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+O.prototype.getClassName.call(this)}getFromNode(){let c,P=-1;for(let h=0;hP&&m.fromNode!==this&&(P=(c=m.fromNode).column)}return{fromNode:c,fromColumn:P}}setNodeColumn(){T(this.options.column)||(this.column=0===this.linksTo.length?0:this.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}}),K(S,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
    ',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
    ",nodeFormat:"{point.name}: {point.sum}
    "}}}),K(S,"Series/Sankey/SankeyColumnComposition.js",[S["Core/Utilities.js"]],function(O){var I;let{defined:E,relativeLength:t}=O;return function(T){T.compose=function(j,P){return j.sankeyColumn=new N(j,P),j};class N{constructor(P,c){this.points=P,this.series=c}getTranslationFactor(P){let f,n,c=this.points,h=c.slice(),_=P.options.minLinkWidth||0,k=0,s=(P.chart.plotSizeY||0)-(P.options.borderWidth||0)-(c.length-1)*P.nodePadding;for(;c.length;){for(k=s/c.sankeyColumn.sum(),f=!1,n=c.length;n--;)c[n].getSum()*k<_&&(c.splice(n,1),s=Math.max(0,s-_),f=!0);if(!f)break}for(let d of(c.length=0,h))c.push(d);return k}top(P){let c=this.series,h=c.nodePadding,m=this.points.reduce((_,f)=>(_>0&&(_+=h),_+Math.max(f.getSum()*P,c.options.minLinkWidth||0)),0);return{top:0,center:.5,bottom:1}[c.options.nodeAlignment||"center"]*((c.chart.plotSizeY||0)-m)}left(P){let c=this.series,h=c.chart,m=c.options.equalNodes,_=h.inverted?h.plotHeight:h.plotWidth,f=c.nodePadding,k=this.points.reduce((n,s)=>(n>0&&(n+=f),n+(m?_/s.series.nodes.length-f:Math.max(s.getSum()*P,c.options.minLinkWidth||0))),0);return((h.plotSizeX||0)-Math.round(k))/2}sum(){return this.points.reduce((P,c)=>P+c.getSum(),0)}offset(P,c){let k,h=this.points,m=this.series,_=m.nodePadding,f=0;if(m.is("organization")&&P.hangsFrom)return{absoluteTop:P.hangsFrom.nodeY};for(let n=0;n{let y=f&&f.colorVariation;return y&&"brightness"===y.key&&l&&r?O.parse(C).brighten(y.to*(l/r)).get():C})(b),v.color)),d=P(_&&_.options.colorIndex,f&&f.colorIndex,n,p,m.colorIndex)),{color:s,colorIndex:d}},getLevelOptions:function(h){let _,f,k,n,s,d,m={};if(N(h))for(n=T(h.from)?h.from:1,d=h.levels,f={},_=N(h.defaults)?h.defaults:{},t(d)&&(f=d.reduce((l,g)=>{let b,p,v;return N(g)&&T(g.level)&&(p=P((v=j({},g)).levelIsConstant,_.levelIsConstant),delete v.levelIsConstant,delete v.level,N(l[b=g.level+(p?0:n-1)])?j(!0,l[b],v):l[b]=v),l},{})),s=T(h.to)?h.to:1,k=0;k<=s;k++)m[k]=j({},_,N(f[k])?f[k]:{});return m},getNodeWidth:function(h,m){let{chart:_,options:f}=h,{nodeDistance:k=0,nodeWidth:n=0}=f,{plotSizeX:s=1}=_;if("auto"===n){if("string"==typeof k&&/%$/.test(k))return s/(m+parseFloat(k)/100*(m-1));let d=Number(k);return(s+d)/(m||1)-d}return c(n,s)},setTreeValues:function h(m,_){let f=_.before,k=_.idRoot,d=_.points[m.i],l=d&&d.options||{},g=[],b=0;m.levelDynamic=m.level-(!1!==_.levelIsConstant?0:_.mapIdToNode[k].level),m.name=P(d&&d.name,""),m.visible=k===m.id||!0===_.visible,"function"==typeof f&&(m=f(m,_)),m.children.forEach((v,D)=>{let r=E({},_);E(r,{index:D,siblings:m.children.length,visible:m.visible}),v=h(v,r),g.push(v),v.visible&&(b+=v.val)});let p=P(l.value,b);return m.visible=p>=0&&(b>0||m.visible),m.children=g,m.childrenTotal=b,m.isLeaf=m.visible&&!b,m.val=p,m},updateRootId:function(h){let m,_;return N(h)&&(_=N(h.options)?h.options:{},m=P(h.rootNode,_.rootId,""),N(h.userOptions)&&(h.userOptions.rootId=m),h.rootNode=m),m}}}),K(S,"Series/Sankey/SankeySeries.js",[S["Core/Globals.js"],S["Series/NodesComposition.js"],S["Series/Sankey/SankeyPoint.js"],S["Series/Sankey/SankeySeriesDefaults.js"],S["Core/Series/SeriesRegistry.js"],S["Series/Sankey/SankeyColumnComposition.js"],S["Core/Color/Color.js"],S["Series/TreeUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c){let{column:h,line:m}=T.seriesTypes,{parse:_}=j,{getLevelOptions:f,getNodeWidth:k}=P,{clamp:n,extend:s,isObject:d,merge:l,pick:g,relativeLength:b,stableSort:p}=c;class v extends h{static getDLOptions(r){let u=d(r.optionsPoint)?r.optionsPoint.dataLabels:{};return l({style:{}},d(r.level)?r.level.dataLabels:{},u)}createNodeColumns(){let r=[];for(let u of this.nodes)u.setNodeColumn(),r[u.column]||(r[u.column]=N.compose([],this)),r[u.column].push(u);for(let u=0;ur.level-u.level)}}getNodePadding(){let r=this.options.nodePadding||0;if(this.nodeColumns){let u=this.nodeColumns.reduce((w,C)=>Math.max(w,C.length),0);u*r>this.chart.plotSizeY&&(r=this.chart.plotSizeY/u)}return r}hasData(){return!!this.processedXData.length}pointAttribs(r,u){if(!r)return{};let w=this,y=w.mapOptionsToLevel[(r.isNode?r.level:r.fromNode.level)||0]||{},A=r.options,z=y.states&&y.states[u||""]||{},V=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((q,$)=>(q[$]=g(z[$],A[$],y[$],w.options[$]),q),{}),Z=g(z.color,A.color,V.colorByPoint?r.color:y.color);return r.isNode?{fill:Z,stroke:V.borderColor,"stroke-width":V.borderWidth,opacity:V.opacity}:{fill:j.parse(Z).setOpacity(V.linkOpacity).get()}}drawTracker(){h.prototype.drawTracker.call(this,this.points),h.prototype.drawTracker.call(this,this.nodes)}drawPoints(){h.prototype.drawPoints.call(this,this.points),h.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){h.prototype.drawDataLabels.call(this,this.points),h.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns();let r=this,u=this.chart,w=this.options,C=this.nodeColumns,y=C.length;for(let A of(this.nodeWidth=k(this,y),this.nodePadding=this.getNodePadding(),this.translationFactor=C.reduce((z,V)=>Math.min(z,V.sankeyColumn.getTranslationFactor(r)),1/0),this.colDistance=(u.plotSizeX-this.nodeWidth-w.borderWidth)/Math.max(1,C.length-1),r.mapOptionsToLevel=f({from:1,levels:w.levels,to:C.length-1,defaults:{borderColor:w.borderColor,borderRadius:w.borderRadius,borderWidth:w.borderWidth,color:r.color,colorByPoint:w.colorByPoint,levelIsConstant:!0,linkColor:w.linkColor,linkLineWidth:w.linkLineWidth,linkOpacity:w.linkOpacity,states:w.states}}),C))for(let z of A)r.translateNode(z,A);for(let A of this.nodes)for(let z of A.linksFrom)(z.weight||z.isNull)&&z.to&&(r.translateLink(z),z.allowShadow=!1)}translateLink(r){let u=(tt,ot)=>{let st=tt.offset(r,ot)*z;return Math.min(tt.nodeY+st,tt.nodeY+(tt.shapeArgs&&tt.shapeArgs.height||0)-B)},w=r.fromNode,C=r.toNode,y=this.chart,{inverted:A}=y,z=this.translationFactor,V=this.options,Z=g(r.linkColorMode,V.linkColorMode),q=(y.inverted?-this.colDistance:this.colDistance)*V.curveFactor,$=w.nodeX,Y=C.nodeX,J=r.outgoing,B=Math.max(r.weight*z,this.options.minLinkWidth),U=u(w,"linksFrom"),G=u(C,"linksTo"),H=this.nodeWidth,rt=Y>$+H;if(y.inverted&&(U=y.plotSizeY-U,G=(y.plotSizeY||0)-G,H=-H,B=-B,rt=$>Y),r.shapeType="path",r.linkBase=[U,U+B,G,G+B],rt&&"number"==typeof G)r.shapeArgs={d:[["M",$+H,U],["C",$+H+q,U,Y-q,G,Y,G],["L",Y+(J?H:0),G+B/2],["L",Y,G+B],["C",Y-q,G+B,$+H+q,U+B,$+H,U+B],["Z"]]};else if("number"==typeof G){let ot=Y-20-B,st=Y-20,at=$+H,lt=at+20,ft=lt+B,gt=U+B,St=gt+20,dt=St+(y.plotHeight-U-B),ct=dt+20,mt=ct+B,bt=G+B,kt=bt+20,Et=ct+.7*B,Pt=Y-.7*B,Tt=at+.7*B;r.shapeArgs={d:[["M",at,U],["C",Tt,U,ft,gt-.7*B,ft,St],["L",ft,dt],["C",ft,Et,Tt,mt,at,mt],["L",Y,mt],["C",Pt,mt,ot,Et,ot,dt],["L",ot,kt],["C",ot,bt-.7*B,Pt,G,Y,G],["L",Y,bt],["C",st,bt,st,bt,st,kt],["L",st,dt],["C",st,ct,st,ct,Y,ct],["L",at,ct],["C",lt,ct,lt,ct,lt,dt],["L",lt,St],["C",lt,gt,lt,gt,at,gt],["Z"]]}}if(r.dlBox={x:$+(Y-$+H)/2,y:U+(G-U)/2,height:B,width:0},r.tooltipPos=y.inverted?[y.plotSizeY-r.dlBox.y-B/2,y.plotSizeX-r.dlBox.x]:[r.dlBox.x,r.dlBox.y+B/2],r.y=r.plotY=1,r.x=r.plotX=1,!r.options.color)if("from"===Z)r.color=w.color;else if("to"===Z)r.color=C.color;else if("gradient"===Z){let tt=_(w.color).get(),ot=_(C.color).get();r.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,A?tt:ot],[1,A?ot:tt]]}}}translateNode(r,u){let w=this.translationFactor,C=this.chart,y=this.options,{borderRadius:A,borderWidth:z=0}=y,V=r.getSum(),Z=Math.max(Math.round(V*w),this.options.minLinkWidth),q=Math.round(this.nodeWidth),$=Math.round(z)%2/2,Y=u.sankeyColumn.offset(r,w),J=Math.floor(g(Y.absoluteTop,u.sankeyColumn.top(w)+Y.relativeTop))+$,B=Math.floor(this.colDistance*r.column+z/2)+b(r.options[C.inverted?"offsetVertical":"offsetHorizontal"]||0,q)+$,U=C.inverted?C.plotSizeX-B:B;if(r.sum=V,V){r.shapeType="roundedRect",r.nodeX=U,r.nodeY=J;let G=U,H=J,rt=r.options.width||y.width||q,tt=r.options.height||y.height||Z,ot=n(b("object"==typeof A?A.radius:A||0,rt),0,Z/2);C.inverted&&(G=U-q,H=C.plotSizeY-J-Z,rt=r.options.height||y.height||q,tt=r.options.width||y.width||Z),r.dlOptions=v.getDLOptions({level:this.mapOptionsToLevel[r.level],optionsPoint:r.options}),r.plotX=1,r.plotY=1,r.tooltipPos=C.inverted?[C.plotSizeY-H-tt/2,C.plotSizeX-G-rt/2]:[G+rt/2,H+tt/2],r.shapeArgs={x:G,y:H,width:rt,height:tt,r:ot,display:r.hasShape()?"":"none"}}else r.dlOptions={enabled:!1}}}return v.defaultOptions=l(h.defaultOptions,t),I.compose(E,v),s(v.prototype,{animate:m.prototype.animate,createNode:I.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:E,searchPoint:O.noop}),T.registerSeriesType("sankey",v),v}),K(S,"masters/modules/sankey.src.js",[S["Core/Globals.js"]],function(O){return O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))},55782:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{series:{prototype:E,prototype:{pointClass:{prototype:t}}}}=O,{defined:T,extend:N,find:j,merge:P,pick:c}=I;var h;return function(m){function k(){return this.data=[].concat(this.points||[],this.nodes),E.destroy.apply(this,arguments)}function s(){this.nodes&&(this.nodes.forEach(g=>{g.destroy()}),this.nodes.length=0),E.setData.apply(this,arguments)}function d(g){const b=arguments,p=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==g&&p.forEach(v=>{v&&v.series&&(t.setState.apply(v,b),v.isNode||(v.fromNode.graphic&&t.setState.apply(v.fromNode,b),v.toNode&&v.toNode.graphic&&t.setState.apply(v.toNode,b)))}),t.setState.apply(this,b)}function l(g,b,p,v){const D=this.series.options.nodes,r=this.series.options.data,u=r&&r.length||0,w=r&&r[this.index];if(t.update.call(this,g,!this.isNode&&b,p,v),this.isNode){const C=(D||[]).reduce((A,z,V)=>this.id===z.id?V:A,-1),y=P(D&&D[C]||{},r&&r[this.index]||{});r&&(w?r[this.index]=w:r.length=u),D?C>=0?D[C]=y:D.push(y):this.series.options.nodes=[y],c(b,!0)&&this.series.chart.redraw(p)}}m.compose=function _(g,b){const p=g.prototype,v=b.prototype;return p.setNodeState=d,p.setState=d,p.update=l,v.destroy=k,v.setData=s,b},m.createNode=function f(g){const b=this.pointClass,p=(r,u)=>j(r,w=>w.id===u);let D,v=p(this.nodes,g);if(!v){D=this.options.nodes&&p(this.options.nodes,g);const r=new b(this,N({className:"highcharts-node",isNode:!0,id:g,y:1},D));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let u=0,w=0;return r.linksTo.forEach(C=>{u+=C.weight||0}),r.linksFrom.forEach(C=>{w+=C.weight||0}),Math.max(u,w)},r.offset=function(u,w){let C=0;for(let y=0;y{w.outgoing&&u++}),!r.linksTo.length||u!==r.linksTo.length},r.index=this.nodes.push(r)-1,v=r}return v.formatPrefix="node",v.name=v.name||v.options.id||"",v.mass=c(v.options.mass,v.options.marker&&v.options.marker.radius,this.options.marker&&this.options.marker.radius,4),v},m.destroy=k,m.generatePoints=function n(){const g=this.chart,b={};E.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(p=>{p.linksFrom.length=0,p.linksTo.length=0,p.level=p.options.level}),this.points.forEach(p=>{T(p.from)&&(b[p.from]||(b[p.from]=this.createNode(p.from)),b[p.from].linksFrom.push(p),p.fromNode=b[p.from],g.styledMode?p.colorIndex=c(p.options.colorIndex,b[p.from].colorIndex):p.color=p.options.color||b[p.from].color),T(p.to)&&(b[p.to]||(b[p.to]=this.createNode(p.to)),b[p.to].linksTo.push(p),p.toNode=b[p.to]),p.name=p.name||p.id},this),this.nodeLookup=b},m.setNodeState=d,m.updateNode=l}(h||(h={})),h}),K(S,"Series/Sankey/SankeyPoint.js",[S["Core/Series/Point.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){const{column:t}=I.seriesTypes,{defined:T}=E;return class N extends t.prototype.pointClass{applyOptions(P,c){return O.prototype.applyOptions.call(this,P,c),T(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+O.prototype.getClassName.call(this)}getFromNode(){const P=this;let h,c=-1;for(let m=0;mc&&_.fromNode!==P&&(h=_.fromNode,c=h.column)}return{fromNode:h,fromColumn:c}}setNodeColumn(){const P=this;T(P.options.column)||(P.column=0===P.linksTo.length?0:P.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}}),K(S,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
    ',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
    ",nodeFormat:"{point.name}: {point.sum}
    "}}}),K(S,"Series/Sankey/SankeyColumnComposition.js",[S["Core/Utilities.js"]],function(O){const{defined:I,relativeLength:E}=O;var t;return function(T){T.compose=function N(P,c){const h=P;return h.sankeyColumn=new j(h,c),h};class j{constructor(c,h){this.points=c,this.series=h}getTranslationFactor(c){const h=this.points,m=h.slice(),f=c.options.minLinkWidth||0;let k,s,n=0,d=(c.chart.plotSizeY||0)-(c.options.borderWidth||0)-(h.length-1)*c.nodePadding;for(;h.length;){for(n=d/h.sankeyColumn.sum(),k=!1,s=h.length;s--;)h[s].getSum()*n(f>0&&(f+=m),f+Math.max(k.getSum()*c,h.options.minLinkWidth||0)),0);return{top:0,center:.5,bottom:1}[h.options.nodeAlignment||"center"]*((h.chart.plotSizeY||0)-_)}left(c){const h=this.series,m=h.chart,_=h.options.equalNodes,f=m.inverted?m.plotHeight:m.plotWidth,k=h.nodePadding,n=this.points.reduce((s,d)=>(s>0&&(s+=k),s+(_?f/d.series.nodes.length-k:Math.max(d.getSum()*c,h.options.minLinkWidth||0))),0);return((m.plotSizeX||0)-Math.round(n))/2}sum(){return this.points.reduce((c,h)=>c+h.getSum(),0)}offset(c,h){const m=this.points,_=this.series,f=_.nodePadding;let n,k=0;if(_.is("organization")&&c.hangsFrom)return{absoluteTop:c.hangsFrom.nodeY};for(let s=0;s{const J=A&&A.colorVariation;return J&&"brightness"===J.key&&l&&r?O.parse(Y).brighten(J.to*(l/r)).get():Y})(b),v.color)),q=P(y&&y.options.colorIndex,A&&A.colorIndex,V,p,d.colorIndex)),{color:Z,colorIndex:q}},getLevelOptions:function m(s){let l,g,b,p,v,D,d={};if(N(s))for(p=T(s.from)?s.from:1,D=s.levels,g={},l=N(s.defaults)?s.defaults:{},t(D)&&(g=D.reduce((r,u)=>{let w,C,y;return N(u)&&T(u.level)&&(y=j({},u),C=P(y.levelIsConstant,l.levelIsConstant),delete y.levelIsConstant,delete y.level,w=u.level+(C?0:p-1),N(r[w])?j(!0,r[w],y):r[w]=y),r},{})),v=T(s.to)?s.to:1,b=0;b<=v;b++)d[b]=j({},l,N(g[b])?g[b]:{});return d},getNodeWidth:function k(s,d){const{chart:l,options:g}=s,{nodeDistance:b=0,nodeWidth:p=0}=g,{plotSizeX:v=1}=l;if("auto"===p){if("string"==typeof b&&/%$/.test(b))return v/(d+parseFloat(b)/100*(d-1));const D=Number(b);return(v+D)/(d||1)-D}return c(p,v)},setTreeValues:function _(s,d){const l=d.before,g=d.idRoot,r=d.points[s.i],u=r&&r.options||{},w=[];let C=0;s.levelDynamic=s.level-(!1!==d.levelIsConstant?0:d.mapIdToNode[g].level),s.name=P(r&&r.name,""),s.visible=g===s.id||!0===d.visible,"function"==typeof l&&(s=l(s,d)),s.children.forEach((A,z)=>{const V=E({},d);E(V,{index:z,siblings:s.children.length,visible:s.visible}),A=_(A,V),w.push(A),A.visible&&(C+=A.val)});const y=P(u.value,C);return s.visible=y>=0&&(C>0||s.visible),s.children=w,s.childrenTotal=C,s.isLeaf=s.visible&&!C,s.val=y,s},updateRootId:function f(s){let d,l;return N(s)&&(l=N(s.options)?s.options:{},d=P(s.rootNode,l.rootId,""),N(s.userOptions)&&(s.userOptions.rootId=d),s.rootNode=d),d}}}),K(S,"Series/Sankey/SankeySeries.js",[S["Core/Globals.js"],S["Series/NodesComposition.js"],S["Series/Sankey/SankeyPoint.js"],S["Series/Sankey/SankeySeriesDefaults.js"],S["Core/Series/SeriesRegistry.js"],S["Series/Sankey/SankeyColumnComposition.js"],S["Core/Color/Color.js"],S["Series/TreeUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c){const{column:h,line:m}=T.seriesTypes,{parse:_}=j,{getLevelOptions:f,getNodeWidth:k}=P,{clamp:n,extend:s,isObject:d,merge:l,pick:g,relativeLength:b,stableSort:p}=c;class v extends h{static getDLOptions(r){const u=d(r.optionsPoint)?r.optionsPoint.dataLabels:{},w=d(r.level)?r.level.dataLabels:{};return l({style:{}},w,u)}createNodeColumns(){const r=[];for(const u of this.nodes)u.setNodeColumn(),r[u.column]||(r[u.column]=N.compose([],this)),r[u.column].push(u);for(let u=0;u"u"&&(r[u]=N.compose([],this));return r}order(r,u){const w=this;if(typeof r.level>"u"){r.level=u;for(const C of r.linksFrom)C.toNode&&w.order(C.toNode,u+1)}}generatePoints(){if(I.generatePoints.apply(this,arguments),this.orderNodes){for(const r of this.nodes)0===r.linksTo.length&&this.order(r,0);p(this.nodes,(r,u)=>r.level-u.level)}}getNodePadding(){let r=this.options.nodePadding||0;if(this.nodeColumns){const u=this.nodeColumns.reduce((w,C)=>Math.max(w,C.length),0);u*r>this.chart.plotSizeY&&(r=this.chart.plotSizeY/u)}return r}hasData(){return!!this.processedXData.length}pointAttribs(r,u){if(!r)return{};const w=this,y=w.mapOptionsToLevel[(r.isNode?r.level:r.fromNode.level)||0]||{},A=r.options,z=y.states&&y.states[u||""]||{},V=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((q,$)=>(q[$]=g(z[$],A[$],y[$],w.options[$]),q),{}),Z=g(z.color,A.color,V.colorByPoint?r.color:y.color);return r.isNode?{fill:Z,stroke:V.borderColor,"stroke-width":V.borderWidth,opacity:V.opacity}:{fill:j.parse(Z).setOpacity(V.linkOpacity).get()}}drawTracker(){h.prototype.drawTracker.call(this,this.points),h.prototype.drawTracker.call(this,this.nodes)}drawPoints(){h.prototype.drawPoints.call(this,this.points),h.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){h.prototype.drawDataLabels.call(this,this.points),h.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns();const r=this,u=this.chart,w=this.options,C=this.nodeColumns;this.nodeWidth=k(this,C.length),this.nodePadding=this.getNodePadding(),this.translationFactor=C.reduce((A,z)=>Math.min(A,z.sankeyColumn.getTranslationFactor(r)),1/0),this.colDistance=(u.plotSizeX-this.nodeWidth-w.borderWidth)/Math.max(1,C.length-1),r.mapOptionsToLevel=f({from:1,levels:w.levels,to:C.length-1,defaults:{borderColor:w.borderColor,borderRadius:w.borderRadius,borderWidth:w.borderWidth,color:r.color,colorByPoint:w.colorByPoint,levelIsConstant:!0,linkColor:w.linkColor,linkLineWidth:w.linkLineWidth,linkOpacity:w.linkOpacity,states:w.states}});for(const A of C)for(const z of A)r.translateNode(z,A);for(const A of this.nodes)for(const z of A.linksFrom)(z.weight||z.isNull)&&z.to&&(r.translateLink(z),z.allowShadow=!1)}translateLink(r){const u=(tt,ot)=>{const st=tt.offset(r,ot)*z;return Math.min(tt.nodeY+st,tt.nodeY+(tt.shapeArgs&&tt.shapeArgs.height||0)-B)},w=r.fromNode,C=r.toNode,y=this.chart,{inverted:A}=y,z=this.translationFactor,V=this.options,Z=g(r.linkColorMode,V.linkColorMode),q=(y.inverted?-this.colDistance:this.colDistance)*V.curveFactor,$=w.nodeX,Y=C.nodeX,J=r.outgoing;let B=Math.max(r.weight*z,this.options.minLinkWidth),U=u(w,"linksFrom"),G=u(C,"linksTo"),H=this.nodeWidth,rt=Y>$+H;if(y.inverted&&(U=y.plotSizeY-U,G=(y.plotSizeY||0)-G,H=-H,B=-B,rt=$>Y),r.shapeType="path",r.linkBase=[U,U+B,G,G+B],rt&&"number"==typeof G)r.shapeArgs={d:[["M",$+H,U],["C",$+H+q,U,Y-q,G,Y,G],["L",Y+(J?H:0),G+B/2],["L",Y,G+B],["C",Y-q,G+B,$+H+q,U+B,$+H,U+B],["Z"]]};else if("number"==typeof G){const st=Y-20-B,at=Y-20,ft=$+H,vt=ft+20,gt=vt+B,dt=U+B,ct=dt+20,mt=ct+(y.plotHeight-U-B),pt=mt+20,bt=pt+B,xt=G+B,Et=xt+20,Pt=pt+.7*B,zt=Y-.7*B,Xt=ft+.7*B;r.shapeArgs={d:[["M",ft,U],["C",Xt,U,gt,dt-.7*B,gt,ct],["L",gt,mt],["C",gt,Pt,Xt,bt,ft,bt],["L",Y,bt],["C",zt,bt,st,Pt,st,mt],["L",st,Et],["C",st,xt-.7*B,zt,G,Y,G],["L",Y,xt],["C",at,xt,at,xt,at,Et],["L",at,mt],["C",at,pt,at,pt,Y,pt],["L",ft,pt],["C",vt,pt,vt,pt,vt,mt],["L",vt,ct],["C",vt,dt,vt,dt,ft,dt],["Z"]]}}if(r.dlBox={x:$+(Y-$+H)/2,y:U+(G-U)/2,height:B,width:0},r.tooltipPos=y.inverted?[y.plotSizeY-r.dlBox.y-B/2,y.plotSizeX-r.dlBox.x]:[r.dlBox.x,r.dlBox.y+B/2],r.y=r.plotY=1,r.x=r.plotX=1,!r.options.color)if("from"===Z)r.color=w.color;else if("to"===Z)r.color=C.color;else if("gradient"===Z){const tt=_(w.color).get(),ot=_(C.color).get();r.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,A?tt:ot],[1,A?ot:tt]]}}}translateNode(r,u){const w=this.translationFactor,C=this.chart,y=this.options,{borderRadius:A,borderWidth:z=0}=y,V=r.getSum(),Z=Math.max(Math.round(V*w),this.options.minLinkWidth),q=Math.round(this.nodeWidth),$=Math.round(z)%2/2,Y=u.sankeyColumn.offset(r,w),J=Math.floor(g(Y.absoluteTop,u.sankeyColumn.top(w)+Y.relativeTop))+$,B=Math.floor(this.colDistance*r.column+z/2)+b(r.options[C.inverted?"offsetVertical":"offsetHorizontal"]||0,q)+$,U=C.inverted?C.plotSizeX-B:B;if(r.sum=V,V){r.shapeType="roundedRect",r.nodeX=U,r.nodeY=J;let G=U,H=J,rt=r.options.width||y.width||q,tt=r.options.height||y.height||Z;const ot=n(b("object"==typeof A?A.radius:A||0,rt),0,Z/2);C.inverted&&(G=U-q,H=C.plotSizeY-J-Z,rt=r.options.height||y.height||q,tt=r.options.width||y.width||Z),r.dlOptions=v.getDLOptions({level:this.mapOptionsToLevel[r.level],optionsPoint:r.options}),r.plotX=1,r.plotY=1,r.tooltipPos=C.inverted?[C.plotSizeY-H-tt/2,C.plotSizeX-G-rt/2]:[G+rt/2,H+tt/2],r.shapeArgs={x:G,y:H,width:rt,height:tt,r:ot,display:r.hasShape()?"":"none"}}else r.dlOptions={enabled:!1}}}return v.defaultOptions=l(h.defaultOptions,t),I.compose(E,v),s(v.prototype,{animate:m.prototype.animate,createNode:I.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:E,searchPoint:O.noop}),T.registerSeriesType("sankey",v),v}),K(S,"masters/modules/sankey.src.js",[S["Core/Globals.js"]],function(O){return O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))}}]); \ No newline at end of file +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[837],{86837:(nt,_t,X)=>{"use strict";X.r(_t),X.d(_t,{NetworkModule:()=>xo});var ht=X(93887),et=X(91346),Q=X(12168),S=X(69820),K=X(38833),O=X(2501),I=X(55782),E=X(10467),t=X(54438),T=X(71985),N=X(43236),j=X(39974),P=X(54360),c=X(58750),m=X(41584);var f=X(88141),k=X(96354),n=X(33726),s=X(25558),d=X(7673),l=X(56977),g=X(84412),b=X(57786),p=X(23294),v=X(91986),D=X(983),r=X(70980);function u(o,F=!1){return(0,j.N)((e,i)=>{let a=0;e.subscribe((0,P._)(i,M=>{const x=o(M,a++);(x||F)&&i.next(M),!x&&i.complete()}))})}var C=X(30536),y=X(60177);let A;try{A=typeof Intl<"u"&&Intl.v8BreakIterator}catch{A=!1}let z=(()=>{class o{constructor(e){this._platformId=e,this.isBrowser=this._platformId?(0,y.UE)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!A)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(t.Agw))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var U=function(o){return o[o.NORMAL=0]="NORMAL",o[o.NEGATED=1]="NEGATED",o[o.INVERTED=2]="INVERTED",o}(U||{});let G;const gt=new t.nKC("cdk-dir-doc",{providedIn:"root",factory:function St(){return(0,t.WQX)(y.qQ)}}),dt=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let mt=(()=>{class o{constructor(e){this.value="ltr",this.change=new t.bkB,e&&(this.value=function ct(o){const F=o?.toLowerCase()||"";return"auto"===F&&typeof navigator<"u"&&navigator?.language?dt.test(navigator.language)?"rtl":"ltr":"rtl"===F?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(gt,8))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var kt=X(89079),Qt=X(21413),me=X(96697),ve=X(85412);const ke="function"==typeof Float32Array;function Zt(o,F){return 1-3*F+3*o}function Kt(o,F){return 3*F-6*o}function qt(o){return 3*o}function At(o,F,e){return((Zt(F,e)*o+Kt(F,e))*o+qt(F))*o}function Jt(o,F,e){return 3*Zt(F,e)*o*o+2*Kt(F,e)*o+qt(F)}function Fe(o){return o}function Me(o,F,e,i){if(!(0<=o&&o<=1&&0<=e&&e<=1))throw new Error("bezier x values must be in [0, 1] range");if(o===F&&e===i)return Fe;const a=ke?new Float32Array(11):new Array(11);for(let x=0;x<11;++x)a[x]=At(.1*x,o,e);return function(L){return 0===L?0:1===L?1:At(function M(x){let L=0,R=1;for(;10!==R&&a[R]<=x;++R)L+=.1;--R;const ut=L+(x-a[R])/(a[R+1]-a[R])*.1,wt=Jt(ut,o,e);return wt>=.001?function Ce(o,F,e,i){for(let a=0;a<4;++a){const M=Jt(F,e,i);if(0===M)return F;F-=(At(F,e,i)-o)/M}return F}(x,ut,o,e):0===wt?ut:function xe(o,F,e,i,a){let M,x,L=0;do{x=F+(e-F)/2,M=At(x,i,a)-o,M>0?e=x:F=x}while(Math.abs(M)>1e-7&&++L<10);return x}(x,L,L+.1,o,e)}(L),F,i)}}const Ee=new t.nKC("SMOOTH_SCROLL_OPTIONS");let Pe=(()=>{class o{get _w(){return this._document.defaultView}get _now(){return this._w.performance?.now?.bind(this._w.performance)||Date.now}constructor(e,i,a){this._document=e,this._platform=i,this.rtlScrollAxisType=function tt(){if("object"!=typeof document||!document)return U.NORMAL;if(null==G){const o=document.createElement("div"),F=o.style;o.dir="rtl",F.width="1px",F.overflow="auto",F.visibility="hidden",F.pointerEvents="none",F.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",o.appendChild(e),document.body.appendChild(o),G=U.NORMAL,0===o.scrollLeft&&(o.scrollLeft=1,G=0===o.scrollLeft?U.NEGATED:U.INVERTED),o.remove()}return G}(),this._onGoingScrolls=new Map,this._defaultOptions={duration:468,easing:{x1:.42,y1:0,x2:.58,y2:1},...a}}_scrollElement(e,i,a){e.scrollLeft=i,e.scrollTop=a}_getElement(e,i){return"string"==typeof e?(i||this._document).querySelector(e):function zt(o){return o instanceof t.aKT?o.nativeElement:o}(e)}_initSmoothScroll(e){return this._onGoingScrolls.has(e)&&this._onGoingScrolls.get(e).next(),this._onGoingScrolls.set(e,new Qt.B).get(e)}_isFinished(e,i,a){return e.currentX!==e.x||e.currentY!==e.y||(i.next(),a(),!1)}_interrupted(e,i){return(0,b.h)((0,n.R)(e,"wheel",{passive:!0,capture:!0}),(0,n.R)(e,"touchmove",{passive:!0,capture:!0}),i).pipe((0,me.s)(1))}_destroy(e,i){i.complete(),this._onGoingScrolls.delete(e)}_step(e){return new T.c(i=>{let a=(this._now()-e.startTime)/e.duration;a=a>1?1:a;const M=e.easing(a);e.currentX=e.startX+(e.x-e.startX)*M,e.currentY=e.startY+(e.y-e.startY)*M,this._scrollElement(e.scrollable,e.currentX,e.currentY),C.X.schedule(()=>i.next(e))})}_applyScrollToOptions(e,i){if(!i.duration)return this._scrollElement(e,i.left,i.top),Promise.resolve();const a=this._initSmoothScroll(e),M={scrollable:e,startTime:this._now(),startX:e.scrollLeft,startY:e.scrollTop,x:null==i.left?e.scrollLeft:~~i.left,y:null==i.top?e.scrollTop:~~i.top,duration:i.duration,easing:Me(i.easing.x1,i.easing.y1,i.easing.x2,i.easing.y2)};return new Promise(x=>{(0,d.of)(null).pipe(function be(o,F=1/0,e){return F=(F||0)<1?1/0:F,(0,j.N)((i,a)=>(0,ve.h)(i,a,o,F,void 0,!0,e))}(()=>this._step(M).pipe(u(L=>this._isFinished(L,a,x)))),(0,l.Q)(this._interrupted(e,a)),(0,r.j)(()=>this._destroy(e,a))).subscribe()})}scrollTo(e,i){if((0,y.UE)(this._platform)){const a=this._getElement(e),M="rtl"===getComputedStyle(a).direction,x={...this._defaultOptions,...i,left:null==i.left?M?i.end:i.start:i.left,right:null==i.right?M?i.start:i.end:i.right};return null!=x.bottom&&(x.top=a.scrollHeight-a.clientHeight-x.bottom),M&&this.rtlScrollAxisType!==U.NORMAL?(null!=x.left&&(x.right=a.scrollWidth-a.clientWidth-x.left),this.rtlScrollAxisType===U.INVERTED?x.left=x.right:this.rtlScrollAxisType===U.NEGATED&&(x.left=x.right?-x.right:x.right)):null!=x.right&&(x.left=a.scrollWidth-a.clientWidth-x.right),this._applyScrollToOptions(a,x)}return Promise.resolve()}scrollToElement(e,i,a={}){const M=this._getElement(e),x=this._getElement(i,M),L={...a,left:x.offsetLeft+(a.left||0),top:x.offsetTop+(a.top||0)};return x?this.scrollTo(M,L):Promise.resolve()}static#t=this.\u0275fac=function(i){return new(i||o)(t.KVO(y.qQ),t.KVO(t.Agw),t.KVO(Ee,8))};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();const Ne=["scrollbarButton",""];function Oe(o,F){if(1&o&&t.nrm(0,"button",5)(1,"button",6),2&o){const e=t.XpG();t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,""),t.R7$(),t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,"")}}function Te(o,F){if(1&o&&t.nrm(0,"button",5)(1,"button",6),2&o){const e=t.XpG();t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,""),t.R7$(),t.ZvI("ng-scrollbar-button ",e.cmp.buttonClass,"")}}function Ie(o,F){1&o&&t.nrm(0,"scrollbar-y")}function Le(o,F){1&o&&t.nrm(0,"scrollbar-x")}const je=["contentWrapper"],Re=["*"];let ze=(()=>{class o{constructor(){this.nativeElement=(0,t.WQX)(t.aKT).nativeElement}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollViewport",""]],standalone:!0})}return o})();var It=function(o){return o.AfterInit="AfterInit",o.Resized="ResizeObserver",o}(It||{});const te=new t.nKC("NG_SCROLLBAR_OPTIONS"),ee=new t.nKC("NG_SCROLLBAR_POLYFILL");function oe({element:o,contentWrapper:F,throttleDuration:e}){let a,i=It.AfterInit;const M=new T.c(x=>(a=new ResizeObserver(()=>{x.next(i),i=It.Resized}),a.observe(o),F&&a.observe(F),()=>{a?.disconnect()}));return e?M.pipe(function _(o,F=N.E,e){const i=(0,m.O)(o,F);return function h(o,F){return(0,j.N)((e,i)=>{const{leading:a=!0,trailing:M=!1}=F??{};let x=!1,L=null,R=null,W=!1;const yt=()=>{R?.unsubscribe(),R=null,M&&(ge(),W&&i.complete())},ut=()=>{R=null,W&&i.complete()},wt=Mt=>R=(0,c.Tg)(o(Mt)).subscribe((0,P._)(i,yt,ut)),ge=()=>{if(x){x=!1;const Mt=L;L=null,i.next(Mt),!W&&wt(Mt)}};e.subscribe((0,P._)(i,Mt=>{x=!0,L=Mt,(!R||R.closed)&&(a?ge():wt(Mt))},()=>{W=!0,(!(M&&x&&R)||R.closed)&&i.complete()}))})}(()=>i,e)}(e,null,{leading:!0,trailing:!0})):M}function Yt(o){return(0,f.M)(()=>o.onselectstart=()=>!1)}function Wt(o){return(0,f.M)(()=>o.onselectstart=null)}function Nt(){return(0,f.M)(o=>{o.preventDefault(),o.stopPropagation()})}var Ut=function(o){return o.Viewport="ng-scroll-viewport",o.Content="ng-scroll-content",o}(Ut||{});class Be{constructor(){this.initialized=(0,t.vPA)(!1)}get offsetHeight(){return this.nativeElement.getBoundingClientRect().height}get offsetWidth(){return this.nativeElement.getBoundingClientRect().width}get scrollTop(){return this.nativeElement.scrollTop}get scrollLeft(){return this.nativeElement.scrollLeft}get contentHeight(){return this.contentWrapperElement.getBoundingClientRect().height}get contentWidth(){return this.contentWrapperElement.getBoundingClientRect().width}get scrollMaxX(){return this.contentWidth-this.offsetWidth}get scrollMaxY(){return this.contentHeight-this.offsetHeight}init(F,e,i){F.classList.add(Ut.Viewport),this.nativeElement=F,e.classList.add(Ut.Content),i?(i.style.position="relative",this.contentWrapperElement=i):this.contentWrapperElement=e,this.initialized.set(!0)}scrollYTo(F){this.nativeElement.scrollTop=F}scrollXTo(F){this.nativeElement.scrollLeft=F}}const Lt=new t.nKC("NG_SCROLLBAR"),re={trackClass:"",thumbClass:"",buttonClass:"",orientation:"auto",appearance:"native",visibility:"native",position:"native",trackScrollDuration:50,sensorThrottleTime:0,disableSensor:!1,disableInteraction:!1,buttons:!1};let Ae=(()=>{class o{constructor(){this.injectedOptions=(0,t.WQX)(te,{optional:!0}),this.options=this.injectedOptions?{...re,...this.injectedOptions}:re,this.zone=(0,t.WQX)(t.SKi),this.platform=(0,t.WQX)(z),this.injector=(0,t.WQX)(t.zZn),this.isMobile=this.platform.IOS||this.platform.ANDROID,this.dir=(0,t.WQX)(mt),this.smoothScroll=(0,t.WQX)(Pe),this.nativeElement=(0,t.WQX)(t.aKT).nativeElement,this.dragging=(0,t.vPA)("none"),this.orientation=(0,t.hFB)(this.options.orientation),this.visibility=(0,t.hFB)(this.options.visibility),this.buttons=(0,t.hFB)(this.options.buttons,{transform:t.L39}),this.disableInteraction=(0,t.hFB)(this.options.disableInteraction,{transform:t.L39}),this.disableSensor=(0,t.hFB)(this.options.disableSensor,{transform:t.L39}),this.sensorThrottleTime=(0,t.hFB)(this.options.sensorThrottleTime,{transform:t.Udg}),this.viewportDimension=(0,t.vPA)({contentHeight:0,contentWidth:0,offsetHeight:0,offsetWidth:0}),this.state=(0,t.EWP)(()=>{let e=!1,i=!1,a=!1,M=!1;const x=this.orientation(),L=this.visibility(),R=this.viewportDimension();return("auto"===x||"vertical"===x)&&(a=R.contentHeight>R.offsetHeight,e="visible"===L||a),("auto"===x||"horizontal"===x)&&(M=R.contentWidth>R.offsetWidth,i="visible"===L||M),{verticalUsed:e,horizontalUsed:i,isVerticallyScrollable:a,isHorizontallyScrollable:M}}),this.isVerticallyScrollable=(0,t.EWP)(()=>this.state().isVerticallyScrollable),this.isHorizontallyScrollable=(0,t.EWP)(()=>this.state().isHorizontallyScrollable),this.verticalUsed=(0,t.EWP)(()=>this.state().verticalUsed),this.horizontalUsed=(0,t.EWP)(()=>this.state().horizontalUsed),this.trackScrollDuration=this.options.trackScrollDuration,this.appearance=this.options.appearance,this.position=this.options.position,this.trackClass=this.options.trackClass,this.thumbClass=this.options.thumbClass,this.buttonClass=this.options.thumbClass,this.afterInit=new t.bkB,this.afterUpdate=new t.bkB,this.viewport=new Be}ngOnInit(){(0,t.N4e)(this.injector,()=>{this.direction=(0,kt.ot)(this.dir.change.pipe((0,k.T)(()=>this.dir.value)),{initialValue:this.dir.value}),(0,t.QZP)(e=>{this.disableSensor()?this.sizeChangeSub?.unsubscribe():this.platform.isBrowser&&this.viewport.initialized()&&(this.sizeChangeSub?.unsubscribe(),this.zone.runOutsideAngular(()=>{this.sizeChangeSub=oe({element:this.viewport.nativeElement,contentWrapper:this.viewport.contentWrapperElement,throttleDuration:this.sensorThrottleTime()}).pipe((0,f.M)(i=>this.update(i))).subscribe()})),e(()=>this.sizeChangeSub?.unsubscribe())})})}ngAfterViewInit(){this.platform.isBrowser&&this.disableSensor()&&requestAnimationFrame(()=>{this.update(It.AfterInit)})}update(e){this.updateCSSVariables(),this.zone.run(()=>{this.viewportDimension.set({contentHeight:this.viewport.contentHeight,contentWidth:this.viewport.contentWidth,offsetHeight:this.viewport.offsetHeight,offsetWidth:this.viewport.offsetWidth}),e===It.AfterInit?this.afterInit.emit():this.afterUpdate.emit()})}scrollTo(e){return this.smoothScroll.scrollTo(this.viewport.nativeElement,e)}scrollToElement(e,i){return this.smoothScroll.scrollToElement(this.viewport.nativeElement,e,i)}updateCSSVariables(){this.nativeElement.style.setProperty("--content-height",`${this.viewport.contentHeight}`),this.nativeElement.style.setProperty("--content-width",`${this.viewport.contentWidth}`),this.nativeElement.style.setProperty("--viewport-height",`${this.viewport.offsetHeight}`),this.nativeElement.style.setProperty("--viewport-width",`${this.viewport.offsetWidth}`)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,hostVars:14,hostBindings:function(i,a){2&i&&(t.BMQ("verticalUsed",a.verticalUsed())("horizontalUsed",a.horizontalUsed())("isVerticallyScrollable",a.isVerticallyScrollable())("isHorizontallyScrollable",a.isHorizontallyScrollable())("mobile",a.isMobile)("dir",a.direction())("position",a.position)("dragging",a.dragging())("appearance",a.appearance)("visibility",a.visibility())("orientation",a.orientation())("disableInteraction",a.disableInteraction()),t.AVh("ng-scrollbar",!0))},inputs:{orientation:[t.Mj6.SignalBased,"orientation"],visibility:[t.Mj6.SignalBased,"visibility"],buttons:[t.Mj6.SignalBased,"buttons"],disableInteraction:[t.Mj6.SignalBased,"disableInteraction"],disableSensor:[t.Mj6.SignalBased,"disableSensor"],sensorThrottleTime:[t.Mj6.SignalBased,"sensorThrottleTime"],trackScrollDuration:[t.Mj6.HasDecoratorInputTransform,"trackScrollDuration","trackScrollDuration",t.Udg],appearance:"appearance",position:"position",trackClass:"trackClass",thumbClass:"thumbClass",buttonClass:"buttonClass"},outputs:{afterInit:"afterInit",afterUpdate:"afterUpdate"},features:[t.Jv_([{provide:Lt,useExisting:o}]),t.GFd]})}return o})(),ie=(()=>{class o{constructor(){this.isBrowser=(0,y.UE)((0,t.WQX)(t.Agw)),this._polyfillUrl=(0,t.WQX)(ee,{optional:!0})||"https://flackr.github.io/scroll-timeline/dist/scroll-timeline.js",this.document=(0,t.WQX)(y.qQ),this.window=this.document.defaultView,this.scrollTimelinePolyfill=(0,t.vPA)(null),this.isBrowser&&(!this.window.ScrollTimeline||!CSS.supports("animation-timeline","scroll()"))&&this.initPolyfill()}initPolyfill(){var e=this;return(0,E.A)(function*(){try{const i=e.document.createElement("script");i.src=e._polyfillUrl,yield new Promise((a,M)=>{i.onload=a,i.onerror=M,e.document.head.appendChild(i)}),e.window.ScrollTimeline?e.scrollTimelinePolyfill.set(e.window.ScrollTimeline):console.error("[NgScrollbar]: ScrollTimeline is not attached to the window object.")}catch(i){console.error("[NgScrollbar]: Error loading ScrollTimeline script:",i)}})()}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275prov=t.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();const Gt=new t.nKC("SCROLLBAR_CONTROL");let se=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o})}return o})(),Vt=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt),this.control=(0,t.WQX)(Gt),this.document=(0,t.WQX)(y.qQ),this.zone=(0,t.WQX)(t.SKi),this.nativeElement=(0,t.WQX)(t.aKT).nativeElement,(0,t.QZP)(e=>{this.cmp.disableInteraction()?this._pointerEventsSub?.unsubscribe():this.zone.runOutsideAngular(()=>{this._pointerEventsSub=this.pointerEvents.subscribe()}),e(()=>this._pointerEventsSub?.unsubscribe())})}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o})}return o})(),jt=(()=>{class o extends Vt{get trackMax(){return this.track.size-this.size}get clientRect(){return this.nativeElement.getBoundingClientRect()}get pointerEvents(){return(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document),(0,s.n)(e=>{let i,a;const M=(0,d.of)(e).pipe((0,f.M)(()=>{i=this.trackMax,a=this.control.viewportScrollMax,this.setDragging(this.control.axis)})),x=(0,n.R)(this.document,"pointermove").pipe(Nt()),L=(0,n.R)(this.document,"pointerup",{capture:!0}).pipe(Nt(),Wt(this.document),(0,f.M)(()=>this.setDragging("none")));return M.pipe((0,k.T)(R=>R[this.control.clientProperty]),(0,k.T)(R=>R-this.dragStartOffset),(0,s.n)(R=>x.pipe((0,k.T)(W=>W[this.control.clientProperty]),(0,k.T)(W=>W-this.track.offset),(0,k.T)(W=>a*(W-R)/i),(0,f.M)(W=>this.control.instantScrollTo(W,a)),(0,l.Q)(L))))}))}constructor(){(0,t.QZP)(()=>{const e=this.manager.scrollTimelinePolyfill();e&&!this._animation&&(this._animation=function Ye(o,F,e,i){return F.animate({translate:["var(--_scrollbar-thumb-transform-from)","var(--_scrollbar-thumb-transform-to)"]},{fill:"both",easing:"linear",timeline:new o({source:e,axis:i})})}(e,this.nativeElement,this.cmp.viewport.nativeElement,this.control.axis))}),super(),this.manager=(0,t.WQX)(ie),this.track=(0,t.WQX)(Rt)}setDragging(e){this.zone.run(()=>this.cmp.dragging.set(e))}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,features:[t.Vt3]})}return o})(),Rt=(()=>{class o extends Vt{get clientRect(){return this.nativeElement.getBoundingClientRect()}get pointerEvents(){const e=(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document)),i=(0,n.R)(this.document,"pointerup",{passive:!0}).pipe(Wt(this.document)),a=(0,n.R)(this.nativeElement,"pointermove",{passive:!0}).pipe((0,k.T)(L=>(this.currMousePosition=L[this.control.clientProperty],!0))),M=(0,n.R)(this.nativeElement,"pointerout",{passive:!0}).pipe((0,k.T)(()=>!1)),x=new g.t(!0);return e.pipe((0,s.n)(L=>((0,b.h)(a,M).pipe((0,p.F)(),(0,f.M)(R=>x.next(R)),(0,l.Q)(i)).subscribe(),(0,n.R)(this.thumb.nativeElement,"pointermove").pipe(Nt(),(0,l.Q)(i)).subscribe(),this.onTrackFirstClick(L).pipe((0,v.c)(200),(0,s.n)(()=>x.pipe((0,s.n)(R=>{const W=this.getScrollDirection(this.currMousePosition);return R&&this.scrollDirection===W?this.onTrackOngoingMousedown():D.w}),(0,r.j)(()=>{x.next(!0)}))),(0,l.Q)(i)))))}constructor(){(0,t.QZP)(e=>{this.cmp.disableSensor()?(this.update(),this.sizeChangeSub?.unsubscribe()):this.zone.runOutsideAngular(()=>{this.sizeChangeSub=oe({element:this.nativeElement,throttleDuration:this.cmp.sensorThrottleTime()}).pipe((0,f.M)(()=>this.update())).subscribe()}),e(()=>this.sizeChangeSub?.unsubscribe())}),super()}update(){this.cmp.nativeElement.style.setProperty(this.cssLengthProperty,`${this.size}`)}onTrackFirstClick(e){let i;if(this.currMousePosition=e[this.control.clientProperty],this.scrollDirection=this.getScrollDirection(this.currMousePosition),this.scrollMax=this.control.viewportScrollMax,"forward"===this.scrollDirection){const a=this.getScrollForwardIncrement();i=a>=this.scrollMax?this.scrollMax:a}else{const a=this.getScrollBackwardIncrement();i=a<=0?0:a}return this.scrollTo(i)}onTrackOngoingMousedown(){let e,i,a;({position:e,nextPosition:i,endPosition:a}="forward"===this.scrollDirection?this.getOnGoingScrollForward():this.getOnGoingScrollBackward());const M=this.isFinalStep(e);return this.scrollTo(M?a:i).pipe(u(()=>!M),(0,s.n)(()=>this.onTrackOngoingMousedown()))}getCurrPosition(e){return"forward"===this.scrollDirection?Math.abs(e):Math.abs(e+this.thumb.size-this.viewportScrollSize)}isFinalStep(e){const i=this.viewportScrollSize-this.thumb.size-this.getCurrPosition(e);return 0===Math.floor(i/this.viewportSize)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275dir=t.FsC({type:o,contentQueries:function(i,a,M){if(1&i&&t.wni(M,jt,5),2&i){let x;t.mGM(x=t.lsd())&&(a.thumb=x.first)}},features:[t.Vt3]})}return o})(),We=(()=>{class o extends Rt{constructor(){super(...arguments),this.cssLengthProperty="--track-x-length"}get offset(){return this.clientRect.left}get size(){return this.clientRect.width}get viewportScrollSize(){return this.cmp.viewport.contentWidth}get viewportSize(){return this.cmp.viewport.offsetWidth}getScrollDirection(e){return"rtl"===this.cmp.direction()?e-this.thumb.offset<0?"forward":"backward":e-this.thumb.offset>0?"forward":"backward"}scrollTo(e){return(0,c.Sx)(this.cmp.scrollTo({left:e,duration:this.cmp.trackScrollDuration}))}getScrollForwardIncrement(){return"rtl"===this.cmp.direction()?this.scrollMax- -(this.control.viewportScrollOffset-this.viewportSize):this.control.viewportScrollOffset+this.viewportSize}getScrollBackwardIncrement(){return"rtl"===this.cmp.direction()?this.scrollMax- -(this.control.viewportScrollOffset+this.viewportSize):this.control.viewportScrollOffset-this.viewportSize}getOnGoingScrollForward(){if("rtl"===this.cmp.direction()){const i=this.control.viewportScrollOffset-this.viewportSize;return{position:i,nextPosition:this.scrollMax+i,endPosition:0}}const e=this.control.viewportScrollOffset+this.viewportSize;return{position:e,nextPosition:e,endPosition:this.scrollMax}}getOnGoingScrollBackward(){if("rtl"===this.cmp.direction()){const i=this.control.viewportScrollOffset+this.viewportSize;return{position:i,nextPosition:this.scrollMax+i,endPosition:this.scrollMax}}const e=this.control.viewportScrollOffset-this.viewportSize;return{position:e,nextPosition:e,endPosition:0}}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarTrackX",""]],standalone:!0,features:[t.Jv_([{provide:Rt,useExisting:o}]),t.Vt3]})}return o})(),Ue=(()=>{class o extends Rt{constructor(){super(...arguments),this.cssLengthProperty="--track-y-length"}get offset(){return this.clientRect.top}get size(){return this.clientRect.height}get viewportScrollSize(){return this.cmp.viewport.contentHeight}get viewportSize(){return this.cmp.viewport.offsetHeight}getScrollDirection(e){return e-this.thumb.offset>0?"forward":"backward"}scrollTo(e){return(0,c.Sx)(this.cmp.scrollTo({top:e,duration:this.cmp.trackScrollDuration}))}getScrollForwardIncrement(){return this.control.viewportScrollOffset+this.viewportSize}getScrollBackwardIncrement(){return this.control.viewportScrollOffset-this.viewportSize}getOnGoingScrollForward(){const e=this.control.viewportScrollOffset+this.viewportSize;return{position:e,nextPosition:e,endPosition:this.scrollMax}}getOnGoingScrollBackward(){const e=this.control.viewportScrollOffset-this.viewportSize;return{position:e,nextPosition:e,endPosition:0}}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarTrackY",""]],standalone:!0,features:[t.Jv_([{provide:Rt,useExisting:o}]),t.Vt3]})}return o})(),Ge=(()=>{class o extends jt{get offset(){return this.clientRect.left}get size(){return this.clientRect.width}get dragStartOffset(){return this.offset+this.document.defaultView.scrollX}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarThumbX",""]],standalone:!0,features:[t.Jv_([{provide:jt,useExisting:o}]),t.Vt3]})}return o})(),Ve=(()=>{class o extends jt{get offset(){return this.clientRect.top}get size(){return this.clientRect.height}get dragStartOffset(){return this.offset+this.document.defaultView.scrollY}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275dir=t.FsC({type:o,selectors:[["","scrollbarThumbY",""]],standalone:!0,features:[t.Jv_([{provide:jt,useExisting:o}]),t.Vt3]})}return o})(),ne=(()=>{class o extends Vt{constructor(){super(...arguments),this.injector=(0,t.WQX)(t.zZn),this.afterFirstClickDelay=120,this.firstClickDuration=100,this.scrollBy=50,this.onGoingScrollBy=12,this.canScrollFunc={forward:(e,i)=>Math.abs(e)Math.abs(e)>0},this.scrollStepFunc={forward:(e,i)=>i+e,backward:(e,i)=>i-e},this.horizontalScrollStepFunc={rtl:{forward:(e,i,a)=>a+i-e,backward:(e,i,a)=>a+i+e},ltr:this.scrollStepFunc}}get pointerEvents(){const e=(0,n.R)(this.nativeElement,"pointerdown").pipe(Nt(),Yt(this.document)),i=(0,n.R)(this.document,"pointerup",{passive:!0}).pipe(Wt(this.document)),a=(0,n.R)(this.nativeElement,"pointerleave",{passive:!0}),M=(0,b.h)(i,a);return e.pipe((0,s.n)(()=>this.firstScrollStep().pipe((0,v.c)(this.afterFirstClickDelay),(0,s.n)(()=>this.onOngoingPointerdown()),(0,l.Q)(M))))}ngOnInit(){this.canScroll=this.canScrollFunc[this.scrollDirection],"x"===this.control.axis?(0,t.N4e)(this.injector,()=>{(0,t.QZP)(()=>{const e=this.cmp.direction();this.nextStep=this.horizontalScrollStepFunc[e][this.scrollDirection]})}):this.nextStep=this.scrollStepFunc[this.scrollDirection]}firstScrollStep(){const e=this.nextStep(this.scrollBy,this.control.viewportScrollOffset,this.control.viewportScrollMax);return this.control.scrollTo(e,this.firstClickDuration)}onGoingScrollStep(){const e=this.control.viewportScrollMax,i=this.nextStep(this.onGoingScrollBy,this.control.viewportScrollOffset,e);this.control.instantScrollTo(i,e)}onOngoingPointerdown(){return function w(o=0,F=N.E){return o<0&&(o=0),(0,m.O)(o,o,F)}(0,C.X).pipe(u(()=>this.canScroll(this.control.viewportScrollOffset,this.control.viewportScrollMax)),(0,f.M)(()=>this.onGoingScrollStep()))}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["button","scrollbarButton",""]],inputs:{scrollbarButton:"scrollbarButton",scrollDirection:"scrollDirection"},standalone:!0,features:[t.Vt3,t.aNF],attrs:Ne,decls:3,vars:0,consts:[[1,"ng-scrollbar-button-icon"],["viewBox","0 0 512 512","xmlns","http://www.w3.org/2000/svg"],["d","M413.1,327.3l-1.8-2.1l-136-156.5c-4.6-5.3-11.5-8.6-19.2-8.6c-7.7,0-14.6,3.4-19.2,8.6L101,324.9l-2.3,2.6 C97,330,96,333,96,336.2c0,8.7,7.4,15.8,16.6,15.8v0h286.8v0c9.2,0,16.6-7.1,16.6-15.8C416,332.9,414.9,329.8,413.1,327.3z"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.qSk(),t.j41(1,"svg",1),t.nrm(2,"path",2),t.k0s()())},styles:["[_nghost-%COMP%]{--scrollbar-button-size: 20px;position:relative;border:none;margin:0;padding:0;border-radius:0;appearance:none;background-color:var(--scrollbar-button-color)}[_nghost-%COMP%] svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-fill)}[_nghost-%COMP%]:hover{background:var(--scrollbar-button-hover-color)}[_nghost-%COMP%]:hover svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-hover-fill)}[_nghost-%COMP%]:active{background:var(--scrollbar-button-active-color)}[_nghost-%COMP%]:active svg[_ngcontent-%COMP%]{fill:var(--scrollbar-button-active-fill)}[scrollbarButton=top][_nghost-%COMP%], [scrollbarButton=start][_nghost-%COMP%]{order:1}[scrollbarButton=bottom][_nghost-%COMP%], [scrollbarButton=end][_nghost-%COMP%]{order:3}[scrollbarButton=top][_nghost-%COMP%], [scrollbarButton=bottom][_nghost-%COMP%]{width:100%;height:var(--scrollbar-button-size)}[scrollbarButton=start][_nghost-%COMP%], [scrollbarButton=end][_nghost-%COMP%]{width:var(--scrollbar-button-size);height:100%}[scrollbarButton=bottom][_nghost-%COMP%]{--_button-rotate: 180deg}[scrollbarButton=start][_nghost-%COMP%]{--_button-rotate: -90deg}[scrollbarButton=start][_nghost-%COMP%] .ng-scrollbar-button-icon[_ngcontent-%COMP%]{writing-mode:vertical-lr}[scrollbarButton=end][_nghost-%COMP%]{--_button-rotate: 90deg}[scrollbarButton=end][_nghost-%COMP%] .ng-scrollbar-button-icon[_ngcontent-%COMP%]{writing-mode:vertical-rl}.ng-scrollbar-button-icon[_ngcontent-%COMP%]{rotate:var(--_button-rotate);display:flex;place-content:center;place-items:center;width:100%;height:100%}"],changeDetection:0})}return o})(),$e=(()=>{class o extends se{constructor(){super(...arguments),this.clientProperty="clientY",this.axis="y"}get viewportScrollMax(){return this.cmp.viewport.scrollMaxY}get viewportScrollOffset(){return this.cmp.viewport.scrollTop}scrollTo(e,i){return(0,c.Sx)(this.cmp.scrollTo({top:e,duration:i}))}instantScrollTo(e){this.cmp.viewport.scrollYTo(e)}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbar-y"]],standalone:!0,features:[t.Jv_([{provide:Gt,useExisting:o}]),t.Vt3,t.aNF],decls:6,vars:7,consts:[["sticky",""],[1,"ng-scrollbar-sticky"],[1,"ng-scrollbar-track-wrapper"],["scrollbarTrackY",""],["scrollbarThumbY",""],["scrollbarButton","top","scrollDirection","backward"],["scrollbarButton","bottom","scrollDirection","forward"]],template:function(i,a){1&i&&(t.j41(0,"div",1,0)(2,"div",2)(3,"div",3),t.nrm(4,"div",4),t.k0s(),t.DNE(5,Oe,2,6),t.k0s()()),2&i&&(t.R7$(3),t.ZvI("ng-scrollbar-track ",a.cmp.trackClass,""),t.R7$(),t.ZvI("ng-scrollbar-thumb ",a.cmp.thumbClass,""),t.R7$(),t.vxM(5,a.cmp.buttons()?5:-1))},dependencies:[Ue,Ve,ne],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}.ng-scrollbar-sticky[_ngcontent-%COMP%]{top:calc(var(--_scrollbar-wrapper-top) * 1px);left:calc(var(--_scrollbar-wrapper-left) * 1px);right:calc(var(--_scrollbar-wrapper-right) * 1px);height:calc(var(--_scrollbar-wrapper-height) * 1px);width:calc(var(--_scrollbar-wrapper-width) * 1px);position:sticky;z-index:100;opacity:var(--_scrollbar-hover-opacity);transition:var(--_scrollbar-opacity-transition)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{touch-action:none;-webkit-user-select:none;user-select:none;top:var(--_scrollbar-track-top);bottom:var(--_scrollbar-track-bottom);right:var(--_scrollbar-track-right);left:var(--_scrollbar-track-left);pointer-events:var(--_scrollbar-pointer-events);transition:var(--scrollbar-track-wrapper-transition);position:absolute;overflow:hidden;display:flex;place-items:center}.ng-scrollbar-track[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;background-color:var(--scrollbar-track-color);transition:var(--scrollbar-track-transition);border-radius:var(--scrollbar-border-radius);cursor:default;z-index:1;order:2}.ng-scrollbar-thumb[_ngcontent-%COMP%]{box-sizing:border-box;position:absolute;transition:var(--scrollbar-thumb-transition);border-radius:var(--scrollbar-border-radius);height:var(--_thumb-height);width:var(--_thumb-width);animation-name:_ngcontent-%COMP%_scrollbarThumbAnimation;animation-duration:1ms;animation-timing-function:linear}@keyframes _ngcontent-%COMP%_scrollbarThumbAnimation{0%{translate:var(--_scrollbar-thumb-transform-from)}to{translate:var(--_scrollbar-thumb-transform-to)}}","[_nghost-%COMP%]{--_scrollbar-wrapper-top: 0;--_scrollbar-wrapper-left: var(--_scrollbar-wrapper-y-left);--_scrollbar-wrapper-right: var(--_scrollbar-wrapper-y-right);--_scrollbar-wrapper-height: var(--viewport-height);--_scrollbar-wrapper-width: var(--_scrollbar-thickness);--_scrollbar-track-top: var(--_vertical-top);--_scrollbar-track-bottom: var(--_vertical-bottom);--_scrollbar-track-right: var(--_vertical-right);--_scrollbar-track-left: var(--_vertical-left);--_thumb-height: calc(var(--thumb-y-length) * 1px);--_thumb-width: 100%;--_scrollbar-thumb-transform-from: 0 0;--_scrollbar-thumb-transform-to: 0 calc(var(--_scrollbar-y-thumb-transform-to-value) * 1px)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{width:var(--_track-y-thickness);flex-direction:column}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]:hover{--_track-y-thickness: var(--_scrollbar-hover-thickness-px);--_thumb-y-color: var(--scrollbar-thumb-hover-color)}.ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-timeline:var(--_animation-timeline-y);min-height:calc(var(--scrollbar-thumb-min-size) * 1px);display:var(--_vertical-thumb-display);background-color:var(--_thumb-y-color)}"],changeDetection:0})}return o})(),He=(()=>{class o extends se{get viewportScrollMax(){return this.cmp.viewport.scrollMaxX}get viewportScrollOffset(){return this.cmp.viewport.scrollLeft}constructor(){(0,t.QZP)(()=>{this.handlePosition="rtl"===this.cmp.direction()?(e,i)=>-(i-e):e=>e}),super(),this.manager=(0,t.WQX)(ie),this.clientProperty="clientX",this.axis="x"}scrollTo(e,i){return(0,c.Sx)(this.cmp.scrollTo({left:e,duration:i}))}instantScrollTo(e,i){this.cmp.viewport.scrollXTo(this.handlePosition(e,i))}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbar-x"]],hostVars:1,hostBindings:function(i,a){2&i&&t.BMQ("dir",a.cmp.direction())},standalone:!0,features:[t.Jv_([{provide:Gt,useExisting:o}]),t.Vt3,t.aNF],decls:6,vars:7,consts:[["sticky",""],[1,"ng-scrollbar-sticky"],[1,"ng-scrollbar-track-wrapper"],["scrollbarTrackX",""],["scrollbarThumbX",""],["scrollbarButton","start","scrollDirection","backward"],["scrollbarButton","end","scrollDirection","forward"]],template:function(i,a){1&i&&(t.j41(0,"div",1,0)(2,"div",2)(3,"div",3),t.nrm(4,"div",4),t.k0s(),t.DNE(5,Te,2,6),t.k0s()()),2&i&&(t.R7$(3),t.ZvI("ng-scrollbar-track ",a.cmp.trackClass,""),t.R7$(),t.ZvI("ng-scrollbar-thumb ",a.cmp.thumbClass,""),t.R7$(),t.vxM(5,a.cmp.buttons()?5:-1))},dependencies:[We,Ge,ne],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}.ng-scrollbar-sticky[_ngcontent-%COMP%]{top:calc(var(--_scrollbar-wrapper-top) * 1px);left:calc(var(--_scrollbar-wrapper-left) * 1px);right:calc(var(--_scrollbar-wrapper-right) * 1px);height:calc(var(--_scrollbar-wrapper-height) * 1px);width:calc(var(--_scrollbar-wrapper-width) * 1px);position:sticky;z-index:100;opacity:var(--_scrollbar-hover-opacity);transition:var(--_scrollbar-opacity-transition)}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{touch-action:none;-webkit-user-select:none;user-select:none;top:var(--_scrollbar-track-top);bottom:var(--_scrollbar-track-bottom);right:var(--_scrollbar-track-right);left:var(--_scrollbar-track-left);pointer-events:var(--_scrollbar-pointer-events);transition:var(--scrollbar-track-wrapper-transition);position:absolute;overflow:hidden;display:flex;place-items:center}.ng-scrollbar-track[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;background-color:var(--scrollbar-track-color);transition:var(--scrollbar-track-transition);border-radius:var(--scrollbar-border-radius);cursor:default;z-index:1;order:2}.ng-scrollbar-thumb[_ngcontent-%COMP%]{box-sizing:border-box;position:absolute;transition:var(--scrollbar-thumb-transition);border-radius:var(--scrollbar-border-radius);height:var(--_thumb-height);width:var(--_thumb-width);animation-name:_ngcontent-%COMP%_scrollbarThumbAnimation;animation-duration:1ms;animation-timing-function:linear}@keyframes _ngcontent-%COMP%_scrollbarThumbAnimation{0%{translate:var(--_scrollbar-thumb-transform-from)}to{translate:var(--_scrollbar-thumb-transform-to)}}","[_nghost-%COMP%]{--_scrollbar-wrapper-top: var(--_scrollbar-wrapper-x-top);--_scrollbar-wrapper-left: 0;--_scrollbar-wrapper-right: 0;--_scrollbar-wrapper-height: var(--_scrollbar-thickness);--_scrollbar-wrapper-width: var(--viewport-width);--_scrollbar-track-top: var(--_horizontal-top);--_scrollbar-track-bottom: var(--_horizontal-bottom);--_scrollbar-track-right: var(--_horizontal-right);--_scrollbar-track-left: var(--_horizontal-left);--_thumb-height: 100%;--_thumb-width: calc(var(--thumb-x-length) * 1px);--_scrollbar-thumb-transform-from: 0;--_scrollbar-thumb-transform-to: calc(var(--_scrollbar-x-thumb-transform-to-value) * 1px)}[_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=start][_ngcontent-%COMP%]{_--button-rotate:90}[_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=end][_ngcontent-%COMP%]{_--button-rotate:-90}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_scrollbarThumbRTLAnimation;will-change:right;--_scrollbar-thumb-transform-to: calc(var(--_scrollbar-x-thumb-transform-to-value) * -1px)}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=start][_ngcontent-%COMP%]{--_button-rotate: 90deg}[dir=rtl][_nghost-%COMP%] .ng-scrollbar-button[scrollbarButton=end][_ngcontent-%COMP%]{--_button-rotate: -90deg}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]{height:var(--_track-x-thickness);flex-direction:row}.ng-scrollbar-track-wrapper[_ngcontent-%COMP%]:hover{--_track-x-thickness: var(--_scrollbar-hover-thickness-px);--_thumb-x-color: var(--scrollbar-thumb-hover-color)}.ng-scrollbar-thumb[_ngcontent-%COMP%]{animation-timeline:var(--_animation-timeline-x);min-width:calc(var(--scrollbar-thumb-min-size) * 1px);display:var(--_horizontal-thumb-display);background-color:var(--_thumb-x-color)}@keyframes _ngcontent-%COMP%_scrollbarThumbRTLAnimation{0%{right:var(--_scrollbar-thumb-transform-from)}to{right:calc(var(--_scrollbar-thumb-transform-to) * -1)}}"],changeDetection:0})}return o})(),ae=(()=>{class o{constructor(){this.cmp=(0,t.WQX)(Lt)}static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["scrollbars"]],standalone:!0,features:[t.aNF],decls:2,vars:2,template:function(i,a){1&i&&t.DNE(0,Ie,1,0,"scrollbar-y")(1,Le,1,0,"scrollbar-x"),2&i&&(t.vxM(0,a.cmp.verticalUsed()?0:-1),t.R7$(),t.vxM(1,a.cmp.horizontalUsed()?1:-1))},dependencies:[He,$e],styles:["[_nghost-%COMP%]{display:contents}"],changeDetection:0})}return o})(),le=(()=>{class o extends Ae{ngOnInit(){this.viewport.init(this.nativeElement,this.contentWrapper.nativeElement),super.ngOnInit()}static#t=this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})();static#e=this.\u0275cmp=t.VBU({type:o,selectors:[["ng-scrollbar",3,"externalViewport",""]],viewQuery:function(i,a){if(1&i&&(t.GBs(je,7),t.GBs(ae,7)),2&i){let M;t.mGM(M=t.lsd())&&(a.contentWrapper=M.first),t.mGM(M=t.lsd())&&(a._scrollbars=M.first)}},exportAs:["ngScrollbar"],standalone:!0,features:[t.Jv_([{provide:Lt,useExisting:o}]),t.nM4([ze]),t.Vt3,t.aNF],ngContentSelectors:Re,decls:4,vars:0,consts:[["contentWrapper",""]],template:function(i,a){1&i&&(t.NAR(),t.j41(0,"div",null,0),t.SdG(2),t.nrm(3,"scrollbars"),t.k0s())},dependencies:[ae],styles:["[_nghost-%COMP%]{display:block;position:relative;max-height:100%;max-width:100%;--scrollbar-border-radius: 0px;--scrollbar-thickness: 5;--scrollbar-offset: 0;--scrollbar-track-wrapper-transition: width 60ms linear, height 60ms linear;--scrollbar-track-color: transparent;--scrollbar-track-transition: none;--scrollbar-thumb-color: rgb(0 0 0 / 20%);--scrollbar-thumb-hover-color: var(--scrollbar-thumb-color);--scrollbar-hover-thickness: var(--scrollbar-thickness);--scrollbar-thumb-transition: none;--scrollbar-thumb-min-size: 20;--scrollbar-button-color: var(--scrollbar-thumb-color);--scrollbar-button-hover-color: var(--scrollbar-button-color);--scrollbar-button-active-color: var(--scrollbar-button-hover-color);--scrollbar-button-fill: white;--scrollbar-button-hover-fill: var(--scrollbar-button-fill);--scrollbar-button-active-fill: var(--scrollbar-button-hover-fill);--scrollbar-hover-opacity-transition-enter-duration: 0;--scrollbar-hover-opacity-transition-leave-duration: .4s;--scrollbar-hover-opacity-transition-leave-delay: 1s;--scrollbar-overscroll-behavior: initial;--scrollbar-mobile-overscroll-behavior: none;--_scrollbar-thickness: calc(var(--scrollbar-thickness) + var(--scrollbar-offset) * 2);--_scrollbar-pointer-events: auto;--_scrollbar-offset-px: calc(var(--scrollbar-offset) * 1px);--_scrollbar-thickness-px: calc(var(--scrollbar-thickness) * 1px);--_scrollbar-hover-thickness-px: calc(var(--scrollbar-hover-thickness) * 1px);--_viewport-padding-top: 0;--_viewport-padding-bottom: 0;--_viewport-padding-left: 0;--_viewport-padding-right: 0;--_horizontal-thumb-display: block;--_vertical-thumb-display: block;--_viewport-overflow: auto;--_thumb-x-color: var(--scrollbar-thumb-color);--_thumb-y-color: var(--scrollbar-thumb-color);--_track-y-thickness: var(--_scrollbar-thickness-px);--_track-x-thickness: var(--_scrollbar-thickness-px);--_viewport-overscroll-behavior: var(--scrollbar-overscroll-behavior);--_scrollbar-content-width: fit-content}[_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-offset-px);--_vertical-bottom: var(--_scrollbar-offset-px);--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-offset-px);--_horizontal-top: initial;--_horizontal-bottom: var(--_scrollbar-offset-px);--_scrollbar-wrapper-x-top: calc(var(--viewport-height) - var(--_scrollbar-thickness));--reached-offset: 1px;--reached-offset-top: var(--reached-offset);--reached-offset-bottom: var(--reached-offset);--reached-offset-start: var(--reached-offset);--reached-offset-end: var(--reached-offset);--_viewport_scroll-timeline: unset;--_animation-timeline-y: unset;--_scrollbar-y-thumb-transform-to-value: unset;--_scrollbar-x-thumb-transform-to-value: unset;--_scrollbar-thumb-transform-from: unset;--_scrollbar-thumb-transform-to: unset}.ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{min-height:100%;min-width:100%;height:100%;max-height:100%;max-width:100%}.ng-scroll-viewport[_nghost-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{position:relative;overflow:var(--_viewport-overflow);scroll-timeline:var(--_viewport_scroll-timeline);box-sizing:border-box!important;-webkit-overflow-scrolling:touch;will-change:scroll-position;-webkit-user-select:var(--_viewport-user-select);user-select:var(--_viewport-user-select);overscroll-behavior:var(--_viewport-overscroll-behavior)}.ng-scroll-viewport[_nghost-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport>.ng-scroll-content{width:var(--_scrollbar-content-width);z-index:1;min-width:100%;min-height:100%;contain:content;padding:var(--_viewport-padding-top, 0) var(--_viewport-padding-right, 0) var(--_viewport-padding-bottom, 0) var(--_viewport-padding-left, 0)}.ng-scroll-viewport[_nghost-%COMP%], .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport{scrollbar-width:none!important}.ng-scroll-viewport[_nghost-%COMP%]::-webkit-scrollbar, .ng-scrollbar-external-viewport[_nghost-%COMP%] .ng-scroll-viewport::-webkit-scrollbar{display:none!important}[position=invertX][_nghost-%COMP%], [position=invertAll][_nghost-%COMP%]{--_horizontal-top: var(--_scrollbar-offset-px);--_horizontal-bottom: initial;--_scrollbar-wrapper-x-top: 0}[dir=ltr][_nghost-%COMP%]{--_scrollbar-wrapper-y-right: initial;--_vertical-right: var(--_scrollbar-offset-px);--_vertical-left: initial;--_scrollbar-wrapper-y-left: calc(var(--viewport-width) - var(--_scrollbar-thickness))}[dir=ltr][position=invertY][_nghost-%COMP%], [dir=ltr][position=invertAll][_nghost-%COMP%]{--_vertical-left: var(--_scrollbar-offset-px);--_vertical-right: initial;--_scrollbar-wrapper-y-left: 0}[dir=rtl][_nghost-%COMP%]{--_scrollbar-wrapper-y-left: initial;--_vertical-left: var(--_scrollbar-offset-px);--_vertical-right: initial;--_scrollbar-wrapper-y-right: calc(var(--viewport-width) - var(--_scrollbar-thickness))}[dir=rtl][position=invertY][_nghost-%COMP%], [dir=rtl][position=invertAll][_nghost-%COMP%]{--_vertical-right: var(--_scrollbar-offset-px);--_vertical-left: initial;--_scrollbar-wrapper-y-right: 0}[verticalUsed=true][horizontalUsed=true][_nghost-%COMP%]{--_scrollbar-thickness-margin: calc(var(--scrollbar-thickness) + var(--scrollbar-offset) * 3);--_scrollbar-thickness-margin-px: calc(var(--_scrollbar-thickness-margin) * 1px)}[horizontalUsed=true][_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-offset-px);--_vertical-bottom: var(--_scrollbar-thickness-margin-px)}[horizontalUsed=true][position=invertX][_nghost-%COMP%], [horizontalUsed=true][position=invertAll][_nghost-%COMP%]{--_vertical-top: var(--_scrollbar-thickness-margin-px);--_vertical-bottom: var(--_scrollbar-offset-px)}[verticalUsed=true][dir=ltr][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-thickness-margin-px)}[verticalUsed=true][dir=rtl][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-thickness-margin-px);--_horizontal-right: var(--_scrollbar-offset-px)}[verticalUsed=true][position=invertY][dir=ltr][_nghost-%COMP%], [verticalUsed=true][position=invertAll][dir=ltr][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-thickness-margin-px);--_horizontal-right: var(--_scrollbar-offset-px)}[verticalUsed=true][position=invertY][dir=rtl][_nghost-%COMP%], [verticalUsed=true][position=invertAll][dir=rtl][_nghost-%COMP%]{--_horizontal-left: var(--_scrollbar-offset-px);--_horizontal-right: var(--_scrollbar-thickness-margin-px)}[appearance=native][verticalUsed=true][dir=ltr][_nghost-%COMP%]{--_viewport-padding-left: 0;--_viewport-padding-right: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][verticalUsed=true][dir=rtl][_nghost-%COMP%]{--_viewport-padding-left: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-right: 0}[appearance=native][verticalUsed=true][position=invertY][dir=ltr][_nghost-%COMP%], [appearance=native][verticalUsed=true][position=invertAll][dir=ltr][_nghost-%COMP%]{--_viewport-padding-left: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-right: 0}[appearance=native][verticalUsed=true][position=invertY][dir=rtl][_nghost-%COMP%], [appearance=native][verticalUsed=true][position=invertAll][dir=rtl][_nghost-%COMP%]{--_viewport-padding-left: 0;--_viewport-padding-right: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][horizontalUsed=true][_nghost-%COMP%]{--_viewport-padding-top: 0;--_viewport-padding-bottom: calc(var(--_scrollbar-thickness) * 1px)}[appearance=native][horizontalUsed=true][position=invertX][_nghost-%COMP%], [appearance=native][horizontalUsed=true][position=invertAll][_nghost-%COMP%]{--_viewport-padding-top: calc(var(--_scrollbar-thickness) * 1px);--_viewport-padding-bottom: 0}[visibility=hover][_nghost-%COMP%]{--_scrollbar-hover-opacity: 0;--_scrollbar-opacity-transition: opacity var(--scrollbar-hover-opacity-transition-leave-duration) var(--scrollbar-hover-opacity-transition-leave-delay)}[visibility=hover][_nghost-%COMP%]:hover, [visibility=hover][_nghost-%COMP%]:active, [visibility=hover][_nghost-%COMP%]:focus{--_scrollbar-hover-opacity: 1;--_scrollbar-opacity-transition: opacity var(--scrollbar-hover-opacity-transition-enter-duration)}[dir=ltr][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{left:0;right:unset}[dir=ltr][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{right:0;left:unset}[dir=rtl][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{right:0;left:unset}[dir=rtl][_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{left:0;right:unset}[_nghost-%COMP%] .ng-scroll-reached-wrapper, [_nghost-%COMP%] .scroll-reached-trigger-element{position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:-9999}[_nghost-%COMP%] .ng-scroll-reached-wrapper{visibility:hidden;inset:0;min-width:calc(var(--viewport-width) * 1px);min-height:calc(var(--viewport-height) * 1px)}[_nghost-%COMP%] [isHorizontallyScrollable=false] .scroll-reached-trigger-element[trigger=end]{display:none}[_nghost-%COMP%] [isVerticallyScrollable=false] .scroll-reached-trigger-element[trigger=bottom]{display:none}[_nghost-%COMP%] .scroll-reached-trigger-element{background:red}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=top], [_nghost-%COMP%] .scroll-reached-trigger-element[trigger=bottom]{left:0;right:0}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start], [_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{top:0;bottom:0}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=top]{top:0;height:var(--reached-offset-top)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=bottom]{bottom:0;height:var(--reached-offset-bottom)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=start]{width:var(--reached-offset-start)}[_nghost-%COMP%] .scroll-reached-trigger-element[trigger=end]{width:var(--reached-offset-end)}[verticalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerY;--_animation-timeline-y: --scrollerY;--_viewport_scroll-timeline: --scrollerY y;--_scrollbar-y-thumb-transform-to-value: calc(var(--track-y-length) - var(--thumb-y-length))}[horizontalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerX;--_animation-timeline-x: --scrollerX;--_viewport_scroll-timeline: --scrollerX x;--_scrollbar-x-thumb-transform-to-value: calc(var(--track-x-length) - var(--thumb-x-length))}[verticalUsed=true][horizontalUsed=true][_nghost-%COMP%]{--_timeline-scope: --scrollerX, --scrollerY;--_viewport_scroll-timeline: --scrollerX x, --scrollerY y}[orientation=vertical][_nghost-%COMP%]{--_viewport-overflow: hidden auto;--_scrollbar-content-width: unset}[orientation=horizontal][_nghost-%COMP%]{--_viewport-overflow: auto hidden}[disableInteraction=true][_nghost-%COMP%]{--_scrollbar-pointer-events: none}[isVerticallyScrollable=false][_nghost-%COMP%]{--_vertical-thumb-display: none}[isHorizontallyScrollable=false][_nghost-%COMP%]{--_horizontal-thumb-display: none}[dragging=x][_nghost-%COMP%], [dragging=y][_nghost-%COMP%]{--_viewport-user-select: none}[horizontalUsed=true][_nghost-%COMP%]{--thumb-x-length: max(calc(var(--viewport-width) * var(--track-x-length) / var(--content-width)), var(--scrollbar-thumb-min-size))}[verticalUsed=true][_nghost-%COMP%]{--thumb-y-length: max(calc(var(--viewport-height) * var(--track-y-length) / var(--content-height)), var(--scrollbar-thumb-min-size))}[dragging=x][_nghost-%COMP%]{--_track-x-thickness: calc(var(--scrollbar-hover-thickness) * 1px);--_thumb-x-color: var(--scrollbar-thumb-hover-color)}[dragging=y][_nghost-%COMP%]{--_track-y-thickness: calc(var(--scrollbar-hover-thickness) * 1px);--_thumb-y-color: var(--scrollbar-thumb-hover-color)}[mobile=true][_nghost-%COMP%]{--_viewport-overscroll-behavior: var(--scrollbar-mobile-overscroll-behavior)}"],changeDetection:0})}return o})(),Qe=(()=>{class o{static#t=this.\u0275fac=function(i){return new(i||o)};static#e=this.\u0275mod=t.$C({type:o});static#o=this.\u0275inj=t.G2t({})}return o})();var ce=X(93331),he=X(38117);function de(o,F){const e=/(\d+)|(\D+)/g,i=/\d+/,M=F.value,x=String(o.value).match(e),L=String(M).match(e);for(;x.length&&L.length;){const R=x.shift(),W=L.shift();if(i.test(R)||i.test(W)){if(!i.test(R))return-1;if(!i.test(W))return 1;if(R!==W)return Number(W)-Number(R)}else if(R!==W)return W.localeCompare(R)}return L.length-x.length}var Ct=X(3366),it=X(19664),$t=X(45794);let Ze=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqInter(){this.apiService.getReqInter().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-network-inter"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.inter.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.inter.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqInter()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.inter.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();var pe=X(28990),ue=X(21264);function Ke(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.nrm(11,"div",9),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.k0s()),2&o){const e=t.XpG(2);t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.detail.visu.subtitle"),t.npT),t.R7$(5),t.Y8G("chart",e.chart)}}function qe(o,F){if(1&o&&(t.j41(0,"div",2),t.EFF(1,"\n "),t.DNE(2,Ke,15,4,"div",3),t.EFF(3,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(2),t.Y8G("ngIf",e.chart)}}function Je(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.nrm(11,"div",10),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.detail.visu.subtitle"),t.npT),t.R7$(5),t.Y8G("chart",e.chart2)}}let to=(()=>{class o extends pe.U{apiService;translate;timeStamp;chart;chart2;devices$;totalTx;totalFail;plugin;constructor(e,i){super(),this.apiService=e,this.translate=i}ngOnInit(){this.devices$=this.apiService.getDevices(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}ngOnChanges(e){e.timeStamp.currentValue!==e.timeStamp.previousValue&&this.apiService.getNwkStatsByTimeStamp(this.timeStamp).subscribe(i=>{this.createChart(i),this.createChart2(i)})}createChart(e){const i=[],a=[],M=[],x=[];e.forEach(W=>{const yt=W.Channels;yt.sort((ut,wt)=>Number(ut.Channel)-Number(wt.Channel)),W.Channels=yt}),e[0].Channels.forEach(W=>{a.push(W.Channel)}),e.forEach(W=>{const yt=[];let ut=0;W.Channels.forEach(wt=>{yt.push(wt.Level),x[ut]=x[ut]?Number(x[ut])+Number(wt.Level):Number(wt.Level),ut++}),i.push({name:W.ZDeviceName?W.ZDeviceName:W._NwkId,data:yt})}),x.forEach(W=>{W/=e.length,W=Number(W).toFixed(2),M.push(Number(W))});const L=i;L.push({name:"Average",data:M,type:"spline",marker:{lineWidth:2,lineColor:ue.getOptions().colors[3],fillColor:"white"}});const R=new et.t1({chart:{type:"column",height:"20%"},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:a},yAxis:{title:{text:this.translate.instant("network.stats.detail.visu.chart.y-axis")}},credits:{enabled:!1},series:L});this.chart=R,this.subs.add(R.ref$.subscribe())}createChart2(e){const i=[],a=[];e.forEach(x=>{const L=x.Channels;L.sort((R,W)=>Number(R.Channel)-Number(W.Channel)),x.Channels=L}),e[0].Channels.forEach(x=>{a.push(x.Channel)}),e.forEach(x=>{const L=[];x.Channels.forEach(R=>{L.push(R.Level)}),i.push({name:x.ZDeviceName?x.ZDeviceName:x._NwkId,data:L,pointPlacement:"on"})});const M=new et.t1({chart:{height:"90%",polar:!0,type:"line"},pane:{},title:{text:this.translate.instant("network.stats.detail.visu.chart.title")},xAxis:{categories:a,tickmarkPlacement:"on",lineWidth:0},yAxis:{gridLineInterpolation:"polygon",lineWidth:0,min:0},tooltip:{shared:!0,pointFormat:'{series.name}: {point.y:,.0f}
    '},legend:{align:"left",verticalAlign:"bottom"},credits:{enabled:!1},series:i,responsive:{rules:[{condition:{maxWidth:600},chartOptions:{legend:{align:"center",verticalAlign:"bottom"},pane:{size:"80%"}}}]}});this.chart2=M,this.subs.add(M.ref$.subscribe())}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-detail-nwk-stat"]],inputs:{timeStamp:"timeStamp"},features:[t.Vt3,t.OA$],decls:10,vars:2,consts:[[1,"row","row-cols-1","row-cols-md-2","g-4","mt-1"],["class","col",4,"ngIf"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.stats.detail.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"text-center",3,"chart"],[3,"chart"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.DNE(2,qe,4,1,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.DNE(6,Je,15,4,"div",3),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n"),t.k0s(),t.EFF(9,"\n")),2&i&&(t.R7$(2),t.Y8G("ngIf",!(null!=a.plugin&&a.plugin.Zigpy)),t.R7$(4),t.Y8G("ngIf",a.chart2))},dependencies:[y.bT,it.Mm,et.S6,it.D9]})}return o})(),eo=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqFull(){this.apiService.getNwkFull().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-network-full"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.full.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.full.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqFull()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.full.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();function oo(o,F){if(1&o){const e=t.RV6();t.j41(0,"span",14),t.EFF(1,"\n "),t.j41(2,"div",15),t.EFF(3,"\n "),t.j41(4,"button",16),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.nwkStatByDate(a.value))}),t.EFF(5),t.nI1(6,"date"),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"div",15),t.EFF(10,"\n "),t.j41(11,"button",17),t.nI1(12,"translate"),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.deleteNwkStatByDate(a.value))}),t.EFF(13,"\n "),t.nrm(14,"i",18),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.k0s(),t.EFF(17,"\n "),t.k0s()}if(2&o){const e=F.$implicit;t.R7$(5),t.SpI("\n ",t.i5U(6,2,1e3*e.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.R7$(6),t.FS9("title",t.bMT(12,5,"network.stats.visu.delete.button"))}}function ro(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.j41(11,"div",9),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"ng-scrollbar",11),t.EFF(16,"\n "),t.j41(17,"div",12),t.EFF(18,"\n "),t.DNE(19,oo,18,7,"span",13),t.nI1(20,"keyvalue"),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=F.ngIf,i=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.stats.subtitle"),t.npT),t.R7$(13),t.Y8G("ngForOf",t.i5U(20,4,e,i.sortDesc))}}function io(o,F){1&o&&t.nrm(0,"app-req-network-full")}function so(o,F){if(1&o&&(t.j41(0,"div"),t.nrm(1,"app-detail-nwk-stat",19),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("timeStamp",e.timeStamp)}}let no=(()=>{class o{apiService;cdr;stats$;listSubject$=new Qt.B;timeStamp;plugin;constructor(e,i){this.apiService=e,this.cdr=i}ngOnInit(){this.stats$=this.apiService.getNwkStats(),setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}sortDesc(e,i){return de(e,i)}nwkStatByDate(e){this.timeStamp=e}deleteNwkStatByDate(e){this.apiService.deleteNwkStatsByTimeStamp(e).subscribe(()=>{this.stats$=this.apiService.getNwkStats(),this.cdr.detectChanges()})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(t.gRc))};static \u0275cmp=t.VBU({type:o,selectors:[["app-nwk-stats"]],decls:17,vars:5,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.stats.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","row d-flex align-items-center",4,"ngFor","ngForOf"],[1,"row","d-flex","align-items-center"],[1,"col-sm"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"click","title"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.j41(2,"div",1),t.EFF(3,"\n "),t.DNE(4,ro,28,7,"div",2),t.nI1(5,"async"),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",1),t.nrm(9,"app-req-network-inter"),t.k0s(),t.EFF(10,"\n "),t.j41(11,"div",1),t.DNE(12,io,1,0,"app-req-network-full",3),t.k0s(),t.EFF(13,"\n"),t.k0s(),t.EFF(14,"\n"),t.DNE(15,so,2,1,"div",3),t.EFF(16,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",t.bMT(5,3,a.stats$)),t.R7$(8),t.Y8G("ngIf",!(null!=a.plugin&&a.plugin.Zigpy)),t.R7$(3),t.Y8G("ngIf",a.timeStamp))},dependencies:[y.Sq,y.bT,it.Mm,le,Ze,to,eo,y.Jj,y.vh,y.lG,it.D9],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]})}return o})();var Ft=X(89417),fe=X(97013),Ht=X(46247),ao=X(5779);const lo=o=>({deviceSelected:o}),co=()=>[10,25,50];function ho(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.nrm(9,"div",8),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.topo.visu.subtitle"),t.npT),t.R7$(3),t.Y8G("chart",e.chart1)}}function po(o,F){if(1&o&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Name"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Model"),t.k0s(),t.EFF(11),t.k0s(),t.EFF(12,"\n ")),2&o){const e=F.item;t.R7$(5),t.SpI(" : ",e.ZDeviceName," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" :\n ",e.Model,"\n ")}}function uo(o,F){1&o&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"th",22),t.EFF(4),t.nI1(5,"translate"),t.nrm(6,"p-sortIcon",23),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"th",24),t.EFF(10),t.nI1(11,"translate"),t.nrm(12,"p-sortIcon",25),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n "),t.j41(15,"th",26),t.EFF(16),t.nI1(17,"translate"),t.nrm(18,"p-sortIcon",27),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th",28),t.EFF(22),t.nI1(23,"translate"),t.nrm(24,"p-sortIcon",29),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.j41(27,"th",30),t.EFF(28),t.nI1(29,"translate"),t.nrm(30,"p-sortIcon",31),t.EFF(31,"\n "),t.k0s(),t.EFF(32,"\n "),t.j41(33,"th",32),t.EFF(34),t.nI1(35,"translate"),t.nrm(36,"p-sortIcon",33),t.EFF(37,"\n "),t.k0s(),t.EFF(38,"\n "),t.k0s(),t.EFF(39,"\n ")),2&o&&(t.R7$(4),t.SpI("\n ",t.bMT(5,6,"network.topo.visu.network.relation.to"),""),t.R7$(6),t.SpI("\n ",t.bMT(11,8,"network.topo.visu.network.relation.weight"),""),t.R7$(6),t.SpI("\n ",t.bMT(17,10,"network.topo.visu.network.relation.model"),""),t.R7$(6),t.SpI("\n ",t.bMT(23,12,"network.topo.visu.network.relation.status"),""),t.R7$(6),t.SpI("\n ",t.bMT(29,14,"network.topo.visu.network.relation.health"),""),t.R7$(6),t.SpI("\n ",t.bMT(35,16,"network.topo.visu.network.relation.battery"),""))}function fo(o,F){if(1&o&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4),t.k0s(),t.EFF(5,"\n "),t.j41(6,"td"),t.EFF(7),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td"),t.EFF(13),t.k0s(),t.EFF(14,"\n "),t.j41(15,"td"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.j41(18,"td"),t.EFF(19),t.k0s(),t.EFF(20,"\n "),t.k0s()),2&o){const e=F.$implicit;t.R7$(4),t.SpI("\n ",e.to,"\n "),t.R7$(3),t.SpI("\n ",e.weight,"\n "),t.R7$(3),t.SpI("\n ",e.Model,"\n "),t.R7$(3),t.SpI("\n ",e.Status,"\n "),t.R7$(3),t.SpI("\n ",e.Health,"\n "),t.R7$(3),t.SpI("\n ",e.Battery,"\n ")}}function go(o,F){if(1&o&&(t.j41(0,"div",17),t.EFF(1,"\n "),t.j41(2,"div",2),t.EFF(3,"\n "),t.j41(4,"div",4),t.EFF(5,"\n "),t.nrm(6,"div",18),t.EFF(7,"\n "),t.j41(8,"div",6),t.EFF(9,"\n "),t.nrm(10,"p",7),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"p-table",19,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,uo,40,18,"ng-template",20),t.EFF(20,"\n "),t.DNE(21,fo,21,6,"ng-template",21),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=t.XpG(2);t.R7$(6),t.Y8G("translateParams",t.eq3(14,lo,e.selectedPoint.name)),t.R7$(4),t.Y8G("innerHTML",t.bMT(11,10,"network.topo.visu.network.relation.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,12,"TOTAL")),t.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(16,co))("value",e.relationsSelected)("rows",10)("paginator",!0)("scrollable",!0)}}function mo(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",9),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",10),t.EFF(10,"\n "),t.j41(11,"div"),t.EFF(12,"\n "),t.j41(13,"form",11),t.EFF(14,"\n "),t.nrm(15,"input",12),t.EFF(16,"\n "),t.j41(17,"ng-select",13),t.nI1(18,"translate"),t.EFF(19,"\n "),t.DNE(20,po,13,3,"ng-template",14),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.nrm(25,"div",15),t.EFF(26,"\n "),t.DNE(27,go,28,17,"div",16),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.k0s(),t.EFF(30,"\n "),t.k0s()),2&o){const e=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,9,"network.topo.visu.network.subtitle"),t.npT),t.R7$(7),t.Y8G("formGroup",e.form),t.R7$(4),t.FS9("placeholder",t.bMT(18,11,"network.topo.visu.network.filter")),t.Y8G("items",e.devices)("multiple",!1)("closeOnSelect",!0)("searchable",!0),t.R7$(8),t.Y8G("chart",e.chart2),t.R7$(2),t.Y8G("ngIf",e.relationsSelected)}}let vo=(()=>{class o extends pe.U{apiService;translate;formBuilder;timeStamp;chart1;chart2;form;datas;devices;showDetail=!1;device;data;relationsSelected;selectedPoint;constructor(e,i,a){super(),this.apiService=e,this.translate=i,this.formBuilder=a}ngOnInit(){this.form=this.formBuilder.group({nodeToFilter:[null],detail:[null]}),this.apiService.getZDeviceName().subscribe(e=>{this.devices=e,this.devices.unshift({IEEE:"",MacCapa:[""],Model:"",Health:"",Status:"",WidgetList:[""],ZDeviceName:"Zigbee Coordinator",_NwkId:""})}),this.subs.sink=this.form.get("nodeToFilter").valueChanges.subscribe(e=>{this.createChart2(e)}),this.subs.add(this.form.get("detail").valueChanges.subscribe(()=>{const e=[];this.selectedPoint=this.chart2.ref.hoverPoint,this.selectedPoint.linksFrom.map(M=>M.options).map(M=>{const x=this.devices.find(L=>L.ZDeviceName===M.to||L._NwkId===M.to);e.push({to:M.to,from:M.from,weight:M.weight,Model:x.Model,Status:x.Status,Health:x.Health,Battery:x.Battery})}),this.selectedPoint.linksTo.map(M=>M.options).map(M=>{if(!e.some(x=>x.to===M.from)){const x=this.devices.find(L=>L.ZDeviceName===M.from||L._NwkId===M.from);e.push({to:M.from,from:M.from,weight:x.LQI,Model:x.Model,Status:x.Status,Health:x.Health,Battery:x.Battery})}}),this.relationsSelected=e}))}ngOnChanges(e){e.timeStamp.currentValue!==e.timeStamp.previousValue&&this.apiService.getTopologieByTimeStamp(this.timeStamp).subscribe(i=>{this.datas=i,this.createChart1(),this.createChart2()})}createChart1(){const e=this.datas.map(a=>{const M=Object.values(a);return M.splice(1,1),M}),i=new et.t1({chart:{type:"dependencywheel",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.chart.title")},credits:{enabled:!1},series:[{type:void 0,keys:["to","from","weight"],data:e}]});this.chart1=i}createChart2(e){let i=this.datas.map(x=>{const L=Object.values(x);return L.splice(1,1),L});e&&(i=i.filter(x=>x[0].toLowerCase()===e.toLowerCase()||x[1].toLowerCase()===e.toLowerCase()));const a=[{nodes:void 0,type:void 0,keys:["to","from","weight"],dataLabels:{enabled:!0,linkFormat:""},data:i}];this.test(a);const M=new et.t1({chart:{type:"networkgraph",height:"80%"},title:{text:this.translate.instant("network.topo.device.visu.network.chart.title")},credits:{enabled:!1},plotOptions:{networkgraph:{keys:["to","from","weight"],layoutAlgorithm:{enableSimulation:!0,integration:"verlet"}},series:{point:{events:{click:function(){document.getElementById("detail").dispatchEvent(new Event("input",{bubbles:!0}))}}}}},series:a});this.chart2=M}test(e){const i=ue.getOptions().colors;let a=0;const M={"Zigbee Coordinator":{id:"Zigbee Coordinator",marker:{radius:20}}},x=this.datas.filter(R=>"Zigbee Coordinator"===R.Child),L=[];x.forEach(R=>{M[R.Father]={id:R.Father,marker:{radius:10},color:i[a++]},L.push(R.Father)}),this.colorNode(M,L),e[0].nodes=Object.keys(M).map(function(R){return M[R]})}colorNode(e,i){i.forEach(a=>{const M=[];this.datas.filter(L=>L.Child===a).forEach(L=>{e[L.Father]||(e[L.Father]={id:L.Father,color:e[L.Child].color},M.push(L.Father))}),M.length>0&&this.colorNode(e,M)})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(it.c$),t.rXU(Ft.ok))};static \u0275cmp=t.VBU({type:o,selectors:[["app-detail-topology"]],inputs:{timeStamp:"timeStamp"},features:[t.Vt3,t.OA$],decls:13,vars:2,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-lg-2","g-4","mt-1"],[1,"col"],["class","card",4,"ngIf"],[1,"card"],["translate","network.topo.visu.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text",3,"chart"],["translate","network.topo.visu.network.header",1,"card-header","fw-bold"],[1,"card-text"],[3,"formGroup"],["type","hidden","formControlName","detail","id","detail"],["bindLabel","ZDeviceName","bindValue","ZDeviceName","appendTo","body","formControlName","nodeToFilter",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[3,"chart"],["class","row",4,"ngIf"],[1,"row"],["translate","network.topo.visu.network.relation.header",1,"card-header","fw-bold",3,"translateParams"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","topology",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"],["pSortableColumn","to"],["field","to"],["pSortableColumn","weight"],["field","weight"],["pSortableColumn","Model",2,"width","8rem"],["field","Model"],["pSortableColumn","Status",2,"width","10rem"],["field","Status"],["pSortableColumn","Health"],["field","Health"],["pSortableColumn","Battery"],["field","Battery"]],template:function(i,a){1&i&&(t.j41(0,"div",1),t.EFF(1,"\n "),t.j41(2,"div",2),t.EFF(3,"\n "),t.DNE(4,ho,12,4,"div",3),t.EFF(5,"\n "),t.k0s(),t.EFF(6,"\n "),t.j41(7,"div",2),t.EFF(8,"\n "),t.DNE(9,mo,31,13,"div",3),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n"),t.k0s(),t.EFF(12,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",a.chart1),t.R7$(5),t.Y8G("ngIf",a.chart2))},dependencies:[y.bT,Ft.qT,Ft.me,Ft.BC,Ft.cb,Ft.j4,Ft.JD,fe.vr,fe.Uq,it.Mm,Ht.XI,ao.Ei,Ht.Tg,Ht.yc,et.S6,it.D9]})}return o})(),bo=(()=>{class o{apiService;toastr;translate;stats$;constructor(e,i,a){this.apiService=e,this.toastr=i,this.translate=a}reqTopology(){this.apiService.getReqTopologie().subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.scanlaunched.notify"))})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU($t.tw),t.rXU(it.c$))};static \u0275cmp=t.VBU({type:o,selectors:[["app-req-topology"]],decls:16,vars:3,consts:[[1,"card"],["translate","network.topology.req.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-footer","d-flex","justify-content-end"],["translate","network.topology.req.button",1,"btn","btn-light",3,"click"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.nrm(2,"div",1),t.EFF(3,"\n "),t.j41(4,"div",2),t.EFF(5,"\n "),t.nrm(6,"p",3),t.nI1(7,"translate"),t.EFF(8,"\n "),t.k0s(),t.EFF(9,"\n "),t.j41(10,"div",4),t.EFF(11,"\n "),t.j41(12,"button",5),t.bIt("click",function(){return a.reqTopology()}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n"),t.k0s(),t.EFF(15,"\n")),2&i&&(t.R7$(6),t.Y8G("innerHTML",t.bMT(7,1,"network.topology.req.subtitle"),t.npT))},dependencies:[it.Mm,it.D9]})}return o})();function yo(o,F){if(1&o){const e=t.RV6();t.j41(0,"span",14),t.EFF(1,"\n "),t.j41(2,"button",15),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.topologyByDate(a.value))}),t.EFF(3),t.nI1(4,"date"),t.k0s(),t.EFF(5,"\n "),t.j41(6,"button",16),t.nI1(7,"translate"),t.bIt("click",function(){const a=t.eBV(e).$implicit,M=t.XpG(2);return t.Njj(M.deleteTopologyByDate(a.value))}),t.EFF(8,"\n "),t.nrm(9,"i",17),t.EFF(10,"\n "),t.k0s(),t.EFF(11,"\n "),t.k0s()}if(2&o){const e=F.$implicit;t.R7$(3),t.SpI("\n ",t.i5U(4,2,1e3*e.value,"dd/MM/yyyy HH:mm:ss"),"\n "),t.R7$(3),t.FS9("title",t.bMT(7,5,"network.topo.visu.delete.button"))}}function wo(o,F){if(1&o&&(t.j41(0,"div",4),t.EFF(1,"\n "),t.nrm(2,"div",5),t.EFF(3,"\n "),t.j41(4,"div",6),t.EFF(5,"\n "),t.nrm(6,"p",7),t.nI1(7,"translate"),t.EFF(8,"\n "),t.j41(9,"div",8),t.EFF(10,"\n "),t.j41(11,"div",9),t.EFF(12,"\n "),t.j41(13,"div",10),t.EFF(14,"\n "),t.j41(15,"ng-scrollbar",11),t.EFF(16,"\n "),t.j41(17,"div",12),t.EFF(18,"\n "),t.DNE(19,yo,12,7,"span",13),t.nI1(20,"keyvalue"),t.EFF(21,"\n "),t.k0s(),t.EFF(22,"\n "),t.k0s(),t.EFF(23,"\n "),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n "),t.k0s()),2&o){const e=F.ngIf,i=t.XpG();t.R7$(6),t.Y8G("innerHTML",t.bMT(7,2,"network.topo.subtitle"),t.npT),t.R7$(13),t.Y8G("ngForOf",t.i5U(20,4,e,i.sortDesc))}}function _o(o,F){if(1&o&&(t.j41(0,"div"),t.nrm(1,"app-detail-topology",18),t.k0s()),2&o){const e=t.XpG();t.R7$(),t.Y8G("timeStamp",e.timeStamp)}}const So=[{path:"topology",component:(()=>{class o{apiService;cdr;timeStamp;topologies$;constructor(e,i){this.apiService=e,this.cdr=i}ngOnInit(){this.topologies$=this.apiService.getTopologie()}sortDesc(e,i){return de(e,i)}topologyByDate(e){this.timeStamp=e}deleteTopologyByDate(e){this.apiService.deleteTopologieByTimeStamp(e).subscribe(()=>{this.topologies$=this.apiService.getTopologie(),this.cdr.detectChanges()})}static \u0275fac=function(i){return new(i||o)(t.rXU(Ct.G),t.rXU(t.gRc))};static \u0275cmp=t.VBU({type:o,selectors:[["app-topology"]],decls:14,vars:4,consts:[[1,"row","row-cols-1","row-cols-xxl-5","row-cols-xl-4","row-cols-lg-3","row-cols-md-2","row-cols-sm-1","g-4"],[1,"col"],["class","card",4,"ngIf"],[4,"ngIf"],[1,"card"],["translate","network.topo.header",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"vertical-container"],[1,"content-container"],[1,"scroll-container"],[1,"scrollable-content"],["class","d-sm-flex gap-2",4,"ngFor","ngForOf"],[1,"d-sm-flex","gap-2"],[1,"btn","btn-light",3,"click"],[1,"btn","btn-light",3,"click","title"],[1,"fa","fa-trash"],[3,"timeStamp"]],template:function(i,a){1&i&&(t.j41(0,"div",0),t.EFF(1,"\n "),t.j41(2,"div",1),t.EFF(3,"\n "),t.DNE(4,wo,28,7,"div",2),t.nI1(5,"async"),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div"),t.nrm(9,"app-req-topology"),t.k0s(),t.EFF(10,"\n"),t.k0s(),t.EFF(11,"\n"),t.DNE(12,_o,2,1,"div",3),t.EFF(13,"\n")),2&i&&(t.R7$(4),t.Y8G("ngIf",t.bMT(5,2,a.topologies$)),t.R7$(8),t.Y8G("ngIf",a.timeStamp))},dependencies:[y.Sq,y.bT,it.Mm,le,vo,bo,y.Jj,y.vh,y.lG,it.D9],styles:[".content-container[_ngcontent-%COMP%]{position:relative;overflow:auto;height:150px;min-height:0}.vertical-container[_ngcontent-%COMP%], .horizontal-container[_ngcontent-%COMP%]{min-height:0}.scroll-container[_ngcontent-%COMP%]{position:relative}.scrollable-content[_ngcontent-%COMP%]{padding:16px;margin:0}"]})}return o})(),data:{title:(0,he.o6)("network.topo")}},{path:"energy-level",component:no,data:{title:(0,he.o6)("network.energy")}}];let ko=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=t.$C({type:o});static \u0275inj=t.G2t({imports:[ce.iI.forChild(So),ce.iI]})}return o})(),xo=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=t.$C({type:o});static \u0275inj=t.G2t({providers:[{provide:et.SV,useFactory:()=>[Q,K,I,S,O]}],imports:[ko,ht.G,et.Fr,Qe]})}return o})()},69820:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/DependencyWheel/DependencyWheelPoint.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{sankey:{prototype:{pointClass:E}}}=O.seriesTypes,{pInt:t,wrap:T}=I;return class N extends E{getDataLabelPath(P){const c=this,h=c.series.chart.renderer,m=c.shapeArgs,_=c.angle<0||c.angle>Math.PI,f=m.start||0,k=m.end||0;return c.dataLabelPath?(c.dataLabelPath=c.dataLabelPath.destroy(),delete c.dataLabelPath):T(P,"destroy",function(n){return c.dataLabelPath&&(c.dataLabelPath=c.dataLabelPath.destroy()),n.call(this)}),c.dataLabelPath=h.arc({open:!0,longArc:Math.abs(Math.abs(f)-Math.abs(k)){v.graphic&&v.graphic.animate({opacity:1},{duration:b})},b*p++))}for(const v of l.points){const D=v.graphic;!v.isNode&&D&&D.attr({opacity:0}).animate({opacity:1},l.options.animation)}}}createNode(d){const l=super.createNode(d);return l.getSum=()=>l.linksFrom.concat(l.linksTo).reduce((g,b)=>g+b.weight,0),l.offset=g=>{const b=r=>r.fromNode===l?r.toNode:r.fromNode;let D,p=0,v=l.linksFrom.concat(l.linksTo);v.sort((r,u)=>b(r).index-b(u).index);for(let r=0;rl.index){v=v.slice(0,r).reverse().concat(v.slice(r).reverse()),D=!0;break}D||v.reverse();for(let r=0;r{const G=g*B,H=Math.cos(p+G)*(z+1),rt=Math.sin(p+G)*(z+1);return $=l.curveFactor||0,Y=Math.abs(q.linkBase[3-U]*g-G),Y>Math.PI&&(Y=2*Math.PI-Y),Y*=z,Y{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/DragNodesComposition.js",[S["Core/Globals.js"],S["Core/Utilities.js"]],function(O,I){const{composed:E}=O,{addEvent:t,pushUnique:T}=I;function j(){const f=this;let k,n,s;f.container&&(k=t(f.container,"mousedown",d=>{const l=f.hoverPoint;l&&l.series&&l.series.hasDraggableNodes&&l.series.options.draggable&&(l.series.onMouseDown(l,d),n=t(f.container,"mousemove",g=>l&&l.series&&l.series.onMouseMove(l,g)),s=t(f.container.ownerDocument,"mouseup",g=>(n(),s(),l&&l.series&&l.series.onMouseUp(l,g))))})),t(f,"destroy",function(){k()})}return{compose:function N(f){T(E,"DragNodes")&&t(f,"load",j)},onMouseDown:function P(f,k){const n=this.chart.pointer?.normalize(k)||k;f.fixedPosition={chartX:n.chartX,chartY:n.chartY,plotX:f.plotX,plotY:f.plotY},f.inDragMode=!0},onMouseMove:function c(f,k){if(f.fixedPosition&&f.inDragMode){const s=this.chart,d=s.pointer?.normalize(k)||k,l=f.fixedPosition.chartX-d.chartX,g=f.fixedPosition.chartY-d.chartY,b=s.graphLayoutsLookup;let p,v;(Math.abs(l)>5||Math.abs(g)>5)&&(p=f.fixedPosition.plotX-l,v=f.fixedPosition.plotY-g,s.isInsidePlot(p,v)&&(f.plotX=p,f.plotY=v,f.hasDragged=!0,this.redrawHalo(f),b.forEach(D=>{D.restartSimulation()})))}},onMouseUp:function h(f){f.fixedPosition&&(f.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),f.inDragMode=f.hasDragged=!1,this.options.fixedDraggable||delete f.fixedPosition)},redrawHalo:function m(f){f&&this.halo&&this.halo.attr({d:f.haloPath(this.options.states.hover.halo.size)})}}}),K(S,"Series/GraphLayoutComposition.js",[S["Core/Animation/AnimationUtilities.js"],S["Core/Globals.js"],S["Core/Utilities.js"]],function(O,I,E){const{setAnimation:t}=O,{composed:T}=I,{addEvent:N,pushUnique:j}=E;function m(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(s=>{s.updateSimulation()}),this.redraw())}function _(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(s=>{s.updateSimulation(!1)}),this.redraw())}function f(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(s=>{s.stop()})}function k(){let s,d=!1;const l=g=>{g.maxIterations--&&isFinite(g.temperature)&&!g.isStable()&&!g.enableSimulation&&(g.beforeStep&&g.beforeStep(),g.step(),s=!1,d=!0)};if(this.graphLayoutsLookup){for(t(!1,this),this.graphLayoutsLookup.forEach(g=>g.start());!s;)s=!0,this.graphLayoutsLookup.forEach(l);d&&this.series.forEach(g=>{g&&g.layout&&g.render()})}}return{compose:function h(s){j(T,"GraphLayout")&&(N(s,"afterPrint",m),N(s,"beforePrint",_),N(s,"predraw",f),N(s,"render",k))},integrations:{},layouts:{}}}),K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{series:{prototype:E,prototype:{pointClass:{prototype:t}}}}=O,{defined:T,extend:N,find:j,merge:P,pick:c}=I;var h;return function(m){function k(){return this.data=[].concat(this.points||[],this.nodes),E.destroy.apply(this,arguments)}function s(){this.nodes&&(this.nodes.forEach(g=>{g.destroy()}),this.nodes.length=0),E.setData.apply(this,arguments)}function d(g){const b=arguments,p=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==g&&p.forEach(v=>{v&&v.series&&(t.setState.apply(v,b),v.isNode||(v.fromNode.graphic&&t.setState.apply(v.fromNode,b),v.toNode&&v.toNode.graphic&&t.setState.apply(v.toNode,b)))}),t.setState.apply(this,b)}function l(g,b,p,v){const D=this.series.options.nodes,r=this.series.options.data,u=r&&r.length||0,w=r&&r[this.index];if(t.update.call(this,g,!this.isNode&&b,p,v),this.isNode){const C=(D||[]).reduce((A,z,V)=>this.id===z.id?V:A,-1),y=P(D&&D[C]||{},r&&r[this.index]||{});r&&(w?r[this.index]=w:r.length=u),D?C>=0?D[C]=y:D.push(y):this.series.options.nodes=[y],c(b,!0)&&this.series.chart.redraw(p)}}m.compose=function _(g,b){const p=g.prototype,v=b.prototype;return p.setNodeState=d,p.setState=d,p.update=l,v.destroy=k,v.setData=s,b},m.createNode=function f(g){const b=this.pointClass,p=(r,u)=>j(r,w=>w.id===u);let D,v=p(this.nodes,g);if(!v){D=this.options.nodes&&p(this.options.nodes,g);const r=new b(this,N({className:"highcharts-node",isNode:!0,id:g,y:1},D));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let u=0,w=0;return r.linksTo.forEach(C=>{u+=C.weight||0}),r.linksFrom.forEach(C=>{w+=C.weight||0}),Math.max(u,w)},r.offset=function(u,w){let C=0;for(let y=0;y{w.outgoing&&u++}),!r.linksTo.length||u!==r.linksTo.length},r.index=this.nodes.push(r)-1,v=r}return v.formatPrefix="node",v.name=v.name||v.options.id||"",v.mass=c(v.options.mass,v.options.marker&&v.options.marker.radius,this.options.marker&&this.options.marker.radius,4),v},m.destroy=k,m.generatePoints=function n(){const g=this.chart,b={};E.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(p=>{p.linksFrom.length=0,p.linksTo.length=0,p.level=p.options.level}),this.points.forEach(p=>{T(p.from)&&(b[p.from]||(b[p.from]=this.createNode(p.from)),b[p.from].linksFrom.push(p),p.fromNode=b[p.from],g.styledMode?p.colorIndex=c(p.options.colorIndex,b[p.from].colorIndex):p.color=p.options.color||b[p.from].color),T(p.to)&&(b[p.to]||(b[p.to]=this.createNode(p.to)),b[p.to].linksTo.push(p),p.toNode=b[p.to]),p.name=p.name||p.id},this),this.nodeLookup=b},m.setNodeState=d,m.updateNode=l}(h||(h={})),h}),K(S,"Series/Networkgraph/NetworkgraphPoint.js",[S["Series/NodesComposition.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){const{series:{prototype:t,prototype:{pointClass:T}}}=I,{addEvent:N,css:j,defined:P,extend:c,pick:h}=E;class m extends T{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(f){f.destroyElements&&f.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),T.prototype.destroy.apply(this,arguments)}getDegree(){const f=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===f?1:f}getLinkAttributes(){const f=this.series.options.link,k=this.options;return{"stroke-width":h(k.width,f.width),stroke:k.color||f.color,dashstyle:k.dashStyle||f.dashStyle,opacity:h(k.opacity,f.opacity,1)}}getLinkPath(){let f=this.fromNode,k=this.toNode;return f.plotX>k.plotX&&(f=this.toNode,k=this.fromNode),[["M",f.plotX||0,f.plotY||0],["L",k.plotX||0,k.plotY||0]]}getMass(){const f=this.fromNode.mass,k=this.toNode.mass,n=f+k;return{fromNode:1-f/n,toNode:1-k/n}}constructor(f,k,n){super(f,k,n),this.series.options.draggable&&!this.series.chart.styledMode&&(N(this,"mouseOver",function(){j(this.series.chart.container,{cursor:"move"})}),N(this,"mouseOut",function(){j(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||P(this.id)}redrawLink(){let k,f=this.getLinkPath();if(this.graphic){this.shapeArgs={d:f},this.series.chart.styledMode||(k=this.series.pointAttribs(this),this.graphic.attr(k),(this.dataLabels||[]).forEach(function(d){d&&d.attr({opacity:k.opacity})})),this.graphic.animate(this.shapeArgs);const n=f[0],s=f[1];"M"===n[0]&&"L"===s[0]&&(this.plotX=(n[1]+s[1])/2,this.plotY=(n[2]+s[2])/2)}}remove(f,k){let l,n=this,s=n.series,d=s.options.nodes||[],g=d.length;if(n.isNode){for(s.points=[],[].concat(n.linksFrom).concat(n.linksTo).forEach(function(b){l=b.fromNode.linksFrom.indexOf(b),l>-1&&b.fromNode.linksFrom.splice(l,1),l=b.toNode.linksTo.indexOf(b),l>-1&&b.toNode.linksTo.splice(l,1),t.removePoint.call(s,s.data.indexOf(b),!1,!1)}),s.points=s.data.slice(),s.nodes.splice(s.nodes.indexOf(n),1);g--;)if(d[g].id===n.options.id){s.options.nodes.splice(g,1);break}n&&n.destroy(),s.isDirty=!0,s.isDirtyData=!0,f&&s.chart.redraw(f)}else s.removePoint(s.data.indexOf(n),f,k)}renderLink(){let f;this.graphic||(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(f=this.series.pointAttribs(this),this.graphic.attr(f),(this.dataLabels||[]).forEach(function(k){k&&k.attr({opacity:f.opacity})})))}}return c(m.prototype,{setState:O.setNodeState}),m}),K(S,"Series/Networkgraph/NetworkgraphSeriesDefaults.js",[],function(){return{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,animation:{duration:50}}},dataLabels:{formatter:function(){return this.key},linkFormatter:function(){return this.point.fromNode.name+"
    "+this.point.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}}),K(S,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function O(c,h,m,_){const f=c.getMass(),k=m.x/_*h,n=m.y/_*h;c.fromNode.fixedPosition||(c.fromNode.dispX-=k*f.fromNode/c.fromNode.degree,c.fromNode.dispY-=n*f.fromNode/c.fromNode.degree),c.toNode.fixedPosition||(c.toNode.dispX+=k*f.toNode/c.toNode.degree,c.toNode.dispY+=n*f.toNode/c.toNode.degree)},attractiveForceFunction:function I(c,h){return c*c/h},barycenter:function E(){const c=this.options.gravitationalConstant,h=this.barycenter.xFactor,m=this.barycenter.yFactor;this.nodes.forEach(function(_){if(!_.fixedPosition){const f=_.getDegree(),k=f*(1+f/2);_.dispX+=(h-_.plotX)*c*k/_.degree,_.dispY+=(m-_.plotY)*c*k/_.degree}})},getK:function t(c){return Math.pow(c.box.width*c.box.height/c.nodes.length,.3)},integrate:function T(c,h){let m;h.dispX+=h.dispX*c.options.friction,h.dispY+=h.dispY*c.options.friction,m=h.temperature=c.vectorLength({x:h.dispX,y:h.dispY}),0!==m&&(h.plotX+=h.dispX/m*Math.min(Math.abs(h.dispX),c.temperature),h.plotY+=h.dispY/m*Math.min(Math.abs(h.dispY),c.temperature))},repulsive:function N(c,h,m,_){c.dispX+=m.x/_*h/c.degree,c.dispY+=m.y/_*h/c.degree},repulsiveForceFunction:function j(c,h){return h*h/c}}}),K(S,"Series/Networkgraph/QuadTreeNode.js",[],function(){class O{constructor(E){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=E,this.boxSize=Math.min(E.width,E.height)}divideBox(){const E=this.box.width/2,t=this.box.height/2;this.nodes[0]=new O({left:this.box.left,top:this.box.top,width:E,height:t}),this.nodes[1]=new O({left:this.box.left+E,top:this.box.top,width:E,height:t}),this.nodes[2]=new O({left:this.box.left+E,top:this.box.top+t,width:E,height:t}),this.nodes[3]=new O({left:this.box.left,top:this.box.top+t,width:E,height:t})}getBoxPosition(E){const T=E.plotYc?1:0)}}}),K(S,"Series/Networkgraph/ReingoldFruchtermanLayout.js",[S["Series/Networkgraph/EulerIntegration.js"],S["Core/Globals.js"],S["Series/GraphLayoutComposition.js"],S["Series/Networkgraph/QuadTree.js"],S["Core/Utilities.js"],S["Series/Networkgraph/VerletIntegration.js"]],function(O,I,E,t,T,N){const{win:j}=I,{clamp:P,defined:c,isFunction:h,fireEvent:m,pick:_}=T;class f{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(n){E.compose(n),E.integrations.euler=O,E.integrations.verlet=N,E.layouts["reingold-fruchterman"]=f}init(n){this.options=n,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=E.integrations[n.integration],this.enableSimulation=n.enableSimulation,this.attractiveForce=_(n.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=_(n.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=n.approximation}updateSimulation(n){this.enableSimulation=_(n,this.options.enableSimulation)}start(){const n=this,s=this.series,d=this.options;n.currentStep=0,n.forces=s[0]&&s[0].forces||[],n.chart=s[0]&&s[0].chart,n.initialRendering&&(n.initPositions(),s.forEach(function(l){l.finishedAnimating=!0,l.render()})),n.setK(),n.resetSimulation(d),n.enableSimulation&&n.step()}step(){const n=this,s=this.series;this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter());for(const d of this.forces||[])n[d+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(const d of s)d.chart&&d.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&j.cancelAnimationFrame(this.simulation),this.simulation=j.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(d=>{m(d,"afterSimulation")}))}}stop(){this.simulation&&j.cancelAnimationFrame(this.simulation)}setArea(n,s,d,l){this.box={left:n,top:s,width:d,height:l}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(n,s){for(const d of n)-1===s.indexOf(d)&&s.push(d)}removeElementFromCollection(n,s){const d=s.indexOf(n);-1!==d&&s.splice(d,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(n){this.maxIterations=_(n,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(n){this.initialRendering=n}createQuadTree(){this.quadTree=new t(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const n=this.options.initialPositions;if(h(n)){n.call(this);for(const s of this.nodes)c(s.prevX)||(s.prevX=s.plotX),c(s.prevY)||(s.prevY=s.plotY),s.dispX=0,s.dispY=0}else"circle"===n?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const n=this.box,s=this.nodes,l=2*Math.PI/(s.length+1),g=s.filter(function(u){return 0===u.linksTo.length}),b={},p=this.options.initialPositionRadius,v=u=>{for(const w of u.linksFrom||[])b[w.toNode.id]||(b[w.toNode.id]=!0,D.push(w.toNode),v(w.toNode))};let r,D=[];for(const u of g)D.push(u),v(u);if(D.length)for(const u of s)-1===D.indexOf(u)&&D.push(u);else D=s;for(let u=0,w=D.length;u{let p=b*b/Math.PI;return p-=Math.floor(p),p};let g;for(let b=0,p=s.length;bthis.barnesHutApproximation(n,s));else{let n,s,d;for(const l of this.nodes)for(const g of this.nodes)l!==g&&!l.fixedPosition&&(d=this.getDistXY(l,g),s=this.vectorLength(d),0!==s&&(n=this.repulsiveForce(s,this.k),this.force("repulsive",l,n*g.mass,d,s)))}}attractiveForces(){let n,s,d;for(const l of this.links)l.fromNode&&l.toNode&&(n=this.getDistXY(l.fromNode,l.toNode),s=this.vectorLength(n),0!==s&&(d=this.attractiveForce(s,this.k),this.force("attractive",l,d,n,s)))}applyLimits(){const n=this.nodes;for(const s of n){if(s.fixedPosition)return;this.integration.integrate(this,s),this.applyLimitBox(s,this.box),s.dispX=0,s.dispY=0}}applyLimitBox(n,s){const d=n.radius;n.plotX=P(n.plotX,s.left+d,s.width-d),n.plotY=P(n.plotY,s.top+d,s.height-d)}coolDown(n,s,d){return n-s*d}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let n=0;for(const s of this.nodes)n+=s.temperature;return n}vectorLength(n){return Math.sqrt(n.x*n.x+n.y*n.y)}getDistR(n,s){const d=this.getDistXY(n,s);return this.vectorLength(d)}getDistXY(n,s){const d=n.plotX-s.plotX,l=n.plotY-s.plotY;return{x:d,y:l,absX:Math.abs(d),absY:Math.abs(l)}}}return f}),K(S,"Series/SimulationSeriesUtilities.js",[S["Core/Utilities.js"],S["Core/Animation/AnimationUtilities.js"]],function(O,I){const{merge:E,syncTimeout:t}=O,{animObject:T}=I;return{initDataLabels:function j(){const c=this,h=c.options.dataLabels;if(!c.dataLabelsGroup){const m=this.initDataLabelsGroup();return!c.chart.styledMode&&h?.style&&m.css(h.style),m.attr({opacity:0}),c.visible&&m.show(),m}return c.dataLabelsGroup.attr(E({opacity:1},this.getPlotBox("data-labels"))),c.dataLabelsGroup},initDataLabelsDefer:function N(){const c=this.options.dataLabels;c?.defer&&this.options.layoutAlgorithm?.enableSimulation?t(()=>{this.deferDataLabels=!1},c?T(c.animation).defer:0):this.deferDataLabels=!1}}}),K(S,"Series/Networkgraph/NetworkgraphSeries.js",[S["Series/DragNodesComposition.js"],S["Series/GraphLayoutComposition.js"],S["Core/Globals.js"],S["Series/Networkgraph/NetworkgraphPoint.js"],S["Series/Networkgraph/NetworkgraphSeriesDefaults.js"],S["Series/NodesComposition.js"],S["Series/Networkgraph/ReingoldFruchtermanLayout.js"],S["Core/Series/SeriesRegistry.js"],S["Series/SimulationSeriesUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c,h){const{noop:m}=E,{series:_,seriesTypes:{column:{prototype:f},line:{prototype:k}}}=P,{initDataLabels:n,initDataLabelsDefer:s}=c,{addEvent:d,defined:l,extend:g,merge:b,pick:p}=h;class v extends _{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(r){O.compose(r),j.compose(r)}deferLayout(){let y,r=this.options.layoutAlgorithm,u=this.chart.graphLayoutsStorage,w=this.chart.graphLayoutsLookup,C=this.chart.options.chart;this.visible&&(u||(this.chart.graphLayoutsStorage=u={},this.chart.graphLayoutsLookup=w=[]),y=u[r.type],y||(r.enableSimulation=l(C.forExport)?!C.forExport:r.enableSimulation,u[r.type]=y=new I.layouts[r.type],y.init(r),w.splice(y.index,0,y)),this.layout=y,y.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),y.addElementsToCollection([this],y.series),y.addElementsToCollection(this.nodes,y.nodes),y.addElementsToCollection(this.points,y.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),N.destroy.call(this)}drawDataLabels(){if(this.deferDataLabels)return;const r=this.options.dataLabels;let u;r?.textPath&&(u=r.textPath),_.prototype.drawDataLabels.call(this,this.nodes),r?.linkTextPath&&(r.textPath=r.linkTextPath),_.prototype.drawDataLabels.call(this,this.data),r?.textPath&&(r.textPath=u)}generatePoints(){let r,u;for(N.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(w){this.nodeLookup[w.id]||(this.nodeLookup[w.id]=this.createNode(w.id))},this),u=this.nodes.length-1;u>=0;u--)r=this.nodes[u],r.degree=r.getDegree(),r.radius=p(r.marker&&r.marker.radius,this.options.marker&&this.options.marker.radius,0),this.nodeLookup[r.id]||r.remove();this.data.forEach(function(w){w.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(r,u){r.index=u})}init(r,u){return super.init(r,u),s.call(this),d(this,"updatedData",()=>{this.layout&&this.layout.stop()}),d(this,"afterUpdate",()=>{this.nodes.forEach(w=>{w&&w.series&&w.resolveColor()})}),d(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(r,u){const w=_.prototype.markerAttribs.call(this,r,u);return l(r.plotY)||(w.y=0),w.x=(r.plotX||0)-(w.width||0)/2,w}pointAttribs(r,u){let w=u||r&&r.state||"normal",C=_.prototype.pointAttribs.call(this,r,w),y=this.options.states[w];return r&&!r.isNode&&(C=r.getLinkAttributes(),y&&(C={stroke:y.linkColor||C.stroke,dashstyle:y.linkDashStyle||C.dashstyle,opacity:p(y.linkOpacity,C.opacity),"stroke-width":y.linkColor||C["stroke-width"]})),C}render(){const r=this,u=r.points,w=r.chart.hoverPoint,C=[];r.points=r.nodes,k.render.call(this),r.points=u,u.forEach(function(y){y.fromNode&&y.toNode&&(y.renderLink(),y.redrawLink())}),w&&w.series===r&&r.redrawHalo(w),r.chart.hasRendered&&!r.options.dataLabels.allowOverlap&&(r.nodes.concat(r.points).forEach(function(y){y.dataLabel&&C.push(y.dataLabel)}),r.chart.hideOverlappingLabels(C))}setState(r,u){u?(this.points=this.nodes.concat(this.data),_.prototype.setState.apply(this,arguments),this.points=this.data):_.prototype.setState.apply(this,arguments),!this.layout.simulation&&!r&&this.render()}translate(){this.processedXData||this.processData(),this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(r){r.isInside=!0,r.linksFrom.forEach(function(u){u.shapeType="path",u.y=1})})}}return v.defaultOptions=b(_.defaultOptions,T),g(v.prototype,{pointClass:t,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:n,buildKDTree:m,createNode:N.createNode,drawTracker:f.drawTracker,onMouseDown:O.onMouseDown,onMouseMove:O.onMouseMove,onMouseUp:O.onMouseUp,redrawHalo:O.redrawHalo}),P.registerSeriesType("networkgraph",v),v}),K(S,"masters/modules/networkgraph.src.js",[S["Core/Globals.js"],S["Series/Networkgraph/NetworkgraphSeries.js"]],function(O,I){return I.compose(O.Chart),O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))},95606:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){var E;let{series:{prototype:t,prototype:{pointClass:{prototype:T}}}}=O,{defined:N,extend:j,find:P,merge:c,pick:h}=I;return function(m){function _(){return this.data=[].concat(this.points||[],this.nodes),t.destroy.apply(this,arguments)}function f(){this.nodes&&(this.nodes.forEach(s=>{s.destroy()}),this.nodes.length=0),t.setData.apply(this,arguments)}function k(s){let d=arguments,l=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==s&&l.forEach(g=>{g&&g.series&&(T.setState.apply(g,d),!g.isNode&&(g.fromNode.graphic&&T.setState.apply(g.fromNode,d),g.toNode&&g.toNode.graphic&&T.setState.apply(g.toNode,d)))}),T.setState.apply(this,d)}function n(s,d,l,g){let b=this.series.options.nodes,p=this.series.options.data,v=p&&p.length||0,D=p&&p[this.index];if(T.update.call(this,s,!this.isNode&&d,l,g),this.isNode){let r=(b||[]).reduce((w,C,y)=>this.id===C.id?y:w,-1),u=c(b&&b[r]||{},p&&p[this.index]||{});p&&(D?p[this.index]=D:p.length=v),b?r>=0?b[r]=u:b.push(u):this.series.options.nodes=[u],h(d,!0)&&this.series.chart.redraw(l)}}m.compose=function(s,d){let l=s.prototype,g=d.prototype;return l.setNodeState=k,l.setState=k,l.update=n,g.destroy=_,g.setData=f,d},m.createNode=function(s){let b,d=this.pointClass,l=(p,v)=>P(p,D=>D.id===v),g=l(this.nodes,s);if(!g){b=this.options.nodes&&l(this.options.nodes,s);let p=new d(this,j({className:"highcharts-node",isNode:!0,id:s,y:1},b));p.linksTo=[],p.linksFrom=[],p.getSum=function(){let v=0,D=0;return p.linksTo.forEach(r=>{v+=r.weight||0}),p.linksFrom.forEach(r=>{D+=r.weight||0}),Math.max(v,D)},p.offset=function(v,D){let r=0;for(let u=0;u{D.outgoing&&v++}),!p.linksTo.length||v!==p.linksTo.length},p.index=this.nodes.push(p)-1,g=p}return g.formatPrefix="node",g.name=g.name||g.options.id||"",g.mass=h(g.options.mass,g.options.marker&&g.options.marker.radius,this.options.marker&&this.options.marker.radius,4),g},m.destroy=_,m.generatePoints=function(){let s=this.chart,d={};t.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(l=>{l.linksFrom.length=0,l.linksTo.length=0,l.level=l.options.level}),this.points.forEach(l=>{N(l.from)&&(d[l.from]||(d[l.from]=this.createNode(l.from)),d[l.from].linksFrom.push(l),l.fromNode=d[l.from],s.styledMode?l.colorIndex=h(l.options.colorIndex,d[l.from].colorIndex):l.color=l.options.color||d[l.from].color),N(l.to)&&(d[l.to]||(d[l.to]=this.createNode(l.to)),d[l.to].linksTo.push(l),l.toNode=d[l.to]),l.name=l.name||l.id},this),this.nodeLookup=d},m.setNodeState=k,m.updateNode=n}(E||(E={})),E}),K(S,"Series/Sankey/SankeyPoint.js",[S["Core/Series/Point.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){let{column:t}=I.seriesTypes,{defined:T}=E;return class N extends t.prototype.pointClass{applyOptions(P,c){return O.prototype.applyOptions.call(this,P,c),T(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+O.prototype.getClassName.call(this)}getFromNode(){let c,P=-1;for(let h=0;hP&&m.fromNode!==this&&(P=(c=m.fromNode).column)}return{fromNode:c,fromColumn:P}}setNodeColumn(){T(this.options.column)||(this.column=0===this.linksTo.length?0:this.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}}),K(S,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
    ',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
    ",nodeFormat:"{point.name}: {point.sum}
    "}}}),K(S,"Series/Sankey/SankeyColumnComposition.js",[S["Core/Utilities.js"]],function(O){var I;let{defined:E,relativeLength:t}=O;return function(T){T.compose=function(j,P){return j.sankeyColumn=new N(j,P),j};class N{constructor(P,c){this.points=P,this.series=c}getTranslationFactor(P){let f,n,c=this.points,h=c.slice(),_=P.options.minLinkWidth||0,k=0,s=(P.chart.plotSizeY||0)-(P.options.borderWidth||0)-(c.length-1)*P.nodePadding;for(;c.length;){for(k=s/c.sankeyColumn.sum(),f=!1,n=c.length;n--;)c[n].getSum()*k<_&&(c.splice(n,1),s=Math.max(0,s-_),f=!0);if(!f)break}for(let d of(c.length=0,h))c.push(d);return k}top(P){let c=this.series,h=c.nodePadding,m=this.points.reduce((_,f)=>(_>0&&(_+=h),_+Math.max(f.getSum()*P,c.options.minLinkWidth||0)),0);return{top:0,center:.5,bottom:1}[c.options.nodeAlignment||"center"]*((c.chart.plotSizeY||0)-m)}left(P){let c=this.series,h=c.chart,m=c.options.equalNodes,_=h.inverted?h.plotHeight:h.plotWidth,f=c.nodePadding,k=this.points.reduce((n,s)=>(n>0&&(n+=f),n+(m?_/s.series.nodes.length-f:Math.max(s.getSum()*P,c.options.minLinkWidth||0))),0);return((h.plotSizeX||0)-Math.round(k))/2}sum(){return this.points.reduce((P,c)=>P+c.getSum(),0)}offset(P,c){let k,h=this.points,m=this.series,_=m.nodePadding,f=0;if(m.is("organization")&&P.hangsFrom)return{absoluteTop:P.hangsFrom.nodeY};for(let n=0;n{let y=f&&f.colorVariation;return y&&"brightness"===y.key&&l&&r?O.parse(C).brighten(y.to*(l/r)).get():C})(b),v.color)),d=P(_&&_.options.colorIndex,f&&f.colorIndex,n,p,m.colorIndex)),{color:s,colorIndex:d}},getLevelOptions:function(h){let _,f,k,n,s,d,m={};if(N(h))for(n=T(h.from)?h.from:1,d=h.levels,f={},_=N(h.defaults)?h.defaults:{},t(d)&&(f=d.reduce((l,g)=>{let b,p,v;return N(g)&&T(g.level)&&(p=P((v=j({},g)).levelIsConstant,_.levelIsConstant),delete v.levelIsConstant,delete v.level,N(l[b=g.level+(p?0:n-1)])?j(!0,l[b],v):l[b]=v),l},{})),s=T(h.to)?h.to:1,k=0;k<=s;k++)m[k]=j({},_,N(f[k])?f[k]:{});return m},getNodeWidth:function(h,m){let{chart:_,options:f}=h,{nodeDistance:k=0,nodeWidth:n=0}=f,{plotSizeX:s=1}=_;if("auto"===n){if("string"==typeof k&&/%$/.test(k))return s/(m+parseFloat(k)/100*(m-1));let d=Number(k);return(s+d)/(m||1)-d}return c(n,s)},setTreeValues:function h(m,_){let f=_.before,k=_.idRoot,d=_.points[m.i],l=d&&d.options||{},g=[],b=0;m.levelDynamic=m.level-(!1!==_.levelIsConstant?0:_.mapIdToNode[k].level),m.name=P(d&&d.name,""),m.visible=k===m.id||!0===_.visible,"function"==typeof f&&(m=f(m,_)),m.children.forEach((v,D)=>{let r=E({},_);E(r,{index:D,siblings:m.children.length,visible:m.visible}),v=h(v,r),g.push(v),v.visible&&(b+=v.val)});let p=P(l.value,b);return m.visible=p>=0&&(b>0||m.visible),m.children=g,m.childrenTotal=b,m.isLeaf=m.visible&&!b,m.val=p,m},updateRootId:function(h){let m,_;return N(h)&&(_=N(h.options)?h.options:{},m=P(h.rootNode,_.rootId,""),N(h.userOptions)&&(h.userOptions.rootId=m),h.rootNode=m),m}}}),K(S,"Series/Sankey/SankeySeries.js",[S["Core/Globals.js"],S["Series/NodesComposition.js"],S["Series/Sankey/SankeyPoint.js"],S["Series/Sankey/SankeySeriesDefaults.js"],S["Core/Series/SeriesRegistry.js"],S["Series/Sankey/SankeyColumnComposition.js"],S["Core/Color/Color.js"],S["Series/TreeUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c){let{column:h,line:m}=T.seriesTypes,{parse:_}=j,{getLevelOptions:f,getNodeWidth:k}=P,{clamp:n,extend:s,isObject:d,merge:l,pick:g,relativeLength:b,stableSort:p}=c;class v extends h{static getDLOptions(r){let u=d(r.optionsPoint)?r.optionsPoint.dataLabels:{};return l({style:{}},d(r.level)?r.level.dataLabels:{},u)}createNodeColumns(){let r=[];for(let u of this.nodes)u.setNodeColumn(),r[u.column]||(r[u.column]=N.compose([],this)),r[u.column].push(u);for(let u=0;ur.level-u.level)}}getNodePadding(){let r=this.options.nodePadding||0;if(this.nodeColumns){let u=this.nodeColumns.reduce((w,C)=>Math.max(w,C.length),0);u*r>this.chart.plotSizeY&&(r=this.chart.plotSizeY/u)}return r}hasData(){return!!this.processedXData.length}pointAttribs(r,u){if(!r)return{};let w=this,y=w.mapOptionsToLevel[(r.isNode?r.level:r.fromNode.level)||0]||{},A=r.options,z=y.states&&y.states[u||""]||{},V=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((q,$)=>(q[$]=g(z[$],A[$],y[$],w.options[$]),q),{}),Z=g(z.color,A.color,V.colorByPoint?r.color:y.color);return r.isNode?{fill:Z,stroke:V.borderColor,"stroke-width":V.borderWidth,opacity:V.opacity}:{fill:j.parse(Z).setOpacity(V.linkOpacity).get()}}drawTracker(){h.prototype.drawTracker.call(this,this.points),h.prototype.drawTracker.call(this,this.nodes)}drawPoints(){h.prototype.drawPoints.call(this,this.points),h.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){h.prototype.drawDataLabels.call(this,this.points),h.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns();let r=this,u=this.chart,w=this.options,C=this.nodeColumns,y=C.length;for(let A of(this.nodeWidth=k(this,y),this.nodePadding=this.getNodePadding(),this.translationFactor=C.reduce((z,V)=>Math.min(z,V.sankeyColumn.getTranslationFactor(r)),1/0),this.colDistance=(u.plotSizeX-this.nodeWidth-w.borderWidth)/Math.max(1,C.length-1),r.mapOptionsToLevel=f({from:1,levels:w.levels,to:C.length-1,defaults:{borderColor:w.borderColor,borderRadius:w.borderRadius,borderWidth:w.borderWidth,color:r.color,colorByPoint:w.colorByPoint,levelIsConstant:!0,linkColor:w.linkColor,linkLineWidth:w.linkLineWidth,linkOpacity:w.linkOpacity,states:w.states}}),C))for(let z of A)r.translateNode(z,A);for(let A of this.nodes)for(let z of A.linksFrom)(z.weight||z.isNull)&&z.to&&(r.translateLink(z),z.allowShadow=!1)}translateLink(r){let u=(tt,ot)=>{let st=tt.offset(r,ot)*z;return Math.min(tt.nodeY+st,tt.nodeY+(tt.shapeArgs&&tt.shapeArgs.height||0)-B)},w=r.fromNode,C=r.toNode,y=this.chart,{inverted:A}=y,z=this.translationFactor,V=this.options,Z=g(r.linkColorMode,V.linkColorMode),q=(y.inverted?-this.colDistance:this.colDistance)*V.curveFactor,$=w.nodeX,Y=C.nodeX,J=r.outgoing,B=Math.max(r.weight*z,this.options.minLinkWidth),U=u(w,"linksFrom"),G=u(C,"linksTo"),H=this.nodeWidth,rt=Y>$+H;if(y.inverted&&(U=y.plotSizeY-U,G=(y.plotSizeY||0)-G,H=-H,B=-B,rt=$>Y),r.shapeType="path",r.linkBase=[U,U+B,G,G+B],rt&&"number"==typeof G)r.shapeArgs={d:[["M",$+H,U],["C",$+H+q,U,Y-q,G,Y,G],["L",Y+(J?H:0),G+B/2],["L",Y,G+B],["C",Y-q,G+B,$+H+q,U+B,$+H,U+B],["Z"]]};else if("number"==typeof G){let ot=Y-20-B,st=Y-20,at=$+H,lt=at+20,ft=lt+B,gt=U+B,St=gt+20,dt=St+(y.plotHeight-U-B),ct=dt+20,mt=ct+B,bt=G+B,kt=bt+20,Et=ct+.7*B,Pt=Y-.7*B,Tt=at+.7*B;r.shapeArgs={d:[["M",at,U],["C",Tt,U,ft,gt-.7*B,ft,St],["L",ft,dt],["C",ft,Et,Tt,mt,at,mt],["L",Y,mt],["C",Pt,mt,ot,Et,ot,dt],["L",ot,kt],["C",ot,bt-.7*B,Pt,G,Y,G],["L",Y,bt],["C",st,bt,st,bt,st,kt],["L",st,dt],["C",st,ct,st,ct,Y,ct],["L",at,ct],["C",lt,ct,lt,ct,lt,dt],["L",lt,St],["C",lt,gt,lt,gt,at,gt],["Z"]]}}if(r.dlBox={x:$+(Y-$+H)/2,y:U+(G-U)/2,height:B,width:0},r.tooltipPos=y.inverted?[y.plotSizeY-r.dlBox.y-B/2,y.plotSizeX-r.dlBox.x]:[r.dlBox.x,r.dlBox.y+B/2],r.y=r.plotY=1,r.x=r.plotX=1,!r.options.color)if("from"===Z)r.color=w.color;else if("to"===Z)r.color=C.color;else if("gradient"===Z){let tt=_(w.color).get(),ot=_(C.color).get();r.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,A?tt:ot],[1,A?ot:tt]]}}}translateNode(r,u){let w=this.translationFactor,C=this.chart,y=this.options,{borderRadius:A,borderWidth:z=0}=y,V=r.getSum(),Z=Math.max(Math.round(V*w),this.options.minLinkWidth),q=Math.round(this.nodeWidth),$=Math.round(z)%2/2,Y=u.sankeyColumn.offset(r,w),J=Math.floor(g(Y.absoluteTop,u.sankeyColumn.top(w)+Y.relativeTop))+$,B=Math.floor(this.colDistance*r.column+z/2)+b(r.options[C.inverted?"offsetVertical":"offsetHorizontal"]||0,q)+$,U=C.inverted?C.plotSizeX-B:B;if(r.sum=V,V){r.shapeType="roundedRect",r.nodeX=U,r.nodeY=J;let G=U,H=J,rt=r.options.width||y.width||q,tt=r.options.height||y.height||Z,ot=n(b("object"==typeof A?A.radius:A||0,rt),0,Z/2);C.inverted&&(G=U-q,H=C.plotSizeY-J-Z,rt=r.options.height||y.height||q,tt=r.options.width||y.width||Z),r.dlOptions=v.getDLOptions({level:this.mapOptionsToLevel[r.level],optionsPoint:r.options}),r.plotX=1,r.plotY=1,r.tooltipPos=C.inverted?[C.plotSizeY-H-tt/2,C.plotSizeX-G-rt/2]:[G+rt/2,H+tt/2],r.shapeArgs={x:G,y:H,width:rt,height:tt,r:ot,display:r.hasShape()?"":"none"}}else r.dlOptions={enabled:!1}}}return v.defaultOptions=l(h.defaultOptions,t),I.compose(E,v),s(v.prototype,{animate:m.prototype.animate,createNode:I.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:E,searchPoint:O.noop}),T.registerSeriesType("sankey",v),v}),K(S,"masters/modules/sankey.src.js",[S["Core/Globals.js"]],function(O){return O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))},55782:(nt,_t,X)=>{var ht,et,Q;Q=function(Q){"use strict";var S=Q?Q._modules:{};function K(O,I,E,t){O.hasOwnProperty(I)||(O[I]=t.apply(null,E),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:I,module:O[I]}})))}K(S,"Series/NodesComposition.js",[S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I){const{series:{prototype:E,prototype:{pointClass:{prototype:t}}}}=O,{defined:T,extend:N,find:j,merge:P,pick:c}=I;var h;return function(m){function k(){return this.data=[].concat(this.points||[],this.nodes),E.destroy.apply(this,arguments)}function s(){this.nodes&&(this.nodes.forEach(g=>{g.destroy()}),this.nodes.length=0),E.setData.apply(this,arguments)}function d(g){const b=arguments,p=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==g&&p.forEach(v=>{v&&v.series&&(t.setState.apply(v,b),v.isNode||(v.fromNode.graphic&&t.setState.apply(v.fromNode,b),v.toNode&&v.toNode.graphic&&t.setState.apply(v.toNode,b)))}),t.setState.apply(this,b)}function l(g,b,p,v){const D=this.series.options.nodes,r=this.series.options.data,u=r&&r.length||0,w=r&&r[this.index];if(t.update.call(this,g,!this.isNode&&b,p,v),this.isNode){const C=(D||[]).reduce((A,z,V)=>this.id===z.id?V:A,-1),y=P(D&&D[C]||{},r&&r[this.index]||{});r&&(w?r[this.index]=w:r.length=u),D?C>=0?D[C]=y:D.push(y):this.series.options.nodes=[y],c(b,!0)&&this.series.chart.redraw(p)}}m.compose=function _(g,b){const p=g.prototype,v=b.prototype;return p.setNodeState=d,p.setState=d,p.update=l,v.destroy=k,v.setData=s,b},m.createNode=function f(g){const b=this.pointClass,p=(r,u)=>j(r,w=>w.id===u);let D,v=p(this.nodes,g);if(!v){D=this.options.nodes&&p(this.options.nodes,g);const r=new b(this,N({className:"highcharts-node",isNode:!0,id:g,y:1},D));r.linksTo=[],r.linksFrom=[],r.getSum=function(){let u=0,w=0;return r.linksTo.forEach(C=>{u+=C.weight||0}),r.linksFrom.forEach(C=>{w+=C.weight||0}),Math.max(u,w)},r.offset=function(u,w){let C=0;for(let y=0;y{w.outgoing&&u++}),!r.linksTo.length||u!==r.linksTo.length},r.index=this.nodes.push(r)-1,v=r}return v.formatPrefix="node",v.name=v.name||v.options.id||"",v.mass=c(v.options.mass,v.options.marker&&v.options.marker.radius,this.options.marker&&this.options.marker.radius,4),v},m.destroy=k,m.generatePoints=function n(){const g=this.chart,b={};E.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(p=>{p.linksFrom.length=0,p.linksTo.length=0,p.level=p.options.level}),this.points.forEach(p=>{T(p.from)&&(b[p.from]||(b[p.from]=this.createNode(p.from)),b[p.from].linksFrom.push(p),p.fromNode=b[p.from],g.styledMode?p.colorIndex=c(p.options.colorIndex,b[p.from].colorIndex):p.color=p.options.color||b[p.from].color),T(p.to)&&(b[p.to]||(b[p.to]=this.createNode(p.to)),b[p.to].linksTo.push(p),p.toNode=b[p.to]),p.name=p.name||p.id},this),this.nodeLookup=b},m.setNodeState=d,m.updateNode=l}(h||(h={})),h}),K(S,"Series/Sankey/SankeyPoint.js",[S["Core/Series/Point.js"],S["Core/Series/SeriesRegistry.js"],S["Core/Utilities.js"]],function(O,I,E){const{column:t}=I.seriesTypes,{defined:T}=E;return class N extends t.prototype.pointClass{applyOptions(P,c){return O.prototype.applyOptions.call(this,P,c),T(this.options.level)&&(this.options.column=this.column=this.options.level),this}getClassName(){return(this.isNode?"highcharts-node ":"highcharts-link ")+O.prototype.getClassName.call(this)}getFromNode(){const P=this;let h,c=-1;for(let m=0;mc&&_.fromNode!==P&&(h=_.fromNode,c=h.column)}return{fromNode:h,fromColumn:c}}setNodeColumn(){const P=this;T(P.options.column)||(P.column=0===P.linksTo.length?0:P.getFromNode().fromColumn+1)}isValid(){return this.isNode||"number"==typeof this.weight}}}),K(S,"Series/Sankey/SankeySeriesDefaults.js",[],function(){return{borderWidth:0,colorByPoint:!0,curveFactor:.33,dataLabels:{enabled:!0,backgroundColor:"none",crop:!1,nodeFormat:void 0,nodeFormatter:function(){return this.point.name},format:void 0,formatter:function(){},inside:!0},inactiveOtherPoints:!0,linkColorMode:"from",linkOpacity:.5,opacity:1,minLinkWidth:0,nodeAlignment:"center",nodeWidth:20,nodePadding:10,nodeDistance:30,showInLegend:!1,states:{hover:{linkOpacity:1,opacity:1},inactive:{linkOpacity:.1,opacity:.1,animation:{duration:50}}},tooltip:{followPointer:!0,headerFormat:'{series.name}
    ',pointFormat:"{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
    ",nodeFormat:"{point.name}: {point.sum}
    "}}}),K(S,"Series/Sankey/SankeyColumnComposition.js",[S["Core/Utilities.js"]],function(O){const{defined:I,relativeLength:E}=O;var t;return function(T){T.compose=function N(P,c){const h=P;return h.sankeyColumn=new j(h,c),h};class j{constructor(c,h){this.points=c,this.series=h}getTranslationFactor(c){const h=this.points,m=h.slice(),f=c.options.minLinkWidth||0;let k,s,n=0,d=(c.chart.plotSizeY||0)-(c.options.borderWidth||0)-(h.length-1)*c.nodePadding;for(;h.length;){for(n=d/h.sankeyColumn.sum(),k=!1,s=h.length;s--;)h[s].getSum()*n(f>0&&(f+=m),f+Math.max(k.getSum()*c,h.options.minLinkWidth||0)),0);return{top:0,center:.5,bottom:1}[h.options.nodeAlignment||"center"]*((h.chart.plotSizeY||0)-_)}left(c){const h=this.series,m=h.chart,_=h.options.equalNodes,f=m.inverted?m.plotHeight:m.plotWidth,k=h.nodePadding,n=this.points.reduce((s,d)=>(s>0&&(s+=k),s+(_?f/d.series.nodes.length-k:Math.max(d.getSum()*c,h.options.minLinkWidth||0))),0);return((m.plotSizeX||0)-Math.round(n))/2}sum(){return this.points.reduce((c,h)=>c+h.getSum(),0)}offset(c,h){const m=this.points,_=this.series,f=_.nodePadding;let n,k=0;if(_.is("organization")&&c.hangsFrom)return{absoluteTop:c.hangsFrom.nodeY};for(let s=0;s{const J=A&&A.colorVariation;return J&&"brightness"===J.key&&l&&r?O.parse(Y).brighten(J.to*(l/r)).get():Y})(b),v.color)),q=P(y&&y.options.colorIndex,A&&A.colorIndex,V,p,d.colorIndex)),{color:Z,colorIndex:q}},getLevelOptions:function m(s){let l,g,b,p,v,D,d={};if(N(s))for(p=T(s.from)?s.from:1,D=s.levels,g={},l=N(s.defaults)?s.defaults:{},t(D)&&(g=D.reduce((r,u)=>{let w,C,y;return N(u)&&T(u.level)&&(y=j({},u),C=P(y.levelIsConstant,l.levelIsConstant),delete y.levelIsConstant,delete y.level,w=u.level+(C?0:p-1),N(r[w])?j(!0,r[w],y):r[w]=y),r},{})),v=T(s.to)?s.to:1,b=0;b<=v;b++)d[b]=j({},l,N(g[b])?g[b]:{});return d},getNodeWidth:function k(s,d){const{chart:l,options:g}=s,{nodeDistance:b=0,nodeWidth:p=0}=g,{plotSizeX:v=1}=l;if("auto"===p){if("string"==typeof b&&/%$/.test(b))return v/(d+parseFloat(b)/100*(d-1));const D=Number(b);return(v+D)/(d||1)-D}return c(p,v)},setTreeValues:function _(s,d){const l=d.before,g=d.idRoot,r=d.points[s.i],u=r&&r.options||{},w=[];let C=0;s.levelDynamic=s.level-(!1!==d.levelIsConstant?0:d.mapIdToNode[g].level),s.name=P(r&&r.name,""),s.visible=g===s.id||!0===d.visible,"function"==typeof l&&(s=l(s,d)),s.children.forEach((A,z)=>{const V=E({},d);E(V,{index:z,siblings:s.children.length,visible:s.visible}),A=_(A,V),w.push(A),A.visible&&(C+=A.val)});const y=P(u.value,C);return s.visible=y>=0&&(C>0||s.visible),s.children=w,s.childrenTotal=C,s.isLeaf=s.visible&&!C,s.val=y,s},updateRootId:function f(s){let d,l;return N(s)&&(l=N(s.options)?s.options:{},d=P(s.rootNode,l.rootId,""),N(s.userOptions)&&(s.userOptions.rootId=d),s.rootNode=d),d}}}),K(S,"Series/Sankey/SankeySeries.js",[S["Core/Globals.js"],S["Series/NodesComposition.js"],S["Series/Sankey/SankeyPoint.js"],S["Series/Sankey/SankeySeriesDefaults.js"],S["Core/Series/SeriesRegistry.js"],S["Series/Sankey/SankeyColumnComposition.js"],S["Core/Color/Color.js"],S["Series/TreeUtilities.js"],S["Core/Utilities.js"]],function(O,I,E,t,T,N,j,P,c){const{column:h,line:m}=T.seriesTypes,{parse:_}=j,{getLevelOptions:f,getNodeWidth:k}=P,{clamp:n,extend:s,isObject:d,merge:l,pick:g,relativeLength:b,stableSort:p}=c;class v extends h{static getDLOptions(r){const u=d(r.optionsPoint)?r.optionsPoint.dataLabels:{},w=d(r.level)?r.level.dataLabels:{};return l({style:{}},w,u)}createNodeColumns(){const r=[];for(const u of this.nodes)u.setNodeColumn(),r[u.column]||(r[u.column]=N.compose([],this)),r[u.column].push(u);for(let u=0;u"u"&&(r[u]=N.compose([],this));return r}order(r,u){const w=this;if(typeof r.level>"u"){r.level=u;for(const C of r.linksFrom)C.toNode&&w.order(C.toNode,u+1)}}generatePoints(){if(I.generatePoints.apply(this,arguments),this.orderNodes){for(const r of this.nodes)0===r.linksTo.length&&this.order(r,0);p(this.nodes,(r,u)=>r.level-u.level)}}getNodePadding(){let r=this.options.nodePadding||0;if(this.nodeColumns){const u=this.nodeColumns.reduce((w,C)=>Math.max(w,C.length),0);u*r>this.chart.plotSizeY&&(r=this.chart.plotSizeY/u)}return r}hasData(){return!!this.processedXData.length}pointAttribs(r,u){if(!r)return{};const w=this,y=w.mapOptionsToLevel[(r.isNode?r.level:r.fromNode.level)||0]||{},A=r.options,z=y.states&&y.states[u||""]||{},V=["colorByPoint","borderColor","borderWidth","linkOpacity","opacity"].reduce((q,$)=>(q[$]=g(z[$],A[$],y[$],w.options[$]),q),{}),Z=g(z.color,A.color,V.colorByPoint?r.color:y.color);return r.isNode?{fill:Z,stroke:V.borderColor,"stroke-width":V.borderWidth,opacity:V.opacity}:{fill:j.parse(Z).setOpacity(V.linkOpacity).get()}}drawTracker(){h.prototype.drawTracker.call(this,this.points),h.prototype.drawTracker.call(this,this.nodes)}drawPoints(){h.prototype.drawPoints.call(this,this.points),h.prototype.drawPoints.call(this,this.nodes)}drawDataLabels(){h.prototype.drawDataLabels.call(this,this.points),h.prototype.drawDataLabels.call(this,this.nodes)}translate(){this.processedXData||this.processData(),this.generatePoints(),this.nodeColumns=this.createNodeColumns();const r=this,u=this.chart,w=this.options,C=this.nodeColumns;this.nodeWidth=k(this,C.length),this.nodePadding=this.getNodePadding(),this.translationFactor=C.reduce((A,z)=>Math.min(A,z.sankeyColumn.getTranslationFactor(r)),1/0),this.colDistance=(u.plotSizeX-this.nodeWidth-w.borderWidth)/Math.max(1,C.length-1),r.mapOptionsToLevel=f({from:1,levels:w.levels,to:C.length-1,defaults:{borderColor:w.borderColor,borderRadius:w.borderRadius,borderWidth:w.borderWidth,color:r.color,colorByPoint:w.colorByPoint,levelIsConstant:!0,linkColor:w.linkColor,linkLineWidth:w.linkLineWidth,linkOpacity:w.linkOpacity,states:w.states}});for(const A of C)for(const z of A)r.translateNode(z,A);for(const A of this.nodes)for(const z of A.linksFrom)(z.weight||z.isNull)&&z.to&&(r.translateLink(z),z.allowShadow=!1)}translateLink(r){const u=(tt,ot)=>{const st=tt.offset(r,ot)*z;return Math.min(tt.nodeY+st,tt.nodeY+(tt.shapeArgs&&tt.shapeArgs.height||0)-B)},w=r.fromNode,C=r.toNode,y=this.chart,{inverted:A}=y,z=this.translationFactor,V=this.options,Z=g(r.linkColorMode,V.linkColorMode),q=(y.inverted?-this.colDistance:this.colDistance)*V.curveFactor,$=w.nodeX,Y=C.nodeX,J=r.outgoing;let B=Math.max(r.weight*z,this.options.minLinkWidth),U=u(w,"linksFrom"),G=u(C,"linksTo"),H=this.nodeWidth,rt=Y>$+H;if(y.inverted&&(U=y.plotSizeY-U,G=(y.plotSizeY||0)-G,H=-H,B=-B,rt=$>Y),r.shapeType="path",r.linkBase=[U,U+B,G,G+B],rt&&"number"==typeof G)r.shapeArgs={d:[["M",$+H,U],["C",$+H+q,U,Y-q,G,Y,G],["L",Y+(J?H:0),G+B/2],["L",Y,G+B],["C",Y-q,G+B,$+H+q,U+B,$+H,U+B],["Z"]]};else if("number"==typeof G){const st=Y-20-B,at=Y-20,ft=$+H,vt=ft+20,gt=vt+B,dt=U+B,ct=dt+20,mt=ct+(y.plotHeight-U-B),pt=mt+20,bt=pt+B,xt=G+B,Et=xt+20,Pt=pt+.7*B,zt=Y-.7*B,Xt=ft+.7*B;r.shapeArgs={d:[["M",ft,U],["C",Xt,U,gt,dt-.7*B,gt,ct],["L",gt,mt],["C",gt,Pt,Xt,bt,ft,bt],["L",Y,bt],["C",zt,bt,st,Pt,st,mt],["L",st,Et],["C",st,xt-.7*B,zt,G,Y,G],["L",Y,xt],["C",at,xt,at,xt,at,Et],["L",at,mt],["C",at,pt,at,pt,Y,pt],["L",ft,pt],["C",vt,pt,vt,pt,vt,mt],["L",vt,ct],["C",vt,dt,vt,dt,ft,dt],["Z"]]}}if(r.dlBox={x:$+(Y-$+H)/2,y:U+(G-U)/2,height:B,width:0},r.tooltipPos=y.inverted?[y.plotSizeY-r.dlBox.y-B/2,y.plotSizeX-r.dlBox.x]:[r.dlBox.x,r.dlBox.y+B/2],r.y=r.plotY=1,r.x=r.plotX=1,!r.options.color)if("from"===Z)r.color=w.color;else if("to"===Z)r.color=C.color;else if("gradient"===Z){const tt=_(w.color).get(),ot=_(C.color).get();r.color={linearGradient:{x1:1,x2:0,y1:0,y2:0},stops:[[0,A?tt:ot],[1,A?ot:tt]]}}}translateNode(r,u){const w=this.translationFactor,C=this.chart,y=this.options,{borderRadius:A,borderWidth:z=0}=y,V=r.getSum(),Z=Math.max(Math.round(V*w),this.options.minLinkWidth),q=Math.round(this.nodeWidth),$=Math.round(z)%2/2,Y=u.sankeyColumn.offset(r,w),J=Math.floor(g(Y.absoluteTop,u.sankeyColumn.top(w)+Y.relativeTop))+$,B=Math.floor(this.colDistance*r.column+z/2)+b(r.options[C.inverted?"offsetVertical":"offsetHorizontal"]||0,q)+$,U=C.inverted?C.plotSizeX-B:B;if(r.sum=V,V){r.shapeType="roundedRect",r.nodeX=U,r.nodeY=J;let G=U,H=J,rt=r.options.width||y.width||q,tt=r.options.height||y.height||Z;const ot=n(b("object"==typeof A?A.radius:A||0,rt),0,Z/2);C.inverted&&(G=U-q,H=C.plotSizeY-J-Z,rt=r.options.height||y.height||q,tt=r.options.width||y.width||Z),r.dlOptions=v.getDLOptions({level:this.mapOptionsToLevel[r.level],optionsPoint:r.options}),r.plotX=1,r.plotY=1,r.tooltipPos=C.inverted?[C.plotSizeY-H-tt/2,C.plotSizeX-G-rt/2]:[G+rt/2,H+tt/2],r.shapeArgs={x:G,y:H,width:rt,height:tt,r:ot,display:r.hasShape()?"":"none"}}else r.dlOptions={enabled:!1}}}return v.defaultOptions=l(h.defaultOptions,t),I.compose(E,v),s(v.prototype,{animate:m.prototype.animate,createNode:I.createNode,forceDL:!0,invertible:!0,isCartesian:!1,orderNodes:!0,noSharedTooltip:!0,pointArrayMap:["from","to","weight"],pointClass:E,searchPoint:O.noop}),T.registerSeriesType("sankey",v),v}),K(S,"masters/modules/sankey.src.js",[S["Core/Globals.js"]],function(O){return O})},nt.exports?(Q.default=Q,nt.exports=Q):(ht=[X(21264)],void 0!==(et=function(S){return Q(S),Q.Highcharts=S,Q}.apply(_t,ht))&&(nt.exports=et))}}]); \ No newline at end of file diff --git a/www/z4d/846.b75ced3ca2bc41c3.js b/www/z4d/846.e10721e2f1184a6d.js similarity index 89% rename from www/z4d/846.b75ced3ca2bc41c3.js rename to www/z4d/846.e10721e2f1184a6d.js index 7e0bb9118..e68b14700 100644 --- a/www/z4d/846.b75ced3ca2bc41c3.js +++ b/www/z4d/846.e10721e2f1184a6d.js @@ -1 +1 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[846],{2846:(W,Y,m)=>{"use strict";m.r(Y),m.d(Y,{ToolsModule:()=>ln});var q=m(93887),e=m(54438),h=m(60177);const R=["dialogPopup"],H=["hueSlider"],P=["alphaSlider"];function y(i,l){if(1&i&&e.nrm(0,"div"),2&i){const t=e.XpG();e.ZvI("arrow arrow-",t.cpUsePosition,""),e.xc7("left",t.cpArrowPosition)("top",t.arrowTop,"px")}}function z(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",28),e.bIt("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onColorChange(n))})("dragStart",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onDragStart("saturation-lightness"))})("dragEnd",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onDragEnd("saturation-lightness"))}),e.nrm(1,"div",16),e.k0s()}if(2&i){const t=e.XpG();e.xc7("background-color",t.hueSliderColor),e.Y8G("rgX",1)("rgY",1),e.R7$(),e.xc7("top",null==t.slider?null:t.slider.v,"px")("left",null==t.slider?null:t.slider.s,"px")}}function M(i,l){1&i&&(e.qSk(),e.j41(0,"svg",29),e.nrm(1,"path",30)(2,"path",31),e.k0s())}function u(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",32),e.bIt("click",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAddPresetColor(n,r.selectedColor))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG();e.HbH(t.cpAddColorButtonClass),e.Y8G("disabled",t.cpPresetColors&&t.cpPresetColors.length>=t.cpMaxPresetColorsLength),e.R7$(),e.SpI(" ",t.cpAddColorButtonText," ")}}function g(i,l){1&i&&e.nrm(0,"div",33)}function x(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.cmykText?null:t.cmykText.a)}}function f(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function b(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",34)(1,"div",35)(2,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onCyanInput(n))}),e.k0s(),e.j41(3,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onMagentaInput(n))}),e.k0s(),e.j41(4,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onYellowInput(n))}),e.k0s(),e.j41(5,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onBlackInput(n))}),e.k0s(),e.DNE(6,x,1,2,"input",37),e.k0s(),e.j41(7,"div",35)(8,"div"),e.EFF(9,"C"),e.k0s(),e.j41(10,"div"),e.EFF(11,"M"),e.k0s(),e.j41(12,"div"),e.EFF(13,"Y"),e.k0s(),e.j41(14,"div"),e.EFF(15,"K"),e.k0s(),e.DNE(16,f,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",3!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.c),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.m),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.y),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.k),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(10),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function Z(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function U(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function G(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",40)(1,"div",35)(2,"input",41),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onHueInput(n))}),e.k0s(),e.j41(3,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onSaturationInput(n))}),e.k0s(),e.j41(4,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onLightnessInput(n))}),e.k0s(),e.DNE(5,Z,1,2,"input",37),e.k0s(),e.j41(6,"div",35)(7,"div"),e.EFF(8,"H"),e.k0s(),e.j41(9,"div"),e.EFF(10,"S"),e.k0s(),e.j41(11,"div"),e.EFF(12,"L"),e.k0s(),e.DNE(13,U,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",2!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",360)("value",null==t.hslaText?null:t.hslaText.h),e.R7$(),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.s),e.R7$(),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(8),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function L(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.rgbaText?null:t.rgbaText.a)}}function N(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function S(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",42)(1,"div",35)(2,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onRedInput(n))}),e.k0s(),e.j41(3,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onGreenInput(n))}),e.k0s(),e.j41(4,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onBlueInput(n))}),e.k0s(),e.DNE(5,L,1,2,"input",37),e.k0s(),e.j41(6,"div",35)(7,"div"),e.EFF(8,"R"),e.k0s(),e.j41(9,"div"),e.EFF(10,"G"),e.k0s(),e.j41(11,"div"),e.EFF(12,"B"),e.k0s(),e.DNE(13,N,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",1!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.r),e.R7$(),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.g),e.R7$(),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.b),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(8),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function de(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",t.hexAlpha)}}function ue(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function ge(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",44)(1,"div",35)(2,"input",45),e.bIt("blur",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onHexInput(null))})("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onHexInput(n))}),e.k0s(),e.DNE(3,de,1,2,"input",37),e.k0s(),e.j41(4,"div",35)(5,"div"),e.EFF(6,"Hex"),e.k0s(),e.DNE(7,ue,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",0!==t.format?"none":"block"),e.AVh("hex-alpha","forced"===t.cpAlphaChannel),e.R7$(2),e.Y8G("value",t.hexText),e.R7$(),e.Y8G("ngIf","forced"===t.cpAlphaChannel),e.R7$(4),e.Y8G("ngIf","forced"===t.cpAlphaChannel)}}function me(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function he(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",46)(1,"div",35)(2,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onValueInput(n))}),e.k0s(),e.DNE(3,me,1,2,"input",37),e.k0s(),e.j41(4,"div",35)(5,"div"),e.EFF(6,"V"),e.k0s(),e.j41(7,"div"),e.EFF(8,"A"),e.k0s()()()}if(2&i){const t=e.XpG();e.R7$(2),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function fe(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",47)(1,"span",48),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onFormatToggle(-1))}),e.k0s(),e.j41(2,"span",48),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onFormatToggle(1))}),e.k0s()()}}function ve(i,l){if(1&i){const t=e.RV6();e.j41(0,"span",55),e.bIt("click",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG(3);return e.Njj(s.onRemovePresetColor(n,r))}),e.k0s()}if(2&i){const t=e.XpG(4);e.HbH(t.cpRemoveColorButtonClass)}}function Ce(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",53),e.bIt("click",function(){const n=e.eBV(t).$implicit,r=e.XpG(3);return e.Njj(r.setColorFromString(n))}),e.DNE(1,ve,1,3,"span",54),e.k0s()}if(2&i){const t=l.$implicit,o=e.XpG(3);e.xc7("background-color",t),e.R7$(),e.Y8G("ngIf",o.cpAddColorButton)}}function Fe(i,l){if(1&i&&(e.j41(0,"div"),e.DNE(1,Ce,2,3,"div",52),e.k0s()),2&i){const t=e.XpG(2);e.HbH(t.cpPresetColorsClass),e.R7$(),e.Y8G("ngForOf",t.cpPresetColors)}}function _e(i,l){if(1&i&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&i){const t=e.XpG(2);e.HbH(t.cpPresetEmptyMessageClass),e.R7$(),e.JRh(t.cpPresetEmptyMessage)}}function be(i,l){if(1&i&&(e.j41(0,"div",49),e.nrm(1,"hr"),e.j41(2,"div",50),e.EFF(3),e.k0s(),e.DNE(4,Fe,2,4,"div",51)(5,_e,2,4,"div",51),e.k0s()),2&i){const t=e.XpG();e.R7$(3),e.JRh(t.cpPresetLabel),e.R7$(),e.Y8G("ngIf",null==t.cpPresetColors?null:t.cpPresetColors.length),e.R7$(),e.Y8G("ngIf",!(null!=t.cpPresetColors&&t.cpPresetColors.length)&&t.cpAddColorButton)}}function ke(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",58),e.bIt("click",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onCancelColor(n))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG(2);e.HbH(t.cpCancelButtonClass),e.R7$(),e.JRh(t.cpCancelButtonText)}}function Ee(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",58),e.bIt("click",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG(2);e.HbH(t.cpOKButtonClass),e.R7$(),e.JRh(t.cpOKButtonText)}}function ye(i,l){if(1&i&&(e.j41(0,"div",56),e.DNE(1,ke,2,4,"button",57)(2,Ee,2,4,"button",57),e.k0s()),2&i){const t=e.XpG();e.R7$(),e.Y8G("ngIf",t.cpCancelButton),e.R7$(),e.Y8G("ngIf",t.cpOKButton)}}function xe(i,l){1&i&&e.eu8(0)}function we(i,l){if(1&i&&(e.j41(0,"div",59),e.DNE(1,xe,1,0,"ng-container",60),e.k0s()),2&i){const t=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",t.cpExtraTemplate)}}var k=function(i){return i[i.HEX=0]="HEX",i[i.RGBA=1]="RGBA",i[i.HSLA=2]="HSLA",i[i.CMYK=3]="CMYK",i}(k||{});class j{r;g;b;a;constructor(l,t,o,n){this.r=l,this.g=t,this.b=o,this.a=n}}class K{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}class B{h;s;l;a;constructor(l,t,o,n){this.h=l,this.s=t,this.l=o,this.a=n}}class O{c;m;y;k;a;constructor(l,t,o,n,r=1){this.c=l,this.m=t,this.y=o,this.k=n,this.a=r}}let Te=(()=>{class i{rg;text;newValue=new e.bkB;inputChange(t){const o=t.target.value;if(void 0===this.rg)this.newValue.emit(o);else{const n=parseFloat(o);this.newValue.emit({v:n,rg:this.rg})}}static \u0275fac=function(o){return new(o||i)};static \u0275dir=e.FsC({type:i,selectors:[["","text",""]],hostBindings:function(o,n){1&o&&e.bIt("input",function(s){return n.inputChange(s)})},inputs:{rg:"rg",text:"text"},outputs:{newValue:"newValue"}})}return i})(),Ie=(()=>{class i{elRef;listenerMove;listenerStop;rgX;rgY;slider;dragEnd=new e.bkB;dragStart=new e.bkB;newValue=new e.bkB;mouseDown(t){this.start(t)}touchStart(t){this.start(t)}constructor(t){this.elRef=t,this.listenerMove=o=>this.move(o),this.listenerStop=()=>this.stop()}move(t){t.preventDefault(),this.setCursor(t)}start(t){this.setCursor(t),t.stopPropagation(),document.addEventListener("mouseup",this.listenerStop),document.addEventListener("touchend",this.listenerStop),document.addEventListener("mousemove",this.listenerMove),document.addEventListener("touchmove",this.listenerMove),this.dragStart.emit()}stop(){document.removeEventListener("mouseup",this.listenerStop),document.removeEventListener("touchend",this.listenerStop),document.removeEventListener("mousemove",this.listenerMove),document.removeEventListener("touchmove",this.listenerMove),this.dragEnd.emit()}getX(t){const o=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageX?t.pageX:t.touches[0].pageX)-o.left-window.pageXOffset}getY(t){const o=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageY?t.pageY:t.touches[0].pageY)-o.top-window.pageYOffset}setCursor(t){const o=this.elRef.nativeElement.offsetWidth,n=this.elRef.nativeElement.offsetHeight,r=Math.max(0,Math.min(this.getX(t),o)),s=Math.max(0,Math.min(this.getY(t),n));void 0!==this.rgX&&void 0!==this.rgY?this.newValue.emit({s:r/o,v:1-s/n,rgX:this.rgX,rgY:this.rgY}):void 0===this.rgX&&void 0!==this.rgY?this.newValue.emit({v:s/n,rgY:this.rgY}):void 0!==this.rgX&&void 0===this.rgY&&this.newValue.emit({v:r/o,rgX:this.rgX})}static \u0275fac=function(o){return new(o||i)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:i,selectors:[["","slider",""]],hostBindings:function(o,n){1&o&&e.bIt("mousedown",function(s){return n.mouseDown(s)})("touchstart",function(s){return n.touchStart(s)})},inputs:{rgX:"rgX",rgY:"rgY",slider:"slider"},outputs:{dragEnd:"dragEnd",dragStart:"dragStart",newValue:"newValue"}})}return i})();class ne{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}class oe{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}let J=(()=>{class i{active=null;setActive(t){this.active&&this.active!==t&&"inline"!==this.active.cpDialogDisplay&&this.active.closeDialog(),this.active=t}hsva2hsla(t){const o=t.h,n=t.s,r=t.v,s=t.a;if(0===r)return new B(o,0,0,s);if(0===n&&1===r)return new B(o,1,1,s);{const a=r*(2-n)/2;return new B(o,r*n/(1-Math.abs(2*a-1)),a,s)}}hsla2hsva(t){const o=Math.min(t.h,1),n=Math.min(t.s,1),r=Math.min(t.l,1),s=Math.min(t.a,1);if(0===r)return new K(o,0,0,s);{const a=r+n*(1-Math.abs(2*r-1))/2;return new K(o,2*(a-r)/a,a,s)}}hsvaToRgba(t){let o,n,r;const s=t.h,a=t.s,d=t.v,p=t.a,F=Math.floor(6*s),_=6*s-F,C=d*(1-a),E=d*(1-_*a),w=d*(1-(1-_)*a);switch(F%6){case 0:o=d,n=w,r=C;break;case 1:o=E,n=d,r=C;break;case 2:o=C,n=d,r=w;break;case 3:o=C,n=E,r=d;break;case 4:o=w,n=C,r=d;break;case 5:o=d,n=C,r=E;break;default:o=0,n=0,r=0}return new j(o,n,r,p)}cmykToRgb(t){return new j((1-t.c)*(1-t.k),(1-t.m)*(1-t.k),(1-t.y)*(1-t.k),t.a)}rgbaToCmyk(t){const o=1-Math.max(t.r,t.g,t.b);return 1===o?new O(0,0,0,1,t.a):new O((1-t.r-o)/(1-o),(1-t.g-o)/(1-o),(1-t.b-o)/(1-o),o,t.a)}rgbaToHsva(t){let o,n;const r=Math.min(t.r,1),s=Math.min(t.g,1),a=Math.min(t.b,1),d=Math.min(t.a,1),p=Math.max(r,s,a),F=Math.min(r,s,a),_=p,C=p-F;if(n=0===p?0:C/p,p===F)o=0;else{switch(p){case r:o=(s-a)/C+(s{class i{ngZone;elRef;cdRef;document;platformId;service;isIE10=!1;cmyk;hsva;width;height;cmykColor;outputColor;initialColor;fallbackColor;listenerResize;listenerMouseDown;directiveInstance;sliderH;sliderDimMax;directiveElementRef;dialogArrowSize=10;dialogArrowOffset=15;dialogInputFields=[k.HEX,k.RGBA,k.HSLA,k.CMYK];useRootViewContainer=!1;show;hidden;top;left;position;format;slider;hexText;hexAlpha;cmykText;hslaText;rgbaText;arrowTop;selectedColor;hueSliderColor;alphaSliderColor;cpWidth;cpHeight;cpColorMode;cpCmykEnabled;cpAlphaChannel;cpOutputFormat;cpDisableInput;cpDialogDisplay;cpIgnoredElements;cpSaveClickOutside;cpCloseClickOutside;cpPosition;cpUsePosition;cpPositionOffset;cpOKButton;cpOKButtonText;cpOKButtonClass;cpCancelButton;cpCancelButtonText;cpCancelButtonClass;cpEyeDropper;eyeDropperSupported;cpPresetLabel;cpPresetColors;cpPresetColorsClass;cpMaxPresetColorsLength;cpPresetEmptyMessage;cpPresetEmptyMessageClass;cpAddColorButton;cpAddColorButtonText;cpAddColorButtonClass;cpRemoveColorButtonClass;cpArrowPosition;cpTriggerElement;cpExtraTemplate;dialogElement;hueSlider;alphaSlider;handleEsc(t){this.show&&"popup"===this.cpDialogDisplay&&this.onCancelColor(t)}handleEnter(t){this.show&&"popup"===this.cpDialogDisplay&&this.onAcceptColor(t)}constructor(t,o,n,r,s,a){this.ngZone=t,this.elRef=o,this.cdRef=n,this.document=r,this.platformId=s,this.service=a,this.eyeDropperSupported=(0,h.UE)(this.platformId)&&"EyeDropper"in this.document.defaultView}ngOnInit(){this.slider=new ne(0,0,0,0),this.sliderDimMax=new oe(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.format=this.cpCmykEnabled?k.CMYK:"rgba"===this.cpOutputFormat?k.RGBA:"hsla"===this.cpOutputFormat?k.HSLA:k.HEX,this.listenerMouseDown=n=>{this.onMouseDown(n)},this.listenerResize=()=>{this.onResize()},this.openDialog(this.initialColor,!1)}ngOnDestroy(){this.closeDialog()}ngAfterViewInit(){230===this.cpWidth&&"inline"!==this.cpDialogDisplay||(this.sliderDimMax=new oe(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.updateColorPicker(!1),this.cdRef.detectChanges())}openDialog(t,o=!0){this.service.setActive(this),this.width||(this.cpWidth=this.directiveElementRef.nativeElement.offsetWidth),this.height||(this.height=320),this.setInitialColor(t),this.setColorFromString(t,o),this.openColorPicker()}closeDialog(){this.closeColorPicker()}setupDialog(t,o,n,r,s,a,d,p,F,_,C,E,w,te,X,T,an,cn,pn,dn,un,gn,mn,hn,fn,vn,Cn,Fn,_n,bn,kn,En,yn,xn,wn,jn,An,Tn){this.setInitialColor(n),this.setColorMode(p),this.isIE10=10===function Ae(){let i="";typeof navigator<"u"&&(i=navigator.userAgent.toLowerCase());const l=i.indexOf("msie ");return l>0&&parseInt(i.substring(l+5,i.indexOf(".",l)),10)}(),this.directiveInstance=t,this.directiveElementRef=o,this.cpDisableInput=E,this.cpCmykEnabled=F,this.cpAlphaChannel=_,this.cpOutputFormat=C,this.cpDialogDisplay=a,this.cpIgnoredElements=w,this.cpSaveClickOutside=te,this.cpCloseClickOutside=X,this.useRootViewContainer=T,this.width=this.cpWidth=parseInt(r,10),this.height=this.cpHeight=parseInt(s,10),this.cpPosition=an,this.cpPositionOffset=parseInt(cn,10),this.cpOKButton=vn,this.cpOKButtonText=Fn,this.cpOKButtonClass=Cn,this.cpCancelButton=_n,this.cpCancelButtonText=kn,this.cpCancelButtonClass=bn,this.cpEyeDropper=jn,this.fallbackColor=d||"#fff",this.setPresetConfig(dn,un),this.cpPresetColorsClass=gn,this.cpMaxPresetColorsLength=mn,this.cpPresetEmptyMessage=hn,this.cpPresetEmptyMessageClass=fn,this.cpAddColorButton=En,this.cpAddColorButtonText=xn,this.cpAddColorButtonClass=yn,this.cpRemoveColorButtonClass=wn,this.cpTriggerElement=An,this.cpExtraTemplate=Tn,pn||(this.dialogArrowOffset=0),"inline"===a&&(this.dialogArrowSize=0,this.dialogArrowOffset=0),"hex"===C&&"always"!==_&&"forced"!==_&&(this.cpAlphaChannel="disabled")}setColorMode(t){switch(t.toString().toUpperCase()){case"1":case"C":case"COLOR":default:this.cpColorMode=1;break;case"2":case"G":case"GRAYSCALE":this.cpColorMode=2;break;case"3":case"P":case"PRESETS":this.cpColorMode=3}}setInitialColor(t){this.initialColor=t}setPresetConfig(t,o){this.cpPresetLabel=t,this.cpPresetColors=o}setColorFromString(t,o=!0,n=!0){let r;"always"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel?(r=this.service.stringToHsva(t,!0),!r&&!this.hsva&&(r=this.service.stringToHsva(t,!1))):r=this.service.stringToHsva(t,!1),!r&&!this.hsva&&(r=this.service.stringToHsva(this.fallbackColor,!1)),r&&(this.hsva=r,this.sliderH=this.hsva.h,"hex"===this.cpOutputFormat&&"disabled"===this.cpAlphaChannel&&(this.hsva.a=1),this.updateColorPicker(o,n))}onResize(){"fixed"===this.position?this.setDialogPosition():"inline"!==this.cpDialogDisplay&&this.closeColorPicker()}onDragEnd(t){this.directiveInstance.sliderDragEnd({slider:t,color:this.outputColor})}onDragStart(t){this.directiveInstance.sliderDragStart({slider:t,color:this.outputColor})}onMouseDown(t){this.show&&!this.isIE10&&"popup"===this.cpDialogDisplay&&t.target!==this.directiveElementRef.nativeElement&&!this.isDescendant(this.elRef.nativeElement,t.target)&&!this.isDescendant(this.directiveElementRef.nativeElement,t.target)&&0===this.cpIgnoredElements.filter(o=>o===t.target).length&&this.ngZone.run(()=>{this.cpSaveClickOutside?this.directiveInstance.colorSelected(this.outputColor):(this.hsva=null,this.setColorFromString(this.initialColor,!1),this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor),this.directiveInstance.colorCanceled()),this.cpCloseClickOutside&&this.closeColorPicker()})}onAcceptColor(t){t.stopPropagation(),this.outputColor&&this.directiveInstance.colorSelected(this.outputColor),"popup"===this.cpDialogDisplay&&this.closeColorPicker()}onCancelColor(t){this.hsva=null,t.stopPropagation(),this.directiveInstance.colorCanceled(),this.setColorFromString(this.initialColor,!0),"popup"===this.cpDialogDisplay&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor,!0),this.closeColorPicker())}onEyeDropper(){this.eyeDropperSupported&&(new window.EyeDropper).open().then(o=>{this.setColorFromString(o.sRGBHex,!0)})}onFormatToggle(t){const o=this.dialogInputFields.length-(this.cpCmykEnabled?0:1),n=((this.dialogInputFields.indexOf(this.format)+t)%o+o)%o;this.format=this.dialogInputFields[n]}onColorChange(t){this.hsva.s=t.s/t.rgX,this.hsva.v=t.v/t.rgY,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"lightness",value:this.hsva.v,color:this.outputColor}),this.directiveInstance.sliderChanged({slider:"saturation",value:this.hsva.s,color:this.outputColor})}onHueChange(t){this.hsva.h=t.v/t.rgX,this.sliderH=this.hsva.h,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"hue",value:this.hsva.h,color:this.outputColor})}onValueChange(t){this.hsva.v=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"value",value:this.hsva.v,color:this.outputColor})}onAlphaChange(t){this.hsva.a=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"alpha",value:this.hsva.a,color:this.outputColor})}onHexInput(t){if(null===t)this.updateColorPicker();else{t&&"#"!==t[0]&&(t="#"+t);let o=/^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;"always"===this.cpAlphaChannel&&(o=/^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi);const n=o.test(t);n&&(t.length<5&&(t="#"+t.substring(1).split("").map(r=>r+r).join("")),"forced"===this.cpAlphaChannel&&(t+=Math.round(255*this.hsva.a).toString(16)),this.setColorFromString(t,!0,!1)),this.directiveInstance.inputChanged({input:"hex",valid:n,value:t,color:this.outputColor})}}onRedInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.r=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"red",valid:n,value:o.r,color:this.outputColor})}onBlueInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.b=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"blue",valid:n,value:o.b,color:this.outputColor})}onGreenInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.g=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"green",valid:n,value:o.g,color:this.outputColor})}onHueInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.h=t.v/t.rg,this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"hue",valid:o,value:this.hsva.h,color:this.outputColor})}onValueInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.v=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"value",valid:o,value:this.hsva.v,color:this.outputColor})}onAlphaInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.a=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"alpha",valid:o,value:this.hsva.a,color:this.outputColor})}onLightnessInput(t){const o=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.l=t.v/t.rg,this.hsva=this.service.hsla2hsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"lightness",valid:n,value:o.l,color:this.outputColor})}onSaturationInput(t){const o=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.s=t.v/t.rg,this.hsva=this.service.hsla2hsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"saturation",valid:n,value:o.s,color:this.outputColor})}onCyanInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.c=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"cyan",valid:!0,value:this.cmyk.c,color:this.outputColor})}onMagentaInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.m=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"magenta",valid:!0,value:this.cmyk.m,color:this.outputColor})}onYellowInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.y=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"yellow",valid:!0,value:this.cmyk.y,color:this.outputColor})}onBlackInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.k=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"black",valid:!0,value:this.cmyk.k,color:this.outputColor})}onAddPresetColor(t,o){t.stopPropagation(),this.cpPresetColors.filter(n=>n===o).length||(this.cpPresetColors=this.cpPresetColors.concat(o),this.directiveInstance.presetColorsChanged(this.cpPresetColors))}onRemovePresetColor(t,o){t.stopPropagation(),this.cpPresetColors=this.cpPresetColors.filter(n=>n!==o),this.directiveInstance.presetColorsChanged(this.cpPresetColors)}openColorPicker(){this.show||(this.show=!0,this.hidden=!0,setTimeout(()=>{this.hidden=!1,this.setDialogPosition(),this.cdRef.detectChanges()},0),this.directiveInstance.stateChanged(!0),this.isIE10||this.ngZone.runOutsideAngular(()=>{ie?document.addEventListener("touchstart",this.listenerMouseDown):document.addEventListener("mousedown",this.listenerMouseDown)}),window.addEventListener("resize",this.listenerResize))}closeColorPicker(){this.show&&(this.show=!1,this.directiveInstance.stateChanged(!1),this.isIE10||(ie?document.removeEventListener("touchstart",this.listenerMouseDown):document.removeEventListener("mousedown",this.listenerMouseDown)),window.removeEventListener("resize",this.listenerResize),this.cdRef.destroyed||this.cdRef.detectChanges())}updateColorPicker(t=!0,o=!0,n=!1){if(this.sliderDimMax){let r,s,a;2===this.cpColorMode&&(this.hsva.s=0);const d=this.outputColor;if(s=this.service.hsva2hsla(this.hsva),this.cpCmykEnabled?(n?(a=this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk)),this.hsva=this.service.rgbaToHsva(a)):(a=this.service.hsvaToRgba(this.hsva),this.cmyk=this.service.denormalizeCMYK(this.service.rgbaToCmyk(a))),a=this.service.denormalizeRGBA(a),this.sliderH=this.hsva.h):a=this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva)),r=this.service.denormalizeRGBA(this.service.hsvaToRgba(new K(this.sliderH||this.hsva.h,1,1,1))),o&&(this.hslaText=new B(Math.round(360*s.h),Math.round(100*s.s),Math.round(100*s.l),Math.round(100*s.a)/100),this.rgbaText=new j(a.r,a.g,a.b,Math.round(100*a.a)/100),this.cpCmykEnabled&&(this.cmykText=new O(this.cmyk.c,this.cmyk.m,this.cmyk.y,this.cmyk.k,Math.round(100*this.cmyk.a)/100)),this.hexText=this.service.rgbaToHex(a,"always"===this.cpAlphaChannel),this.hexAlpha=this.rgbaText.a),"auto"===this.cpOutputFormat&&this.format!==k.RGBA&&this.format!==k.CMYK&&this.format!==k.HSLA&&this.hsva.a<1&&(this.format=this.hsva.a<1?k.RGBA:k.HEX),this.hueSliderColor="rgb("+r.r+","+r.g+","+r.b+")",this.alphaSliderColor="rgb("+a.r+","+a.g+","+a.b+")",this.outputColor=this.service.outputFormat(this.hsva,this.cpOutputFormat,this.cpAlphaChannel),this.selectedColor=this.service.outputFormat(this.hsva,"rgba",null),this.format!==k.CMYK)this.cmykColor="";else if("always"===this.cpAlphaChannel||"enabled"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel){const p=Math.round(100*this.cmyk.a)/100;this.cmykColor=`cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${p})`}else this.cmykColor=`cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;this.slider=new ne((this.sliderH||this.hsva.h)*this.sliderDimMax.h-8,this.hsva.s*this.sliderDimMax.s-8,(1-this.hsva.v)*this.sliderDimMax.v-8,this.hsva.a*this.sliderDimMax.a-8),t&&d!==this.outputColor&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.outputColor))}}setDialogPosition(){if("inline"===this.cpDialogDisplay)this.position="relative";else{let n,t="static",o="",r=null,s=null,a=this.directiveElementRef.nativeElement.parentNode;const d=this.dialogElement.nativeElement.offsetHeight;for(;null!==a&&"HTML"!==a.tagName;){if(n=window.getComputedStyle(a),t=n.getPropertyValue("position"),o=n.getPropertyValue("transform"),"static"!==t&&null===r&&(r=a),o&&"none"!==o&&null===s&&(s=a),"fixed"===t){r=s;break}a=a.parentNode}const p=this.createDialogBox(this.directiveElementRef.nativeElement,"fixed"!==t);if(this.useRootViewContainer||"fixed"===t&&(!r||r instanceof HTMLUnknownElement))this.top=p.top,this.left=p.left;else{null===r&&(r=a);const T=this.createDialogBox(r,"fixed"!==t);this.top=p.top-T.top,this.left=p.left-T.left}"fixed"===t&&(this.position="fixed");let F=this.cpPosition;const _=this.dialogElement.nativeElement.getBoundingClientRect();switch("auto"===this.cpPosition&&(F=function je(i,l){let t="right",o="bottom";const{height:n,width:r}=i,{top:s,left:a}=l,d=s+l.height,p=a+l.width,F=s-n<0,_=d+n>(window.innerHeight||document.documentElement.clientHeight),C=a-r<0,E=p+r>(window.innerWidth||document.documentElement.clientWidth);return _&&(o="top"),F&&(o="bottom"),C&&(t="right"),E&&(t="left"),F&&_&&C&&E?["left","right","top","bottom"].reduce((X,T)=>i[X]>i[T]?X:T):C&&E?F?"bottom":_||s>d?"top":"bottom":F&&_?C?"right":E||a>p?"left":"right":`${o}-${t}`}(_,this.cpTriggerElement.nativeElement.getBoundingClientRect())),this.arrowTop="top"===F?d-1:void 0,this.cpArrowPosition=void 0,F){case"top":this.top-=d+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*p.width-this.dialogArrowOffset;break;case"bottom":this.top+=p.height+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*p.width-this.dialogArrowOffset;break;case"top-left":case"left-top":this.top-=d-p.height+p.height*this.cpPositionOffset/100,this.left-=this.cpWidth+this.dialogArrowSize-2-this.dialogArrowOffset;break;case"top-right":case"right-top":this.top-=d-p.height+p.height*this.cpPositionOffset/100,this.left+=p.width+this.dialogArrowSize-2-this.dialogArrowOffset;break;case"left":case"bottom-left":case"left-bottom":this.top+=p.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left-=this.cpWidth+this.dialogArrowSize-2;break;default:this.top+=p.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left+=p.width+this.dialogArrowSize-2}const C=window.innerHeight,E=window.innerWidth,w=this.elRef.nativeElement.getBoundingClientRect();this.top+_.height>C&&(this.top=C-_.height,this.cpArrowPosition=w.x/2-20),this.left+_.width>E&&(this.left=E-_.width,this.cpArrowPosition=w.x/2-20),this.cpUsePosition=F}}isDescendant(t,o){let n=o.parentNode;for(;null!==n;){if(n===t)return!0;n=n.parentNode}return!1}createDialogBox(t,o){const{top:n,left:r}=t.getBoundingClientRect();return{top:n+(o?window.pageYOffset:0),left:r+(o?window.pageXOffset:0),width:t.offsetWidth,height:t.offsetHeight}}static \u0275fac=function(o){return new(o||i)(e.rXU(e.SKi),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(h.qQ),e.rXU(e.Agw),e.rXU(J))};static \u0275cmp=e.VBU({type:i,selectors:[["color-picker"]],viewQuery:function(o,n){if(1&o&&(e.GBs(R,7),e.GBs(H,7),e.GBs(P,7)),2&o){let r;e.mGM(r=e.lsd())&&(n.dialogElement=r.first),e.mGM(r=e.lsd())&&(n.hueSlider=r.first),e.mGM(r=e.lsd())&&(n.alphaSlider=r.first)}},hostBindings:function(o,n){1&o&&e.bIt("keyup.esc",function(s){return n.handleEsc(s)},!1,e.EBC)("keyup.enter",function(s){return n.handleEnter(s)},!1,e.EBC)},decls:30,vars:51,consts:[["dialogPopup",""],["hueSlider",""],["valueSlider",""],["alphaSlider",""],[1,"color-picker",3,"click"],[3,"left","class","top",4,"ngIf"],["class","saturation-lightness",3,"slider","rgX","rgY","background-color","newValue","dragStart","dragEnd",4,"ngIf"],[1,"hue-alpha","box"],[1,"left"],[1,"selected-color-background"],[1,"selected-color",3,"click"],["class","eyedropper-icon","xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",4,"ngIf"],["type","button",3,"class","disabled","click",4,"ngIf"],[1,"right"],["style","height: 16px;",4,"ngIf"],[1,"hue",3,"newValue","dragStart","dragEnd","slider","rgX"],[1,"cursor"],[1,"value",3,"newValue","dragStart","dragEnd","slider","rgX"],[1,"alpha",3,"newValue","dragStart","dragEnd","slider","rgX"],["class","cmyk-text",3,"display",4,"ngIf"],["class","hsla-text",3,"display",4,"ngIf"],["class","rgba-text",3,"display",4,"ngIf"],["class","hex-text",3,"hex-alpha","display",4,"ngIf"],["class","value-text",4,"ngIf"],["class","type-policy",4,"ngIf"],["class","preset-area",4,"ngIf"],["class","button-area",4,"ngIf"],["class","extra-template",4,"ngIf"],[1,"saturation-lightness",3,"newValue","dragStart","dragEnd","slider","rgX","rgY"],["xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",1,"eyedropper-icon"],["d","M0 0h24v24H0V0z","fill","none"],["d","M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"],["type","button",3,"click","disabled"],[2,"height","16px"],[1,"cmyk-text"],[1,"box"],["type","number","pattern","[0-9]*","min","0","max","100",3,"keyup.enter","newValue","text","rg","value"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue",4,"ngIf"],[4,"ngIf"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"keyup.enter","newValue","text","rg","value"],[1,"hsla-text"],["type","number","pattern","[0-9]*","min","0","max","360",3,"keyup.enter","newValue","text","rg","value"],[1,"rgba-text"],["type","number","pattern","[0-9]*","min","0","max","255",3,"keyup.enter","newValue","text","rg","value"],[1,"hex-text"],[3,"blur","keyup.enter","newValue","text","value"],[1,"value-text"],[1,"type-policy"],[1,"type-policy-arrow",3,"click"],[1,"preset-area"],[1,"preset-label"],[3,"class",4,"ngIf"],["class","preset-color",3,"backgroundColor","click",4,"ngFor","ngForOf"],[1,"preset-color",3,"click"],[3,"class","click",4,"ngIf"],[3,"click"],[1,"button-area"],["type","button",3,"class","click",4,"ngIf"],["type","button",3,"click"],[1,"extra-template"],[4,"ngTemplateOutlet"]],template:function(o,n){if(1&o){const r=e.RV6();e.j41(0,"div",4,0),e.bIt("click",function(a){return e.eBV(r),e.Njj(a.stopPropagation())}),e.DNE(2,y,1,7,"div",5)(3,z,2,8,"div",6),e.j41(4,"div",7)(5,"div",8),e.nrm(6,"div",9),e.j41(7,"div",10),e.bIt("click",function(){return e.eBV(r),e.Njj(n.eyeDropperSupported&&n.cpEyeDropper&&n.onEyeDropper())}),e.DNE(8,M,3,0,"svg",11),e.k0s(),e.DNE(9,u,2,5,"button",12),e.k0s(),e.j41(10,"div",13),e.DNE(11,g,1,0,"div",14),e.j41(12,"div",15,1),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onHueChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("hue"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("hue"))}),e.nrm(14,"div",16),e.k0s(),e.j41(15,"div",17,2),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onValueChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("value"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("value"))}),e.nrm(17,"div",16),e.k0s(),e.j41(18,"div",18,3),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onAlphaChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("alpha"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("alpha"))}),e.nrm(20,"div",16),e.k0s()()(),e.DNE(21,b,17,12,"div",19)(22,G,14,10,"div",20)(23,S,14,10,"div",21)(24,ge,8,7,"div",22)(25,he,9,3,"div",23)(26,fe,3,0,"div",24)(27,be,6,3,"div",25)(28,ye,3,2,"div",26)(29,we,2,1,"div",27),e.k0s()}2&o&&(e.xc7("display",n.show?"block":"none")("visibility",n.hidden?"hidden":"visible")("top",n.top,"px")("left",n.left,"px")("position",n.position)("height",n.cpHeight,"px")("width",n.cpWidth,"px"),e.AVh("open",n.show),e.R7$(2),e.Y8G("ngIf","popup"===n.cpDialogDisplay),e.R7$(),e.Y8G("ngIf",1===(n.cpColorMode||1)),e.R7$(4),e.xc7("background-color",n.selectedColor)("cursor",n.eyeDropperSupported&&n.cpEyeDropper?"pointer":null),e.R7$(),e.Y8G("ngIf",n.eyeDropperSupported&&n.cpEyeDropper),e.R7$(),e.Y8G("ngIf",n.cpAddColorButton),e.R7$(2),e.Y8G("ngIf","disabled"===n.cpAlphaChannel),e.R7$(),e.xc7("display",1===(n.cpColorMode||1)?"block":"none"),e.Y8G("rgX",1),e.R7$(2),e.xc7("left",null==n.slider?null:n.slider.h,"px"),e.R7$(),e.xc7("display",2===(n.cpColorMode||1)?"block":"none"),e.Y8G("rgX",1),e.R7$(2),e.xc7("right",null==n.slider?null:n.slider.v,"px"),e.R7$(),e.xc7("display","disabled"===n.cpAlphaChannel?"none":"block")("background-color",n.alphaSliderColor),e.Y8G("rgX",1),e.R7$(2),e.xc7("left",null==n.slider?null:n.slider.a,"px"),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&2===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",(null==n.cpPresetColors?null:n.cpPresetColors.length)||n.cpAddColorButton),e.R7$(),e.Y8G("ngIf",n.cpOKButton||n.cpCancelButton),e.R7$(),e.Y8G("ngIf",n.cpExtraTemplate))},dependencies:[h.Sq,h.bT,h.T3,Te,Ie],styles:['.color-picker{position:absolute;z-index:1000;width:230px;height:auto;border:#777 solid 1px;cursor:default;-webkit-user-select:none;user-select:none;background-color:#fff}.color-picker *{box-sizing:border-box;margin:0;font-size:11px}.color-picker input{width:0;height:26px;min-width:0;font-size:13px;text-align:center;color:#000}.color-picker input:invalid,.color-picker input:-moz-ui-invalid,.color-picker input:-moz-submit-invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.color-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.color-picker .arrow.arrow-top{left:8px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-bottom{top:-20px;left:8px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.color-picker .arrow.arrow-top-left,.color-picker .arrow.arrow-left-top{right:-21px;bottom:8px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-top-right,.color-picker .arrow.arrow-right-top{bottom:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom,.color-picker .arrow.arrow-bottom-left{top:8px;right:-21px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom,.color-picker .arrow.arrow-bottom-right{top:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .cursor{position:relative;width:16px;height:16px;border:#222 solid 2px;border-radius:50%;cursor:default}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{position:relative;padding:16px 8px}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{overflow:hidden;width:100%;padding:4px;font-size:11px;white-space:nowrap;text-align:left;text-overflow:ellipsis;color:#555}.color-picker .preset-area .preset-color{position:relative;display:inline-block;width:18px;height:18px;margin:4px 6px 8px;border:#a9a9a9 solid 1px;border-radius:25%;cursor:pointer}.color-picker .preset-area .preset-empty-message{min-height:18px;margin-top:4px;margin-bottom:8px;font-style:italic;text-align:center}.color-picker .hex-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{float:left;flex:1 1 auto;text-align:center;color:#555;clear:left}.color-picker .hex-text .box input{flex:1 1 auto;padding:1px;border:#a9a9a9 solid 1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{flex:1 1 auto;margin-right:8px;text-align:center;color:#555}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{float:left;flex:1;padding:1px;margin:0 8px 0 0;border:#a9a9a9 solid 1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{direction:ltr;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC)}.color-picker .value{direction:rtl;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=)}.color-picker .alpha{direction:ltr;width:100%;height:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==)}.color-picker .type-policy{position:absolute;top:218px;right:12px;width:16px;height:24px;background-size:8px 16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:center}.color-picker .type-policy .type-policy-arrow{display:block;width:100%;height:50%}.color-picker .selected-color{position:absolute;top:16px;left:8px;width:40px;height:40px;border:1px solid #a9a9a9;border-radius:50%}.color-picker .selected-color-background{width:40px;height:40px;border-radius:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC)}.color-picker .saturation-lightness{direction:ltr;width:100%;height:130px;border:none;cursor:pointer;touch-action:manipulation;background-size:100% 100%;background-image:url(data:image/png;base64,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)}.color-picker .cp-add-color-button-class{position:absolute;display:inline;padding:0;margin:3px -3px;border:0;cursor:pointer;background:transparent}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{cursor:not-allowed;color:#999}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{position:absolute;top:-5px;right:-5px;display:block;width:10px;height:10px;border-radius:50%;cursor:pointer;text-align:center;background:#fff;box-shadow:1px 1px 5px #333}.color-picker .cp-remove-color-button-class:before{content:"x";position:relative;bottom:3.5px;display:inline-block;font-size:10px}.color-picker .eyedropper-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);fill:#fff;mix-blend-mode:exclusion}\n'],encapsulation:2})}return i})(),Be=(()=>{class i{injector;cfr;appRef;vcRef;elRef;_service;dialog;dialogCreated=!1;ignoreChanges=!1;cmpRef;viewAttachedToAppRef=!1;colorPicker;cpWidth="230px";cpHeight="auto";cpToggle=!1;cpDisabled=!1;cpIgnoredElements=[];cpFallbackColor="";cpColorMode="color";cpCmykEnabled=!1;cpOutputFormat="auto";cpAlphaChannel="enabled";cpDisableInput=!1;cpDialogDisplay="popup";cpSaveClickOutside=!0;cpCloseClickOutside=!0;cpUseRootViewContainer=!1;cpPosition="auto";cpPositionOffset="0%";cpPositionRelativeToArrow=!1;cpOKButton=!1;cpOKButtonText="OK";cpOKButtonClass="cp-ok-button-class";cpCancelButton=!1;cpCancelButtonText="Cancel";cpCancelButtonClass="cp-cancel-button-class";cpEyeDropper=!1;cpPresetLabel="Preset colors";cpPresetColors;cpPresetColorsClass="cp-preset-colors-class";cpMaxPresetColorsLength=6;cpPresetEmptyMessage="No colors added";cpPresetEmptyMessageClass="preset-empty-message";cpAddColorButton=!1;cpAddColorButtonText="Add color";cpAddColorButtonClass="cp-add-color-button-class";cpRemoveColorButtonClass="cp-remove-color-button-class";cpArrowPosition=0;cpExtraTemplate;cpInputChange=new e.bkB(!0);cpToggleChange=new e.bkB(!0);cpSliderChange=new e.bkB(!0);cpSliderDragEnd=new e.bkB(!0);cpSliderDragStart=new e.bkB(!0);colorPickerOpen=new e.bkB(!0);colorPickerClose=new e.bkB(!0);colorPickerCancel=new e.bkB(!0);colorPickerSelect=new e.bkB(!0);colorPickerChange=new e.bkB(!1);cpCmykColorChange=new e.bkB(!0);cpPresetColorsChange=new e.bkB(!0);handleClick(){this.inputFocus()}handleFocus(){this.inputFocus()}handleInput(t){this.inputChange(t)}constructor(t,o,n,r,s,a){this.injector=t,this.cfr=o,this.appRef=n,this.vcRef=r,this.elRef=s,this._service=a}ngOnDestroy(){null!=this.cmpRef&&(this.viewAttachedToAppRef&&this.appRef.detachView(this.cmpRef.hostView),this.cmpRef.destroy(),this.cmpRef=null,this.dialog=null)}ngOnChanges(t){t.cpToggle&&!this.cpDisabled&&(t.cpToggle.currentValue?this.openDialog():t.cpToggle.currentValue||this.closeDialog()),t.colorPicker&&(this.dialog&&!this.ignoreChanges&&("inline"===this.cpDialogDisplay&&this.dialog.setInitialColor(t.colorPicker.currentValue),this.dialog.setColorFromString(t.colorPicker.currentValue,!1),this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay&&this.cmpRef.changeDetectorRef.detectChanges()),this.ignoreChanges=!1),(t.cpPresetLabel||t.cpPresetColors)&&this.dialog&&this.dialog.setPresetConfig(this.cpPresetLabel,this.cpPresetColors)}openDialog(){if(this.dialogCreated)this.dialog&&this.dialog.openDialog(this.colorPicker);else{let t=this.vcRef;if(this.dialogCreated=!0,this.viewAttachedToAppRef=!1,this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay){const r=this.injector.get(this.appRef.componentTypes[0],e.zZn.NULL);r!==e.zZn.NULL?t=r.vcRef||r.viewContainerRef||this.vcRef:this.viewAttachedToAppRef=!0}const o=this.cfr.resolveComponentFactory(Re);if(this.viewAttachedToAppRef)this.cmpRef=o.create(this.injector),this.appRef.attachView(this.cmpRef.hostView),document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);else{const n=e.zZn.create({providers:[],parent:t.injector});this.cmpRef=t.createComponent(o,0,n,[])}this.cmpRef.instance.setupDialog(this,this.elRef,this.colorPicker,this.cpWidth,this.cpHeight,this.cpDialogDisplay,this.cpFallbackColor,this.cpColorMode,this.cpCmykEnabled,this.cpAlphaChannel,this.cpOutputFormat,this.cpDisableInput,this.cpIgnoredElements,this.cpSaveClickOutside,this.cpCloseClickOutside,this.cpUseRootViewContainer,this.cpPosition,this.cpPositionOffset,this.cpPositionRelativeToArrow,this.cpPresetLabel,this.cpPresetColors,this.cpPresetColorsClass,this.cpMaxPresetColorsLength,this.cpPresetEmptyMessage,this.cpPresetEmptyMessageClass,this.cpOKButton,this.cpOKButtonClass,this.cpOKButtonText,this.cpCancelButton,this.cpCancelButtonClass,this.cpCancelButtonText,this.cpAddColorButton,this.cpAddColorButtonClass,this.cpAddColorButtonText,this.cpRemoveColorButtonClass,this.cpEyeDropper,this.elRef,this.cpExtraTemplate),this.dialog=this.cmpRef.instance,this.vcRef!==t&&this.cmpRef.changeDetectorRef.detectChanges()}}closeDialog(){this.dialog&&"popup"===this.cpDialogDisplay&&this.dialog.closeDialog()}cmykChanged(t){this.cpCmykColorChange.emit(t)}stateChanged(t){this.cpToggleChange.emit(t),t?this.colorPickerOpen.emit(this.colorPicker):this.colorPickerClose.emit(this.colorPicker)}colorChanged(t,o=!0){this.ignoreChanges=o,this.colorPickerChange.emit(t)}colorSelected(t){this.colorPickerSelect.emit(t)}colorCanceled(){this.colorPickerCancel.emit()}inputFocus(){const t=this.elRef.nativeElement,o=this.cpIgnoredElements.filter(n=>n===t);!this.cpDisabled&&!o.length&&(typeof document<"u"&&t===document.activeElement?this.openDialog():this.dialog&&this.dialog.show?this.closeDialog():this.openDialog())}inputChange(t){this.dialog?this.dialog.setColorFromString(t.target.value,!0):(this.colorPicker=t.target.value,this.colorPickerChange.emit(this.colorPicker))}inputChanged(t){this.cpInputChange.emit(t)}sliderChanged(t){this.cpSliderChange.emit(t)}sliderDragEnd(t){this.cpSliderDragEnd.emit(t)}sliderDragStart(t){this.cpSliderDragStart.emit(t)}presetColorsChanged(t){this.cpPresetColorsChange.emit(t)}static \u0275fac=function(o){return new(o||i)(e.rXU(e.zZn),e.rXU(e.OM3),e.rXU(e.o8S),e.rXU(e.c1b),e.rXU(e.aKT),e.rXU(J))};static \u0275dir=e.FsC({type:i,selectors:[["","colorPicker",""]],hostBindings:function(o,n){1&o&&e.bIt("click",function(){return n.handleClick()})("focus",function(){return n.handleFocus()})("input",function(s){return n.handleInput(s)})},inputs:{colorPicker:"colorPicker",cpWidth:"cpWidth",cpHeight:"cpHeight",cpToggle:"cpToggle",cpDisabled:"cpDisabled",cpIgnoredElements:"cpIgnoredElements",cpFallbackColor:"cpFallbackColor",cpColorMode:"cpColorMode",cpCmykEnabled:"cpCmykEnabled",cpOutputFormat:"cpOutputFormat",cpAlphaChannel:"cpAlphaChannel",cpDisableInput:"cpDisableInput",cpDialogDisplay:"cpDialogDisplay",cpSaveClickOutside:"cpSaveClickOutside",cpCloseClickOutside:"cpCloseClickOutside",cpUseRootViewContainer:"cpUseRootViewContainer",cpPosition:"cpPosition",cpPositionOffset:"cpPositionOffset",cpPositionRelativeToArrow:"cpPositionRelativeToArrow",cpOKButton:"cpOKButton",cpOKButtonText:"cpOKButtonText",cpOKButtonClass:"cpOKButtonClass",cpCancelButton:"cpCancelButton",cpCancelButtonText:"cpCancelButtonText",cpCancelButtonClass:"cpCancelButtonClass",cpEyeDropper:"cpEyeDropper",cpPresetLabel:"cpPresetLabel",cpPresetColors:"cpPresetColors",cpPresetColorsClass:"cpPresetColorsClass",cpMaxPresetColorsLength:"cpMaxPresetColorsLength",cpPresetEmptyMessage:"cpPresetEmptyMessage",cpPresetEmptyMessageClass:"cpPresetEmptyMessageClass",cpAddColorButton:"cpAddColorButton",cpAddColorButtonText:"cpAddColorButtonText",cpAddColorButtonClass:"cpAddColorButtonClass",cpRemoveColorButtonClass:"cpRemoveColorButtonClass",cpArrowPosition:"cpArrowPosition",cpExtraTemplate:"cpExtraTemplate"},outputs:{cpInputChange:"cpInputChange",cpToggleChange:"cpToggleChange",cpSliderChange:"cpSliderChange",cpSliderDragEnd:"cpSliderDragEnd",cpSliderDragStart:"cpSliderDragStart",colorPickerOpen:"colorPickerOpen",colorPickerClose:"colorPickerClose",colorPickerCancel:"colorPickerCancel",colorPickerSelect:"colorPickerSelect",colorPickerChange:"colorPickerChange",cpCmykColorChange:"cpCmykColorChange",cpPresetColorsChange:"cpPresetColorsChange"},exportAs:["ngxColorPicker"],features:[e.OA$]})}return i})(),Ve=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({providers:[J],imports:[h.MD]})}return i})();var De=m(2578);let Q;try{Q=!!new Blob}catch{Q=!1}let re=(()=>{class i{get isFileSaverSupported(){return Q}genType(t){if(!t||-1===t.lastIndexOf("."))return"text/plain";const o=t.substring(t.lastIndexOf(".")+1);switch(o){case"txt":return"text/plain";case"xml":case"html":return`text/${o}`;case"json":return"octet/stream";default:return`application/${o}`}}save(t,o,n,r){if(!t)throw new Error("Data argument should be a blob instance");const s=new Blob([t],{type:n||t.type||this.genType(o)});(0,De.saveAs)(s,decodeURI(o||"download"),r)}saveText(t,o,n){const r=new Blob([t]);this.save(r,o,void 0,n)}static#e=this.\u0275fac=function(o){return new(o||i)};static#t=this.\u0275prov=e.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Pe=(()=>{class i{static#e=this.\u0275fac=function(o){return new(o||i)};static#t=this.\u0275mod=e.$C({type:i});static#n=this.\u0275inj=e.G2t({})}return i})();const Me=i=>["segment",i],Ge=(i,l)=>({"segment-main":!0,expandable:i,expanded:l});function Ne(i,l){1&i&&e.nrm(0,"div",9)}function Oe(i,l){if(1&i&&(e.j41(0,"span",10),e.EFF(1),e.k0s()),2&i){const t=e.XpG().$implicit;e.R7$(),e.JRh(t.description)}}function Xe(i,l){if(1&i&&(e.j41(0,"section",11),e.nrm(1,"ngx-json-viewer",12),e.k0s()),2&i){const t=e.XpG().$implicit,o=e.XpG();e.R7$(),e.Y8G("json",t.value)("expanded",o.expanded)("depth",o.depth)("_currentDepth",o._currentDepth+1)}}function Ye(i,l){if(1&i){const t=e.RV6();e.j41(0,"section",2)(1,"section",3),e.bIt("click",function(){const n=e.eBV(t).$implicit,r=e.XpG();return e.Njj(r.toggle(n))}),e.DNE(2,Ne,1,0,"div",4),e.j41(3,"span",5),e.EFF(4),e.k0s(),e.j41(5,"span",6),e.EFF(6,": "),e.k0s(),e.DNE(7,Oe,2,1,"span",7),e.k0s(),e.DNE(8,Xe,2,4,"section",8),e.k0s()}if(2&i){const t=l.$implicit,o=e.XpG();e.Y8G("ngClass",e.eq3(6,Me,"segment-type-"+t.type)),e.R7$(),e.Y8G("ngClass",e.l_i(8,Ge,o.isExpandable(t),t.expanded)),e.R7$(),e.Y8G("ngIf",o.isExpandable(t)),e.R7$(2),e.JRh(t.key),e.R7$(3),e.Y8G("ngIf",!t.expanded||!o.isExpandable(t)),e.R7$(),e.Y8G("ngIf",t.expanded&&o.isExpandable(t))}}let se=(()=>{class i{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),"object"==typeof this.json?Object.keys(this.json).forEach(t=>{this.segments.push(this.parseKeyValue(t,this.json[t]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(t){return"object"===t.type||"array"===t.type}toggle(t){this.isExpandable(t)&&(t.expanded=!t.expanded)}parseKeyValue(t,o){const n={key:t,value:o,type:void 0,description:""+o,expanded:this.isExpanded()};switch(typeof n.value){case"number":n.type="number";break;case"boolean":n.type="boolean";break;case"function":n.type="function";break;case"string":n.type="string",n.description='"'+n.value+'"';break;case"undefined":n.type="undefined",n.description="undefined";break;case"object":null===n.value?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value))}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(t){const o=new WeakMap;return function n(r,s){let a,d;return"object"!=typeof r||null===r||r instanceof Boolean||r instanceof Date||r instanceof Number||r instanceof RegExp||r instanceof String?r:(a=o.get(r),void 0!==a?{$ref:a}:(o.set(r,s),Array.isArray(r)?(d=[],r.forEach(function(p,F){d[F]=n(p,s+"["+F+"]")})):(d={},Object.keys(r).forEach(function(p){d[p]=n(r[p],s+"["+JSON.stringify(p)+"]")})),d))}(t,"$")}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=e.VBU({type:i,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},features:[e.OA$],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(t,o){1&t&&(e.j41(0,"section",0),e.DNE(1,Ye,9,11,"section",1),e.k0s()),2&t&&(e.R7$(),e.Y8G("ngForOf",o.segments))},dependencies:[h.YU,h.Sq,h.bT,i],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),i})(),qe=(()=>{class i{}return i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=e.$C({type:i}),i.\u0275inj=e.G2t({imports:[h.MD]}),i})();var le=m(93331),V=m(38117),c=m(89417),He=m(28990),ze=m(96354),A=m(3366),v=m(19664),D=m(45794),I=m(97013);function Ue(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Device name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Nwkid"),e.k0s(),e.EFF(14),e.k0s(),e.EFF(15,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" :\n ",t.Ep," - "),e.R7$(3),e.SpI(" : ",t.NwkId,"\n ")}}function Le(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Device name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Nwkid"),e.k0s(),e.EFF(14),e.k0s(),e.EFF(15,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" :\n ",t.Ep," - "),e.R7$(3),e.SpI(" : ",t.NwkId,"\n ")}}const Ke=new V.Vy("BindingComponent");let We=(()=>{class i extends He.U{apiService;formBuilder;translate;toastr;form;clusters$;devicesSource;devicesTarget;devicesTargetFiltered;constructor(t,o,n,r){super(),this.apiService=t,this.formBuilder=o,this.translate=n,this.toastr=r}ngOnInit(){this.form=this.formBuilder.group({source:[null,c.k0.required],target:[null,c.k0.required],cluster:[null,c.k0.required]}),this.clusters$=this.apiService.getBindLSTcluster().pipe((0,ze.T)(t=>t.map(o=>(o.fullName=o.ClusterId+" "+o.ClusterDesc,o)))),this.subs.sink=this.form.get("cluster").valueChanges.subscribe(t=>{Ke.debug("change:",t),this.apiService.getBindLSTdevice(this.form.get("cluster").value).subscribe(o=>{this.devicesSource=o,this.devicesTarget=o})})}filterDevices(t){this.form.get("target").patchValue(null),this.devicesTargetFiltered=this.devicesTarget.filter(o=>t.NwkId!==o.NwkId)}putBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}putUnBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putUnBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$),e.rXU(D.tw))};static \u0275cmp=e.VBU({type:i,selectors:[["app-binding"]],features:[e.Vt3],decls:71,vars:26,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[3,"formGroup"],[1,"card"],["translate","tools.binding.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["appendTo","body","bindLabel","fullName","bindValue","ClusterId","formControlName","cluster",3,"items","multiple","closeOnSelect","placeholder"],[1,"row","mt-2"],["appendTo","body","bindLabel","ZDeviceName","formControlName","source",3,"change","items","multiple","closeOnSelect","placeholder"],["ng-option-tmp",""],["bindLabel","ZDeviceName","appendTo","body","formControlName","target",3,"items","multiple","closeOnSelect","placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.binding.button.put",1,"btn","btn-primary",3,"click","disabled"],["translate","tools.unbinding.button.put",1,"ms-2","btn","btn-primary",3,"click","disabled"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"form",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"div",3),e.EFF(7,"\n "),e.j41(8,"div",4),e.EFF(9,"\n "),e.nrm(10,"p",5),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"div",8),e.EFF(18,"\n "),e.j41(19,"div"),e.EFF(20,"\n "),e.j41(21,"ng-select",9),e.nI1(22,"translate"),e.nI1(23,"async"),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"div",10),e.EFF(30,"\n "),e.j41(31,"div",8),e.EFF(32,"\n "),e.j41(33,"div"),e.EFF(34,"\n "),e.j41(35,"ng-select",11),e.nI1(36,"translate"),e.bIt("change",function(s){return n.filterDevices(s)}),e.EFF(37,"\n "),e.DNE(38,Ue,16,4,"ng-template",12),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.j41(44,"div",10),e.EFF(45,"\n "),e.j41(46,"div",8),e.EFF(47,"\n "),e.j41(48,"div"),e.EFF(49,"\n "),e.j41(50,"ng-select",13),e.nI1(51,"translate"),e.EFF(52,"\n "),e.DNE(53,Le,16,4,"ng-template",12),e.EFF(54,"\n "),e.k0s(),e.EFF(55,"\n "),e.k0s(),e.EFF(56,"\n "),e.k0s(),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.j41(61,"div",14),e.EFF(62,"\n "),e.j41(63,"button",15),e.bIt("click",function(){return n.putBinding()}),e.k0s(),e.EFF(64,"\n "),e.j41(65,"button",16),e.bIt("click",function(){return n.putUnBinding()}),e.k0s(),e.EFF(66,"\n "),e.k0s(),e.EFF(67,"\n "),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n"),e.k0s(),e.EFF(70,"\n")),2&o&&(e.R7$(2),e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(11,16,"tools.binding.subtitle"),e.npT),e.R7$(11),e.FS9("placeholder",e.bMT(22,18,"tools.binding.cluster")),e.Y8G("items",e.bMT(23,20,n.clusters$))("multiple",!1)("closeOnSelect",!0),e.R7$(14),e.FS9("placeholder",e.bMT(36,22,"tools.binding.sourceEp")),e.Y8G("items",n.devicesSource)("multiple",!1)("closeOnSelect",!0),e.R7$(15),e.FS9("placeholder",e.bMT(51,24,"tools.binding.destEp")),e.Y8G("items",n.devicesTargetFiltered)("multiple",!1)("closeOnSelect",!0),e.R7$(13),e.Y8G("disabled",!n.form.valid),e.R7$(2),e.Y8G("disabled",!n.form.valid))},dependencies:[c.qT,c.BC,c.cb,c.j4,c.JD,I.vr,I.Uq,v.Mm,h.Jj,v.D9]})}return i})();function Ze(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}function Je(i,l){if(1&i){const t=e.RV6();e.j41(0,"ng-select",18),e.nI1(1,"translate"),e.bIt("change",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.setAction(n))}),e.EFF(2,"\n "),e.k0s()}if(2&i){const t=e.XpG();e.FS9("placeholder",e.bMT(1,5,"tools.debugcommand.action")),e.Y8G("items",t.capabilities.Capabilities)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function Qe(i,l){if(1&i&&(e.j41(0,"ng-select",19),e.nI1(1,"translate"),e.EFF(2,"\n "),e.k0s()),2&i){const t=e.XpG();e.FS9("placeholder",e.bMT(1,5,"tools.debugcommand.type")),e.Y8G("items",t.capabilities.Types)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function $e(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.j41(6,"span",20),e.mxI("colorPickerChange",function(n){e.eBV(t);const r=e.XpG();return e.DH7(r.colorPicker,n)||(r.colorPicker=n),e.Njj(n)}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()}if(2&i){const t=e.XpG();e.R7$(6),e.xc7("background",t.colorPicker),e.Y8G("cpToggle",!0)("cpDialogDisplay","inline"),e.R50("colorPicker",t.colorPicker),e.Y8G("cpOutputFormat","rgba")}}function et(i,l){1&i&&e.nrm(0,"div",23)}function tt(i,l){if(1&i&&(e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.nrm(6,"input",21),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,et,1,0,"div",22),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(6),e.FS9("placeholder",e.bMT(7,2,"tools.debugcommand.value")),e.R7$(3),e.Y8G("ngIf",t.form.controls.effect.errors)}}function nt(i,l){1&i&&e.nrm(0,"div",26)}function ot(i,l){if(1&i&&(e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.nrm(6,"input",24),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,nt,1,0,"div",25),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(6),e.FS9("placeholder",e.bMT(7,2,"tools.debugcommand.value")),e.R7$(3),e.Y8G("ngIf",!t.form.controls.level.valid)}}let it=(()=>{class i{toastr;apiService;formBuilder;translate;routers;capabilities;form;colorPicker="rgba(30,96,239,0.54)";capaSelected;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({level:[null,[c.k0.nullValidator,c.k0.min(0),c.k0.max(100)]],type:[null,c.k0.required],action:[null,c.k0.required],deviceSelected:[null,c.k0.required],effect:[null,c.k0.compose([c.k0.nullValidator,c.k0.pattern("^[0-9A-Fa-f]+")])]}),this.form.get("type").disable(),this.apiService.getZDevices().subscribe(t=>{this.routers=t.filter(o=>"Router"===o.LogicalType)})}callCapabilities(t){this.capaSelected=null,this.form.get("action").patchValue(null),this.form.get("type").patchValue(null),this.capabilities=null,this.apiService.getDevCap(t._NwkId).subscribe(o=>{this.capabilities=o})}setAction(t){this.capaSelected=t,this.form.get("type").patchValue(null),t&&!0===t.Type?this.form.get("type").enable():this.form.get("type").disable()}callAction(){let t=null,o=null;if(this.testRGB)if(this.colorPicker.startsWith("rgba")){let r=this.colorPicker.replace("rgba(","");r=r.replace(")","");const s=r.split(",");4===s.length&&(o=100*Number(s[3]),t="rgb("+s[0]+","+s[1]+","+s[2]+")")}else this.colorPicker.startsWith("rgb")&&(o=100,t=this.colorPicker);!o&&this.capaSelected.Value&&("hex"===this.capaSelected.Value&&(o=this.form.get("effect").value),"int"===this.capaSelected.Value&&(o=this.form.get("level").value));const n={NwkId:this.form.get("deviceSelected").value._NwkId,Command:this.form.get("action").value.actuator,Value:o,Color:t,Type:this.form.get("type").value};this.apiService.putDevCommand(n).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}get testRGB(){return!!this.form.get("type").value&&this.form.get("type").value.startsWith("ColorControl")}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-command"]],decls:61,vars:17,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.debugcommand.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","appendTo","body","formControlName","deviceSelected",3,"change","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"col-sm"],["translate","tools.debugcommand.button.cancel",1,"ms-3","btn","btn-secondary",3,"click"],[1,"row","mt-2"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"items","multiple","closeOnSelect","searchable","placeholder","change",4,"ngIf"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder",4,"ngIf"],["class","row mt-2",4,"ngIf"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.debugcommand.button.send",1,"btn","btn-primary",3,"click","disabled"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"change","items","multiple","closeOnSelect","searchable","placeholder"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder"],[3,"colorPickerChange","cpToggle","cpDialogDisplay","colorPicker","cpOutputFormat"],["type","text","formControlName","effect",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.effect.error",4,"ngIf"],["translate","tools.debugcommand.effect.error"],["type","number","min","0","formControlName","level",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.level.error",4,"ngIf"],["translate","tools.debugcommand.level.error"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.bIt("change",function(s){return n.callCapabilities(s)}),e.EFF(19,"\n "),e.DNE(20,Ze,10,2,"ng-template",9),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.j41(24,"div",10),e.EFF(25,"\n "),e.j41(26,"button",11),e.bIt("click",function(){return n.form.reset(),n.capaSelected=null}),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.j41(30,"div",12),e.EFF(31,"\n "),e.j41(32,"div",7),e.EFF(33,"\n "),e.DNE(34,Je,3,7,"ng-select",13),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.k0s(),e.EFF(37,"\n "),e.j41(38,"div",12),e.EFF(39,"\n "),e.j41(40,"div",7),e.EFF(41,"\n "),e.DNE(42,Qe,3,7,"ng-select",14),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.DNE(46,$e,10,6,"div",15),e.EFF(47,"\n "),e.DNE(48,tt,13,4,"div",15),e.EFF(49,"\n "),e.DNE(50,ot,13,4,"div",15),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.k0s(),e.EFF(53,"\n "),e.j41(54,"div",16),e.EFF(55,"\n "),e.j41(56,"button",17),e.bIt("click",function(){return n.callAction()}),e.k0s(),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n"),e.k0s(),e.EFF(60,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,13,"tools.debugcommand.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,15,"tools.debugcommand.device")),e.Y8G("items",n.routers)("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(17),e.Y8G("ngIf",n.form.get("deviceSelected").value&&n.capabilities),e.R7$(8),e.Y8G("ngIf",n.capaSelected&&n.capaSelected.Type),e.R7$(4),e.Y8G("ngIf",n.capaSelected&&n.testRGB),e.R7$(2),e.Y8G("ngIf",n.capaSelected&&"hex"===n.capaSelected.Value),e.R7$(2),e.Y8G("ngIf",n.capaSelected&&"int"===n.capaSelected.Value),e.R7$(6),e.Y8G("disabled",!n.form.valid))},dependencies:[h.bT,c.qT,c.me,c.Q0,c.BC,c.cb,c.VZ,c.j4,c.JD,I.vr,I.Uq,v.Mm,Be,v.D9]})}return i})();function rt(i,l){1&i&&e.nrm(0,"div",14)}function st(i,l){1&i&&e.nrm(0,"div",14)}let lt=(()=>{class i{toastr;apiService;formBuilder;translate;form;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({Command:[null,c.k0.required],payload:[null]})}putCommand(){this.apiService.putCommandRaw(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-raw-command"]],decls:50,vars:13,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigate.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["type","text","formControlName","Command",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigate.error",4,"ngIf"],[1,"row","mt-2"],["type","text","formControlName","payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigate.button.send",1,"btn","btn-primary",3,"click","disabled"],["translate","tools.rawcommand-zigate.error"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"div"),e.EFF(18,"\n "),e.nrm(19,"input",8),e.nI1(20,"translate"),e.EFF(21,"\n "),e.DNE(22,rt,1,0,"div",9),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",10),e.EFF(28,"\n "),e.j41(29,"div",7),e.EFF(30,"\n "),e.j41(31,"div"),e.EFF(32,"\n "),e.nrm(33,"input",11),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,st,1,0,"div",9),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.j41(43,"div",12),e.EFF(44,"\n "),e.j41(45,"button",13),e.bIt("click",function(){return n.putCommand()}),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n"),e.k0s(),e.EFF(49,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,7,"tools.rawcommand-zigate.subtitle"),e.npT),e.R7$(11),e.FS9("placeholder",e.bMT(20,9,"tools.rawcommand-zigate.command")),e.R7$(3),e.Y8G("ngIf",n.form.controls.Command.dirty&&!n.form.controls.Command.valid),e.R7$(11),e.FS9("placeholder",e.bMT(34,11,"tools.rawcommand-zigate.payload")),e.R7$(3),e.Y8G("ngIf",n.form.controls.payload.dirty&&!n.form.controls.payload.valid),e.R7$(9),e.Y8G("disabled",!n.form.valid))},dependencies:[h.bT,c.qT,c.me,c.BC,c.cb,c.j4,c.JD,v.Mm,v.D9]})}return i})();function at(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId," ")}}let ct=(()=>{class i{toastr;apiService;formBuilder;translate;devices$;form;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}selectedCar;TrueFalse=[{id:!1,name:"False"},{id:!0,name:"True"}];ngOnInit(){this.form=this.formBuilder.group({ProfileId:["0104",c.k0.required],ClusterId:["0000",c.k0.required],TargetAddr:[null,c.k0.required],TargetEp:["01",c.k0.required],SourceEp:["01",c.k0.required],Sqn:["55",c.k0.required],Payload:[null,c.k0.required],GroupAddressFlag:[!1,c.k0.required],AckMode:[!1,c.k0.required]}),this.devices$=this.apiService.getZDeviceName()}putCommand(){this.apiService.putCommandRawZigpy(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-raw-command-zigpy"]],decls:118,vars:34,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigpy.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","bindValue","_NwkId","formControlName","TargetAddr",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"row","mt-2"],["translate","tools.rawcommand-zigpy.groupaddressflag",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","GroupAddressFlag",3,"items"],["translate","tools.rawcommand-zigpy.ackmode",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","AckMode",3,"items"],["translate","tools.rawcommand-zigpy.profileid",1,"col-sm-3","col-form-label"],[1,"col-sm-2"],["type","text","formControlName","ProfileId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.clusterid",1,"col-sm-3","col-form-label"],["type","text","formControlName","ClusterId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sourceep",1,"col-sm-3","col-form-label"],["type","text","formControlName","SourceEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.targetep",1,"col-sm-3","col-form-label"],["type","text","formControlName","TargetEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sqn",1,"col-sm-3","col-form-label"],["type","text","formControlName","Sqn",1,"w-100","form-control",3,"placeholder"],[1,"col-sm"],["type","text","formControlName","Payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigpy.button.send",1,"btn","btn-primary",3,"click","disabled"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.EFF(20,"\n "),e.DNE(21,at,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.j41(26,"div",10),e.EFF(27,"\n "),e.nrm(28,"label",11),e.EFF(29,"\n "),e.j41(30,"div",7),e.EFF(31,"\n "),e.j41(32,"ng-select",12),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.k0s(),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.j41(37,"div",10),e.EFF(38,"\n "),e.nrm(39,"label",13),e.EFF(40,"\n "),e.j41(41,"div",7),e.EFF(42,"\n "),e.j41(43,"ng-select",14),e.EFF(44," "),e.k0s(),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.j41(48,"div",10),e.EFF(49,"\n "),e.nrm(50,"label",15),e.EFF(51,"\n "),e.j41(52,"div",16),e.EFF(53,"\n "),e.nrm(54,"input",17),e.nI1(55,"translate"),e.EFF(56,"\n "),e.k0s(),e.EFF(57,"\n "),e.nrm(58,"label",18),e.EFF(59,"\n "),e.j41(60,"div",16),e.EFF(61,"\n "),e.nrm(62,"input",19),e.nI1(63,"translate"),e.EFF(64,"\n "),e.k0s(),e.EFF(65,"\n "),e.k0s(),e.EFF(66,"\n "),e.j41(67,"div",10),e.EFF(68,"\n "),e.nrm(69,"label",20),e.EFF(70,"\n "),e.j41(71,"div",16),e.EFF(72,"\n "),e.nrm(73,"input",21),e.nI1(74,"translate"),e.EFF(75,"\n "),e.k0s(),e.EFF(76,"\n "),e.nrm(77,"label",22),e.EFF(78,"\n "),e.j41(79,"div",16),e.EFF(80,"\n "),e.nrm(81,"input",23),e.nI1(82,"translate"),e.EFF(83,"\n "),e.k0s(),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"div",10),e.EFF(87,"\n "),e.nrm(88,"label",24),e.EFF(89,"\n "),e.j41(90,"div",16),e.EFF(91,"\n "),e.j41(92,"div"),e.EFF(93,"\n "),e.nrm(94,"input",25),e.nI1(95,"translate"),e.EFF(96,"\n "),e.k0s(),e.EFF(97,"\n "),e.k0s(),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"div",10),e.EFF(101,"\n "),e.j41(102,"div",26),e.EFF(103,"\n "),e.nrm(104,"input",27),e.nI1(105,"translate"),e.EFF(106,"\n "),e.k0s(),e.EFF(107,"\n "),e.k0s(),e.EFF(108,"\n "),e.k0s(),e.EFF(109,"\n "),e.k0s(),e.EFF(110,"\n "),e.j41(111,"div",28),e.EFF(112,"\n "),e.j41(113,"button",29),e.bIt("click",function(){return n.putCommand()}),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n "),e.k0s(),e.EFF(116,"\n"),e.k0s(),e.EFF(117,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,16,"tools.rawcommand-zigpy.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,18,"tools.rawcommand-zigpy.placeholder")),e.Y8G("items",e.bMT(19,20,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(15),e.Y8G("items",n.TrueFalse),e.R7$(11),e.Y8G("items",n.TrueFalse),e.R7$(11),e.FS9("placeholder",e.bMT(55,22,"tools.rawcommand-zigpy.profileid")),e.R7$(8),e.FS9("placeholder",e.bMT(63,24,"tools.rawcommand-zigpy.clusterid")),e.R7$(11),e.FS9("placeholder",e.bMT(74,26,"tools.rawcommand-zigpy.sourceep")),e.R7$(8),e.FS9("placeholder",e.bMT(82,28,"tools.rawcommand-zigpy.targetep")),e.R7$(13),e.FS9("placeholder",e.bMT(95,30,"tools.rawcommand-zigpy.sqn")),e.R7$(10),e.FS9("placeholder",e.bMT(105,32,"tools.rawcommand-zigpy.payload")),e.R7$(9),e.Y8G("disabled",!n.form.valid))},dependencies:[c.qT,c.me,c.BC,c.cb,c.j4,c.JD,I.vr,I.Uq,v.Mm,h.Jj,v.D9]})}return i})();function pt(i,l){1&i&&e.nrm(0,"app-raw-command")}function dt(i,l){1&i&&e.nrm(0,"app-raw-command-zigpy")}let ut=(()=>{class i{plugin;ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=e.VBU({type:i,selectors:[["app-command"]],decls:9,vars:2,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[4,"ngIf"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"app-debug-command"),e.EFF(3,"\n "),e.DNE(4,pt,1,0,"app-raw-command",1),e.EFF(5,"\n "),e.DNE(6,dt,1,0,"app-raw-command-zigpy",1),e.EFF(7,"\n"),e.k0s(),e.EFF(8,"\n")),2&o&&(e.R7$(4),e.Y8G("ngIf",!(null!=n.plugin&&n.plugin.Zigpy)),e.R7$(2),e.Y8G("ngIf",null==n.plugin?null:n.plugin.Zigpy))},dependencies:[h.bT,it,lt,ct]})}return i})();var gt=m(88652),ae=m(38852);function mt(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",5),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function ht(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",6),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function ft(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",7),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function vt(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",5),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function Ct(i,l){if(1&i&&(e.j41(0,"div",8),e.EFF(1,"\n "),e.nrm(2,"input",9),e.EFF(3,"\n "),e.nrm(4,"label",10),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("id",t.setting.Name),e.R7$(2),e.FS9("for",t.setting.Name),e.FS9("translate",t.setting.Name)}}let Ft=(()=>{class i{formBuilder;fgd;setting;advanced;constructor(t,o){this.formBuilder=t,this.fgd=o}ngOnInit(){let t;t=this.formBuilder.group("hex"===this.setting.DataType?{current:["",c.k0.compose([c.k0.required,c.k0.pattern("^[0-9A-Fa-f]+")])]}:"bool"===this.setting.DataType?{current:[]}:{current:["",c.k0.required]}),this.fgd.form.addControl(this.setting.Name,t);const o=""!==this.setting.current_value?this.setting.current_value:this.setting.default_value;this.fgd.form.get(this.setting.Name).get("current").patchValue(o)}static \u0275fac=function(o){return new(o||i)(e.rXU(c.ok),e.rXU(c.j4))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-setting"]],inputs:{setting:"setting",advanced:"advanced"},features:[e.Jv_([],[{provide:c.ZU,useExisting:c.j4}])],decls:13,vars:6,consts:[[3,"formGroupName"],["class","d-flex flex-row align-items-center flex-wrap mt-2",4,"ngIf"],["class","form-check form-check-inline mt-2",4,"ngIf"],[1,"d-flex","flex-row","align-items-center","flex-wrap","mt-2"],["for","current",1,"me-2",3,"translate"],["type","text","formControlName","current",1,"w-25","form-control"],["type","text","formControlName","current",1,"w-100","form-control"],["type","number","formControlName","current",1,"form-control","w-25"],[1,"form-check","form-check-inline","mt-2"],["formControlName","current","type","checkbox",1,"form-check-input",3,"id"],[1,"form-check-label",3,"for","translate"]],template:function(o,n){1&o&&(e.qex(0,0),e.EFF(1,"\n "),e.DNE(2,mt,6,1,"div",1),e.EFF(3,"\n "),e.DNE(4,ht,6,1,"div",1),e.EFF(5,"\n "),e.DNE(6,ft,6,1,"div",1),e.EFF(7,"\n "),e.DNE(8,vt,6,1,"div",1),e.EFF(9,"\n "),e.DNE(10,Ct,6,3,"div",2),e.EFF(11,"\n"),e.bVm(),e.EFF(12,"\n")),2&o&&(e.Y8G("formGroupName",n.setting.Name),e.R7$(2),e.Y8G("ngIf","str"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","path"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","int"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","hex"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","bool"===n.setting.DataType))},dependencies:[h.bT,c.me,c.Q0,c.Zm,c.BC,c.cb,c.JD,c.$R,v.Mm],styles:["was-validated[_ngcontent-%COMP%] .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]{color:#000}"]})}return i})();const $=["contentRestart"];function _t(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function bt(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,_t,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit;e.R7$(2),e.Y8G("ngIf",!t.Advanced&&"bool"===t.DataType)}}function kt(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function Et(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,kt,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit;e.R7$(2),e.Y8G("ngIf",!t.Advanced&&"bool"!==t.DataType)}}function yt(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function xt(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,yt,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit,o=e.XpG(4);e.R7$(2),e.Y8G("ngIf",t.Advanced&&t.Advanced===o.advanced)}}function wt(i,l){if(1&i&&(e.j41(0,"div",21),e.EFF(1,"\n "),e.nrm(2,"div",22),e.EFF(3,"\n "),e.j41(4,"div",23),e.EFF(5,"\n "),e.j41(6,"div",24),e.EFF(7,"\n "),e.nrm(8,"p",25),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.j41(11,"div",24),e.EFF(12,"\n "),e.j41(13,"div",26),e.EFF(14,"\n "),e.DNE(15,bt,4,1,"ng-container",19),e.EFF(16,"\n "),e.k0s(),e.EFF(17,"\n "),e.j41(18,"div",27),e.EFF(19,"\n "),e.DNE(20,Et,4,1,"ng-container",19),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",27),e.EFF(24,"\n "),e.DNE(25,xt,4,1,"ng-container",19),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s()),2&i){const t=e.XpG().$implicit,o=e.XpG(2);e.R7$(2),e.Y8G("innerHTML",o.getTranslation("setting.header.",t._Theme),e.npT),e.R7$(6),e.Y8G("innerHTML",o.getTranslation("setting.subtitle.",t._Theme),e.npT),e.R7$(7),e.Y8G("ngForOf",t.ListOfSettings),e.R7$(5),e.Y8G("ngForOf",t.ListOfSettings),e.R7$(5),e.Y8G("ngForOf",t.ListOfSettings)}}function jt(i,l){if(1&i&&(e.j41(0,"div"),e.EFF(1,"\n "),e.DNE(2,wt,30,5,"div",20),e.EFF(3,"\n "),e.k0s()),2&i){const t=l.$implicit,o=e.XpG(2);e.R7$(2),e.Y8G("ngIf",o.hasBasicSettings(t.ListOfSettings))}}function At(i,l){if(1&i){const t=e.RV6();e.j41(0,"form",4),e.EFF(1,"\n "),e.j41(2,"fieldset",5),e.EFF(3,"\n "),e.j41(4,"legend"),e.EFF(5,"\n "),e.j41(6,"div",6),e.EFF(7,"\n "),e.nrm(8,"h5",7),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",8),e.EFF(12,"\n "),e.j41(13,"div",9),e.EFF(14,"\n "),e.j41(15,"div",10),e.EFF(16,"\n "),e.j41(17,"button",11),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.updateSettings())}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",12),e.EFF(21,"\n "),e.j41(22,"button",13),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.reinitSettings())}),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"div",14),e.EFF(26,"\n "),e.j41(27,"input",15),e.bIt("click",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.advancedSettings(n))}),e.k0s(),e.EFF(28,"\n "),e.nrm(29,"label",16),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.k0s(),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.j41(37,"div",17),e.EFF(38,"\n "),e.j41(39,"div",18),e.EFF(40,"\n "),e.DNE(41,jt,4,1,"div",19),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("formGroup",t.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,5,"tools.debugsetting.help.legend"),e.npT),e.R7$(9),e.Y8G("disabled",!t.form.valid),e.R7$(10),e.Y8G("checked",t.advanced),e.R7$(14),e.Y8G("ngForOf",t.settings)}}function Tt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",31),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",33),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",35),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}function It(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",36),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",37),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",38),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}function Rt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",39),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",40),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",41),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}let St=(()=>{class i{modalService;apiService;formBuilder;toastr;headerService;translate;contentRestart;contentReset;contentErase;form;settings;advanced=!1;constructor(t,o,n,r,s,a){this.modalService=t,this.apiService=o,this.formBuilder=n,this.toastr=r,this.headerService=s,this.translate=a}ngOnInit(){this.form=this.formBuilder.group({}),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((o,n)=>o.Name.localeCompare(n.Name))})}reinitSettings(){this.settings.forEach(t=>{const o=[];t.ListOfSettings.forEach(n=>{n.current_value=n.default_value,o.push(Object.assign({},n))}),t.ListOfSettings=o}),this.settings=[...this.settings]}advancedSettings(t){this.advanced=!!t.currentTarget.checked}updateSettings(){this.form.invalid?this.form.markAsTouched():(Object.keys(this.form.value).forEach(t=>{!0===this.form.value[t].current?this.form.value[t].current=1:!1===this.form.value[t].current&&(this.form.value[t].current=0)}),this.apiService.putSettingsDebug(this.form.value).subscribe(()=>{this.form.markAsPristine(),this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((o,n)=>o.Name.localeCompare(n.Name))}),this.apiService.getRestartNeeded().subscribe(t=>{1===t.RestartNeeded?(this.headerService.setRestart(!0),this.open(this.contentRestart)):2===t.RestartNeeded?this.open(this.contentReset):3===t.RestartNeeded&&this.open(this.contentErase)})}))}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then()}hasBasicSettings(t){return!!this.advanced||t.filter(o=>!1===o.Advanced).length>0}getTranslation(t,o){return this.translate.instant(t.concat(o))}static \u0275fac=function(o){return new(o||i)(e.rXU(gt.Bq),e.rXU(A.G),e.rXU(c.ok),e.rXU(D.tw),e.rXU(ae.d),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-settings"]],viewQuery:function(o,n){if(1&o&&(e.GBs($,5),e.GBs($,5),e.GBs($,5)),2&o){let r;e.mGM(r=e.lsd())&&(n.contentRestart=r.first),e.mGM(r=e.lsd())&&(n.contentReset=r.first),e.mGM(r=e.lsd())&&(n.contentErase=r.first)}},decls:11,vars:1,consts:[["contentRestart",""],["contentReset",""],["contentErase",""],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"h-100"],[1,"row"],[1,"col-sm-8",3,"innerHTML"],[1,"col-sm-4"],[1,"d-flex","flex-row-reverse","align-items-center"],[1,"p-2"],["translate","tools.debugsetting.validate.button",1,"btn","btn-primary",3,"click","disabled"],[1,"p-2","ms-3"],["translate","tools.debugsetting.reinit.button",1,"btn","btn-secondary",3,"click"],[1,"switch","switch-sm","me-2","pr-2","float-right"],["type","checkbox","id","switch-advanced",1,"switch",3,"click","checked"],["for","switch-advanced","translate","tools.debugsetting.advanced.button",1,"mb-0"],[1,"row","row-cols-1","row-cols-sm-1","g-4"],[1,"col"],[4,"ngFor","ngForOf"],["class","card",4,"ngIf"],[1,"card"],[1,"card-header","fw-bold",3,"innerHTML"],[1,"card-body"],[1,"card-text"],[3,"innerHTML"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center","mt-2"],[3,"setting","advanced",4,"ngIf"],[3,"setting","advanced"],[1,"modal-header"],["id","modal-basic-title","translate","setting.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","setting.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","setting.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.resetplugin.alert.title",1,"modal-title"],["translate","setting.resetplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.resetplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.eraseplugin.alert.title",1,"modal-title"],["translate","setting.eraseplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.eraseplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(o,n){1&o&&(e.DNE(0,At,45,7,"form",3),e.EFF(1,"\n\n"),e.DNE(2,Tt,15,0,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,It,15,0,"ng-template",null,1,e.C5r),e.EFF(7,"\n\n"),e.DNE(8,Rt,15,0,"ng-template",null,2,e.C5r),e.EFF(10,"\n")),2&o&&e.Y8G("ngIf",n.settings)},dependencies:[h.Sq,h.bT,c.qT,c.cb,c.j4,v.Mm,Ft,v.D9],styles:[".btn-secondary[_ngcontent-%COMP%]{--bs-btn-color: white}"]})}return i})();var ce=m(70980);function pe(i,l){const t=new h.vh("en-US");if("LastSeen"===i)return t.transform(1e3*l,"dd/MM/yyyy HH:mm:ss");if(["TimeStamps","TimeStamp","Stamp","Time","StartTime","BatteryUpdateTime","TargetTime"].indexOf(i)>-1){if(l>0){let n=1e3*l;return n=Number(n.toFixed(0)),t.transform(n,"dd/MM/yyyy HH:mm:ss")}return l}return l}function Bt(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",4),e.EFF(1,"\n "),e.j41(2,"button",5),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.export(n.json))}),e.k0s(),e.EFF(3,"\n\n "),e.nrm(4,"ngx-json-viewer",6),e.EFF(5,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("hidden",t.isLoading),e.R7$(4),e.Y8G("expanded",!1)("json",t.json)}}let Vt=(()=>{class i{apiService;headerService;fileSaverService;json=null;isLoading=!1;constructor(t,o,n){this.apiService=t,this.headerService=o,this.fileSaverService=n}onClick(t){let o;this.json=null,"log-error-history"===t&&(o=this.apiService.getLogErrorHistory(),this.headerService.setError(!1)),"clear-error-history"===t&&(o=this.apiService.clearLogErrorHistory(),this.headerService.setError(!1)),o&&o.pipe((0,ce.j)(()=>{this.isLoading=!1})).subscribe(n=>{this.callbackservice(n)})}callbackservice(t){const o=JSON.stringify(t);this.json=JSON.parse(o,pe)}export(t){const o="errors.json",n=this.fileSaverService.genType(o),r=new Blob([JSON.stringify(t)],{type:n});this.fileSaverService.save(r,o)}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(ae.d),e.rXU(re))};static \u0275cmp=e.VBU({type:i,selectors:[["app-error"]],decls:9,vars:1,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.error.log-history.button",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.error.log-history.clear",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"button",1),e.bIt("click",function(){return n.onClick("log-error-history")}),e.k0s(),e.EFF(3,"\n "),e.j41(4,"button",2),e.bIt("click",function(){return n.onClick("clear-error-history")}),e.k0s(),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.DNE(7,Bt,6,3,"div",3),e.EFF(8,"\n")),2&o&&(e.R7$(7),e.Y8G("ngIf",n.json))},dependencies:[h.bT,v.Mm,se]})}return i})();var Dt=m(34402),ee=m(46247),Pt=m(5779),Mt=m(22242);const Gt=()=>[10,25,50];function Nt(i,l){1&i&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",5),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",6),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",7),e.EFF(12),e.nI1(13,"translate"),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",7),e.EFF(16),e.nI1(17,"translate"),e.k0s(),e.EFF(18,"\n "),e.j41(19,"th",7),e.EFF(20),e.nI1(21,"translate"),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",7),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",8),e.EFF(28),e.nI1(29,"translate"),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n ")),2&i&&(e.R7$(4),e.JRh(e.bMT(5,7,"tools.reporting.configure.clusterId.column")),e.R7$(4),e.JRh(e.bMT(9,9,"tools.reporting.configure.attributeId.column")),e.R7$(4),e.JRh(e.bMT(13,11,"tools.reporting.configure.dataType.column")),e.R7$(4),e.JRh(e.bMT(17,13,"tools.reporting.configure.timeout.column")),e.R7$(4),e.JRh(e.bMT(21,15,"tools.reporting.configure.minInterval.column")),e.R7$(4),e.JRh(e.bMT(25,17,"tools.reporting.configure.maxInterval.column")),e.R7$(4),e.JRh(e.bMT(29,19,"tools.reporting.configure.change.column")))}function Ot(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MinInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.minInterval)}}function Xt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MinInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.minInterval)}}function Yt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MaxInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.maxInterval)}}function qt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MaxInterval",r))}),e.k0s(),e.EFF(2," ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.maxInterval)}}function Ht(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"Change",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG(2).$implicit;e.R7$(),e.Y8G("value",t.change)}}function zt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"Change",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG(2).$implicit;e.R7$(),e.Y8G("value",t.change)}}function Ut(i,l){1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,Ht,3,1,"ng-template",10),e.EFF(3,"\n "),e.DNE(4,zt,3,1,"ng-template",11),e.EFF(5,"\n "),e.bVm())}function Lt(i,l){if(1&i&&e.EFF(0),2&i){const t=e.XpG().$implicit;e.JRh(t.change)}}function Kt(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",9),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,Ot,3,1,"ng-template",10),e.EFF(20,"\n "),e.DNE(21,Xt,3,1,"ng-template",11),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"td",12),e.EFF(26,"\n "),e.j41(27,"p-cellEditor"),e.EFF(28,"\n "),e.DNE(29,Yt,3,1,"ng-template",10),e.EFF(30,"\n "),e.DNE(31,qt,3,1,"ng-template",11),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.j41(34,"td",13),e.EFF(35,"\n "),e.j41(36,"p-cellEditor"),e.EFF(37,"\n "),e.DNE(38,Ut,6,0,"ng-container",14),e.EFF(39,"\n "),e.DNE(40,Lt,1,1,"ng-template",null,1,e.C5r),e.k0s(),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.k0s()),2&i){const t=l.$implicit,o=e.sdS(41),n=e.XpG();e.R7$(4),e.JRh(t.clusterId),e.R7$(3),e.JRh(t.attributeId),e.R7$(3),e.JRh(t.dataType),e.R7$(3),e.JRh(t.timeOut),e.R7$(2),e.Y8G("pEditableColumn",t.minInterval),e.R7$(10),e.Y8G("pEditableColumn",t.maxInterval),e.R7$(9),e.Y8G("pEditableColumn",t.change),e.R7$(4),e.Y8G("ngIf",n.isEditable(t))("ngIfElse",o)}}let Wt=(()=>{class i{toastr;apiService;formBuilder;translate;clusters;clustersChange=new e.bkB;clustersToDisplay=[];datatypeConvertor=[{type:"10",longueur:"0",editable:!1},{type:"20",longueur:"0",editable:!0},{type:"21",longueur:"00",editable:!0},{type:"22",longueur:"000",editable:!0},{type:"23",longueur:"0000",editable:!0},{type:"24",longueur:"00000",editable:!0},{type:"25",longueur:"000000",editable:!0},{type:"26",longueur:"0000000",editable:!0},{type:"27",longueur:"00000000",editable:!0},{type:"28",longueur:"0",editable:!0},{type:"29",longueur:"00",editable:!0},{type:"2a",longueur:"000",editable:!0},{type:"2b",longueur:"0000",editable:!0},{type:"2c",longueur:"00000",editable:!0},{type:"2d",longueur:"000000",editable:!0},{type:"2e",longueur:"0000000",editable:!0},{type:"2f",longueur:"00000000",editable:!0},{type:"38",longueur:"00",editable:!0},{type:"39",longueur:"0000",editable:!0},{type:"3a",longueur:"00000000",editable:!0},{type:"e0",longueur:"0000",editable:!0},{type:"e1",longueur:"0000",editable:!0},{type:"e2",longueur:"0000",editable:!0}];constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnChanges(t){t.clusters.currentValue&&this.formatClusters(t.clusters.currentValue)}formatClusters(t){this.clustersToDisplay=[],t.forEach(o=>{o.Attributes.forEach(n=>{n.Infos.forEach(r=>{const s=new Dt.E0;s.clusterId=o.ClusterId,s.attributeId=n.Attribute,s.change=parseInt(r.Change,16).toString(),s.dataType=r.DataType,s.maxInterval=parseInt(r.MaxInterval,16).toString(),s.minInterval=parseInt(r.MinInterval,16).toString(),s.timeOut=parseInt(r.TimeOut,16).toString(),this.clustersToDisplay.push(s)})})})}updateValue(t,o,n){const r=t.target.value,s=this.clusters.find(a=>a.ClusterId===n.clusterId).Attributes.find(a=>a.Attribute===n.attributeId).Infos[0];if(!this.controlerValue(Number(r),o,s)){if("Change"===o){const a=this.datatypeConvertor.find(d=>d.type===s.DataType);s[o]=(a.longueur+Number(r).toString(16).toUpperCase()).slice(-a.longueur.length)}else s[o]=Number(r).toString(16).toUpperCase();this.formatClusters(this.clusters),this.clustersChange.emit(this.clusters)}}controlerValue(t,o,n){let r=!1;if(isNaN(t))r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.hexa.error"));else if("Change"!==o&&Number(t)>65535)r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"));else if("Change"===o){const s=this.datatypeConvertor.find(d=>d.type===n.DataType),a=s.longueur.split("0").join("F");Number(t)>parseInt(a,16)&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"))),"10"===s.type&&Number(t)>1&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error")))}return r}isEditable(t){const o=this.datatypeConvertor.find(n=>n.type===t.dataType);return o&&o.editable}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-configure-cluster-reporting"]],inputs:{clusters:"clusters"},outputs:{clustersChange:"clustersChange"},features:[e.OA$],decls:9,vars:11,consts:[["dt1",""],["notEditable",""],["responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"],[2,"width","15rem"],[2,"width","7rem"],[2,"width","5rem"],[2,"width","3rem"],["pEditableColumnField","minInterval",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pEditableColumnField","maxInterval",3,"pEditableColumn"],["pEditableColumnField","change",3,"pEditableColumn"],[4,"ngIf","ngIfElse"],["pInputText","","type","text",3,"change","value"]],template:function(o,n){1&o&&(e.j41(0,"p-table",2,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,Nt,32,21,"ng-template",3),e.EFF(5,"\n "),e.DNE(6,Kt,44,9,"ng-template",4),e.EFF(7,"\n"),e.k0s(),e.EFF(8,"\n")),2&o&&(e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,Gt))("value",n.clustersToDisplay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[h.bT,ee.XI,Pt.Ei,ee.hp,ee.c5,Mt.S,v.D9]})}return i})();function Zt(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}function Jt(i,l){if(1&i){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"app-configure-cluster-reporting",16),e.bIt("clustersChange",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onClustersChange(n))}),e.k0s(),e.EFF(3,"\n "),e.bVm()}if(2&i){const t=l.ngIf;e.R7$(2),e.Y8G("clusters",t)}}let Qt=(()=>{class i{toastr;apiService;translate;devices$;clusters$;deviceSelected;form;clustersToSave;permitToValidate=!1;constructor(t,o,n){this.toastr=t,this.apiService=o,this.translate=n}ngOnInit(){this.devices$=this.apiService.getZDevices()}getConfiguration(t){this.deviceSelected=null,t&&(this.deviceSelected=t._NwkId,this.clusters$=this.apiService.getConfigureReporting(this.deviceSelected))}putConfiguration(){this.apiService.putConfigureReporting(this.deviceSelected,this.clustersToSave).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}resetConfiguration(){this.apiService.deleteConfigureReporting(this.deviceSelected).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}triggerConfiguration(){this.apiService.getTriggerConfigureReporting(this.deviceSelected).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}onClustersChange(t){this.permitToValidate=!1,this.clustersToSave=null,t&&(this.permitToValidate=!0,this.clustersToSave=t)}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-configure-reporting"]],decls:50,vars:30,consts:[[1,"col"],[1,"card"],[1,"card-header","d-flex"],[1,"col","fw-bold","justify-content-start"],[1,"col","d-flex","justify-content-end"],[1,"btn","btn-danger",3,"click","disabled","translate"],[1,"btn","btn-secondary","ms-3",3,"click","disabled","translate"],[1,"btn","btn-primary","ms-3",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-3","mb-2"],["bindLabel","ZDeviceName","appendTo","body",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[4,"ngIf"],[3,"clustersChange","clusters"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",4),e.EFF(11,"\n "),e.j41(12,"button",5),e.nI1(13,"translate"),e.bIt("click",function(){return n.resetConfiguration()}),e.k0s(),e.EFF(14,"\n "),e.j41(15,"button",6),e.nI1(16,"translate"),e.bIt("click",function(){return n.triggerConfiguration()}),e.k0s(),e.EFF(17,"\n "),e.j41(18,"button",7),e.nI1(19,"translate"),e.bIt("click",function(){return n.putConfiguration()}),e.k0s(),e.EFF(20,"\n "),e.k0s(),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",8),e.EFF(24,"\n "),e.nrm(25,"p",9),e.nI1(26,"translate"),e.EFF(27,"\n "),e.j41(28,"div",10),e.EFF(29,"\n "),e.j41(30,"div",11),e.EFF(31,"\n "),e.j41(32,"div",12),e.EFF(33,"\n "),e.j41(34,"ng-select",13),e.nI1(35,"translate"),e.nI1(36,"async"),e.bIt("change",function(s){return n.getConfiguration(s)})("clear",function(){return n.deviceSelected=null,n.permitToValidate=!1}),e.EFF(37,"\n "),e.DNE(38,Zt,10,2,"ng-template",14),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.DNE(43,Jt,4,1,"ng-container",15),e.nI1(44,"async"),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n"),e.k0s(),e.EFF(49,"\n")),2&o&&(e.R7$(7),e.JRh(e.bMT(8,14,"tools.reporting.configure.title")),e.R7$(5),e.FS9("translate",e.bMT(13,16,"tools.reporting.configure.reset.button")),e.Y8G("disabled",!n.deviceSelected),e.R7$(3),e.FS9("translate",e.bMT(16,18,"tools.reporting.configure.trigger.button")),e.Y8G("disabled",!n.deviceSelected),e.R7$(3),e.FS9("translate",e.bMT(19,20,"tools.reporting.configure.validate.button")),e.Y8G("disabled",!n.permitToValidate),e.R7$(7),e.Y8G("innerHTML",e.bMT(26,22,"tools.reporting.configure.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(35,24,"tools.reporting.configure.device")),e.Y8G("items",e.bMT(36,26,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(9),e.Y8G("ngIf",e.bMT(44,28,n.deviceSelected&&n.clusters$)))},dependencies:[h.bT,I.vr,I.Uq,v.Mm,Wt,h.Jj,v.D9]})}return i})(),$t=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275cmp=e.VBU({type:i,selectors:[["app-reporting"]],decls:5,vars:0,consts:[[1,"row","row-cols-1","g-4"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"app-configure-reporting"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n"))},dependencies:[Qt]})}return i})();var en=m(27468);function tn(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",15),e.bIt("click",function(){const n=e.eBV(t).ngIf,r=e.XpG();return e.Njj(r.download(n))}),e.k0s()}}function nn(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",16),e.EFF(1,"\n "),e.j41(2,"button",17),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.export(n.json))}),e.k0s(),e.EFF(3,"\n\n "),e.nrm(4,"ngx-json-viewer",18),e.EFF(5,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("hidden",t.isLoading),e.R7$(4),e.Y8G("expanded",!1)("json",t.json)}}let on=(()=>{class i{apiService;fileSaverService;json=null;isLoading=!1;logFile$;constructor(t,o){this.apiService=t,this.fileSaverService=o}ngOnInit(){this.logFile$=this.apiService.getLog()}onClick(t){let o;this.json=null,"devices"===t&&(o=this.apiService.getDevices()),"zdevices"===t&&(o=this.apiService.getZDevices()),"zgroups"===t&&(o=this.apiService.getZGroups()),"zdevice-raw"===t&&(o=this.apiService.getRawZDevices()),"infos"===t&&(o=this.apiService.getPlugin()),"coordinator"===t&&(o=this.apiService.getCoordinator()),"plugin-health"===t&&(o=this.apiService.getPluginhealth()),"zgroup-list-available-device"===t&&(o=this.apiService.getZGroupDevicesAvalaible()),"settings"===t&&(o=this.apiService.getSettings()),"plugin-stat"===t&&(o=this.apiService.getPluginStats()),"zdevice-name"===t&&(o=this.apiService.getZDeviceName()),"domoticz-env"===t&&(o=this.apiService.getDomoticzEnv()),"battery-state"===t&&(o=this.apiService.getBatteryState()),o&&o.pipe((0,ce.j)(()=>{this.isLoading=!1})).subscribe(n=>{this.callbackservice(n)})}getAllNonOptimizedDevice(){this.json=null,this.apiService.getZDeviceName().subscribe(t=>{const o=t.filter(n=>!n.CertifiedDevice).map(n=>this.getNonOptimizedDevice(n._NwkId));(0,en.p)(o).subscribe(n=>this.callbackservice(n))})}getNonOptimizedDevice(t){return this.apiService.getNonOptimizedDevice(t)}download(t){const o=t.Filename;this.apiService.downloadLog(t.URL).subscribe(n=>{this.fileSaverService.save(n.body,o)})}callbackservice(t){const o=JSON.stringify(t);this.json=JSON.parse(o,pe)}export(t){const o="export.json",n=this.fileSaverService.genType(o),r=new Blob([JSON.stringify(t)],{type:n});this.fileSaverService.save(r,o)}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(re))};static \u0275cmp=e.VBU({type:i,selectors:[["app-tools"]],decls:32,vars:4,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.tools.zdevice-raw.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.non-optimized.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-stat.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.coordinator.infos.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","col-lg-2 col-md-4 col-sm-5 btn btn-primary","translate","tools.tools.log.button",3,"click",4,"ngIf"],["translate","tools.tools.infos.plugin.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-health.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.settings.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.domoticz-env.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.battery-state.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zdevice-name.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup-list-available-device.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],["translate","tools.tools.log.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"button",1),e.bIt("click",function(){return n.onClick("zdevice-raw")}),e.k0s(),e.EFF(3,"\n "),e.j41(4,"button",2),e.bIt("click",function(){return n.getAllNonOptimizedDevice()}),e.k0s(),e.EFF(5,"\n "),e.j41(6,"button",3),e.bIt("click",function(){return n.onClick("zgroups")}),e.k0s(),e.EFF(7,"\n "),e.j41(8,"button",4),e.bIt("click",function(){return n.onClick("plugin-stat")}),e.k0s(),e.EFF(9,"\n "),e.j41(10,"button",5),e.bIt("click",function(){return n.onClick("coordinator")}),e.k0s(),e.EFF(11,"\n "),e.DNE(12,tn,1,0,"button",6),e.nI1(13,"async"),e.EFF(14,"\n "),e.j41(15,"button",7),e.bIt("click",function(){return n.onClick("infos")}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",8),e.bIt("click",function(){return n.onClick("plugin-health")}),e.k0s(),e.EFF(18,"\n "),e.j41(19,"button",9),e.bIt("click",function(){return n.onClick("settings")}),e.k0s(),e.EFF(20,"\n "),e.j41(21,"button",10),e.bIt("click",function(){return n.onClick("domoticz-env")}),e.k0s(),e.EFF(22,"\n "),e.j41(23,"button",11),e.bIt("click",function(){return n.onClick("battery-state")}),e.k0s(),e.EFF(24,"\n "),e.j41(25,"button",12),e.bIt("click",function(){return n.onClick("zdevice-name")}),e.k0s(),e.EFF(26,"\n "),e.j41(27,"button",13),e.bIt("click",function(){return n.onClick("zgroup-list-available-device")}),e.k0s(),e.EFF(28,"\n"),e.k0s(),e.EFF(29,"\n"),e.DNE(30,nn,6,3,"div",14),e.EFF(31,"\n")),2&o&&(e.R7$(12),e.Y8G("ngIf",e.bMT(13,2,n.logFile$)),e.R7$(18),e.Y8G("ngIf",n.json))},dependencies:[h.bT,v.Mm,se,h.Jj]})}return i})();const rn=[{path:"command",component:ut,data:{title:(0,V.o6)("command")}},{path:"debug",component:St,data:{title:(0,V.o6)("debug")}},{path:"binding",component:We,data:{title:(0,V.o6)("binding")}},{path:"link",component:on,data:{title:(0,V.o6)("tools")}},{path:"error",component:Vt,data:{title:(0,V.o6)("error")}},{path:"configure",component:$t,data:{title:(0,V.o6)("configure")}}];let sn=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[le.iI.forChild(rn),le.iI]})}return i})(),ln=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[q.G,sn,qe,Pe,Ve]})}return i})()},2578:function(W,Y){var m,e;void 0!==(e="function"==typeof(m=function(){"use strict";function R(u,g,x){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){M(f.response,g,x)},f.onerror=function(){console.error("could not download file")},f.send()}function H(u){var g=new XMLHttpRequest;g.open("HEAD",u,!1);try{g.send()}catch{}return 200<=g.status&&299>=g.status}function P(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(g)}}var y="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,z=y.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),M=y.saveAs||("object"!=typeof window||window!==y?function(){}:"download"in HTMLAnchorElement.prototype&&!z?function(u,g,x){var f=y.URL||y.webkitURL,b=document.createElement("a");b.download=g=g||u.name||"download",b.rel="noopener","string"==typeof u?(b.href=u,b.origin===location.origin?P(b):H(b.href)?R(u,g,x):P(b,b.target="_blank")):(b.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(b.href)},4e4),setTimeout(function(){P(b)},0))}:"msSaveOrOpenBlob"in navigator?function(u,g,x){if(g=g||u.name||"download","string"!=typeof u)navigator.msSaveOrOpenBlob(function h(u,g){return typeof g>"u"?g={autoBom:!1}:"object"!=typeof g&&(console.warn("Deprecated: Expected third argument to be a object"),g={autoBom:!g}),g.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\ufeff",u],{type:u.type}):u}(u,x),g);else if(H(u))R(u,g,x);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){P(f)})}}:function(u,g,x,f){if((f=f||open("","_blank"))&&(f.document.title=f.document.body.innerText="downloading..."),"string"==typeof u)return R(u,g,x);var b="application/octet-stream"===u.type,Z=/constructor/i.test(y.HTMLElement)||y.safari,U=/CriOS\/[\d]+/.test(navigator.userAgent);if((U||b&&Z||z)&&typeof FileReader<"u"){var G=new FileReader;G.onloadend=function(){var S=G.result;S=U?S:S.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=S:location=S,f=null},G.readAsDataURL(u)}else{var L=y.URL||y.webkitURL,N=L.createObjectURL(u);f?f.location=N:location.href=N,f=null,setTimeout(function(){L.revokeObjectURL(N)},4e4)}});y.saveAs=M.saveAs=M,W.exports=M})?m.apply(Y,[]):m)&&(W.exports=e)}}]); \ No newline at end of file +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[846],{2846:(W,Y,m)=>{"use strict";m.r(Y),m.d(Y,{ToolsModule:()=>ln});var q=m(93887),e=m(54438),h=m(60177);const R=["dialogPopup"],H=["hueSlider"],P=["alphaSlider"];function y(i,l){if(1&i&&e.nrm(0,"div"),2&i){const t=e.XpG();e.ZvI("arrow arrow-",t.cpUsePosition,""),e.xc7("left",t.cpArrowPosition)("top",t.arrowTop,"px")}}function z(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",28),e.bIt("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onColorChange(n))})("dragStart",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onDragStart("saturation-lightness"))})("dragEnd",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onDragEnd("saturation-lightness"))}),e.nrm(1,"div",16),e.k0s()}if(2&i){const t=e.XpG();e.xc7("background-color",t.hueSliderColor),e.Y8G("rgX",1)("rgY",1),e.R7$(),e.xc7("top",null==t.slider?null:t.slider.v,"px")("left",null==t.slider?null:t.slider.s,"px")}}function M(i,l){1&i&&(e.qSk(),e.j41(0,"svg",29),e.nrm(1,"path",30)(2,"path",31),e.k0s())}function u(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",32),e.bIt("click",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAddPresetColor(n,r.selectedColor))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG();e.HbH(t.cpAddColorButtonClass),e.Y8G("disabled",t.cpPresetColors&&t.cpPresetColors.length>=t.cpMaxPresetColorsLength),e.R7$(),e.SpI(" ",t.cpAddColorButtonText," ")}}function g(i,l){1&i&&e.nrm(0,"div",33)}function x(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.cmykText?null:t.cmykText.a)}}function f(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function b(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",34)(1,"div",35)(2,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onCyanInput(n))}),e.k0s(),e.j41(3,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onMagentaInput(n))}),e.k0s(),e.j41(4,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onYellowInput(n))}),e.k0s(),e.j41(5,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onBlackInput(n))}),e.k0s(),e.DNE(6,x,1,2,"input",37),e.k0s(),e.j41(7,"div",35)(8,"div"),e.EFF(9,"C"),e.k0s(),e.j41(10,"div"),e.EFF(11,"M"),e.k0s(),e.j41(12,"div"),e.EFF(13,"Y"),e.k0s(),e.j41(14,"div"),e.EFF(15,"K"),e.k0s(),e.DNE(16,f,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",3!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.c),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.m),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.y),e.R7$(),e.Y8G("rg",100)("value",null==t.cmykText?null:t.cmykText.k),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(10),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function Z(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function U(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function G(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",40)(1,"div",35)(2,"input",41),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onHueInput(n))}),e.k0s(),e.j41(3,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onSaturationInput(n))}),e.k0s(),e.j41(4,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onLightnessInput(n))}),e.k0s(),e.DNE(5,Z,1,2,"input",37),e.k0s(),e.j41(6,"div",35)(7,"div"),e.EFF(8,"H"),e.k0s(),e.j41(9,"div"),e.EFF(10,"S"),e.k0s(),e.j41(11,"div"),e.EFF(12,"L"),e.k0s(),e.DNE(13,U,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",2!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",360)("value",null==t.hslaText?null:t.hslaText.h),e.R7$(),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.s),e.R7$(),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(8),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function K(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.rgbaText?null:t.rgbaText.a)}}function N(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function S(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",42)(1,"div",35)(2,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onRedInput(n))}),e.k0s(),e.j41(3,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onGreenInput(n))}),e.k0s(),e.j41(4,"input",43),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onBlueInput(n))}),e.k0s(),e.DNE(5,K,1,2,"input",37),e.k0s(),e.j41(6,"div",35)(7,"div"),e.EFF(8,"R"),e.k0s(),e.j41(9,"div"),e.EFF(10,"G"),e.k0s(),e.j41(11,"div"),e.EFF(12,"B"),e.k0s(),e.DNE(13,N,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",1!==t.format?"none":"block"),e.R7$(2),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.r),e.R7$(),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.g),e.R7$(),e.Y8G("rg",255)("value",null==t.rgbaText?null:t.rgbaText.b),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel),e.R7$(8),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function de(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",t.hexAlpha)}}function ue(i,l){1&i&&(e.j41(0,"div"),e.EFF(1,"A"),e.k0s())}function ge(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",44)(1,"div",35)(2,"input",45),e.bIt("blur",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onHexInput(null))})("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onHexInput(n))}),e.k0s(),e.DNE(3,de,1,2,"input",37),e.k0s(),e.j41(4,"div",35)(5,"div"),e.EFF(6,"Hex"),e.k0s(),e.DNE(7,ue,2,0,"div",38),e.k0s()()}if(2&i){const t=e.XpG();e.xc7("display",0!==t.format?"none":"block"),e.AVh("hex-alpha","forced"===t.cpAlphaChannel),e.R7$(2),e.Y8G("value",t.hexText),e.R7$(),e.Y8G("ngIf","forced"===t.cpAlphaChannel),e.R7$(4),e.Y8G("ngIf","forced"===t.cpAlphaChannel)}}function me(i,l){if(1&i){const t=e.RV6();e.j41(0,"input",39),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAlphaInput(n))}),e.k0s()}if(2&i){const t=e.XpG(2);e.Y8G("rg",1)("value",null==t.hslaText?null:t.hslaText.a)}}function he(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",46)(1,"div",35)(2,"input",36),e.bIt("keyup.enter",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onAcceptColor(n))})("newValue",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onValueInput(n))}),e.k0s(),e.DNE(3,me,1,2,"input",37),e.k0s(),e.j41(4,"div",35)(5,"div"),e.EFF(6,"V"),e.k0s(),e.j41(7,"div"),e.EFF(8,"A"),e.k0s()()()}if(2&i){const t=e.XpG();e.R7$(2),e.Y8G("rg",100)("value",null==t.hslaText?null:t.hslaText.l),e.R7$(),e.Y8G("ngIf","disabled"!==t.cpAlphaChannel)}}function fe(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",47)(1,"span",48),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onFormatToggle(-1))}),e.k0s(),e.j41(2,"span",48),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.onFormatToggle(1))}),e.k0s()()}}function ve(i,l){if(1&i){const t=e.RV6();e.j41(0,"span",55),e.bIt("click",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG(3);return e.Njj(s.onRemovePresetColor(n,r))}),e.k0s()}if(2&i){const t=e.XpG(4);e.HbH(t.cpRemoveColorButtonClass)}}function Ce(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",53),e.bIt("click",function(){const n=e.eBV(t).$implicit,r=e.XpG(3);return e.Njj(r.setColorFromString(n))}),e.DNE(1,ve,1,3,"span",54),e.k0s()}if(2&i){const t=l.$implicit,o=e.XpG(3);e.xc7("background-color",t),e.R7$(),e.Y8G("ngIf",o.cpAddColorButton)}}function Fe(i,l){if(1&i&&(e.j41(0,"div"),e.DNE(1,Ce,2,3,"div",52),e.k0s()),2&i){const t=e.XpG(2);e.HbH(t.cpPresetColorsClass),e.R7$(),e.Y8G("ngForOf",t.cpPresetColors)}}function _e(i,l){if(1&i&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&i){const t=e.XpG(2);e.HbH(t.cpPresetEmptyMessageClass),e.R7$(),e.JRh(t.cpPresetEmptyMessage)}}function be(i,l){if(1&i&&(e.j41(0,"div",49),e.nrm(1,"hr"),e.j41(2,"div",50),e.EFF(3),e.k0s(),e.DNE(4,Fe,2,4,"div",51)(5,_e,2,4,"div",51),e.k0s()),2&i){const t=e.XpG();e.R7$(3),e.JRh(t.cpPresetLabel),e.R7$(),e.Y8G("ngIf",null==t.cpPresetColors?null:t.cpPresetColors.length),e.R7$(),e.Y8G("ngIf",!(null!=t.cpPresetColors&&t.cpPresetColors.length)&&t.cpAddColorButton)}}function ke(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",58),e.bIt("click",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onCancelColor(n))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG(2);e.HbH(t.cpCancelButtonClass),e.R7$(),e.JRh(t.cpCancelButtonText)}}function Ee(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",58),e.bIt("click",function(n){e.eBV(t);const r=e.XpG(2);return e.Njj(r.onAcceptColor(n))}),e.EFF(1),e.k0s()}if(2&i){const t=e.XpG(2);e.HbH(t.cpOKButtonClass),e.R7$(),e.JRh(t.cpOKButtonText)}}function ye(i,l){if(1&i&&(e.j41(0,"div",56),e.DNE(1,ke,2,4,"button",57)(2,Ee,2,4,"button",57),e.k0s()),2&i){const t=e.XpG();e.R7$(),e.Y8G("ngIf",t.cpCancelButton),e.R7$(),e.Y8G("ngIf",t.cpOKButton)}}function xe(i,l){1&i&&e.eu8(0)}function we(i,l){if(1&i&&(e.j41(0,"div",59),e.DNE(1,xe,1,0,"ng-container",60),e.k0s()),2&i){const t=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",t.cpExtraTemplate)}}var k=function(i){return i[i.HEX=0]="HEX",i[i.RGBA=1]="RGBA",i[i.HSLA=2]="HSLA",i[i.CMYK=3]="CMYK",i}(k||{});class j{r;g;b;a;constructor(l,t,o,n){this.r=l,this.g=t,this.b=o,this.a=n}}class L{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}class B{h;s;l;a;constructor(l,t,o,n){this.h=l,this.s=t,this.l=o,this.a=n}}class O{c;m;y;k;a;constructor(l,t,o,n,r=1){this.c=l,this.m=t,this.y=o,this.k=n,this.a=r}}let Te=(()=>{class i{rg;text;newValue=new e.bkB;inputChange(t){const o=t.target.value;if(void 0===this.rg)this.newValue.emit(o);else{const n=parseFloat(o);this.newValue.emit({v:n,rg:this.rg})}}static \u0275fac=function(o){return new(o||i)};static \u0275dir=e.FsC({type:i,selectors:[["","text",""]],hostBindings:function(o,n){1&o&&e.bIt("input",function(s){return n.inputChange(s)})},inputs:{rg:"rg",text:"text"},outputs:{newValue:"newValue"}})}return i})(),Ie=(()=>{class i{elRef;listenerMove;listenerStop;rgX;rgY;slider;dragEnd=new e.bkB;dragStart=new e.bkB;newValue=new e.bkB;mouseDown(t){this.start(t)}touchStart(t){this.start(t)}constructor(t){this.elRef=t,this.listenerMove=o=>this.move(o),this.listenerStop=()=>this.stop()}move(t){t.preventDefault(),this.setCursor(t)}start(t){this.setCursor(t),t.stopPropagation(),document.addEventListener("mouseup",this.listenerStop),document.addEventListener("touchend",this.listenerStop),document.addEventListener("mousemove",this.listenerMove),document.addEventListener("touchmove",this.listenerMove),this.dragStart.emit()}stop(){document.removeEventListener("mouseup",this.listenerStop),document.removeEventListener("touchend",this.listenerStop),document.removeEventListener("mousemove",this.listenerMove),document.removeEventListener("touchmove",this.listenerMove),this.dragEnd.emit()}getX(t){const o=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageX?t.pageX:t.touches[0].pageX)-o.left-window.pageXOffset}getY(t){const o=this.elRef.nativeElement.getBoundingClientRect();return(void 0!==t.pageY?t.pageY:t.touches[0].pageY)-o.top-window.pageYOffset}setCursor(t){const o=this.elRef.nativeElement.offsetWidth,n=this.elRef.nativeElement.offsetHeight,r=Math.max(0,Math.min(this.getX(t),o)),s=Math.max(0,Math.min(this.getY(t),n));void 0!==this.rgX&&void 0!==this.rgY?this.newValue.emit({s:r/o,v:1-s/n,rgX:this.rgX,rgY:this.rgY}):void 0===this.rgX&&void 0!==this.rgY?this.newValue.emit({v:s/n,rgY:this.rgY}):void 0!==this.rgX&&void 0===this.rgY&&this.newValue.emit({v:r/o,rgX:this.rgX})}static \u0275fac=function(o){return new(o||i)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:i,selectors:[["","slider",""]],hostBindings:function(o,n){1&o&&e.bIt("mousedown",function(s){return n.mouseDown(s)})("touchstart",function(s){return n.touchStart(s)})},inputs:{rgX:"rgX",rgY:"rgY",slider:"slider"},outputs:{dragEnd:"dragEnd",dragStart:"dragStart",newValue:"newValue"}})}return i})();class ne{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}class oe{h;s;v;a;constructor(l,t,o,n){this.h=l,this.s=t,this.v=o,this.a=n}}let J=(()=>{class i{active=null;setActive(t){this.active&&this.active!==t&&"inline"!==this.active.cpDialogDisplay&&this.active.closeDialog(),this.active=t}hsva2hsla(t){const o=t.h,n=t.s,r=t.v,s=t.a;if(0===r)return new B(o,0,0,s);if(0===n&&1===r)return new B(o,1,1,s);{const a=r*(2-n)/2;return new B(o,r*n/(1-Math.abs(2*a-1)),a,s)}}hsla2hsva(t){const o=Math.min(t.h,1),n=Math.min(t.s,1),r=Math.min(t.l,1),s=Math.min(t.a,1);if(0===r)return new L(o,0,0,s);{const a=r+n*(1-Math.abs(2*r-1))/2;return new L(o,2*(a-r)/a,a,s)}}hsvaToRgba(t){let o,n,r;const s=t.h,a=t.s,d=t.v,p=t.a,F=Math.floor(6*s),_=6*s-F,C=d*(1-a),E=d*(1-_*a),w=d*(1-(1-_)*a);switch(F%6){case 0:o=d,n=w,r=C;break;case 1:o=E,n=d,r=C;break;case 2:o=C,n=d,r=w;break;case 3:o=C,n=E,r=d;break;case 4:o=w,n=C,r=d;break;case 5:o=d,n=C,r=E;break;default:o=0,n=0,r=0}return new j(o,n,r,p)}cmykToRgb(t){return new j((1-t.c)*(1-t.k),(1-t.m)*(1-t.k),(1-t.y)*(1-t.k),t.a)}rgbaToCmyk(t){const o=1-Math.max(t.r,t.g,t.b);return 1===o?new O(0,0,0,1,t.a):new O((1-t.r-o)/(1-o),(1-t.g-o)/(1-o),(1-t.b-o)/(1-o),o,t.a)}rgbaToHsva(t){let o,n;const r=Math.min(t.r,1),s=Math.min(t.g,1),a=Math.min(t.b,1),d=Math.min(t.a,1),p=Math.max(r,s,a),F=Math.min(r,s,a),_=p,C=p-F;if(n=0===p?0:C/p,p===F)o=0;else{switch(p){case r:o=(s-a)/C+(s{class i{ngZone;elRef;cdRef;document;platformId;service;isIE10=!1;cmyk;hsva;width;height;cmykColor;outputColor;initialColor;fallbackColor;listenerResize;listenerMouseDown;directiveInstance;sliderH;sliderDimMax;directiveElementRef;dialogArrowSize=10;dialogArrowOffset=15;dialogInputFields=[k.HEX,k.RGBA,k.HSLA,k.CMYK];useRootViewContainer=!1;show;hidden;top;left;position;format;slider;hexText;hexAlpha;cmykText;hslaText;rgbaText;arrowTop;selectedColor;hueSliderColor;alphaSliderColor;cpWidth;cpHeight;cpColorMode;cpCmykEnabled;cpAlphaChannel;cpOutputFormat;cpDisableInput;cpDialogDisplay;cpIgnoredElements;cpSaveClickOutside;cpCloseClickOutside;cpPosition;cpUsePosition;cpPositionOffset;cpOKButton;cpOKButtonText;cpOKButtonClass;cpCancelButton;cpCancelButtonText;cpCancelButtonClass;cpEyeDropper;eyeDropperSupported;cpPresetLabel;cpPresetColors;cpPresetColorsClass;cpMaxPresetColorsLength;cpPresetEmptyMessage;cpPresetEmptyMessageClass;cpAddColorButton;cpAddColorButtonText;cpAddColorButtonClass;cpRemoveColorButtonClass;cpArrowPosition;cpTriggerElement;cpExtraTemplate;dialogElement;hueSlider;alphaSlider;handleEsc(t){this.show&&"popup"===this.cpDialogDisplay&&this.onCancelColor(t)}handleEnter(t){this.show&&"popup"===this.cpDialogDisplay&&this.onAcceptColor(t)}constructor(t,o,n,r,s,a){this.ngZone=t,this.elRef=o,this.cdRef=n,this.document=r,this.platformId=s,this.service=a,this.eyeDropperSupported=(0,h.UE)(this.platformId)&&"EyeDropper"in this.document.defaultView}ngOnInit(){this.slider=new ne(0,0,0,0),this.sliderDimMax=new oe(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.format=this.cpCmykEnabled?k.CMYK:"rgba"===this.cpOutputFormat?k.RGBA:"hsla"===this.cpOutputFormat?k.HSLA:k.HEX,this.listenerMouseDown=n=>{this.onMouseDown(n)},this.listenerResize=()=>{this.onResize()},this.openDialog(this.initialColor,!1)}ngOnDestroy(){this.closeDialog()}ngAfterViewInit(){230===this.cpWidth&&"inline"!==this.cpDialogDisplay||(this.sliderDimMax=new oe(this.hueSlider.nativeElement.offsetWidth||140,this.cpWidth,130,this.alphaSlider.nativeElement.offsetWidth||140),this.updateColorPicker(!1),this.cdRef.detectChanges())}openDialog(t,o=!0){this.service.setActive(this),this.width||(this.cpWidth=this.directiveElementRef.nativeElement.offsetWidth),this.height||(this.height=320),this.setInitialColor(t),this.setColorFromString(t,o),this.openColorPicker()}closeDialog(){this.closeColorPicker()}setupDialog(t,o,n,r,s,a,d,p,F,_,C,E,w,te,X,T,an,cn,pn,dn,un,gn,mn,hn,fn,vn,Cn,Fn,_n,bn,kn,En,yn,xn,wn,jn,An,Tn){this.setInitialColor(n),this.setColorMode(p),this.isIE10=10===function Ae(){let i="";typeof navigator<"u"&&(i=navigator.userAgent.toLowerCase());const l=i.indexOf("msie ");return l>0&&parseInt(i.substring(l+5,i.indexOf(".",l)),10)}(),this.directiveInstance=t,this.directiveElementRef=o,this.cpDisableInput=E,this.cpCmykEnabled=F,this.cpAlphaChannel=_,this.cpOutputFormat=C,this.cpDialogDisplay=a,this.cpIgnoredElements=w,this.cpSaveClickOutside=te,this.cpCloseClickOutside=X,this.useRootViewContainer=T,this.width=this.cpWidth=parseInt(r,10),this.height=this.cpHeight=parseInt(s,10),this.cpPosition=an,this.cpPositionOffset=parseInt(cn,10),this.cpOKButton=vn,this.cpOKButtonText=Fn,this.cpOKButtonClass=Cn,this.cpCancelButton=_n,this.cpCancelButtonText=kn,this.cpCancelButtonClass=bn,this.cpEyeDropper=jn,this.fallbackColor=d||"#fff",this.setPresetConfig(dn,un),this.cpPresetColorsClass=gn,this.cpMaxPresetColorsLength=mn,this.cpPresetEmptyMessage=hn,this.cpPresetEmptyMessageClass=fn,this.cpAddColorButton=En,this.cpAddColorButtonText=xn,this.cpAddColorButtonClass=yn,this.cpRemoveColorButtonClass=wn,this.cpTriggerElement=An,this.cpExtraTemplate=Tn,pn||(this.dialogArrowOffset=0),"inline"===a&&(this.dialogArrowSize=0,this.dialogArrowOffset=0),"hex"===C&&"always"!==_&&"forced"!==_&&(this.cpAlphaChannel="disabled")}setColorMode(t){switch(t.toString().toUpperCase()){case"1":case"C":case"COLOR":default:this.cpColorMode=1;break;case"2":case"G":case"GRAYSCALE":this.cpColorMode=2;break;case"3":case"P":case"PRESETS":this.cpColorMode=3}}setInitialColor(t){this.initialColor=t}setPresetConfig(t,o){this.cpPresetLabel=t,this.cpPresetColors=o}setColorFromString(t,o=!0,n=!0){let r;"always"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel?(r=this.service.stringToHsva(t,!0),!r&&!this.hsva&&(r=this.service.stringToHsva(t,!1))):r=this.service.stringToHsva(t,!1),!r&&!this.hsva&&(r=this.service.stringToHsva(this.fallbackColor,!1)),r&&(this.hsva=r,this.sliderH=this.hsva.h,"hex"===this.cpOutputFormat&&"disabled"===this.cpAlphaChannel&&(this.hsva.a=1),this.updateColorPicker(o,n))}onResize(){"fixed"===this.position?this.setDialogPosition():"inline"!==this.cpDialogDisplay&&this.closeColorPicker()}onDragEnd(t){this.directiveInstance.sliderDragEnd({slider:t,color:this.outputColor})}onDragStart(t){this.directiveInstance.sliderDragStart({slider:t,color:this.outputColor})}onMouseDown(t){this.show&&!this.isIE10&&"popup"===this.cpDialogDisplay&&t.target!==this.directiveElementRef.nativeElement&&!this.isDescendant(this.elRef.nativeElement,t.target)&&!this.isDescendant(this.directiveElementRef.nativeElement,t.target)&&0===this.cpIgnoredElements.filter(o=>o===t.target).length&&this.ngZone.run(()=>{this.cpSaveClickOutside?this.directiveInstance.colorSelected(this.outputColor):(this.hsva=null,this.setColorFromString(this.initialColor,!1),this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor),this.directiveInstance.colorCanceled()),this.cpCloseClickOutside&&this.closeColorPicker()})}onAcceptColor(t){t.stopPropagation(),this.outputColor&&this.directiveInstance.colorSelected(this.outputColor),"popup"===this.cpDialogDisplay&&this.closeColorPicker()}onCancelColor(t){this.hsva=null,t.stopPropagation(),this.directiveInstance.colorCanceled(),this.setColorFromString(this.initialColor,!0),"popup"===this.cpDialogDisplay&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.initialColor,!0),this.closeColorPicker())}onEyeDropper(){this.eyeDropperSupported&&(new window.EyeDropper).open().then(o=>{this.setColorFromString(o.sRGBHex,!0)})}onFormatToggle(t){const o=this.dialogInputFields.length-(this.cpCmykEnabled?0:1),n=((this.dialogInputFields.indexOf(this.format)+t)%o+o)%o;this.format=this.dialogInputFields[n]}onColorChange(t){this.hsva.s=t.s/t.rgX,this.hsva.v=t.v/t.rgY,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"lightness",value:this.hsva.v,color:this.outputColor}),this.directiveInstance.sliderChanged({slider:"saturation",value:this.hsva.s,color:this.outputColor})}onHueChange(t){this.hsva.h=t.v/t.rgX,this.sliderH=this.hsva.h,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"hue",value:this.hsva.h,color:this.outputColor})}onValueChange(t){this.hsva.v=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"value",value:this.hsva.v,color:this.outputColor})}onAlphaChange(t){this.hsva.a=t.v/t.rgX,this.updateColorPicker(),this.directiveInstance.sliderChanged({slider:"alpha",value:this.hsva.a,color:this.outputColor})}onHexInput(t){if(null===t)this.updateColorPicker();else{t&&"#"!==t[0]&&(t="#"+t);let o=/^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;"always"===this.cpAlphaChannel&&(o=/^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi);const n=o.test(t);n&&(t.length<5&&(t="#"+t.substring(1).split("").map(r=>r+r).join("")),"forced"===this.cpAlphaChannel&&(t+=Math.round(255*this.hsva.a).toString(16)),this.setColorFromString(t,!0,!1)),this.directiveInstance.inputChanged({input:"hex",valid:n,value:t,color:this.outputColor})}}onRedInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.r=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"red",valid:n,value:o.r,color:this.outputColor})}onBlueInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.b=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"blue",valid:n,value:o.b,color:this.outputColor})}onGreenInput(t){const o=this.service.hsvaToRgba(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.g=t.v/t.rg,this.hsva=this.service.rgbaToHsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"green",valid:n,value:o.g,color:this.outputColor})}onHueInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.h=t.v/t.rg,this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"hue",valid:o,value:this.hsva.h,color:this.outputColor})}onValueInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.v=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"value",valid:o,value:this.hsva.v,color:this.outputColor})}onAlphaInput(t){const o=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;o&&(this.hsva.a=t.v/t.rg,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"alpha",valid:o,value:this.hsva.a,color:this.outputColor})}onLightnessInput(t){const o=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.l=t.v/t.rg,this.hsva=this.service.hsla2hsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"lightness",valid:n,value:o.l,color:this.outputColor})}onSaturationInput(t){const o=this.service.hsva2hsla(this.hsva),n=!isNaN(t.v)&&t.v>=0&&t.v<=t.rg;n&&(o.s=t.v/t.rg,this.hsva=this.service.hsla2hsva(o),this.sliderH=this.hsva.h,this.updateColorPicker()),this.directiveInstance.inputChanged({input:"saturation",valid:n,value:o.s,color:this.outputColor})}onCyanInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.c=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"cyan",valid:!0,value:this.cmyk.c,color:this.outputColor})}onMagentaInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.m=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"magenta",valid:!0,value:this.cmyk.m,color:this.outputColor})}onYellowInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.y=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"yellow",valid:!0,value:this.cmyk.y,color:this.outputColor})}onBlackInput(t){!isNaN(t.v)&&t.v>=0&&t.v<=t.rg&&(this.cmyk.k=t.v,this.updateColorPicker(!1,!0,!0)),this.directiveInstance.inputChanged({input:"black",valid:!0,value:this.cmyk.k,color:this.outputColor})}onAddPresetColor(t,o){t.stopPropagation(),this.cpPresetColors.filter(n=>n===o).length||(this.cpPresetColors=this.cpPresetColors.concat(o),this.directiveInstance.presetColorsChanged(this.cpPresetColors))}onRemovePresetColor(t,o){t.stopPropagation(),this.cpPresetColors=this.cpPresetColors.filter(n=>n!==o),this.directiveInstance.presetColorsChanged(this.cpPresetColors)}openColorPicker(){this.show||(this.show=!0,this.hidden=!0,setTimeout(()=>{this.hidden=!1,this.setDialogPosition(),this.cdRef.detectChanges()},0),this.directiveInstance.stateChanged(!0),this.isIE10||this.ngZone.runOutsideAngular(()=>{ie?document.addEventListener("touchstart",this.listenerMouseDown):document.addEventListener("mousedown",this.listenerMouseDown)}),window.addEventListener("resize",this.listenerResize))}closeColorPicker(){this.show&&(this.show=!1,this.directiveInstance.stateChanged(!1),this.isIE10||(ie?document.removeEventListener("touchstart",this.listenerMouseDown):document.removeEventListener("mousedown",this.listenerMouseDown)),window.removeEventListener("resize",this.listenerResize),this.cdRef.destroyed||this.cdRef.detectChanges())}updateColorPicker(t=!0,o=!0,n=!1){if(this.sliderDimMax){let r,s,a;2===this.cpColorMode&&(this.hsva.s=0);const d=this.outputColor;if(s=this.service.hsva2hsla(this.hsva),this.cpCmykEnabled?(n?(a=this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk)),this.hsva=this.service.rgbaToHsva(a)):(a=this.service.hsvaToRgba(this.hsva),this.cmyk=this.service.denormalizeCMYK(this.service.rgbaToCmyk(a))),a=this.service.denormalizeRGBA(a),this.sliderH=this.hsva.h):a=this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva)),r=this.service.denormalizeRGBA(this.service.hsvaToRgba(new L(this.sliderH||this.hsva.h,1,1,1))),o&&(this.hslaText=new B(Math.round(360*s.h),Math.round(100*s.s),Math.round(100*s.l),Math.round(100*s.a)/100),this.rgbaText=new j(a.r,a.g,a.b,Math.round(100*a.a)/100),this.cpCmykEnabled&&(this.cmykText=new O(this.cmyk.c,this.cmyk.m,this.cmyk.y,this.cmyk.k,Math.round(100*this.cmyk.a)/100)),this.hexText=this.service.rgbaToHex(a,"always"===this.cpAlphaChannel),this.hexAlpha=this.rgbaText.a),"auto"===this.cpOutputFormat&&this.format!==k.RGBA&&this.format!==k.CMYK&&this.format!==k.HSLA&&this.hsva.a<1&&(this.format=this.hsva.a<1?k.RGBA:k.HEX),this.hueSliderColor="rgb("+r.r+","+r.g+","+r.b+")",this.alphaSliderColor="rgb("+a.r+","+a.g+","+a.b+")",this.outputColor=this.service.outputFormat(this.hsva,this.cpOutputFormat,this.cpAlphaChannel),this.selectedColor=this.service.outputFormat(this.hsva,"rgba",null),this.format!==k.CMYK)this.cmykColor="";else if("always"===this.cpAlphaChannel||"enabled"===this.cpAlphaChannel||"forced"===this.cpAlphaChannel){const p=Math.round(100*this.cmyk.a)/100;this.cmykColor=`cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${p})`}else this.cmykColor=`cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;this.slider=new ne((this.sliderH||this.hsva.h)*this.sliderDimMax.h-8,this.hsva.s*this.sliderDimMax.s-8,(1-this.hsva.v)*this.sliderDimMax.v-8,this.hsva.a*this.sliderDimMax.a-8),t&&d!==this.outputColor&&(this.cpCmykEnabled&&this.directiveInstance.cmykChanged(this.cmykColor),this.directiveInstance.colorChanged(this.outputColor))}}setDialogPosition(){if("inline"===this.cpDialogDisplay)this.position="relative";else{let n,t="static",o="",r=null,s=null,a=this.directiveElementRef.nativeElement.parentNode;const d=this.dialogElement.nativeElement.offsetHeight;for(;null!==a&&"HTML"!==a.tagName;){if(n=window.getComputedStyle(a),t=n.getPropertyValue("position"),o=n.getPropertyValue("transform"),"static"!==t&&null===r&&(r=a),o&&"none"!==o&&null===s&&(s=a),"fixed"===t){r=s;break}a=a.parentNode}const p=this.createDialogBox(this.directiveElementRef.nativeElement,"fixed"!==t);if(this.useRootViewContainer||"fixed"===t&&(!r||r instanceof HTMLUnknownElement))this.top=p.top,this.left=p.left;else{null===r&&(r=a);const T=this.createDialogBox(r,"fixed"!==t);this.top=p.top-T.top,this.left=p.left-T.left}"fixed"===t&&(this.position="fixed");let F=this.cpPosition;const _=this.dialogElement.nativeElement.getBoundingClientRect();switch("auto"===this.cpPosition&&(F=function je(i,l){let t="right",o="bottom";const{height:n,width:r}=i,{top:s,left:a}=l,d=s+l.height,p=a+l.width,F=s-n<0,_=d+n>(window.innerHeight||document.documentElement.clientHeight),C=a-r<0,E=p+r>(window.innerWidth||document.documentElement.clientWidth);return _&&(o="top"),F&&(o="bottom"),C&&(t="right"),E&&(t="left"),F&&_&&C&&E?["left","right","top","bottom"].reduce((X,T)=>i[X]>i[T]?X:T):C&&E?F?"bottom":_||s>d?"top":"bottom":F&&_?C?"right":E||a>p?"left":"right":`${o}-${t}`}(_,this.cpTriggerElement.nativeElement.getBoundingClientRect())),this.arrowTop="top"===F?d-1:void 0,this.cpArrowPosition=void 0,F){case"top":this.top-=d+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*p.width-this.dialogArrowOffset;break;case"bottom":this.top+=p.height+this.dialogArrowSize,this.left+=this.cpPositionOffset/100*p.width-this.dialogArrowOffset;break;case"top-left":case"left-top":this.top-=d-p.height+p.height*this.cpPositionOffset/100,this.left-=this.cpWidth+this.dialogArrowSize-2-this.dialogArrowOffset;break;case"top-right":case"right-top":this.top-=d-p.height+p.height*this.cpPositionOffset/100,this.left+=p.width+this.dialogArrowSize-2-this.dialogArrowOffset;break;case"left":case"bottom-left":case"left-bottom":this.top+=p.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left-=this.cpWidth+this.dialogArrowSize-2;break;default:this.top+=p.height*this.cpPositionOffset/100-this.dialogArrowOffset,this.left+=p.width+this.dialogArrowSize-2}const C=window.innerHeight,E=window.innerWidth,w=this.elRef.nativeElement.getBoundingClientRect();this.top+_.height>C&&(this.top=C-_.height,this.cpArrowPosition=w.x/2-20),this.left+_.width>E&&(this.left=E-_.width,this.cpArrowPosition=w.x/2-20),this.cpUsePosition=F}}isDescendant(t,o){let n=o.parentNode;for(;null!==n;){if(n===t)return!0;n=n.parentNode}return!1}createDialogBox(t,o){const{top:n,left:r}=t.getBoundingClientRect();return{top:n+(o?window.pageYOffset:0),left:r+(o?window.pageXOffset:0),width:t.offsetWidth,height:t.offsetHeight}}static \u0275fac=function(o){return new(o||i)(e.rXU(e.SKi),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(h.qQ),e.rXU(e.Agw),e.rXU(J))};static \u0275cmp=e.VBU({type:i,selectors:[["color-picker"]],viewQuery:function(o,n){if(1&o&&(e.GBs(R,7),e.GBs(H,7),e.GBs(P,7)),2&o){let r;e.mGM(r=e.lsd())&&(n.dialogElement=r.first),e.mGM(r=e.lsd())&&(n.hueSlider=r.first),e.mGM(r=e.lsd())&&(n.alphaSlider=r.first)}},hostBindings:function(o,n){1&o&&e.bIt("keyup.esc",function(s){return n.handleEsc(s)},!1,e.EBC)("keyup.enter",function(s){return n.handleEnter(s)},!1,e.EBC)},decls:30,vars:51,consts:[["dialogPopup",""],["hueSlider",""],["valueSlider",""],["alphaSlider",""],[1,"color-picker",3,"click"],[3,"left","class","top",4,"ngIf"],["class","saturation-lightness",3,"slider","rgX","rgY","background-color","newValue","dragStart","dragEnd",4,"ngIf"],[1,"hue-alpha","box"],[1,"left"],[1,"selected-color-background"],[1,"selected-color",3,"click"],["class","eyedropper-icon","xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",4,"ngIf"],["type","button",3,"class","disabled","click",4,"ngIf"],[1,"right"],["style","height: 16px;",4,"ngIf"],[1,"hue",3,"newValue","dragStart","dragEnd","slider","rgX"],[1,"cursor"],[1,"value",3,"newValue","dragStart","dragEnd","slider","rgX"],[1,"alpha",3,"newValue","dragStart","dragEnd","slider","rgX"],["class","cmyk-text",3,"display",4,"ngIf"],["class","hsla-text",3,"display",4,"ngIf"],["class","rgba-text",3,"display",4,"ngIf"],["class","hex-text",3,"hex-alpha","display",4,"ngIf"],["class","value-text",4,"ngIf"],["class","type-policy",4,"ngIf"],["class","preset-area",4,"ngIf"],["class","button-area",4,"ngIf"],["class","extra-template",4,"ngIf"],[1,"saturation-lightness",3,"newValue","dragStart","dragEnd","slider","rgX","rgY"],["xmlns","http://www.w3.org/2000/svg","height","24px","viewBox","0 0 24 24","width","24px","fill","#000000",1,"eyedropper-icon"],["d","M0 0h24v24H0V0z","fill","none"],["d","M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"],["type","button",3,"click","disabled"],[2,"height","16px"],[1,"cmyk-text"],[1,"box"],["type","number","pattern","[0-9]*","min","0","max","100",3,"keyup.enter","newValue","text","rg","value"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"text","rg","value","keyup.enter","newValue",4,"ngIf"],[4,"ngIf"],["type","number","pattern","[0-9]+([\\.,][0-9]{1,2})?","min","0","max","1","step","0.1",3,"keyup.enter","newValue","text","rg","value"],[1,"hsla-text"],["type","number","pattern","[0-9]*","min","0","max","360",3,"keyup.enter","newValue","text","rg","value"],[1,"rgba-text"],["type","number","pattern","[0-9]*","min","0","max","255",3,"keyup.enter","newValue","text","rg","value"],[1,"hex-text"],[3,"blur","keyup.enter","newValue","text","value"],[1,"value-text"],[1,"type-policy"],[1,"type-policy-arrow",3,"click"],[1,"preset-area"],[1,"preset-label"],[3,"class",4,"ngIf"],["class","preset-color",3,"backgroundColor","click",4,"ngFor","ngForOf"],[1,"preset-color",3,"click"],[3,"class","click",4,"ngIf"],[3,"click"],[1,"button-area"],["type","button",3,"class","click",4,"ngIf"],["type","button",3,"click"],[1,"extra-template"],[4,"ngTemplateOutlet"]],template:function(o,n){if(1&o){const r=e.RV6();e.j41(0,"div",4,0),e.bIt("click",function(a){return e.eBV(r),e.Njj(a.stopPropagation())}),e.DNE(2,y,1,7,"div",5)(3,z,2,8,"div",6),e.j41(4,"div",7)(5,"div",8),e.nrm(6,"div",9),e.j41(7,"div",10),e.bIt("click",function(){return e.eBV(r),e.Njj(n.eyeDropperSupported&&n.cpEyeDropper&&n.onEyeDropper())}),e.DNE(8,M,3,0,"svg",11),e.k0s(),e.DNE(9,u,2,5,"button",12),e.k0s(),e.j41(10,"div",13),e.DNE(11,g,1,0,"div",14),e.j41(12,"div",15,1),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onHueChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("hue"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("hue"))}),e.nrm(14,"div",16),e.k0s(),e.j41(15,"div",17,2),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onValueChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("value"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("value"))}),e.nrm(17,"div",16),e.k0s(),e.j41(18,"div",18,3),e.bIt("newValue",function(a){return e.eBV(r),e.Njj(n.onAlphaChange(a))})("dragStart",function(){return e.eBV(r),e.Njj(n.onDragStart("alpha"))})("dragEnd",function(){return e.eBV(r),e.Njj(n.onDragEnd("alpha"))}),e.nrm(20,"div",16),e.k0s()()(),e.DNE(21,b,17,12,"div",19)(22,G,14,10,"div",20)(23,S,14,10,"div",21)(24,ge,8,7,"div",22)(25,he,9,3,"div",23)(26,fe,3,0,"div",24)(27,be,6,3,"div",25)(28,ye,3,2,"div",26)(29,we,2,1,"div",27),e.k0s()}2&o&&(e.xc7("display",n.show?"block":"none")("visibility",n.hidden?"hidden":"visible")("top",n.top,"px")("left",n.left,"px")("position",n.position)("height",n.cpHeight,"px")("width",n.cpWidth,"px"),e.AVh("open",n.show),e.R7$(2),e.Y8G("ngIf","popup"===n.cpDialogDisplay),e.R7$(),e.Y8G("ngIf",1===(n.cpColorMode||1)),e.R7$(4),e.xc7("background-color",n.selectedColor)("cursor",n.eyeDropperSupported&&n.cpEyeDropper?"pointer":null),e.R7$(),e.Y8G("ngIf",n.eyeDropperSupported&&n.cpEyeDropper),e.R7$(),e.Y8G("ngIf",n.cpAddColorButton),e.R7$(2),e.Y8G("ngIf","disabled"===n.cpAlphaChannel),e.R7$(),e.xc7("display",1===(n.cpColorMode||1)?"block":"none"),e.Y8G("rgX",1),e.R7$(2),e.xc7("left",null==n.slider?null:n.slider.h,"px"),e.R7$(),e.xc7("display",2===(n.cpColorMode||1)?"block":"none"),e.Y8G("rgX",1),e.R7$(2),e.xc7("right",null==n.slider?null:n.slider.v,"px"),e.R7$(),e.xc7("display","disabled"===n.cpAlphaChannel?"none":"block")("background-color",n.alphaSliderColor),e.Y8G("rgX",1),e.R7$(2),e.xc7("left",null==n.slider?null:n.slider.a,"px"),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&2===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",!n.cpDisableInput&&1===(n.cpColorMode||1)),e.R7$(),e.Y8G("ngIf",(null==n.cpPresetColors?null:n.cpPresetColors.length)||n.cpAddColorButton),e.R7$(),e.Y8G("ngIf",n.cpOKButton||n.cpCancelButton),e.R7$(),e.Y8G("ngIf",n.cpExtraTemplate))},dependencies:[h.Sq,h.bT,h.T3,Te,Ie],styles:['.color-picker{position:absolute;z-index:1000;width:230px;height:auto;border:#777 solid 1px;cursor:default;-webkit-user-select:none;user-select:none;background-color:#fff}.color-picker *{box-sizing:border-box;margin:0;font-size:11px}.color-picker input{width:0;height:26px;min-width:0;font-size:13px;text-align:center;color:#000}.color-picker input:invalid,.color-picker input:-moz-ui-invalid,.color-picker input:-moz-submit-invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.color-picker .arrow{position:absolute;z-index:999999;width:0;height:0;border-style:solid}.color-picker .arrow.arrow-top{left:8px;border-width:10px 5px;border-color:#777 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-bottom{top:-20px;left:8px;border-width:10px 5px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #777 rgba(0,0,0,0)}.color-picker .arrow.arrow-top-left,.color-picker .arrow.arrow-left-top{right:-21px;bottom:8px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-top-right,.color-picker .arrow.arrow-right-top{bottom:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom,.color-picker .arrow.arrow-bottom-left{top:8px;right:-21px;border-width:5px 10px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #777}.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom,.color-picker .arrow.arrow-bottom-right{top:8px;left:-20px;border-width:5px 10px;border-color:rgba(0,0,0,0) #777 rgba(0,0,0,0) rgba(0,0,0,0)}.color-picker .cursor{position:relative;width:16px;height:16px;border:#222 solid 2px;border-radius:50%;cursor:default}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{position:relative;padding:16px 8px}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{overflow:hidden;width:100%;padding:4px;font-size:11px;white-space:nowrap;text-align:left;text-overflow:ellipsis;color:#555}.color-picker .preset-area .preset-color{position:relative;display:inline-block;width:18px;height:18px;margin:4px 6px 8px;border:#a9a9a9 solid 1px;border-radius:25%;cursor:pointer}.color-picker .preset-area .preset-empty-message{min-height:18px;margin-top:4px;margin-bottom:8px;font-style:italic;text-align:center}.color-picker .hex-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{float:left;flex:1 1 auto;text-align:center;color:#555;clear:left}.color-picker .hex-text .box input{flex:1 1 auto;padding:1px;border:#a9a9a9 solid 1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{width:100%;padding:4px 8px;font-size:11px}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{flex:1 1 auto;margin-right:8px;text-align:center;color:#555}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{float:left;flex:1;padding:1px;margin:0 8px 0 0;border:#a9a9a9 solid 1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{direction:ltr;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC)}.color-picker .value{direction:rtl;width:100%;height:16px;margin-bottom:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=)}.color-picker .alpha{direction:ltr;width:100%;height:16px;border:none;cursor:pointer;background-size:100% 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==)}.color-picker .type-policy{position:absolute;top:218px;right:12px;width:16px;height:24px;background-size:8px 16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:center}.color-picker .type-policy .type-policy-arrow{display:block;width:100%;height:50%}.color-picker .selected-color{position:absolute;top:16px;left:8px;width:40px;height:40px;border:1px solid #a9a9a9;border-radius:50%}.color-picker .selected-color-background{width:40px;height:40px;border-radius:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC)}.color-picker .saturation-lightness{direction:ltr;width:100%;height:130px;border:none;cursor:pointer;touch-action:manipulation;background-size:100% 100%;background-image:url(data:image/png;base64,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)}.color-picker .cp-add-color-button-class{position:absolute;display:inline;padding:0;margin:3px -3px;border:0;cursor:pointer;background:transparent}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{cursor:not-allowed;color:#999}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{position:absolute;top:-5px;right:-5px;display:block;width:10px;height:10px;border-radius:50%;cursor:pointer;text-align:center;background:#fff;box-shadow:1px 1px 5px #333}.color-picker .cp-remove-color-button-class:before{content:"x";position:relative;bottom:3.5px;display:inline-block;font-size:10px}.color-picker .eyedropper-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);fill:#fff;mix-blend-mode:exclusion}\n'],encapsulation:2})}return i})(),Be=(()=>{class i{injector;cfr;appRef;vcRef;elRef;_service;dialog;dialogCreated=!1;ignoreChanges=!1;cmpRef;viewAttachedToAppRef=!1;colorPicker;cpWidth="230px";cpHeight="auto";cpToggle=!1;cpDisabled=!1;cpIgnoredElements=[];cpFallbackColor="";cpColorMode="color";cpCmykEnabled=!1;cpOutputFormat="auto";cpAlphaChannel="enabled";cpDisableInput=!1;cpDialogDisplay="popup";cpSaveClickOutside=!0;cpCloseClickOutside=!0;cpUseRootViewContainer=!1;cpPosition="auto";cpPositionOffset="0%";cpPositionRelativeToArrow=!1;cpOKButton=!1;cpOKButtonText="OK";cpOKButtonClass="cp-ok-button-class";cpCancelButton=!1;cpCancelButtonText="Cancel";cpCancelButtonClass="cp-cancel-button-class";cpEyeDropper=!1;cpPresetLabel="Preset colors";cpPresetColors;cpPresetColorsClass="cp-preset-colors-class";cpMaxPresetColorsLength=6;cpPresetEmptyMessage="No colors added";cpPresetEmptyMessageClass="preset-empty-message";cpAddColorButton=!1;cpAddColorButtonText="Add color";cpAddColorButtonClass="cp-add-color-button-class";cpRemoveColorButtonClass="cp-remove-color-button-class";cpArrowPosition=0;cpExtraTemplate;cpInputChange=new e.bkB(!0);cpToggleChange=new e.bkB(!0);cpSliderChange=new e.bkB(!0);cpSliderDragEnd=new e.bkB(!0);cpSliderDragStart=new e.bkB(!0);colorPickerOpen=new e.bkB(!0);colorPickerClose=new e.bkB(!0);colorPickerCancel=new e.bkB(!0);colorPickerSelect=new e.bkB(!0);colorPickerChange=new e.bkB(!1);cpCmykColorChange=new e.bkB(!0);cpPresetColorsChange=new e.bkB(!0);handleClick(){this.inputFocus()}handleFocus(){this.inputFocus()}handleInput(t){this.inputChange(t)}constructor(t,o,n,r,s,a){this.injector=t,this.cfr=o,this.appRef=n,this.vcRef=r,this.elRef=s,this._service=a}ngOnDestroy(){null!=this.cmpRef&&(this.viewAttachedToAppRef&&this.appRef.detachView(this.cmpRef.hostView),this.cmpRef.destroy(),this.cmpRef=null,this.dialog=null)}ngOnChanges(t){t.cpToggle&&!this.cpDisabled&&(t.cpToggle.currentValue?this.openDialog():t.cpToggle.currentValue||this.closeDialog()),t.colorPicker&&(this.dialog&&!this.ignoreChanges&&("inline"===this.cpDialogDisplay&&this.dialog.setInitialColor(t.colorPicker.currentValue),this.dialog.setColorFromString(t.colorPicker.currentValue,!1),this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay&&this.cmpRef.changeDetectorRef.detectChanges()),this.ignoreChanges=!1),(t.cpPresetLabel||t.cpPresetColors)&&this.dialog&&this.dialog.setPresetConfig(this.cpPresetLabel,this.cpPresetColors)}openDialog(){if(this.dialogCreated)this.dialog&&this.dialog.openDialog(this.colorPicker);else{let t=this.vcRef;if(this.dialogCreated=!0,this.viewAttachedToAppRef=!1,this.cpUseRootViewContainer&&"inline"!==this.cpDialogDisplay){const r=this.injector.get(this.appRef.componentTypes[0],e.zZn.NULL);r!==e.zZn.NULL?t=r.vcRef||r.viewContainerRef||this.vcRef:this.viewAttachedToAppRef=!0}const o=this.cfr.resolveComponentFactory(Re);if(this.viewAttachedToAppRef)this.cmpRef=o.create(this.injector),this.appRef.attachView(this.cmpRef.hostView),document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);else{const n=e.zZn.create({providers:[],parent:t.injector});this.cmpRef=t.createComponent(o,0,n,[])}this.cmpRef.instance.setupDialog(this,this.elRef,this.colorPicker,this.cpWidth,this.cpHeight,this.cpDialogDisplay,this.cpFallbackColor,this.cpColorMode,this.cpCmykEnabled,this.cpAlphaChannel,this.cpOutputFormat,this.cpDisableInput,this.cpIgnoredElements,this.cpSaveClickOutside,this.cpCloseClickOutside,this.cpUseRootViewContainer,this.cpPosition,this.cpPositionOffset,this.cpPositionRelativeToArrow,this.cpPresetLabel,this.cpPresetColors,this.cpPresetColorsClass,this.cpMaxPresetColorsLength,this.cpPresetEmptyMessage,this.cpPresetEmptyMessageClass,this.cpOKButton,this.cpOKButtonClass,this.cpOKButtonText,this.cpCancelButton,this.cpCancelButtonClass,this.cpCancelButtonText,this.cpAddColorButton,this.cpAddColorButtonClass,this.cpAddColorButtonText,this.cpRemoveColorButtonClass,this.cpEyeDropper,this.elRef,this.cpExtraTemplate),this.dialog=this.cmpRef.instance,this.vcRef!==t&&this.cmpRef.changeDetectorRef.detectChanges()}}closeDialog(){this.dialog&&"popup"===this.cpDialogDisplay&&this.dialog.closeDialog()}cmykChanged(t){this.cpCmykColorChange.emit(t)}stateChanged(t){this.cpToggleChange.emit(t),t?this.colorPickerOpen.emit(this.colorPicker):this.colorPickerClose.emit(this.colorPicker)}colorChanged(t,o=!0){this.ignoreChanges=o,this.colorPickerChange.emit(t)}colorSelected(t){this.colorPickerSelect.emit(t)}colorCanceled(){this.colorPickerCancel.emit()}inputFocus(){const t=this.elRef.nativeElement,o=this.cpIgnoredElements.filter(n=>n===t);!this.cpDisabled&&!o.length&&(typeof document<"u"&&t===document.activeElement?this.openDialog():this.dialog&&this.dialog.show?this.closeDialog():this.openDialog())}inputChange(t){this.dialog?this.dialog.setColorFromString(t.target.value,!0):(this.colorPicker=t.target.value,this.colorPickerChange.emit(this.colorPicker))}inputChanged(t){this.cpInputChange.emit(t)}sliderChanged(t){this.cpSliderChange.emit(t)}sliderDragEnd(t){this.cpSliderDragEnd.emit(t)}sliderDragStart(t){this.cpSliderDragStart.emit(t)}presetColorsChanged(t){this.cpPresetColorsChange.emit(t)}static \u0275fac=function(o){return new(o||i)(e.rXU(e.zZn),e.rXU(e.OM3),e.rXU(e.o8S),e.rXU(e.c1b),e.rXU(e.aKT),e.rXU(J))};static \u0275dir=e.FsC({type:i,selectors:[["","colorPicker",""]],hostBindings:function(o,n){1&o&&e.bIt("click",function(){return n.handleClick()})("focus",function(){return n.handleFocus()})("input",function(s){return n.handleInput(s)})},inputs:{colorPicker:"colorPicker",cpWidth:"cpWidth",cpHeight:"cpHeight",cpToggle:"cpToggle",cpDisabled:"cpDisabled",cpIgnoredElements:"cpIgnoredElements",cpFallbackColor:"cpFallbackColor",cpColorMode:"cpColorMode",cpCmykEnabled:"cpCmykEnabled",cpOutputFormat:"cpOutputFormat",cpAlphaChannel:"cpAlphaChannel",cpDisableInput:"cpDisableInput",cpDialogDisplay:"cpDialogDisplay",cpSaveClickOutside:"cpSaveClickOutside",cpCloseClickOutside:"cpCloseClickOutside",cpUseRootViewContainer:"cpUseRootViewContainer",cpPosition:"cpPosition",cpPositionOffset:"cpPositionOffset",cpPositionRelativeToArrow:"cpPositionRelativeToArrow",cpOKButton:"cpOKButton",cpOKButtonText:"cpOKButtonText",cpOKButtonClass:"cpOKButtonClass",cpCancelButton:"cpCancelButton",cpCancelButtonText:"cpCancelButtonText",cpCancelButtonClass:"cpCancelButtonClass",cpEyeDropper:"cpEyeDropper",cpPresetLabel:"cpPresetLabel",cpPresetColors:"cpPresetColors",cpPresetColorsClass:"cpPresetColorsClass",cpMaxPresetColorsLength:"cpMaxPresetColorsLength",cpPresetEmptyMessage:"cpPresetEmptyMessage",cpPresetEmptyMessageClass:"cpPresetEmptyMessageClass",cpAddColorButton:"cpAddColorButton",cpAddColorButtonText:"cpAddColorButtonText",cpAddColorButtonClass:"cpAddColorButtonClass",cpRemoveColorButtonClass:"cpRemoveColorButtonClass",cpArrowPosition:"cpArrowPosition",cpExtraTemplate:"cpExtraTemplate"},outputs:{cpInputChange:"cpInputChange",cpToggleChange:"cpToggleChange",cpSliderChange:"cpSliderChange",cpSliderDragEnd:"cpSliderDragEnd",cpSliderDragStart:"cpSliderDragStart",colorPickerOpen:"colorPickerOpen",colorPickerClose:"colorPickerClose",colorPickerCancel:"colorPickerCancel",colorPickerSelect:"colorPickerSelect",colorPickerChange:"colorPickerChange",cpCmykColorChange:"cpCmykColorChange",cpPresetColorsChange:"cpPresetColorsChange"},exportAs:["ngxColorPicker"],features:[e.OA$]})}return i})(),Ve=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({providers:[J],imports:[h.MD]})}return i})();var De=m(2578);let Q;try{Q=!!new Blob}catch{Q=!1}let re=(()=>{class i{get isFileSaverSupported(){return Q}genType(t){if(!t||-1===t.lastIndexOf("."))return"text/plain";const o=t.substring(t.lastIndexOf(".")+1);switch(o){case"txt":return"text/plain";case"xml":case"html":return`text/${o}`;case"json":return"octet/stream";default:return`application/${o}`}}save(t,o,n,r){if(!t)throw new Error("Data argument should be a blob instance");const s=new Blob([t],{type:n||t.type||this.genType(o)});(0,De.saveAs)(s,decodeURI(o||"download"),r)}saveText(t,o,n){const r=new Blob([t]);this.save(r,o,void 0,n)}static#e=this.\u0275fac=function(o){return new(o||i)};static#t=this.\u0275prov=e.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Pe=(()=>{class i{static#e=this.\u0275fac=function(o){return new(o||i)};static#t=this.\u0275mod=e.$C({type:i});static#n=this.\u0275inj=e.G2t({})}return i})();const Me=i=>["segment",i],Ge=(i,l)=>({"segment-main":!0,expandable:i,expanded:l});function Ne(i,l){1&i&&e.nrm(0,"div",9)}function Oe(i,l){if(1&i&&(e.j41(0,"span",10),e.EFF(1),e.k0s()),2&i){const t=e.XpG().$implicit;e.R7$(),e.JRh(t.description)}}function Xe(i,l){if(1&i&&(e.j41(0,"section",11),e.nrm(1,"ngx-json-viewer",12),e.k0s()),2&i){const t=e.XpG().$implicit,o=e.XpG();e.R7$(),e.Y8G("json",t.value)("expanded",o.expanded)("depth",o.depth)("_currentDepth",o._currentDepth+1)}}function Ye(i,l){if(1&i){const t=e.RV6();e.j41(0,"section",2)(1,"section",3),e.bIt("click",function(){const n=e.eBV(t).$implicit,r=e.XpG();return e.Njj(r.toggle(n))}),e.DNE(2,Ne,1,0,"div",4),e.j41(3,"span",5),e.EFF(4),e.k0s(),e.j41(5,"span",6),e.EFF(6,": "),e.k0s(),e.DNE(7,Oe,2,1,"span",7),e.k0s(),e.DNE(8,Xe,2,4,"section",8),e.k0s()}if(2&i){const t=l.$implicit,o=e.XpG();e.Y8G("ngClass",e.eq3(6,Me,"segment-type-"+t.type)),e.R7$(),e.Y8G("ngClass",e.l_i(8,Ge,o.isExpandable(t),t.expanded)),e.R7$(),e.Y8G("ngIf",o.isExpandable(t)),e.R7$(2),e.JRh(t.key),e.R7$(3),e.Y8G("ngIf",!t.expanded||!o.isExpandable(t)),e.R7$(),e.Y8G("ngIf",t.expanded&&o.isExpandable(t))}}let se=(()=>{class i{constructor(){this.expanded=!0,this.depth=-1,this._currentDepth=0,this.segments=[]}ngOnChanges(){this.segments=[],this.json=this.decycle(this.json),"object"==typeof this.json?Object.keys(this.json).forEach(t=>{this.segments.push(this.parseKeyValue(t,this.json[t]))}):this.segments.push(this.parseKeyValue(`(${typeof this.json})`,this.json))}isExpandable(t){return"object"===t.type||"array"===t.type}toggle(t){this.isExpandable(t)&&(t.expanded=!t.expanded)}parseKeyValue(t,o){const n={key:t,value:o,type:void 0,description:""+o,expanded:this.isExpanded()};switch(typeof n.value){case"number":n.type="number";break;case"boolean":n.type="boolean";break;case"function":n.type="function";break;case"string":n.type="string",n.description='"'+n.value+'"';break;case"undefined":n.type="undefined",n.description="undefined";break;case"object":null===n.value?(n.type="null",n.description="null"):Array.isArray(n.value)?(n.type="array",n.description="Array["+n.value.length+"] "+JSON.stringify(n.value)):n.value instanceof Date?n.type="date":(n.type="object",n.description="Object "+JSON.stringify(n.value))}return n}isExpanded(){return this.expanded&&!(this.depth>-1&&this._currentDepth>=this.depth)}decycle(t){const o=new WeakMap;return function n(r,s){let a,d;return"object"!=typeof r||null===r||r instanceof Boolean||r instanceof Date||r instanceof Number||r instanceof RegExp||r instanceof String?r:(a=o.get(r),void 0!==a?{$ref:a}:(o.set(r,s),Array.isArray(r)?(d=[],r.forEach(function(p,F){d[F]=n(p,s+"["+F+"]")})):(d={},Object.keys(r).forEach(function(p){d[p]=n(r[p],s+"["+JSON.stringify(p)+"]")})),d))}(t,"$")}}return i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=e.VBU({type:i,selectors:[["ngx-json-viewer"]],inputs:{json:"json",expanded:"expanded",depth:"depth",_currentDepth:"_currentDepth"},features:[e.OA$],decls:2,vars:1,consts:[[1,"ngx-json-viewer"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],[3,"click","ngClass"],["class","toggler",4,"ngIf"],[1,"segment-key"],[1,"segment-separator"],["class","segment-value",4,"ngIf"],["class","children",4,"ngIf"],[1,"toggler"],[1,"segment-value"],[1,"children"],[3,"json","expanded","depth","_currentDepth"]],template:function(t,o){1&t&&(e.j41(0,"section",0),e.DNE(1,Ye,9,11,"section",1),e.k0s()),2&t&&(e.R7$(),e.Y8G("ngForOf",o.segments))},dependencies:[h.YU,h.Sq,h.bT,i],styles:['@charset "UTF-8";.ngx-json-viewer[_ngcontent-%COMP%]{font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 1em);width:100%;height:100%;overflow:hidden;position:relative}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%]{padding:2px;margin:1px 1px 1px 12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%]{word-wrap:break-word}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]{position:absolute;margin-left:-14px;margin-top:3px;font-size:.8em;line-height:1.2em;vertical-align:middle;color:var(--ngx-json-toggler, #787878)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .toggler[_ngcontent-%COMP%]:after{display:inline-block;content:"\\25ba";transition:transform .1s ease-in}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-key, #4E187C)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-separator[_ngcontent-%COMP%]{color:var(--ngx-json-separator, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .segment-main[_ngcontent-%COMP%] .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-value, #000)}.ngx-json-viewer[_ngcontent-%COMP%] .segment[_ngcontent-%COMP%] .children[_ngcontent-%COMP%]{margin-left:12px}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-string[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-number[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-number, #009688)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-boolean[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-boolean, #B938A4)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-date[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-date, #05668D)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-array, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-object, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-function[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-function, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-null, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{color:var(--ngx-json-undefined, #fff)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-null[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-null-bg, red)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-key[_ngcontent-%COMP%]{color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-undefined[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%] > .segment-value[_ngcontent-%COMP%]{background-color:var(--ngx-json-undefined-key, #999)}.ngx-json-viewer[_ngcontent-%COMP%] .segment-type-object[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .segment-type-array[_ngcontent-%COMP%] > .segment-main[_ngcontent-%COMP%]{white-space:nowrap}.ngx-json-viewer[_ngcontent-%COMP%] .expanded[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]:after{transform:rotate(90deg)}.ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%], .ngx-json-viewer[_ngcontent-%COMP%] .expandable[_ngcontent-%COMP%] > .toggler[_ngcontent-%COMP%]{cursor:pointer}']}),i})(),qe=(()=>{class i{}return i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=e.$C({type:i}),i.\u0275inj=e.G2t({imports:[h.MD]}),i})();var le=m(93331),V=m(38117),c=m(89417),He=m(28990),ze=m(96354),A=m(3366),v=m(19664),D=m(45794),I=m(97013);function Ue(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Device name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Nwkid"),e.k0s(),e.EFF(14),e.k0s(),e.EFF(15,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" :\n ",t.Ep," - "),e.R7$(3),e.SpI(" : ",t.NwkId,"\n ")}}function Ke(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2,"\n "),e.j41(3,"b"),e.EFF(4,"Device name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"IEEE"),e.k0s(),e.EFF(8),e.j41(9,"b"),e.EFF(10,"Ep"),e.k0s(),e.EFF(11),e.j41(12,"b"),e.EFF(13,"Nwkid"),e.k0s(),e.EFF(14),e.k0s(),e.EFF(15,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.IEEE," - "),e.R7$(3),e.SpI(" :\n ",t.Ep," - "),e.R7$(3),e.SpI(" : ",t.NwkId,"\n ")}}const Le=new V.Vy("BindingComponent");let We=(()=>{class i extends He.U{apiService;formBuilder;translate;toastr;form;clusters$;devicesSource;devicesTarget;devicesTargetFiltered;constructor(t,o,n,r){super(),this.apiService=t,this.formBuilder=o,this.translate=n,this.toastr=r}ngOnInit(){this.form=this.formBuilder.group({source:[null,c.k0.required],target:[null,c.k0.required],cluster:[null,c.k0.required]}),this.clusters$=this.apiService.getBindLSTcluster().pipe((0,ze.T)(t=>t.map(o=>(o.fullName=o.ClusterId+" "+o.ClusterDesc,o)))),this.subs.sink=this.form.get("cluster").valueChanges.subscribe(t=>{Le.debug("change:",t),this.apiService.getBindLSTdevice(this.form.get("cluster").value).subscribe(o=>{this.devicesSource=o,this.devicesTarget=o})})}filterDevices(t){this.form.get("target").patchValue(null),this.devicesTargetFiltered=this.devicesTarget.filter(o=>t.NwkId!==o.NwkId)}putBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}putUnBinding(){const t={sourceIeee:this.form.get("source").value.IEEE,sourceEp:this.form.get("source").value.Ep,destIeee:this.form.get("target").value.IEEE,destEp:this.form.get("target").value.Ep,cluster:this.form.get("cluster").value};this.apiService.putUnBinding(t).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.update.notify")),this.form.reset("",{onlySelf:!0,emitEvent:!1})})}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$),e.rXU(D.tw))};static \u0275cmp=e.VBU({type:i,selectors:[["app-binding"]],features:[e.Vt3],decls:71,vars:26,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[3,"formGroup"],[1,"card"],["translate","tools.binding.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["appendTo","body","bindLabel","fullName","bindValue","ClusterId","formControlName","cluster",3,"items","multiple","closeOnSelect","placeholder"],[1,"row","mt-2"],["appendTo","body","bindLabel","ZDeviceName","formControlName","source",3,"change","items","multiple","closeOnSelect","placeholder"],["ng-option-tmp",""],["bindLabel","ZDeviceName","appendTo","body","formControlName","target",3,"items","multiple","closeOnSelect","placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.binding.button.put",1,"btn","btn-primary",3,"click","disabled"],["translate","tools.unbinding.button.put",1,"ms-2","btn","btn-primary",3,"click","disabled"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"form",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.nrm(6,"div",3),e.EFF(7,"\n "),e.j41(8,"div",4),e.EFF(9,"\n "),e.nrm(10,"p",5),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"div",8),e.EFF(18,"\n "),e.j41(19,"div"),e.EFF(20,"\n "),e.j41(21,"ng-select",9),e.nI1(22,"translate"),e.nI1(23,"async"),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"div",10),e.EFF(30,"\n "),e.j41(31,"div",8),e.EFF(32,"\n "),e.j41(33,"div"),e.EFF(34,"\n "),e.j41(35,"ng-select",11),e.nI1(36,"translate"),e.bIt("change",function(s){return n.filterDevices(s)}),e.EFF(37,"\n "),e.DNE(38,Ue,16,4,"ng-template",12),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.j41(44,"div",10),e.EFF(45,"\n "),e.j41(46,"div",8),e.EFF(47,"\n "),e.j41(48,"div"),e.EFF(49,"\n "),e.j41(50,"ng-select",13),e.nI1(51,"translate"),e.EFF(52,"\n "),e.DNE(53,Ke,16,4,"ng-template",12),e.EFF(54,"\n "),e.k0s(),e.EFF(55,"\n "),e.k0s(),e.EFF(56,"\n "),e.k0s(),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.j41(61,"div",14),e.EFF(62,"\n "),e.j41(63,"button",15),e.bIt("click",function(){return n.putBinding()}),e.k0s(),e.EFF(64,"\n "),e.j41(65,"button",16),e.bIt("click",function(){return n.putUnBinding()}),e.k0s(),e.EFF(66,"\n "),e.k0s(),e.EFF(67,"\n "),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n"),e.k0s(),e.EFF(70,"\n")),2&o&&(e.R7$(2),e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(11,16,"tools.binding.subtitle"),e.npT),e.R7$(11),e.FS9("placeholder",e.bMT(22,18,"tools.binding.cluster")),e.Y8G("items",e.bMT(23,20,n.clusters$))("multiple",!1)("closeOnSelect",!0),e.R7$(14),e.FS9("placeholder",e.bMT(36,22,"tools.binding.sourceEp")),e.Y8G("items",n.devicesSource)("multiple",!1)("closeOnSelect",!0),e.R7$(15),e.FS9("placeholder",e.bMT(51,24,"tools.binding.destEp")),e.Y8G("items",n.devicesTargetFiltered)("multiple",!1)("closeOnSelect",!0),e.R7$(13),e.Y8G("disabled",!n.form.valid),e.R7$(2),e.Y8G("disabled",!n.form.valid))},dependencies:[c.qT,c.BC,c.cb,c.j4,c.JD,I.vr,I.Uq,v.Mm,h.Jj,v.D9]})}return i})();function Ze(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}function Je(i,l){if(1&i){const t=e.RV6();e.j41(0,"ng-select",18),e.nI1(1,"translate"),e.bIt("change",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.setAction(n))}),e.EFF(2,"\n "),e.k0s()}if(2&i){const t=e.XpG();e.FS9("placeholder",e.bMT(1,5,"tools.debugcommand.action")),e.Y8G("items",t.capabilities.Capabilities)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function Qe(i,l){if(1&i&&(e.j41(0,"ng-select",19),e.nI1(1,"translate"),e.EFF(2,"\n "),e.k0s()),2&i){const t=e.XpG();e.FS9("placeholder",e.bMT(1,5,"tools.debugcommand.type")),e.Y8G("items",t.capabilities.Types)("multiple",!1)("closeOnSelect",!0)("searchable",!0)}}function $e(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.j41(6,"span",20),e.mxI("colorPickerChange",function(n){e.eBV(t);const r=e.XpG();return e.DH7(r.colorPicker,n)||(r.colorPicker=n),e.Njj(n)}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()}if(2&i){const t=e.XpG();e.R7$(6),e.xc7("background",t.colorPicker),e.Y8G("cpToggle",!0)("cpDialogDisplay","inline"),e.R50("colorPicker",t.colorPicker),e.Y8G("cpOutputFormat","rgba")}}function et(i,l){1&i&&e.nrm(0,"div",23)}function tt(i,l){if(1&i&&(e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.nrm(6,"input",21),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,et,1,0,"div",22),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(6),e.FS9("placeholder",e.bMT(7,2,"tools.debugcommand.value")),e.R7$(3),e.Y8G("ngIf",t.form.controls.effect.errors)}}function nt(i,l){1&i&&e.nrm(0,"div",26)}function ot(i,l){if(1&i&&(e.j41(0,"div",12),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div"),e.EFF(5,"\n "),e.nrm(6,"input",24),e.nI1(7,"translate"),e.EFF(8,"\n "),e.DNE(9,nt,1,0,"div",25),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(6),e.FS9("placeholder",e.bMT(7,2,"tools.debugcommand.value")),e.R7$(3),e.Y8G("ngIf",!t.form.controls.level.valid)}}let it=(()=>{class i{toastr;apiService;formBuilder;translate;routers;capabilities;form;colorPicker="rgba(30,96,239,0.54)";capaSelected;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({level:[null,[c.k0.nullValidator,c.k0.min(0),c.k0.max(100)]],type:[null,c.k0.required],action:[null,c.k0.required],deviceSelected:[null,c.k0.required],effect:[null,c.k0.compose([c.k0.nullValidator,c.k0.pattern("^[0-9A-Fa-f]+")])]}),this.form.get("type").disable(),this.apiService.getZDevices().subscribe(t=>{this.routers=t.filter(o=>"Router"===o.LogicalType)})}callCapabilities(t){this.capaSelected=null,this.form.get("action").patchValue(null),this.form.get("type").patchValue(null),this.capabilities=null,this.apiService.getDevCap(t._NwkId).subscribe(o=>{this.capabilities=o})}setAction(t){this.capaSelected=t,this.form.get("type").patchValue(null),t&&!0===t.Type?this.form.get("type").enable():this.form.get("type").disable()}callAction(){let t=null,o=null;if(this.testRGB)if(this.colorPicker.startsWith("rgba")){let r=this.colorPicker.replace("rgba(","");r=r.replace(")","");const s=r.split(",");4===s.length&&(o=100*Number(s[3]),t="rgb("+s[0]+","+s[1]+","+s[2]+")")}else this.colorPicker.startsWith("rgb")&&(o=100,t=this.colorPicker);!o&&this.capaSelected.Value&&("hex"===this.capaSelected.Value&&(o=this.form.get("effect").value),"int"===this.capaSelected.Value&&(o=this.form.get("level").value));const n={NwkId:this.form.get("deviceSelected").value._NwkId,Command:this.form.get("action").value.actuator,Value:o,Color:t,Type:this.form.get("type").value};this.apiService.putDevCommand(n).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}get testRGB(){return!!this.form.get("type").value&&this.form.get("type").value.startsWith("ColorControl")}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-command"]],decls:61,vars:17,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.debugcommand.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","appendTo","body","formControlName","deviceSelected",3,"change","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"col-sm"],["translate","tools.debugcommand.button.cancel",1,"ms-3","btn","btn-secondary",3,"click"],[1,"row","mt-2"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"items","multiple","closeOnSelect","searchable","placeholder","change",4,"ngIf"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder",4,"ngIf"],["class","row mt-2",4,"ngIf"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.debugcommand.button.send",1,"btn","btn-primary",3,"click","disabled"],["bindLabel","actuator","appendTo","body","formControlName","action",3,"change","items","multiple","closeOnSelect","searchable","placeholder"],["appendTo","body","formControlName","type",3,"items","multiple","closeOnSelect","searchable","placeholder"],[3,"colorPickerChange","cpToggle","cpDialogDisplay","colorPicker","cpOutputFormat"],["type","text","formControlName","effect",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.effect.error",4,"ngIf"],["translate","tools.debugcommand.effect.error"],["type","number","min","0","formControlName","level",1,"w-100","form-control",3,"placeholder"],["translate","tools.debugcommand.level.error",4,"ngIf"],["translate","tools.debugcommand.level.error"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.bIt("change",function(s){return n.callCapabilities(s)}),e.EFF(19,"\n "),e.DNE(20,Ze,10,2,"ng-template",9),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.j41(24,"div",10),e.EFF(25,"\n "),e.j41(26,"button",11),e.bIt("click",function(){return n.form.reset(),n.capaSelected=null}),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.j41(30,"div",12),e.EFF(31,"\n "),e.j41(32,"div",7),e.EFF(33,"\n "),e.DNE(34,Je,3,7,"ng-select",13),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.k0s(),e.EFF(37,"\n "),e.j41(38,"div",12),e.EFF(39,"\n "),e.j41(40,"div",7),e.EFF(41,"\n "),e.DNE(42,Qe,3,7,"ng-select",14),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.DNE(46,$e,10,6,"div",15),e.EFF(47,"\n "),e.DNE(48,tt,13,4,"div",15),e.EFF(49,"\n "),e.DNE(50,ot,13,4,"div",15),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.k0s(),e.EFF(53,"\n "),e.j41(54,"div",16),e.EFF(55,"\n "),e.j41(56,"button",17),e.bIt("click",function(){return n.callAction()}),e.k0s(),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n"),e.k0s(),e.EFF(60,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,13,"tools.debugcommand.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,15,"tools.debugcommand.device")),e.Y8G("items",n.routers)("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(17),e.Y8G("ngIf",n.form.get("deviceSelected").value&&n.capabilities),e.R7$(8),e.Y8G("ngIf",n.capaSelected&&n.capaSelected.Type),e.R7$(4),e.Y8G("ngIf",n.capaSelected&&n.testRGB),e.R7$(2),e.Y8G("ngIf",n.capaSelected&&"hex"===n.capaSelected.Value),e.R7$(2),e.Y8G("ngIf",n.capaSelected&&"int"===n.capaSelected.Value),e.R7$(6),e.Y8G("disabled",!n.form.valid))},dependencies:[h.bT,c.qT,c.me,c.Q0,c.BC,c.cb,c.VZ,c.j4,c.JD,I.vr,I.Uq,v.Mm,Be,v.D9]})}return i})();function rt(i,l){1&i&&e.nrm(0,"div",14)}function st(i,l){1&i&&e.nrm(0,"div",14)}let lt=(()=>{class i{toastr;apiService;formBuilder;translate;form;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnInit(){this.form=this.formBuilder.group({Command:[null,c.k0.required],payload:[null]})}putCommand(){this.apiService.putCommandRaw(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-raw-command"]],decls:50,vars:13,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigate.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["type","text","formControlName","Command",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigate.error",4,"ngIf"],[1,"row","mt-2"],["type","text","formControlName","payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigate.button.send",1,"btn","btn-primary",3,"click","disabled"],["translate","tools.rawcommand-zigate.error"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"div"),e.EFF(18,"\n "),e.nrm(19,"input",8),e.nI1(20,"translate"),e.EFF(21,"\n "),e.DNE(22,rt,1,0,"div",9),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",10),e.EFF(28,"\n "),e.j41(29,"div",7),e.EFF(30,"\n "),e.j41(31,"div"),e.EFF(32,"\n "),e.nrm(33,"input",11),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,st,1,0,"div",9),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.j41(43,"div",12),e.EFF(44,"\n "),e.j41(45,"button",13),e.bIt("click",function(){return n.putCommand()}),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n"),e.k0s(),e.EFF(49,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,7,"tools.rawcommand-zigate.subtitle"),e.npT),e.R7$(11),e.FS9("placeholder",e.bMT(20,9,"tools.rawcommand-zigate.command")),e.R7$(3),e.Y8G("ngIf",n.form.controls.Command.dirty&&!n.form.controls.Command.valid),e.R7$(11),e.FS9("placeholder",e.bMT(34,11,"tools.rawcommand-zigate.payload")),e.R7$(3),e.Y8G("ngIf",n.form.controls.payload.dirty&&!n.form.controls.payload.valid),e.R7$(9),e.Y8G("disabled",!n.form.valid))},dependencies:[h.bT,c.qT,c.me,c.BC,c.cb,c.j4,c.JD,v.Mm,v.D9]})}return i})();function at(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId," ")}}let ct=(()=>{class i{toastr;apiService;formBuilder;translate;devices$;form;constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}selectedCar;TrueFalse=[{id:!1,name:"False"},{id:!0,name:"True"}];ngOnInit(){this.form=this.formBuilder.group({ProfileId:["0104",c.k0.required],ClusterId:["0000",c.k0.required],TargetAddr:[null,c.k0.required],TargetEp:["01",c.k0.required],SourceEp:["01",c.k0.required],Sqn:["55",c.k0.required],Payload:[null,c.k0.required],GroupAddressFlag:[!1,c.k0.required],AckMode:[!1,c.k0.required]}),this.devices$=this.apiService.getZDeviceName()}putCommand(){this.apiService.putCommandRawZigpy(this.form.value).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.commandsent.notify"))})}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-raw-command-zigpy"]],decls:118,vars:34,consts:[[3,"formGroup"],[1,"card","h-100"],["translate","tools.rawcommand-zigpy.title",1,"card-header","fw-bold"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-6"],["bindLabel","ZDeviceName","bindValue","_NwkId","formControlName","TargetAddr",3,"items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[1,"row","mt-2"],["translate","tools.rawcommand-zigpy.groupaddressflag",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","GroupAddressFlag",3,"items"],["translate","tools.rawcommand-zigpy.ackmode",1,"col-sm-3","col-form-label"],["bindLabel","name","bindValue","id","formControlName","AckMode",3,"items"],["translate","tools.rawcommand-zigpy.profileid",1,"col-sm-3","col-form-label"],[1,"col-sm-2"],["type","text","formControlName","ProfileId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.clusterid",1,"col-sm-3","col-form-label"],["type","text","formControlName","ClusterId",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sourceep",1,"col-sm-3","col-form-label"],["type","text","formControlName","SourceEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.targetep",1,"col-sm-3","col-form-label"],["type","text","formControlName","TargetEp",1,"w-100","form-control",3,"placeholder"],["translate","tools.rawcommand-zigpy.sqn",1,"col-sm-3","col-form-label"],["type","text","formControlName","Sqn",1,"w-100","form-control",3,"placeholder"],[1,"col-sm"],["type","text","formControlName","Payload",1,"w-100","form-control",3,"placeholder"],[1,"card-footer","d-flex","justify-content-end"],["translate","tools.rawcommand-zigpy.button.send",1,"btn","btn-primary",3,"click","disabled"]],template:function(o,n){1&o&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.nrm(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7,"\n "),e.nrm(8,"p",4),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",5),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.EFF(20,"\n "),e.DNE(21,at,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.k0s(),e.EFF(25,"\n "),e.j41(26,"div",10),e.EFF(27,"\n "),e.nrm(28,"label",11),e.EFF(29,"\n "),e.j41(30,"div",7),e.EFF(31,"\n "),e.j41(32,"ng-select",12),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.k0s(),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.j41(37,"div",10),e.EFF(38,"\n "),e.nrm(39,"label",13),e.EFF(40,"\n "),e.j41(41,"div",7),e.EFF(42,"\n "),e.j41(43,"ng-select",14),e.EFF(44," "),e.k0s(),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.j41(48,"div",10),e.EFF(49,"\n "),e.nrm(50,"label",15),e.EFF(51,"\n "),e.j41(52,"div",16),e.EFF(53,"\n "),e.nrm(54,"input",17),e.nI1(55,"translate"),e.EFF(56,"\n "),e.k0s(),e.EFF(57,"\n "),e.nrm(58,"label",18),e.EFF(59,"\n "),e.j41(60,"div",16),e.EFF(61,"\n "),e.nrm(62,"input",19),e.nI1(63,"translate"),e.EFF(64,"\n "),e.k0s(),e.EFF(65,"\n "),e.k0s(),e.EFF(66,"\n "),e.j41(67,"div",10),e.EFF(68,"\n "),e.nrm(69,"label",20),e.EFF(70,"\n "),e.j41(71,"div",16),e.EFF(72,"\n "),e.nrm(73,"input",21),e.nI1(74,"translate"),e.EFF(75,"\n "),e.k0s(),e.EFF(76,"\n "),e.nrm(77,"label",22),e.EFF(78,"\n "),e.j41(79,"div",16),e.EFF(80,"\n "),e.nrm(81,"input",23),e.nI1(82,"translate"),e.EFF(83,"\n "),e.k0s(),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"div",10),e.EFF(87,"\n "),e.nrm(88,"label",24),e.EFF(89,"\n "),e.j41(90,"div",16),e.EFF(91,"\n "),e.j41(92,"div"),e.EFF(93,"\n "),e.nrm(94,"input",25),e.nI1(95,"translate"),e.EFF(96,"\n "),e.k0s(),e.EFF(97,"\n "),e.k0s(),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"div",10),e.EFF(101,"\n "),e.j41(102,"div",26),e.EFF(103,"\n "),e.nrm(104,"input",27),e.nI1(105,"translate"),e.EFF(106,"\n "),e.k0s(),e.EFF(107,"\n "),e.k0s(),e.EFF(108,"\n "),e.k0s(),e.EFF(109,"\n "),e.k0s(),e.EFF(110,"\n "),e.j41(111,"div",28),e.EFF(112,"\n "),e.j41(113,"button",29),e.bIt("click",function(){return n.putCommand()}),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n "),e.k0s(),e.EFF(116,"\n"),e.k0s(),e.EFF(117,"\n")),2&o&&(e.Y8G("formGroup",n.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,16,"tools.rawcommand-zigpy.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(18,18,"tools.rawcommand-zigpy.placeholder")),e.Y8G("items",e.bMT(19,20,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(15),e.Y8G("items",n.TrueFalse),e.R7$(11),e.Y8G("items",n.TrueFalse),e.R7$(11),e.FS9("placeholder",e.bMT(55,22,"tools.rawcommand-zigpy.profileid")),e.R7$(8),e.FS9("placeholder",e.bMT(63,24,"tools.rawcommand-zigpy.clusterid")),e.R7$(11),e.FS9("placeholder",e.bMT(74,26,"tools.rawcommand-zigpy.sourceep")),e.R7$(8),e.FS9("placeholder",e.bMT(82,28,"tools.rawcommand-zigpy.targetep")),e.R7$(13),e.FS9("placeholder",e.bMT(95,30,"tools.rawcommand-zigpy.sqn")),e.R7$(10),e.FS9("placeholder",e.bMT(105,32,"tools.rawcommand-zigpy.payload")),e.R7$(9),e.Y8G("disabled",!n.form.valid))},dependencies:[c.qT,c.me,c.BC,c.cb,c.j4,c.JD,I.vr,I.Uq,v.Mm,h.Jj,v.D9]})}return i})();function pt(i,l){1&i&&e.nrm(0,"app-raw-command")}function dt(i,l){1&i&&e.nrm(0,"app-raw-command-zigpy")}let ut=(()=>{class i{plugin;ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500)}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=e.VBU({type:i,selectors:[["app-command"]],decls:9,vars:2,consts:[[1,"row","row-cols-1","row-cols-xxl-3","row-cols-lg-2","row-cols-md-1","row-cols-sm-1","g-4"],[4,"ngIf"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"app-debug-command"),e.EFF(3,"\n "),e.DNE(4,pt,1,0,"app-raw-command",1),e.EFF(5,"\n "),e.DNE(6,dt,1,0,"app-raw-command-zigpy",1),e.EFF(7,"\n"),e.k0s(),e.EFF(8,"\n")),2&o&&(e.R7$(4),e.Y8G("ngIf",!(null!=n.plugin&&n.plugin.Zigpy)),e.R7$(2),e.Y8G("ngIf",null==n.plugin?null:n.plugin.Zigpy))},dependencies:[h.bT,it,lt,ct]})}return i})();var gt=m(88652),ae=m(38852);function mt(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",5),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function ht(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",6),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function ft(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",7),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function vt(i,l){if(1&i&&(e.j41(0,"div",3),e.EFF(1,"\n "),e.nrm(2,"label",4),e.EFF(3,"\n "),e.nrm(4,"input",5),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("translate",t.setting.Name)}}function Ct(i,l){if(1&i&&(e.j41(0,"div",8),e.EFF(1,"\n "),e.nrm(2,"input",9),e.EFF(3,"\n "),e.nrm(4,"label",10),e.EFF(5,"\n "),e.k0s()),2&i){const t=e.XpG();e.R7$(2),e.FS9("id",t.setting.Name),e.R7$(2),e.FS9("for",t.setting.Name),e.FS9("translate",t.setting.Name)}}let Ft=(()=>{class i{formBuilder;fgd;setting;advanced;constructor(t,o){this.formBuilder=t,this.fgd=o}ngOnInit(){let t;t=this.formBuilder.group("hex"===this.setting.DataType?{current:["",c.k0.compose([c.k0.required,c.k0.pattern("^[0-9A-Fa-f]+")])]}:"bool"===this.setting.DataType?{current:[]}:{current:["",c.k0.required]}),this.fgd.form.addControl(this.setting.Name,t);const o=""!==this.setting.current_value?this.setting.current_value:this.setting.default_value;this.fgd.form.get(this.setting.Name).get("current").patchValue(o)}static \u0275fac=function(o){return new(o||i)(e.rXU(c.ok),e.rXU(c.j4))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-setting"]],inputs:{setting:"setting",advanced:"advanced"},features:[e.Jv_([],[{provide:c.ZU,useExisting:c.j4}])],decls:13,vars:6,consts:[[3,"formGroupName"],["class","d-flex flex-row align-items-center flex-wrap mt-2",4,"ngIf"],["class","form-check form-check-inline mt-2",4,"ngIf"],[1,"d-flex","flex-row","align-items-center","flex-wrap","mt-2"],["for","current",1,"me-2",3,"translate"],["type","text","formControlName","current",1,"w-25","form-control"],["type","text","formControlName","current",1,"w-100","form-control"],["type","number","formControlName","current",1,"form-control","w-25"],[1,"form-check","form-check-inline","mt-2"],["formControlName","current","type","checkbox",1,"form-check-input",3,"id"],[1,"form-check-label",3,"for","translate"]],template:function(o,n){1&o&&(e.qex(0,0),e.EFF(1,"\n "),e.DNE(2,mt,6,1,"div",1),e.EFF(3,"\n "),e.DNE(4,ht,6,1,"div",1),e.EFF(5,"\n "),e.DNE(6,ft,6,1,"div",1),e.EFF(7,"\n "),e.DNE(8,vt,6,1,"div",1),e.EFF(9,"\n "),e.DNE(10,Ct,6,3,"div",2),e.EFF(11,"\n"),e.bVm(),e.EFF(12,"\n")),2&o&&(e.Y8G("formGroupName",n.setting.Name),e.R7$(2),e.Y8G("ngIf","str"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","path"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","int"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","hex"===n.setting.DataType),e.R7$(2),e.Y8G("ngIf","bool"===n.setting.DataType))},dependencies:[h.bT,c.me,c.Q0,c.Zm,c.BC,c.cb,c.JD,c.$R,v.Mm],styles:["was-validated[_ngcontent-%COMP%] .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]{color:#000}"]})}return i})();const $=["contentRestart"];function _t(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function bt(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,_t,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit;e.R7$(2),e.Y8G("ngIf",!t.Advanced&&"bool"===t.DataType)}}function kt(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function Et(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,kt,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit;e.R7$(2),e.Y8G("ngIf",!t.Advanced&&"bool"!==t.DataType)}}function yt(i,l){if(1&i&&e.nrm(0,"app-debug-setting",29),2&i){const t=e.XpG().$implicit,o=e.XpG(4);e.Y8G("setting",t)("advanced",o.advanced)}}function xt(i,l){if(1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,yt,1,2,"app-debug-setting",28),e.EFF(3,"\n "),e.bVm()),2&i){const t=l.$implicit,o=e.XpG(4);e.R7$(2),e.Y8G("ngIf",t.Advanced&&t.Advanced===o.advanced)}}function wt(i,l){if(1&i&&(e.j41(0,"div",21),e.EFF(1,"\n "),e.nrm(2,"div",22),e.EFF(3,"\n "),e.j41(4,"div",23),e.EFF(5,"\n "),e.j41(6,"div",24),e.EFF(7,"\n "),e.nrm(8,"p",25),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.j41(11,"div",24),e.EFF(12,"\n "),e.j41(13,"div",26),e.EFF(14,"\n "),e.DNE(15,bt,4,1,"ng-container",19),e.EFF(16,"\n "),e.k0s(),e.EFF(17,"\n "),e.j41(18,"div",27),e.EFF(19,"\n "),e.DNE(20,Et,4,1,"ng-container",19),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",27),e.EFF(24,"\n "),e.DNE(25,xt,4,1,"ng-container",19),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s()),2&i){const t=e.XpG().$implicit,o=e.XpG(2);e.R7$(2),e.Y8G("innerHTML",o.getTranslation("setting.header.",t._Theme),e.npT),e.R7$(6),e.Y8G("innerHTML",o.getTranslation("setting.subtitle.",t._Theme),e.npT),e.R7$(7),e.Y8G("ngForOf",t.ListOfSettings),e.R7$(5),e.Y8G("ngForOf",t.ListOfSettings),e.R7$(5),e.Y8G("ngForOf",t.ListOfSettings)}}function jt(i,l){if(1&i&&(e.j41(0,"div"),e.EFF(1,"\n "),e.DNE(2,wt,30,5,"div",20),e.EFF(3,"\n "),e.k0s()),2&i){const t=l.$implicit,o=e.XpG(2);e.R7$(2),e.Y8G("ngIf",o.hasBasicSettings(t.ListOfSettings))}}function At(i,l){if(1&i){const t=e.RV6();e.j41(0,"form",4),e.EFF(1,"\n "),e.j41(2,"fieldset",5),e.EFF(3,"\n "),e.j41(4,"legend"),e.EFF(5,"\n "),e.j41(6,"div",6),e.EFF(7,"\n "),e.nrm(8,"h5",7),e.nI1(9,"translate"),e.EFF(10,"\n "),e.j41(11,"div",8),e.EFF(12,"\n "),e.j41(13,"div",9),e.EFF(14,"\n "),e.j41(15,"div",10),e.EFF(16,"\n "),e.j41(17,"button",11),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.updateSettings())}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",12),e.EFF(21,"\n "),e.j41(22,"button",13),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.reinitSettings())}),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"div",14),e.EFF(26,"\n "),e.j41(27,"input",15),e.bIt("click",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.advancedSettings(n))}),e.k0s(),e.EFF(28,"\n "),e.nrm(29,"label",16),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.k0s(),e.EFF(35,"\n "),e.k0s(),e.EFF(36,"\n "),e.j41(37,"div",17),e.EFF(38,"\n "),e.j41(39,"div",18),e.EFF(40,"\n "),e.DNE(41,jt,4,1,"div",19),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("formGroup",t.form),e.R7$(8),e.Y8G("innerHTML",e.bMT(9,5,"tools.debugsetting.help.legend"),e.npT),e.R7$(9),e.Y8G("disabled",!t.form.valid),e.R7$(10),e.Y8G("checked",t.advanced),e.R7$(14),e.Y8G("ngForOf",t.settings)}}function Tt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",31),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",33),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",35),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}function It(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",36),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",37),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",38),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}function Rt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",30),e.EFF(2,"\n "),e.nrm(3,"h4",39),e.EFF(4,"\n "),e.j41(5,"button",32),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",40),e.EFF(9,"\n "),e.j41(10,"div",34),e.EFF(11,"\n "),e.j41(12,"button",41),e.bIt("click",function(){const n=e.eBV(t).$implicit;return e.Njj(n.dismiss("cancel"))}),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n")}}let St=(()=>{class i{modalService;apiService;formBuilder;toastr;headerService;translate;contentRestart;contentReset;contentErase;form;settings;advanced=!1;constructor(t,o,n,r,s,a){this.modalService=t,this.apiService=o,this.formBuilder=n,this.toastr=r,this.headerService=s,this.translate=a}ngOnInit(){this.form=this.formBuilder.group({}),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((o,n)=>o.Name.localeCompare(n.Name))})}reinitSettings(){this.settings.forEach(t=>{const o=[];t.ListOfSettings.forEach(n=>{n.current_value=n.default_value,o.push(Object.assign({},n))}),t.ListOfSettings=o}),this.settings=[...this.settings]}advancedSettings(t){this.advanced=!!t.currentTarget.checked}updateSettings(){this.form.invalid?this.form.markAsTouched():(Object.keys(this.form.value).forEach(t=>{!0===this.form.value[t].current?this.form.value[t].current=1:!1===this.form.value[t].current&&(this.form.value[t].current=0)}),this.apiService.putSettingsDebug(this.form.value).subscribe(()=>{this.form.markAsPristine(),this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getSettingsDebug().subscribe(t=>{this.settings=t,this.settings[0].ListOfSettings.sort((o,n)=>o.Name.localeCompare(n.Name))}),this.apiService.getRestartNeeded().subscribe(t=>{1===t.RestartNeeded?(this.headerService.setRestart(!0),this.open(this.contentRestart)):2===t.RestartNeeded?this.open(this.contentReset):3===t.RestartNeeded&&this.open(this.contentErase)})}))}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then()}hasBasicSettings(t){return!!this.advanced||t.filter(o=>!1===o.Advanced).length>0}getTranslation(t,o){return this.translate.instant(t.concat(o))}static \u0275fac=function(o){return new(o||i)(e.rXU(gt.Bq),e.rXU(A.G),e.rXU(c.ok),e.rXU(D.tw),e.rXU(ae.d),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-debug-settings"]],viewQuery:function(o,n){if(1&o&&(e.GBs($,5),e.GBs($,5),e.GBs($,5)),2&o){let r;e.mGM(r=e.lsd())&&(n.contentRestart=r.first),e.mGM(r=e.lsd())&&(n.contentReset=r.first),e.mGM(r=e.lsd())&&(n.contentErase=r.first)}},decls:11,vars:1,consts:[["contentRestart",""],["contentReset",""],["contentErase",""],[3,"formGroup",4,"ngIf"],[3,"formGroup"],[1,"h-100"],[1,"row"],[1,"col-sm-8",3,"innerHTML"],[1,"col-sm-4"],[1,"d-flex","flex-row-reverse","align-items-center"],[1,"p-2"],["translate","tools.debugsetting.validate.button",1,"btn","btn-primary",3,"click","disabled"],[1,"p-2","ms-3"],["translate","tools.debugsetting.reinit.button",1,"btn","btn-secondary",3,"click"],[1,"switch","switch-sm","me-2","pr-2","float-right"],["type","checkbox","id","switch-advanced",1,"switch",3,"click","checked"],["for","switch-advanced","translate","tools.debugsetting.advanced.button",1,"mb-0"],[1,"row","row-cols-1","row-cols-sm-1","g-4"],[1,"col"],[4,"ngFor","ngForOf"],["class","card",4,"ngIf"],[1,"card"],[1,"card-header","fw-bold",3,"innerHTML"],[1,"card-body"],[1,"card-text"],[3,"innerHTML"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center"],[1,"row","row-cols-1","row-cols-xl-6","row-cols-md-3","row-cols-sm-1","align-items-center","mt-2"],[3,"setting","advanced",4,"ngIf"],[3,"setting","advanced"],[1,"modal-header"],["id","modal-basic-title","translate","setting.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","setting.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","setting.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.resetplugin.alert.title",1,"modal-title"],["translate","setting.resetplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.resetplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","setting.eraseplugin.alert.title",1,"modal-title"],["translate","setting.eraseplugin.alert.subject",1,"modal-body"],["type","button","translate","setting.eraseplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(o,n){1&o&&(e.DNE(0,At,45,7,"form",3),e.EFF(1,"\n\n"),e.DNE(2,Tt,15,0,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,It,15,0,"ng-template",null,1,e.C5r),e.EFF(7,"\n\n"),e.DNE(8,Rt,15,0,"ng-template",null,2,e.C5r),e.EFF(10,"\n")),2&o&&e.Y8G("ngIf",n.settings)},dependencies:[h.Sq,h.bT,c.qT,c.cb,c.j4,v.Mm,Ft,v.D9],styles:[".btn-secondary[_ngcontent-%COMP%]{--bs-btn-color: white}"]})}return i})();var ce=m(70980);function pe(i,l){const t=new h.vh("en-US");if("LastSeen"===i)return t.transform(1e3*l,"dd/MM/yyyy HH:mm:ss");if(["TimeStamps","TimeStamp","Stamp","Time","StartTime","BatteryUpdateTime","TargetTime"].indexOf(i)>-1){if(l>0){let n=1e3*l;return n=Number(n.toFixed(0)),t.transform(n,"dd/MM/yyyy HH:mm:ss")}return l}return l}function Bt(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",4),e.EFF(1,"\n "),e.j41(2,"button",5),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.export(n.json))}),e.k0s(),e.EFF(3,"\n\n "),e.nrm(4,"ngx-json-viewer",6),e.EFF(5,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("hidden",t.isLoading),e.R7$(4),e.Y8G("expanded",!1)("json",t.json)}}let Vt=(()=>{class i{apiService;headerService;fileSaverService;json=null;isLoading=!1;constructor(t,o,n){this.apiService=t,this.headerService=o,this.fileSaverService=n}onClick(t){let o;this.json=null,"log-error-history"===t&&(o=this.apiService.getLogErrorHistory(),this.headerService.setError(!1)),"clear-error-history"===t&&(o=this.apiService.clearLogErrorHistory(),this.headerService.setError(!1)),o&&o.pipe((0,ce.j)(()=>{this.isLoading=!1})).subscribe(n=>{this.callbackservice(n)})}callbackservice(t){const o=JSON.stringify(t);this.json=JSON.parse(o,pe)}export(t){const o="errors.json",n=this.fileSaverService.genType(o),r=new Blob([JSON.stringify(t)],{type:n});this.fileSaverService.save(r,o)}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(ae.d),e.rXU(re))};static \u0275cmp=e.VBU({type:i,selectors:[["app-error"]],decls:9,vars:1,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.error.log-history.button",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.error.log-history.clear",1,"col-xl-2","col-lg-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"button",1),e.bIt("click",function(){return n.onClick("log-error-history")}),e.k0s(),e.EFF(3,"\n "),e.j41(4,"button",2),e.bIt("click",function(){return n.onClick("clear-error-history")}),e.k0s(),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.DNE(7,Bt,6,3,"div",3),e.EFF(8,"\n")),2&o&&(e.R7$(7),e.Y8G("ngIf",n.json))},dependencies:[h.bT,v.Mm,se]})}return i})();var Dt=m(34402),ee=m(46247),Pt=m(5779),Mt=m(22242);const Gt=()=>[10,25,50];function Nt(i,l){1&i&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",5),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",6),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",7),e.EFF(12),e.nI1(13,"translate"),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",7),e.EFF(16),e.nI1(17,"translate"),e.k0s(),e.EFF(18,"\n "),e.j41(19,"th",7),e.EFF(20),e.nI1(21,"translate"),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",7),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",8),e.EFF(28),e.nI1(29,"translate"),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n ")),2&i&&(e.R7$(4),e.JRh(e.bMT(5,7,"tools.reporting.configure.clusterId.column")),e.R7$(4),e.JRh(e.bMT(9,9,"tools.reporting.configure.attributeId.column")),e.R7$(4),e.JRh(e.bMT(13,11,"tools.reporting.configure.dataType.column")),e.R7$(4),e.JRh(e.bMT(17,13,"tools.reporting.configure.timeout.column")),e.R7$(4),e.JRh(e.bMT(21,15,"tools.reporting.configure.minInterval.column")),e.R7$(4),e.JRh(e.bMT(25,17,"tools.reporting.configure.maxInterval.column")),e.R7$(4),e.JRh(e.bMT(29,19,"tools.reporting.configure.change.column")))}function Ot(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MinInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.minInterval)}}function Xt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MinInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.minInterval)}}function Yt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MaxInterval",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.maxInterval)}}function qt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG().$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"MaxInterval",r))}),e.k0s(),e.EFF(2," ")}if(2&i){const t=e.XpG().$implicit;e.R7$(),e.Y8G("value",t.maxInterval)}}function Ht(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"Change",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG(2).$implicit;e.R7$(),e.Y8G("value",t.change)}}function zt(i,l){if(1&i){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",15),e.bIt("change",function(n){e.eBV(t);const r=e.XpG(2).$implicit,s=e.XpG();return e.Njj(s.updateValue(n,"Change",r))}),e.k0s(),e.EFF(2,"\n ")}if(2&i){const t=e.XpG(2).$implicit;e.R7$(),e.Y8G("value",t.change)}}function Ut(i,l){1&i&&(e.qex(0),e.EFF(1,"\n "),e.DNE(2,Ht,3,1,"ng-template",10),e.EFF(3,"\n "),e.DNE(4,zt,3,1,"ng-template",11),e.EFF(5,"\n "),e.bVm())}function Kt(i,l){if(1&i&&e.EFF(0),2&i){const t=e.XpG().$implicit;e.JRh(t.change)}}function Lt(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",9),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,Ot,3,1,"ng-template",10),e.EFF(20,"\n "),e.DNE(21,Xt,3,1,"ng-template",11),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n "),e.j41(25,"td",12),e.EFF(26,"\n "),e.j41(27,"p-cellEditor"),e.EFF(28,"\n "),e.DNE(29,Yt,3,1,"ng-template",10),e.EFF(30,"\n "),e.DNE(31,qt,3,1,"ng-template",11),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.j41(34,"td",13),e.EFF(35,"\n "),e.j41(36,"p-cellEditor"),e.EFF(37,"\n "),e.DNE(38,Ut,6,0,"ng-container",14),e.EFF(39,"\n "),e.DNE(40,Kt,1,1,"ng-template",null,1,e.C5r),e.k0s(),e.EFF(42,"\n "),e.k0s(),e.EFF(43,"\n "),e.k0s()),2&i){const t=l.$implicit,o=e.sdS(41),n=e.XpG();e.R7$(4),e.JRh(t.clusterId),e.R7$(3),e.JRh(t.attributeId),e.R7$(3),e.JRh(t.dataType),e.R7$(3),e.JRh(t.timeOut),e.R7$(2),e.Y8G("pEditableColumn",t.minInterval),e.R7$(10),e.Y8G("pEditableColumn",t.maxInterval),e.R7$(9),e.Y8G("pEditableColumn",t.change),e.R7$(4),e.Y8G("ngIf",n.isEditable(t))("ngIfElse",o)}}let Wt=(()=>{class i{toastr;apiService;formBuilder;translate;clusters;clustersChange=new e.bkB;clustersToDisplay=[];datatypeConvertor=[{type:"10",longueur:"0",editable:!1},{type:"20",longueur:"0",editable:!0},{type:"21",longueur:"00",editable:!0},{type:"22",longueur:"000",editable:!0},{type:"23",longueur:"0000",editable:!0},{type:"24",longueur:"00000",editable:!0},{type:"25",longueur:"000000",editable:!0},{type:"26",longueur:"0000000",editable:!0},{type:"27",longueur:"00000000",editable:!0},{type:"28",longueur:"0",editable:!0},{type:"29",longueur:"00",editable:!0},{type:"2a",longueur:"000",editable:!0},{type:"2b",longueur:"0000",editable:!0},{type:"2c",longueur:"00000",editable:!0},{type:"2d",longueur:"000000",editable:!0},{type:"2e",longueur:"0000000",editable:!0},{type:"2f",longueur:"00000000",editable:!0},{type:"38",longueur:"00",editable:!0},{type:"39",longueur:"0000",editable:!0},{type:"3a",longueur:"00000000",editable:!0},{type:"e0",longueur:"0000",editable:!0},{type:"e1",longueur:"0000",editable:!0},{type:"e2",longueur:"0000",editable:!0}];constructor(t,o,n,r){this.toastr=t,this.apiService=o,this.formBuilder=n,this.translate=r}ngOnChanges(t){t.clusters.currentValue&&this.formatClusters(t.clusters.currentValue)}formatClusters(t){this.clustersToDisplay=[],t.forEach(o=>{o.Attributes.forEach(n=>{n.Infos.forEach(r=>{const s=new Dt.E0;s.clusterId=o.ClusterId,s.attributeId=n.Attribute,s.change=parseInt(r.Change,16).toString(),s.dataType=r.DataType,s.maxInterval=parseInt(r.MaxInterval,16).toString(),s.minInterval=parseInt(r.MinInterval,16).toString(),s.timeOut=parseInt(r.TimeOut,16).toString(),this.clustersToDisplay.push(s)})})})}updateValue(t,o,n){const r=t.target.value,s=this.clusters.find(a=>a.ClusterId===n.clusterId).Attributes.find(a=>a.Attribute===n.attributeId).Infos[0];if(!this.controlerValue(Number(r),o,s)){if("Change"===o){const a=this.datatypeConvertor.find(d=>d.type===s.DataType);s[o]=(a.longueur+Number(r).toString(16).toUpperCase()).slice(-a.longueur.length)}else s[o]=Number(r).toString(16).toUpperCase();this.formatClusters(this.clusters),this.clustersChange.emit(this.clusters)}}controlerValue(t,o,n){let r=!1;if(isNaN(t))r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.hexa.error"));else if("Change"!==o&&Number(t)>65535)r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"));else if("Change"===o){const s=this.datatypeConvertor.find(d=>d.type===n.DataType),a=s.longueur.split("0").join("F");Number(t)>parseInt(a,16)&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error"))),"10"===s.type&&Number(t)>1&&(r=!0,this.clustersChange.emit(null),alert(this.translate.instant("reporting.configure.length.error")))}return r}isEditable(t){const o=this.datatypeConvertor.find(n=>n.type===t.dataType);return o&&o.editable}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(c.ok),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-configure-cluster-reporting"]],inputs:{clusters:"clusters"},outputs:{clustersChange:"clustersChange"},features:[e.OA$],decls:9,vars:11,consts:[["dt1",""],["notEditable",""],["responsiveLayout","scroll","stateStorage","local","stateKey","cluster",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"],[2,"width","15rem"],[2,"width","7rem"],[2,"width","5rem"],[2,"width","3rem"],["pEditableColumnField","minInterval",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pEditableColumnField","maxInterval",3,"pEditableColumn"],["pEditableColumnField","change",3,"pEditableColumn"],[4,"ngIf","ngIfElse"],["pInputText","","type","text",3,"change","value"]],template:function(o,n){1&o&&(e.j41(0,"p-table",2,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,Nt,32,21,"ng-template",3),e.EFF(5,"\n "),e.DNE(6,Lt,44,9,"ng-template",4),e.EFF(7,"\n"),e.k0s(),e.EFF(8,"\n")),2&o&&(e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,Gt))("value",n.clustersToDisplay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[h.bT,ee.XI,Pt.Ei,ee.hp,ee.c5,Mt.S,v.D9]})}return i})();function Zt(i,l){if(1&i&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&i){const t=l.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t._NwkId,"")}}function Jt(i,l){if(1&i){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"app-configure-cluster-reporting",16),e.bIt("clustersChange",function(n){e.eBV(t);const r=e.XpG();return e.Njj(r.onClustersChange(n))}),e.k0s(),e.EFF(3,"\n "),e.bVm()}if(2&i){const t=l.ngIf;e.R7$(2),e.Y8G("clusters",t)}}let Qt=(()=>{class i{toastr;apiService;translate;devices$;clusters$;deviceSelected;form;clustersToSave;permitToValidate=!1;constructor(t,o,n){this.toastr=t,this.apiService=o,this.translate=n}ngOnInit(){this.devices$=this.apiService.getZDevices()}getConfiguration(t){this.deviceSelected=null,t&&(this.deviceSelected=t._NwkId,this.clusters$=this.apiService.getConfigureReporting(this.deviceSelected))}putConfiguration(){this.apiService.putConfigureReporting(this.deviceSelected,this.clustersToSave).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}resetConfiguration(){this.apiService.deleteConfigureReporting(this.deviceSelected).subscribe(()=>{this.permitToValidate=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}triggerConfiguration(){this.apiService.getTriggerConfigureReporting(this.deviceSelected).subscribe(()=>{this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}onClustersChange(t){this.permitToValidate=!1,this.clustersToSave=null,t&&(this.permitToValidate=!0,this.clustersToSave=t)}static \u0275fac=function(o){return new(o||i)(e.rXU(D.tw),e.rXU(A.G),e.rXU(v.c$))};static \u0275cmp=e.VBU({type:i,selectors:[["app-configure-reporting"]],decls:50,vars:30,consts:[[1,"col"],[1,"card"],[1,"card-header","d-flex"],[1,"col","fw-bold","justify-content-start"],[1,"col","d-flex","justify-content-end"],[1,"btn","btn-danger",3,"click","disabled","translate"],[1,"btn","btn-secondary","ms-3",3,"click","disabled","translate"],[1,"btn","btn-primary","ms-3",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],[1,"row"],[1,"col-sm-3","mb-2"],["bindLabel","ZDeviceName","appendTo","body",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],[4,"ngIf"],[3,"clustersChange","clusters"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"div",2),e.EFF(5,"\n "),e.j41(6,"div",3),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",4),e.EFF(11,"\n "),e.j41(12,"button",5),e.nI1(13,"translate"),e.bIt("click",function(){return n.resetConfiguration()}),e.k0s(),e.EFF(14,"\n "),e.j41(15,"button",6),e.nI1(16,"translate"),e.bIt("click",function(){return n.triggerConfiguration()}),e.k0s(),e.EFF(17,"\n "),e.j41(18,"button",7),e.nI1(19,"translate"),e.bIt("click",function(){return n.putConfiguration()}),e.k0s(),e.EFF(20,"\n "),e.k0s(),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",8),e.EFF(24,"\n "),e.nrm(25,"p",9),e.nI1(26,"translate"),e.EFF(27,"\n "),e.j41(28,"div",10),e.EFF(29,"\n "),e.j41(30,"div",11),e.EFF(31,"\n "),e.j41(32,"div",12),e.EFF(33,"\n "),e.j41(34,"ng-select",13),e.nI1(35,"translate"),e.nI1(36,"async"),e.bIt("change",function(s){return n.getConfiguration(s)})("clear",function(){return n.deviceSelected=null,n.permitToValidate=!1}),e.EFF(37,"\n "),e.DNE(38,Zt,10,2,"ng-template",14),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.k0s(),e.EFF(42,"\n "),e.DNE(43,Jt,4,1,"ng-container",15),e.nI1(44,"async"),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.k0s(),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n"),e.k0s(),e.EFF(49,"\n")),2&o&&(e.R7$(7),e.JRh(e.bMT(8,14,"tools.reporting.configure.title")),e.R7$(5),e.FS9("translate",e.bMT(13,16,"tools.reporting.configure.reset.button")),e.Y8G("disabled",!n.deviceSelected),e.R7$(3),e.FS9("translate",e.bMT(16,18,"tools.reporting.configure.trigger.button")),e.Y8G("disabled",!n.deviceSelected),e.R7$(3),e.FS9("translate",e.bMT(19,20,"tools.reporting.configure.validate.button")),e.Y8G("disabled",!n.permitToValidate),e.R7$(7),e.Y8G("innerHTML",e.bMT(26,22,"tools.reporting.configure.subtitle"),e.npT),e.R7$(9),e.FS9("placeholder",e.bMT(35,24,"tools.reporting.configure.device")),e.Y8G("items",e.bMT(36,26,n.devices$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(9),e.Y8G("ngIf",e.bMT(44,28,n.deviceSelected&&n.clusters$)))},dependencies:[h.bT,I.vr,I.Uq,v.Mm,Wt,h.Jj,v.D9]})}return i})(),$t=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275cmp=e.VBU({type:i,selectors:[["app-reporting"]],decls:5,vars:0,consts:[[1,"row","row-cols-1","g-4"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.nrm(2,"app-configure-reporting"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n"))},dependencies:[Qt]})}return i})();var en=m(27468);function tn(i,l){if(1&i){const t=e.RV6();e.j41(0,"button",15),e.bIt("click",function(){const n=e.eBV(t).ngIf,r=e.XpG();return e.Njj(r.download(n))}),e.k0s()}}function nn(i,l){if(1&i){const t=e.RV6();e.j41(0,"div",16),e.EFF(1,"\n "),e.j41(2,"button",17),e.bIt("click",function(){e.eBV(t);const n=e.XpG();return e.Njj(n.export(n.json))}),e.k0s(),e.EFF(3,"\n\n "),e.nrm(4,"ngx-json-viewer",18),e.EFF(5,"\n"),e.k0s()}if(2&i){const t=e.XpG();e.Y8G("hidden",t.isLoading),e.R7$(4),e.Y8G("expanded",!1)("json",t.json)}}let on=(()=>{class i{apiService;fileSaverService;json=null;isLoading=!1;logFile$;constructor(t,o){this.apiService=t,this.fileSaverService=o}ngOnInit(){this.logFile$=this.apiService.getLog()}onClick(t){let o;this.json=null,"devices"===t&&(o=this.apiService.getDevices()),"zdevices"===t&&(o=this.apiService.getZDevices()),"zgroups"===t&&(o=this.apiService.getZGroups()),"zdevice-raw"===t&&(o=this.apiService.getRawZDevices()),"infos"===t&&(o=this.apiService.getPlugin()),"coordinator"===t&&(o=this.apiService.getCoordinator()),"plugin-health"===t&&(o=this.apiService.getPluginhealth()),"zgroup-list-available-device"===t&&(o=this.apiService.getZGroupDevicesAvalaible()),"settings"===t&&(o=this.apiService.getSettings()),"plugin-stat"===t&&(o=this.apiService.getPluginStats()),"zdevice-name"===t&&(o=this.apiService.getZDeviceName()),"domoticz-env"===t&&(o=this.apiService.getDomoticzEnv()),"battery-state"===t&&(o=this.apiService.getBatteryState()),o&&o.pipe((0,ce.j)(()=>{this.isLoading=!1})).subscribe(n=>{this.callbackservice(n)})}getAllNonOptimizedDevice(){this.json=null,this.apiService.getZDeviceName().subscribe(t=>{const o=t.filter(n=>!n.CertifiedDevice).map(n=>this.getNonOptimizedDevice(n._NwkId));(0,en.p)(o).subscribe(n=>this.callbackservice(n))})}getNonOptimizedDevice(t){return this.apiService.getNonOptimizedDevice(t)}download(t){const o=t.Filename;this.apiService.downloadLog(t.URL).subscribe(n=>{this.fileSaverService.save(n.body,o)})}callbackservice(t){const o=JSON.stringify(t);this.json=JSON.parse(o,pe)}export(t){const o="export.json",n=this.fileSaverService.genType(o),r=new Blob([JSON.stringify(t)],{type:n});this.fileSaverService.save(r,o)}static \u0275fac=function(o){return new(o||i)(e.rXU(A.G),e.rXU(re))};static \u0275cmp=e.VBU({type:i,selectors:[["app-tools"]],decls:32,vars:4,consts:[[1,"row","d-flex","ms-2","gap-2"],["translate","tools.tools.zdevice-raw.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.non-optimized.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-stat.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.coordinator.infos.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","col-lg-2 col-md-4 col-sm-5 btn btn-primary","translate","tools.tools.log.button",3,"click",4,"ngIf"],["translate","tools.tools.infos.plugin.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.plugin-health.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.settings.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.domoticz-env.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.battery-state.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zdevice-name.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["translate","tools.tools.zgroup-list-available-device.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],["class","row ms-2 mt-2",3,"hidden",4,"ngIf"],["translate","tools.tools.log.button",1,"col-lg-2","col-md-4","col-sm-5","btn","btn-primary",3,"click"],[1,"row","ms-2","mt-2",3,"hidden"],["translate","tools.tools.export",1,"col-lg-1","mb-2","btn","btn-primary",3,"click"],[3,"expanded","json"]],template:function(o,n){1&o&&(e.j41(0,"div",0),e.EFF(1,"\n "),e.j41(2,"button",1),e.bIt("click",function(){return n.onClick("zdevice-raw")}),e.k0s(),e.EFF(3,"\n "),e.j41(4,"button",2),e.bIt("click",function(){return n.getAllNonOptimizedDevice()}),e.k0s(),e.EFF(5,"\n "),e.j41(6,"button",3),e.bIt("click",function(){return n.onClick("zgroups")}),e.k0s(),e.EFF(7,"\n "),e.j41(8,"button",4),e.bIt("click",function(){return n.onClick("plugin-stat")}),e.k0s(),e.EFF(9,"\n "),e.j41(10,"button",5),e.bIt("click",function(){return n.onClick("coordinator")}),e.k0s(),e.EFF(11,"\n "),e.DNE(12,tn,1,0,"button",6),e.nI1(13,"async"),e.EFF(14,"\n "),e.j41(15,"button",7),e.bIt("click",function(){return n.onClick("infos")}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",8),e.bIt("click",function(){return n.onClick("plugin-health")}),e.k0s(),e.EFF(18,"\n "),e.j41(19,"button",9),e.bIt("click",function(){return n.onClick("settings")}),e.k0s(),e.EFF(20,"\n "),e.j41(21,"button",10),e.bIt("click",function(){return n.onClick("domoticz-env")}),e.k0s(),e.EFF(22,"\n "),e.j41(23,"button",11),e.bIt("click",function(){return n.onClick("battery-state")}),e.k0s(),e.EFF(24,"\n "),e.j41(25,"button",12),e.bIt("click",function(){return n.onClick("zdevice-name")}),e.k0s(),e.EFF(26,"\n "),e.j41(27,"button",13),e.bIt("click",function(){return n.onClick("zgroup-list-available-device")}),e.k0s(),e.EFF(28,"\n"),e.k0s(),e.EFF(29,"\n"),e.DNE(30,nn,6,3,"div",14),e.EFF(31,"\n")),2&o&&(e.R7$(12),e.Y8G("ngIf",e.bMT(13,2,n.logFile$)),e.R7$(18),e.Y8G("ngIf",n.json))},dependencies:[h.bT,v.Mm,se,h.Jj]})}return i})();const rn=[{path:"command",component:ut,data:{title:(0,V.o6)("command")}},{path:"debug",component:St,data:{title:(0,V.o6)("debug")}},{path:"binding",component:We,data:{title:(0,V.o6)("binding")}},{path:"link",component:on,data:{title:(0,V.o6)("tools")}},{path:"error",component:Vt,data:{title:(0,V.o6)("error")}},{path:"configure",component:$t,data:{title:(0,V.o6)("configure")}}];let sn=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[le.iI.forChild(rn),le.iI]})}return i})(),ln=(()=>{class i{static \u0275fac=function(o){return new(o||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[q.G,sn,qe,Pe,Ve]})}return i})()},2578:function(W,Y){var m,e;void 0!==(e="function"==typeof(m=function(){"use strict";function R(u,g,x){var f=new XMLHttpRequest;f.open("GET",u),f.responseType="blob",f.onload=function(){M(f.response,g,x)},f.onerror=function(){console.error("could not download file")},f.send()}function H(u){var g=new XMLHttpRequest;g.open("HEAD",u,!1);try{g.send()}catch{}return 200<=g.status&&299>=g.status}function P(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(g)}}var y="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,z=y.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),M=y.saveAs||("object"!=typeof window||window!==y?function(){}:"download"in HTMLAnchorElement.prototype&&!z?function(u,g,x){var f=y.URL||y.webkitURL,b=document.createElement("a");b.download=g=g||u.name||"download",b.rel="noopener","string"==typeof u?(b.href=u,b.origin===location.origin?P(b):H(b.href)?R(u,g,x):P(b,b.target="_blank")):(b.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(b.href)},4e4),setTimeout(function(){P(b)},0))}:"msSaveOrOpenBlob"in navigator?function(u,g,x){if(g=g||u.name||"download","string"!=typeof u)navigator.msSaveOrOpenBlob(function h(u,g){return typeof g>"u"?g={autoBom:!1}:"object"!=typeof g&&(console.warn("Deprecated: Expected third argument to be a object"),g={autoBom:!g}),g.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\ufeff",u],{type:u.type}):u}(u,x),g);else if(H(u))R(u,g,x);else{var f=document.createElement("a");f.href=u,f.target="_blank",setTimeout(function(){P(f)})}}:function(u,g,x,f){if((f=f||open("","_blank"))&&(f.document.title=f.document.body.innerText="downloading..."),"string"==typeof u)return R(u,g,x);var b="application/octet-stream"===u.type,Z=/constructor/i.test(y.HTMLElement)||y.safari,U=/CriOS\/[\d]+/.test(navigator.userAgent);if((U||b&&Z||z)&&typeof FileReader<"u"){var G=new FileReader;G.onloadend=function(){var S=G.result;S=U?S:S.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=S:location=S,f=null},G.readAsDataURL(u)}else{var K=y.URL||y.webkitURL,N=K.createObjectURL(u);f?f.location=N:location.href=N,f=null,setTimeout(function(){K.revokeObjectURL(N)},4e4)}});y.saveAs=M.saveAs=M,W.exports=M})?m.apply(Y,[]):m)&&(W.exports=e)}}]); \ No newline at end of file diff --git a/www/z4d/index.html b/www/z4d/index.html index 9d6c05843..7a4c3f918 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -24,5 +24,5 @@

    This page requires JavaScript to work properly. Please enable JavaScript in your browser.

    - + diff --git a/www/z4d/main.66cd2ebacafbbb03.js b/www/z4d/main.66cd2ebacafbbb03.js deleted file mode 100644 index 339d9eb9a..000000000 --- a/www/z4d/main.66cd2ebacafbbb03.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"Param\xe8tres de l\'objet","device.byname.parameter.popover.text":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet. Vert indique que les param\xe8tres ont \xe9t\xe9 pris envoy\xe9 \xe0 l\'objet, Orange indique que les param\xe8tres n\'ont pas encore \xe9t\xe9 envoy\xe9","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Active l\'utilisation du scan de topologie zigpy","ZigpyTopologyReportAutoBackup":"Sauvegarde les scan topologie interne zigpy"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:["alt.z","z>i>g"],refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Mt=gt&&Ve||new Map;qe.forEach((Pt,Wt)=>{let Zt=Wt,hi=Pt;if("offset"!==Wt)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Wt);break;case Z.kp:hi=m.get(Wt);break;default:hi=c.normalizeStyleValue(Wt,Zt,hi,W)}Mt.set(Zt,hi)}),gt||ce.push(Mt),Ve=Mt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=xs(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=xs(m);c.style[W]=""})}function Qt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function xs(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function Gn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Mi=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class _s extends Te{normalizePropertyName(v,i){return xs(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Mi.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const Mn="*";const nr=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=nr.has(c)||St.has(c),m=nr.has(v)||St.has(v);return(W,ce)=>{let De=c==Mn||c==W,Ve=v==Mn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?nr.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?nr.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),Gn(this,Qt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=Gn(this,Qt(v.animation),i),W=function Br(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function mo(c,v,i){if(":"==c[0]){const qe=function Kr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=Mn||De!=Mn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>Gn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=Gn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return ss(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=ss(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return ss(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Mt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Mt=!1),ce=gt.startTime),Mt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function di(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(pi=>{const Ci=this._makeStyleAst(pi,i);let gi=null!=Ci.offset?Ci.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(Ci.styles),ki=0;return null!=gi&&(ce++,ki=Ci.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?Ci==Wt?1:Pt*Ci:De[Ci],ki=gi*Xt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(pi,i),pi.offset=gi,m.styles.push(pi)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:Gn(this,Qt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=Gn(this,Qt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:Gn(this,Qt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function ss(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const er=new RegExp(":enter","g"),Zr=new RegExp(":leave","g");function sr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Mt=new Ki(v,i,et,W,ce,gt,[]);Mt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Mt.currentTimeline.delayNextStep(Pt),Mt.currentTimeline.setStyles([De],null,Mt.errors,qe),Gn(this,m,Mt);const Wt=Mt.timelines.filter(Zt=>Zt.containsAnimation());if(Wt.length&&Ve.size){let Zt;for(let hi=Wt.length-1;hi>=0;hi--){const Xt=Wt[hi];if(Xt.element===i){Zt=Xt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Mt.errors,qe)}return Wt.length?Wt.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),Gn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=jr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>Gn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),Gn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=jr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Mt=i.createSubContext(v.options,et);ce&&Mt.delayNextStep(ce),et===i.element&&(qe=Mt.currentTimeline),Gn(this,v.animation,Mt),Mt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Mt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Mt=gt.currentTime;Gn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Mt+(W.startTime-m.currentTimeline.startTime)}}const jr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=jr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=jr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new sc(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(er,"."+this._enterClassName)).replace(Zr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Mt)=>{gt===Z.FX?v.add(Mt):gt===Z.kp&&i.add(Mt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class sc extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",ur(Ve)),ce.push(et);const gt=v.length-1;for(let Mt=1;Mt<=gt;Mt++){let Pt=new Map(v[Mt]);const Wt=Pt.get("offset");Pt.set("offset",ur((i+Wt*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function ur(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Mt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Mt,errors:Pt}}const La={};class qr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Zo(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Mt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Mt),hi=qe&&qe.params||La,Xt=this.buildStyles(W,hi,Mt),pi=new Set,Ci=new Map,gi=new Map,ki="void"===W,Bi={params:rl(hi,Pt),delay:this.ast.options?.delay},Di=gt?[]:sr(v,i,this.ast.animation,ce,De,Zt,Xt,Bi,et,Mt);let on=0;return Di.forEach(ln=>{on=Math.max(ln.duration+ln.delay,on)}),Mt.length?Pa(i,this._triggerName,m,W,ki,Zt,Xt,[],[],Ci,gi,on,Mt):(Di.forEach(ln=>{const ps=ln.element,Nn=N(Ci,ps,new Set);ln.preStyleProps.forEach(Un=>Nn.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&pi.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Xt,Di,[...pi.values()],Ci,gi,on))}}function rl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=rl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class ol{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new qr(v,W,this.states))}),this.fallbackTransition=function al(c,v,i){return new qr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=sr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Mt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Mt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Mt)=>{gt.forEach((Pt,Wt)=>{gt.set(Wt,this._driver.computeStyle(Mt,Wt,Z.kp))})});const et=se(De.map(gt=>{const Mt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Mt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ll="ng-animate-queued",Ra="ng-animate-disabled",kr=[],ga={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Oo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const Vr="void",Io=new qi(Vr);class ma{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,rr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function hl(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(rr(v,Qe),rr(v,Qe+"-"+i),Ve.set(i,Io)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ba(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(rr(v,Qe),rr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Io),et.value!==Vr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Xt),_t(v,pi)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Wt=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Wt){if(!W)return;Wt=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Wt,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(rr(v,ll),De.onStart(()=>{cs(v,ll)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Xt=this._engine.playersByElement.get(v);if(Xt){let pi=Xt.indexOf(De);pi>=0&&Xt.splice(pi,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,Vr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Io,gt=new qi(Vr),Mt=new ba(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Mt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===ga)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){rr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class vo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ma(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(tr(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!tr(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),rr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(tr(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return tr(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=ga,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>rr(Wi,ji))});const Xt=[],pi=new Set,Ci=new Set;for(let yi=0;yipi.add(Wi)):Ci.add(Ei))}const gi=new Map,ki=Mr(Pt,Array.from(pi));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>rr(Wi,ji))}),v.push(()=>{Wt.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Xt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Di=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Bn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const ts=Bn[Us];if(ts&&ts.setForMove){if(ts.previousTriggersValues&&ts.previousTriggersValues.has(ji.triggerName)){const Yr=ts.previousTriggersValues.get(ji.triggerName),Oi=this.statesByElement.get(ji.element);if(Oi&&Oi.has(ji.triggerName)){const fn=Oi.get(ji.triggerName);fn.value=Yr,Oi.set(ji.triggerName,fn)}}return void Wi.destroy()}}const es=!Mt||!this.driver.containsElement(Mt,Bn),Wn=gi.get(Bn),go=Zt.get(Bn),as=this._buildInstruction(ji,m,go,Wn,es);if(as.errors&&as.errors.length)return void Di.push(as);if(es)return Wi.onStart(()=>wt(Bn,as.fromStyles)),Wi.onDestroy(()=>_t(Bn,as.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Bn,as.fromStyles)),Wi.onDestroy(()=>_t(Bn,as.toStyles)),void W.push(Wi);const Xr=[];as.timelines.forEach(ts=>{ts.stretchStartingKeyframe=!0,this.disabledNodes.has(ts.element)||Xr.push(ts)}),as.timelines=Xr,m.append(Bn,as.timelines),De.push({instruction:as,player:Wi,element:Bn}),as.queriedElements.forEach(ts=>N(Ve,ts,[]).push(Wi)),as.preStyleProps.forEach((ts,Yr)=>{if(ts.size){let Oi=qe.get(Yr);Oi||qe.set(Yr,Oi=new Set),ts.forEach((fn,zn)=>Oi.add(zn))}}),as.postStyleProps.forEach((ts,Yr)=>{let Oi=et.get(Yr);Oi||et.set(Yr,Oi=new Set),ts.forEach((fn,zn)=>Oi.add(zn))})});if(Di.length){const yi=[];Di.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const on=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,on))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(on,Ei,[]).push(Wi),Wi.destroy()})});const ps=Xt.filter(yi=>Po(yi,qe,et)),Nn=new Map;dl(Nn,this.driver,Ci,et,Z.kp).forEach(yi=>{Po(yi,qe,et)&&ps.push(yi)});const Un=new Map;Wt.forEach((yi,Ei)=>{dl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Nn.get(yi),ji=Un.get(yi);Nn.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Js={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Bn=Js;if(ln.size>1){let Wn=Ei;const go=[];for(;Wn=Wn.parentNode;){const as=ln.get(Wn);if(as){Bn=as;break}go.push(Wn)}go.forEach(as=>ln.set(as,Bn))}const es=this._buildAnimation(ji.namespaceId,Wi,on,ce,Un,Nn);if(ji.setRealPlayer(es),Bn===Js)Ri.push(ji);else{const Wn=this.playersByElement.get(Bn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!es.destroyed);Bn.length?Dr(this,Ei,Bn):this.processLeaveNode(Ei)}return Xt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==Vr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Mt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Wt=>{const Zt=Wt.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Wt.destroy(),Mt.push(Wt)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Mt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Xt=hi[Us];if(Xt&&Xt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const pi=hi!==qe,Ci=function qo(c){const v=[];return va(c,v),v}((m.get(hi)||kr).map(on=>on.getRealPlayer())).filter(on=>!!on.element&&on.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Di=this._buildPlayer(Zt,Bi,Ci);if(Zt.subTimeline&&W&&Mt.add(hi),pi){const on=new ba(v,Ve,hi);on.setRealPlayer(Di),et.push(on)}return Di});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function cl(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>rr(Zt,kt));const Wt=se(Pt);return Wt.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Mt.forEach(Zt=>{N(W,Zt,[]).push(Wt)}),Wt}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ba{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function tr(c){return c&&1===c.nodeType}function zr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function dl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(zr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Mt=>{const Pt=v.computeStyle(et,Mt,W);gt.set(Mt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>zr(qe,ce[Ve++])),De}function Mr(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function rr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Dr(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function va(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new vo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function Qr(c,v,i){return new ol(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class ya{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=ya.initialStylesByElement.get(v);W||ya.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(ya.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Ys(c){let v=null;return c.forEach((i,m)=>{(function Jr(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Gr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class eo{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Wt=>Wt instanceof Gr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Wt=>{Wt.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Mt=function Dt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Wt=>new Map(Wt));Mt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Mt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Ys(v[0]),v.length>1&&(m=Ys(v[v.length-1]))):v instanceof Map&&(i=Ys(v)),i||m?new ya(c,i,m):null}(v,Mt);return new Gr(v,Mt,qe,Pt)}}const Lo="@.disabled";class xa{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Lo?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class Qo extends xa{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Lo?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function yo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function ul(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Ro{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new xa("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new Qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Qi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new _s}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Qi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Ro(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new eo},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Er=He(38117),Zs=He(93887),Ar=He(20546),or=He(88652),Ir=He(19664),Vn=He(37542),pr=He(93331),ea=He(7673),oc=He(33669),Rl=He(27468),Yh=He(86648),Kh=He(84572),Dc=He(91986),io=He(5964),Zh=He(23294),Va=He(25558),Or=He(96354),Ec=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),xo=He(73703);const qs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),pl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},fl=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Vn.PI),i=(0,e.WQX)(qs,{optional:!0})||{};return{...pl,...i,enableLinkTracking:v,disabled:c}}}),gl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Ac(c){return{provide:gl,multi:!0,useClass:c}}function ac(c){return c?c.map(Ac):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const Bl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new ir((0,e.WQX)(M.hE))});class ir{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,ea.of)(this.title.getTitle())}}const Lc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new _a((0,e.WQX)(fl),(0,e.WQX)(Qi.kB,{optional:!0}),(0,e.WQX)(Qi.hb))});class _a{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,ea.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Fo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Fs(c){return c instanceof pr.wF}function Bs(c){return"string"==typeof c?new RegExp(c):c}let _o=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Vn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?oc.D:(0,Dc.c)(this.config.delay);this.router.events.pipe((0,io.p)(Fs),(0,io.p)(function bl(c){const v=function ta(c){return c?Array.isArray(c)?c.map(Bs):[Bs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Nl(c,v){return(0,Zh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Or.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ec.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Pc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Rl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,ea.of)(void 0):(0,Yh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,xo.u)(void 0),(0,Ss.U)(void 0)):(0,ea.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,ea.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Kh.z)([m,W]).pipe((0,Or.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(pr.Ix),e.KVO(fl),e.KVO(Bl),e.KVO(Lc),e.KVO(Vn.kA),e.KVO(gl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),jl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:qs,useValue:i},ac(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(_o),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Rc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Vn.HU,useValue:!0}]})}return c})(),Rc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:qs,useValue:i},ac(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(_o),e.KVO(jl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Vn.HU,useValue:!0}]})}return c})();var vl=He(45794),_r=He(41584),Ga=He(39974),ia=He(54360),Hr=He(58750);function na(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?oc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ia._)(De,Mt=>{W&&(Ve=0),De.next(Mt)},void 0,Mt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Wt="number"==typeof m?(0,_r.O)(m):(0,Hr.Tg)(m(Mt,Ve)),Zt=(0,ia._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Wt.subscribe(Zt)}else Pt()}else De.error(Mt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),sa=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Pi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),Qn=()=>["/admin/firmware"],os=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ns(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function js(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ns,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Pr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Hn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,os)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function ui(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Or.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(vl.tw),e.rXU(Er.W4),e.rXU(Ke.G),e.rXU(Ir.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,js,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Pr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Hn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,ui,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Pi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,Qn)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Qi.Sq,Qi.bT,Ir.Mm,or.$G,or.tg,or.do,or.U0,or.ZM,at.Zm,at.BC,at.vS,pr.Wk,pr.wQ,Ir.D9],styles:[".navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function ar(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function fr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function wo(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,fr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Bo(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function cc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,cc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Sa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function Vl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Sa,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function To(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function hc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,ar,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,Ta,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,wo,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Bo,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,Vl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,To,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function ka(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function jo(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let yl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Rl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Or.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.fork$),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Vn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,hc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,ka,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,jo,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Qi.YU,Qi.bT,Ir.Mm,or.ZM,Qi.vh,Ir.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[pr.n3,Yn,yl]})}return c})();class rn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const dc=[rn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let xl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[pr.iI.forRoot(dc,{preloadingStrategy:pr.Kp}),pr.iI]})}return c})();var Vo=He(57786),uc=He(73028),_l=He(5779),Vs=He(21413),pc=He(33726),gr=He(983),zs=He(71985),zl=He(70152),ra=He(70980);function Zn(){return["Mac","iPhone","iPad"].some(v=>navigator.userAgent.includes(v))?"apple":"pc"}function wl(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let Qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new Vs.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=wl(W.keys,Zn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,pc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,zl.B)(this.sequenceDebounce),(0,uc.Z)(()=>{const gt=et;et="";const Mt=this.sequenceMaps.get(Ve);if(Mt.hotkeyMap.has(gt)){const Pt=Mt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,ea.of)(Pt.hotkey)}return gr.w}))},W={...this.defaults,...i};let ce=wl(W.keys,Zn());return(()=>{const Ve={subject:new Vs.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,ea.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Mt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Mt)}return Ve.subject.asObservable()})().pipe((0,sa.Q)(this.dispose.pipe((0,io.p)(Ve=>Ve===ce))),(0,io.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,ra.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=wl(m.keys,Zn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,ea.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new zs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,sa.Q)(this.dispose.pipe((0,io.p)(De=>De===W))))}removeShortcuts(i){(function qh(c){return Array.isArray(c)?c:[c]})(i).map(W=>wl(W,Zn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Qi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();const Re=new Er.Vy("App");let Ue=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Ar.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Ar.c.production&&Er.Vy.enableProductionMode(),Re.debug("init"),this.i18nService.init(Ar.c.defaultLanguage,Ar.c.supportedLanguages),this.subs.sink=(0,Rl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.keysBoundActive.forEach(i=>{this.subs.add(this.hotkeys.addSequenceShortcut({keys:i}).subscribe(()=>{this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))})}setTitle(){const i=this.router.events.pipe((0,io.p)(m=>m instanceof pr.wF));(0,Vo.h)(this.translateService.onLangChange,i).pipe((0,Or.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,io.p)(m=>"primary"===m.outlet),(0,uc.Z)(m=>m.data),(0,Er.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(pr.Ix),e.rXU(pr.nX),e.rXU(M.hE),e.rXU(Ir.c$),e.rXU(Ke.G),e.rXU(Er.W4),e.rXU(ut.d),e.rXU(_l.r1),e.rXU(Qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[pr.n3]})}return c})();var Be=He(31635);class Ii{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class vn extends Ii{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class In extends Ii{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Qs extends Ii{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Gl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof vn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof In?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Qs?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Wa extends Gl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Pd(){}function no(c){return null==c?Pd:function(){return this.querySelector(c)}}function Ku(){return[]}function Zu(c){return null==c?Ku:function(){return this.querySelectorAll(c)}}function id(c){return function(){return this.matches(c)}}function Bc(c){return function(v){return v.matches(c)}}var so=Array.prototype.find;function vh(){return this.firstElementChild}var zo=Array.prototype.filter;function Vc(){return Array.from(this.children)}function Rd(c){return new Array(c.length)}function yh(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function xh(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}yh.prototype={constructor:yh,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var rd="http://www.w3.org/1999/xhtml";const ni={svg:"http://www.w3.org/2000/svg",xhtml:rd,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function pn(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),ni.hasOwnProperty(v)?{space:ni[v],local:c}:c}function gc(c){return function(){this.removeAttribute(c)}}function zc(c){return function(){this.removeAttributeNS(c.space,c.local)}}function hs(c,v){return function(){this.setAttribute(c,v)}}function Gc(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function aa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function od(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function Vf(c){return function(){this.style.removeProperty(c)}}function mm(c,v,i){return function(){this.style.setProperty(c,v,i)}}function ep(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function So(c,v){return c.style.getPropertyValue(v)||od(c).getComputedStyle(c,null).getPropertyValue(v)}function tp(c){return function(){delete this[c]}}function Ma(c,v){return function(){this[c]=v}}function Sl(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function jd(c){return c.trim().split(/^|\s+/)}function Vd(c){return c.classList||new ad(c)}function ad(c){this._node=c,this._names=jd(c.getAttribute("class")||"")}function wh(c,v){for(var i=Vd(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var op=[null];function Lr(c,v){this._groups=c,this._parents=v}function Wl(){return new Lr([[document.documentElement]],op)}Lr.prototype=Wl.prototype={constructor:Lr,select:function Ld(c){"function"!=typeof c&&(c=no(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=Ci+1);!(Bi=Xt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function sd(c){function v(Mt,Pt){return Mt&&Pt?c(Mt.__data__,Pt.__data__):!Mt-!Pt}c||(c=jf);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?Vf:"function"==typeof v?ep:mm)(c,v,i??"")):So(this.node(),c)},property:function zf(c,v){return arguments.length>1?this.each((null==v?tp:"function"==typeof v?Sl:Ma)(c,v)):this.node()[c]},classed:function Sh(c,v){var i=jd(c+"");if(arguments.length<2){for(var m=Vd(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?$c:bc,W=0;W{}};function lp(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?ql(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?ql(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=hp.exec(c))?new ao(v[1],v[2],v[3],1):(v=Kl.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=vc.exec(c))?ql(v[1],v[2],v[3],v[4]):(v=lr.exec(c))?ql(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=dp.exec(c))?Xf(v[1],v[2]/100,v[3]/100,1):(v=qd.exec(c))?Xf(v[1],v[2]/100,v[3]/100,v[4]):Nh.hasOwnProperty(c)?eu(Nh[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function eu(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function ql(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function tu(c,v,i,m){return 1===arguments.length?function $f(c){return c instanceof Xl||(c=Zl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${eh(this.r)}${eh(this.g)}${eh(this.b)}`}function fp(){const c=Fh(this.opacity);return`${1===c?"rgb(":"rgba("}${Jc(this.r)}, ${Jc(this.g)}, ${Jc(this.b)}${1===c?")":`, ${c})`}`}function Fh(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function Jc(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function eh(c){return((c=Jc(c))<16?"0":"")+c.toString(16)}function Xf(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ws(c,v,i,m)}function gp(c){if(c instanceof Ws)return new Ws(c.h,c.s,c.l,c.opacity);if(c instanceof Xl||(c=Zl(c)),!c)return new Ws;if(c instanceof Ws)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ws(De,Ve,qe,c.opacity)}function Ws(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function bp(c){return(c=(c||0)%360)<0?c+360:c}function fd(c){return Math.max(0,Math.min(1,c||0))}function Yf(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function nu(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}Lh(Xl,Zl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:Qd,formatHex:Qd,formatHex8:function Jd(){return this.rgb().formatHex8()},formatHsl:function Qc(){return gp(this).formatHsl()},formatRgb:up,toString:up}),Lh(ao,tu,Rh(Xl,{brighter(c){return c=null==c?qc:Math.pow(qc,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(Jc(this.r),Jc(this.g),Jc(this.b),Fh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function pp(){return`#${eh(this.r)}${eh(this.g)}${eh(this.b)}${eh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:fp,toString:fp})),Lh(Ws,function mp(c,v,i,m){return 1===arguments.length?gp(c):new Ws(c,v,i,m??1)},Rh(Xl,{brighter(c){return c=null==c?qc:Math.pow(qc,c),new Ws(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ws(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(Yf(c>=240?c-240:c+120,W,m),Yf(c,W,m),Yf(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ws(bp(this.h),fd(this.s),fd(this.l),Fh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=Fh(this.opacity);return`${1===c?"hsl(":"hsla("}${bp(this.h)}, ${100*fd(this.s)}%, ${100*fd(this.l)}%${1===c?")":`, ${c})`}`}}));const Dl=c=>()=>c;function Zf(c,v){var i=v-c;return i?function vp(c,v){return function(i){return c+i*v}}(c,i):Dl(isNaN(c)?v:c)}const Bh=function c(v){var i=function yp(c){return 1==(c=+c)?Zf:function(v,i){return i-v?function bm(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):Dl(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=tu(W)).r,(ce=tu(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=Zf(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function qf(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return nu((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Aa(m,W)})),i=ou.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--ih}()}finally{ih=0,function Vt(){for(var c,i,v=zh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:zh=i);sh=c,Ut(m)}(),xc=0}}function ft(){var c=rh.now(),v=c-cu;v>lu&&(Gh-=v,cu=c)}function Ut(c){ih||(ha&&(ha=clearTimeout(ha)),c-xc>24?(c<1/0&&(ha=setTimeout(it,c-rh.now()-Gh)),nh&&(nh=clearInterval(nh))):(nh||(cu=rh.now(),nh=setInterval(ft,lu)),ih=1,hu(it)))}function ei(c,v,i){var m=new ae;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}ae.prototype=we.prototype={constructor:ae,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?be():+i)+(null==v?0:+v),!this._next&&sh!==this&&(sh?sh._next=this:zh=this,sh=this),this._call=c,this._time=i,Ut()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ut())}};var ii=Yd("start","end","cancel","interrupt"),wi=[],_i=0,sn=3;function vs(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Mt,Pt,Wt;if(1!==i.state)return qe();for(gt in m)if((Wt=m[gt]).name===i.name){if(Wt.state===sn)return ei(De);4===Wt.state?(Wt.state=6,Wt.timer.stop(),Wt.on.call("interrupt",c,c.__data__,Wt.index,Wt.group),delete m[gt]):+gt_i)throw new Error("too late; already scheduled");return i}function En(c,v){var i=An(c,v);if(i.state>sn)throw new Error("too late; already running");return i}function An(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var cr,Ns=180/Math.PI,mr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Mo(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Mt.push(W(Mt)+"rotate(",null,m)-2,x:Aa(et,gt)})):gt&&Mt.push(W(Mt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Mt,Pt),function Ve(et,gt,Mt,Pt){et!==gt?Pt.push({i:Mt.push(W(Mt)+"skewX(",null,m)-2,x:Aa(et,gt)}):gt&&Mt.push(W(Mt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Mt,Pt),function qe(et,gt,Mt,Pt,Wt,Zt){if(et!==Mt||gt!==Pt){var hi=Wt.push(W(Wt)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Aa(et,Mt)},{i:hi-2,x:Aa(gt,Pt)})}else(1!==Mt||1!==Pt)&&Wt.push(W(Wt)+"scale("+Mt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Mt,Pt),et=gt=null,function(Wt){for(var Xt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Rn:En;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function nn(c,v){var i=pn(c),m="transform"===i?ue:ai;return this.attrTween(c,"function"==typeof v?(i.local?wn:tn)(i,m,zt(this,"attr."+c,v)):null==v?(i.local?Li:oi)(i):(i.local?Yi:Zi)(i,m,v))},attrTween:function lo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=pn(c);return this.tween(i,(m.local?$s:hr)(m,v))},style:function J0(c,v,i){var m="transform"==(c+="")?ne:ai;return null==v?this.styleTween(c,function bx(c,v){var i,m,W;return function(){var ce=So(this,c),De=(this.style.removeProperty(c),So(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Sp(c)):"function"==typeof v?this.styleTween(c,function kp(c,v,i){var m,W,ce;return function(){var De=So(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=So(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,zt(this,"style."+c,v))).each(function Q0(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=En(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Sp(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function ah(c,v,i){var m,ce,W=i+"";return function(){var De=So(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Sw(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Tw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function eb(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function _m(c){return this.tween("text","function"==typeof c?function xm(c){return function(){var v=c(this);this.textContent=v??""}}(zt(this,"text",c)):function kw(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function tb(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function Dw(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Mw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function px(){return this.on("end.remove",function ux(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function Tt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=An(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Da.prototype.transition=function wm(c){var v,i;c instanceof lh?(v=c._id,c=c._name):(v=Cm(),(i=ig).time=be(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function $o(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function vd(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Mt],qe)<0?et=Mt+1:gt=Mt}while(etbd(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===bd||c===$o?c:hb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Mt=W(Ve,qe,et,gt-1);return Mt>et&&m(Ve[Mt-1],qe)>-m(Ve[Mt],qe)?Mt-1:Mt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Mt],qe)<=0?et=Mt+1:gt=Mt}while(et=db?10:ce>=Ex?5:ce>=ub?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etco(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(Ap.setTime(+ce),gb.setTime(+De),c(Ap),c(gb),Math.floor(i(Ap,gb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Am=co(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Am.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?co(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Am:null);const Ip=co(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*hh)},(c,v)=>(v-c)/hh,c=>c.getUTCSeconds()),fu=co(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*hh)},(c,v)=>{c.setTime(+c+v*Al)},(c,v)=>(v-c)/Al,c=>c.getMinutes()),lg=co(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Al)},(c,v)=>(v-c)/Al,c=>c.getUTCMinutes()),cg=co(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*hh-c.getMinutes()*Al)},(c,v)=>{c.setTime(+c+v*dh)},(c,v)=>(v-c)/dh,c=>c.getHours()),Om=co(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*dh)},(c,v)=>(v-c)/dh,c=>c.getUTCHours()),Uh=co(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Al)/uh,c=>c.getDate()-1),Rx=(co(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/uh,c=>c.getUTCDate()-1),co(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/uh,c=>Math.floor(c/uh)));function gu(c){return co(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Al)/Ep)}const mb=gu(0);function xd(c){return co(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/Ep)}gu(1),gu(2),gu(3),gu(4),gu(5),gu(6);const Nm=xd(0),ug=(xd(1),xd(2),xd(3),xd(4),xd(5),xd(6),co(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),Gx=co(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),pg=co(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());pg.every=c=>isFinite(c=Math.floor(c))&&c>0?co(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const fg=co(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function gg(c,v,i,m,W,ce){const De=[[Ip,1,hh],[Ip,5,5e3],[Ip,15,15e3],[Ip,30,3e4],[ce,1,Al],[ce,5,5*Al],[ce,15,15*Al],[ce,30,30*Al],[W,1,dh],[W,3,3*dh],[W,6,6*dh],[W,12,12*dh],[m,1,uh],[m,2,2*uh],[i,1,Ep],[v,1,Ax],[v,3,3*Ax],[c,1,fb]];function qe(et,gt,Mt){const Pt=Math.abs(gt-et)/Mt,Wt=vd(([,,Xt])=>Xt).right(De,Pt);if(Wt===De.length)return c.every(ag(et/fb,gt/fb,Mt));if(0===Wt)return Am.every(Math.max(ag(et,gt,Mt),1));const[Zt,hi]=De[Pt/De[Wt-1][2]isFinite(c=Math.floor(c))&&c>0?co(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Wx,Bm]=gg(fg,Gx,Nm,Rx,Om,lg),[Lp,Tb]=gg(pg,ug,mb,Uh,cg,fu);var Rp=new Date,_d=new Date;function wc(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return Rp.setTime(+ce),_d.setTime(+De),c(Rp),c(_d),Math.floor(i(Rp,_d))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const vu=864e5,kb=7*vu;function Wh(c){return wc(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/kb})}var jm=Wh(0),kn=Wh(1),Ql=(Wh(2),Wh(3),Wh(4));const vg=(Wh(5),Wh(6),wc(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/vu},function(c){return c.getUTCDate()-1}));function ph(c){return wc(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/kb})}var Pb=ph(0),yg=ph(1),yu=(ph(2),ph(3),ph(4));const Jx=(ph(5),ph(6),wc(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/vu,c=>c.getDate()-1));var xg=wc(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});xg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?wc(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const Fp=xg;var zm=wc(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});zm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?wc(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const xu=zm;function Gm(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function Bp(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function jp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Fb={"-":"",_:" ",0:"0"},ho=/^\s*\d+/,t_=/^%/,Tc=/[\\^$*+?|[\]().{}]/g;function ds(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Bb(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function _g(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function Zw(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=ho.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Wm(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Cg(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function $m(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function fh(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function Vb(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function n_(c,v,i){var m=ho.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function wg(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function s_(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function zp(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function zb(c,v,i){var m=ho.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Cu(c,v,i){var m=ho.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Gp(c,v,i){var m=t_.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Xm(c,v,i){var m=ho.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Hp(c,v,i){var m=ho.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ds(c.getDate(),v,2)}function Gb(c,v){return ds(c.getHours(),v,2)}function r_(c,v){return ds(c.getHours()%12||12,v,2)}function o_(c,v){return ds(1+Jx.count(Fp(c),c),v,3)}function Hb(c,v){return ds(c.getMilliseconds(),v,3)}function a_(c,v){return Hb(c,v)+"000"}function l_(c,v){return ds(c.getMonth()+1,v,2)}function c_(c,v){return ds(c.getMinutes(),v,2)}function Ub(c,v){return ds(c.getSeconds(),v,2)}function Wb(c){var v=c.getDay();return 0===v?7:v}function $b(c,v){return ds(Pb.count(Fp(c)-1,c),v,2)}function Km(c){var v=c.getDay();return v>=4||0===v?yu(c):yu.ceil(c)}function Tg(c,v){return c=Km(c),ds(yu.count(Fp(c),c)+(4===Fp(c).getDay()),v,2)}function h_(c){return c.getDay()}function qw(c,v){return ds(yg.count(Fp(c)-1,c),v,2)}function d_(c,v){return ds(c.getFullYear()%100,v,2)}function u_(c,v){return ds((c=Km(c)).getFullYear()%100,v,2)}function Xb(c,v){return ds(c.getFullYear()%1e4,v,4)}function p_(c,v){var i=c.getDay();return ds((c=i>=4||0===i?yu(c):yu.ceil(c)).getFullYear()%1e4,v,4)}function f_(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ds(v/60|0,"0",2)+ds(v%60,"0",2)}function Zm(c,v){return ds(c.getUTCDate(),v,2)}function qm(c,v){return ds(c.getUTCHours(),v,2)}function Yb(c,v){return ds(c.getUTCHours()%12||12,v,2)}function Up(c,v){return ds(1+vg.count(xu(c),c),v,3)}function wu(c,v){return ds(c.getUTCMilliseconds(),v,3)}function Wp(c,v){return wu(c,v)+"000"}function g_(c,v){return ds(c.getUTCMonth()+1,v,2)}function m_(c,v){return ds(c.getUTCMinutes(),v,2)}function b_(c,v){return ds(c.getUTCSeconds(),v,2)}function Sg(c){var v=c.getUTCDay();return 0===v?7:v}function Qm(c,v){return ds(jm.count(xu(c)-1,c),v,2)}function Kb(c){var v=c.getUTCDay();return v>=4||0===v?Ql(c):Ql.ceil(c)}function Qw(c,v){return c=Kb(c),ds(Ql.count(xu(c),c)+(4===xu(c).getUTCDay()),v,2)}function Jw(c){return c.getUTCDay()}function v_(c,v){return ds(kn.count(xu(c)-1,c),v,2)}function y_(c,v){return ds(c.getUTCFullYear()%100,v,2)}function eT(c,v){return ds((c=Kb(c)).getUTCFullYear()%100,v,2)}function x_(c,v){return ds(c.getUTCFullYear()%1e4,v,4)}function tT(c,v){var i=c.getUTCDay();return ds((c=i>=4||0===i?Ql(c):Ql.ceil(c)).getUTCFullYear()%1e4,v,4)}function __(){return"+0000"}function Zb(){return"%"}function qb(c){return+c}function kg(c){return Math.floor(+c/1e3)}function ev(c){return null===c?NaN:+c}!function Jb(c){(function e_(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Vp(W),gt=_u(W),Mt=Vp(ce),Pt=_u(ce),Wt=Vp(De),Zt=_u(De),hi=Vp(Ve),Xt=_u(Ve),pi=Vp(qe),Ci=_u(qe),gi={a:function Ei(Oi){return De[Oi.getDay()]},A:function ji(Oi){return ce[Oi.getDay()]},b:function Wi(Oi){return qe[Oi.getMonth()]},B:function Bn(Oi){return Ve[Oi.getMonth()]},c:null,d:Ym,e:Ym,f:a_,g:u_,G:p_,H:Gb,I:r_,j:o_,L:Hb,m:l_,M:c_,p:function es(Oi){return W[+(Oi.getHours()>=12)]},q:function Wn(Oi){return 1+~~(Oi.getMonth()/3)},Q:qb,s:kg,S:Ub,u:Wb,U:$b,V:Tg,w:h_,W:qw,x:null,X:null,y:d_,Y:Xb,Z:f_,"%":Zb},ki={a:function go(Oi){return De[Oi.getUTCDay()]},A:function as(Oi){return ce[Oi.getUTCDay()]},b:function Xr(Oi){return qe[Oi.getUTCMonth()]},B:function Pl(Oi){return Ve[Oi.getUTCMonth()]},c:null,d:Zm,e:Zm,f:Wp,g:eT,G:tT,H:qm,I:Yb,j:Up,L:wu,m:g_,M:m_,p:function ts(Oi){return W[+(Oi.getUTCHours()>=12)]},q:function Yr(Oi){return 1+~~(Oi.getUTCMonth()/3)},Q:qb,s:kg,S:b_,u:Sg,U:Qm,V:Qw,w:Jw,W:v_,x:null,X:null,y:y_,Y:x_,Z:__,"%":Zb},Bi={a:function Nn(Oi,fn,zn){var xi=Wt.exec(fn.slice(zn));return xi?(Oi.w=Zt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},A:function Ui(Oi,fn,zn){var xi=Mt.exec(fn.slice(zn));return xi?(Oi.w=Pt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},b:function Un(Oi,fn,zn){var xi=pi.exec(fn.slice(zn));return xi?(Oi.m=Ci.get(xi[0].toLowerCase()),zn+xi[0].length):-1},B:function Ri(Oi,fn,zn){var xi=hi.exec(fn.slice(zn));return xi?(Oi.m=Xt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},c:function Ji(Oi,fn,zn){return ln(Oi,v,fn,zn)},d:Vb,e:Vb,f:Cu,g:Wm,G:Um,H:wg,I:wg,j:n_,L:zb,m:fh,M:s_,p:function ps(Oi,fn,zn){var xi=et.exec(fn.slice(zn));return xi?(Oi.p=gt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},q:$m,Q:Xm,s:Hp,S:zp,u:_g,U:Hm,V:Zw,w:Bb,W:jb,x:function Js(Oi,fn,zn){return ln(Oi,i,fn,zn)},X:function yi(Oi,fn,zn){return ln(Oi,m,fn,zn)},y:Wm,Y:Um,Z:Cg,"%":Gp};function Di(Oi,fn){return function(zn){var Ko,gn,dr,xi=[],br=-1,Es=0,Yo=Oi.length;for(zn instanceof Date||(zn=new Date(+zn));++br53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Yo=(Es=Bp(jp(xi.y,0,1))).getUTCDay(),Es=Yo>4||0===Yo?kn.ceil(Es):kn(Es),Es=vg.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Yo=(Es=Gm(jp(xi.y,0,1))).getDay(),Es=Yo>4||0===Yo?yg.ceil(Es):yg(Es),Es=Jx.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Yo="Z"in xi?Bp(jp(xi.y,0,1)).getUTCDay():Gm(jp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Yo+5)%7:xi.w+7*xi.U-(Yo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,Bp(xi)):Gm(xi)}}function ln(Oi,fn,zn,xi){for(var Ko,gn,br=0,Es=fn.length,Yo=zn.length;br=Yo)return-1;if(37===(Ko=fn.charCodeAt(br++))){if(Ko=fn.charAt(br++),!(gn=Bi[Ko in Fb?fn.charAt(br++):Ko])||(xi=gn(Oi,zn,xi))<0)return-1}else if(Ko!=zn.charCodeAt(xi++))return-1}return xi}return gi.x=Di(i,gi),gi.X=Di(m,gi),gi.c=Di(v,gi),ki.x=Di(i,ki),ki.X=Di(m,ki),ki.c=Di(v,ki),{format:function(Oi){var fn=Di(Oi+="",gi);return fn.toString=function(){return Oi},fn},parse:function(Oi){var fn=on(Oi+="",!1);return fn.toString=function(){return Oi},fn},utcFormat:function(Oi){var fn=Di(Oi+="",ki);return fn.toString=function(){return Oi},fn},utcParse:function(Oi){var fn=on(Oi+="",!0);return fn.toString=function(){return Oi},fn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const C_=vd(bd).right,Xp=(vd(ev),C_);function T_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function k_(c){return+c}var tv=[0,1];function Tu(c){return c}function Yp(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function S_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function M_(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Ag:M_,qe=et=null,Mt}function Mt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Mt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Aa)))(Pt)))},Mt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,k_),gt()):c.slice()},Mt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Mt.rangeRound=function(Pt){return v=Array.from(Pt),i=T_,gt()},Mt.clamp=function(Pt){return arguments.length?(De=!!Pt||Tu,gt()):De!==Tu},Mt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Mt.unknown=function(Pt){return arguments.length?(ce=Pt,Mt):ce},function(Pt,Wt){return m=Pt,W=Wt,gt()}}()(Tu,Tu)}function qp(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Su,A_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ig(c){if(!(v=A_.exec(c)))throw new Error("invalid format: "+c);var v;return new $h({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function $h(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function Pg(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Cd(c){return(c=Pg(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=Pg(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}Ig.prototype=$h.prototype,$h.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function Og(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function lv(c,v){var i=Pg(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Su=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+Pg(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function dv(c){return c}var Ja,e0,fv,Lg=Array.prototype.map,uv=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function L_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function pb(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=Em(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function Qp(){var c=iv();return c.copy=function(){return function Zp(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,Qp())},qp.apply(c,arguments),L_(c)}function Rg(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(Lg.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?dv:function sT(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(Lg.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Mt){var Pt=(Mt=Ig(Mt)).fill,Wt=Mt.align,Zt=Mt.sign,hi=Mt.symbol,Xt=Mt.zero,pi=Mt.width,Ci=Mt.comma,gi=Mt.precision,ki=Mt.trim,Bi=Mt.type;"n"===Bi?(Ci=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Xt||"0"===Pt&&"="===Wt)&&(Xt=!0,Pt="0",Wt="=");var Di="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",on="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Nn(Ui){var Ji,Js,yi,Un=Di,Ri=on;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function O_(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?uv[8+Su/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Js=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}Ci&&!Xt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Nn.toString=function(){return Mt+""},Nn}return{format:et,formatPrefix:function gt(Mt,Pt){var Wt=et(((Mt=Ig(Mt)).type="f",Mt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Cd(Pt)/3))),hi=Math.pow(10,-Zt),Xt=uv[8+Zt/3];return function(pi){return Wt(hi*pi)+Xt}}}}(c),e0=Ja.format,fv=Ja.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=Xh){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(Ng(this,v))}has(v){return super.has(Ng(this,v))}set(v,i){return super.set(function gv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function mv({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function Ng({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function Xh(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const s0=Symbol("implicit");function Jp(){var c=new n0,v=[],i=[],m=s0;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==s0)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return Jp(v,i).unknown(m)},qp.apply(W,arguments),W}function r0(){var ce,De,c=Jp().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Mt(){var Pt=v().length,Wt=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function gh(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?Td:c<=-1?-Td:Math.asin(c)}const l0=Math.PI,Sd=2*l0,kd=1e-6,B_=Sd-kd;function _v(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return _v;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;Wkd)if(Math.abs(Mt*qe-et*gt)>kd&&ce){let Wt=m-De,Zt=W-Ve,hi=qe*qe+et*et,Xt=Wt*Wt+Zt*Zt,pi=Math.sqrt(hi),Ci=Math.sqrt(Pt),gi=ce*Math.tan((l0-Math.acos((hi+Pt-Xt)/(2*pi*Ci)))/2),ki=gi/Ci,Bi=gi/pi;Math.abs(ki-1)>kd&&this._append`L${v+ki*gt},${i+ki*Mt}`,this._append`A${ce},${ce},0,0,${+(Mt*Wt>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Mt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>kd||Math.abs(this._y1-gt)>kd)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%Sd+Sd),Pt>B_?this._append`A${m},${m},0,1,${Mt},${v-Ve},${i-qe}A${m},${m},0,1,${Mt},${this._x1=et},${this._y1=gt}`:Pt>kd&&this._append`A${m},${m},0,${+(Pt>=l0)},${Mt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function jg(c){return c.innerRadius}function G_(c){return c.outerRadius}function H_(c){return c.startAngle}function Cv(c){return c.endAngle}function wv(c){return c&&c.padAngle}function sf(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/el(Ve*Ve+qe*qe),gt=et*qe,Mt=-et*Ve,Pt=c+gt,Wt=v+Mt,Zt=i+gt,hi=m+Mt,Xt=(Pt+Zt)/2,pi=(Wt+hi)/2,Ci=Zt-Pt,gi=hi-Wt,ki=Ci*Ci+gi*gi,Bi=W-ce,Di=Pt*hi-Zt*Wt,on=(gi<0?-1:1)*el(F_(0,Bi*Bi*ki-Di*Di)),ln=(Di*gi-Ci*on)/ki,ps=(-Di*Ci-gi*on)/ki,Nn=(Di*gi+Ci*on)/ki,Ui=(-Di*Ci+gi*on)/ki,Un=ln-Xt,Ri=ps-pi,Ji=Nn-Xt,Js=Ui-pi;return Un*Un+Ri*Ri>Ji*Ji+Js*Js&&(ln=Nn,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Mt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function h0(){var c=jg,v=G_,i=uo(0),m=null,W=H_,ce=Cv,De=wv,Ve=null,qe=function z_(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Bg(v)}(et);function et(){var gt,Mt,Pt=+c.apply(this,arguments),Wt=+v.apply(this,arguments),Zt=W.apply(this,arguments)-Td,hi=ce.apply(this,arguments)-Td,Xt=a0(hi-Zt),pi=hi>Zt;if(Ve||(Ve=gt=qe()),Wtpo)if(Xt>nf-po)Ve.moveTo(Wt*wd(Zt),Wt*Jl(Zt)),Ve.arc(0,0,Wt,Zt,hi,!pi),Pt>po&&(Ve.moveTo(Pt*wd(hi),Pt*Jl(hi)),Ve.arc(0,0,Pt,hi,Zt,pi));else{var Ri,Ji,Ci=Zt,gi=hi,ki=Zt,Bi=hi,Di=Xt,on=Xt,ln=De.apply(this,arguments)/2,ps=ln>po&&(m?+m.apply(this,arguments):el(Pt*Pt+Wt*Wt)),Nn=tf(a0(Wt-Pt)/2,+i.apply(this,arguments)),Ui=Nn,Un=Nn;if(ps>po){var Js=xv(ps/Pt*Jl(ln)),yi=xv(ps/Wt*Jl(ln));(Di-=2*Js)>po?(ki+=Js*=pi?1:-1,Bi-=Js):(Di=0,ki=Bi=(Zt+hi)/2),(on-=2*yi)>po?(Ci+=yi*=pi?1:-1,gi-=yi):(on=0,Ci=gi=(Zt+hi)/2)}var Ei=Wt*wd(Ci),ji=Wt*Jl(Ci),Wi=Pt*wd(Bi),Bn=Pt*Jl(Bi);if(Nn>po){var Xr,es=Wt*wd(gi),Wn=Wt*Jl(gi),go=Pt*wd(ki),as=Pt*Jl(ki);if(Xt1?0:c<-1?Fg:Math.acos(c)}((Pl*Yr+ts*Oi)/(el(Pl*Pl+ts*ts)*el(Yr*Yr+Oi*Oi)))/2),zn=el(Xr[0]*Xr[0]+Xr[1]*Xr[1]);Ui=tf(Nn,(Pt-zn)/(fn-1)),Un=tf(Nn,(Wt-zn)/(fn+1))}else Ui=Un=0}on>po?Un>po?(Ri=sf(go,as,Ei,ji,Wt,Un,pi),Ji=sf(es,Wn,Wi,Bn,Wt,Un,pi),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Unpo&&Di>po?Ui>po?(Ri=sf(Wi,Bn,es,Wn,Pt,-Ui,pi),Ji=sf(Ei,ji,go,as,Pt,-Ui,pi),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function Sv(c){return c}var X_=He(76021);const u0=["caretElm"],p0=c=>({model:c});function kv(c,v){}function f0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,kv,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,p0,i.context))}}function g0(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function Y_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function K_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Mv=["*"];function Z_(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function Dv(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const Vv=["ngx-charts-svg-radial-gradient",""];function c1(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const d1=["ngx-charts-count-up",""];function xT(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function Hv(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function _T(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function f1(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function Uv(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function v0(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function g1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,_T,1,2,"div",11)(3,f1,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,Uv,1,2,"div",14)(7,v0,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const zg=["tooltipTemplate"],af=(c,v)=>[c,v],dy=["ngx-charts-pie-label",""],Iu=["ngx-charts-pie-arc",""];function Ou(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Pu=["ngx-charts-pie-series",""];function Lu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Ru(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,Lu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function nC(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function Cy(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:nC(ce.value,c,v)}),this[W]}}}}var Jn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Jn||{});function Xg(c,v,i){return i===Jn.Top?c.top-7:i===Jn.Bottom?c.top+c.height-v.height+7:i===Jn.Center?c.top+c.height/2-v.height/2:void 0}function Yg(c,v,i){return i===Jn.Left?c.left-7:i===Jn.Right?c.left+c.width-v.width+7:i===Jn.Center?c.left+c.width/2-v.width/2:void 0}class ua{static calculateVerticalAlignment(v,i,m){let W=Xg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Jn.Top&&(ce=v.height/2-m.height/2+7),W===Jn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Jn.Center&&(ce=i.height/2-m.height/2);const De=Xg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Yg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Jn.Left&&(ce=v.width/2-m.width/2+7),W===Jn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Jn.Center&&(ce=i.width/2-m.width/2);const De=Yg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Jn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Jn.Left&&v.left-i.width-W<0&&(ce=!0),m===Jn.Top&&v.top-i.height-W<0&&(ce=!0),m===Jn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Jn.Right?(Ve=-7,De=ua.calculateVerticalCaret(m,i,W,ce)):v===Jn.Left?(Ve=i.width,De=ua.calculateVerticalCaret(m,i,W,ce)):v===Jn.Top?(De=i.height,Ve=ua.calculateHorizontalCaret(m,i,W,ce)):v===Jn.Bottom&&(De=-7,Ve=ua.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Jn.Right?(Ve=m.left+m.width+W,De=ua.calculateVerticalAlignment(m,i,ce)):v===Jn.Left?(Ve=m.left-i.width-W,De=ua.calculateVerticalAlignment(m,i,ce)):v===Jn.Top?(De=m.top-i.height-W,Ve=ua.calculateHorizontalAlignment(m,i,ce)):v===Jn.Bottom&&(De=m.top+m.height+W,Ve=ua.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(ua.shouldFlip(m,i,v,W)){if(v===Jn.Right)return Jn.Left;if(v===Jn.Left)return Jn.Right;if(v===Jn.Top)return Jn.Bottom;if(v===Jn.Bottom)return Jn.Top}return v}}let tc=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Qi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=ua.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=ua.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=ua.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(u0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,f0,2,4,"span",3)(5,g0,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Qi.bT,Qi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,Be.Cg)([Cy(100)],c.prototype,"onWindowResize",null),c})();class sC{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let ic=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function wy(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new Wa(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new vn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),tl=(()=>{class c extends sC{constructor(i){super(i),this.type=tc}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(ic))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Xo=function(c){return c.Right="right",c.Below="below",c}(Xo||{}),Nu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Nu||{}),xn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(xn||{});let Ty=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function _f(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Sy=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Kg=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=_f(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,Y_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,K_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Sy,Qi.bT,Qi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),Fu=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Xo,this.LegendType=Nu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Xo.Right)&&(i=this.legendType===Nu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Xo.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===xn.Linear?Nu.ScaleLegend:Nu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([tl]),e.OA$],ngContentSelectors:Mv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Z_,1,5,"ngx-charts-scale-legend",2)(4,Dv,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[Ty,Kg,Qi.bT],encapsulation:2,changeDetection:0}),c})(),rC=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function A0(c){return"[object Date]"===toString.call(c)}let ky=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=xn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Qi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new rC(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Qi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function Cf(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var Zg=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(Zg||{});let Dy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Qi.MD]]}),c})();var wf=function(c){return c.popover="popover",c.tooltip="tooltip",c}(wf||{}),Bu=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}(Bu||{});let I0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Jn.Top,this.tooltipAlignment=Jn.Center,this.tooltipType=wf.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=Bu.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===Bu.all||this.tooltipShowEvent===Bu.focus}get listensForHover(){return this.tooltipShowEvent===Bu.all||this.tooltipShowEvent===Bu.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(tl),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),Ey=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[ic,tl],imports:[[Qi.MD]]}),c})();const qg={};function Tf(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,qg[c]?Tf():(qg[c]=!0,c)}var nc=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(nc||{});let Py=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:Vv,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,c1,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Qi.Sq],encapsulation:2,changeDetection:0}),c})();function Ry(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function Ny(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Mt;function Pt(Wt){let Zt;const hi=Wt-Mt;Zt=Ve?ce-Ry(hi,0,ce-De,gt):Ry(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Xt=hiPt(pi))}return requestAnimationFrame(Wt=>(Mt=Wt,Pt(Wt)))}let L0,Fy=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function P0(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=Ny(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:d1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?L0=window:typeof global<"u"&&(L0=global);let nm=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=_f(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:Cf(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,xT,1,2,"div",1)(2,Hv,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,g1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[Fy,Qi.bT,Qi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),il=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Qi.MD,Dy,Ey],Qi.MD,Dy,Ey]}),c})();const By=[{name:"vivid",selectable:!0,group:xn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:xn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:xn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:xn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:xn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:xn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:xn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:xn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:xn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:xn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:xn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:xn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:xn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:xn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:xn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class sm{constructor(v,i,m,W){"string"==typeof v&&(v=By.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=By.find(ce=>ce.name===v)),i){case xn.Quantile:W=gh().range(v.domain).domain(m);break;case xn.Ordinal:W=Jp().range(v.domain).domain(m);break;case xn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=Rg(0,1,1/ce.length);W=Qp().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===xn.Linear){const i=Qp().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=Qp().domain(this.domain).range([0,1]),W=r0().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Mt=[];for(Mt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Mt.push({color:Pt,offset:Wt,opacity:1}),gt=Wt,et++}}if(Mt[Mt.length-1].offset<100&&Mt.push({color:ce,offset:qe,opacity:1}),qe===De)Mt[0].offset=0,Mt[1].offset=100;else if(100!==Mt[Mt.length-1].offset)for(const Pt of Mt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Mt}}let uC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Ef=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})();X_();let zy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),xC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),z0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Gy=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=Cf}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Qi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=h0().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=nc,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Tf().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),h0().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=$r(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=Za(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=Za(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=$r(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=Za(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Iu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,Ou,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[Py,Qi.bT],encapsulation:2,changeDetection:0}),c})(),TC=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Jn,this.styleTypes=wf}ngOnChanges(i){this.update()}update(){const m=function W_(){var c=Sv,v=Tv,i=null,m=uo(0),W=uo(nf),ce=uo(0);function De(Ve){var qe,gt,Mt,pi,ki,et=(Ve=function d0(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Wt=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Xt=Math.min(nf,Math.max(-nf,W.apply(this,arguments)-hi)),Ci=Math.min(Math.abs(Xt)/et,ce.apply(this,arguments)),gi=Ci*(Xt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Wt.sort(function(Bi,Di){return v(Zt[Bi],Zt[Di])}):null!=i&&Wt.sort(function(Bi,Di){return i(Ve[Bi],Ve[Di])}),qe=0,Mt=Pt?(Xt-et*gi)/Pt:0;qe0?ki*Mt:0)+gi,padAngle:Ci};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:uo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:uo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:uo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:uo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function $_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return h0().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return _f(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=_f(i.data.value);return`\n ${function E0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Pu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Ru,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[Gy,wC,Qi.Sq,Qi.bT,I0],encapsulation:2,changeDetection:0}),c})(),Hy=(()=>{class c extends ky{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function cC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=xn.Ordinal,legendPosition:Mt=Xo.Right,columns:Pt=12}){let Wt=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Mt===Xo.Right&&(Pt-=gt===xn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Wt+=De,Wt+=10,qe&&(Zt-=30,Wt+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Wt)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new sm(this.scheme,xn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,zg,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,af,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[Fu,TC,nm],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),cm=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),EC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il,cm,z0]]}),c})(),hm=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Af=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),LC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il,cm,Ef]]}),c})(),RC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),If=(()=>{class c{constructor(){!function Uy(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[il,uC,Ef,zy,xC,_C,RC,z0,EC,hm,cm,Af,LC]}),c})();var Of=He(91346),NC=He(12168),Wy=He(38833),G0=He(46247),$y=He(41570);const FC=()=>({width:"75vw"}),H0=()=>[10,25,50];function BC(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Xy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function Yy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function jC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function VC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function zC(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function U0(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const Ky=[rn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.getStats()),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Mt=et._TS;return gt>Mt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new Of.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Rl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Or.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Ir.c$),e.rXU(Vn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,BC,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Xy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,Yy,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,jC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,VC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,zC,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,U0,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,FC)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,H0))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Qi.bT,Hy,Ir.Mm,Of.S6,G0.XI,_l.Ei,G0.Tg,G0.yc,$y.l,Ir.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Er.o6)("dashboard")}}])];let HC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[pr.iI.forChild(Ky),pr.iI]})}return c})(),UC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:Of.SV,useFactory:()=>[NC,Wy]}],imports:[Bt,If,HC,Qi.MD,at.X1,Ir.h,Of.Fr,Zs.G]})}return c})(),WC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Qi.MD,Ir.h,or.UN,at.YN,pr.iI]})}return c})(),$C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Ue]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Ir.h.forRoot(),or.UN,Er.Ui,Zs.G,WC,UC,vl._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Vn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Vn.JV.TRACKING,trackerUrl:Ar.c.trackerUrl,siteId:Ar.c.siteId}),jl,xl]})}return c})();Ar.c.production&&(0,e.SmG)(),M.sG().bootstrapModule($C,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf
    {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf
    {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Dt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Dt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Dt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>vo,B3:()=>Ki,Jj:()=>mn,MD:()=>ma,N0:()=>va,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>tr,VF:()=>Z,Vy:()=>hl,XO:()=>r,Xr:()=>rr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>er,fG:()=>is,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>rs,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Pi=>+Pi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Pi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),Qn=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Pi,Xn,Qn),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Pi,ci=[];for(;ut;){if(Pi=Fe.exec(ut),!Pi){ci.push(ut);break}{ci=ci.concat(Pi.slice(1));const os=ci.pop();if(!os)break;ut=os}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function di(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Qt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let Qn="";return ci.forEach(os=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Dt(1);break;case"YY":ut=Dt(2,!0);break;case"YYY":ut=Dt(3);break;case"YYYY":ut=Dt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(os);Qn+=Sn?Sn(Et,Ke,Xn):"''"===os?"'":os.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),Qn}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Pi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Pi]);break;case"long":const Xn=_e(Ge,"longTime"),Qn=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,Qn]);break;case"full":const os=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[os,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Pi>-Ke)&&(Pi+=Ke),Ge===ee.Hours)0===Pi&&-12===Ke&&(Pi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Pi,ut);const Xn=H(ci,g.MinusSign);return Ee(Pi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Pi=Ge.getMinutes();if(qt){const Qn=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),os=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=Qn.findIndex(us=>{if(Array.isArray(us)){const[ns,js]=us,Pr=ci>=ns.hours&&Pi>=ns.minutes,Hn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Pi=qt.getTime()-ci.getTime();Et=1+Math.round(Pi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Dt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Pi=at.get(qt);at.move(Pi,ci),Ti(Pi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new ss,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class ss{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let rs=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),er=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(rs,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),is=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(rs,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function ur(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,qr=new Oa;let mn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return qr;throw ur()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const al=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw ur()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(al,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=fa}transform(Ke,at=fa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function bo(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function fa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const vo="browser",ba="server";function tr(Ge){return Ge===vo}function hl(Ge){return Ge===ba}let rr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>tr((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new qo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Dr(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class qo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class va{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),rs=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:rs}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:rs,url:er}=si(),is=null;cn!==C.NoContent&&(is=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=is?C.Ok:0);let Zr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof is){const sr=is;is=is.replace(Xe,"");try{is=""!==is?JSON.parse(is):null}catch(Ls){is=sr,Zr&&(Zr=!1,is={error:Ls,text:is})}}Zr?($e.next(new l({body:is,headers:Xi,status:cn,statusText:rs,url:er||void 0})),$e.complete()):$e.error(new d({error:is,headers:Xi,status:cn,statusText:rs,url:er||void 0}))},Si=Xi=>{const{url:cn}=si(),rs=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(rs)};let Hi=!1;const ss=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",ss),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",ss),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const di=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:di,useFactory:he},{provide:R,useExisting:di,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>xc,iLQ:()=>uw,sZ2:()=>nh,hnV:()=>nM,Hbi:()=>uA,o8S:()=>zu,BIS:()=>Gh,gRc:()=>mM,Ql9:()=>BE,OM3:()=>Su,Ocv:()=>$E,abz:()=>Dl,Z63:()=>Lo,aKT:()=>jh,uvJ:()=>Co,zcH:()=>Ml,bkB:()=>ko,$GK:()=>mn,nKC:()=>$e,zZn:()=>Ws,_q3:()=>xw,MKu:()=>_w,xe9:()=>ix,Co$:()=>Xv,Vns:()=>Mu,SKi:()=>Tr,Xx1:()=>tr,Agw:()=>sh,PLl:()=>zh,sFG:()=>cv,_9s:()=>lv,czy:()=>hg,WPN:()=>md,kdw:()=>zr,C4Q:()=>Wp,NYb:()=>IE,giA:()=>tM,RxE:()=>Xk,c1b:()=>jg,gXe:()=>Ro,mal:()=>o0,Af3:()=>Ge,tdH:()=>uv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>qv,w6W:()=>DT,oH4:()=>uM,QZP:()=>XM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>qi,hFB:()=>vm,QuC:()=>xo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>t1,O8t:()=>WA,An2:()=>Og,H3F:()=>Yk,H8p:()=>Fs,KH2:()=>Mf,TgB:()=>lf,wOt:()=>me,WHO:()=>Jk,e01:()=>eM,lNU:()=>he,h9k:()=>nb,$MX:()=>Sp,ZF7:()=>oh,Kcf:()=>tg,e5t:()=>px,UyX:()=>dx,cWb:()=>hx,osQ:()=>ux,H5H:()=>B0,Zy3:()=>Ce,mq5:()=>pC,JZv:()=>Ze,LfX:()=>mo,plB:()=>gh,jNT:()=>hw,zjR:()=>iM,TL$:()=>ih,Tbb:()=>pt,rcV:()=>El,nM4:()=>b1,Vt3:()=>v0,Mj6:()=>Qi,GFd:()=>$v,OA$:()=>Wa,Jv_:()=>sk,aNF:()=>rk,R7$:()=>Mb,BMQ:()=>k0,HbH:()=>wy,ZvI:()=>Zg,AVh:()=>ua,vxM:()=>Ay,wni:()=>yi,VBU:()=>Dc,FsC:()=>Or,jDH:()=>$i,G2t:()=>Mn,$C:()=>Nl,EJ8:()=>Ec,rXU:()=>Ql,nrm:()=>nm,eu8:()=>F0,bVm:()=>N0,qex:()=>sm,k0s:()=>im,j41:()=>tm,RV6:()=>dC,xGo:()=>qd,Mr5:()=>jy,pXf:()=>De,KVO:()=>Is,kS0:()=>Qc,QTQ:()=>Eb,bIt:()=>Mt,lsd:()=>Wi,joV:()=>sp,qSk:()=>np,XpG:()=>Ci,nI1:()=>Dk,bMT:()=>Ek,i5U:()=>Ak,SdG:()=>Bi,NAR:()=>ki,Y8G:()=>Mc,FS9:()=>Di,Mz_:()=>on,lJ4:()=>fk,eq3:()=>gk,l_i:()=>mk,sMw:()=>bk,ziG:()=>vk,s1E:()=>yk,l4e:()=>xk,sGs:()=>_k,zJS:()=>Ck,mGM:()=>ji,sdS:()=>as,Dyx:()=>Ny,Z7z:()=>Ly,fX1:()=>Oy,Njj:()=>zc,EBC:()=>Om,tSv:()=>Ox,eBV:()=>gc,npT:()=>sb,f$h:()=>Mp,B4B:()=>ng,n$t:()=>Do,Aen:()=>tc,xc7:()=>Yg,zvX:()=>Vy,DNE:()=>Eu,C5r:()=>Ik,EFF:()=>KS,JRh:()=>XC,SpI:()=>Zy,Lme:()=>YC,E5c:()=>KC,LHq:()=>ZC,DH7:()=>ik,mxI:()=>QC,R50:()=>qC,GBs:()=>Ei}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Dt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Mi(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Mn(t){return{providers:t.providers||[],imports:t.imports||[]}}function Br(t){return Kr(t,Rt)||Kr(t,bt)}function mo(t){return null!==Br(t)}function Kr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const rs=st({\u0275cmp:st}),er=st({\u0275dir:st}),is=st({\u0275pipe:st}),Zr=st({\u0275mod:st}),sr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),jr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function qr(t,s){throw new me(-201,!1)}var mn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(mn||{});let Zo;function rl(){return Zo}function Gs(t){const s=Zo;return Zo=t,s}function Qr(t,s,h){const P=Br(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&mn.Optional?null:void 0!==s?s:void qr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",pa=/\n/gm,bo="__source";let xr;function kr(t){const s=xr;return xr=t,s}function ga(t,s=mn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?Qr(t,void 0,s):xr.get(t,s&mn.Optional?null:void 0,s)}function Is(t,s=mn.Default){return(rl()||ga)(Dt(t),s)}function qi(t,s=mn.Default){return Is(t,Vr(s))}function Vr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Io(t){const s=[];for(let h=0;hArray.isArray(h)?Dr(h,s):s(h))}function qo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function va(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Ys(t,s,h){let P=Gr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function Jr(t,s){const h=Gr(t,s);if(h>=0)return t[1|h]}function Gr(t,s){return function rc(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Zs(P))return!1;ke=!0}}}}else{if(!ke&&!Zs(P)&&!Zs(ze))return!1;if(ke&&Zs(ze))continue;ke=!1,P=ze|1&P}}return Zs(P)||ke}function Zs(t){return!(1&t)}function Ar(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Zs(ke)&&(s+=oc(ge,Q),Q=""),P=ke,ge=ge||!Zs(P);h++}return""!==Q&&(s+=oc(ge,Q)),s}function Dc(t){return ee(()=>{const s=pl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ul.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Ro.Emulated,styles:t.styles||Dn,_:null,schemas:t.schemas||null,tView:null,id:""};fl(h);const P=t.dependencies;return h.directiveDefs=gl(P,!1),h.pipeDefs=gl(P,!0),h.id=function ac(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function io(t){return hn(t)||Rs(t)}function Zh(t){return null!==t}function Nl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Dn,declarations:t.declarations||Dn,imports:t.imports||Dn,exports:t.exports||Dn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ks;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Qi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Qi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Or(t){return ee(()=>{const s=pl(t);return fl(s),s})}function Ec(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[rs]||null}function Rs(t){return t[er]||null}function Ss(t){return t[is]||null}function xo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function qs(t,s){const h=t[Zr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function pl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ks,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Dn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function fl(t){t.features?.forEach(s=>s(t))}function gl(t,s){if(!t)return null;const h=s?Ss:io;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Zh)}function za(t){return{\u0275providers:t}}function Fl(...t){return{\u0275providers:ml(0,t),\u0275fromNgModule:!0}}function ml(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Dr(s,ke=>{const Le=ke;lc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Ic(Q,ge),h}function Ic(t,s){for(let h=0;h{s(ge,P)})}}function lc(t,s,h,P){if(!(t=Dt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)lc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Dr(ge.imports,dt=>{lc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Ic(Je,s)}if(!Le){const Je=Mr(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Dn},Q),s({provide:Qo,useValue:Q,multi:!0},Q),s({provide:Lo,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;No(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function No(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?No(h,s):s(h)}const Pc=st({provide:String,useValue:st});function Bl(t){return null!==t&&"object"==typeof t&&Pc in t}function Fo(t){return"function"==typeof t}const Fs=new $e(""),Bs={},ta={};let bl;function _o(){return void 0===bl&&(bl=new yo),bl}class Co{}class Ca extends Co{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,na(s,ke=>this.processProvider(ke)),this.records.set(xa,_r(void 0,this)),Q.has("environment")&&this.records.set(Co,_r(void 0,this));const ge=this.records.get(Fs);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(Qo,Dn,mn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=kr(this),P=Gs(void 0);try{return s()}finally{kr(h),Gs(P)}}get(s,h=vr,P=mn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(jr))return s[jr](this);P=Vr(P);const ge=kr(this),ke=Gs(void 0);try{if(!(P&mn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Hr(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&Br(s);ze=Je&&this.injectableDefInScope(Je)?_r(wa(s),Bs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&mn.Self?_o():this.parent).get(s,h=P&mn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ba(t,s,h,P){const Q=t[yr];throw s[bo]&&Q.unshift(s[bo]),t.message=function cl(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(pa,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),kr(ge)}}resolveInjectorInitializers(){const s=re(null),h=kr(this),P=Gs(void 0);try{const ge=this.get(Lo,Dn,mn.Self);for(const ke of ge)ke()}finally{kr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Fo(s=Dt(s))?s:Dt(s&&s.provide);const P=function Rc(t){return Bl(t)?_r(void 0,t.useValue):_r(vl(t),Bs)}(s);if(!Fo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Bs,!0),Q.factory=()=>Io(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Bs&&(h.value=ta,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ia(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Dt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function wa(t){const s=Br(t),h=null!==s?s.factory:Mr(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function jl(t){if(t.length>0)throw new me(204,!1);const h=function nr(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function vl(t,s,h){let P;if(Fo(t)){const Q=Dt(t);return Mr(Q)||wa(Q)}if(Bl(t))P=()=>Dt(t.useValue);else if(function Lc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Io(t.deps||[]));else if(function ir(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Dt(t.useExisting));else{const Q=Dt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Mr(Q)||wa(Q);P=()=>new Q(...Io(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function na(t,s){for(const h of t)Array.isArray(h)?na(h,s):h&&cn(h)?na(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof Ca&&t.assertNotDestroyed();const P=kr(t),Q=Gs(void 0);try{return s()}finally{kr(P),Gs(Q)}}function sa(){return void 0!==rl()||null!=function fa(){return xr}()}function Ge(t){if(!sa())throw new me(-203,!1)}const Hn=0,ui=1,zi=2,Yn=3,gs=4,ks=5,ar=6,Ta=7,ms=8,fr=9,wo=10,en=11,Bo=12,cc=13,bs=14,Kn=15,Sa=16,Vl=17,To=18,hc=19,ka=20,jo=21,yl=22,Ua=23,rn=25,dc=1,Vo=7,_l=9,Vs=10;var pc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(pc||{});function gr(t){return Array.isArray(t)&&"object"==typeof t[dc]}function zs(t){return Array.isArray(t)&&!0===t[dc]}function zl(t){return!!(4&t.flags)}function ra(t){return t.componentOffset>-1}function Cl(t){return!(1&~t.flags)}function Ur(t){return!!t.template}function Nc(t){return!!(512&t[zi])}class Gl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Hl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function Wa(){return Fc}function Fc(t){return t.type.prototype.ngOnChanges&&(t.setInput=Wu),$a}function $a(){const t=$u(this),s=t?.current;if(s){const h=t.previous;if(h===Ks)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function Wu(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=$u(t)||function Xu(t,s){return t[td]=s}(t,{previous:Ks,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Gl(Je&&Je.currentValue,h,ze===Ks),Hl(t,s,Q,h)}Wa.ngInherit=!0;const td="__ngSimpleChanges__";function $u(t){return t[td]||null}const no=function(t,s,h){},Ld="svg";let Ku=!1;function ws(t){for(;Array.isArray(t);)t=t[Hn];return t}function Bc(t,s){return ws(s[t])}function so(t,s){return ws(s[t.index])}function vh(t,s){return t.data[s]}function jc(t,s){return t[s]}function zo(t,s){const h=s[t];return gr(h)?h:h[Hn]}function nd(t){return!(128&~t[zi])}function Xa(t,s){return null==s?null:t[s]}function Rd(t){t[Vl]=0}function Ff(t){1024&t[zi]||(t[zi]|=1024,nd(t)&&_h(t))}function Nd(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function xh(t){t[wo].changeDetectionScheduler?.notify(1),Nd(t)?_h(t):64&t[zi]&&(function Zu(){return Ku}()?(t[zi]|=1024,_h(t)):t[wo].changeDetectionScheduler?.notify())}function _h(t){t[wo].changeDetectionScheduler?.notify();let s=Ya(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,nd(s));)s=Ya(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[jo]&&(t[jo]=[]),t[jo].push(s)}function Ya(t){const s=t[Yn];return zs(s)?s[Yn]:s}const an={lFrame:ld(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function fc(){return an.bindingsEnabled}function Ka(){return null!==an.skipHydrationRootTNode}function ni(){return an.lFrame.lView}function pn(){return an.lFrame.tView}function gc(t){return an.lFrame.contextLView=t,t[ms]}function zc(t){return an.lFrame.contextLView=null,t}function hs(){let t=Gc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Gc(){return an.lFrame.currentTNode}function oa(){const t=an.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function aa(t,s){const h=an.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return an.lFrame.isParent}function od(){an.lFrame.isParent=!1}function oo(){const t=an.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function So(){return an.lFrame.bindingIndex}function Ma(){return an.lFrame.bindingIndex++}function Sl(t){const s=an.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function jd(t){an.lFrame.inI18n=t}function Vd(t,s){const h=an.lFrame;h.bindingIndex=h.bindingRootIndex=t,wh(s)}function wh(t){an.lFrame.currentDirectiveIndex=t}function Th(t){const s=an.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function zd(){return an.lFrame.currentQueryIndex}function Hc(t){an.lFrame.currentQueryIndex=t}function Gf(t){const s=t[ui];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Sh(t,s,h){if(h&mn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&mn.Host||(Q=Gf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=an.lFrame=ip();return P.currentTNode=s,P.lView=t,!0}function Gd(t){const s=ip(),h=t[ui];an.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function ip(){const t=an.lFrame,s=null===t?null:t.child;return null===s?ld(t):s}function ld(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function Hd(){const t=an.lFrame;return an.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Ud=Hd;function cd(){const t=Hd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Wr(){return an.lFrame.selectedIndex}function mc(t){an.lFrame.selectedIndex=t}function Os(){const t=an.lFrame;return vh(t.tView,t.selectedIndex)}function np(){an.lFrame.currentNamespace=Ld}function sp(){!function Wd(){an.lFrame.currentNamespace=null}()}let kh=!0;function Uc(){return kh}function Go(t){kh=t}function Wc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[Vl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,kl(Le,ge)):kl(Le,ge)}const bc=-1;class $c{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function Lr(t){return t!==bc}function Wl(t){return 32767&t}function Da(t,s){let h=function ap(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let $r=!0;function Xc(t){const s=$r;return $r=t,s}const $l=255,Yc=5;let Ph=0;const la={};function ud(t,s){const h=pd(t,s);if(-1!==h)return h;const P=s[ui];P.firstCreatePass&&(t.injectorIndex=s.length,Kc(P.data,t),Kc(s,null),Kc(P.blueprint,null));const Q=Zc(t,s),ge=t.injectorIndex;if(Lr(Q)){const ke=Wl(Q),Le=Da(Q,s),ze=Le[ui].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kc(t,s){t.push(0,0,0,0,0,0,0,0,s)}function pd(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zc(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=Jd(Q),null===P)return bc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return bc}function Kd(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Ph++);const Q=P&$l;s.data[t+(Q>>Yc)]|=1<=0?s&$l:dp:s}(h);if("function"==typeof ge){if(!Sh(s,t,P))return P&mn.Host?Lh(Q,0,P):Rh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&mn.Optional)return ke;qr()}finally{Ud()}}else if("number"==typeof ge){let ke=null,Le=pd(t,s),ze=bc,Je=P&mn.Host?s[Kn][ks]:null;for((-1===Le||P&mn.SkipSelf)&&(ze=-1===Le?Zc(t,s):s[Le+8],ze!==bc&&hp(P,!1)?(ke=s[ui],Le=Wl(ze),s=Da(ze,s)):Le=-1);-1!==Le;){const dt=s[ui];if(cp(ge,Le,dt.data)){const Ct=qc(Le,s,h,ke,P,Je);if(Ct!==la)return Ct}ze=s[Le+8],ze!==bc&&hp(P,s[ui].data[Le+8]===Je)&&cp(ge,Le,s)?(ke=dt,Le=Wl(ze),s=Da(ze,s)):Le=-1}}return Q}function qc(t,s,h,P,Q,ge){const ke=s[ui],Le=ke.data[t+8],dt=Ea(Le,ke,h,null==P?ra(Le)&&$r:P!=ke&&!!(3&Le.type),Q&mn.Host&&ge===Le);return null!==dt?Ho(s,ke,dt,Le):la}function Ea(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Ur(Ht)&&Ht.type===h)return ze}return null}function Ho(t,s,h,P){let Q=t[h];const ge=s.data;if(function Eh(t){return t instanceof $c}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Xc(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Sh(t,P,mn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Mh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=Fc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Xc(Le),ke.resolving=!1,Ud()}}return Q}function cp(t,s,h){return!!(h[s+(t>>Yc)]&1<{const s=t.prototype.constructor,h=s[sr]||Nh(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[sr]||Nh(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function Nh(t){return At(t)?()=>{const s=Nh(Dt(t));return s&&s()}:Mr(t)}function Jd(t){const s=t[ui],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function Qc(t){return function Zd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new yo;static create(h,P){if(Array.isArray(h))return gp({name:""},P,h,"");{const Q=h.name??"";return gp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(xa)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function nu(t){return t.ngOriginalError}class Ml{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&nu(s);for(;h&&nu(h);)h=nu(h);return h||null}}const su=new $e("",{providedIn:"root",factory:()=>qi(Ml).handleError.bind(void 0)});let Dl=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=bm;static#t=this.__NG_ENV_ID__=h=>h}return t})();class vp extends Dl{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[jo])return;const h=t[jo].indexOf(s);-1!==h&&t[jo].splice(h,1)}(this._lView,s)}}function bm(){return new vp(ni())}function Bh(t,s){return oe(t,s)}const vm=(Bh.required=function qf(t){return oe(Se,t)},Bh);function ym(){return yc(hs(),ni())}function yc(t,s){return new jh(so(t,s))}let jh=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=ym}return t})();function xp(t){return t instanceof jh?t.nativeElement:t}function ru(t){return s=>{setTimeout(t,void 0,s)}}const ko=class Aa extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,sa()&&(this.destroyRef=qi(Dl,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=ru(ge),Q&&(Q=ru(Q)),ke&&(ke=ru(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function ou(){return this._results[Symbol.iterator]()}class au{static#e=Symbol.iterator;get changes(){return this._changes??=new ko}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=au.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=ou)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function rr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Plu}),lu="ng",zh=new $e(""),sh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),xc=new $e(""),Gh=new $e("",{providedIn:"root",factory:()=>ha().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const Zi=new $e("",{providedIn:"root",factory:()=>!1});let tn,hr;function nn(t){return function wn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function lo(){if(void 0===hr&&(hr=null,Ze.trustedTypes))try{hr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hr}function Uo(t){return lo()?.createHTML(t)||t}function Ia(t){return lo()?.createScriptURL(t)||t}class wr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class da extends wr{getTypeName(){return"HTML"}}class du extends wr{getTypeName(){return"Style"}}class Qf extends wr{getTypeName(){return"Script"}}class Jf extends wr{getTypeName(){return"URL"}}class Tp extends wr{getTypeName(){return"ResourceURL"}}function El(t){return t instanceof wr?t.changingThisBreaksApplicationSecurity:t}function oh(t,s){const h=function eg(t){return t instanceof wr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function tg(t){return new da(t)}function hx(t){return new du(t)}function dx(t){return new Qf(t)}function ux(t){return new Jf(t)}function px(t){return new Tp(t)}function q0(t){const s=new gx(t);return function mx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new fx(s):s}class fx{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class gx{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const bx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Sp(t){return(t=String(t)).match(bx)?t:"unsafe:"+t}function ah(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function kp(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const Q0=ah("area,br,col,hr,img,wbr"),J0=ah("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),eb=ah("rp,rt"),xm=kp(Q0,kp(J0,ah("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),kp(eb,ah("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),kp(eb,J0)),_m=ah("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),tb=kp(_m,ah("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ah("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),vx=ah("script,style,template");class yx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=_x(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=lh(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=Cm(s).toLowerCase();if(!xm.hasOwnProperty(h))return this.sanitizedSomething=!0,!vx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=Cm(s).toLowerCase();xm.hasOwnProperty(h)&&!Q0.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(ib(s))}}function lh(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw Cc(s);return s}function _x(t){const s=t.firstChild;if(s&&function xx(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw Cc(s);return s}function Cm(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function Cc(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const Ew=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Aw=/([^\#-~ |!])/g;function ib(t){return t.replace(/&/g,"&").replace(Ew,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Aw,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let ig;function nb(t,s){let h=null;try{ig=ig||q0(t);let P=s?String(s):"";h=ig.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=ig.getInertBodyElement(P)}while(P!==ge);return nn((new yx).sanitizeChildren(wm(h)||h))}finally{if(h){const P=wm(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function wm(t){return"content"in t&&function Tm(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var md=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(md||{});function sb(t){const s=Hh();return s?Uo(s.sanitize(md.HTML,t)||""):oh(t,"HTML")?Uo(El(t)):nb(ha(),Ki(t))}function ng(t){const s=Hh();return s?s.sanitize(md.URL,t)||"":oh(t,"URL")?El(t):Sp(Ki(t))}function Mp(t){const s=Hh();if(s)return Ia(s.sanitize(md.RESOURCE_URL,t)||"");if(oh(t,"ResourceURL"))return Ia(El(t));throw new me(904,!1)}function Do(t,s,h){return function Wo(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?Mp:ng}(s,h)(t)}function Hh(){const t=ni();return t&&t[wo].sanitizer}const sg=/^>|^->||--!>|)/g,ch="\u200b$1\u200b";const Mm=new Map;let kx=0;const bd="__ngContext__";function $o(t,s){gr(s)?(t[bd]=s[hc],function Dm(t){Mm.set(t[hc],t)}(s)):t[bd]=s}function Ox(t){return t.ownerDocument.defaultView}function Om(t){return t.ownerDocument}function Il(t){return t instanceof Function?t():t}var hg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(hg||{});let Pm;function Lm(t,s){return Pm(t,s)}function Op(t,s,h,P,Q){if(null!=P){let ge,ke=!1;zs(P)?ge=P:gr(P)&&(ke=!0,P=P[Hn]);const Le=ws(P);0===t&&null!==h?null==Q?zx(s,h,Le):mu(s,h,Le,Q||null,!0):1===t&&null!==h?mu(s,h,Le,Q||null,!0):2===t?function _d(t,s,h){const P=Fm(t,s);P&&function jw(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function kb(t,s,h,P,Q){const ge=h[Vo];ge!==ws(h)&&Op(s,t,P,ge,Q);for(let Le=Vs;Les.replace(wx,ch))}(s))}function Rm(t,s,h){return t.createElement(s,h)}function Nm(t,s){s[wo].changeDetectionScheduler?.notify(1),bu(t,s,s[en],2,null,null)}function _b(t,s){const h=t[_l],P=h.indexOf(s);h.splice(P,1)}function Pp(t,s){if(t.length<=Vs)return;const h=Vs+s,P=t[h];if(P){const Q=P[Sa];null!==Q&&Q!==t&&_b(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=va(t,Vs+s);!function Nw(t,s){Nm(t,s),s[Hn]=null,s[ks]=null}(P[ui],P);const ke=ge[To];null!==ke&&ke.detachView(ge[ui]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function dg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&bu(t,s,h,3,null,null),function Fx(t){let s=t[Bo];if(!s)return Cb(t[ui],t);for(;s;){let h=null;if(gr(s))h=s[Bo];else{const P=s[Vs];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)gr(s)&&Cb(s[ui],s),s=s[Yn];null===s&&(s=t),gr(s)&&Cb(s[ui],s),h=s&&s[gs]}s=h}}(s)}}function Cb(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[Ta]=null);const Q=s[jo];if(null!==Q){s[jo]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Ro.None||ge===Ro.Emulated)return null}return so(P,h)}}function mu(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function zx(t,s,h){t.appendChild(s,h)}function ug(t,s,h,P,Q){null!==P?mu(t,s,h,P,Q):zx(t,s,h)}function Fm(t,s){return t.parentNode(s)}function Hx(t,s,h){return Ux(t,s,h)}function fg(t,s,h){return 40&t.type?so(t,h):null}let gg,Ux=fg;function Wx(t,s){Ux=t,gg=s}function Bm(t,s,h,P){const Q=wb(t,P,s),ge=s[en],Le=Hx(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zern&&Db(t,s,rn,!1),no(ke?2:0,Q),h(P,Q)}finally{mc(ge),no(ke?3:1,Q)}}function Ob(t,s,h){if(zl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function qx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Qi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Qx(P,h,Je,Le,ze):Qx(P,h,Je,Le)}return P}function Qx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=so(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?($m(t,h,dt,P,Q),ra(s)&&function Xw(t,s){const h=zo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function $w(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Nb(t,s,h,P){if(fc()){const Q=null===P?null:{"":-1},ge=function Gm(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,mg(t,h,Q.hostVars,kn),Q)}function Tc(t,s,h,P,Q,ge){const ke=so(t,s);!function ds(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function i_(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{_h(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function Ub(t){return $b(t[Bo])}function Wb(t){return $b(t[gs])}function $b(t){for(;null!==t&&!zs(t);)t=t[gs];return t}const Km=100;function Tg(t,s=!0,h=0){const P=t[wo],Q=P.rendererFactory;Q.begin?.();try{!function h_(t,s){qm(t,s);let h=0;for(;Nd(t);){if(h===Km)throw new me(103,!1);h++,qm(t,1)}}(t,h)}catch(ke){throw s&&Cg(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function d_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[wo].inlineEffectRunner?.flush(),Gd(s);let ke=null,Le=null;(function u_(t){return 2!==t.type})(t)&&(Le=function r_(t){return t[Ua]??function o_(t){const s=Gb.pop()??Object.create(a_);return s.lView=t,s}(t)}(s),ke=L(Le));try{Rd(s),function tp(t){return an.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&$x(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&dd(s,Ct,0,null),Dh(s,0)}if(function p_(t){for(let s=Ub(t);null!==s;s=Wb(s)){if(!(s[zi]&pc.HasTransplantedViews))continue;const h=s[_l];for(let P=0;P-1&&(Pp(s,P),va(h,P))}this._attachedToViewContainer=!1}dg(this._lView[ui],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){Up(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){xh(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,Tg(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,Nm(this._lView[ui],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,xh(this._lView)}}let Wp=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=b_}return t})();const g_=Wp,m_=class extends g_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=zp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new wu(Q)}};function b_(){return Sg(hs(),ni())}function Sg(t,s){return 4&t.type?new m_(s,t,yc(t,s)):null}let ov=()=>null;function $h(t,s){return ov(t,s)}class Og{}class Pg{}class Cd{}class O_{resolveComponentFactory(s){throw function I_(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let Su=(()=>{class t{static#e=this.NULL=new O_}return t})();class lv{}let cv=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function hv(){const t=ni(),h=zo(hs().index,t);return(gr(h)?h:t)[en]}()}return t})(),dv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Lg={};function uv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const pv=new Set;function Ja(t){pv.has(t)||(pv.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function e0(...t){}class Tr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ko(!1),this.onMicrotaskEmpty=new ko(!1),this.onStable=new ko(!1),this.onError=new ko(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function fv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function Qp(t){const s=()=>{!function L_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Rg(t),t.isCheckStableRunning=!0,t0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Rg(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function gv(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return n0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),R_(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return n0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),R_(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,Rg(t),t0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Tr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(Tr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,P_,e0,e0);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const P_={};function t0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Rg(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function n0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function R_(t){t._nesting--,t0(t)}class Ng{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ko,this.onMicrotaskEmpty=new ko,this.onStable=new ko,this.onError=new ko}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Xh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Xh||{});const s0={destroy(){}};function o0(t,s){!s&&Ge();const h=s?.injector??qi(Ws);if(!function yd(t){return"browser"===(t??qi(Ws)).get(sh)}(h))return s0;Ja("NgAfterNextRender");const P=h.get(ef),Q=P.handler??=new N_,ge=s?.phase??Xh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(Dl).onDestroy(ke),ze=Ha(h,()=>new bv(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class bv{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=qi(Tr),this.errorHandler=qi(Ml,{optional:!0}),qi(Og,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class N_{constructor(){this.executingCallbacks=!1,this.buckets={[Xh.EarlyRead]:new Set,[Xh.Write]:new Set,[Xh.MixedReadWrite]:new Set,[Xh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let ef=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function gh(t){return!!qs(t)}function Td(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Wh(t,h,ge.join(" "))}}(Ht,Ao,li,P),void 0!==h&&function oT(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=G_}return t})();function G_(){return sf(hs(),ni())}const H_=jg,Cv=class extends H_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return yc(this._hostTNode,this._hostLView)}get injector(){return new lr(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zc(this._hostTNode,this._hostLView);if(Lr(s)){const h=Da(s,this._hostLView),P=Wl(s);return new lr(h[ui].data[P+8],h)}return new lr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=wv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-Vs}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=$h(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,Cu(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Pi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new Sd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(Co,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=$h(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,Cu(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Nf(t){return zs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new Cv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Gp(ke,Q,ge,P),s.attachToViewContainerRef(),qo(c0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=wv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Pp(this._lContainer,h);P&&(va(c0(this._lContainer),h),dg(P[ui],P))}detach(s){const h=this._adjustIndex(s,-1),P=Pp(this._lContainer,h);return P&&null!=va(c0(this._lContainer),h)?new wu(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function wv(t){return t[8]}function c0(t){return t[8]||(t[8]=[])}function sf(t,s){let h;const P=s[t.index];return zs(P)?h=P:(h=_u(P,s,null,t),s[t.index]=h,_g(s,h)),U_(h,s,t,P),new Cv(h,t,s)}let U_=function Sv(t,s,h,P){if(t[Vo])return;let Q;Q=8&h.type?ws(P):function h0(t,s){const h=t[en],P=h.createComment(""),Q=so(s,t);return mu(h,Fm(h,Q),P,function pg(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Vo]=Q},d0=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=Vs;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=n1.bind(h),h}function n1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function s1(t){return function Lv(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function Uv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Ur(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=zg(t.inputs),ke.inputTransforms=zg(t.inputTransforms),ke.declaredInputs=zg(t.declaredInputs),ke.outputs=zg(t.outputs);const Le=Q.hostBindings;Le&&TT(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&wT(t,ze),Je&&af(t,Je),g1(t,Q),kt(t.outputs,Q.outputs),Ur(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function g1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function zg(t){return t===Ks?{}:t===Dn?[]:t}function wT(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function af(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function TT(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function b1(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Dt(Q),inputs:Ks,outputs:Ks}:{directive:Dt(Q.directive),inputs:v1(Q.inputs),outputs:v1(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=Wv,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function Wv(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);MT(Q.declaredInputs,P.inputs),Wv(Q,s,h),h.set(Q,P),s.push(Q)}}function v1(t){if(void 0===t||0===t.length)return Ks;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Kv extends Xv{constructor(s){super(),this.moduleType=s}create(s){return new Yv(this.moduleType,s,[])}}class Zv extends Mu{constructor(s){super(),this.componentFactoryResolver=new nf(this),this.instance=null;const h=new Ca([...s.providers,{provide:Mu,useValue:this},{provide:Su,useValue:this.componentFactoryResolver}],s.parent||_o(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function qv(t,s,h=null){return new Zv({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let lf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function x0(t){return!!Qv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Qv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function kc(t,s,h){return t[s]=h}function Gg(t,s){return t[s]}function Sr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Du(t,s,h,P){const Q=Sr(t,s,h);return Sr(t,s+1,P)||Q}function _0(t,s,h,P,Q){const ge=Du(t,s,h,P);return Sr(t,s+2,Q)||ge}function ec(t,s,h,P,Q,ge){const ke=Du(t,s,h,P);return Du(t,s+2,Q,ge)||ke}function Eu(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=pn(),dt=t+rn,Ct=Je.firstCreatePass?function NT(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Np(s,t,4,ke||null,Xa(Je,Le));Nb(s,h,dt,Xa(Je,ze)),Wc(s,dt);const Ct=dt.tView=ph(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];aa(Ct,!1);const jt=_1(Je,ze,Ct,t);Uc()&&Bm(Je,ze,jt,Ct),$o(jt,ze);const Ht=_u(jt,ze,jt,Ct);return ze[dt]=Ht,_g(ze,Ht),function Tv(t,s,h){return d0(t,s,h)}(Ht,Ct,ze),Cl(Ct)&&bg(Je,ze,Ct),null!=ke&&vg(ze,Ct,Le),Eu}let _1=function C1(t,s,h,P){return Go(!0),s[en].createComment("")};function k0(t,s,h,P){const Q=ni();return Sr(Q,Ma(),s)&&(pn(),Tc(Os(),Q,t,s,h,P)),k0}function Iu(t,s,h,P){return Sr(t,Ma(),h)?s+Ki(h)+P:kn}function M0(t,s){return t<<17|s<<2}function Ed(t){return t>>17&32767}function xy(t){return 2|t}function Ad(t){return(131068&t)>>2}function D0(t,s){return-131069&t|s<<2}function _y(t){return 1|t}function Z1(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Ed(Q):Ad(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];hS(t[ke],s)&&(Le=!0,t[ke+1]=P?_y(Je):xy(Je)),ke=P?Ed(Je):Ad(Je)}Le&&(t[h+1]=P?xy(Q):_y(Q))}function hS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Gr(t,s)>=0}const fo={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function q1(t){return t.substring(fo.key,fo.keyEnd)}function dS(t){return t.substring(fo.value,fo.valueEnd)}function Q1(t,s){const h=fo.textEnd;return h===s?-1:(s=fo.keyEnd=function fS(t,s,h){for(;s32;)s++;return s}(t,fo.key=s,h),xf(t,s,h))}function J1(t,s){const h=fo.textEnd;let P=fo.key=xf(t,s,h);return h===P?-1:(P=fo.keyEnd=function tC(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=iC(t,P,h),P=fo.value=xf(t,P,h),P=fo.valueEnd=function nC(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),iC(t,P,h))}function eC(t){fo.key=0,fo.keyEnd=0,fo.value=0,fo.valueEnd=0,fo.textEnd=t.length}function xf(t,s,h){for(;s=0;h=J1(s,h))A0(t,q1(s),dS(s))}function wy(t){Xo(gS,ic,t,!0)}function ic(t,s){for(let h=function uS(t){return eC(t),Q1(t,xf(t,0,fo.textEnd))}(s);h>=0;h=Q1(s,h))Ys(t,q1(s),!0)}function tl(t,s,h,P){const Q=ni(),ge=pn(),ke=Sl(2);ge.firstUpdatePass&&xn(ge,t,ke,P),s!==kn&&Sr(Q,ke,s)&&My(ge,ge.data[Wr()],Q,Q[en],t,Q[ke+1]=function mS(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(El(t)))),t}(s,h),P,ke)}function Xo(t,s,h,P){const Q=pn(),ge=Sl(2);Q.firstUpdatePass&&xn(Q,null,ge,P);const ke=ni();if(h!==kn&&Sr(ke,ge,h)){const Le=Q.data[Wr()];if(aC(Le,P)&&!Nu(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Xg(Q,Le,ke,h,P)}else!function ky(t,s,h,P,Q,ge,ke,Le){Q===kn&&(Q=Dn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function xn(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Wr()],ke=Nu(t,h);aC(ge,P)&&null===s&&!ke&&(s=!1),s=function Ty(t,s,h,P){const Q=Th(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Fu(h=Kg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Kg(Q,t,s,h,P),null===ge){let ze=function _f(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Ad(P))return t[Ed(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Kg(null,t,s,ze[1],P),ze=Fu(ze,s.attrs,P),function E0(t,s,h,P){t[Ed(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function Sy(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Ed(t[Le+1]);t[P+1]=M0(jt,Le),0!==jt&&(t[jt+1]=D0(t[jt+1],P)),t[Le+1]=function oS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=M0(Le,0),0!==Le&&(t[Le+1]=D0(t[Le+1],P)),Le=P;else t[P+1]=M0(ze,0),0===Le?Le=P:t[ze+1]=D0(t[ze+1],P),ze=P;Je&&(t[P+1]=xy(t[P+1])),Z1(t,dt,P,!0),Z1(t,dt,P,!1),function cS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Gr(ge,s)>=0&&(h[P+1]=_y(h[P+1]))}(s,dt,t,P,ge),ke=M0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Kg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===kn&&(jt=Ct?Dn:void 0);let Ht=Ct?Jr(jt,P):dt===P?jt:void 0;if(Je&&!Cf(Ht)&&(Ht=Jr(ze,P)),Cf(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Ed(Kt):Ad(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=Jr(ze,P))}return Le}function Cf(t){return void 0!==t}function aC(t,s){return!!(t.flags&(s?8:16))}function Zg(t,s,h){Xo(Ys,ic,Iu(ni(),t,s,h),!0)}class Ey{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function qg(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function nc(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Qg(t,s,h,P,Q){if(nc(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function O0(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class Sf{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Ay(t,s,h){Ja("NgControlFlow");const P=ni(),Q=Ma(),ge=P0(P,rn+t);if(Sr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=em(P[ui],rn+s),Je=$h(ge,ze.tView.ssrId);Gp(ge,zp(P,ze,h,{dehydratedView:Je}),0,Cu(ze,Je))}}finally{re(Le)}}else{const Le=zb(ge,0);void 0!==Le&&(Le[ms]=h)}}class Iy{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-Vs}}function Oy(t,s){return s}class Py{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function Ly(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Ja("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new Py(Ht,li);Kt[rn+t]=bi,Eu(t+1,s,h,P,Q,ge),Ht&&Eu(t+2,ze,Je,dt,Ct,jt)}class Ry extends Ey{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Vs}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[ar];this.needsIndexUpdate||=s!==this.length,Gp(this.lContainer,h,s,Cu(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function Fy(t,s){return Pp(t,s)}(this.lContainer,s)}create(s,h){const P=$h(this.lContainer,this.templateTNode.tView.ssrId);return zp(this.hostLView,this.templateTNode,new Iy(this.lContainer,h,s),{dehydratedView:P})}destroy(s){dg(s[ui],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=Ma(),ze=0===ke.length;if(Sr(P,Le,ze)){const Je=h+2,dt=P0(P,Je);if(ze){const Ct=em(Q,Je),jt=$h(dt,Ct.tView.ssrId);Gp(dt,zp(P,Ct,void 0,{dehydratedView:jt}),0,Cu(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function P0(t,s){return t[s]}function em(t,s){return vh(t,s)}function tm(t,s,h,P){const Q=ni(),ge=pn(),ke=rn+t,Le=Q[en],ze=ge.firstCreatePass?function R0(t,s,h,P,Q,ge){const ke=s.consts,ze=Np(s,t,2,P,Xa(ke,Q));return Nb(s,h,ze,Xa(ke,ge)),null!==ze.attrs&&Td(ze,ze.attrs,!1),null!==ze.mergedAttrs&&Td(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=lC(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=Cl(ze);return aa(ze,!0),jm(Le,Je,ze),!function cf(t){return!(32&~t.flags)}(ze)&&Uc()&&Bm(ge,Q,Je,ze),0===function Tl(){return an.lFrame.elementDepthCount}()&&$o(Je,Q),function sd(){an.lFrame.elementDepthCount++}(),dt&&(bg(ge,Q,ze),Ob(ge,ze,Q)),null!==P&&vg(Q,ze),tm}function im(){let t=hs();Bd()?od():(t=t.parent,aa(t,!1));const s=t;(function Fd(t){return an.skipHydrationRootTNode===t})(s)&&function rd(){an.skipHydrationRootTNode=null}(),function jf(){an.lFrame.elementDepthCount--}();const h=pn();return h.firstCreatePass&&(Wc(h,t),zl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function Xd(t){return!!(8&t.flags)}(s)&&Xg(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Oh(t){return!!(16&t.flags)}(s)&&Xg(h,s,ni(),s.stylesWithoutHost,!1),im}function nm(t,s,h,P){return tm(t,s,h,P),im(),nm}let lC=(t,s,h,P,Q,ge)=>(Go(!0),Rm(P,Q,function hd(){return an.lFrame.currentNamespace}()));function sm(t,s,h){const P=ni(),Q=pn(),ge=t+rn,ke=Q.firstCreatePass?function By(t,s,h,P,Q){const ge=s.consts,ke=Xa(ge,P),Le=Np(s,t,8,"ng-container",ke);return null!==ke&&Td(Le,ke,!0),Nb(s,h,Le,Xa(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];aa(ke,!0);const Le=hC(Q,P,ke,t);return P[ge]=Le,Uc()&&Bm(Q,P,Le,ke),$o(Le,P),Cl(ke)&&(bg(Q,P,ke),Ob(Q,ke,P)),null!=h&&vg(P,ke),sm}function N0(){let t=hs();const s=pn();return Bd()?od():(t=t.parent,aa(t,!1)),s.firstCreatePass&&(Wc(s,t),zl(t)&&s.queries.elementEnd(t)),N0}function F0(t,s,h){return sm(t,s,h),N0(),F0}let hC=(t,s,h,P)=>(Go(!0),xb(s[en],""));function dC(){return ni()}function jy(t,s,h){const P=ni();return Sr(P,Ma(),s)&&Qa(pn(),Os(),P,t,s,P[en],h,!0),jy}function Vy(t,s,h){const P=ni();if(Sr(P,Ma(),s)){const ge=pn(),ke=Os();Qa(ge,ke,P,t,s,Wm(Th(ge.data),ke,P),h,!0)}return Vy}const ju=void 0;var uC=["en",[["a","p"],["AM","PM"],ju],[["AM","PM"],ju,ju],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],ju,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],ju,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",ju,"{1} 'at' {0}",ju],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function TS(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let kf={};function B0(t){const s=function kS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=fC(s);if(h)return h;const P=s.split("-")[0];if(h=fC(P),h)return h;if("en"===P)return uC;throw new me(701,!1)}function pC(t){return B0(t)[Mf.PluralCase]}function fC(t){return t in kf||(kf[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),kf[t]}var Mf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Mf||{});const Df="en-US",j0={marker:"element"},Ef={marker:"ICU"};var nl=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(nl||{});let gC=Df;function zy(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?fg(t,0,h):ws(h[Q])}function bC(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];yC(P)||IS(P,s)&&null===xC(P)&&OS(P,s.index)}}function yC(t){return!(64&t.type)}function IS(t,s){return yC(s)||t.index>s.index}function xC(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function OS(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Wx(zy,bC),t.insertBeforeIndex=s)}function LS(t,s,h){const P=Ib(t,h,64,null,null);return vC(s,P),P}let lm=(t,s,h,P)=>(Go(!0),function Hy(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return xb(P,s);case Node.TEXT_NODE:return yb(P,s);case Node.ELEMENT_NODE:return Rm(P,s,null)}}(t,h,P));function BS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function V0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Dn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[ui].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const hm=/\ufffd(\d+):?\d*\ufffd/gi,zS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,Af="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,GS=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,HS=/\uE500/g;function Uy(t,s,h,P,Q,ge,ke){const Le=mg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function H0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(FC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function BC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=q0(ha()).getInertBodyElement(Le),Kt=wm(Ht)||Ht;return Kt?Xy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function Xy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=mg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(xm.hasOwnProperty(bi)){U0(ge,j0,bi,Je,Kt),s.data[Kt]=bi;const ys=li.attributes;for(let Ao=0;Ao>>nl.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=lm(t,dt,s[ge],(ke&nl.COMMENT)===nl.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Uc()),Je&&null!==h&&jt&&mu(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),jd(!0)}function De(t,s,h){W(t,s,h),function ce(){jd(!1)}()}function Mt(t,s,h,P){const Q=ni(),ge=pn(),ke=hs();return Zt(ge,Q,Q[en],ke,t,s,P),Mt}function Zt(t,s,h,P,Q,ge,ke){const Le=Cl(P),Je=t.firstCreatePass&&Um(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=so(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?ys=>ke(ws(ys[P.index])):P.index;let _n=null;if(!ke&&Le&&(_n=function Wt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==_n)(_n.__ngLastListenerFn__||_n).__ngNextListenerFn__=ge,_n.__ngLastListenerFn__=ge,jt=!1;else{ge=Xt(P,s,dt,ge,!1);const ys=h.listen(bi,Q,ge);Ct.push(ge,ys),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=Xt(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?zo(t.index,s):s);let ze=hi(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=hi(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function Ci(t=1){return function Hf(t){return(an.lFrame.contextLView=function yh(t,s){for(;t>0;)s=s[bs],t--;return s}(t,an.lFrame.contextLView))[ms]}(t)}function gi(t,s){let h=null;const P=function Ir(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Go(!0),yb(s[en],P));function XC(t){return Zy("",t,""),XC}function Zy(t,s,h){const P=ni(),Q=Iu(P,t,s,h);return Q!==kn&&fh(P,Wr(),Q),Zy}function YC(t,s,h,P,Q){const ge=ni(),ke=function Ou(t,s,h,P,Q,ge){const Le=Du(t,So(),h,Q);return Sl(2),Le?s+Ki(h)+P+Ki(Q)+ge:kn}(ge,t,s,h,P,Q);return ke!==kn&&fh(ge,Wr(),ke),YC}function KC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function Pu(t,s,h,P,Q,ge,ke,Le){const Je=_0(t,So(),h,Q,ke);return Sl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:kn}(Le,t,s,h,P,Q,ge,ke);return ze!==kn&&fh(Le,Wr(),ze),KC}function ZC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Lu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=ec(t,So(),h,Q,ke,ze);return Sl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:kn}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==kn&&fh(Je,Wr(),dt),ZC}function qC(t,s,h){s1(s)&&(s=s());const P=ni();return Sr(P,Ma(),s)&&Qa(pn(),Os(),P,t,s,P[en],h,!1),qC}function ik(t,s){const h=s1(t);return h&&t.set(s),h}function QC(t,s){const h=ni(),P=pn(),Q=hs();return Zt(P,h,h[en],Q,t,s),QC}function JC(t,s,h,P,Q){if(t=Dt(t),Array.isArray(t))for(let ge=0;ge>20;if(Fo(t)||!t.multi){const Ht=new $c(Je,Q,Ql),Kt=tw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Kd(ud(Le,ke),ge,ze),ew(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=tw(ze,s,dt+jt,Ct),Kt=tw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Kd(ud(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new $c(t,h,Ql);return ge.multi=[],ge.index=s,ge.componentProviders=0,nk(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),ew(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else ew(ge,t,Ht>-1?Ht:Kt,nk(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function ew(t,s,h,P){const Q=Fo(s),ge=function _a(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Dt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function nk(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function tw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=pn();if(P.firstCreatePass){const Q=Ur(t);JC(h,P.data,P.blueprint,Q,!0),JC(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=ml(0,h.type),Q=P.length>0?qv([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(Co))})}return t})();function rk(t){Ja("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function fk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===kn?kc(Q,P,h?s.call(h):s()):Gg(Q,P)}function gk(t,s,h,P){return wk(ni(),oo(),t,s,h,P)}function mk(t,s,h,P,Q){return Tk(ni(),oo(),t,s,h,P,Q)}function bk(t,s,h,P,Q,ge){return function Sk(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return _0(t,ze,Q,ge,ke)?kc(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):W0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function vk(t,s,h,P,Q,ge,ke){return function kk(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return ec(t,Je,Q,ge,ke,Le)?kc(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):W0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function yk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=ec(Je,ze,h,P,Q,ge);return Sr(Je,ze+4,ke)||dt?kc(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):Gg(Je,ze+5)}function xk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=ec(dt,Je,h,P,Q,ge);return Du(dt,Je+4,ke,Le)||Ct?kc(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):Gg(dt,Je+6)}function _k(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=ec(Ct,dt,h,P,Q,ge);return _0(Ct,dt+4,ke,Le,ze)||jt?kc(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):Gg(Ct,dt+7)}function Ck(t,s,h,P){return function Mk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Mr(P.type)),Le=Gs(Ql);try{const ze=Xc(!1),Je=ge();return Xc(ze),function go(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Ek(t,s,h){const P=t+rn,Q=ni(),ge=jc(Q,P);return $0(Q,P)?wk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function Ak(t,s,h,P){const Q=t+rn,ge=ni(),ke=jc(ge,Q);return $0(ge,Q)?Tk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function $0(t,s){return t[ui].data[s].pure}function Ik(t,s){return Sg(t,s)}class Xk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Yk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Jk=new $e(""),eM=new $e("");let cw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,cw||(function OE(t){cw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Tr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(Tr),Is(tM),Is(eM))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),tM=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return cw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hw(t){return!!t&&"function"==typeof t.then}function iM(t){return!!t&&"function"==typeof t.subscribe}const nM=new $e("");let dw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=qi(nM,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(hw(ge))h.push(ge);else if(iM(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uw=new $e("");function oM(t,s){return Array.isArray(s)?s.reduce(oM,t):{...t,...s}}let zu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=qi(su),this.afterRenderEffectManager=qi(ef),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=qi(lf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=qi(Co)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof Cd;if(!this._injector.get(dw).done)throw!Q&&xo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(Su).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Mu),Je=ke.create(Ws.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Jk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),ex(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Km)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>pw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>pw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;ex(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(uw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>ex(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ex(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!pw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,Tg(t,s,P)}(t,h,s)}function pw(t){return Nd(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Kv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=Il(qs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new Sd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=qi(Tr),this.applicationRef=qi(zu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=qi(Tr),s=qi(Ml);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=qi(Tr),this.pendingTasks=qi(lf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Tr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Tr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ix=new $e("",{providedIn:"root",factory:()=>qi(ix,mn.Optional|mn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Df}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),fw=new $e("");let hM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function mv(t="zone.js",s){return"noop"===t?new Ng:"zone.js"===t?new Tr(s):t}(P?.ngZone,function cM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function AT(t,s,h){return new Yv(t,s,h)}(h.moduleType,this.injector,function lM(t){return[{provide:Tr,useFactory:t},{provide:Lo,multi:!0,useFactory:()=>{const s=qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Lo,multi:!0,useFactory:()=>{const s=qi(UE);return()=>{s.initialize()}}},{provide:su,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Ml,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{ex(this._modules,ge),Le.unsubscribe()})}),function rM(t,s,h){try{const P=h();return hw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(dw);return Le.runInitializers(),Le.donePromise.then(()=>(function mC(t){"string"==typeof t&&(gC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(ix,Df)||Df),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=oM({},P);return function VE(t,s,h){const P=new Kv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(zu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(fw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(Ws))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Gu=null;const dM=new $e("");function uM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=gw();if(!ke||ke.injector.get(dM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Gu&&!Gu.get(dM,!1))throw new me(400,!1);(function sM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Gu=t;const s=t.get(hM);(function fM(t){t.get(zh,null)?.forEach(h=>h())})(t)}(function pM(t=[],s){return Ws.create({name:s,providers:[{provide:Fs,useValue:"platform"},{provide:fw,useValue:new Set([()=>Gu=null])},...t]})}(Le,P))}return function KE(t){const s=gw();if(!s)throw new me(401,!1);return s}()}}function gw(){return Gu?.get(hM)??null}function qE(){}let mM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(ra(t)&&!h){const P=zo(t.index,s);return new wu(P,P)}return 47&t.type?new wu(s[Kn],s):null}(hs(),ni(),!(16&~t))}class xM{constructor(){}supports(s){return x0(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new _M),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new _M),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class _M{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function CM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function TM(){return new xw([new xM])}let xw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:TM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||TM()),deps:[[t,new zr,new tr]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function SM(){return new _w([new wM])}let _w=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:SM});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||SM()),deps:[[t,new zr,new tr]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=uM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zu))};static#t=this.\u0275mod=Nl({type:t});static#i=this.\u0275inj=Mn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Ja("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=qi(lf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Ml,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function XM(t,s){Ja("NgSignals"),!s?.injector&&Ge();const h=s?.injector??qi(Ws),P=!0!==s?.manualCleanup?h.get(Dl):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(mM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[yl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||_o();return new Sd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new Sd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Mr,X1:()=>ja,YN:()=>Jo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>yo,qT:()=>sc,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(bn){return Bt.onChange(bn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(bn){return Bt._handleInput(bn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(bn){return Bt._compositionEnd(bn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Qt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Dt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class di extends Qt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends di{}const jn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function Gn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function Cs(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function _s(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Mi(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Mi(ct._rawValidators,Bt),Mi(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(bn=>bn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(bn=>bn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Mi(ct._rawValidators,vt),Mi(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const ss=class extends Qt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const jr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,bn,to){super(),this._changeDetectorRef=bn,this.callSetDisabledState=to,this.control=new ss,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Gn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(jn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([jr]),M.Vt3,M.OA$]})}return ot})(),sc=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const ur={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(bn){return Bt.onChange(bn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([ur]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),al={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return Gn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof ss)(Bt)&&(Gn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function Mn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function Br(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(jn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(bn){return Bt.onSubmit(bn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([al]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ll={provide:x,useExisting:(0,M.Rfq)(()=>pa)};let pa=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ll]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof pa)}const bo={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,bn){super(),this._ngModelWarningConfig=bn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([bo]),M.Vt3,M.OA$]})}return ot})();let tr=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const dl={provide:F,useExisting:(0,M.Rfq)(()=>Mr),multi:!0};let Mr=(()=>{class ot extends tr{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Oo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([dl]),M.Vt3]})}return ot})(),Ks=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Dn extends Qt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function Qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let yo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return Qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new di(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(Qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new ss(Ye,{...Vi,nonNullable:!0})):new ss(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(bn=>this._createControl(bn));return new Dn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof ss||Ye instanceof Qt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Jo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:jn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ks]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:jn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ks]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Dt){return new URL(Dt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Dt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Dt)};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const fe=new M.nKC("");let pe=(()=>{class Dt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Qt=>{Qt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Qt){return this._findPluginFor(wt).addEventListener(_t,wt,Qt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(di=>di.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Dt{constructor(_t,wt,Qt,di={}){this.doc=_t,this.appId=wt,this.nonce=Qt,this.platformId=di,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(di),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Qt=>Qt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Qt=>{null!=Qt.textContent&&wt.set(Qt.textContent,Qt)}),wt}return null}changeUsageCount(_t,wt){const Qt=this.styleRef;if(Qt.has(_t)){const di=Qt.get(_t);return di.usage+=wt,di.usage}return Qt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Qt=this.styleNodesInDOM,di=Qt?.get(wt);if(di?.parentNode===_t)return Qt.delete(wt),di.removeAttribute(te),di;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Qt=this.getStyleElement(_t,wt),di=this.styleRef,Fi=di.get(wt)?.elements;Fi?Fi.push(Qt):di.set(wt,{elements:[Qt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Dt,At){return At.map(_t=>_t.replace(B,Dt))}let z=(()=>{class Dt{constructor(_t,wt,Qt,di,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Qt,this.removeStylesOnCompDestroy=di,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Qt=this.getOrCreateRenderer(_t,wt);return Qt instanceof n?Qt.applyToHost(_t):Qt instanceof o&&Qt.applyStyles(),Qt}getOrCreateRenderer(_t,wt){const Qt=this.rendererByCompId;let di=Qt.get(wt.id);if(!di){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,xs=this.removeStylesOnCompDestroy,jn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:di=new n(vi,Gi,wt,this.appId,xs,Fi,mi,jn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,jn);default:di=new o(vi,Gi,wt,xs,Fi,mi,jn)}Qt.set(wt.id,di)}return di}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();class O{constructor(At,_t,wt,Qt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Qt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Qt){if(Qt){_t=Qt+":"+_t;const di=A[Qt];di?At.setAttributeNS(di,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Qt=A[wt];Qt?At.removeAttributeNS(Qt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Qt){Qt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Qt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Dt){return"TEMPLATE"===Dt.tagName&&void 0!==Dt.content}class y extends O{constructor(At,_t,wt,Qt,di,Fi,mi,vi){super(At,di,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Qt.id,Qt.styles);for(const xs of Gi){const jn=document.createElement("style");mi&&jn.setAttribute("nonce",mi),jn.textContent=xs,this.shadowRoot.appendChild(jn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Qt,di,Fi,mi,vi){super(At,di,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Qt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Qt,di,Fi,mi,vi){const Gi=Qt+"-"+wt.id;super(At,_t,wt,di,Fi,mi,vi,Gi),this.contentAttr=function _(Dt){return D.replace(B,Dt)}(Gi),this.hostAttr=function b(Dt){return L.replace(B,Dt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Dt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Qt){return _t.addEventListener(wt,Qt,!1),()=>this.removeEventListener(_t,wt,Qt)}removeEventListener(_t,wt,Qt){return _t.removeEventListener(wt,Qt)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Dt=>Dt.altKey,control:Dt=>Dt.ctrlKey,meta:Dt=>Dt.metaKey,shift:Dt=>Dt.shiftKey};let k=(()=>{class Dt extends J{constructor(_t){super(_t)}supports(_t){return null!=Dt.parseEventName(_t)}addEventListener(_t,wt,Qt){const di=Dt.parseEventName(wt),Fi=Dt.eventCallback(di.fullKey,Qt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,di.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Qt=wt.shift();if(0===wt.length||"keydown"!==Qt&&"keyup"!==Qt)return null;const di=Dt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const xs=wt.indexOf(Gi);xs>-1&&(wt.splice(xs,1),Fi+=Gi+".")}),Fi+=di,0!=wt.length||0===di.length)return null;const vi={};return vi.domEventName=Qt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Qt=d[_t.key]||_t.key,di="";return wt.indexOf("code.")>-1&&(Qt=_t.code,di="code."),!(null==Qt||!Qt)&&(Qt=Qt.toLowerCase()," "===Qt?Qt="space":"."===Qt&&(Qt="dot"),l.forEach(Fi=>{Fi!==Qt&&(0,C[Fi])(_t)&&(di+=Fi+".")}),di+=Qt,di===wt)}static eventCallback(_t,wt,Qt){return di=>{Dt.matchEventFullKeyCode(di,_t)&&Qt.runGuarded(()=>wt(di))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Qt=!0)=>{const di=At.findTestabilityInTree(wt,Qt);if(null==di)throw new M.wOt(5103,!1);return di},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Qt=M.JZv.getAllAngularTestabilities();let di=Qt.length;const Fi=function(){di--,0==di&&wt()};Qt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Dt{constructor(_t){}static withServerTransition(_t){return{ngModule:Dt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Dt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Dt})(),he=(()=>{class Dt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac,providedIn:"root"})}return Dt})(),Xe=(()=>{class Dt{static#e=this.\u0275fac=function(wt){return new(wt||Dt)};static#t=this.\u0275prov=M.jDH({token:Dt,factory:function(wt){let Qt=null;return Qt=wt?new(wt||Dt):M.KVO(Ze),Qt},providedIn:"root"})}return Dt})(),Ze=(()=>{class Dt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac,providedIn:"root"})}return Dt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>bo,wF:()=>un,Kp:()=>ms,b:()=>Pi,Ix:()=>ui,Wk:()=>gs,wQ:()=>ks,iI:()=>Cl,n3:()=>Io});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new Gn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function di(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Dt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Dt(Re.path)}${function Qt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Dt(Ue)}=${Dt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,xs=/^[^=?&#]+/,ls=/^[^&#]+/;class Gn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function jn(Re){const Ue=Re.match(xs);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Mi(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Mi(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,Jt]of Object.entries(mt.children))Ue[Ot]=Jt;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function _s(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Yt of mt.children){const Ii=Be(Yt);Ot[Yt.outlet]=Ii}const Jt=new Me(mt.url,Ot);return mt===Re&&(Ue=Jt),Jt}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return Mn(rt,rt,rt,Be,We);const mt=function Kr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new mo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const Jt={};return Object.entries(mt.outlets).forEach(([Yt,Ii])=>{Jt[Yt]="string"==typeof Ii?Ii.split("/"):Ii}),[...rt,{outlets:Jt}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((Jt,Yt)=>{0==Yt&&"."===Jt||(0==Yt&&""===Jt?Be=!0:".."===Jt?Ue++:""!=Jt&&rt.push(Jt))}),rt):[...rt,mt]},[]);return new mo(Be,Ue,We)}(Ue);if(mt.toRoot())return Mn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new nr(Ue,!0,0);if(!Be)return new nr(Ue,!1,NaN);if(null===Be.parent)return new nr(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new nr(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),Jt=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return Mn(rt,Ot.segmentGroup,Jt,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function Cs(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function Mn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Yt,Ii])=>{mt[Yt]=Array.isArray(Ii)?Ii.map(vn=>`${vn}`):`${Ii}`}),Ot=Re===Ue?Be:Br(Re,Ue,Be);const Jt=dn(Mi(Ot));return new _e(Jt,mt,rt)}function Br(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:Br(mt,Ue,Be)}),new Me(Re.segments,We)}class mo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(Cs);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class nr{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],Jt=Be[We];if(Cs(Jt))break;const Yt=`${Jt}`,Ii=We0&&void 0===Yt)break;if(Yt&&Ii&&"object"==typeof Ii&&void 0===Ii.outlets){if(!si(Yt,Ii,Ot))return mt;We+=2}else{if(!si(Yt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class ss extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class rs extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class er extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class is extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Zr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class jr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class sc{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class ur{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class qr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mn{}class Zo{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Qr,this.attachRef=null}}let Qr=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class ol{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=al(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=al(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function al(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=al(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ll extends ol{constructor(Ue,Be){super(Ue),this.snapshot=Be,ga(this,Ue)}toString(){return this.snapshot.toString()}}function pa(Re){const Ue=function Ra(Re){const mt=new fa([],{},{},"",{},w,Re,null,{});return new kr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),Jt=new bo(Be,We,mt,Ot,rt,w,Re,Ue.root);return Jt.snapshot=Ue.root,new ll(new Hs(Jt,[]),Ue)}class bo{constructor(Ue,Be,We,rt,mt,Ot,Jt,Yt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=Jt,this._futureSnapshot=Yt,this.title=this.dataSubject?.pipe((0,_.T)(Ii=>Ii[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&Vr(rt)&&(We.resolve[X]=rt.title),We}class fa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,Jt,Yt,Ii){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=Jt,this.routeConfig=Yt,this._resolve=Ii}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class kr extends ol{constructor(Ue,Be){super(Be),this.url=Ue,ga(this,Be)}toString(){return Is(this._root)}}function ga(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>ga(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||qi(Re.parent,Ue.parent))}function Vr(Re){return"string"==typeof Re.title||null===Re.title}let Io=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(Qr),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(vo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,Jt=this.parentContexts.getOrCreateContext(this.name).children,Yt=new ma(Be,Jt,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Yt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ma{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===bo?this.route:Ue===Qr?this.childContexts:this.parent.get(Ue,Be)}}const vo=new M.nKC("");let ba=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,Jt],Yt)=>(Jt={...mt,...Ot,...Jt},0===Yt?(0,Pe.of)(Jt):Promise.resolve(Jt)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:Jt}of Ot.inputs)Be.activatedComponentRef.setInput(Jt,mt[Jt]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Oo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function tr(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Oo(Re,We,rt);return Oo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(Jt=>Oo(Re,Jt)),Ot}}const We=function hl(Re){return new bo(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Oo(Re,mt));return new Hs(We,rt)}}const zr="ngNavigationCancelingError";function dl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Mr(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Mr(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[zr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[zr]}let Dr=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Io],encapsulation:2})}return Re})();function Gr(Re){const Ue=Re.children&&Re.children.map(Gr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Dr),Be}function eo(Re){return Re.outlet||w}function Ks(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class xa{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),Jt=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:Jt})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const Jt=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(Jt.contexts),Ot.attachRef=Jt.componentRef,Ot.route=Jt.route.value,Ot.outlet&&Ot.outlet.attach(Jt.componentRef,Jt.route.value),Us(Jt.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const Jt=Ks(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=Jt,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class Qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class yo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function ul(Re,Ue,Be){const We=Re._root;return Jo(We,Ue?Ue._root:null,Be,[We.value])}function Qi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Jo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,Jt=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Yt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Yt?rt.canActivateChecks.push(new Qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Jo(Re,Ue,mt.component?Jt?Jt.children:null:Be,We,rt),Yt&&Jt&&Jt.outlet&&Jt.outlet.isActivated&&rt.canDeactivateChecks.push(new yo(Jt.outlet.component,Ot))}else Ot&&ct(Ue,Jt,rt),rt.canActivateChecks.push(new Qo(We)),Jo(Re,null,mt.component?Jt?Jt.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,Jt])=>ct(Jt,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new yo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Zs(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Ar=Symbol("INITIAL_VALUE");function or(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Ar)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Ar)return Ar;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Ar),(0,T.s)(1)))}function io(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw dl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Nl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Or(Re){return(0,J.$)(new Nl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const Jt=mt.substring(1);We[rt]=Be[Jt]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([Jt,Yt])=>{Ot[Jt]=this.createSegmentGroup(Ue,Yt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const xo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function qs(Re,Ue,Be,We,rt){const mt=pl(Re,Ue,Be);return mt.matched?(We=function qo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Zh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const Jt=Qi(Ot,Re);return Ce(function Er(Re){return Re&&Ye(Re.canMatch)}(Jt)?Jt.canMatch(Ue,Be):(0,M.N4e)(Re,()=>Jt(Ue,Be)))});return(0,Pe.of)(mt).pipe(or(),io())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...xo}))):(0,Pe.of)(mt)}function pl(Re,Ue,Be){if("**"===Ue.path)return function fl(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...xo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...xo};const mt={};Object.entries(rt.posParams??{}).forEach(([Jt,Yt])=>{mt[Jt]=Yt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function gl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>ml(Re,Ue,We)&&eo(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ac(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Fl(Re,Ue,Be){return Be.some(We=>ml(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Ac(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Ac(Re,Ue,Be,We){const rt={};for(const mt of Be)if(ml(Re,Ue,mt)&&!We[eo(mt)]){const Ot=new Me([],{});rt[eo(mt)]=Ot}return{...We,...rt}}function ac(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&eo(We)!==w){const rt=new Me([],{});Be[eo(We)]=rt}return Be}function ml(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Oc{}class Bl{constructor(Ue,Be,We,rt,mt,Ot,Jt){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=Jt,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=gl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new fa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new kr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Nl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],Jt=function rc(Re,Ue){const Be=Re.filter(We=>eo(We)===Ue);return Be.push(...Re.filter(We=>eo(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,Jt,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let Jt=Be,Yt=Ue,Ii=0;mt.subscribe((0,F._)(Ot,vn=>{const In=Ii++;Yt=Jt?Re(Yt,vn,In):(Jt=!0,vn),We&&Ot.next(Yt)},rt&&(()=>{Jt&&Ot.next(Yt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Or(We);const Ot=Fo(mt);return function ir(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(Jt=>this.processSegmentAgainstRoute(Jt._injector??Ue,Be,Jt,We,rt,mt,Ot).pipe((0,d.W)(Yt=>{if(Yt instanceof Nl)return(0,Pe.of)(null);throw Yt}))),n(Jt=>!!Jt),(0,d.W)(Jt=>{if(Zs(Jt))return function lc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Oc):Or(We);throw Jt}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,Jt){return function Ic(Re,Ue,Be,We){return!!(eo(Re)===We||We!==w&&ml(Ue,Be,Re))&&pl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&Jt?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Or(rt):Or(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:Jt,consumedSegments:Yt,positionalParamSegments:Ii,remainingSegments:vn}=pl(Be,rt,mt);if(!Jt)return Or(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const In=this.applyRedirects.applyRedirectCommands(Yt,rt.redirectTo,Ii);return this.applyRedirects.lineralizeSegments(rt,In).pipe((0,f.Z)(Qs=>this.processSegment(Ue,We,Be,Qs.concat(vn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=qs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(Jt=>Jt.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Yt})=>{const Ii=We._loadedInjector??Ue,{consumedSegments:vn,remainingSegments:In,parameters:Qs}=Jt,Gl=new fa(vn,Qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Fs(Re){return Re.data||{}}(We),eo(We),We.component??We._loadedComponent??null,We,function Bs(Re){return Re.resolve||{}}(We)),{segmentGroup:Hl,slicedSegments:Wa}=gl(Be,vn,In,Yt);if(0===Wa.length&&Hl.hasChildren())return this.processChildren(Ii,Yt,Hl).pipe((0,_.T)($a=>null===$a?null:new Hs(Gl,$a)));if(0===Yt.length&&0===Wa.length)return(0,Pe.of)(new Hs(Gl,[]));const Fc=eo(We)===mt;return this.processSegment(Ii,Yt,Hl,Wa,Fc?w:mt,!0).pipe((0,_.T)($a=>new Hs(Gl,$a instanceof Hs?[$a]:[])))})):Or(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Dc(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const Jt=Qi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(Jt)?Jt.canLoad(Ue,Be):(0,M.N4e)(Re,()=>Jt(Ue,Be)))});return(0,Pe.of)(mt).pipe(or(),io())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Mr(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Lc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Fo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Lc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Fo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function _o(Re){const Ue=Re.children.map(Be=>_o(Be)).flat();return[Re,...Ue]}function jl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Rc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(vl),providedIn:"root"})}return Re})(),vl=(()=>{class Re extends Rc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ia=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Hr(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,Jt=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Gr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function na(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let sa=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Ii=>{mt=Ii}),Jt=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Yt}=We;return Yt&&(0,M.N4e)(Re,()=>Yt({transition:Jt,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ia),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(Qr),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(vo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Rc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(sa),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new sc(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,Jt=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Yt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Yt.id,initialUrl:Yt.rawUrl,extractedUrl:Yt.extractedUrl,trigger:Yt.source,extras:Yt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Ii=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Ii&&"reload"!==(Yt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const In="";return this.events.next(new er(Yt.id,this.urlSerializer.serialize(Yt.rawUrl),In,cn.IgnoredSameUrlNavigation)),Yt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Yt.rawUrl))return(0,Pe.of)(Yt).pipe((0,b.n)(In=>{const Qs=this.transitions?.getValue();return this.events.next(new ss(In.id,this.urlSerializer.serialize(In.extractedUrl),In.source,In.restoredState)),Qs!==this.transitions?.getValue()?te.w:Promise.resolve(In)}),function ta(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function No(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new Bl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:Jt,tree:Yt})=>({...Ot,targetSnapshot:Jt,urlAfterRedirects:Yt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(In=>{mt.targetSnapshot=In.targetSnapshot,mt.urlAfterRedirects=In.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:In.urlAfterRedirects};const Qs=new Zr(In.id,this.urlSerializer.serialize(In.extractedUrl),this.urlSerializer.serialize(In.urlAfterRedirects),In.targetSnapshot);this.events.next(Qs)}));if(Ii&&this.urlHandlingStrategy.shouldProcessUrl(Yt.currentRawUrl)){const{id:In,extractedUrl:Qs,source:Gl,restoredState:Hl,extras:Wa}=Yt,Fc=new ss(In,this.urlSerializer.serialize(Qs),Gl,Hl);this.events.next(Fc);const $a=pa(this.rootComponentType).snapshot;return this.currentTransition=mt={...Yt,targetSnapshot:$a,urlAfterRedirects:Qs,extras:{...Wa,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=Qs,(0,Pe.of)(mt)}{const In="";return this.events.next(new er(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),In,cn.IgnoredByUrlHandlingStrategy)),Yt.resolve(null),te.w}}),(0,l.M)(Yt=>{const Ii=new sr(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects),Yt.targetSnapshot);this.events.next(Ii)}),(0,_.T)(Yt=>(this.currentTransition=mt={...Yt,guards:ul(Yt.targetSnapshot,Yt.currentSnapshot,this.rootContexts)},mt)),function Ir(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Vn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Kh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(Jt=>{const Yt=Ks(Ue)??rt,Ii=Qi(Jt,Yt);return Ce(function to(Re){return Re&&Ye(Re.canDeactivate)}(Ii)?Ii.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Yt,()=>Ii(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(or())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(Jt=>Jt&&function vt(Re){return"boolean"==typeof Re}(Jt)?function pr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function oc(Re,Ue){return null!==Re&&Ue&&Ue(new ur(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function ea(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Yh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Ro(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const Jt=Ot.guards.map(Yt=>{const Ii=Ks(Ot.node)??Be,vn=Qi(Yt,Ii);return Ce(function bn(Re){return Re&&Ye(Re.canActivateChild)}(vn)?vn.canActivateChild(We,Re):(0,M.N4e)(Ii,()=>vn(We,Re))).pipe(n())});return(0,Pe.of)(Jt).pipe(or())}));return(0,Pe.of)(mt).pipe(or())}(Re,rt.path,Be),function Rl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ks(Ue)??Be,Jt=Qi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(Jt)?Jt.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>Jt(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(or())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(Jt)),(0,_.T)(Jt=>({...Be,guardsResult:Jt})))})}(this.environmentInjector,Yt=>this.events.next(Yt)),(0,l.M)(Yt=>{if(mt.guardsResult=Yt.guardsResult,On(Yt.guardsResult))throw dl(0,Yt.guardsResult);const Ii=new Ls(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects),Yt.targetSnapshot,!!Yt.guardsResult);this.events.next(Ii)}),(0,O.p)(Yt=>!!Yt.guardsResult||(this.cancelNavigationTransition(Yt,"",Xi.GuardRejected),!1)),jl(Yt=>{if(Yt.guards.canActivateChecks.length)return(0,Pe.of)(Yt).pipe((0,l.M)(Ii=>{const vn=new jr(Ii.id,this.urlSerializer.serialize(Ii.extractedUrl),this.urlSerializer.serialize(Ii.urlAfterRedirects),Ii.targetSnapshot);this.events.next(vn)}),(0,b.n)(Ii=>{let vn=!1;return(0,Pe.of)(Ii).pipe(function bl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Yt=>Yt.route)),Ot=new Set;for(const Yt of mt)if(!Ot.has(Yt))for(const Ii of _o(Yt))Ot.add(Ii);let Jt=0;return(0,V.H)(Ot).pipe((0,r.H)(Yt=>mt.has(Yt)?function Co(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!Vr(rt)&&(mt[X]=rt.title),function Ca(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function wa(Re,Ue,Be,We){const rt=Ks(Ue)??We,mt=Qi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(Jt=>{mt[Ot]=Jt}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Zs(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Yt,We,Re,Ue):(Yt.data=xr(Yt,Yt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>Jt++),p(1),(0,f.Z)(Yt=>Jt===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>vn=!0,complete:()=>{vn||this.cancelNavigationTransition(Ii,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Ii=>{const vn=new Ki(Ii.id,this.urlSerializer.serialize(Ii.extractedUrl),this.urlSerializer.serialize(Ii.urlAfterRedirects),Ii.targetSnapshot);this.events.next(vn)}))}),jl(Yt=>{const Ii=vn=>{const In=[];vn.routeConfig?.loadComponent&&!vn.routeConfig._loadedComponent&&In.push(this.configLoader.loadComponent(vn.routeConfig).pipe((0,l.M)(Qs=>{vn.component=Qs}),(0,_.T)(()=>{})));for(const Qs of vn.children)In.push(...Ii(Qs));return In};return(0,ie.z)(Ii(Yt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),jl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Yt,targetSnapshot:Ii}=mt,vn=this.createViewTransition?.(this.environmentInjector,Yt.root,Ii.root);return vn?(0,V.H)(vn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Yt=>{const Ii=function cl(Re,Ue,Be){const We=Oo(Re,Ue._root,Be?Be._root:void 0);return new ll(We,Ue)}(Be.routeReuseStrategy,Yt.targetSnapshot,Yt.currentRouterState);return this.currentTransition=mt={...Yt,targetRouterState:Ii},this.currentNavigation.targetRouterState=Ii,mt}),(0,l.M)(()=>{this.events.next(new mn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new xa(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Yt=>this.events.next(Yt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Yt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Yt.targetRouterState.snapshot),Yt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Yt=>{throw Yt}))),(0,H.j)(()=>{!Ot&&!Jt&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Yt=>{if(Jt=!0,cs(Yt))this.events.next(new rs(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Yt.message,Yt.cancellationCode)),function rr(Re){return cs(Re)&&On(Re.url)}(Yt)?this.events.next(new Zo(Yt.url)):mt.resolve(!1);else{this.events.next(new is(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Yt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Yt))}catch(Ii){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Ii)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new rs(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Pi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Qn),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let Qn=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),os=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends os{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(sa),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=pa(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof ss)this.stateMemento=this.createStateMemento();else if(Be instanceof er)this.rawUrlTree=We.initialUrl;else if(Be instanceof Zr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof mn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof rs&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof is?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ns(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof rs||Be instanceof is||Be instanceof er),(0,_.T)(Be=>Be instanceof un||Be instanceof er?us.COMPLETE:Be instanceof rs&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function js(Re){throw Re}const Pr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Hn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let ui=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(os),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(sa),this._events=new I.B,this.errorHandler=this.options.errorHandler||js,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Pi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(vo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof rs&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Zo){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),Jt={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,Jt,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof mn||Re instanceof Zo)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Yt={...rt};delete Yt.navigationId,delete Yt.\u0275routerPageId,0!==Object.keys(Yt).length&&(mt.state=Yt)}const Jt=this.parseUrl(Be);this.scheduleNavigation(Jt,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Gr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:Jt,preserveFragment:Yt}=We,Ii=Yt?this.currentUrlTree.fragment:Ot;let In,vn=null;switch(Jt){case"merge":vn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":vn=this.currentUrlTree.queryParams;break;default:vn=mt||null}null!==vn&&(vn=this.removeEmptyProps(vn));try{In=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),In=this.currentUrlTree.root}return $n(In,Be,vn,Ii??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let Jt,Yt,Ii;Ot?(Jt=Ot.resolve,Yt=Ot.reject,Ii=Ot.promise):Ii=new Promise((In,Qs)=>{Jt=In,Yt=Qs});const vn=this.pendingTasks.add();return ns(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(vn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:Jt,reject:Yt,promise:Ii,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Ii.catch(In=>Promise.reject(In))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,Jt){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=Jt,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Yt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Yt||"area"===Yt,this.isAnchorElement?this.subscription=Be.events.subscribe(Ii=>{Ii instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const Jt=this.urlTree;return!!(null===Jt||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(Jt,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(ui),M.rXU(bo),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(Jt=>{Jt instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function ar(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(ui),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class Ta{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),wo=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,Jt=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(Jt,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(ui),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(Ta),M.KVO(ia))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Bo=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof ss?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof er&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof qr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new qr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function ka(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(ui),rt=Re.get(jo);1===Re.get(yl)&&We.initialNavigation(),Re.get(xl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const jo=new M.nKC("",{factory:()=>new I.B}),yl=new M.nKC("",{providedIn:"root",factory:()=>1}),xl=new M.nKC("");function Vo(Re){return Kn(0,[{provide:xl,useExisting:wo},{provide:Ta,useExisting:Re}])}function gr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const zl=new M.nKC("ROUTER_FORROOT_GUARD"),ra=[E.aZ,{provide:Qe,useClass:st},ui,Qr,{provide:bo,useFactory:function bs(Re){return Re.routerState.root},deps:[ui]},ia,[]];let Cl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[ra,[],{provide:Ga,multi:!0,useValue:Be},{provide:zl,useFactory:qh,deps:[[ui,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Bo(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Vo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Zn(We):[],We?.bindToComponentInputs?Kn(8,[ba,{provide:vo,useExisting:ba}]).\u0275providers:[],We?.enableViewTransitions?gr().\u0275providers:[],[{provide:wl,useFactory:ka},{provide:M.iLQ,multi:!0,useExisting:wl}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(zl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function qh(Re){return"guarded"}function Zn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(ui);return()=>{Ue.setUpLocationChangeListener()}}},{provide:yl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:yl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(ui),mt=Ue.get(jo);ns(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const wl=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Go,do:()=>Wc,Bq:()=>Lr,UN:()=>hu,ZM:()=>Jd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Ut=>Ut.length)){const Ut=Ne.map(ei=>ei.shift());we.next(je?je(...Ut):Ut),Ne.some((ei,ii)=>!ei.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Ut=0;Ut{it[Ut]=ei,!Vt&&!ft[Ut]&&(ft[Ut]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Ut=>{if(Vt){const ei=[Ut,...it];we.next(je?je(...ei):ei)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Ut=!ht()&&ae,ei=(we.left+(Ut&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Ut&&Vt?Vt.offsetTop:0))/it,wi=we.width/Ne,_i=we.height/it;return{width:wi,height:_i,top:ii,right:ei+wi,bottom:ii+_i,left:ei,x:ei,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Qt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function di(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&di(be)?be:Fi(Qt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],di(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Qt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function jn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function xs(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Qt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Dt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Ut=0;if(Ne){it=Ne.width,ft=Ne.height;var ei=ht();(ei||!ei&&"fixed"===je)&&(Vt=Ne.offsetLeft,Ut=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Ut}}(be,ae)):Ee(je)?function Gn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Ut=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Ut}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Ut,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Ut={x:ft,y:je.y-ae.height};break;case U:Ut={x:ft,y:je.y+je.height};break;case se:Ut={x:je.x+je.width,y:Vt};break;case w:Ut={x:je.x-ae.width,y:Vt};break;default:Ut={x:je.x,y:je.y}}var ei=Ne?Pn(Ne):null;if(null!=ei){var ii="y"===ei?"height":"width";switch(it){case x:Ut[ei]=Ut[ei]-(je[ii]/2-ae[ii]/2);break;case N:Ut[ei]=Ut[ei]+(je[ii]/2-ae[ii]/2)}}return Ut}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function Cs(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function Mn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Ut=void 0===Vt?"clippingParents":Vt,ei=je.rootBoundary,ii=void 0===ei?K:ei,wi=je.elementContext,_i=void 0===wi?q:wi,Ai=je.altBoundary,yn=void 0!==Ai&&Ai,sn=je.padding,Cn=void 0===sn?0:sn,Ln=$i("number"!=typeof Cn?Cn:Cs(Cn,G)),vs=be.rects.popper,Rn=be.elements[yn?_i===q?"reference":q:_i],En=function _s(be,je,ae,we){var Ne="clippingParents"===je?function Mi(be){var je=mi(Qt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?jn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Ut,ei){var ii=dn(be,ei,we);return Ut.top=Qe(ii.top,Ut.top),Ut.right=st(ii.right,Ut.right),Ut.bottom=st(ii.bottom,Ut.bottom),Ut.left=Qe(ii.left,Ut.left),Ut},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(Rn)?Rn:Rn.contextElement||lt(be.elements.popper),Ut,ii,ft),An=Lt(be.elements.reference),Ps=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ts=fs(Object.assign({},vs,Ps)),Cr=_i===q?Ts:An,Ns={top:En.top-Cr.top+Ln.top,bottom:Cr.bottom-En.bottom+Ln.bottom,left:En.left-Cr.left+Ln.left,right:Cr.right-En.right+Ln.right},mr=be.modifiersData.offset;if(_i===q&&mr){var Mo=mr[Ne];Object.keys(Ns).forEach(function(cr){var xe=[se,U].indexOf(cr)>=0?1:-1,tt=[Y,U].indexOf(cr)>=0?"y":"x";Ns[cr]+=Mo[tt]*xe})}return Ns}const nr={name:"flip",enabled:!0,phase:"main",fn:function Kr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Ut=ae.fallbackPlacements,ei=ae.padding,ii=ae.boundary,wi=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,yn=void 0===Ai||Ai,sn=ae.allowedAutoPlacements,Cn=je.options.placement,Ln=S(Cn),vs=Ut||(Ln!==Cn&&yn?function mo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(Cn):[p(Cn)]),Rn=[Cn].concat(vs).reduce(function(oi,Li){return oi.concat(S(Li)===X?function Br(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Ut=je.allowedAutoPlacements,ei=void 0===Ut?Ce:Ut,ii=On(je.placement),wi=ii?Vt?me:me.filter(function(yn){return On(yn)===ii}):G,_i=wi.filter(function(yn){return ei.indexOf(yn)>=0});0===_i.length&&(_i=wi);var Ai=_i.reduce(function(yn,sn){return yn[sn]=Mn(be,{placement:sn,boundary:Ne,rootBoundary:it,padding:ft})[S(sn)],yn},{});return Object.keys(Ai).sort(function(yn,sn){return Ai[yn]-Ai[sn]})}(je,{placement:Li,boundary:ii,rootBoundary:wi,padding:ei,flipVariations:yn,allowedAutoPlacements:sn}):Li)},[]),En=je.rects.reference,An=je.rects.popper,Ps=new Map,Ts=!0,Cr=Rn[0],Ns=0;Ns=0,tt=xe?"width":"height",u=Mn(je,{placement:mr,boundary:ii,rootBoundary:wi,altBoundary:_i,padding:ei}),ne=xe?cr?se:w:cr?U:Y;En[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[Mo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){Cr=mr,Ts=!1;break}Ps.set(mr,Ie)}if(Ts)for(var Tt=function(Li){var Zi=Rn.find(function(Yi){var tn=Ps.get(Yi);if(tn)return tn.slice(0,Li).every(function(wn){return wn})});if(Zi)return Cr=Zi,"break"},zt=yn?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==Cr&&(je.modifiersData[we]._skip=!0,je.placement=Cr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,yn=ae.tetherOffset,sn=void 0===yn?0:yn,Cn=Mn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Ln=S(je.placement),Fn=On(je.placement),vs=!Fn,Rn=Pn(Ln),En=function St(be){return"x"===be?"y":"x"}(Rn),An=je.modifiersData.popperOffsets,Ps=je.rects.reference,Ts=je.rects.popper,Cr="function"==typeof sn?sn(Object.assign({},je.rects,{placement:je.placement})):sn,Ns="number"==typeof Cr?{mainAxis:Cr,altAxis:Cr}:Object.assign({mainAxis:0,altAxis:0},Cr),mr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,Mo={x:0,y:0};if(An){if(it){var cr,xe="y"===Rn?Y:w,tt="y"===Rn?U:se,u="y"===Rn?"height":"width",ne=An[Rn],ue=ne+Cn[xe],Ie=ne-Cn[tt],nt=Ai?-Ts[u]/2:0,Tt=Fn===x?Ps[u]:Ts[u],zt=Fn===x?-Ts[u]:-Ps[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Li=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Zi=Li[xe],Yi=Li[tt],tn=Rt(0,Ps[u],oi[u]),wn=vs?Ps[u]/2-nt-tn-Zi-Ns.mainAxis:Tt-tn-Zi-Ns.mainAxis,nn=vs?-Ps[u]/2+nt+tn+Yi+Ns.mainAxis:zt+tn+Yi+Ns.mainAxis,qn=je.elements.arrow&&jn(je.elements.arrow),Ds=qn?"y"===Rn?qn.clientTop||0:qn.clientLeft||0:0,$s=null!=(cr=mr?.[Rn])?cr:0,lo=ne+nn-$s,Uo=Rt(Ai?st(ue,ne+wn-$s-Ds):ue,ne,Ai?Qe(Ie,lo):Ie);An[Rn]=Uo,Mo[Rn]=Uo-ne}if(Vt){var _c,da=An[En],du="y"===En?"height":"width",Qf=da+Cn["x"===Rn?Y:w],Jf=da-Cn["x"===Rn?U:se],Tp=-1!==[Y,w].indexOf(Ln),El=null!=(_c=mr?.[En])?_c:0,oh=Tp?Qf:da-Ps[du]-Ts[du]-El+Ns.altAxis,eg=Tp?da+Ps[du]+Ts[du]-El-Ns.altAxis:Jf,tg=Ai&&Tp?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(oh,da,eg):Rt(Ai?oh:Qf,da,Ai?eg:Jf);An[En]=tg,Mo[En]=tg-da}je.modifiersData[we]=Mo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Ut=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var wi=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:Cs(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Ut?Y:w,yn="y"===Ut?U:se,sn=ae.rects.reference[ii]+ae.rects.reference[Ut]-ft[Ut]-ae.rects.popper[ii],Cn=ft[Ut]-ae.rects.reference[Ut],Ln=jn(it),Fn=Ln?"y"===Ut?Ln.clientHeight||0:Ln.clientWidth||0:0,An=Fn/2-_i[ii]/2+(sn/2-Cn/2),Ps=Rt(wi[Ai],An,Fn-_i[ii]-wi[yn]);ae.modifiersData[we]=((je={})[Ut]=Ps,je.centerOffset=Ps-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ss(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Ut={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||di(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Ut=Lt(je,!0)).x+=je.clientLeft,Ut.y+=je.clientTop):it&&(Ut.x=ti(it))),{x:ft.left+Vt.scrollLeft-Ut.x,y:ft.top+Vt.scrollTop-Ut.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Ut=je.get(Vt);Ut&&Ne(Ut)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var er={placement:"bottom",modifiers:[],strategy:"absolute"};function is(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(wi,je.rects,it),ii},{}),Vt=ft[je.placement],ei=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=ei),je.modifiersData[we]=ft}},Hs=["*"],Ys=["dialog"];function ea(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function oc(be,je){}function Rl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,ea,1,1,"ng-template",null,0,M.C5r)(3,oc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Oc={animation:!0,transitionTimerDelayMs:5};let No=(()=>{class be{constructor(){this.animation=Oc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function _a(be){return"string"==typeof be}function ta(be){return null!=be}function wa(be){return(be||document.body).getBoundingClientRect()}function vl(be=document){const je=be?.activeElement;return je?je.shadowRoot?vl(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Oc,ia=new Map,Hr=(be,je,ae,we)=>{let Ne=we.context||{};const it=ia.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ia.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function jl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Ut=new ie.B,ei=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ia.set(je,{transition$:Vt,complete:()=>{Ut.next(),Ut.complete()},context:Ne});const ii=function Bl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const wi=(0,re.R)(je,"transitionend").pipe((0,I.Q)(ei),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(ei)),wi,Ut).pipe((0,I.Q)(ei)).subscribe(()=>{ia.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},sa=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),wa(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Hr(this._zone,this._element.nativeElement,sa,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Pr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Bo=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),cc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Zn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Zn||{});const ed=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function Ca(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const ei=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Zn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!ed(Ai,ft)&&("inside"===ae?ed(Ai,it)&&Re(Ai,Vt):"outside"===ae?!ed(Ai,it):Re(Ai,Vt)||!ed(Ai,it))}),(0,I.Q)(Ne)),wi=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([ei.pipe((0,T.T)(_i=>0)),wi.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let Jt=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Yt=/\s+/,Ii=/ +/gi,vn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},Qs=/^left/,Gl=/^right/,Hl=/^start/,Wa=/^end/;function $a({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Yt),it=we.findIndex(ei=>"auto"===ei);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(ei){null==we.find(ii=>-1!==ii.search("^"+ei))&&we.splice(it++,1,ei)});const ft=we.map(ei=>function In(be,je){const[ae,we]=vn[be];return je&&we||ae}(ei,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:ei}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),wi=ei.elements.popper,_i=ei.placement;let Ai=wi.className;Ai=Ai.replace(ii,""),Ai+=` ${function Fc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(Qs,"start").replace(Gl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Hl,"top").replace(Wa,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Ii," "),wi.className=Ai}},nr,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function Wu(be){return be}function td(){const be=(0,M.WQX)(Jt);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||Wu)($a(ae,be));je=Qr(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||Wu)($a(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function no(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Wd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),hd=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),kh=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Go=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,kh,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Mh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Wc=(()=>{class be extends Mh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Mh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(hd),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=td(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(no([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Ut,ei)=>{Ut.contains(ae.target)&&(ft=Ut),Ut===vl(this._document)&&(it=ei)}),we!==Zn.Space&&we!==Zn.Enter){if(we!==Zn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Zn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Zn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Zn.Home:it=0;break;case Zn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Ut=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Ut[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Ut[Ut.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Ut})=>{this._nativeElement.contains(Ut)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Go,5),M.wni(it,Mh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Dh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),$d=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class kl{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class rp{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Hr(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Hr(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new kl([we.rootNodes],we)}return new kl([[this._document.createTextNode(`${je}`)]])}return new kl([])}}let bc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Hr(this._zone,this._nativeElement,(ae,we)=>{we&&wa(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Hr(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Eh{update(je){}close(je){}dismiss(je){}}const Ah=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Ih=["animation","backdropClass"];class Xd{_applyWindowOptions(je,ae){Ah.forEach(we=>{ta(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Ih.forEach(we=>{ta(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function bl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Oh=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Oh||{});let Wf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":_a(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Hr(this._zone,ae,()=>ae.classList.remove("show"),we),Hr(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Hr(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&wa(it),it.classList.add("show")},ae),Hr(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Zn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Oh.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Oh.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Hr(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Ys,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),op=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(bc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Zn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Ut]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Ut.focus(),it.preventDefault()),ft===Ut&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ta(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Eh,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Ut=this._getContentRef(ae,Vt,we,ft,Ne);let ei=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Ut.nodes),wi=new Xd(ii,Ut,ei,Ne.beforeDismiss);return this._registerModalRef(wi),this._registerWindowCmpt(ii),wi.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{wi.close(_i)},ft.dismiss=_i=>{wi.dismiss(_i)},ft.update=_i=>{wi.update(_i)},wi.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),ei&&ei.instance&&ei.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),wi}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)($c,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Wf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):_a(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new kl([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new kl([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new kl([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Eh,useValue:it}],parent:ae}),Ut=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),ei=Ut.location.nativeElement;return ft.scrollable&&ei.classList.add("component-host-scrollable"),this._applicationRef.attachView(Ut.hostView),new kl([[ei]],Ut.hostView,Ut)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Lr=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(op),this._config=(0,M.WQX)($d)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Wl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[Lr]})}return be})(),Zd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let qd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Nh=0,Qd=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Rl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),Jd=(()=>{class be{constructor(){this._config=(0,M.WQX)(qd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+Nh++,this._popupService=new rp(Qd),this._windowRef=null,this._positioning=td()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(no([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function dp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function lr(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Ut=new Set,ei=[];let ii;function wi(Ai,yn){be.addEventListener(Ai,yn),ei.push(()=>be.removeEventListener(Ai,yn))}function _i(Ai,yn){clearTimeout(ii),yn>0?ii=setTimeout(Ai,yn):Ai()}for(const[Ai,yn]of Vt)yn?(wi(Ai,()=>{Ut.add(Ai),_i(()=>Ut.size>0&&we(),it)}),wi(yn,()=>{Ut.delete(Ai),_i(()=>0===Ut.size&&Ne(),ft)})):wi(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>ei.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(_a(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),Qc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ql=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ao=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),bp=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),yp=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),yc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ko=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Gh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const rh=[Sn,Pr,Bo,cc,Wd,Dh,Wl,Zd,Gh,Kl,Qc,ql,ao,bp,yp,yc,ko,th];let hu=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[rh,Sn,Pr,Bo,cc,Wd,Dh,Wl,Zd,Gh,Kl,Qc,ql,ao,bp,yp,yc,ko,th]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Qt,vr:()=>nr,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Dt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Qt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),di=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),xs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),jn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),Gn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Mi={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function _s(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Mi[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=_s(xt).toLocaleLowerCase(),this.filteredItems.find($e=>_s($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:_s(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Dt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return _s($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Dt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),ss=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=ss,Ti.value=Hi(It,ss.map(un=>un.value)),yt.push(Ti),yt.push(...ss)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let Cs=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),Mn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),Br=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),mo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const Kr=new M.nKC("ng-select-selection-model");let nr=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const ss=this.selectedItems.find(un=>un.value===Hi);this.unselect(ss)},this.trackByOption=(Hi,ss)=>this.trackByFn?this.trackByFn(ss.value):ss,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Dt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Dt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Dt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(Br),M.rXU(Kr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(mo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Qt,5,M.C4Q),M.wni($t,di,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,xs,5,M.C4Q),M.wni($t,jn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,Gn,5,M.C4Q),M.wni($t,Mn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(Cs,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,Cs,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:Kr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>En,hp:()=>Cn,FP:()=>Ai,yc:()=>ei,Tg:()=>Ut,XI:()=>Ne,bG:()=>cr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Dt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Qt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Dt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function di(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function xs(xe,tt){}function jn(xe,tt){1&xe&&e.DNE(0,xs,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function Gn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Mi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function Cs(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Mn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Br(xe,tt){}function mo(xe,tt){1&xe&&e.DNE(0,Br,0,0,"ng-template")}function Kr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,Cs,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,Mn,1,0,"ChevronDownIcon",7)(9,mo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function nr(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,nr,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,di,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,jn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,Gn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Mi,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,Kr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Qt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Li=Math.ceil((nt+Ie)/7);for(let Zi=0;Zint){let wn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:wn.month,year:wn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,wn.month,wn.year),selectable:this.isSelectable(zt-nt,wn.month,wn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Li&&this.maxDate.toDateString()===Li&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Li=ue+1{let Yi=""+Li;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Li]:Zi[Li];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Li=-1,Zi=-1,Yi=!1,wn=$s=>{let hr=ue+1{let hr=wn($s),lo="@"===$s?14:"!"===$s?20:"y"===$s&&hr?4:"o"===$s?3:2,_c=new RegExp("^\\d{"+("y"===$s?lo:1)+","+lo+"}"),Ia=u.substring(Tt).match(_c);if(!Ia)throw"Missing number at position "+Tt;return Tt+=Ia[0].length,parseInt(Ia[0],10)},qn=($s,hr,lo)=>{let Uo=-1,_c=wn($s)?lo:hr,Ia=[];for(let wr=0;wr<_c.length;wr++)Ia.push([wr,_c[wr]]);Ia.sort((wr,da)=>-(wr[1].length-da[1].length));for(let wr=0;wr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Li=1),ue=0;ue-1)for(oi=1,Li=Zi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Li<=Ie);)oi++,Li-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Li=-1===Li?1:Li),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Li)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Li)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),ss=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],rs=["*"],er=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Li,Zi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Li,"p-overlay-right-start":Zi,"p-overlay-right-end":Yi}),is=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Zr=xe=>({value:"visible",params:xe}),sr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function jr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,jr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Zr,e.sMw(7,is,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,sr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,er,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const sc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},ur=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([sc])],ngContentSelectors:rs,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(ur)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var qr=He(38757);const mn=["element"],Zo=["content"],rl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),Qr=(xe,tt)=>({$implicit:xe,options:tt}),ol=xe=>({"p-scroller-loading":xe}),al=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ll=(xe,tt)=>({rows:xe,columns:tt});function pa(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,pa,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,Qr,u.loadedItems,u.getContentOptions()))}}function bo(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bo,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,Qr,u,ue.getOptions(ne)))}}function fa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,ol,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function kr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function ga(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ga,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function qi(xe,tt){1&xe&&e.eu8(0)}function Vr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Io(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ma(xe,tt){if(1&xe&&e.DNE(0,Vr,2,5,"ng-container",6)(1,Io,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function vo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ma,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,al,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ba(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,fa,3,7,"ng-template",null,2,e.C5r)(6,kr,1,2,"div",8)(7,vo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function cl(xe,tt){1&xe&&e.eu8(0)}function Oo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cl,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,Qr,u.items,e.l_i(2,ll,u._items,u.loadedColumns)))}}function tr(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Oo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let hl=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Li=(qn=0,Ds)=>qn<=Ds?0:qn,Zi=(qn,Ds,$s)=>qn*Ds+$s,Yi=(qn=0,Ds=0)=>this.scrollTo({left:qn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,wn=!1,nn=!1;this.both?(tn={rows:Li(u[0],zt[0]),cols:Li(u[1],zt[1])},Yi(Zi(tn.cols,oi[1],ai.left),Zi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,wn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Li(u,zt),this.horizontal?Yi(Zi(tn,oi,ai.left),nt):Yi(Tt,Zi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),wn=tn!==Ie),this.isRangeChanged=wn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Li=0)=>this.scrollTo({left:oi,top:Li,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,qn)=>nn?nn>qn?nn-qn:nn:0,nt=(nn,qn)=>Math.floor(nn/(qn||nn)),Tt=(nn,qn,Ds,$s,hr,lo)=>nn<=hr?hr:lo?Ds-$s-hr:qn+hr-1,zt=(nn,qn,Ds,$s,hr,lo,Uo)=>nn<=lo?0:Math.max(0,Uo?nnqn?Ds:nn-2*lo),ai=(nn,qn,Ds,$s,hr,lo=!1)=>{let Uo=qn+$s+2*hr;return nn>=hr&&(Uo+=hr+1),this.getLast(Uo,lo)},oi=Ie(ne.scrollTop,ue.top),Li=Ie(ne.scrollLeft,ue.left);let Zi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,wn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,qn=this.lastScrollPos.left<=Li;if(!this._appendOnly||this._appendOnly&&(nn||qn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Li,this._itemSize[1])},$s={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],qn)};Zi={rows:zt(Ds.rows,$s.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,$s.cols,this.first.cols,0,0,this.d_numToleratedItems[1],qn)},Yi={rows:ai(Ds.rows,Zi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,Zi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=Zi.rows!==this.first.rows||Yi.rows!==this.last.rows||Zi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,wn={top:oi,left:Li}}}else{const nn=this.horizontal?Li:oi,qn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&qn){const Ds=nt(nn,this._itemSize);Zi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,qn),this.first,0,0,this.d_numToleratedItems,qn),Yi=ai(Ds,Zi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=Zi!==this.first||Yi!==this.last||this.isRangeChanged,wn=nn}}return{first:Zi,last:Yi,isRangeChanged:tn,scrollPos:wn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(mn,5),e.GBs(Zo,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:rl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ba,8,16,"ng-container",6)(1,tr,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,qr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),zr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,qr.N,Pe.Gg]})}return xe})(),dl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Mr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),rr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Dr=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),qo=xe=>({$implicit:xe});function va(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Po=["container"],Fa=["filter"],Ba=["focusInput"],ya=["editableInput"],Ys=["items"],Jr=["scroller"],Gr=["overlay"],eo=["firstHiddenFocusableEl"],rc=["lastHiddenFocusableEl"],Ks=xe=>({options:xe}),Dn=(xe,tt)=>({$implicit:xe,options:tt}),Lo=()=>({});function xa(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function Qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,qo,u.selectedOption))}}function yo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function ul(xe,tt){if(1&xe&&e.DNE(0,yo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Ro(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,xa,2,1,"ng-container",23)(3,Qo,1,4,"ng-container",24)(4,ul,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Qi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Jo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function bn(xe,tt){}function to(xe,tt){1&xe&&e.DNE(0,bn,0,0,"ng-template")}function Er(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,to,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Zs(xe,tt){1&xe&&e.eu8(0)}function Ar(xe,tt){1&xe&&e.eu8(0)}function or(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ar,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ks,u.filterOptions))}}function Ir(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Vn(xe,tt){}function pr(xe,tt){1&xe&&e.DNE(0,Vn,0,0,"ng-template")}function ea(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,pr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function oc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Ir,1,1,"SearchIcon",33)(4,ea,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Rl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,or,2,4,"ng-container",23)(2,oc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Yh(xe,tt){1&xe&&e.eu8(0)}function Kh(xe,tt){if(1&xe&&e.DNE(0,Yh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Dn,u,ne))}}function Dc(xe,tt){1&xe&&e.eu8(0)}function io(xe,tt){if(1&xe&&e.DNE(0,Dc,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ks,u))}}function Zh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,io,1,4,"ng-template",49),e.bVm())}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Kh,1,5,"ng-template",21)(3,Zh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Dn,ne.visibleOptions(),e.lJ4(2,Lo)))}}function Ec(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ec,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,qo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function xo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function qs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function pl(xe,tt){1&xe&&e.eu8(0,null,12)}function fl(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,qs,2,1,"ng-container",23)(2,pl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function gl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Ac(xe,tt){1&xe&&e.eu8(0,null,13)}function ac(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,gl,2,1,"ng-container",23)(2,Ac,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,xo,2,2,"ng-template",51)(3,fl,3,6,"li",52)(4,ac,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Fl(xe,tt){1&xe&&e.eu8(0)}function ml(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Zs,1,0,"ng-container",31)(4,Rl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Nl,4,10,"p-scroller",41)(7,Or,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Fl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Ic={provide:V.kq,useExisting:(0,e.Rfq)(()=>Oc),multi:!0};let lc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,va,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Dr,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,qo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Oc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Po,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(ya,5),e.GBs(Ys,5),e.GBs(Jr,5),e.GBs(Gr,5),e.GBs(eo,5),e.GBs(rc,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Ic])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Ro,6,20,"span",15)(3,Qi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Er,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,ml,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,dl,hl,ss,A.A,$,rr,lc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),No=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Mr,ve.Z,zr,un,A.A,$,rr,La,Pe.Gg,zr]})}return xe})(),Pc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Bl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ir=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Lc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),_a=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Bs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ta=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),bl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Co=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var Ca=He(22242);const wa=["input"],jl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Rc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),vl=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ia(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Hr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ia,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function na(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Hr,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function sa(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,sa,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Pi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Pi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Rc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,vl))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function Qn(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function os(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ns(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,os,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function js(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,Qn,1,2,"span",13)(2,ns,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Rc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Pr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Hn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function ui(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,ui,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Hn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Pr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,vl))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>ar),multi:!0};let ar=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Li=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Li=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Li,currencyCharIndex:Zi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=Zi>=nt?Zi-1:Li>=nt?Li:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,wn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,wn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(wa,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,na,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,js,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,jl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,Ca.S,Z._f,A.A,Co,_o],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Ta=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Ca.u,Z.tm,A.A,Co,_o,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),fr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),wo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Bo=xe=>({"p-disabled":xe}),cc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Sa(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,cc,u.paginatorState))}}function Vl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function To(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function hc(xe,tt){}function ka(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function jo(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,ka,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function yl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,To,1,1,"AngleDoubleLeftIcon",6)(2,jo,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Bo,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rn(xe,tt){}function dc(xe,tt){1&xe&&e.DNE(0,rn,0,0,"ng-template")}function xl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,dc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Vo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function uc(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Vo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function _l(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function Vs(xe,tt){1&xe&&e.eu8(0)}function pc(xe,tt){if(1&xe&&e.DNE(0,Vs,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function gr(xe,tt){1&xe&&e.DNE(0,pc,1,1,"ng-template",28)}function zs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,_l,1,1,"ng-template",26)(2,gr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function zl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function ra(xe,tt){}function Cl(xe,tt){1&xe&&e.DNE(0,ra,0,0,"ng-template")}function Ur(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Cl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Nc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function bh(xe,tt){}function qh(xe,tt){1&xe&&e.DNE(0,bh,0,0,"ng-template")}function Zn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,qh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function wl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Nc,1,1,"AngleDoubleRightIcon",6)(2,Zn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Bo,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function Qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Jh(xe,tt){1&xe&&e.eu8(0)}function Lf(xe,tt){if(1&xe&&e.DNE(0,Jh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,cc,u))}}function Hu(xe,tt){1&xe&&(e.qex(0),e.DNE(1,Lf,1,4,"ng-template",32),e.bVm())}function Uu(xe,tt){1&xe&&e.eu8(0)}function Id(xe,tt){if(1&xe&&e.DNE(0,Uu,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function ed(xe,tt){1&xe&&e.DNE(0,Id,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Hu,2,0,"ng-container",27)(2,ed,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,cc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Sa,2,5,"div",2)(2,Vl,2,1,"span",3)(3,yl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,xl,2,1,"span",7),e.k0s(),e.DNE(7,uc,2,1,"span",8)(8,zs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,zl,1,1,"AngleRightIcon",6)(11,Ur,2,1,"span",7),e.k0s(),e.DNE(12,wl,3,7,"button",11)(13,Qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Bo,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Bo,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Oc,Pe.Ei,ar,V.BC,V.vS,ve.n,ms,fr,wo,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,No,Ta,V.YN,Pe.Gg,ve.Z,ms,fr,wo,en,No,Ta,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],Jt=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Yt=(xe,tt)=>({$implicit:xe,index:tt});function Ii(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function vn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ii,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function In(xe,tt){1&xe&&e.eu8(0)}function Qs(xe,tt){if(1&xe&&e.DNE(0,In,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Yt,ne,ue))}}function Gl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,vn,4,3,"ng-container",5)(2,Qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,Jt,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Hl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Wa),multi:!0};let Wa=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Hl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Gl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),Fc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const $a=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),Wu=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),td=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function $u(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function Xu(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Od(xe,tt){}function Pd(xe,tt){1&xe&&e.DNE(0,Od,0,0,"ng-template")}function no(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Pd,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function Ld(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xu,1,2,"CheckIcon",9)(2,no,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function Yu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$u,1,2,"span",7)(2,Ld,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function Ku(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Zu(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function gm(xe,tt){}function ws(xe,tt){1&xe&&e.DNE(0,gm,0,0,"ng-template")}function id(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,ws,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function Bc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Zu,1,2,"TimesIcon",9)(2,id,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function so(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ku,1,2,"span",7)(2,Bc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Rf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,td,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const vh={provide:V.kq,useExisting:(0,e.Rfq)(()=>jc),multi:!0};let jc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([vh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,Yu,3,2,"ng-container",5)(6,so,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Rf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,$a,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,Wu,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,ir,A.A],encapsulation:2,changeDetection:0})}return xe})(),zo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,ir,A.A,Pe.Gg]})}return xe})();var Vc=He(21413);const nd=["container"],Nf=["resizeHelper"],Xa=["reorderIndicatorUp"],Rd=["reorderIndicatorDown"],Ff=["wrapper"],yh=["table"],Nd=["thead"],xh=["tfoot"],_h=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Ya=xe=>({height:xe}),an=(xe,tt)=>({$implicit:xe,options:tt}),Ch=xe=>({columns:xe}),Bf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function sd(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function jf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function fc(xe,tt){}function Ka(xe,tt){1&xe&&e.DNE(0,fc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ka,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function qu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,jf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function Qu(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,sd,1,2,"i",22)(2,qu,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function Ju(xe,tt){1&xe&&e.eu8(0)}function rd(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,Ju,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function pn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function gc(xe,tt){1&xe&&e.DNE(0,pn,1,1,"ng-template",30)}function zc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,zc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Gc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function oa(xe,tt){1&xe&&e.eu8(0)}function aa(xe,tt){if(1&xe&&e.DNE(0,oa,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,aa,1,1,"ng-template",32)}function od(xe,tt){1&xe&&e.eu8(0)}function Vf(xe,tt){if(1&xe&&e.DNE(0,od,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function mm(xe,tt){1&xe&&e.DNE(0,Vf,1,1,"ng-template",33)}function ep(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function So(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function tp(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,gc,1,0,null,16)(2,Gc,1,0,null,16)(3,Bd,1,0,null,16)(4,mm,1,0,null,16)(5,So,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Sl(xe,tt){if(1&xe&&e.DNE(0,Ma,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,an,u,ne))}}function zf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,Sl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Ya,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function jd(xe,tt){1&xe&&e.eu8(0)}function Vd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,jd,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,an,u.processedData,e.eq3(2,Ch,u.columns)))}}function ad(xe,tt){1&xe&&e.eu8(0)}function wh(xe,tt){1&xe&&e.eu8(0)}function Th(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function zd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Hc(xe,tt){1&xe&&e.eu8(0)}function Gf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Hc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Sh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,ad,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,wh,1,0,"ng-container",37),e.k0s(),e.DNE(6,Th,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,zd,1,2,"tbody",42)(9,Gf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Bf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Gd(xe,tt){1&xe&&e.eu8(0)}function ip(xe,tt){if(1&xe&&e.DNE(0,Gd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function ld(xe,tt){1&xe&&e.DNE(0,ip,1,1,"ng-template",30)}function Hd(xe,tt){1&xe&&e.eu8(0)}function Ud(xe,tt){if(1&xe&&e.DNE(0,Hd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function cd(xe,tt){1&xe&&e.DNE(0,Ud,1,1,"ng-template",31)}function Hf(xe,tt){1&xe&&e.eu8(0)}function Wr(xe,tt){if(1&xe&&e.DNE(0,Hf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function mc(xe,tt){1&xe&&e.DNE(0,Wr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function np(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Uf(xe,tt){1&xe&&e.DNE(0,np,1,1,"ng-template",33)}function sp(xe,tt){1&xe&&e.eu8(0)}function Wd(xe,tt){if(1&xe&&e.DNE(0,sp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function hd(xe,tt){1&xe&&e.DNE(0,Wd,1,1,"ng-template",34)}function kh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,ld,1,0,null,16)(2,cd,1,0,null,16)(3,mc,1,0,null,16)(4,Uf,1,0,null,16)(5,hd,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.eu8(0)}function Go(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Uc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Mh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Wc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function dd(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Dh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Wc,1,0,"ArrowDownIcon",16)(3,dd,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function $d(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function kl(xe,tt){}function rp(xe,tt){1&xe&&e.DNE(0,kl,0,0,"ng-template")}function bc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,$d,1,0,"ArrowUpIcon",16)(3,rp,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const $c=["pTableBody",""],Eh=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),Ah=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Ih=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),Xd=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Oh=(xe,tt)=>({$implicit:xe,frozen:tt});function Wf(xe,tt){1&xe&&e.eu8(0)}function op(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Lr(xe,tt){1&xe&&e.eu8(0)}function Wl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Lr,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function ap(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ap,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function $r(xe,tt){1&xe&&e.eu8(0)}function Xc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,$r,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function lp(xe,tt){if(1&xe&&e.DNE(0,op,2,8,"ng-container",2)(1,Wl,2,8,"ng-container",0)(2,Da,2,10,"ng-container",0)(3,Xc,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function $l(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,lp,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Yc(xe,tt){1&xe&&e.eu8(0)}function Ph(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Yc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function la(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,la,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function ud(xe,tt){1&xe&&e.eu8(0)}function Kc(xe,tt){1&xe&&e.eu8(0)}function pd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ud,1,0,"ng-container",4)(2,pd,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,Xd,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Kd(xe,tt){if(1&xe&&e.DNE(0,Ph,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zc,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Kd,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Lh(xe,tt){1&xe&&e.eu8(0)}function Rh(xe,tt){1&xe&&e.eu8(0)}function Xl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Rh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,Xd,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function Yl(xe,tt){if(1&xe&&e.DNE(0,Lh,1,0,"ng-container",4)(1,Xl,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Ih,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Yl,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Ea(xe,tt){1&xe&&e.eu8(0)}function Ho(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ea,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Oh,u.columns,u.frozen))}}function ca(xe,tt){1&xe&&e.eu8(0)}function cp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ca,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Oh,u.columns,u.frozen))}}function hp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Kl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,hp,1,1,"SortAltIcon",3)(2,Kl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function dp(xe,tt){}function qd(xe,tt){1&xe&&e.DNE(0,dp,0,0,"ng-template")}function Nh(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,qd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function Qd(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function Jd(xe,tt){1&xe&&e.eu8(0)}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function up(xe,tt){1&xe&&e.eu8(0)}function Zl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,up,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new Vc.B;selectionSource=new Vc.B;contextMenuSource=new Vc.B;valueSource=new Vc.B;totalRecordsSource=new Vc.B;columnsSource=new Vc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Li){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Li,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=Zi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Li?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Li=this.findIndexInSelection(nt);this._selection=this.selection.filter((Zi,Yi)=>Yi!=Li),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):IeZi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Li=>{let Zi=le.BF.resolveFieldData(oi,Li.field);return Zi=null!=Zi?this.exportFunction?this.exportFunction({data:Zi,field:Li.field}):String(Zi).replace(/"/g,'""'):"",'"'+Zi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(nd,5),e.GBs(Nf,5),e.GBs(Xa,5),e.GBs(Rd,5),e.GBs(Ff,5),e.GBs(yh,5),e.GBs(Nd,5),e.GBs(xh,5),e.GBs(_h,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,Qu,3,2,"div",11)(3,rd,2,1,"div",12)(4,tp,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,zf,3,17,"p-scroller",15)(8,Vd,2,7,"ng-container",16)(9,Sh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,kh,6,24,"p-paginator",13)(12,Go,2,1,"div",17)(13,Mh,2,0,"div",18)(14,Dh,4,2,"span",19)(15,bc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,hl,Pc,Bl,qr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:$c,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,$l,2,2,"ng-container",0)(1,Zd,2,2,"ng-container",0)(2,qc,2,2,"ng-container",0)(3,Ho,2,5,"ng-container",0)(4,cp,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Ut=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),ei=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,lr,4,3,"ng-container",0)(1,Nh,2,4,"span",1)(2,Qd,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Fs,ta,Bs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),Cn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Ln=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),En=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(Cn,8),e.rXU(Ln,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,1,"ng-container",0)(1,Zl,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),cr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,Ca.u,No,V.YN,Z.tm,Fc,Hi,Ta,zo,zr,Pc,Bl,qr.N,Fs,ta,Bs,ir,Lc,Fo,_a,bl,Pe.Gg,zr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/main.db7703bbf8c2ef86.js b/www/z4d/main.db7703bbf8c2ef86.js new file mode 100644 index 000000000..2e420277c --- /dev/null +++ b/www/z4d/main.db7703bbf8c2ef86.js @@ -0,0 +1 @@ +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"Param\xe8tres de l\'objet","device.byname.parameter.popover.text":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet. Vert indique que les param\xe8tres ont \xe9t\xe9 pris envoy\xe9 \xe0 l\'objet, Orange indique que les param\xe8tres n\'ont pas encore \xe9t\xe9 envoy\xe9","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Active l\'utilisation du scan de topologie zigpy","ZigpyTopologyReportAutoBackup":"Sauvegarde les scan topologie interne zigpy"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"Device Parameters","device.byname.parameter.popover.text":"Specify local device configuration parameters. Green means in sync with the device, when Orange the parameters are not yet pushed to the device","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur","ZigpyTopologyReport":"Enable the use of zigpy Topology Scanner","ZigpyTopologyReportAutoBackup":"Automaticaly backup auto-triggered Topology scan"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:["alt.z","z>i>g"],refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Mt=gt&&Ve||new Map;qe.forEach((Pt,Wt)=>{let Zt=Wt,hi=Pt;if("offset"!==Wt)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Wt);break;case Z.kp:hi=m.get(Wt);break;default:hi=c.normalizeStyleValue(Wt,Zt,hi,W)}Mt.set(Zt,hi)}),gt||ce.push(Mt),Ve=Mt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=xs(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=xs(m);c.style[W]=""})}function Qt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function xs(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function Gn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Mi=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class _s extends Te{normalizePropertyName(v,i){return xs(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Mi.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const Mn="*";const nr=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=nr.has(c)||St.has(c),m=nr.has(v)||St.has(v);return(W,ce)=>{let De=c==Mn||c==W,Ve=v==Mn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?nr.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?nr.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),Gn(this,Qt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=Gn(this,Qt(v.animation),i),W=function Br(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function mo(c,v,i){if(":"==c[0]){const qe=function Kr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=Mn||De!=Mn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>Gn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=Gn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return ss(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=ss(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return ss(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Mt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Mt=!1),ce=gt.startTime),Mt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function di(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(pi=>{const Ci=this._makeStyleAst(pi,i);let gi=null!=Ci.offset?Ci.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(Ci.styles),ki=0;return null!=gi&&(ce++,ki=Ci.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?Ci==Wt?1:Pt*Ci:De[Ci],ki=gi*Xt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(pi,i),pi.offset=gi,m.styles.push(pi)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:Gn(this,Qt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=Gn(this,Qt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:Gn(this,Qt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function ss(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const er=new RegExp(":enter","g"),Zr=new RegExp(":leave","g");function sr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Mt=new Ki(v,i,et,W,ce,gt,[]);Mt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Mt.currentTimeline.delayNextStep(Pt),Mt.currentTimeline.setStyles([De],null,Mt.errors,qe),Gn(this,m,Mt);const Wt=Mt.timelines.filter(Zt=>Zt.containsAnimation());if(Wt.length&&Ve.size){let Zt;for(let hi=Wt.length-1;hi>=0;hi--){const Xt=Wt[hi];if(Xt.element===i){Zt=Xt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Mt.errors,qe)}return Wt.length?Wt.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),Gn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=jr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>Gn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),Gn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=jr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Mt=i.createSubContext(v.options,et);ce&&Mt.delayNextStep(ce),et===i.element&&(qe=Mt.currentTimeline),Gn(this,v.animation,Mt),Mt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Mt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Mt=gt.currentTime;Gn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Mt+(W.startTime-m.currentTimeline.startTime)}}const jr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=jr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=jr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new sc(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(er,"."+this._enterClassName)).replace(Zr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Mt)=>{gt===Z.FX?v.add(Mt):gt===Z.kp&&i.add(Mt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class sc extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",ur(Ve)),ce.push(et);const gt=v.length-1;for(let Mt=1;Mt<=gt;Mt++){let Pt=new Map(v[Mt]);const Wt=Pt.get("offset");Pt.set("offset",ur((i+Wt*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function ur(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Mt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Mt,errors:Pt}}const La={};class qr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Zo(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Mt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Mt),hi=qe&&qe.params||La,Xt=this.buildStyles(W,hi,Mt),pi=new Set,Ci=new Map,gi=new Map,ki="void"===W,Bi={params:rl(hi,Pt),delay:this.ast.options?.delay},Di=gt?[]:sr(v,i,this.ast.animation,ce,De,Zt,Xt,Bi,et,Mt);let on=0;return Di.forEach(ln=>{on=Math.max(ln.duration+ln.delay,on)}),Mt.length?Pa(i,this._triggerName,m,W,ki,Zt,Xt,[],[],Ci,gi,on,Mt):(Di.forEach(ln=>{const ps=ln.element,Nn=N(Ci,ps,new Set);ln.preStyleProps.forEach(Un=>Nn.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&pi.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Xt,Di,[...pi.values()],Ci,gi,on))}}function rl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=rl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class ol{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new qr(v,W,this.states))}),this.fallbackTransition=function al(c,v,i){return new qr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=sr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Mt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Mt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Mt)=>{gt.forEach((Pt,Wt)=>{gt.set(Wt,this._driver.computeStyle(Mt,Wt,Z.kp))})});const et=se(De.map(gt=>{const Mt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Mt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ll="ng-animate-queued",Ra="ng-animate-disabled",kr=[],ga={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Oo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const Vr="void",Io=new qi(Vr);class ma{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,rr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function hl(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(rr(v,Qe),rr(v,Qe+"-"+i),Ve.set(i,Io)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ba(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(rr(v,Qe),rr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Io),et.value!==Vr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Xt),_t(v,pi)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Wt=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Wt){if(!W)return;Wt=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Wt,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(rr(v,ll),De.onStart(()=>{cs(v,ll)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Xt=this._engine.playersByElement.get(v);if(Xt){let pi=Xt.indexOf(De);pi>=0&&Xt.splice(pi,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,Vr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Io,gt=new qi(Vr),Mt=new ba(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Mt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===ga)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){rr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class vo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ma(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(tr(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!tr(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),rr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(tr(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return tr(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=ga,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>rr(Wi,ji))});const Xt=[],pi=new Set,Ci=new Set;for(let yi=0;yipi.add(Wi)):Ci.add(Ei))}const gi=new Map,ki=Mr(Pt,Array.from(pi));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>rr(Wi,ji))}),v.push(()=>{Wt.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Xt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Di=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Bn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const ts=Bn[Us];if(ts&&ts.setForMove){if(ts.previousTriggersValues&&ts.previousTriggersValues.has(ji.triggerName)){const Yr=ts.previousTriggersValues.get(ji.triggerName),Oi=this.statesByElement.get(ji.element);if(Oi&&Oi.has(ji.triggerName)){const fn=Oi.get(ji.triggerName);fn.value=Yr,Oi.set(ji.triggerName,fn)}}return void Wi.destroy()}}const es=!Mt||!this.driver.containsElement(Mt,Bn),Wn=gi.get(Bn),go=Zt.get(Bn),as=this._buildInstruction(ji,m,go,Wn,es);if(as.errors&&as.errors.length)return void Di.push(as);if(es)return Wi.onStart(()=>wt(Bn,as.fromStyles)),Wi.onDestroy(()=>_t(Bn,as.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Bn,as.fromStyles)),Wi.onDestroy(()=>_t(Bn,as.toStyles)),void W.push(Wi);const Xr=[];as.timelines.forEach(ts=>{ts.stretchStartingKeyframe=!0,this.disabledNodes.has(ts.element)||Xr.push(ts)}),as.timelines=Xr,m.append(Bn,as.timelines),De.push({instruction:as,player:Wi,element:Bn}),as.queriedElements.forEach(ts=>N(Ve,ts,[]).push(Wi)),as.preStyleProps.forEach((ts,Yr)=>{if(ts.size){let Oi=qe.get(Yr);Oi||qe.set(Yr,Oi=new Set),ts.forEach((fn,zn)=>Oi.add(zn))}}),as.postStyleProps.forEach((ts,Yr)=>{let Oi=et.get(Yr);Oi||et.set(Yr,Oi=new Set),ts.forEach((fn,zn)=>Oi.add(zn))})});if(Di.length){const yi=[];Di.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const on=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,on))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(on,Ei,[]).push(Wi),Wi.destroy()})});const ps=Xt.filter(yi=>Po(yi,qe,et)),Nn=new Map;dl(Nn,this.driver,Ci,et,Z.kp).forEach(yi=>{Po(yi,qe,et)&&ps.push(yi)});const Un=new Map;Wt.forEach((yi,Ei)=>{dl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Nn.get(yi),ji=Un.get(yi);Nn.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Js={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Bn=Js;if(ln.size>1){let Wn=Ei;const go=[];for(;Wn=Wn.parentNode;){const as=ln.get(Wn);if(as){Bn=as;break}go.push(Wn)}go.forEach(as=>ln.set(as,Bn))}const es=this._buildAnimation(ji.namespaceId,Wi,on,ce,Un,Nn);if(ji.setRealPlayer(es),Bn===Js)Ri.push(ji);else{const Wn=this.playersByElement.get(Bn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!es.destroyed);Bn.length?Dr(this,Ei,Bn):this.processLeaveNode(Ei)}return Xt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==Vr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Mt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Wt=>{const Zt=Wt.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Wt.destroy(),Mt.push(Wt)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Mt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Xt=hi[Us];if(Xt&&Xt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const pi=hi!==qe,Ci=function qo(c){const v=[];return va(c,v),v}((m.get(hi)||kr).map(on=>on.getRealPlayer())).filter(on=>!!on.element&&on.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Di=this._buildPlayer(Zt,Bi,Ci);if(Zt.subTimeline&&W&&Mt.add(hi),pi){const on=new ba(v,Ve,hi);on.setRealPlayer(Di),et.push(on)}return Di});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function cl(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>rr(Zt,kt));const Wt=se(Pt);return Wt.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Mt.forEach(Zt=>{N(W,Zt,[]).push(Wt)}),Wt}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ba{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function tr(c){return c&&1===c.nodeType}function zr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function dl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(zr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Mt=>{const Pt=v.computeStyle(et,Mt,W);gt.set(Mt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>zr(qe,ce[Ve++])),De}function Mr(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function rr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Dr(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function va(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new vo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function Qr(c,v,i){return new ol(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class ya{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=ya.initialStylesByElement.get(v);W||ya.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(ya.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Ys(c){let v=null;return c.forEach((i,m)=>{(function Jr(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Gr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class eo{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Wt=>Wt instanceof Gr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Wt=>{Wt.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Mt=function Dt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Wt=>new Map(Wt));Mt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Mt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Ys(v[0]),v.length>1&&(m=Ys(v[v.length-1]))):v instanceof Map&&(i=Ys(v)),i||m?new ya(c,i,m):null}(v,Mt);return new Gr(v,Mt,qe,Pt)}}const Lo="@.disabled";class xa{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Lo?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class Qo extends xa{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Lo?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function yo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function ul(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Ro{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new xa("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new Qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Qi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new _s}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Qi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Ro(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new eo},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Er=He(38117),Zs=He(93887),Ar=He(20546),or=He(88652),Ir=He(19664),Vn=He(37542),pr=He(93331),ea=He(7673),oc=He(33669),Rl=He(27468),Yh=He(86648),Kh=He(84572),Dc=He(91986),io=He(5964),Zh=He(23294),Va=He(25558),Or=He(96354),Ec=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),xo=He(73703);const qs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),pl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},fl=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Vn.PI),i=(0,e.WQX)(qs,{optional:!0})||{};return{...pl,...i,enableLinkTracking:v,disabled:c}}}),gl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Ac(c){return{provide:gl,multi:!0,useClass:c}}function ac(c){return c?c.map(Ac):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const Bl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new ir((0,e.WQX)(M.hE))});class ir{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,ea.of)(this.title.getTitle())}}const Lc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new _a((0,e.WQX)(fl),(0,e.WQX)(Qi.kB,{optional:!0}),(0,e.WQX)(Qi.hb))});class _a{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,ea.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Fo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Fs(c){return c instanceof pr.wF}function Bs(c){return"string"==typeof c?new RegExp(c):c}let _o=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Vn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?oc.D:(0,Dc.c)(this.config.delay);this.router.events.pipe((0,io.p)(Fs),(0,io.p)(function bl(c){const v=function ta(c){return c?Array.isArray(c)?c.map(Bs):[Bs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Nl(c,v){return(0,Zh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Or.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ec.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Pc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Rl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,ea.of)(void 0):(0,Yh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,xo.u)(void 0),(0,Ss.U)(void 0)):(0,ea.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,ea.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Kh.z)([m,W]).pipe((0,Or.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(pr.Ix),e.KVO(fl),e.KVO(Bl),e.KVO(Lc),e.KVO(Vn.kA),e.KVO(gl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),jl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:qs,useValue:i},ac(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(_o),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Rc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Vn.HU,useValue:!0}]})}return c})(),Rc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:qs,useValue:i},ac(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(_o),e.KVO(jl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Vn.HU,useValue:!0}]})}return c})();var vl=He(45794),_r=He(41584),Ga=He(39974),ia=He(54360),Hr=He(58750);function na(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?oc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ia._)(De,Mt=>{W&&(Ve=0),De.next(Mt)},void 0,Mt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Wt="number"==typeof m?(0,_r.O)(m):(0,Hr.Tg)(m(Mt,Ve)),Zt=(0,ia._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Wt.subscribe(Zt)}else Pt()}else De.error(Mt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),sa=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Pi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),Qn=()=>["/admin/firmware"],os=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ns(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function js(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ns,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Pr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Hn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,os)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function ui(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Or.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(vl.tw),e.rXU(Er.W4),e.rXU(Ke.G),e.rXU(Ir.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,js,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Pr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Hn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,ui,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Pi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,Qn)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Qi.Sq,Qi.bT,Ir.Mm,or.$G,or.tg,or.do,or.U0,or.ZM,at.Zm,at.BC,at.vS,pr.Wk,pr.wQ,Ir.D9],styles:[".navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function ar(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function fr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function wo(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,fr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Bo(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function cc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,cc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Sa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function Vl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Sa,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function To(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function hc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,ar,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,Ta,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,wo,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Bo,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,Vl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,To,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function ka(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function jo(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let yl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Rl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Or.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.fork$),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Vn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,hc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,ka,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,jo,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Qi.YU,Qi.bT,Ir.Mm,or.ZM,Qi.vh,Ir.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[pr.n3,Yn,yl]})}return c})();class rn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const dc=[rn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let xl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[pr.iI.forRoot(dc,{preloadingStrategy:pr.Kp}),pr.iI]})}return c})();var Vo=He(57786),uc=He(73028),_l=He(5779),Vs=He(21413),pc=He(33726),gr=He(983),zs=He(71985),zl=He(70152),ra=He(70980);function Zn(){return["Mac","iPhone","iPad"].some(v=>navigator.userAgent.includes(v))?"apple":"pc"}function wl(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let Qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new Vs.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=wl(W.keys,Zn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,pc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,zl.B)(this.sequenceDebounce),(0,uc.Z)(()=>{const gt=et;et="";const Mt=this.sequenceMaps.get(Ve);if(Mt.hotkeyMap.has(gt)){const Pt=Mt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,ea.of)(Pt.hotkey)}return gr.w}))},W={...this.defaults,...i};let ce=wl(W.keys,Zn());return(()=>{const Ve={subject:new Vs.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,ea.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Mt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Mt)}return Ve.subject.asObservable()})().pipe((0,sa.Q)(this.dispose.pipe((0,io.p)(Ve=>Ve===ce))),(0,io.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,ra.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=wl(m.keys,Zn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,ea.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new zs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,sa.Q)(this.dispose.pipe((0,io.p)(De=>De===W))))}removeShortcuts(i){(function qh(c){return Array.isArray(c)?c:[c]})(i).map(W=>wl(W,Zn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Qi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();const Re=new Er.Vy("App");let Ue=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Ar.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Ar.c.production&&Er.Vy.enableProductionMode(),Re.debug("init"),this.i18nService.init(Ar.c.defaultLanguage,Ar.c.supportedLanguages),this.subs.sink=(0,Rl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.keysBoundActive.forEach(i=>{this.subs.add(this.hotkeys.addSequenceShortcut({keys:i}).subscribe(()=>{this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))})}setTitle(){const i=this.router.events.pipe((0,io.p)(m=>m instanceof pr.wF));(0,Vo.h)(this.translateService.onLangChange,i).pipe((0,Or.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,io.p)(m=>"primary"===m.outlet),(0,uc.Z)(m=>m.data),(0,Er.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(pr.Ix),e.rXU(pr.nX),e.rXU(M.hE),e.rXU(Ir.c$),e.rXU(Ke.G),e.rXU(Er.W4),e.rXU(ut.d),e.rXU(_l.r1),e.rXU(Qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[pr.n3]})}return c})();var Be=He(31635);class Ii{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class vn extends Ii{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class In extends Ii{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Qs extends Ii{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Gl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof vn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof In?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Qs?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Wa extends Gl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Pd(){}function no(c){return null==c?Pd:function(){return this.querySelector(c)}}function Ku(){return[]}function Zu(c){return null==c?Ku:function(){return this.querySelectorAll(c)}}function id(c){return function(){return this.matches(c)}}function Bc(c){return function(v){return v.matches(c)}}var so=Array.prototype.find;function vh(){return this.firstElementChild}var zo=Array.prototype.filter;function Vc(){return Array.from(this.children)}function Rd(c){return new Array(c.length)}function yh(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function xh(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}yh.prototype={constructor:yh,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var rd="http://www.w3.org/1999/xhtml";const ni={svg:"http://www.w3.org/2000/svg",xhtml:rd,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function pn(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),ni.hasOwnProperty(v)?{space:ni[v],local:c}:c}function gc(c){return function(){this.removeAttribute(c)}}function zc(c){return function(){this.removeAttributeNS(c.space,c.local)}}function hs(c,v){return function(){this.setAttribute(c,v)}}function Gc(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function aa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function od(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function Vf(c){return function(){this.style.removeProperty(c)}}function mm(c,v,i){return function(){this.style.setProperty(c,v,i)}}function ep(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function So(c,v){return c.style.getPropertyValue(v)||od(c).getComputedStyle(c,null).getPropertyValue(v)}function tp(c){return function(){delete this[c]}}function Ma(c,v){return function(){this[c]=v}}function Sl(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function jd(c){return c.trim().split(/^|\s+/)}function Vd(c){return c.classList||new ad(c)}function ad(c){this._node=c,this._names=jd(c.getAttribute("class")||"")}function wh(c,v){for(var i=Vd(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var op=[null];function Lr(c,v){this._groups=c,this._parents=v}function Wl(){return new Lr([[document.documentElement]],op)}Lr.prototype=Wl.prototype={constructor:Lr,select:function Ld(c){"function"!=typeof c&&(c=no(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=Ci+1);!(Bi=Xt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function sd(c){function v(Mt,Pt){return Mt&&Pt?c(Mt.__data__,Pt.__data__):!Mt-!Pt}c||(c=jf);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?Vf:"function"==typeof v?ep:mm)(c,v,i??"")):So(this.node(),c)},property:function zf(c,v){return arguments.length>1?this.each((null==v?tp:"function"==typeof v?Sl:Ma)(c,v)):this.node()[c]},classed:function Sh(c,v){var i=jd(c+"");if(arguments.length<2){for(var m=Vd(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?$c:bc,W=0;W{}};function lp(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?ql(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?ql(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=hp.exec(c))?new ao(v[1],v[2],v[3],1):(v=Kl.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=vc.exec(c))?ql(v[1],v[2],v[3],v[4]):(v=lr.exec(c))?ql(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=dp.exec(c))?Xf(v[1],v[2]/100,v[3]/100,1):(v=qd.exec(c))?Xf(v[1],v[2]/100,v[3]/100,v[4]):Nh.hasOwnProperty(c)?eu(Nh[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function eu(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function ql(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function tu(c,v,i,m){return 1===arguments.length?function $f(c){return c instanceof Xl||(c=Zl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${eh(this.r)}${eh(this.g)}${eh(this.b)}`}function fp(){const c=Fh(this.opacity);return`${1===c?"rgb(":"rgba("}${Jc(this.r)}, ${Jc(this.g)}, ${Jc(this.b)}${1===c?")":`, ${c})`}`}function Fh(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function Jc(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function eh(c){return((c=Jc(c))<16?"0":"")+c.toString(16)}function Xf(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ws(c,v,i,m)}function gp(c){if(c instanceof Ws)return new Ws(c.h,c.s,c.l,c.opacity);if(c instanceof Xl||(c=Zl(c)),!c)return new Ws;if(c instanceof Ws)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ws(De,Ve,qe,c.opacity)}function Ws(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function bp(c){return(c=(c||0)%360)<0?c+360:c}function fd(c){return Math.max(0,Math.min(1,c||0))}function Yf(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function nu(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}Lh(Xl,Zl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:Qd,formatHex:Qd,formatHex8:function Jd(){return this.rgb().formatHex8()},formatHsl:function Qc(){return gp(this).formatHsl()},formatRgb:up,toString:up}),Lh(ao,tu,Rh(Xl,{brighter(c){return c=null==c?qc:Math.pow(qc,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(Jc(this.r),Jc(this.g),Jc(this.b),Fh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function pp(){return`#${eh(this.r)}${eh(this.g)}${eh(this.b)}${eh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:fp,toString:fp})),Lh(Ws,function mp(c,v,i,m){return 1===arguments.length?gp(c):new Ws(c,v,i,m??1)},Rh(Xl,{brighter(c){return c=null==c?qc:Math.pow(qc,c),new Ws(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ws(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(Yf(c>=240?c-240:c+120,W,m),Yf(c,W,m),Yf(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ws(bp(this.h),fd(this.s),fd(this.l),Fh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=Fh(this.opacity);return`${1===c?"hsl(":"hsla("}${bp(this.h)}, ${100*fd(this.s)}%, ${100*fd(this.l)}%${1===c?")":`, ${c})`}`}}));const Dl=c=>()=>c;function Zf(c,v){var i=v-c;return i?function vp(c,v){return function(i){return c+i*v}}(c,i):Dl(isNaN(c)?v:c)}const Bh=function c(v){var i=function yp(c){return 1==(c=+c)?Zf:function(v,i){return i-v?function bm(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):Dl(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=tu(W)).r,(ce=tu(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=Zf(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function qf(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return nu((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Aa(m,W)})),i=ou.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--ih}()}finally{ih=0,function Vt(){for(var c,i,v=zh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:zh=i);sh=c,Ut(m)}(),xc=0}}function ft(){var c=rh.now(),v=c-cu;v>lu&&(Gh-=v,cu=c)}function Ut(c){ih||(ha&&(ha=clearTimeout(ha)),c-xc>24?(c<1/0&&(ha=setTimeout(it,c-rh.now()-Gh)),nh&&(nh=clearInterval(nh))):(nh||(cu=rh.now(),nh=setInterval(ft,lu)),ih=1,hu(it)))}function ei(c,v,i){var m=new ae;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}ae.prototype=we.prototype={constructor:ae,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?be():+i)+(null==v?0:+v),!this._next&&sh!==this&&(sh?sh._next=this:zh=this,sh=this),this._call=c,this._time=i,Ut()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ut())}};var ii=Yd("start","end","cancel","interrupt"),wi=[],_i=0,sn=3;function vs(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Mt,Pt,Wt;if(1!==i.state)return qe();for(gt in m)if((Wt=m[gt]).name===i.name){if(Wt.state===sn)return ei(De);4===Wt.state?(Wt.state=6,Wt.timer.stop(),Wt.on.call("interrupt",c,c.__data__,Wt.index,Wt.group),delete m[gt]):+gt_i)throw new Error("too late; already scheduled");return i}function En(c,v){var i=An(c,v);if(i.state>sn)throw new Error("too late; already running");return i}function An(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var cr,Ns=180/Math.PI,mr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Mo(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Mt.push(W(Mt)+"rotate(",null,m)-2,x:Aa(et,gt)})):gt&&Mt.push(W(Mt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Mt,Pt),function Ve(et,gt,Mt,Pt){et!==gt?Pt.push({i:Mt.push(W(Mt)+"skewX(",null,m)-2,x:Aa(et,gt)}):gt&&Mt.push(W(Mt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Mt,Pt),function qe(et,gt,Mt,Pt,Wt,Zt){if(et!==Mt||gt!==Pt){var hi=Wt.push(W(Wt)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Aa(et,Mt)},{i:hi-2,x:Aa(gt,Pt)})}else(1!==Mt||1!==Pt)&&Wt.push(W(Wt)+"scale("+Mt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Mt,Pt),et=gt=null,function(Wt){for(var Xt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Rn:En;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function nn(c,v){var i=pn(c),m="transform"===i?ue:ai;return this.attrTween(c,"function"==typeof v?(i.local?wn:tn)(i,m,zt(this,"attr."+c,v)):null==v?(i.local?Li:oi)(i):(i.local?Yi:Zi)(i,m,v))},attrTween:function lo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=pn(c);return this.tween(i,(m.local?$s:hr)(m,v))},style:function J0(c,v,i){var m="transform"==(c+="")?ne:ai;return null==v?this.styleTween(c,function bx(c,v){var i,m,W;return function(){var ce=So(this,c),De=(this.style.removeProperty(c),So(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Sp(c)):"function"==typeof v?this.styleTween(c,function kp(c,v,i){var m,W,ce;return function(){var De=So(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=So(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,zt(this,"style."+c,v))).each(function Q0(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=En(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Sp(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function ah(c,v,i){var m,ce,W=i+"";return function(){var De=So(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Sw(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Tw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function eb(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function _m(c){return this.tween("text","function"==typeof c?function xm(c){return function(){var v=c(this);this.textContent=v??""}}(zt(this,"text",c)):function kw(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function tb(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function Dw(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Mw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function px(){return this.on("end.remove",function ux(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function Tt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=An(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Da.prototype.transition=function wm(c){var v,i;c instanceof lh?(v=c._id,c=c._name):(v=Cm(),(i=ig).time=be(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function $o(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function vd(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Mt],qe)<0?et=Mt+1:gt=Mt}while(etbd(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===bd||c===$o?c:hb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Mt=W(Ve,qe,et,gt-1);return Mt>et&&m(Ve[Mt-1],qe)>-m(Ve[Mt],qe)?Mt-1:Mt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Mt],qe)<=0?et=Mt+1:gt=Mt}while(et=db?10:ce>=Ex?5:ce>=ub?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etco(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(Ap.setTime(+ce),gb.setTime(+De),c(Ap),c(gb),Math.floor(i(Ap,gb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Am=co(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Am.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?co(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Am:null);const Ip=co(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*hh)},(c,v)=>(v-c)/hh,c=>c.getUTCSeconds()),fu=co(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*hh)},(c,v)=>{c.setTime(+c+v*Al)},(c,v)=>(v-c)/Al,c=>c.getMinutes()),lg=co(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Al)},(c,v)=>(v-c)/Al,c=>c.getUTCMinutes()),cg=co(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*hh-c.getMinutes()*Al)},(c,v)=>{c.setTime(+c+v*dh)},(c,v)=>(v-c)/dh,c=>c.getHours()),Om=co(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*dh)},(c,v)=>(v-c)/dh,c=>c.getUTCHours()),Uh=co(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Al)/uh,c=>c.getDate()-1),Rx=(co(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/uh,c=>c.getUTCDate()-1),co(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/uh,c=>Math.floor(c/uh)));function gu(c){return co(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Al)/Ep)}const mb=gu(0);function xd(c){return co(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/Ep)}gu(1),gu(2),gu(3),gu(4),gu(5),gu(6);const Nm=xd(0),ug=(xd(1),xd(2),xd(3),xd(4),xd(5),xd(6),co(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),Gx=co(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),pg=co(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());pg.every=c=>isFinite(c=Math.floor(c))&&c>0?co(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const fg=co(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function gg(c,v,i,m,W,ce){const De=[[Ip,1,hh],[Ip,5,5e3],[Ip,15,15e3],[Ip,30,3e4],[ce,1,Al],[ce,5,5*Al],[ce,15,15*Al],[ce,30,30*Al],[W,1,dh],[W,3,3*dh],[W,6,6*dh],[W,12,12*dh],[m,1,uh],[m,2,2*uh],[i,1,Ep],[v,1,Ax],[v,3,3*Ax],[c,1,fb]];function qe(et,gt,Mt){const Pt=Math.abs(gt-et)/Mt,Wt=vd(([,,Xt])=>Xt).right(De,Pt);if(Wt===De.length)return c.every(ag(et/fb,gt/fb,Mt));if(0===Wt)return Am.every(Math.max(ag(et,gt,Mt),1));const[Zt,hi]=De[Pt/De[Wt-1][2]isFinite(c=Math.floor(c))&&c>0?co(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Wx,Bm]=gg(fg,Gx,Nm,Rx,Om,lg),[Lp,Tb]=gg(pg,ug,mb,Uh,cg,fu);var Rp=new Date,_d=new Date;function wc(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return Rp.setTime(+ce),_d.setTime(+De),c(Rp),c(_d),Math.floor(i(Rp,_d))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const vu=864e5,kb=7*vu;function Wh(c){return wc(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/kb})}var jm=Wh(0),kn=Wh(1),Ql=(Wh(2),Wh(3),Wh(4));const vg=(Wh(5),Wh(6),wc(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/vu},function(c){return c.getUTCDate()-1}));function ph(c){return wc(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/kb})}var Pb=ph(0),yg=ph(1),yu=(ph(2),ph(3),ph(4));const Jx=(ph(5),ph(6),wc(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/vu,c=>c.getDate()-1));var xg=wc(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});xg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?wc(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const Fp=xg;var zm=wc(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});zm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?wc(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const xu=zm;function Gm(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function Bp(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function jp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Fb={"-":"",_:" ",0:"0"},ho=/^\s*\d+/,t_=/^%/,Tc=/[\\^$*+?|[\]().{}]/g;function ds(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Bb(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function _g(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function Zw(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=ho.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Wm(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Cg(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function $m(c,v,i){var m=ho.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function fh(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function Vb(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function n_(c,v,i){var m=ho.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function wg(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function s_(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function zp(c,v,i){var m=ho.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function zb(c,v,i){var m=ho.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Cu(c,v,i){var m=ho.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Gp(c,v,i){var m=t_.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Xm(c,v,i){var m=ho.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Hp(c,v,i){var m=ho.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ds(c.getDate(),v,2)}function Gb(c,v){return ds(c.getHours(),v,2)}function r_(c,v){return ds(c.getHours()%12||12,v,2)}function o_(c,v){return ds(1+Jx.count(Fp(c),c),v,3)}function Hb(c,v){return ds(c.getMilliseconds(),v,3)}function a_(c,v){return Hb(c,v)+"000"}function l_(c,v){return ds(c.getMonth()+1,v,2)}function c_(c,v){return ds(c.getMinutes(),v,2)}function Ub(c,v){return ds(c.getSeconds(),v,2)}function Wb(c){var v=c.getDay();return 0===v?7:v}function $b(c,v){return ds(Pb.count(Fp(c)-1,c),v,2)}function Km(c){var v=c.getDay();return v>=4||0===v?yu(c):yu.ceil(c)}function Tg(c,v){return c=Km(c),ds(yu.count(Fp(c),c)+(4===Fp(c).getDay()),v,2)}function h_(c){return c.getDay()}function qw(c,v){return ds(yg.count(Fp(c)-1,c),v,2)}function d_(c,v){return ds(c.getFullYear()%100,v,2)}function u_(c,v){return ds((c=Km(c)).getFullYear()%100,v,2)}function Xb(c,v){return ds(c.getFullYear()%1e4,v,4)}function p_(c,v){var i=c.getDay();return ds((c=i>=4||0===i?yu(c):yu.ceil(c)).getFullYear()%1e4,v,4)}function f_(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ds(v/60|0,"0",2)+ds(v%60,"0",2)}function Zm(c,v){return ds(c.getUTCDate(),v,2)}function qm(c,v){return ds(c.getUTCHours(),v,2)}function Yb(c,v){return ds(c.getUTCHours()%12||12,v,2)}function Up(c,v){return ds(1+vg.count(xu(c),c),v,3)}function wu(c,v){return ds(c.getUTCMilliseconds(),v,3)}function Wp(c,v){return wu(c,v)+"000"}function g_(c,v){return ds(c.getUTCMonth()+1,v,2)}function m_(c,v){return ds(c.getUTCMinutes(),v,2)}function b_(c,v){return ds(c.getUTCSeconds(),v,2)}function Sg(c){var v=c.getUTCDay();return 0===v?7:v}function Qm(c,v){return ds(jm.count(xu(c)-1,c),v,2)}function Kb(c){var v=c.getUTCDay();return v>=4||0===v?Ql(c):Ql.ceil(c)}function Qw(c,v){return c=Kb(c),ds(Ql.count(xu(c),c)+(4===xu(c).getUTCDay()),v,2)}function Jw(c){return c.getUTCDay()}function v_(c,v){return ds(kn.count(xu(c)-1,c),v,2)}function y_(c,v){return ds(c.getUTCFullYear()%100,v,2)}function eT(c,v){return ds((c=Kb(c)).getUTCFullYear()%100,v,2)}function x_(c,v){return ds(c.getUTCFullYear()%1e4,v,4)}function tT(c,v){var i=c.getUTCDay();return ds((c=i>=4||0===i?Ql(c):Ql.ceil(c)).getUTCFullYear()%1e4,v,4)}function __(){return"+0000"}function Zb(){return"%"}function qb(c){return+c}function kg(c){return Math.floor(+c/1e3)}function ev(c){return null===c?NaN:+c}!function Jb(c){(function e_(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Vp(W),gt=_u(W),Mt=Vp(ce),Pt=_u(ce),Wt=Vp(De),Zt=_u(De),hi=Vp(Ve),Xt=_u(Ve),pi=Vp(qe),Ci=_u(qe),gi={a:function Ei(Oi){return De[Oi.getDay()]},A:function ji(Oi){return ce[Oi.getDay()]},b:function Wi(Oi){return qe[Oi.getMonth()]},B:function Bn(Oi){return Ve[Oi.getMonth()]},c:null,d:Ym,e:Ym,f:a_,g:u_,G:p_,H:Gb,I:r_,j:o_,L:Hb,m:l_,M:c_,p:function es(Oi){return W[+(Oi.getHours()>=12)]},q:function Wn(Oi){return 1+~~(Oi.getMonth()/3)},Q:qb,s:kg,S:Ub,u:Wb,U:$b,V:Tg,w:h_,W:qw,x:null,X:null,y:d_,Y:Xb,Z:f_,"%":Zb},ki={a:function go(Oi){return De[Oi.getUTCDay()]},A:function as(Oi){return ce[Oi.getUTCDay()]},b:function Xr(Oi){return qe[Oi.getUTCMonth()]},B:function Pl(Oi){return Ve[Oi.getUTCMonth()]},c:null,d:Zm,e:Zm,f:Wp,g:eT,G:tT,H:qm,I:Yb,j:Up,L:wu,m:g_,M:m_,p:function ts(Oi){return W[+(Oi.getUTCHours()>=12)]},q:function Yr(Oi){return 1+~~(Oi.getUTCMonth()/3)},Q:qb,s:kg,S:b_,u:Sg,U:Qm,V:Qw,w:Jw,W:v_,x:null,X:null,y:y_,Y:x_,Z:__,"%":Zb},Bi={a:function Nn(Oi,fn,zn){var xi=Wt.exec(fn.slice(zn));return xi?(Oi.w=Zt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},A:function Ui(Oi,fn,zn){var xi=Mt.exec(fn.slice(zn));return xi?(Oi.w=Pt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},b:function Un(Oi,fn,zn){var xi=pi.exec(fn.slice(zn));return xi?(Oi.m=Ci.get(xi[0].toLowerCase()),zn+xi[0].length):-1},B:function Ri(Oi,fn,zn){var xi=hi.exec(fn.slice(zn));return xi?(Oi.m=Xt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},c:function Ji(Oi,fn,zn){return ln(Oi,v,fn,zn)},d:Vb,e:Vb,f:Cu,g:Wm,G:Um,H:wg,I:wg,j:n_,L:zb,m:fh,M:s_,p:function ps(Oi,fn,zn){var xi=et.exec(fn.slice(zn));return xi?(Oi.p=gt.get(xi[0].toLowerCase()),zn+xi[0].length):-1},q:$m,Q:Xm,s:Hp,S:zp,u:_g,U:Hm,V:Zw,w:Bb,W:jb,x:function Js(Oi,fn,zn){return ln(Oi,i,fn,zn)},X:function yi(Oi,fn,zn){return ln(Oi,m,fn,zn)},y:Wm,Y:Um,Z:Cg,"%":Gp};function Di(Oi,fn){return function(zn){var Ko,gn,dr,xi=[],br=-1,Es=0,Yo=Oi.length;for(zn instanceof Date||(zn=new Date(+zn));++br53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Yo=(Es=Bp(jp(xi.y,0,1))).getUTCDay(),Es=Yo>4||0===Yo?kn.ceil(Es):kn(Es),Es=vg.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Yo=(Es=Gm(jp(xi.y,0,1))).getDay(),Es=Yo>4||0===Yo?yg.ceil(Es):yg(Es),Es=Jx.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Yo="Z"in xi?Bp(jp(xi.y,0,1)).getUTCDay():Gm(jp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Yo+5)%7:xi.w+7*xi.U-(Yo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,Bp(xi)):Gm(xi)}}function ln(Oi,fn,zn,xi){for(var Ko,gn,br=0,Es=fn.length,Yo=zn.length;br=Yo)return-1;if(37===(Ko=fn.charCodeAt(br++))){if(Ko=fn.charAt(br++),!(gn=Bi[Ko in Fb?fn.charAt(br++):Ko])||(xi=gn(Oi,zn,xi))<0)return-1}else if(Ko!=zn.charCodeAt(xi++))return-1}return xi}return gi.x=Di(i,gi),gi.X=Di(m,gi),gi.c=Di(v,gi),ki.x=Di(i,ki),ki.X=Di(m,ki),ki.c=Di(v,ki),{format:function(Oi){var fn=Di(Oi+="",gi);return fn.toString=function(){return Oi},fn},parse:function(Oi){var fn=on(Oi+="",!1);return fn.toString=function(){return Oi},fn},utcFormat:function(Oi){var fn=Di(Oi+="",ki);return fn.toString=function(){return Oi},fn},utcParse:function(Oi){var fn=on(Oi+="",!0);return fn.toString=function(){return Oi},fn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const C_=vd(bd).right,Xp=(vd(ev),C_);function T_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function k_(c){return+c}var tv=[0,1];function Tu(c){return c}function Yp(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function S_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function M_(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Ag:M_,qe=et=null,Mt}function Mt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Mt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Aa)))(Pt)))},Mt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,k_),gt()):c.slice()},Mt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Mt.rangeRound=function(Pt){return v=Array.from(Pt),i=T_,gt()},Mt.clamp=function(Pt){return arguments.length?(De=!!Pt||Tu,gt()):De!==Tu},Mt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Mt.unknown=function(Pt){return arguments.length?(ce=Pt,Mt):ce},function(Pt,Wt){return m=Pt,W=Wt,gt()}}()(Tu,Tu)}function qp(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Su,A_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ig(c){if(!(v=A_.exec(c)))throw new Error("invalid format: "+c);var v;return new $h({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function $h(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function Pg(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Cd(c){return(c=Pg(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=Pg(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}Ig.prototype=$h.prototype,$h.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function Og(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function lv(c,v){var i=Pg(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Su=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+Pg(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function dv(c){return c}var Ja,e0,fv,Lg=Array.prototype.map,uv=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function L_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function pb(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=Em(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function Qp(){var c=iv();return c.copy=function(){return function Zp(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,Qp())},qp.apply(c,arguments),L_(c)}function Rg(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(Lg.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?dv:function sT(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(Lg.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Mt){var Pt=(Mt=Ig(Mt)).fill,Wt=Mt.align,Zt=Mt.sign,hi=Mt.symbol,Xt=Mt.zero,pi=Mt.width,Ci=Mt.comma,gi=Mt.precision,ki=Mt.trim,Bi=Mt.type;"n"===Bi?(Ci=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Xt||"0"===Pt&&"="===Wt)&&(Xt=!0,Pt="0",Wt="=");var Di="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",on="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Nn(Ui){var Ji,Js,yi,Un=Di,Ri=on;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function O_(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?uv[8+Su/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Js=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}Ci&&!Xt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Nn.toString=function(){return Mt+""},Nn}return{format:et,formatPrefix:function gt(Mt,Pt){var Wt=et(((Mt=Ig(Mt)).type="f",Mt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Cd(Pt)/3))),hi=Math.pow(10,-Zt),Xt=uv[8+Zt/3];return function(pi){return Wt(hi*pi)+Xt}}}}(c),e0=Ja.format,fv=Ja.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=Xh){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(Ng(this,v))}has(v){return super.has(Ng(this,v))}set(v,i){return super.set(function gv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function mv({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function Ng({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function Xh(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const s0=Symbol("implicit");function Jp(){var c=new n0,v=[],i=[],m=s0;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==s0)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return Jp(v,i).unknown(m)},qp.apply(W,arguments),W}function r0(){var ce,De,c=Jp().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Mt(){var Pt=v().length,Wt=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function gh(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?Td:c<=-1?-Td:Math.asin(c)}const l0=Math.PI,Sd=2*l0,kd=1e-6,B_=Sd-kd;function _v(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return _v;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;Wkd)if(Math.abs(Mt*qe-et*gt)>kd&&ce){let Wt=m-De,Zt=W-Ve,hi=qe*qe+et*et,Xt=Wt*Wt+Zt*Zt,pi=Math.sqrt(hi),Ci=Math.sqrt(Pt),gi=ce*Math.tan((l0-Math.acos((hi+Pt-Xt)/(2*pi*Ci)))/2),ki=gi/Ci,Bi=gi/pi;Math.abs(ki-1)>kd&&this._append`L${v+ki*gt},${i+ki*Mt}`,this._append`A${ce},${ce},0,0,${+(Mt*Wt>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Mt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>kd||Math.abs(this._y1-gt)>kd)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%Sd+Sd),Pt>B_?this._append`A${m},${m},0,1,${Mt},${v-Ve},${i-qe}A${m},${m},0,1,${Mt},${this._x1=et},${this._y1=gt}`:Pt>kd&&this._append`A${m},${m},0,${+(Pt>=l0)},${Mt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function jg(c){return c.innerRadius}function G_(c){return c.outerRadius}function H_(c){return c.startAngle}function Cv(c){return c.endAngle}function wv(c){return c&&c.padAngle}function sf(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/el(Ve*Ve+qe*qe),gt=et*qe,Mt=-et*Ve,Pt=c+gt,Wt=v+Mt,Zt=i+gt,hi=m+Mt,Xt=(Pt+Zt)/2,pi=(Wt+hi)/2,Ci=Zt-Pt,gi=hi-Wt,ki=Ci*Ci+gi*gi,Bi=W-ce,Di=Pt*hi-Zt*Wt,on=(gi<0?-1:1)*el(F_(0,Bi*Bi*ki-Di*Di)),ln=(Di*gi-Ci*on)/ki,ps=(-Di*Ci-gi*on)/ki,Nn=(Di*gi+Ci*on)/ki,Ui=(-Di*Ci+gi*on)/ki,Un=ln-Xt,Ri=ps-pi,Ji=Nn-Xt,Js=Ui-pi;return Un*Un+Ri*Ri>Ji*Ji+Js*Js&&(ln=Nn,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Mt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function h0(){var c=jg,v=G_,i=uo(0),m=null,W=H_,ce=Cv,De=wv,Ve=null,qe=function z_(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Bg(v)}(et);function et(){var gt,Mt,Pt=+c.apply(this,arguments),Wt=+v.apply(this,arguments),Zt=W.apply(this,arguments)-Td,hi=ce.apply(this,arguments)-Td,Xt=a0(hi-Zt),pi=hi>Zt;if(Ve||(Ve=gt=qe()),Wtpo)if(Xt>nf-po)Ve.moveTo(Wt*wd(Zt),Wt*Jl(Zt)),Ve.arc(0,0,Wt,Zt,hi,!pi),Pt>po&&(Ve.moveTo(Pt*wd(hi),Pt*Jl(hi)),Ve.arc(0,0,Pt,hi,Zt,pi));else{var Ri,Ji,Ci=Zt,gi=hi,ki=Zt,Bi=hi,Di=Xt,on=Xt,ln=De.apply(this,arguments)/2,ps=ln>po&&(m?+m.apply(this,arguments):el(Pt*Pt+Wt*Wt)),Nn=tf(a0(Wt-Pt)/2,+i.apply(this,arguments)),Ui=Nn,Un=Nn;if(ps>po){var Js=xv(ps/Pt*Jl(ln)),yi=xv(ps/Wt*Jl(ln));(Di-=2*Js)>po?(ki+=Js*=pi?1:-1,Bi-=Js):(Di=0,ki=Bi=(Zt+hi)/2),(on-=2*yi)>po?(Ci+=yi*=pi?1:-1,gi-=yi):(on=0,Ci=gi=(Zt+hi)/2)}var Ei=Wt*wd(Ci),ji=Wt*Jl(Ci),Wi=Pt*wd(Bi),Bn=Pt*Jl(Bi);if(Nn>po){var Xr,es=Wt*wd(gi),Wn=Wt*Jl(gi),go=Pt*wd(ki),as=Pt*Jl(ki);if(Xt1?0:c<-1?Fg:Math.acos(c)}((Pl*Yr+ts*Oi)/(el(Pl*Pl+ts*ts)*el(Yr*Yr+Oi*Oi)))/2),zn=el(Xr[0]*Xr[0]+Xr[1]*Xr[1]);Ui=tf(Nn,(Pt-zn)/(fn-1)),Un=tf(Nn,(Wt-zn)/(fn+1))}else Ui=Un=0}on>po?Un>po?(Ri=sf(go,as,Ei,ji,Wt,Un,pi),Ji=sf(es,Wn,Wi,Bn,Wt,Un,pi),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Unpo&&Di>po?Ui>po?(Ri=sf(Wi,Bn,es,Wn,Pt,-Ui,pi),Ji=sf(Ei,ji,go,as,Pt,-Ui,pi),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function Sv(c){return c}var X_=He(76021);const u0=["caretElm"],p0=c=>({model:c});function kv(c,v){}function f0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,kv,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,p0,i.context))}}function g0(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function Y_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function K_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Mv=["*"];function Z_(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function Dv(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const Vv=["ngx-charts-svg-radial-gradient",""];function c1(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const d1=["ngx-charts-count-up",""];function xT(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function Hv(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function _T(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function f1(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function Uv(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function v0(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function g1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,_T,1,2,"div",11)(3,f1,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,Uv,1,2,"div",14)(7,v0,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const zg=["tooltipTemplate"],af=(c,v)=>[c,v],dy=["ngx-charts-pie-label",""],Iu=["ngx-charts-pie-arc",""];function Ou(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Pu=["ngx-charts-pie-series",""];function Lu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Ru(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,Lu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function nC(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function Cy(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:nC(ce.value,c,v)}),this[W]}}}}var Jn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Jn||{});function Xg(c,v,i){return i===Jn.Top?c.top-7:i===Jn.Bottom?c.top+c.height-v.height+7:i===Jn.Center?c.top+c.height/2-v.height/2:void 0}function Yg(c,v,i){return i===Jn.Left?c.left-7:i===Jn.Right?c.left+c.width-v.width+7:i===Jn.Center?c.left+c.width/2-v.width/2:void 0}class ua{static calculateVerticalAlignment(v,i,m){let W=Xg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Jn.Top&&(ce=v.height/2-m.height/2+7),W===Jn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Jn.Center&&(ce=i.height/2-m.height/2);const De=Xg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Yg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Jn.Left&&(ce=v.width/2-m.width/2+7),W===Jn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Jn.Center&&(ce=i.width/2-m.width/2);const De=Yg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Jn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Jn.Left&&v.left-i.width-W<0&&(ce=!0),m===Jn.Top&&v.top-i.height-W<0&&(ce=!0),m===Jn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Jn.Right?(Ve=-7,De=ua.calculateVerticalCaret(m,i,W,ce)):v===Jn.Left?(Ve=i.width,De=ua.calculateVerticalCaret(m,i,W,ce)):v===Jn.Top?(De=i.height,Ve=ua.calculateHorizontalCaret(m,i,W,ce)):v===Jn.Bottom&&(De=-7,Ve=ua.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Jn.Right?(Ve=m.left+m.width+W,De=ua.calculateVerticalAlignment(m,i,ce)):v===Jn.Left?(Ve=m.left-i.width-W,De=ua.calculateVerticalAlignment(m,i,ce)):v===Jn.Top?(De=m.top-i.height-W,Ve=ua.calculateHorizontalAlignment(m,i,ce)):v===Jn.Bottom&&(De=m.top+m.height+W,Ve=ua.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(ua.shouldFlip(m,i,v,W)){if(v===Jn.Right)return Jn.Left;if(v===Jn.Left)return Jn.Right;if(v===Jn.Top)return Jn.Bottom;if(v===Jn.Bottom)return Jn.Top}return v}}let tc=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Qi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=ua.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=ua.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=ua.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(u0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,f0,2,4,"span",3)(5,g0,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Qi.bT,Qi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,Be.Cg)([Cy(100)],c.prototype,"onWindowResize",null),c})();class sC{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let ic=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function wy(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new Wa(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new vn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),tl=(()=>{class c extends sC{constructor(i){super(i),this.type=tc}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(ic))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Xo=function(c){return c.Right="right",c.Below="below",c}(Xo||{}),Nu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Nu||{}),xn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(xn||{});let Ty=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function _f(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Sy=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Kg=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=_f(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,Y_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,K_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Sy,Qi.bT,Qi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),Fu=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Xo,this.LegendType=Nu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Xo.Right)&&(i=this.legendType===Nu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Xo.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===xn.Linear?Nu.ScaleLegend:Nu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([tl]),e.OA$],ngContentSelectors:Mv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Z_,1,5,"ngx-charts-scale-legend",2)(4,Dv,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[Ty,Kg,Qi.bT],encapsulation:2,changeDetection:0}),c})(),rC=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function A0(c){return"[object Date]"===toString.call(c)}let ky=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=xn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Qi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new rC(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Qi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function Cf(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var Zg=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(Zg||{});let Dy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Qi.MD]]}),c})();var wf=function(c){return c.popover="popover",c.tooltip="tooltip",c}(wf||{}),Bu=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}(Bu||{});let I0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Jn.Top,this.tooltipAlignment=Jn.Center,this.tooltipType=wf.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=Bu.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===Bu.all||this.tooltipShowEvent===Bu.focus}get listensForHover(){return this.tooltipShowEvent===Bu.all||this.tooltipShowEvent===Bu.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(tl),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),Ey=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[ic,tl],imports:[[Qi.MD]]}),c})();const qg={};function Tf(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,qg[c]?Tf():(qg[c]=!0,c)}var nc=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(nc||{});let Py=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:Vv,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,c1,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Qi.Sq],encapsulation:2,changeDetection:0}),c})();function Ry(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function Ny(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Mt;function Pt(Wt){let Zt;const hi=Wt-Mt;Zt=Ve?ce-Ry(hi,0,ce-De,gt):Ry(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Xt=hiPt(pi))}return requestAnimationFrame(Wt=>(Mt=Wt,Pt(Wt)))}let L0,Fy=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function P0(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=Ny(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:d1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?L0=window:typeof global<"u"&&(L0=global);let nm=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=_f(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:Cf(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,xT,1,2,"div",1)(2,Hv,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,g1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[Fy,Qi.bT,Qi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),il=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Qi.MD,Dy,Ey],Qi.MD,Dy,Ey]}),c})();const By=[{name:"vivid",selectable:!0,group:xn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:xn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:xn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:xn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:xn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:xn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:xn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:xn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:xn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:xn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:xn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:xn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:xn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:xn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:xn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class sm{constructor(v,i,m,W){"string"==typeof v&&(v=By.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=By.find(ce=>ce.name===v)),i){case xn.Quantile:W=gh().range(v.domain).domain(m);break;case xn.Ordinal:W=Jp().range(v.domain).domain(m);break;case xn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=Rg(0,1,1/ce.length);W=Qp().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===xn.Linear){const i=Qp().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=Qp().domain(this.domain).range([0,1]),W=r0().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Mt=[];for(Mt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Mt.push({color:Pt,offset:Wt,opacity:1}),gt=Wt,et++}}if(Mt[Mt.length-1].offset<100&&Mt.push({color:ce,offset:qe,opacity:1}),qe===De)Mt[0].offset=0,Mt[1].offset=100;else if(100!==Mt[Mt.length-1].offset)for(const Pt of Mt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Mt}}let uC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Ef=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})();X_();let zy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),xC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),z0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Gy=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=Cf}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Qi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=h0().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=nc,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Tf().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),h0().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=$r(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=Za(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=Za(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=$r(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=Za(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Iu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,Ou,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[Py,Qi.bT],encapsulation:2,changeDetection:0}),c})(),TC=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Jn,this.styleTypes=wf}ngOnChanges(i){this.update()}update(){const m=function W_(){var c=Sv,v=Tv,i=null,m=uo(0),W=uo(nf),ce=uo(0);function De(Ve){var qe,gt,Mt,pi,ki,et=(Ve=function d0(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Wt=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Xt=Math.min(nf,Math.max(-nf,W.apply(this,arguments)-hi)),Ci=Math.min(Math.abs(Xt)/et,ce.apply(this,arguments)),gi=Ci*(Xt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Wt.sort(function(Bi,Di){return v(Zt[Bi],Zt[Di])}):null!=i&&Wt.sort(function(Bi,Di){return i(Ve[Bi],Ve[Di])}),qe=0,Mt=Pt?(Xt-et*gi)/Pt:0;qe0?ki*Mt:0)+gi,padAngle:Ci};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:uo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:uo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:uo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:uo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function $_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return h0().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return _f(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=_f(i.data.value);return`\n ${function E0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Pu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Ru,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[Gy,wC,Qi.Sq,Qi.bT,I0],encapsulation:2,changeDetection:0}),c})(),Hy=(()=>{class c extends ky{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function cC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=xn.Ordinal,legendPosition:Mt=Xo.Right,columns:Pt=12}){let Wt=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Mt===Xo.Right&&(Pt-=gt===xn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Wt+=De,Wt+=10,qe&&(Zt-=30,Wt+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Wt)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new sm(this.scheme,xn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,zg,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,af,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[Fu,TC,nm],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),cm=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),EC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il,cm,z0]]}),c})(),hm=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),Af=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),LC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il,cm,Ef]]}),c})(),RC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[il]]}),c})(),If=(()=>{class c{constructor(){!function Uy(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[il,uC,Ef,zy,xC,_C,RC,z0,EC,hm,cm,Af,LC]}),c})();var Of=He(91346),NC=He(12168),Wy=He(38833),G0=He(46247),$y=He(41570);const FC=()=>({width:"75vw"}),H0=()=>[10,25,50];function BC(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Xy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function Yy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function jC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function VC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function zC(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function U0(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const Ky=[rn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Ar.c.refresh).pipe((0,Va.n)(()=>this.getStats()),na(),(0,Ha.u)(),(0,sa.Q)(this.headerService.polling.pipe((0,io.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Mt=et._TS;return gt>Mt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new Of.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Rl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Or.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Ir.c$),e.rXU(Vn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","dashboard",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,BC,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Xy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,Yy,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,jC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,VC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,zC,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,U0,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,FC)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,H0))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Qi.bT,Hy,Ir.Mm,Of.S6,G0.XI,_l.Ei,G0.Tg,G0.yc,$y.l,Ir.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Er.o6)("dashboard")}}])];let HC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[pr.iI.forChild(Ky),pr.iI]})}return c})(),UC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:Of.SV,useFactory:()=>[NC,Wy]}],imports:[Bt,If,HC,Qi.MD,at.X1,Ir.h,Of.Fr,Zs.G]})}return c})(),WC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Qi.MD,Ir.h,or.UN,at.YN,pr.iI]})}return c})(),$C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Ue]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Ir.h.forRoot(),or.UN,Er.Ui,Zs.G,WC,UC,vl._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Vn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Vn.JV.TRACKING,trackerUrl:Ar.c.trackerUrl,siteId:Ar.c.siteId}),jl,xl]})}return c})();Ar.c.production&&(0,e.SmG)(),M.sG().bootstrapModule($C,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Dt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Dt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Dt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Dt=Lt,{isHeader:At,series:_t}=Gt;if(!Dt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Dt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Dt.isActive=!0,Dt.attr({text:ti}),U||Dt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Dt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Dt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Dt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Qt,yAxis:di}=wt;Gt=Qt.pos+F(At,-se,Qt.len+se),wt.shouldShowTooltip(0,di.pos-j+_t,{ignoreX:!0})&&(ti=di.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Dt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Dt=At=Lt.strokeWidth():(At=(Dt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Dt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Dt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Dt%2,height:ye-At-Dt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Dt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Qt=(ye[Dt]||0)+_t/2-st.pos,di=Qt-((Me[Dt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Qt<0||Qt>st.len))continue;let mi=st.toValue(di,!0)+ht*Fi,vi=st.toValue(di+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let Cs of st.series){let Mn=Cs.getExtremes(Cs.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(Mn.dataMin)&&X(Mn.dataMax)&&(Gi.dataMin=Math.min(Mn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(Mn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:xs,dataMax:jn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),Gn=xs??Lt.min,dn=jn??Lt.max,Mi=vi-mi,_s=st.categories?0:Math.min(Mi,dn-Gn),On=Gn-_s*(C(Lt.min)?0:Lt.minPadding),Pn=dn+_s*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Mi)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Mi)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:di,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>vo,B3:()=>Ki,Jj:()=>mn,MD:()=>ma,N0:()=>va,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>tr,VF:()=>Z,Vy:()=>hl,XO:()=>r,Xr:()=>rr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>er,fG:()=>is,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>rs,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Pi=>+Pi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Pi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),Qn=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Pi,Xn,Qn),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Pi,ci=[];for(;ut;){if(Pi=Fe.exec(ut),!Pi){ci.push(ut);break}{ci=ci.concat(Pi.slice(1));const os=ci.pop();if(!os)break;ut=os}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function di(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Qt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let Qn="";return ci.forEach(os=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Dt(1);break;case"YY":ut=Dt(2,!0);break;case"YYY":ut=Dt(3);break;case"YYYY":ut=Dt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(os);Qn+=Sn?Sn(Et,Ke,Xn):"''"===os?"'":os.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),Qn}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Pi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Pi]);break;case"long":const Xn=_e(Ge,"longTime"),Qn=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,Qn]);break;case"full":const os=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[os,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Pi>-Ke)&&(Pi+=Ke),Ge===ee.Hours)0===Pi&&-12===Ke&&(Pi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Pi,ut);const Xn=H(ci,g.MinusSign);return Ee(Pi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Pi=Ge.getMinutes();if(qt){const Qn=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),os=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=Qn.findIndex(us=>{if(Array.isArray(us)){const[ns,js]=us,Pr=ci>=ns.hours&&Pi>=ns.minutes,Hn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Pi=qt.getTime()-ci.getTime();Et=1+Math.round(Pi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Dt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Pi=at.get(qt);at.move(Pi,ci),Ti(Pi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new ss,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class ss{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let rs=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),er=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(rs,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),is=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(rs,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function ur(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,qr=new Oa;let mn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return qr;throw ur()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const al=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw ur()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(al,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=fa}transform(Ke,at=fa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function bo(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function fa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const vo="browser",ba="server";function tr(Ge){return Ge===vo}function hl(Ge){return Ge===ba}let rr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>tr((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new qo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Dr(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class qo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class va{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),rs=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:rs}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:rs,url:er}=si(),is=null;cn!==C.NoContent&&(is=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=is?C.Ok:0);let Zr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof is){const sr=is;is=is.replace(Xe,"");try{is=""!==is?JSON.parse(is):null}catch(Ls){is=sr,Zr&&(Zr=!1,is={error:Ls,text:is})}}Zr?($e.next(new l({body:is,headers:Xi,status:cn,statusText:rs,url:er||void 0})),$e.complete()):$e.error(new d({error:is,headers:Xi,status:cn,statusText:rs,url:er||void 0}))},Si=Xi=>{const{url:cn}=si(),rs=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(rs)};let Hi=!1;const ss=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",ss),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",ss),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const di=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:di,useFactory:he},{provide:R,useExisting:di,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>xc,iLQ:()=>uw,sZ2:()=>nh,hnV:()=>nM,Hbi:()=>uA,o8S:()=>zu,BIS:()=>Gh,gRc:()=>mM,Ql9:()=>BE,OM3:()=>Su,Ocv:()=>$E,abz:()=>Dl,Z63:()=>Lo,aKT:()=>jh,uvJ:()=>Co,zcH:()=>Ml,bkB:()=>ko,$GK:()=>mn,nKC:()=>$e,zZn:()=>Ws,_q3:()=>xw,MKu:()=>_w,xe9:()=>ix,Co$:()=>Xv,Vns:()=>Mu,SKi:()=>Tr,Xx1:()=>tr,Agw:()=>sh,PLl:()=>zh,sFG:()=>cv,_9s:()=>lv,czy:()=>hg,WPN:()=>md,kdw:()=>zr,C4Q:()=>Wp,NYb:()=>IE,giA:()=>tM,RxE:()=>Xk,c1b:()=>jg,gXe:()=>Ro,mal:()=>o0,Af3:()=>Ge,tdH:()=>uv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>qv,w6W:()=>DT,oH4:()=>uM,QZP:()=>XM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>qi,hFB:()=>vm,QuC:()=>xo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>t1,O8t:()=>WA,An2:()=>Og,H3F:()=>Yk,H8p:()=>Fs,KH2:()=>Mf,TgB:()=>lf,wOt:()=>me,WHO:()=>Jk,e01:()=>eM,lNU:()=>he,h9k:()=>nb,$MX:()=>Sp,ZF7:()=>oh,Kcf:()=>tg,e5t:()=>px,UyX:()=>dx,cWb:()=>hx,osQ:()=>ux,H5H:()=>B0,Zy3:()=>Ce,mq5:()=>pC,JZv:()=>Ze,LfX:()=>mo,plB:()=>gh,jNT:()=>hw,zjR:()=>iM,TL$:()=>ih,Tbb:()=>pt,rcV:()=>El,nM4:()=>b1,Vt3:()=>v0,Mj6:()=>Qi,GFd:()=>$v,OA$:()=>Wa,Jv_:()=>sk,aNF:()=>rk,R7$:()=>Mb,BMQ:()=>k0,HbH:()=>wy,ZvI:()=>Zg,AVh:()=>ua,vxM:()=>Ay,wni:()=>yi,VBU:()=>Dc,FsC:()=>Or,jDH:()=>$i,G2t:()=>Mn,$C:()=>Nl,EJ8:()=>Ec,rXU:()=>Ql,nrm:()=>nm,eu8:()=>F0,bVm:()=>N0,qex:()=>sm,k0s:()=>im,j41:()=>tm,RV6:()=>dC,xGo:()=>qd,Mr5:()=>jy,pXf:()=>De,KVO:()=>Is,kS0:()=>Qc,QTQ:()=>Eb,bIt:()=>Mt,lsd:()=>Wi,joV:()=>sp,qSk:()=>np,XpG:()=>Ci,nI1:()=>Dk,bMT:()=>Ek,i5U:()=>Ak,SdG:()=>Bi,NAR:()=>ki,Y8G:()=>Mc,FS9:()=>Di,Mz_:()=>on,lJ4:()=>fk,eq3:()=>gk,l_i:()=>mk,sMw:()=>bk,ziG:()=>vk,s1E:()=>yk,l4e:()=>xk,sGs:()=>_k,zJS:()=>Ck,mGM:()=>ji,sdS:()=>as,Dyx:()=>Ny,Z7z:()=>Ly,fX1:()=>Oy,Njj:()=>zc,EBC:()=>Om,tSv:()=>Ox,eBV:()=>gc,npT:()=>sb,f$h:()=>Mp,B4B:()=>ng,n$t:()=>Do,Aen:()=>tc,xc7:()=>Yg,zvX:()=>Vy,DNE:()=>Eu,C5r:()=>Ik,EFF:()=>KS,JRh:()=>XC,SpI:()=>Zy,Lme:()=>YC,E5c:()=>KC,LHq:()=>ZC,DH7:()=>ik,mxI:()=>QC,R50:()=>qC,GBs:()=>Ei}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Dt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Mi(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Mn(t){return{providers:t.providers||[],imports:t.imports||[]}}function Br(t){return Kr(t,Rt)||Kr(t,bt)}function mo(t){return null!==Br(t)}function Kr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const rs=st({\u0275cmp:st}),er=st({\u0275dir:st}),is=st({\u0275pipe:st}),Zr=st({\u0275mod:st}),sr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),jr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function qr(t,s){throw new me(-201,!1)}var mn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(mn||{});let Zo;function rl(){return Zo}function Gs(t){const s=Zo;return Zo=t,s}function Qr(t,s,h){const P=Br(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&mn.Optional?null:void 0!==s?s:void qr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",pa=/\n/gm,bo="__source";let xr;function kr(t){const s=xr;return xr=t,s}function ga(t,s=mn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?Qr(t,void 0,s):xr.get(t,s&mn.Optional?null:void 0,s)}function Is(t,s=mn.Default){return(rl()||ga)(Dt(t),s)}function qi(t,s=mn.Default){return Is(t,Vr(s))}function Vr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Io(t){const s=[];for(let h=0;hArray.isArray(h)?Dr(h,s):s(h))}function qo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function va(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Ys(t,s,h){let P=Gr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function Jr(t,s){const h=Gr(t,s);if(h>=0)return t[1|h]}function Gr(t,s){return function rc(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Zs(P))return!1;ke=!0}}}}else{if(!ke&&!Zs(P)&&!Zs(ze))return!1;if(ke&&Zs(ze))continue;ke=!1,P=ze|1&P}}return Zs(P)||ke}function Zs(t){return!(1&t)}function Ar(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Zs(ke)&&(s+=oc(ge,Q),Q=""),P=ke,ge=ge||!Zs(P);h++}return""!==Q&&(s+=oc(ge,Q)),s}function Dc(t){return ee(()=>{const s=pl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ul.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Ro.Emulated,styles:t.styles||Dn,_:null,schemas:t.schemas||null,tView:null,id:""};fl(h);const P=t.dependencies;return h.directiveDefs=gl(P,!1),h.pipeDefs=gl(P,!0),h.id=function ac(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function io(t){return hn(t)||Rs(t)}function Zh(t){return null!==t}function Nl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Dn,declarations:t.declarations||Dn,imports:t.imports||Dn,exports:t.exports||Dn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ks;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Qi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Qi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Or(t){return ee(()=>{const s=pl(t);return fl(s),s})}function Ec(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[rs]||null}function Rs(t){return t[er]||null}function Ss(t){return t[is]||null}function xo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function qs(t,s){const h=t[Zr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function pl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ks,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Dn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function fl(t){t.features?.forEach(s=>s(t))}function gl(t,s){if(!t)return null;const h=s?Ss:io;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Zh)}function za(t){return{\u0275providers:t}}function Fl(...t){return{\u0275providers:ml(0,t),\u0275fromNgModule:!0}}function ml(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Dr(s,ke=>{const Le=ke;lc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Ic(Q,ge),h}function Ic(t,s){for(let h=0;h{s(ge,P)})}}function lc(t,s,h,P){if(!(t=Dt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)lc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Dr(ge.imports,dt=>{lc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Ic(Je,s)}if(!Le){const Je=Mr(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Dn},Q),s({provide:Qo,useValue:Q,multi:!0},Q),s({provide:Lo,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;No(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function No(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?No(h,s):s(h)}const Pc=st({provide:String,useValue:st});function Bl(t){return null!==t&&"object"==typeof t&&Pc in t}function Fo(t){return"function"==typeof t}const Fs=new $e(""),Bs={},ta={};let bl;function _o(){return void 0===bl&&(bl=new yo),bl}class Co{}class Ca extends Co{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,na(s,ke=>this.processProvider(ke)),this.records.set(xa,_r(void 0,this)),Q.has("environment")&&this.records.set(Co,_r(void 0,this));const ge=this.records.get(Fs);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(Qo,Dn,mn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=kr(this),P=Gs(void 0);try{return s()}finally{kr(h),Gs(P)}}get(s,h=vr,P=mn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(jr))return s[jr](this);P=Vr(P);const ge=kr(this),ke=Gs(void 0);try{if(!(P&mn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Hr(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&Br(s);ze=Je&&this.injectableDefInScope(Je)?_r(wa(s),Bs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&mn.Self?_o():this.parent).get(s,h=P&mn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ba(t,s,h,P){const Q=t[yr];throw s[bo]&&Q.unshift(s[bo]),t.message=function cl(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(pa,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),kr(ge)}}resolveInjectorInitializers(){const s=re(null),h=kr(this),P=Gs(void 0);try{const ge=this.get(Lo,Dn,mn.Self);for(const ke of ge)ke()}finally{kr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Fo(s=Dt(s))?s:Dt(s&&s.provide);const P=function Rc(t){return Bl(t)?_r(void 0,t.useValue):_r(vl(t),Bs)}(s);if(!Fo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Bs,!0),Q.factory=()=>Io(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Bs&&(h.value=ta,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ia(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Dt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function wa(t){const s=Br(t),h=null!==s?s.factory:Mr(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function jl(t){if(t.length>0)throw new me(204,!1);const h=function nr(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function vl(t,s,h){let P;if(Fo(t)){const Q=Dt(t);return Mr(Q)||wa(Q)}if(Bl(t))P=()=>Dt(t.useValue);else if(function Lc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Io(t.deps||[]));else if(function ir(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Dt(t.useExisting));else{const Q=Dt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Mr(Q)||wa(Q);P=()=>new Q(...Io(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function na(t,s){for(const h of t)Array.isArray(h)?na(h,s):h&&cn(h)?na(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof Ca&&t.assertNotDestroyed();const P=kr(t),Q=Gs(void 0);try{return s()}finally{kr(P),Gs(Q)}}function sa(){return void 0!==rl()||null!=function fa(){return xr}()}function Ge(t){if(!sa())throw new me(-203,!1)}const Hn=0,ui=1,zi=2,Yn=3,gs=4,ks=5,ar=6,Ta=7,ms=8,fr=9,wo=10,en=11,Bo=12,cc=13,bs=14,Kn=15,Sa=16,Vl=17,To=18,hc=19,ka=20,jo=21,yl=22,Ua=23,rn=25,dc=1,Vo=7,_l=9,Vs=10;var pc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(pc||{});function gr(t){return Array.isArray(t)&&"object"==typeof t[dc]}function zs(t){return Array.isArray(t)&&!0===t[dc]}function zl(t){return!!(4&t.flags)}function ra(t){return t.componentOffset>-1}function Cl(t){return!(1&~t.flags)}function Ur(t){return!!t.template}function Nc(t){return!!(512&t[zi])}class Gl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Hl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function Wa(){return Fc}function Fc(t){return t.type.prototype.ngOnChanges&&(t.setInput=Wu),$a}function $a(){const t=$u(this),s=t?.current;if(s){const h=t.previous;if(h===Ks)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function Wu(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=$u(t)||function Xu(t,s){return t[td]=s}(t,{previous:Ks,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Gl(Je&&Je.currentValue,h,ze===Ks),Hl(t,s,Q,h)}Wa.ngInherit=!0;const td="__ngSimpleChanges__";function $u(t){return t[td]||null}const no=function(t,s,h){},Ld="svg";let Ku=!1;function ws(t){for(;Array.isArray(t);)t=t[Hn];return t}function Bc(t,s){return ws(s[t])}function so(t,s){return ws(s[t.index])}function vh(t,s){return t.data[s]}function jc(t,s){return t[s]}function zo(t,s){const h=s[t];return gr(h)?h:h[Hn]}function nd(t){return!(128&~t[zi])}function Xa(t,s){return null==s?null:t[s]}function Rd(t){t[Vl]=0}function Ff(t){1024&t[zi]||(t[zi]|=1024,nd(t)&&_h(t))}function Nd(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function xh(t){t[wo].changeDetectionScheduler?.notify(1),Nd(t)?_h(t):64&t[zi]&&(function Zu(){return Ku}()?(t[zi]|=1024,_h(t)):t[wo].changeDetectionScheduler?.notify())}function _h(t){t[wo].changeDetectionScheduler?.notify();let s=Ya(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,nd(s));)s=Ya(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[jo]&&(t[jo]=[]),t[jo].push(s)}function Ya(t){const s=t[Yn];return zs(s)?s[Yn]:s}const an={lFrame:ld(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function fc(){return an.bindingsEnabled}function Ka(){return null!==an.skipHydrationRootTNode}function ni(){return an.lFrame.lView}function pn(){return an.lFrame.tView}function gc(t){return an.lFrame.contextLView=t,t[ms]}function zc(t){return an.lFrame.contextLView=null,t}function hs(){let t=Gc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Gc(){return an.lFrame.currentTNode}function oa(){const t=an.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function aa(t,s){const h=an.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return an.lFrame.isParent}function od(){an.lFrame.isParent=!1}function oo(){const t=an.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function So(){return an.lFrame.bindingIndex}function Ma(){return an.lFrame.bindingIndex++}function Sl(t){const s=an.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function jd(t){an.lFrame.inI18n=t}function Vd(t,s){const h=an.lFrame;h.bindingIndex=h.bindingRootIndex=t,wh(s)}function wh(t){an.lFrame.currentDirectiveIndex=t}function Th(t){const s=an.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function zd(){return an.lFrame.currentQueryIndex}function Hc(t){an.lFrame.currentQueryIndex=t}function Gf(t){const s=t[ui];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Sh(t,s,h){if(h&mn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&mn.Host||(Q=Gf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=an.lFrame=ip();return P.currentTNode=s,P.lView=t,!0}function Gd(t){const s=ip(),h=t[ui];an.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function ip(){const t=an.lFrame,s=null===t?null:t.child;return null===s?ld(t):s}function ld(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function Hd(){const t=an.lFrame;return an.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Ud=Hd;function cd(){const t=Hd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Wr(){return an.lFrame.selectedIndex}function mc(t){an.lFrame.selectedIndex=t}function Os(){const t=an.lFrame;return vh(t.tView,t.selectedIndex)}function np(){an.lFrame.currentNamespace=Ld}function sp(){!function Wd(){an.lFrame.currentNamespace=null}()}let kh=!0;function Uc(){return kh}function Go(t){kh=t}function Wc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[Vl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,kl(Le,ge)):kl(Le,ge)}const bc=-1;class $c{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function Lr(t){return t!==bc}function Wl(t){return 32767&t}function Da(t,s){let h=function ap(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let $r=!0;function Xc(t){const s=$r;return $r=t,s}const $l=255,Yc=5;let Ph=0;const la={};function ud(t,s){const h=pd(t,s);if(-1!==h)return h;const P=s[ui];P.firstCreatePass&&(t.injectorIndex=s.length,Kc(P.data,t),Kc(s,null),Kc(P.blueprint,null));const Q=Zc(t,s),ge=t.injectorIndex;if(Lr(Q)){const ke=Wl(Q),Le=Da(Q,s),ze=Le[ui].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kc(t,s){t.push(0,0,0,0,0,0,0,0,s)}function pd(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zc(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=Jd(Q),null===P)return bc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return bc}function Kd(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Ph++);const Q=P&$l;s.data[t+(Q>>Yc)]|=1<=0?s&$l:dp:s}(h);if("function"==typeof ge){if(!Sh(s,t,P))return P&mn.Host?Lh(Q,0,P):Rh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&mn.Optional)return ke;qr()}finally{Ud()}}else if("number"==typeof ge){let ke=null,Le=pd(t,s),ze=bc,Je=P&mn.Host?s[Kn][ks]:null;for((-1===Le||P&mn.SkipSelf)&&(ze=-1===Le?Zc(t,s):s[Le+8],ze!==bc&&hp(P,!1)?(ke=s[ui],Le=Wl(ze),s=Da(ze,s)):Le=-1);-1!==Le;){const dt=s[ui];if(cp(ge,Le,dt.data)){const Ct=qc(Le,s,h,ke,P,Je);if(Ct!==la)return Ct}ze=s[Le+8],ze!==bc&&hp(P,s[ui].data[Le+8]===Je)&&cp(ge,Le,s)?(ke=dt,Le=Wl(ze),s=Da(ze,s)):Le=-1}}return Q}function qc(t,s,h,P,Q,ge){const ke=s[ui],Le=ke.data[t+8],dt=Ea(Le,ke,h,null==P?ra(Le)&&$r:P!=ke&&!!(3&Le.type),Q&mn.Host&&ge===Le);return null!==dt?Ho(s,ke,dt,Le):la}function Ea(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Ur(Ht)&&Ht.type===h)return ze}return null}function Ho(t,s,h,P){let Q=t[h];const ge=s.data;if(function Eh(t){return t instanceof $c}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Xc(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Sh(t,P,mn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Mh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=Fc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Xc(Le),ke.resolving=!1,Ud()}}return Q}function cp(t,s,h){return!!(h[s+(t>>Yc)]&1<{const s=t.prototype.constructor,h=s[sr]||Nh(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[sr]||Nh(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function Nh(t){return At(t)?()=>{const s=Nh(Dt(t));return s&&s()}:Mr(t)}function Jd(t){const s=t[ui],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function Qc(t){return function Zd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new yo;static create(h,P){if(Array.isArray(h))return gp({name:""},P,h,"");{const Q=h.name??"";return gp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(xa)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function nu(t){return t.ngOriginalError}class Ml{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&nu(s);for(;h&&nu(h);)h=nu(h);return h||null}}const su=new $e("",{providedIn:"root",factory:()=>qi(Ml).handleError.bind(void 0)});let Dl=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=bm;static#t=this.__NG_ENV_ID__=h=>h}return t})();class vp extends Dl{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[jo])return;const h=t[jo].indexOf(s);-1!==h&&t[jo].splice(h,1)}(this._lView,s)}}function bm(){return new vp(ni())}function Bh(t,s){return oe(t,s)}const vm=(Bh.required=function qf(t){return oe(Se,t)},Bh);function ym(){return yc(hs(),ni())}function yc(t,s){return new jh(so(t,s))}let jh=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=ym}return t})();function xp(t){return t instanceof jh?t.nativeElement:t}function ru(t){return s=>{setTimeout(t,void 0,s)}}const ko=class Aa extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,sa()&&(this.destroyRef=qi(Dl,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=ru(ge),Q&&(Q=ru(Q)),ke&&(ke=ru(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function ou(){return this._results[Symbol.iterator]()}class au{static#e=Symbol.iterator;get changes(){return this._changes??=new ko}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=au.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=ou)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function rr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Plu}),lu="ng",zh=new $e(""),sh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),xc=new $e(""),Gh=new $e("",{providedIn:"root",factory:()=>ha().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const Zi=new $e("",{providedIn:"root",factory:()=>!1});let tn,hr;function nn(t){return function wn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function lo(){if(void 0===hr&&(hr=null,Ze.trustedTypes))try{hr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hr}function Uo(t){return lo()?.createHTML(t)||t}function Ia(t){return lo()?.createScriptURL(t)||t}class wr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class da extends wr{getTypeName(){return"HTML"}}class du extends wr{getTypeName(){return"Style"}}class Qf extends wr{getTypeName(){return"Script"}}class Jf extends wr{getTypeName(){return"URL"}}class Tp extends wr{getTypeName(){return"ResourceURL"}}function El(t){return t instanceof wr?t.changingThisBreaksApplicationSecurity:t}function oh(t,s){const h=function eg(t){return t instanceof wr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function tg(t){return new da(t)}function hx(t){return new du(t)}function dx(t){return new Qf(t)}function ux(t){return new Jf(t)}function px(t){return new Tp(t)}function q0(t){const s=new gx(t);return function mx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new fx(s):s}class fx{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class gx{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const bx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Sp(t){return(t=String(t)).match(bx)?t:"unsafe:"+t}function ah(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function kp(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const Q0=ah("area,br,col,hr,img,wbr"),J0=ah("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),eb=ah("rp,rt"),xm=kp(Q0,kp(J0,ah("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),kp(eb,ah("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),kp(eb,J0)),_m=ah("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),tb=kp(_m,ah("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),ah("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),vx=ah("script,style,template");class yx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=_x(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=lh(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=Cm(s).toLowerCase();if(!xm.hasOwnProperty(h))return this.sanitizedSomething=!0,!vx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=Cm(s).toLowerCase();xm.hasOwnProperty(h)&&!Q0.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(ib(s))}}function lh(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw Cc(s);return s}function _x(t){const s=t.firstChild;if(s&&function xx(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw Cc(s);return s}function Cm(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function Cc(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const Ew=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Aw=/([^\#-~ |!])/g;function ib(t){return t.replace(/&/g,"&").replace(Ew,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Aw,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let ig;function nb(t,s){let h=null;try{ig=ig||q0(t);let P=s?String(s):"";h=ig.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=ig.getInertBodyElement(P)}while(P!==ge);return nn((new yx).sanitizeChildren(wm(h)||h))}finally{if(h){const P=wm(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function wm(t){return"content"in t&&function Tm(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var md=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(md||{});function sb(t){const s=Hh();return s?Uo(s.sanitize(md.HTML,t)||""):oh(t,"HTML")?Uo(El(t)):nb(ha(),Ki(t))}function ng(t){const s=Hh();return s?s.sanitize(md.URL,t)||"":oh(t,"URL")?El(t):Sp(Ki(t))}function Mp(t){const s=Hh();if(s)return Ia(s.sanitize(md.RESOURCE_URL,t)||"");if(oh(t,"ResourceURL"))return Ia(El(t));throw new me(904,!1)}function Do(t,s,h){return function Wo(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?Mp:ng}(s,h)(t)}function Hh(){const t=ni();return t&&t[wo].sanitizer}const sg=/^>|^->||--!>|)/g,ch="\u200b$1\u200b";const Mm=new Map;let kx=0;const bd="__ngContext__";function $o(t,s){gr(s)?(t[bd]=s[hc],function Dm(t){Mm.set(t[hc],t)}(s)):t[bd]=s}function Ox(t){return t.ownerDocument.defaultView}function Om(t){return t.ownerDocument}function Il(t){return t instanceof Function?t():t}var hg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(hg||{});let Pm;function Lm(t,s){return Pm(t,s)}function Op(t,s,h,P,Q){if(null!=P){let ge,ke=!1;zs(P)?ge=P:gr(P)&&(ke=!0,P=P[Hn]);const Le=ws(P);0===t&&null!==h?null==Q?zx(s,h,Le):mu(s,h,Le,Q||null,!0):1===t&&null!==h?mu(s,h,Le,Q||null,!0):2===t?function _d(t,s,h){const P=Fm(t,s);P&&function jw(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function kb(t,s,h,P,Q){const ge=h[Vo];ge!==ws(h)&&Op(s,t,P,ge,Q);for(let Le=Vs;Les.replace(wx,ch))}(s))}function Rm(t,s,h){return t.createElement(s,h)}function Nm(t,s){s[wo].changeDetectionScheduler?.notify(1),bu(t,s,s[en],2,null,null)}function _b(t,s){const h=t[_l],P=h.indexOf(s);h.splice(P,1)}function Pp(t,s){if(t.length<=Vs)return;const h=Vs+s,P=t[h];if(P){const Q=P[Sa];null!==Q&&Q!==t&&_b(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=va(t,Vs+s);!function Nw(t,s){Nm(t,s),s[Hn]=null,s[ks]=null}(P[ui],P);const ke=ge[To];null!==ke&&ke.detachView(ge[ui]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function dg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&bu(t,s,h,3,null,null),function Fx(t){let s=t[Bo];if(!s)return Cb(t[ui],t);for(;s;){let h=null;if(gr(s))h=s[Bo];else{const P=s[Vs];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)gr(s)&&Cb(s[ui],s),s=s[Yn];null===s&&(s=t),gr(s)&&Cb(s[ui],s),h=s&&s[gs]}s=h}}(s)}}function Cb(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[Ta]=null);const Q=s[jo];if(null!==Q){s[jo]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Ro.None||ge===Ro.Emulated)return null}return so(P,h)}}function mu(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function zx(t,s,h){t.appendChild(s,h)}function ug(t,s,h,P,Q){null!==P?mu(t,s,h,P,Q):zx(t,s,h)}function Fm(t,s){return t.parentNode(s)}function Hx(t,s,h){return Ux(t,s,h)}function fg(t,s,h){return 40&t.type?so(t,h):null}let gg,Ux=fg;function Wx(t,s){Ux=t,gg=s}function Bm(t,s,h,P){const Q=wb(t,P,s),ge=s[en],Le=Hx(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zern&&Db(t,s,rn,!1),no(ke?2:0,Q),h(P,Q)}finally{mc(ge),no(ke?3:1,Q)}}function Ob(t,s,h){if(zl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function qx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Qi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Qx(P,h,Je,Le,ze):Qx(P,h,Je,Le)}return P}function Qx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=so(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?($m(t,h,dt,P,Q),ra(s)&&function Xw(t,s){const h=zo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function $w(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Nb(t,s,h,P){if(fc()){const Q=null===P?null:{"":-1},ge=function Gm(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,mg(t,h,Q.hostVars,kn),Q)}function Tc(t,s,h,P,Q,ge){const ke=so(t,s);!function ds(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function i_(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{_h(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function Ub(t){return $b(t[Bo])}function Wb(t){return $b(t[gs])}function $b(t){for(;null!==t&&!zs(t);)t=t[gs];return t}const Km=100;function Tg(t,s=!0,h=0){const P=t[wo],Q=P.rendererFactory;Q.begin?.();try{!function h_(t,s){qm(t,s);let h=0;for(;Nd(t);){if(h===Km)throw new me(103,!1);h++,qm(t,1)}}(t,h)}catch(ke){throw s&&Cg(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function d_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[wo].inlineEffectRunner?.flush(),Gd(s);let ke=null,Le=null;(function u_(t){return 2!==t.type})(t)&&(Le=function r_(t){return t[Ua]??function o_(t){const s=Gb.pop()??Object.create(a_);return s.lView=t,s}(t)}(s),ke=L(Le));try{Rd(s),function tp(t){return an.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&$x(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&dd(s,Ct,0,null),Dh(s,0)}if(function p_(t){for(let s=Ub(t);null!==s;s=Wb(s)){if(!(s[zi]&pc.HasTransplantedViews))continue;const h=s[_l];for(let P=0;P-1&&(Pp(s,P),va(h,P))}this._attachedToViewContainer=!1}dg(this._lView[ui],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){Up(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){xh(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,Tg(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,Nm(this._lView[ui],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,xh(this._lView)}}let Wp=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=b_}return t})();const g_=Wp,m_=class extends g_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=zp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new wu(Q)}};function b_(){return Sg(hs(),ni())}function Sg(t,s){return 4&t.type?new m_(s,t,yc(t,s)):null}let ov=()=>null;function $h(t,s){return ov(t,s)}class Og{}class Pg{}class Cd{}class O_{resolveComponentFactory(s){throw function I_(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let Su=(()=>{class t{static#e=this.NULL=new O_}return t})();class lv{}let cv=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function hv(){const t=ni(),h=zo(hs().index,t);return(gr(h)?h:t)[en]}()}return t})(),dv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Lg={};function uv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const pv=new Set;function Ja(t){pv.has(t)||(pv.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function e0(...t){}class Tr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ko(!1),this.onMicrotaskEmpty=new ko(!1),this.onStable=new ko(!1),this.onError=new ko(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function fv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function Qp(t){const s=()=>{!function L_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Rg(t),t.isCheckStableRunning=!0,t0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Rg(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function gv(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return n0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),R_(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return n0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),R_(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,Rg(t),t0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Tr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(Tr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,P_,e0,e0);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const P_={};function t0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Rg(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function n0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function R_(t){t._nesting--,t0(t)}class Ng{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ko,this.onMicrotaskEmpty=new ko,this.onStable=new ko,this.onError=new ko}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Xh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Xh||{});const s0={destroy(){}};function o0(t,s){!s&&Ge();const h=s?.injector??qi(Ws);if(!function yd(t){return"browser"===(t??qi(Ws)).get(sh)}(h))return s0;Ja("NgAfterNextRender");const P=h.get(ef),Q=P.handler??=new N_,ge=s?.phase??Xh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(Dl).onDestroy(ke),ze=Ha(h,()=>new bv(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class bv{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=qi(Tr),this.errorHandler=qi(Ml,{optional:!0}),qi(Og,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class N_{constructor(){this.executingCallbacks=!1,this.buckets={[Xh.EarlyRead]:new Set,[Xh.Write]:new Set,[Xh.MixedReadWrite]:new Set,[Xh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let ef=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function gh(t){return!!qs(t)}function Td(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Wh(t,h,ge.join(" "))}}(Ht,Ao,li,P),void 0!==h&&function oT(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=G_}return t})();function G_(){return sf(hs(),ni())}const H_=jg,Cv=class extends H_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return yc(this._hostTNode,this._hostLView)}get injector(){return new lr(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zc(this._hostTNode,this._hostLView);if(Lr(s)){const h=Da(s,this._hostLView),P=Wl(s);return new lr(h[ui].data[P+8],h)}return new lr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=wv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-Vs}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=$h(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,Cu(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Pi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new Sd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(Co,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=$h(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,Cu(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Nf(t){return zs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new Cv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Gp(ke,Q,ge,P),s.attachToViewContainerRef(),qo(c0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=wv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Pp(this._lContainer,h);P&&(va(c0(this._lContainer),h),dg(P[ui],P))}detach(s){const h=this._adjustIndex(s,-1),P=Pp(this._lContainer,h);return P&&null!=va(c0(this._lContainer),h)?new wu(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function wv(t){return t[8]}function c0(t){return t[8]||(t[8]=[])}function sf(t,s){let h;const P=s[t.index];return zs(P)?h=P:(h=_u(P,s,null,t),s[t.index]=h,_g(s,h)),U_(h,s,t,P),new Cv(h,t,s)}let U_=function Sv(t,s,h,P){if(t[Vo])return;let Q;Q=8&h.type?ws(P):function h0(t,s){const h=t[en],P=h.createComment(""),Q=so(s,t);return mu(h,Fm(h,Q),P,function pg(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Vo]=Q},d0=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=Vs;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=n1.bind(h),h}function n1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function s1(t){return function Lv(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function Uv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Ur(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=zg(t.inputs),ke.inputTransforms=zg(t.inputTransforms),ke.declaredInputs=zg(t.declaredInputs),ke.outputs=zg(t.outputs);const Le=Q.hostBindings;Le&&TT(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&wT(t,ze),Je&&af(t,Je),g1(t,Q),kt(t.outputs,Q.outputs),Ur(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function g1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function zg(t){return t===Ks?{}:t===Dn?[]:t}function wT(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function af(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function TT(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function b1(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Dt(Q),inputs:Ks,outputs:Ks}:{directive:Dt(Q.directive),inputs:v1(Q.inputs),outputs:v1(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=Wv,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function Wv(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);MT(Q.declaredInputs,P.inputs),Wv(Q,s,h),h.set(Q,P),s.push(Q)}}function v1(t){if(void 0===t||0===t.length)return Ks;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Kv extends Xv{constructor(s){super(),this.moduleType=s}create(s){return new Yv(this.moduleType,s,[])}}class Zv extends Mu{constructor(s){super(),this.componentFactoryResolver=new nf(this),this.instance=null;const h=new Ca([...s.providers,{provide:Mu,useValue:this},{provide:Su,useValue:this.componentFactoryResolver}],s.parent||_o(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function qv(t,s,h=null){return new Zv({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let lf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function x0(t){return!!Qv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Qv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function kc(t,s,h){return t[s]=h}function Gg(t,s){return t[s]}function Sr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Du(t,s,h,P){const Q=Sr(t,s,h);return Sr(t,s+1,P)||Q}function _0(t,s,h,P,Q){const ge=Du(t,s,h,P);return Sr(t,s+2,Q)||ge}function ec(t,s,h,P,Q,ge){const ke=Du(t,s,h,P);return Du(t,s+2,Q,ge)||ke}function Eu(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=pn(),dt=t+rn,Ct=Je.firstCreatePass?function NT(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Np(s,t,4,ke||null,Xa(Je,Le));Nb(s,h,dt,Xa(Je,ze)),Wc(s,dt);const Ct=dt.tView=ph(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];aa(Ct,!1);const jt=_1(Je,ze,Ct,t);Uc()&&Bm(Je,ze,jt,Ct),$o(jt,ze);const Ht=_u(jt,ze,jt,Ct);return ze[dt]=Ht,_g(ze,Ht),function Tv(t,s,h){return d0(t,s,h)}(Ht,Ct,ze),Cl(Ct)&&bg(Je,ze,Ct),null!=ke&&vg(ze,Ct,Le),Eu}let _1=function C1(t,s,h,P){return Go(!0),s[en].createComment("")};function k0(t,s,h,P){const Q=ni();return Sr(Q,Ma(),s)&&(pn(),Tc(Os(),Q,t,s,h,P)),k0}function Iu(t,s,h,P){return Sr(t,Ma(),h)?s+Ki(h)+P:kn}function M0(t,s){return t<<17|s<<2}function Ed(t){return t>>17&32767}function xy(t){return 2|t}function Ad(t){return(131068&t)>>2}function D0(t,s){return-131069&t|s<<2}function _y(t){return 1|t}function Z1(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Ed(Q):Ad(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];hS(t[ke],s)&&(Le=!0,t[ke+1]=P?_y(Je):xy(Je)),ke=P?Ed(Je):Ad(Je)}Le&&(t[h+1]=P?xy(Q):_y(Q))}function hS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Gr(t,s)>=0}const fo={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function q1(t){return t.substring(fo.key,fo.keyEnd)}function dS(t){return t.substring(fo.value,fo.valueEnd)}function Q1(t,s){const h=fo.textEnd;return h===s?-1:(s=fo.keyEnd=function fS(t,s,h){for(;s32;)s++;return s}(t,fo.key=s,h),xf(t,s,h))}function J1(t,s){const h=fo.textEnd;let P=fo.key=xf(t,s,h);return h===P?-1:(P=fo.keyEnd=function tC(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=iC(t,P,h),P=fo.value=xf(t,P,h),P=fo.valueEnd=function nC(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),iC(t,P,h))}function eC(t){fo.key=0,fo.keyEnd=0,fo.value=0,fo.valueEnd=0,fo.textEnd=t.length}function xf(t,s,h){for(;s=0;h=J1(s,h))A0(t,q1(s),dS(s))}function wy(t){Xo(gS,ic,t,!0)}function ic(t,s){for(let h=function uS(t){return eC(t),Q1(t,xf(t,0,fo.textEnd))}(s);h>=0;h=Q1(s,h))Ys(t,q1(s),!0)}function tl(t,s,h,P){const Q=ni(),ge=pn(),ke=Sl(2);ge.firstUpdatePass&&xn(ge,t,ke,P),s!==kn&&Sr(Q,ke,s)&&My(ge,ge.data[Wr()],Q,Q[en],t,Q[ke+1]=function mS(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(El(t)))),t}(s,h),P,ke)}function Xo(t,s,h,P){const Q=pn(),ge=Sl(2);Q.firstUpdatePass&&xn(Q,null,ge,P);const ke=ni();if(h!==kn&&Sr(ke,ge,h)){const Le=Q.data[Wr()];if(aC(Le,P)&&!Nu(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Xg(Q,Le,ke,h,P)}else!function ky(t,s,h,P,Q,ge,ke,Le){Q===kn&&(Q=Dn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function xn(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Wr()],ke=Nu(t,h);aC(ge,P)&&null===s&&!ke&&(s=!1),s=function Ty(t,s,h,P){const Q=Th(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Fu(h=Kg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Kg(Q,t,s,h,P),null===ge){let ze=function _f(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Ad(P))return t[Ed(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Kg(null,t,s,ze[1],P),ze=Fu(ze,s.attrs,P),function E0(t,s,h,P){t[Ed(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function Sy(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Ed(t[Le+1]);t[P+1]=M0(jt,Le),0!==jt&&(t[jt+1]=D0(t[jt+1],P)),t[Le+1]=function oS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=M0(Le,0),0!==Le&&(t[Le+1]=D0(t[Le+1],P)),Le=P;else t[P+1]=M0(ze,0),0===Le?Le=P:t[ze+1]=D0(t[ze+1],P),ze=P;Je&&(t[P+1]=xy(t[P+1])),Z1(t,dt,P,!0),Z1(t,dt,P,!1),function cS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Gr(ge,s)>=0&&(h[P+1]=_y(h[P+1]))}(s,dt,t,P,ge),ke=M0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Kg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===kn&&(jt=Ct?Dn:void 0);let Ht=Ct?Jr(jt,P):dt===P?jt:void 0;if(Je&&!Cf(Ht)&&(Ht=Jr(ze,P)),Cf(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Ed(Kt):Ad(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=Jr(ze,P))}return Le}function Cf(t){return void 0!==t}function aC(t,s){return!!(t.flags&(s?8:16))}function Zg(t,s,h){Xo(Ys,ic,Iu(ni(),t,s,h),!0)}class Ey{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function qg(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function nc(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Qg(t,s,h,P,Q){if(nc(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function O0(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class Sf{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Ay(t,s,h){Ja("NgControlFlow");const P=ni(),Q=Ma(),ge=P0(P,rn+t);if(Sr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=em(P[ui],rn+s),Je=$h(ge,ze.tView.ssrId);Gp(ge,zp(P,ze,h,{dehydratedView:Je}),0,Cu(ze,Je))}}finally{re(Le)}}else{const Le=zb(ge,0);void 0!==Le&&(Le[ms]=h)}}class Iy{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-Vs}}function Oy(t,s){return s}class Py{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function Ly(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Ja("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new Py(Ht,li);Kt[rn+t]=bi,Eu(t+1,s,h,P,Q,ge),Ht&&Eu(t+2,ze,Je,dt,Ct,jt)}class Ry extends Ey{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Vs}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[ar];this.needsIndexUpdate||=s!==this.length,Gp(this.lContainer,h,s,Cu(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function Fy(t,s){return Pp(t,s)}(this.lContainer,s)}create(s,h){const P=$h(this.lContainer,this.templateTNode.tView.ssrId);return zp(this.hostLView,this.templateTNode,new Iy(this.lContainer,h,s),{dehydratedView:P})}destroy(s){dg(s[ui],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=Ma(),ze=0===ke.length;if(Sr(P,Le,ze)){const Je=h+2,dt=P0(P,Je);if(ze){const Ct=em(Q,Je),jt=$h(dt,Ct.tView.ssrId);Gp(dt,zp(P,Ct,void 0,{dehydratedView:jt}),0,Cu(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function P0(t,s){return t[s]}function em(t,s){return vh(t,s)}function tm(t,s,h,P){const Q=ni(),ge=pn(),ke=rn+t,Le=Q[en],ze=ge.firstCreatePass?function R0(t,s,h,P,Q,ge){const ke=s.consts,ze=Np(s,t,2,P,Xa(ke,Q));return Nb(s,h,ze,Xa(ke,ge)),null!==ze.attrs&&Td(ze,ze.attrs,!1),null!==ze.mergedAttrs&&Td(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=lC(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=Cl(ze);return aa(ze,!0),jm(Le,Je,ze),!function cf(t){return!(32&~t.flags)}(ze)&&Uc()&&Bm(ge,Q,Je,ze),0===function Tl(){return an.lFrame.elementDepthCount}()&&$o(Je,Q),function sd(){an.lFrame.elementDepthCount++}(),dt&&(bg(ge,Q,ze),Ob(ge,ze,Q)),null!==P&&vg(Q,ze),tm}function im(){let t=hs();Bd()?od():(t=t.parent,aa(t,!1));const s=t;(function Fd(t){return an.skipHydrationRootTNode===t})(s)&&function rd(){an.skipHydrationRootTNode=null}(),function jf(){an.lFrame.elementDepthCount--}();const h=pn();return h.firstCreatePass&&(Wc(h,t),zl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function Xd(t){return!!(8&t.flags)}(s)&&Xg(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Oh(t){return!!(16&t.flags)}(s)&&Xg(h,s,ni(),s.stylesWithoutHost,!1),im}function nm(t,s,h,P){return tm(t,s,h,P),im(),nm}let lC=(t,s,h,P,Q,ge)=>(Go(!0),Rm(P,Q,function hd(){return an.lFrame.currentNamespace}()));function sm(t,s,h){const P=ni(),Q=pn(),ge=t+rn,ke=Q.firstCreatePass?function By(t,s,h,P,Q){const ge=s.consts,ke=Xa(ge,P),Le=Np(s,t,8,"ng-container",ke);return null!==ke&&Td(Le,ke,!0),Nb(s,h,Le,Xa(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];aa(ke,!0);const Le=hC(Q,P,ke,t);return P[ge]=Le,Uc()&&Bm(Q,P,Le,ke),$o(Le,P),Cl(ke)&&(bg(Q,P,ke),Ob(Q,ke,P)),null!=h&&vg(P,ke),sm}function N0(){let t=hs();const s=pn();return Bd()?od():(t=t.parent,aa(t,!1)),s.firstCreatePass&&(Wc(s,t),zl(t)&&s.queries.elementEnd(t)),N0}function F0(t,s,h){return sm(t,s,h),N0(),F0}let hC=(t,s,h,P)=>(Go(!0),xb(s[en],""));function dC(){return ni()}function jy(t,s,h){const P=ni();return Sr(P,Ma(),s)&&Qa(pn(),Os(),P,t,s,P[en],h,!0),jy}function Vy(t,s,h){const P=ni();if(Sr(P,Ma(),s)){const ge=pn(),ke=Os();Qa(ge,ke,P,t,s,Wm(Th(ge.data),ke,P),h,!0)}return Vy}const ju=void 0;var uC=["en",[["a","p"],["AM","PM"],ju],[["AM","PM"],ju,ju],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],ju,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],ju,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",ju,"{1} 'at' {0}",ju],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function TS(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let kf={};function B0(t){const s=function kS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=fC(s);if(h)return h;const P=s.split("-")[0];if(h=fC(P),h)return h;if("en"===P)return uC;throw new me(701,!1)}function pC(t){return B0(t)[Mf.PluralCase]}function fC(t){return t in kf||(kf[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),kf[t]}var Mf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Mf||{});const Df="en-US",j0={marker:"element"},Ef={marker:"ICU"};var nl=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(nl||{});let gC=Df;function zy(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?fg(t,0,h):ws(h[Q])}function bC(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];yC(P)||IS(P,s)&&null===xC(P)&&OS(P,s.index)}}function yC(t){return!(64&t.type)}function IS(t,s){return yC(s)||t.index>s.index}function xC(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function OS(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Wx(zy,bC),t.insertBeforeIndex=s)}function LS(t,s,h){const P=Ib(t,h,64,null,null);return vC(s,P),P}let lm=(t,s,h,P)=>(Go(!0),function Hy(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return xb(P,s);case Node.TEXT_NODE:return yb(P,s);case Node.ELEMENT_NODE:return Rm(P,s,null)}}(t,h,P));function BS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function V0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Dn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[ui].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const hm=/\ufffd(\d+):?\d*\ufffd/gi,zS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,Af="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,GS=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,HS=/\uE500/g;function Uy(t,s,h,P,Q,ge,ke){const Le=mg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function H0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(FC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function BC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=q0(ha()).getInertBodyElement(Le),Kt=wm(Ht)||Ht;return Kt?Xy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function Xy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=mg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(xm.hasOwnProperty(bi)){U0(ge,j0,bi,Je,Kt),s.data[Kt]=bi;const ys=li.attributes;for(let Ao=0;Ao>>nl.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=lm(t,dt,s[ge],(ke&nl.COMMENT)===nl.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Uc()),Je&&null!==h&&jt&&mu(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),jd(!0)}function De(t,s,h){W(t,s,h),function ce(){jd(!1)}()}function Mt(t,s,h,P){const Q=ni(),ge=pn(),ke=hs();return Zt(ge,Q,Q[en],ke,t,s,P),Mt}function Zt(t,s,h,P,Q,ge,ke){const Le=Cl(P),Je=t.firstCreatePass&&Um(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=so(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?ys=>ke(ws(ys[P.index])):P.index;let _n=null;if(!ke&&Le&&(_n=function Wt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==_n)(_n.__ngLastListenerFn__||_n).__ngNextListenerFn__=ge,_n.__ngLastListenerFn__=ge,jt=!1;else{ge=Xt(P,s,dt,ge,!1);const ys=h.listen(bi,Q,ge);Ct.push(ge,ys),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=Xt(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?zo(t.index,s):s);let ze=hi(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=hi(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function Ci(t=1){return function Hf(t){return(an.lFrame.contextLView=function yh(t,s){for(;t>0;)s=s[bs],t--;return s}(t,an.lFrame.contextLView))[ms]}(t)}function gi(t,s){let h=null;const P=function Ir(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Go(!0),yb(s[en],P));function XC(t){return Zy("",t,""),XC}function Zy(t,s,h){const P=ni(),Q=Iu(P,t,s,h);return Q!==kn&&fh(P,Wr(),Q),Zy}function YC(t,s,h,P,Q){const ge=ni(),ke=function Ou(t,s,h,P,Q,ge){const Le=Du(t,So(),h,Q);return Sl(2),Le?s+Ki(h)+P+Ki(Q)+ge:kn}(ge,t,s,h,P,Q);return ke!==kn&&fh(ge,Wr(),ke),YC}function KC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function Pu(t,s,h,P,Q,ge,ke,Le){const Je=_0(t,So(),h,Q,ke);return Sl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:kn}(Le,t,s,h,P,Q,ge,ke);return ze!==kn&&fh(Le,Wr(),ze),KC}function ZC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Lu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=ec(t,So(),h,Q,ke,ze);return Sl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:kn}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==kn&&fh(Je,Wr(),dt),ZC}function qC(t,s,h){s1(s)&&(s=s());const P=ni();return Sr(P,Ma(),s)&&Qa(pn(),Os(),P,t,s,P[en],h,!1),qC}function ik(t,s){const h=s1(t);return h&&t.set(s),h}function QC(t,s){const h=ni(),P=pn(),Q=hs();return Zt(P,h,h[en],Q,t,s),QC}function JC(t,s,h,P,Q){if(t=Dt(t),Array.isArray(t))for(let ge=0;ge>20;if(Fo(t)||!t.multi){const Ht=new $c(Je,Q,Ql),Kt=tw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Kd(ud(Le,ke),ge,ze),ew(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=tw(ze,s,dt+jt,Ct),Kt=tw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Kd(ud(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new $c(t,h,Ql);return ge.multi=[],ge.index=s,ge.componentProviders=0,nk(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),ew(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else ew(ge,t,Ht>-1?Ht:Kt,nk(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function ew(t,s,h,P){const Q=Fo(s),ge=function _a(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Dt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function nk(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function tw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=pn();if(P.firstCreatePass){const Q=Ur(t);JC(h,P.data,P.blueprint,Q,!0),JC(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=ml(0,h.type),Q=P.length>0?qv([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(Co))})}return t})();function rk(t){Ja("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function fk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===kn?kc(Q,P,h?s.call(h):s()):Gg(Q,P)}function gk(t,s,h,P){return wk(ni(),oo(),t,s,h,P)}function mk(t,s,h,P,Q){return Tk(ni(),oo(),t,s,h,P,Q)}function bk(t,s,h,P,Q,ge){return function Sk(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return _0(t,ze,Q,ge,ke)?kc(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):W0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function vk(t,s,h,P,Q,ge,ke){return function kk(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return ec(t,Je,Q,ge,ke,Le)?kc(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):W0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function yk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=ec(Je,ze,h,P,Q,ge);return Sr(Je,ze+4,ke)||dt?kc(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):Gg(Je,ze+5)}function xk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=ec(dt,Je,h,P,Q,ge);return Du(dt,Je+4,ke,Le)||Ct?kc(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):Gg(dt,Je+6)}function _k(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=ec(Ct,dt,h,P,Q,ge);return _0(Ct,dt+4,ke,Le,ze)||jt?kc(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):Gg(Ct,dt+7)}function Ck(t,s,h,P){return function Mk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Mr(P.type)),Le=Gs(Ql);try{const ze=Xc(!1),Je=ge();return Xc(ze),function go(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Ek(t,s,h){const P=t+rn,Q=ni(),ge=jc(Q,P);return $0(Q,P)?wk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function Ak(t,s,h,P){const Q=t+rn,ge=ni(),ke=jc(ge,Q);return $0(ge,Q)?Tk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function $0(t,s){return t[ui].data[s].pure}function Ik(t,s){return Sg(t,s)}class Xk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Yk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Jk=new $e(""),eM=new $e("");let cw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,cw||(function OE(t){cw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Tr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(Tr),Is(tM),Is(eM))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),tM=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return cw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function hw(t){return!!t&&"function"==typeof t.then}function iM(t){return!!t&&"function"==typeof t.subscribe}const nM=new $e("");let dw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=qi(nM,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(hw(ge))h.push(ge);else if(iM(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uw=new $e("");function oM(t,s){return Array.isArray(s)?s.reduce(oM,t):{...t,...s}}let zu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=qi(su),this.afterRenderEffectManager=qi(ef),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=qi(lf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=qi(Co)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof Cd;if(!this._injector.get(dw).done)throw!Q&&xo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(Su).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Mu),Je=ke.create(Ws.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Jk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),ex(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Km)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>pw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>pw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;ex(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(uw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>ex(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ex(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!pw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,Tg(t,s,P)}(t,h,s)}function pw(t){return Nd(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Kv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=Il(qs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new Sd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=qi(Tr),this.applicationRef=qi(zu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=qi(Tr),s=qi(Ml);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=qi(Tr),this.pendingTasks=qi(lf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Tr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Tr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ix=new $e("",{providedIn:"root",factory:()=>qi(ix,mn.Optional|mn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Df}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),fw=new $e("");let hM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function mv(t="zone.js",s){return"noop"===t?new Ng:"zone.js"===t?new Tr(s):t}(P?.ngZone,function cM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function AT(t,s,h){return new Yv(t,s,h)}(h.moduleType,this.injector,function lM(t){return[{provide:Tr,useFactory:t},{provide:Lo,multi:!0,useFactory:()=>{const s=qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Lo,multi:!0,useFactory:()=>{const s=qi(UE);return()=>{s.initialize()}}},{provide:su,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Ml,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{ex(this._modules,ge),Le.unsubscribe()})}),function rM(t,s,h){try{const P=h();return hw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(dw);return Le.runInitializers(),Le.donePromise.then(()=>(function mC(t){"string"==typeof t&&(gC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(ix,Df)||Df),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=oM({},P);return function VE(t,s,h){const P=new Kv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(zu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(fw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(Ws))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Gu=null;const dM=new $e("");function uM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=gw();if(!ke||ke.injector.get(dM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Gu&&!Gu.get(dM,!1))throw new me(400,!1);(function sM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Gu=t;const s=t.get(hM);(function fM(t){t.get(zh,null)?.forEach(h=>h())})(t)}(function pM(t=[],s){return Ws.create({name:s,providers:[{provide:Fs,useValue:"platform"},{provide:fw,useValue:new Set([()=>Gu=null])},...t]})}(Le,P))}return function KE(t){const s=gw();if(!s)throw new me(401,!1);return s}()}}function gw(){return Gu?.get(hM)??null}function qE(){}let mM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(ra(t)&&!h){const P=zo(t.index,s);return new wu(P,P)}return 47&t.type?new wu(s[Kn],s):null}(hs(),ni(),!(16&~t))}class xM{constructor(){}supports(s){return x0(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new _M),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new _M),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class _M{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function CM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function TM(){return new xw([new xM])}let xw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:TM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||TM()),deps:[[t,new zr,new tr]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function SM(){return new _w([new wM])}let _w=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:SM});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||SM()),deps:[[t,new zr,new tr]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=uM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zu))};static#t=this.\u0275mod=Nl({type:t});static#i=this.\u0275inj=Mn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Ja("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=qi(lf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Ml,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function XM(t,s){Ja("NgSignals"),!s?.injector&&Ge();const h=s?.injector??qi(Ws),P=!0!==s?.manualCleanup?h.get(Dl):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(mM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[yl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||_o();return new Sd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new Sd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Mr,X1:()=>ja,YN:()=>Jo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>yo,qT:()=>sc,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(bn){return Bt.onChange(bn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(bn){return Bt._handleInput(bn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(bn){return Bt._compositionEnd(bn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Qt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Dt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class di extends Qt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends di{}const jn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function Gn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function Cs(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function _s(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Mi(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Mi(ct._rawValidators,Bt),Mi(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(bn=>bn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(bn=>bn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Mi(ct._rawValidators,vt),Mi(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const ss=class extends Qt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const jr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,bn,to){super(),this._changeDetectorRef=bn,this.callSetDisabledState=to,this.control=new ss,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Gn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(jn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([jr]),M.Vt3,M.OA$]})}return ot})(),sc=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const ur={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(bn){return Bt.onChange(bn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([ur]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),al={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return Gn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof ss)(Bt)&&(Gn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function Mn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function Br(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(jn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(bn){return Bt.onSubmit(bn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([al]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ll={provide:x,useExisting:(0,M.Rfq)(()=>pa)};let pa=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ll]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof pa)}const bo={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,bn){super(),this._ngModelWarningConfig=bn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([bo]),M.Vt3,M.OA$]})}return ot})();let tr=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const dl={provide:F,useExisting:(0,M.Rfq)(()=>Mr),multi:!0};let Mr=(()=>{class ot extends tr{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Oo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([dl]),M.Vt3]})}return ot})(),Ks=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Dn extends Qt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function Qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let yo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return Qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new di(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(Qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new ss(Ye,{...Vi,nonNullable:!0})):new ss(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(bn=>this._createControl(bn));return new Dn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof ss||Ye instanceof Qt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Jo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:jn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ks]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:jn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ks]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Dt){return new URL(Dt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Dt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Dt)};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const fe=new M.nKC("");let pe=(()=>{class Dt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Qt=>{Qt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Qt){return this._findPluginFor(wt).addEventListener(_t,wt,Qt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(di=>di.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Dt{constructor(_t,wt,Qt,di={}){this.doc=_t,this.appId=wt,this.nonce=Qt,this.platformId=di,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(di),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Qt=>Qt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Qt=>{null!=Qt.textContent&&wt.set(Qt.textContent,Qt)}),wt}return null}changeUsageCount(_t,wt){const Qt=this.styleRef;if(Qt.has(_t)){const di=Qt.get(_t);return di.usage+=wt,di.usage}return Qt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Qt=this.styleNodesInDOM,di=Qt?.get(wt);if(di?.parentNode===_t)return Qt.delete(wt),di.removeAttribute(te),di;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Qt=this.getStyleElement(_t,wt),di=this.styleRef,Fi=di.get(wt)?.elements;Fi?Fi.push(Qt):di.set(wt,{elements:[Qt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Dt,At){return At.map(_t=>_t.replace(B,Dt))}let z=(()=>{class Dt{constructor(_t,wt,Qt,di,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Qt,this.removeStylesOnCompDestroy=di,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Qt=this.getOrCreateRenderer(_t,wt);return Qt instanceof n?Qt.applyToHost(_t):Qt instanceof o&&Qt.applyStyles(),Qt}getOrCreateRenderer(_t,wt){const Qt=this.rendererByCompId;let di=Qt.get(wt.id);if(!di){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,xs=this.removeStylesOnCompDestroy,jn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:di=new n(vi,Gi,wt,this.appId,xs,Fi,mi,jn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,jn);default:di=new o(vi,Gi,wt,xs,Fi,mi,jn)}Qt.set(wt.id,di)}return di}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();class O{constructor(At,_t,wt,Qt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Qt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Qt){if(Qt){_t=Qt+":"+_t;const di=A[Qt];di?At.setAttributeNS(di,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Qt=A[wt];Qt?At.removeAttributeNS(Qt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Qt){Qt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Qt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Dt){return"TEMPLATE"===Dt.tagName&&void 0!==Dt.content}class y extends O{constructor(At,_t,wt,Qt,di,Fi,mi,vi){super(At,di,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Qt.id,Qt.styles);for(const xs of Gi){const jn=document.createElement("style");mi&&jn.setAttribute("nonce",mi),jn.textContent=xs,this.shadowRoot.appendChild(jn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Qt,di,Fi,mi,vi){super(At,di,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Qt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Qt,di,Fi,mi,vi){const Gi=Qt+"-"+wt.id;super(At,_t,wt,di,Fi,mi,vi,Gi),this.contentAttr=function _(Dt){return D.replace(B,Dt)}(Gi),this.hostAttr=function b(Dt){return L.replace(B,Dt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Dt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Qt){return _t.addEventListener(wt,Qt,!1),()=>this.removeEventListener(_t,wt,Qt)}removeEventListener(_t,wt,Qt){return _t.removeEventListener(wt,Qt)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Dt=>Dt.altKey,control:Dt=>Dt.ctrlKey,meta:Dt=>Dt.metaKey,shift:Dt=>Dt.shiftKey};let k=(()=>{class Dt extends J{constructor(_t){super(_t)}supports(_t){return null!=Dt.parseEventName(_t)}addEventListener(_t,wt,Qt){const di=Dt.parseEventName(wt),Fi=Dt.eventCallback(di.fullKey,Qt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,di.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Qt=wt.shift();if(0===wt.length||"keydown"!==Qt&&"keyup"!==Qt)return null;const di=Dt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const xs=wt.indexOf(Gi);xs>-1&&(wt.splice(xs,1),Fi+=Gi+".")}),Fi+=di,0!=wt.length||0===di.length)return null;const vi={};return vi.domEventName=Qt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Qt=d[_t.key]||_t.key,di="";return wt.indexOf("code.")>-1&&(Qt=_t.code,di="code."),!(null==Qt||!Qt)&&(Qt=Qt.toLowerCase()," "===Qt?Qt="space":"."===Qt&&(Qt="dot"),l.forEach(Fi=>{Fi!==Qt&&(0,C[Fi])(_t)&&(di+=Fi+".")}),di+=Qt,di===wt)}static eventCallback(_t,wt,Qt){return di=>{Dt.matchEventFullKeyCode(di,_t)&&Qt.runGuarded(()=>wt(di))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac})}return Dt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Qt=!0)=>{const di=At.findTestabilityInTree(wt,Qt);if(null==di)throw new M.wOt(5103,!1);return di},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Qt=M.JZv.getAllAngularTestabilities();let di=Qt.length;const Fi=function(){di--,0==di&&wt()};Qt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Dt{constructor(_t){}static withServerTransition(_t){return{ngModule:Dt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Dt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Dt})(),he=(()=>{class Dt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac,providedIn:"root"})}return Dt})(),Xe=(()=>{class Dt{static#e=this.\u0275fac=function(wt){return new(wt||Dt)};static#t=this.\u0275prov=M.jDH({token:Dt,factory:function(wt){let Qt=null;return Qt=wt?new(wt||Dt):M.KVO(Ze),Qt},providedIn:"root"})}return Dt})(),Ze=(()=>{class Dt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Dt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Dt,factory:Dt.\u0275fac,providedIn:"root"})}return Dt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>bo,wF:()=>un,Kp:()=>ms,b:()=>Pi,Ix:()=>ui,Wk:()=>gs,wQ:()=>ks,iI:()=>Cl,n3:()=>Io});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new Gn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function di(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Dt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Dt(Re.path)}${function Qt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Dt(Ue)}=${Dt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,xs=/^[^=?&#]+/,ls=/^[^&#]+/;class Gn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function jn(Re){const Ue=Re.match(xs);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Mi(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Mi(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,Jt]of Object.entries(mt.children))Ue[Ot]=Jt;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function _s(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Yt of mt.children){const Ii=Be(Yt);Ot[Yt.outlet]=Ii}const Jt=new Me(mt.url,Ot);return mt===Re&&(Ue=Jt),Jt}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return Mn(rt,rt,rt,Be,We);const mt=function Kr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new mo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const Jt={};return Object.entries(mt.outlets).forEach(([Yt,Ii])=>{Jt[Yt]="string"==typeof Ii?Ii.split("/"):Ii}),[...rt,{outlets:Jt}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((Jt,Yt)=>{0==Yt&&"."===Jt||(0==Yt&&""===Jt?Be=!0:".."===Jt?Ue++:""!=Jt&&rt.push(Jt))}),rt):[...rt,mt]},[]);return new mo(Be,Ue,We)}(Ue);if(mt.toRoot())return Mn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new nr(Ue,!0,0);if(!Be)return new nr(Ue,!1,NaN);if(null===Be.parent)return new nr(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new nr(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),Jt=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return Mn(rt,Ot.segmentGroup,Jt,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function Cs(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function Mn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Yt,Ii])=>{mt[Yt]=Array.isArray(Ii)?Ii.map(vn=>`${vn}`):`${Ii}`}),Ot=Re===Ue?Be:Br(Re,Ue,Be);const Jt=dn(Mi(Ot));return new _e(Jt,mt,rt)}function Br(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:Br(mt,Ue,Be)}),new Me(Re.segments,We)}class mo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(Cs);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class nr{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],Jt=Be[We];if(Cs(Jt))break;const Yt=`${Jt}`,Ii=We0&&void 0===Yt)break;if(Yt&&Ii&&"object"==typeof Ii&&void 0===Ii.outlets){if(!si(Yt,Ii,Ot))return mt;We+=2}else{if(!si(Yt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class ss extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class rs extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class er extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class is extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Zr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class jr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class sc{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class ur{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class qr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mn{}class Zo{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Qr,this.attachRef=null}}let Qr=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class ol{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=al(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=al(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function al(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=al(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ll extends ol{constructor(Ue,Be){super(Ue),this.snapshot=Be,ga(this,Ue)}toString(){return this.snapshot.toString()}}function pa(Re){const Ue=function Ra(Re){const mt=new fa([],{},{},"",{},w,Re,null,{});return new kr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),Jt=new bo(Be,We,mt,Ot,rt,w,Re,Ue.root);return Jt.snapshot=Ue.root,new ll(new Hs(Jt,[]),Ue)}class bo{constructor(Ue,Be,We,rt,mt,Ot,Jt,Yt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=Jt,this._futureSnapshot=Yt,this.title=this.dataSubject?.pipe((0,_.T)(Ii=>Ii[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&Vr(rt)&&(We.resolve[X]=rt.title),We}class fa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,Jt,Yt,Ii){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=Jt,this.routeConfig=Yt,this._resolve=Ii}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class kr extends ol{constructor(Ue,Be){super(Be),this.url=Ue,ga(this,Be)}toString(){return Is(this._root)}}function ga(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>ga(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||qi(Re.parent,Ue.parent))}function Vr(Re){return"string"==typeof Re.title||null===Re.title}let Io=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(Qr),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(vo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,Jt=this.parentContexts.getOrCreateContext(this.name).children,Yt=new ma(Be,Jt,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Yt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ma{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===bo?this.route:Ue===Qr?this.childContexts:this.parent.get(Ue,Be)}}const vo=new M.nKC("");let ba=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,Jt],Yt)=>(Jt={...mt,...Ot,...Jt},0===Yt?(0,Pe.of)(Jt):Promise.resolve(Jt)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:Jt}of Ot.inputs)Be.activatedComponentRef.setInput(Jt,mt[Jt]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Oo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function tr(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Oo(Re,We,rt);return Oo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(Jt=>Oo(Re,Jt)),Ot}}const We=function hl(Re){return new bo(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Oo(Re,mt));return new Hs(We,rt)}}const zr="ngNavigationCancelingError";function dl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Mr(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Mr(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[zr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[zr]}let Dr=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Io],encapsulation:2})}return Re})();function Gr(Re){const Ue=Re.children&&Re.children.map(Gr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Dr),Be}function eo(Re){return Re.outlet||w}function Ks(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class xa{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),Jt=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:Jt})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const Jt=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(Jt.contexts),Ot.attachRef=Jt.componentRef,Ot.route=Jt.route.value,Ot.outlet&&Ot.outlet.attach(Jt.componentRef,Jt.route.value),Us(Jt.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const Jt=Ks(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=Jt,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class Qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class yo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function ul(Re,Ue,Be){const We=Re._root;return Jo(We,Ue?Ue._root:null,Be,[We.value])}function Qi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Jo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,Jt=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Yt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Yt?rt.canActivateChecks.push(new Qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Jo(Re,Ue,mt.component?Jt?Jt.children:null:Be,We,rt),Yt&&Jt&&Jt.outlet&&Jt.outlet.isActivated&&rt.canDeactivateChecks.push(new yo(Jt.outlet.component,Ot))}else Ot&&ct(Ue,Jt,rt),rt.canActivateChecks.push(new Qo(We)),Jo(Re,null,mt.component?Jt?Jt.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,Jt])=>ct(Jt,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new yo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Zs(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Ar=Symbol("INITIAL_VALUE");function or(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Ar)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Ar)return Ar;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Ar),(0,T.s)(1)))}function io(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw dl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Nl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Or(Re){return(0,J.$)(new Nl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const Jt=mt.substring(1);We[rt]=Be[Jt]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([Jt,Yt])=>{Ot[Jt]=this.createSegmentGroup(Ue,Yt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const xo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function qs(Re,Ue,Be,We,rt){const mt=pl(Re,Ue,Be);return mt.matched?(We=function qo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Zh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const Jt=Qi(Ot,Re);return Ce(function Er(Re){return Re&&Ye(Re.canMatch)}(Jt)?Jt.canMatch(Ue,Be):(0,M.N4e)(Re,()=>Jt(Ue,Be)))});return(0,Pe.of)(mt).pipe(or(),io())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...xo}))):(0,Pe.of)(mt)}function pl(Re,Ue,Be){if("**"===Ue.path)return function fl(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...xo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...xo};const mt={};Object.entries(rt.posParams??{}).forEach(([Jt,Yt])=>{mt[Jt]=Yt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function gl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>ml(Re,Ue,We)&&eo(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ac(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Fl(Re,Ue,Be){return Be.some(We=>ml(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Ac(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Ac(Re,Ue,Be,We){const rt={};for(const mt of Be)if(ml(Re,Ue,mt)&&!We[eo(mt)]){const Ot=new Me([],{});rt[eo(mt)]=Ot}return{...We,...rt}}function ac(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&eo(We)!==w){const rt=new Me([],{});Be[eo(We)]=rt}return Be}function ml(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Oc{}class Bl{constructor(Ue,Be,We,rt,mt,Ot,Jt){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=Jt,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=gl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new fa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new kr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Nl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],Jt=function rc(Re,Ue){const Be=Re.filter(We=>eo(We)===Ue);return Be.push(...Re.filter(We=>eo(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,Jt,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let Jt=Be,Yt=Ue,Ii=0;mt.subscribe((0,F._)(Ot,vn=>{const In=Ii++;Yt=Jt?Re(Yt,vn,In):(Jt=!0,vn),We&&Ot.next(Yt)},rt&&(()=>{Jt&&Ot.next(Yt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Or(We);const Ot=Fo(mt);return function ir(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(Jt=>this.processSegmentAgainstRoute(Jt._injector??Ue,Be,Jt,We,rt,mt,Ot).pipe((0,d.W)(Yt=>{if(Yt instanceof Nl)return(0,Pe.of)(null);throw Yt}))),n(Jt=>!!Jt),(0,d.W)(Jt=>{if(Zs(Jt))return function lc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Oc):Or(We);throw Jt}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,Jt){return function Ic(Re,Ue,Be,We){return!!(eo(Re)===We||We!==w&&ml(Ue,Be,Re))&&pl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&Jt?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Or(rt):Or(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:Jt,consumedSegments:Yt,positionalParamSegments:Ii,remainingSegments:vn}=pl(Be,rt,mt);if(!Jt)return Or(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const In=this.applyRedirects.applyRedirectCommands(Yt,rt.redirectTo,Ii);return this.applyRedirects.lineralizeSegments(rt,In).pipe((0,f.Z)(Qs=>this.processSegment(Ue,We,Be,Qs.concat(vn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=qs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(Jt=>Jt.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Yt})=>{const Ii=We._loadedInjector??Ue,{consumedSegments:vn,remainingSegments:In,parameters:Qs}=Jt,Gl=new fa(vn,Qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Fs(Re){return Re.data||{}}(We),eo(We),We.component??We._loadedComponent??null,We,function Bs(Re){return Re.resolve||{}}(We)),{segmentGroup:Hl,slicedSegments:Wa}=gl(Be,vn,In,Yt);if(0===Wa.length&&Hl.hasChildren())return this.processChildren(Ii,Yt,Hl).pipe((0,_.T)($a=>null===$a?null:new Hs(Gl,$a)));if(0===Yt.length&&0===Wa.length)return(0,Pe.of)(new Hs(Gl,[]));const Fc=eo(We)===mt;return this.processSegment(Ii,Yt,Hl,Wa,Fc?w:mt,!0).pipe((0,_.T)($a=>new Hs(Gl,$a instanceof Hs?[$a]:[])))})):Or(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Dc(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const Jt=Qi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(Jt)?Jt.canLoad(Ue,Be):(0,M.N4e)(Re,()=>Jt(Ue,Be)))});return(0,Pe.of)(mt).pipe(or(),io())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Mr(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Lc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Fo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Lc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Fo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function _o(Re){const Ue=Re.children.map(Be=>_o(Be)).flat();return[Re,...Ue]}function jl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Rc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(vl),providedIn:"root"})}return Re})(),vl=(()=>{class Re extends Rc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ia=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Hr(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,Jt=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Gr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function na(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let sa=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Ii=>{mt=Ii}),Jt=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Yt}=We;return Yt&&(0,M.N4e)(Re,()=>Yt({transition:Jt,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ia),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(Qr),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(vo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Rc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(sa),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new sc(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,Jt=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Yt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Yt.id,initialUrl:Yt.rawUrl,extractedUrl:Yt.extractedUrl,trigger:Yt.source,extras:Yt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Ii=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Ii&&"reload"!==(Yt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const In="";return this.events.next(new er(Yt.id,this.urlSerializer.serialize(Yt.rawUrl),In,cn.IgnoredSameUrlNavigation)),Yt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Yt.rawUrl))return(0,Pe.of)(Yt).pipe((0,b.n)(In=>{const Qs=this.transitions?.getValue();return this.events.next(new ss(In.id,this.urlSerializer.serialize(In.extractedUrl),In.source,In.restoredState)),Qs!==this.transitions?.getValue()?te.w:Promise.resolve(In)}),function ta(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function No(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new Bl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:Jt,tree:Yt})=>({...Ot,targetSnapshot:Jt,urlAfterRedirects:Yt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(In=>{mt.targetSnapshot=In.targetSnapshot,mt.urlAfterRedirects=In.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:In.urlAfterRedirects};const Qs=new Zr(In.id,this.urlSerializer.serialize(In.extractedUrl),this.urlSerializer.serialize(In.urlAfterRedirects),In.targetSnapshot);this.events.next(Qs)}));if(Ii&&this.urlHandlingStrategy.shouldProcessUrl(Yt.currentRawUrl)){const{id:In,extractedUrl:Qs,source:Gl,restoredState:Hl,extras:Wa}=Yt,Fc=new ss(In,this.urlSerializer.serialize(Qs),Gl,Hl);this.events.next(Fc);const $a=pa(this.rootComponentType).snapshot;return this.currentTransition=mt={...Yt,targetSnapshot:$a,urlAfterRedirects:Qs,extras:{...Wa,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=Qs,(0,Pe.of)(mt)}{const In="";return this.events.next(new er(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),In,cn.IgnoredByUrlHandlingStrategy)),Yt.resolve(null),te.w}}),(0,l.M)(Yt=>{const Ii=new sr(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects),Yt.targetSnapshot);this.events.next(Ii)}),(0,_.T)(Yt=>(this.currentTransition=mt={...Yt,guards:ul(Yt.targetSnapshot,Yt.currentSnapshot,this.rootContexts)},mt)),function Ir(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Vn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Kh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(Jt=>{const Yt=Ks(Ue)??rt,Ii=Qi(Jt,Yt);return Ce(function to(Re){return Re&&Ye(Re.canDeactivate)}(Ii)?Ii.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Yt,()=>Ii(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(or())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(Jt=>Jt&&function vt(Re){return"boolean"==typeof Re}(Jt)?function pr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function oc(Re,Ue){return null!==Re&&Ue&&Ue(new ur(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function ea(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Yh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Ro(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const Jt=Ot.guards.map(Yt=>{const Ii=Ks(Ot.node)??Be,vn=Qi(Yt,Ii);return Ce(function bn(Re){return Re&&Ye(Re.canActivateChild)}(vn)?vn.canActivateChild(We,Re):(0,M.N4e)(Ii,()=>vn(We,Re))).pipe(n())});return(0,Pe.of)(Jt).pipe(or())}));return(0,Pe.of)(mt).pipe(or())}(Re,rt.path,Be),function Rl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ks(Ue)??Be,Jt=Qi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(Jt)?Jt.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>Jt(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(or())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(Jt)),(0,_.T)(Jt=>({...Be,guardsResult:Jt})))})}(this.environmentInjector,Yt=>this.events.next(Yt)),(0,l.M)(Yt=>{if(mt.guardsResult=Yt.guardsResult,On(Yt.guardsResult))throw dl(0,Yt.guardsResult);const Ii=new Ls(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects),Yt.targetSnapshot,!!Yt.guardsResult);this.events.next(Ii)}),(0,O.p)(Yt=>!!Yt.guardsResult||(this.cancelNavigationTransition(Yt,"",Xi.GuardRejected),!1)),jl(Yt=>{if(Yt.guards.canActivateChecks.length)return(0,Pe.of)(Yt).pipe((0,l.M)(Ii=>{const vn=new jr(Ii.id,this.urlSerializer.serialize(Ii.extractedUrl),this.urlSerializer.serialize(Ii.urlAfterRedirects),Ii.targetSnapshot);this.events.next(vn)}),(0,b.n)(Ii=>{let vn=!1;return(0,Pe.of)(Ii).pipe(function bl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Yt=>Yt.route)),Ot=new Set;for(const Yt of mt)if(!Ot.has(Yt))for(const Ii of _o(Yt))Ot.add(Ii);let Jt=0;return(0,V.H)(Ot).pipe((0,r.H)(Yt=>mt.has(Yt)?function Co(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!Vr(rt)&&(mt[X]=rt.title),function Ca(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function wa(Re,Ue,Be,We){const rt=Ks(Ue)??We,mt=Qi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(Jt=>{mt[Ot]=Jt}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Zs(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Yt,We,Re,Ue):(Yt.data=xr(Yt,Yt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>Jt++),p(1),(0,f.Z)(Yt=>Jt===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>vn=!0,complete:()=>{vn||this.cancelNavigationTransition(Ii,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Ii=>{const vn=new Ki(Ii.id,this.urlSerializer.serialize(Ii.extractedUrl),this.urlSerializer.serialize(Ii.urlAfterRedirects),Ii.targetSnapshot);this.events.next(vn)}))}),jl(Yt=>{const Ii=vn=>{const In=[];vn.routeConfig?.loadComponent&&!vn.routeConfig._loadedComponent&&In.push(this.configLoader.loadComponent(vn.routeConfig).pipe((0,l.M)(Qs=>{vn.component=Qs}),(0,_.T)(()=>{})));for(const Qs of vn.children)In.push(...Ii(Qs));return In};return(0,ie.z)(Ii(Yt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),jl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Yt,targetSnapshot:Ii}=mt,vn=this.createViewTransition?.(this.environmentInjector,Yt.root,Ii.root);return vn?(0,V.H)(vn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Yt=>{const Ii=function cl(Re,Ue,Be){const We=Oo(Re,Ue._root,Be?Be._root:void 0);return new ll(We,Ue)}(Be.routeReuseStrategy,Yt.targetSnapshot,Yt.currentRouterState);return this.currentTransition=mt={...Yt,targetRouterState:Ii},this.currentNavigation.targetRouterState=Ii,mt}),(0,l.M)(()=>{this.events.next(new mn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new xa(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Yt=>this.events.next(Yt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Yt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Yt.id,this.urlSerializer.serialize(Yt.extractedUrl),this.urlSerializer.serialize(Yt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Yt.targetRouterState.snapshot),Yt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Yt=>{throw Yt}))),(0,H.j)(()=>{!Ot&&!Jt&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Yt=>{if(Jt=!0,cs(Yt))this.events.next(new rs(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Yt.message,Yt.cancellationCode)),function rr(Re){return cs(Re)&&On(Re.url)}(Yt)?this.events.next(new Zo(Yt.url)):mt.resolve(!1);else{this.events.next(new is(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Yt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Yt))}catch(Ii){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Ii)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new rs(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Pi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Qn),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let Qn=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),os=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends os{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(sa),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=pa(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof ss)this.stateMemento=this.createStateMemento();else if(Be instanceof er)this.rawUrlTree=We.initialUrl;else if(Be instanceof Zr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof mn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof rs&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof is?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ns(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof rs||Be instanceof is||Be instanceof er),(0,_.T)(Be=>Be instanceof un||Be instanceof er?us.COMPLETE:Be instanceof rs&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function js(Re){throw Re}const Pr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Hn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let ui=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(os),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(sa),this._events=new I.B,this.errorHandler=this.options.errorHandler||js,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Pi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(vo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof rs&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Zo){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),Jt={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,Jt,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof mn||Re instanceof Zo)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Yt={...rt};delete Yt.navigationId,delete Yt.\u0275routerPageId,0!==Object.keys(Yt).length&&(mt.state=Yt)}const Jt=this.parseUrl(Be);this.scheduleNavigation(Jt,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Gr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:Jt,preserveFragment:Yt}=We,Ii=Yt?this.currentUrlTree.fragment:Ot;let In,vn=null;switch(Jt){case"merge":vn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":vn=this.currentUrlTree.queryParams;break;default:vn=mt||null}null!==vn&&(vn=this.removeEmptyProps(vn));try{In=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),In=this.currentUrlTree.root}return $n(In,Be,vn,Ii??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let Jt,Yt,Ii;Ot?(Jt=Ot.resolve,Yt=Ot.reject,Ii=Ot.promise):Ii=new Promise((In,Qs)=>{Jt=In,Yt=Qs});const vn=this.pendingTasks.add();return ns(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(vn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:Jt,reject:Yt,promise:Ii,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Ii.catch(In=>Promise.reject(In))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,Jt){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=Jt,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Yt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Yt||"area"===Yt,this.isAnchorElement?this.subscription=Be.events.subscribe(Ii=>{Ii instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const Jt=this.urlTree;return!!(null===Jt||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(Jt,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(ui),M.rXU(bo),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(Jt=>{Jt instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function ar(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(ui),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class Ta{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),wo=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,Jt=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(Jt,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(ui),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(Ta),M.KVO(ia))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Bo=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof ss?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof er&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof qr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new qr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function ka(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(ui),rt=Re.get(jo);1===Re.get(yl)&&We.initialNavigation(),Re.get(xl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const jo=new M.nKC("",{factory:()=>new I.B}),yl=new M.nKC("",{providedIn:"root",factory:()=>1}),xl=new M.nKC("");function Vo(Re){return Kn(0,[{provide:xl,useExisting:wo},{provide:Ta,useExisting:Re}])}function gr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const zl=new M.nKC("ROUTER_FORROOT_GUARD"),ra=[E.aZ,{provide:Qe,useClass:st},ui,Qr,{provide:bo,useFactory:function bs(Re){return Re.routerState.root},deps:[ui]},ia,[]];let Cl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[ra,[],{provide:Ga,multi:!0,useValue:Be},{provide:zl,useFactory:qh,deps:[[ui,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Bo(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Vo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Zn(We):[],We?.bindToComponentInputs?Kn(8,[ba,{provide:vo,useExisting:ba}]).\u0275providers:[],We?.enableViewTransitions?gr().\u0275providers:[],[{provide:wl,useFactory:ka},{provide:M.iLQ,multi:!0,useExisting:wl}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(zl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function qh(Re){return"guarded"}function Zn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(ui);return()=>{Ue.setUpLocationChangeListener()}}},{provide:yl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:yl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(ui),mt=Ue.get(jo);ns(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const wl=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Go,do:()=>Wc,Bq:()=>Lr,UN:()=>hu,ZM:()=>Jd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Ut=>Ut.length)){const Ut=Ne.map(ei=>ei.shift());we.next(je?je(...Ut):Ut),Ne.some((ei,ii)=>!ei.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Ut=0;Ut{it[Ut]=ei,!Vt&&!ft[Ut]&&(ft[Ut]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Ut=>{if(Vt){const ei=[Ut,...it];we.next(je?je(...ei):ei)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Ut=!ht()&&ae,ei=(we.left+(Ut&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Ut&&Vt?Vt.offsetTop:0))/it,wi=we.width/Ne,_i=we.height/it;return{width:wi,height:_i,top:ii,right:ei+wi,bottom:ii+_i,left:ei,x:ei,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Qt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function di(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&di(be)?be:Fi(Qt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],di(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Qt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function jn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function xs(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Qt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Dt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Ut=0;if(Ne){it=Ne.width,ft=Ne.height;var ei=ht();(ei||!ei&&"fixed"===je)&&(Vt=Ne.offsetLeft,Ut=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Ut}}(be,ae)):Ee(je)?function Gn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Ut=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Ut}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Ut,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Ut={x:ft,y:je.y-ae.height};break;case U:Ut={x:ft,y:je.y+je.height};break;case se:Ut={x:je.x+je.width,y:Vt};break;case w:Ut={x:je.x-ae.width,y:Vt};break;default:Ut={x:je.x,y:je.y}}var ei=Ne?Pn(Ne):null;if(null!=ei){var ii="y"===ei?"height":"width";switch(it){case x:Ut[ei]=Ut[ei]-(je[ii]/2-ae[ii]/2);break;case N:Ut[ei]=Ut[ei]+(je[ii]/2-ae[ii]/2)}}return Ut}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function Cs(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function Mn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Ut=void 0===Vt?"clippingParents":Vt,ei=je.rootBoundary,ii=void 0===ei?K:ei,wi=je.elementContext,_i=void 0===wi?q:wi,Ai=je.altBoundary,yn=void 0!==Ai&&Ai,sn=je.padding,Cn=void 0===sn?0:sn,Ln=$i("number"!=typeof Cn?Cn:Cs(Cn,G)),vs=be.rects.popper,Rn=be.elements[yn?_i===q?"reference":q:_i],En=function _s(be,je,ae,we){var Ne="clippingParents"===je?function Mi(be){var je=mi(Qt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?jn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Ut,ei){var ii=dn(be,ei,we);return Ut.top=Qe(ii.top,Ut.top),Ut.right=st(ii.right,Ut.right),Ut.bottom=st(ii.bottom,Ut.bottom),Ut.left=Qe(ii.left,Ut.left),Ut},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(Rn)?Rn:Rn.contextElement||lt(be.elements.popper),Ut,ii,ft),An=Lt(be.elements.reference),Ps=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ts=fs(Object.assign({},vs,Ps)),Cr=_i===q?Ts:An,Ns={top:En.top-Cr.top+Ln.top,bottom:Cr.bottom-En.bottom+Ln.bottom,left:En.left-Cr.left+Ln.left,right:Cr.right-En.right+Ln.right},mr=be.modifiersData.offset;if(_i===q&&mr){var Mo=mr[Ne];Object.keys(Ns).forEach(function(cr){var xe=[se,U].indexOf(cr)>=0?1:-1,tt=[Y,U].indexOf(cr)>=0?"y":"x";Ns[cr]+=Mo[tt]*xe})}return Ns}const nr={name:"flip",enabled:!0,phase:"main",fn:function Kr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Ut=ae.fallbackPlacements,ei=ae.padding,ii=ae.boundary,wi=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,yn=void 0===Ai||Ai,sn=ae.allowedAutoPlacements,Cn=je.options.placement,Ln=S(Cn),vs=Ut||(Ln!==Cn&&yn?function mo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(Cn):[p(Cn)]),Rn=[Cn].concat(vs).reduce(function(oi,Li){return oi.concat(S(Li)===X?function Br(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Ut=je.allowedAutoPlacements,ei=void 0===Ut?Ce:Ut,ii=On(je.placement),wi=ii?Vt?me:me.filter(function(yn){return On(yn)===ii}):G,_i=wi.filter(function(yn){return ei.indexOf(yn)>=0});0===_i.length&&(_i=wi);var Ai=_i.reduce(function(yn,sn){return yn[sn]=Mn(be,{placement:sn,boundary:Ne,rootBoundary:it,padding:ft})[S(sn)],yn},{});return Object.keys(Ai).sort(function(yn,sn){return Ai[yn]-Ai[sn]})}(je,{placement:Li,boundary:ii,rootBoundary:wi,padding:ei,flipVariations:yn,allowedAutoPlacements:sn}):Li)},[]),En=je.rects.reference,An=je.rects.popper,Ps=new Map,Ts=!0,Cr=Rn[0],Ns=0;Ns=0,tt=xe?"width":"height",u=Mn(je,{placement:mr,boundary:ii,rootBoundary:wi,altBoundary:_i,padding:ei}),ne=xe?cr?se:w:cr?U:Y;En[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[Mo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){Cr=mr,Ts=!1;break}Ps.set(mr,Ie)}if(Ts)for(var Tt=function(Li){var Zi=Rn.find(function(Yi){var tn=Ps.get(Yi);if(tn)return tn.slice(0,Li).every(function(wn){return wn})});if(Zi)return Cr=Zi,"break"},zt=yn?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==Cr&&(je.modifiersData[we]._skip=!0,je.placement=Cr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,yn=ae.tetherOffset,sn=void 0===yn?0:yn,Cn=Mn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Ln=S(je.placement),Fn=On(je.placement),vs=!Fn,Rn=Pn(Ln),En=function St(be){return"x"===be?"y":"x"}(Rn),An=je.modifiersData.popperOffsets,Ps=je.rects.reference,Ts=je.rects.popper,Cr="function"==typeof sn?sn(Object.assign({},je.rects,{placement:je.placement})):sn,Ns="number"==typeof Cr?{mainAxis:Cr,altAxis:Cr}:Object.assign({mainAxis:0,altAxis:0},Cr),mr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,Mo={x:0,y:0};if(An){if(it){var cr,xe="y"===Rn?Y:w,tt="y"===Rn?U:se,u="y"===Rn?"height":"width",ne=An[Rn],ue=ne+Cn[xe],Ie=ne-Cn[tt],nt=Ai?-Ts[u]/2:0,Tt=Fn===x?Ps[u]:Ts[u],zt=Fn===x?-Ts[u]:-Ps[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Li=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Zi=Li[xe],Yi=Li[tt],tn=Rt(0,Ps[u],oi[u]),wn=vs?Ps[u]/2-nt-tn-Zi-Ns.mainAxis:Tt-tn-Zi-Ns.mainAxis,nn=vs?-Ps[u]/2+nt+tn+Yi+Ns.mainAxis:zt+tn+Yi+Ns.mainAxis,qn=je.elements.arrow&&jn(je.elements.arrow),Ds=qn?"y"===Rn?qn.clientTop||0:qn.clientLeft||0:0,$s=null!=(cr=mr?.[Rn])?cr:0,lo=ne+nn-$s,Uo=Rt(Ai?st(ue,ne+wn-$s-Ds):ue,ne,Ai?Qe(Ie,lo):Ie);An[Rn]=Uo,Mo[Rn]=Uo-ne}if(Vt){var _c,da=An[En],du="y"===En?"height":"width",Qf=da+Cn["x"===Rn?Y:w],Jf=da-Cn["x"===Rn?U:se],Tp=-1!==[Y,w].indexOf(Ln),El=null!=(_c=mr?.[En])?_c:0,oh=Tp?Qf:da-Ps[du]-Ts[du]-El+Ns.altAxis,eg=Tp?da+Ps[du]+Ts[du]-El-Ns.altAxis:Jf,tg=Ai&&Tp?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(oh,da,eg):Rt(Ai?oh:Qf,da,Ai?eg:Jf);An[En]=tg,Mo[En]=tg-da}je.modifiersData[we]=Mo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Ut=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var wi=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:Cs(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Ut?Y:w,yn="y"===Ut?U:se,sn=ae.rects.reference[ii]+ae.rects.reference[Ut]-ft[Ut]-ae.rects.popper[ii],Cn=ft[Ut]-ae.rects.reference[Ut],Ln=jn(it),Fn=Ln?"y"===Ut?Ln.clientHeight||0:Ln.clientWidth||0:0,An=Fn/2-_i[ii]/2+(sn/2-Cn/2),Ps=Rt(wi[Ai],An,Fn-_i[ii]-wi[yn]);ae.modifiersData[we]=((je={})[Ut]=Ps,je.centerOffset=Ps-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ss(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Ut={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||di(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Ut=Lt(je,!0)).x+=je.clientLeft,Ut.y+=je.clientTop):it&&(Ut.x=ti(it))),{x:ft.left+Vt.scrollLeft-Ut.x,y:ft.top+Vt.scrollTop-Ut.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Ut=je.get(Vt);Ut&&Ne(Ut)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var er={placement:"bottom",modifiers:[],strategy:"absolute"};function is(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(wi,je.rects,it),ii},{}),Vt=ft[je.placement],ei=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=ei),je.modifiersData[we]=ft}},Hs=["*"],Ys=["dialog"];function ea(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function oc(be,je){}function Rl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,ea,1,1,"ng-template",null,0,M.C5r)(3,oc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Oc={animation:!0,transitionTimerDelayMs:5};let No=(()=>{class be{constructor(){this.animation=Oc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function _a(be){return"string"==typeof be}function ta(be){return null!=be}function wa(be){return(be||document.body).getBoundingClientRect()}function vl(be=document){const je=be?.activeElement;return je?je.shadowRoot?vl(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Oc,ia=new Map,Hr=(be,je,ae,we)=>{let Ne=we.context||{};const it=ia.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ia.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function jl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Ut=new ie.B,ei=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ia.set(je,{transition$:Vt,complete:()=>{Ut.next(),Ut.complete()},context:Ne});const ii=function Bl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const wi=(0,re.R)(je,"transitionend").pipe((0,I.Q)(ei),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(ei)),wi,Ut).pipe((0,I.Q)(ei)).subscribe(()=>{ia.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},sa=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),wa(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Hr(this._zone,this._element.nativeElement,sa,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Pr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Bo=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),cc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Zn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Zn||{});const ed=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function Ca(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const ei=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Zn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!ed(Ai,ft)&&("inside"===ae?ed(Ai,it)&&Re(Ai,Vt):"outside"===ae?!ed(Ai,it):Re(Ai,Vt)||!ed(Ai,it))}),(0,I.Q)(Ne)),wi=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([ei.pipe((0,T.T)(_i=>0)),wi.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let Jt=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Yt=/\s+/,Ii=/ +/gi,vn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},Qs=/^left/,Gl=/^right/,Hl=/^start/,Wa=/^end/;function $a({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Yt),it=we.findIndex(ei=>"auto"===ei);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(ei){null==we.find(ii=>-1!==ii.search("^"+ei))&&we.splice(it++,1,ei)});const ft=we.map(ei=>function In(be,je){const[ae,we]=vn[be];return je&&we||ae}(ei,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:ei}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),wi=ei.elements.popper,_i=ei.placement;let Ai=wi.className;Ai=Ai.replace(ii,""),Ai+=` ${function Fc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(Qs,"start").replace(Gl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Hl,"top").replace(Wa,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Ii," "),wi.className=Ai}},nr,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function Wu(be){return be}function td(){const be=(0,M.WQX)(Jt);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||Wu)($a(ae,be));je=Qr(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||Wu)($a(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function no(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Wd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),hd=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),kh=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Go=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,kh,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Mh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Wc=(()=>{class be extends Mh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Mh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(hd),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=td(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(no([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Ut,ei)=>{Ut.contains(ae.target)&&(ft=Ut),Ut===vl(this._document)&&(it=ei)}),we!==Zn.Space&&we!==Zn.Enter){if(we!==Zn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Zn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Zn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Zn.Home:it=0;break;case Zn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Ut=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Ut[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Ut[Ut.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Ut})=>{this._nativeElement.contains(Ut)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Go,5),M.wni(it,Mh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Dh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),$d=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class kl{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class rp{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Hr(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Hr(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new kl([we.rootNodes],we)}return new kl([[this._document.createTextNode(`${je}`)]])}return new kl([])}}let bc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Hr(this._zone,this._nativeElement,(ae,we)=>{we&&wa(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Hr(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Eh{update(je){}close(je){}dismiss(je){}}const Ah=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Ih=["animation","backdropClass"];class Xd{_applyWindowOptions(je,ae){Ah.forEach(we=>{ta(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Ih.forEach(we=>{ta(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function bl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Oh=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Oh||{});let Wf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":_a(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Hr(this._zone,ae,()=>ae.classList.remove("show"),we),Hr(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Hr(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&wa(it),it.classList.add("show")},ae),Hr(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Zn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Oh.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Oh.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Hr(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Ys,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),op=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(bc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Zn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Ut]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Ut.focus(),it.preventDefault()),ft===Ut&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ta(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Eh,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Ut=this._getContentRef(ae,Vt,we,ft,Ne);let ei=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Ut.nodes),wi=new Xd(ii,Ut,ei,Ne.beforeDismiss);return this._registerModalRef(wi),this._registerWindowCmpt(ii),wi.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{wi.close(_i)},ft.dismiss=_i=>{wi.dismiss(_i)},ft.update=_i=>{wi.update(_i)},wi.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),ei&&ei.instance&&ei.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),wi}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)($c,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Wf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):_a(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new kl([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new kl([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new kl([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Eh,useValue:it}],parent:ae}),Ut=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),ei=Ut.location.nativeElement;return ft.scrollable&&ei.classList.add("component-host-scrollable"),this._applicationRef.attachView(Ut.hostView),new kl([[ei]],Ut.hostView,Ut)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Lr=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(op),this._config=(0,M.WQX)($d)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Wl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[Lr]})}return be})(),Zd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let qd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(No),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Nh=0,Qd=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Rl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),Jd=(()=>{class be{constructor(){this._config=(0,M.WQX)(qd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+Nh++,this._popupService=new rp(Qd),this._windowRef=null,this._positioning=td()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(no([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function dp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function lr(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Ut=new Set,ei=[];let ii;function wi(Ai,yn){be.addEventListener(Ai,yn),ei.push(()=>be.removeEventListener(Ai,yn))}function _i(Ai,yn){clearTimeout(ii),yn>0?ii=setTimeout(Ai,yn):Ai()}for(const[Ai,yn]of Vt)yn?(wi(Ai,()=>{Ut.add(Ai),_i(()=>Ut.size>0&&we(),it)}),wi(yn,()=>{Ut.delete(Ai),_i(()=>0===Ut.size&&Ne(),ft)})):wi(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>ei.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(_a(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),Qc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ql=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ao=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),bp=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),yp=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),yc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ko=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Gh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const rh=[Sn,Pr,Bo,cc,Wd,Dh,Wl,Zd,Gh,Kl,Qc,ql,ao,bp,yp,yc,ko,th];let hu=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[rh,Sn,Pr,Bo,cc,Wd,Dh,Wl,Zd,Gh,Kl,Qc,ql,ao,bp,yp,yc,ko,th]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Qt,vr:()=>nr,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Dt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Qt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),di=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),xs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),jn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),Gn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Mi={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function _s(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Mi[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=_s(xt).toLocaleLowerCase(),this.filteredItems.find($e=>_s($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:_s(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Dt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return _s($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Dt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),ss=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=ss,Ti.value=Hi(It,ss.map(un=>un.value)),yt.push(Ti),yt.push(...ss)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let Cs=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),Mn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),Br=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),mo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const Kr=new M.nKC("ng-select-selection-model");let nr=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const ss=this.selectedItems.find(un=>un.value===Hi);this.unselect(ss)},this.trackByOption=(Hi,ss)=>this.trackByFn?this.trackByFn(ss.value):ss,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Dt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Dt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Dt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(Br),M.rXU(Kr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(mo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Qt,5,M.C4Q),M.wni($t,di,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,xs,5,M.C4Q),M.wni($t,jn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,Gn,5,M.C4Q),M.wni($t,Mn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(Cs,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,Cs,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:Kr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>En,hp:()=>Cn,FP:()=>Ai,yc:()=>ei,Tg:()=>Ut,XI:()=>Ne,bG:()=>cr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Dt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Qt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Dt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function di(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function xs(xe,tt){}function jn(xe,tt){1&xe&&e.DNE(0,xs,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function Gn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Mi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function Cs(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Mn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Br(xe,tt){}function mo(xe,tt){1&xe&&e.DNE(0,Br,0,0,"ng-template")}function Kr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,Cs,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,Mn,1,0,"ChevronDownIcon",7)(9,mo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function nr(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,nr,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,di,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,jn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,Gn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Mi,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,Kr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Qt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Li=Math.ceil((nt+Ie)/7);for(let Zi=0;Zint){let wn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:wn.month,year:wn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,wn.month,wn.year),selectable:this.isSelectable(zt-nt,wn.month,wn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Li&&this.maxDate.toDateString()===Li&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Li=ue+1{let Yi=""+Li;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Li]:Zi[Li];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Li=-1,Zi=-1,Yi=!1,wn=$s=>{let hr=ue+1{let hr=wn($s),lo="@"===$s?14:"!"===$s?20:"y"===$s&&hr?4:"o"===$s?3:2,_c=new RegExp("^\\d{"+("y"===$s?lo:1)+","+lo+"}"),Ia=u.substring(Tt).match(_c);if(!Ia)throw"Missing number at position "+Tt;return Tt+=Ia[0].length,parseInt(Ia[0],10)},qn=($s,hr,lo)=>{let Uo=-1,_c=wn($s)?lo:hr,Ia=[];for(let wr=0;wr<_c.length;wr++)Ia.push([wr,_c[wr]]);Ia.sort((wr,da)=>-(wr[1].length-da[1].length));for(let wr=0;wr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Li=1),ue=0;ue-1)for(oi=1,Li=Zi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Li<=Ie);)oi++,Li-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Li=-1===Li?1:Li),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Li)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Li)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),ss=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],rs=["*"],er=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Li,Zi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Li,"p-overlay-right-start":Zi,"p-overlay-right-end":Yi}),is=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Zr=xe=>({value:"visible",params:xe}),sr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function jr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,jr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Zr,e.sMw(7,is,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,sr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,er,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const sc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},ur=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([sc])],ngContentSelectors:rs,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(ur)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var qr=He(38757);const mn=["element"],Zo=["content"],rl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),Qr=(xe,tt)=>({$implicit:xe,options:tt}),ol=xe=>({"p-scroller-loading":xe}),al=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ll=(xe,tt)=>({rows:xe,columns:tt});function pa(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,pa,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,Qr,u.loadedItems,u.getContentOptions()))}}function bo(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bo,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,Qr,u,ue.getOptions(ne)))}}function fa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,ol,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function kr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function ga(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ga,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function qi(xe,tt){1&xe&&e.eu8(0)}function Vr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Io(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ma(xe,tt){if(1&xe&&e.DNE(0,Vr,2,5,"ng-container",6)(1,Io,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function vo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ma,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,al,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ba(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,fa,3,7,"ng-template",null,2,e.C5r)(6,kr,1,2,"div",8)(7,vo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function cl(xe,tt){1&xe&&e.eu8(0)}function Oo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cl,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,Qr,u.items,e.l_i(2,ll,u._items,u.loadedColumns)))}}function tr(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Oo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let hl=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Li=(qn=0,Ds)=>qn<=Ds?0:qn,Zi=(qn,Ds,$s)=>qn*Ds+$s,Yi=(qn=0,Ds=0)=>this.scrollTo({left:qn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,wn=!1,nn=!1;this.both?(tn={rows:Li(u[0],zt[0]),cols:Li(u[1],zt[1])},Yi(Zi(tn.cols,oi[1],ai.left),Zi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,wn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Li(u,zt),this.horizontal?Yi(Zi(tn,oi,ai.left),nt):Yi(Tt,Zi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),wn=tn!==Ie),this.isRangeChanged=wn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Li=0)=>this.scrollTo({left:oi,top:Li,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,qn)=>nn?nn>qn?nn-qn:nn:0,nt=(nn,qn)=>Math.floor(nn/(qn||nn)),Tt=(nn,qn,Ds,$s,hr,lo)=>nn<=hr?hr:lo?Ds-$s-hr:qn+hr-1,zt=(nn,qn,Ds,$s,hr,lo,Uo)=>nn<=lo?0:Math.max(0,Uo?nnqn?Ds:nn-2*lo),ai=(nn,qn,Ds,$s,hr,lo=!1)=>{let Uo=qn+$s+2*hr;return nn>=hr&&(Uo+=hr+1),this.getLast(Uo,lo)},oi=Ie(ne.scrollTop,ue.top),Li=Ie(ne.scrollLeft,ue.left);let Zi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,wn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,qn=this.lastScrollPos.left<=Li;if(!this._appendOnly||this._appendOnly&&(nn||qn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Li,this._itemSize[1])},$s={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],qn)};Zi={rows:zt(Ds.rows,$s.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,$s.cols,this.first.cols,0,0,this.d_numToleratedItems[1],qn)},Yi={rows:ai(Ds.rows,Zi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,Zi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=Zi.rows!==this.first.rows||Yi.rows!==this.last.rows||Zi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,wn={top:oi,left:Li}}}else{const nn=this.horizontal?Li:oi,qn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&qn){const Ds=nt(nn,this._itemSize);Zi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,qn),this.first,0,0,this.d_numToleratedItems,qn),Yi=ai(Ds,Zi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=Zi!==this.first||Yi!==this.last||this.isRangeChanged,wn=nn}}return{first:Zi,last:Yi,isRangeChanged:tn,scrollPos:wn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(mn,5),e.GBs(Zo,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:rl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ba,8,16,"ng-container",6)(1,tr,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,qr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),zr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,qr.N,Pe.Gg]})}return xe})(),dl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Mr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),rr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Dr=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),qo=xe=>({$implicit:xe});function va(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Po=["container"],Fa=["filter"],Ba=["focusInput"],ya=["editableInput"],Ys=["items"],Jr=["scroller"],Gr=["overlay"],eo=["firstHiddenFocusableEl"],rc=["lastHiddenFocusableEl"],Ks=xe=>({options:xe}),Dn=(xe,tt)=>({$implicit:xe,options:tt}),Lo=()=>({});function xa(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function Qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,qo,u.selectedOption))}}function yo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function ul(xe,tt){if(1&xe&&e.DNE(0,yo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Ro(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,xa,2,1,"ng-container",23)(3,Qo,1,4,"ng-container",24)(4,ul,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Qi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Jo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function bn(xe,tt){}function to(xe,tt){1&xe&&e.DNE(0,bn,0,0,"ng-template")}function Er(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,to,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Zs(xe,tt){1&xe&&e.eu8(0)}function Ar(xe,tt){1&xe&&e.eu8(0)}function or(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ar,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ks,u.filterOptions))}}function Ir(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Vn(xe,tt){}function pr(xe,tt){1&xe&&e.DNE(0,Vn,0,0,"ng-template")}function ea(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,pr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function oc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Ir,1,1,"SearchIcon",33)(4,ea,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Rl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,or,2,4,"ng-container",23)(2,oc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Yh(xe,tt){1&xe&&e.eu8(0)}function Kh(xe,tt){if(1&xe&&e.DNE(0,Yh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Dn,u,ne))}}function Dc(xe,tt){1&xe&&e.eu8(0)}function io(xe,tt){if(1&xe&&e.DNE(0,Dc,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ks,u))}}function Zh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,io,1,4,"ng-template",49),e.bVm())}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Kh,1,5,"ng-template",21)(3,Zh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Dn,ne.visibleOptions(),e.lJ4(2,Lo)))}}function Ec(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ec,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,qo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function xo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function qs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function pl(xe,tt){1&xe&&e.eu8(0,null,12)}function fl(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,qs,2,1,"ng-container",23)(2,pl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function gl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Ac(xe,tt){1&xe&&e.eu8(0,null,13)}function ac(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,gl,2,1,"ng-container",23)(2,Ac,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,xo,2,2,"ng-template",51)(3,fl,3,6,"li",52)(4,ac,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Fl(xe,tt){1&xe&&e.eu8(0)}function ml(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Zs,1,0,"ng-container",31)(4,Rl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Nl,4,10,"p-scroller",41)(7,Or,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Fl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Ic={provide:V.kq,useExisting:(0,e.Rfq)(()=>Oc),multi:!0};let lc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,va,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Dr,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,qo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Oc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Po,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(ya,5),e.GBs(Ys,5),e.GBs(Jr,5),e.GBs(Gr,5),e.GBs(eo,5),e.GBs(rc,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Ic])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Ro,6,20,"span",15)(3,Qi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Er,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,ml,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,dl,hl,ss,A.A,$,rr,lc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),No=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Mr,ve.Z,zr,un,A.A,$,rr,La,Pe.Gg,zr]})}return xe})(),Pc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Bl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ir=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Lc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),_a=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Bs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ta=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),bl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Co=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var Ca=He(22242);const wa=["input"],jl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Rc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),vl=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ia(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Hr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ia,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function na(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Hr,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function sa(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,sa,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Pi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Pi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Rc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,vl))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function Qn(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function os(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ns(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,os,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function js(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,Qn,1,2,"span",13)(2,ns,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Rc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Pr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Hn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function ui(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,ui,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Hn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Pr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,vl))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>ar),multi:!0};let ar=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Li=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Li=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Li,currencyCharIndex:Zi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=Zi>=nt?Zi-1:Li>=nt?Li:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,wn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,wn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(wa,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,na,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,js,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,jl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,Ca.S,Z._f,A.A,Co,_o],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Ta=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Ca.u,Z.tm,A.A,Co,_o,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),fr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),wo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Bo=xe=>({"p-disabled":xe}),cc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Sa(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,cc,u.paginatorState))}}function Vl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function To(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function hc(xe,tt){}function ka(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function jo(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,ka,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function yl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,To,1,1,"AngleDoubleLeftIcon",6)(2,jo,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Bo,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rn(xe,tt){}function dc(xe,tt){1&xe&&e.DNE(0,rn,0,0,"ng-template")}function xl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,dc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Vo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function uc(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Vo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function _l(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function Vs(xe,tt){1&xe&&e.eu8(0)}function pc(xe,tt){if(1&xe&&e.DNE(0,Vs,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function gr(xe,tt){1&xe&&e.DNE(0,pc,1,1,"ng-template",28)}function zs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,_l,1,1,"ng-template",26)(2,gr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function zl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function ra(xe,tt){}function Cl(xe,tt){1&xe&&e.DNE(0,ra,0,0,"ng-template")}function Ur(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Cl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Nc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function bh(xe,tt){}function qh(xe,tt){1&xe&&e.DNE(0,bh,0,0,"ng-template")}function Zn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,qh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function wl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Nc,1,1,"AngleDoubleRightIcon",6)(2,Zn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Bo,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function Qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Jh(xe,tt){1&xe&&e.eu8(0)}function Lf(xe,tt){if(1&xe&&e.DNE(0,Jh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,cc,u))}}function Hu(xe,tt){1&xe&&(e.qex(0),e.DNE(1,Lf,1,4,"ng-template",32),e.bVm())}function Uu(xe,tt){1&xe&&e.eu8(0)}function Id(xe,tt){if(1&xe&&e.DNE(0,Uu,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function ed(xe,tt){1&xe&&e.DNE(0,Id,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Hu,2,0,"ng-container",27)(2,ed,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,cc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Sa,2,5,"div",2)(2,Vl,2,1,"span",3)(3,yl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,xl,2,1,"span",7),e.k0s(),e.DNE(7,uc,2,1,"span",8)(8,zs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,zl,1,1,"AngleRightIcon",6)(11,Ur,2,1,"span",7),e.k0s(),e.DNE(12,wl,3,7,"button",11)(13,Qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Bo,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Bo,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Oc,Pe.Ei,ar,V.BC,V.vS,ve.n,ms,fr,wo,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,No,Ta,V.YN,Pe.Gg,ve.Z,ms,fr,wo,en,No,Ta,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],Jt=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Yt=(xe,tt)=>({$implicit:xe,index:tt});function Ii(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function vn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ii,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function In(xe,tt){1&xe&&e.eu8(0)}function Qs(xe,tt){if(1&xe&&e.DNE(0,In,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Yt,ne,ue))}}function Gl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,vn,4,3,"ng-container",5)(2,Qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,Jt,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Hl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Wa),multi:!0};let Wa=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Hl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Gl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),Fc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const $a=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),Wu=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),td=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function $u(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function Xu(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Od(xe,tt){}function Pd(xe,tt){1&xe&&e.DNE(0,Od,0,0,"ng-template")}function no(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Pd,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function Ld(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xu,1,2,"CheckIcon",9)(2,no,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function Yu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$u,1,2,"span",7)(2,Ld,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function Ku(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Zu(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function gm(xe,tt){}function ws(xe,tt){1&xe&&e.DNE(0,gm,0,0,"ng-template")}function id(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,ws,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function Bc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Zu,1,2,"TimesIcon",9)(2,id,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function so(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ku,1,2,"span",7)(2,Bc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Rf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,td,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const vh={provide:V.kq,useExisting:(0,e.Rfq)(()=>jc),multi:!0};let jc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([vh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,Yu,3,2,"ng-container",5)(6,so,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Rf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,$a,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,Wu,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,ir,A.A],encapsulation:2,changeDetection:0})}return xe})(),zo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,ir,A.A,Pe.Gg]})}return xe})();var Vc=He(21413);const nd=["container"],Nf=["resizeHelper"],Xa=["reorderIndicatorUp"],Rd=["reorderIndicatorDown"],Ff=["wrapper"],yh=["table"],Nd=["thead"],xh=["tfoot"],_h=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Ya=xe=>({height:xe}),an=(xe,tt)=>({$implicit:xe,options:tt}),Ch=xe=>({columns:xe}),Bf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function sd(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function jf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function fc(xe,tt){}function Ka(xe,tt){1&xe&&e.DNE(0,fc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ka,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function qu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,jf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function Qu(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,sd,1,2,"i",22)(2,qu,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function Ju(xe,tt){1&xe&&e.eu8(0)}function rd(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,Ju,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function pn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function gc(xe,tt){1&xe&&e.DNE(0,pn,1,1,"ng-template",30)}function zc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,zc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Gc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function oa(xe,tt){1&xe&&e.eu8(0)}function aa(xe,tt){if(1&xe&&e.DNE(0,oa,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,aa,1,1,"ng-template",32)}function od(xe,tt){1&xe&&e.eu8(0)}function Vf(xe,tt){if(1&xe&&e.DNE(0,od,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function mm(xe,tt){1&xe&&e.DNE(0,Vf,1,1,"ng-template",33)}function ep(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function So(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function tp(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,gc,1,0,null,16)(2,Gc,1,0,null,16)(3,Bd,1,0,null,16)(4,mm,1,0,null,16)(5,So,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Sl(xe,tt){if(1&xe&&e.DNE(0,Ma,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,an,u,ne))}}function zf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,Sl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Ya,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function jd(xe,tt){1&xe&&e.eu8(0)}function Vd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,jd,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,an,u.processedData,e.eq3(2,Ch,u.columns)))}}function ad(xe,tt){1&xe&&e.eu8(0)}function wh(xe,tt){1&xe&&e.eu8(0)}function Th(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function zd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Hc(xe,tt){1&xe&&e.eu8(0)}function Gf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Hc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Sh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,ad,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,wh,1,0,"ng-container",37),e.k0s(),e.DNE(6,Th,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,zd,1,2,"tbody",42)(9,Gf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Bf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Gd(xe,tt){1&xe&&e.eu8(0)}function ip(xe,tt){if(1&xe&&e.DNE(0,Gd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function ld(xe,tt){1&xe&&e.DNE(0,ip,1,1,"ng-template",30)}function Hd(xe,tt){1&xe&&e.eu8(0)}function Ud(xe,tt){if(1&xe&&e.DNE(0,Hd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function cd(xe,tt){1&xe&&e.DNE(0,Ud,1,1,"ng-template",31)}function Hf(xe,tt){1&xe&&e.eu8(0)}function Wr(xe,tt){if(1&xe&&e.DNE(0,Hf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function mc(xe,tt){1&xe&&e.DNE(0,Wr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function np(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Uf(xe,tt){1&xe&&e.DNE(0,np,1,1,"ng-template",33)}function sp(xe,tt){1&xe&&e.eu8(0)}function Wd(xe,tt){if(1&xe&&e.DNE(0,sp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function hd(xe,tt){1&xe&&e.DNE(0,Wd,1,1,"ng-template",34)}function kh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,ld,1,0,null,16)(2,cd,1,0,null,16)(3,mc,1,0,null,16)(4,Uf,1,0,null,16)(5,hd,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.eu8(0)}function Go(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Uc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Mh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Wc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function dd(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Dh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Wc,1,0,"ArrowDownIcon",16)(3,dd,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function $d(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function kl(xe,tt){}function rp(xe,tt){1&xe&&e.DNE(0,kl,0,0,"ng-template")}function bc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,$d,1,0,"ArrowUpIcon",16)(3,rp,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const $c=["pTableBody",""],Eh=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),Ah=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Ih=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),Xd=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Oh=(xe,tt)=>({$implicit:xe,frozen:tt});function Wf(xe,tt){1&xe&&e.eu8(0)}function op(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Lr(xe,tt){1&xe&&e.eu8(0)}function Wl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Lr,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function ap(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ap,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function $r(xe,tt){1&xe&&e.eu8(0)}function Xc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,$r,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Eh,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function lp(xe,tt){if(1&xe&&e.DNE(0,op,2,8,"ng-container",2)(1,Wl,2,8,"ng-container",0)(2,Da,2,10,"ng-container",0)(3,Xc,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function $l(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,lp,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Yc(xe,tt){1&xe&&e.eu8(0)}function Ph(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Yc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function la(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,la,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function ud(xe,tt){1&xe&&e.eu8(0)}function Kc(xe,tt){1&xe&&e.eu8(0)}function pd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Ih,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ud,1,0,"ng-container",4)(2,pd,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,Xd,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Kd(xe,tt){if(1&xe&&e.DNE(0,Ph,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zc,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Kd,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Lh(xe,tt){1&xe&&e.eu8(0)}function Rh(xe,tt){1&xe&&e.eu8(0)}function Xl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Rh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,Xd,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function Yl(xe,tt){if(1&xe&&e.DNE(0,Lh,1,0,"ng-container",4)(1,Xl,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Ih,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Yl,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Ea(xe,tt){1&xe&&e.eu8(0)}function Ho(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ea,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Oh,u.columns,u.frozen))}}function ca(xe,tt){1&xe&&e.eu8(0)}function cp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ca,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Oh,u.columns,u.frozen))}}function hp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Kl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,hp,1,1,"SortAltIcon",3)(2,Kl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function dp(xe,tt){}function qd(xe,tt){1&xe&&e.DNE(0,dp,0,0,"ng-template")}function Nh(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,qd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function Qd(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function Jd(xe,tt){1&xe&&e.eu8(0)}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function up(xe,tt){1&xe&&e.eu8(0)}function Zl(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,up,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new Vc.B;selectionSource=new Vc.B;contextMenuSource=new Vc.B;valueSource=new Vc.B;totalRecordsSource=new Vc.B;columnsSource=new Vc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Li){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Li,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=Zi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Li?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Li=this.findIndexInSelection(nt);this._selection=this.selection.filter((Zi,Yi)=>Yi!=Li),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):IeZi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Li=>{let Zi=le.BF.resolveFieldData(oi,Li.field);return Zi=null!=Zi?this.exportFunction?this.exportFunction({data:Zi,field:Li.field}):String(Zi).replace(/"/g,'""'):"",'"'+Zi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(nd,5),e.GBs(Nf,5),e.GBs(Xa,5),e.GBs(Rd,5),e.GBs(Ff,5),e.GBs(yh,5),e.GBs(Nd,5),e.GBs(xh,5),e.GBs(_h,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,Qu,3,2,"div",11)(3,rd,2,1,"div",12)(4,tp,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,zf,3,17,"p-scroller",15)(8,Vd,2,7,"ng-container",16)(9,Sh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,kh,6,24,"p-paginator",13)(12,Go,2,1,"div",17)(13,Mh,2,0,"div",18)(14,Dh,4,2,"span",19)(15,bc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,hl,Pc,Bl,qr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:$c,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,$l,2,2,"ng-container",0)(1,Zd,2,2,"ng-container",0)(2,qc,2,2,"ng-container",0)(3,Ho,2,5,"ng-container",0)(4,cp,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Ut=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),ei=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,lr,4,3,"ng-container",0)(1,Nh,2,4,"span",1)(2,Qd,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Fs,ta,Bs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),Cn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Ln=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),En=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(Cn,8),e.rXU(Ln,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,1,"ng-container",0)(1,Zl,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),cr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,Ca.u,No,V.YN,Z.tm,Fc,Hi,Ta,zo,zr,Pc,Bl,qr.N,Fs,ta,Bs,ir,Lc,Fo,_a,bl,Pe.Gg,zr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/runtime.48f94f53b806b2fe.js b/www/z4d/runtime.848b3c2fbf7395f7.js similarity index 59% rename from www/z4d/runtime.48f94f53b806b2fe.js rename to www/z4d/runtime.848b3c2fbf7395f7.js index 3574e0227..d3a83a6c0 100644 --- a/www/z4d/runtime.48f94f53b806b2fe.js +++ b/www/z4d/runtime.848b3c2fbf7395f7.js @@ -1 +1 @@ -(()=>{"use strict";var e,g={},m={};function r(e){var o=m[e];if(void 0!==o)return o.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(o,t,n,i)=>{if(!t){var a=1/0;for(f=0;f=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,i0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},(()=>{var o,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var f={};o=o||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~o.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>f[l]=()=>t[l]);return f.default=()=>t,r.d(i,f),i}})(),r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((o,t)=>(r.f[t](e,o),o),[])),r.u=e=>(76===e?"common":e)+"."+{12:"7c65ce0f2e107a01",76:"481b903deeb9dee7",317:"95ec4836cce099fe",521:"4a2e700ea1ed6d2d",577:"291f6dcdf5a2bbd5",644:"e5bbcc7e1d18b79d",837:"657d2f41ff2a0f41",846:"b75ced3ca2bc41c3",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={},o="z4d-plugin:";r.l=(t,n,i,f)=>{if(e[t])e[t].push(n);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),u=0;u{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:o=>o},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var f=r.o(e,n)?e[n]:void 0;if(0!==f)if(f)i.push(f[2]);else if(121!=n){var a=new Promise((c,s)=>f=e[n]=[c,s]);i.push(f[2]=a);var l=r.p+r.u(n),d=new Error;r.l(l,c=>{if(r.o(e,n)&&(0!==(f=e[n])&&(e[n]=void 0),f)){var s=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,f[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var o=(n,i)=>{var d,u,[f,a,l]=i,c=0;if(f.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var s=l(r)}for(n&&n(i);c{"use strict";var e,g={},m={};function r(e){var o=m[e];if(void 0!==o)return o.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(o,t,n,i)=>{if(!t){var a=1/0;for(f=0;f=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(c=!1,i0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},(()=>{var o,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var f={};o=o||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~o.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(c=>f[c]=()=>t[c]);return f.default=()=>t,r.d(i,f),i}})(),r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((o,t)=>(r.f[t](e,o),o),[])),r.u=e=>(76===e?"common":e)+"."+{12:"9d3b53b1dced2927",76:"481b903deeb9dee7",317:"388031fbd5f6515c",521:"4a2e700ea1ed6d2d",577:"b613e50ce344a936",644:"e5bbcc7e1d18b79d",837:"e9d5b18d020927e4",846:"e10721e2f1184a6d",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={},o="z4d-plugin:";r.l=(t,n,i,f)=>{if(e[t])e[t].push(n);else{var a,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),l=0;l{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:o=>o},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var f=r.o(e,n)?e[n]:void 0;if(0!==f)if(f)i.push(f[2]);else if(121!=n){var a=new Promise((u,s)=>f=e[n]=[u,s]);i.push(f[2]=a);var c=r.p+r.u(n),d=new Error;r.l(c,u=>{if(r.o(e,n)&&(0!==(f=e[n])&&(e[n]=void 0),f)){var s=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,f[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var o=(n,i)=>{var d,l,[f,a,c]=i,u=0;if(f.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(c)var s=c(r)}for(n&&n(i);u Date: Sun, 14 Apr 2024 10:04:31 +0200 Subject: [PATCH 210/301] Plugin wip-develop version 7.2.065 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index ea96cb1b7..5cea64687 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.064"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.065"} \ No newline at end of file From 5d5799de22b62512be2c436af4af5101dbbb54f9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 14 Apr 2024 10:14:45 +0200 Subject: [PATCH 211/301] dnspython from 2.3.0 to 2.6.1 --- constraints.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/constraints.txt b/constraints.txt index 767ce9167..15dadb7a2 100644 --- a/constraints.txt +++ b/constraints.txt @@ -3,7 +3,7 @@ zigpy==0.63.5 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 -dnspython==2.3.0 +dnspython==2.6.1 pyserial>=3.5 charset-normalizer==2.0.11 jsonschema==4.17.3 From 3e455025e5f746601a843f94b215a98c79a77325 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 14 Apr 2024 10:15:59 +0200 Subject: [PATCH 212/301] Plugin wip-develop version 7.2.066 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 5cea64687..375ede076 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.065"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.066"} \ No newline at end of file From 52f03038f65480e1f522734dcbcdef30f2fb0bcf Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 14 Apr 2024 17:10:03 +0200 Subject: [PATCH 213/301] Adding more sensors --- Modules/domoCreate.py | 7 +++++++ Modules/domoMaj.py | 26 +++++++++++++++++++++++++ Modules/domoTools.py | 7 ++++++- Modules/tuyaTS0601.py | 45 +++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 82 insertions(+), 3 deletions(-) diff --git a/Modules/domoCreate.py b/Modules/domoCreate.py index 42328d946..356af25fc 100644 --- a/Modules/domoCreate.py +++ b/Modules/domoCreate.py @@ -787,6 +787,13 @@ def set_default_value( self, Devices, device_id_ieee, device_unit, widget_record "widgetType": "Custom", "Options": "1;ppm" }, + + "phMeter": { "widgetType": "Custom", "Options": "1;ph" }, + "ec": { "widgetType": "Custom", "Options": "1;µS/cm" }, + "orp": { "widgetType": "Custom", "Options": "1;mV" }, + "freeChlorine": { "widgetType": "Custom", "Options": "1;mg/L" }, + "salinity": { "widgetType": "Custom", "Options": "1;ppm" }, + "Strength": { "Type": 243, "Subtype": 31 diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index 22decffa6..54bc8a696 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -723,6 +723,32 @@ def _domo_maj_one_cluster_type_entry( self, Devices, NwkId, Ep, device_id_ieee, svalue = "%s" % (nvalue,) update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + if ClusterType == "phMeter" and WidgetType == "phMeter": + nvalue = int(value) + svalue = "%s" % (nvalue,) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + + if ClusterType == "ec" and WidgetType == "ec": + nvalue = int(value) + svalue = "%s" % (nvalue,) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + + if ClusterType == "orp" and WidgetType == "orp": + nvalue = int(value) + svalue = "%s" % (nvalue,) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + + if ClusterType == "freeChlorine" and WidgetType == "freeChlorine": + nvalue = int(value) + svalue = "%s" % (nvalue,) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + + if ClusterType == "salinity" and WidgetType == "salinity": + nvalue = int(value) + svalue = "%s" % (nvalue,) + update_domoticz_widget(self, Devices, device_id_ieee, device_unit, nvalue, svalue, BatteryLevel, SignalLevel) + + if ClusterType == "Alarm" and WidgetType == "AirPurifierAlarm": nValue = 0 sValue = "%s %% used" %( value, ) diff --git a/Modules/domoTools.py b/Modules/domoTools.py index c2ce228d3..9595f9d0f 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -483,7 +483,12 @@ def GetType(self, Addr, Ep): "Distance": "Distance", "TamperSwitch": "TamperSwitch", "Notification": "Notification", - "PWFactor": "PWFactor" + "PWFactor": "PWFactor", + "phMeter": "phMeter", + "ec": "ec", + "orp": "orp", + "freeChlorine": "freeChlorine", + "salinity": "salinity", } def TypeFromCluster(self, cluster, create_=False, ProfileID_="", ZDeviceID_="", ModelName=""): diff --git a/Modules/tuyaTS0601.py b/Modules/tuyaTS0601.py index 1c290b515..06d600e10 100644 --- a/Modules/tuyaTS0601.py +++ b/Modules/tuyaTS0601.py @@ -471,16 +471,49 @@ def ts0601_windowdetection(self, Devices, nwkid, ep, value): MajDomoDevice(self, Devices, nwkid, ep, "0500", value) store_tuya_attribute(self, nwkid, "OpenWindow", value) + def ts0601_smoke_detection(self, Devices, nwkid, ep, value): self.log.logging("Tuya0601", "Debug", "ts0601_smoke_detection - Nwkid: %s/%s Smoke State: %s" % (nwkid, ep, value)) store_tuya_attribute(self, nwkid, "SmokeState", value) MajDomoDevice(self, Devices, nwkid, ep, "0500", value) + def ts0601_smoke_concentration(self, Devices, nwkid, ep, value): self.log.logging("Tuya0601", "Debug", "ts0601_smoke_concentration - Nwkid: %s/%s Smoke Concentration: %s" % (nwkid, ep, value)) store_tuya_attribute(self, nwkid, "SmokePPM", value) MajDomoDevice(self, Devices, nwkid, ep, "042a", value) + +def ts0601_phMeter(self, Devices, nwkid, ep, value): + self.log.logging("Tuya0601", "Debug", "ts0601_phMeter - Nwkid: %s/%s Smoke Concentration: %s" % (nwkid, ep, value)) + store_tuya_attribute(self, nwkid, "phMeter", value) + MajDomoDevice(self, Devices, nwkid, ep, "phMeter", value) + + +def ts0601_ec(self, Devices, nwkid, ep, value): + self.log.logging("Tuya0601", "Debug", "ts0601_ec - Nwkid: %s/%s Smoke Concentration: %s" % (nwkid, ep, value)) + store_tuya_attribute(self, nwkid, "Electric Conductivity", value) + MajDomoDevice(self, Devices, nwkid, ep, "ec", value) + + +def ts0601_orp(self, Devices, nwkid, ep, value): + self.log.logging("Tuya0601", "Debug", "ts0601_orp - Nwkid: %s/%s Smoke Concentration: %s" % (nwkid, ep, value)) + store_tuya_attribute(self, nwkid, "Oxidation Reduction Potential", value) + MajDomoDevice(self, Devices, nwkid, ep, "orp", value) + + +def ts0601_freeChlorine(self, Devices, nwkid, ep, value): + self.log.logging("Tuya0601", "Debug", "ts0601_freeChlorine - Nwkid: %s/%s Smoke Concentration: %s" % (nwkid, ep, value)) + store_tuya_attribute(self, nwkid, "Free chlorine", value) + MajDomoDevice(self, Devices, nwkid, ep, "freeChlorine", value) + + +def ts0601_salinity(self, Devices, nwkid, ep, value): + self.log.logging("Tuya0601", "Debug", "ts0601_salinity - Nwkid: %s/%s Smoke Concentration: %s" % (nwkid, ep, value)) + store_tuya_attribute(self, nwkid, "Salt", value) + MajDomoDevice(self, Devices, nwkid, ep, "salinity", value) + + def ts0601_water_consumption(self, Devices, nwkid, ep, value): self.log.logging("Tuya0601", "Debug", "ts0601_water_consumption - Nwkid: %s/%s WaterConsumtpion: %s" % (nwkid, ep, value)) store_tuya_attribute(self, nwkid, "WaterConsumtpion", value) @@ -492,11 +525,13 @@ def ts0601_water_consumption(self, Devices, nwkid, ep, value): # The volume (or counter) of the day (in the top right corner). MajDomoDevice(self, Devices, nwkid, ep, "WaterCounter", value) + def ts0601_sensor_irrigation_mode(self, Devices, nwkid, ep, value): self.log.logging("Tuya0601", "Debug", "ts0601_sensor_irrigation_mode - Nwkid: %s/%s Mode: %s" % (nwkid, ep, value)) store_tuya_attribute(self, nwkid, "Mode", value) MajDomoDevice(self, Devices, nwkid, ep, "0008", value) - + + DP_SENSOR_FUNCTION = { "motion": ts0601_motion, "illuminance": ts0601_illuminance, @@ -536,7 +571,13 @@ def ts0601_sensor_irrigation_mode(self, Devices, nwkid, ep, value): "smoke_ppm": ts0601_smoke_concentration, "water_consumption": ts0601_water_consumption, "power_factor": ts0601_power_factor, - "presence_state": ts0601_tuya_presence_state + "presence_state": ts0601_tuya_presence_state, + "phMeter": ts0601_phMeter, + "ec": ts0601_ec, + "orp": ts0601_orp, + "freeChlorine": ts0601_freeChlorine, + "salinity": ts0601_salinity + } def ts0601_tuya_cmd(self, NwkId, Ep, action, data): From 9c27c5d341ceddbada6d4f502e9b95090357e13b Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sun, 14 Apr 2024 18:18:46 +0200 Subject: [PATCH 214/301] [zigpy] - In case of zigpy connection lost, restart the plugin (#1732) * check python modules version only if Internet Access allowed * Call back to restart plugin in case of zigpy connectin lost --- Classes/ZigpyTransport/AppBellows.py | 17 ++++++++--- Classes/ZigpyTransport/AppDeconz.py | 13 +++++++- Classes/ZigpyTransport/AppGeneric.py | 44 +++++++++++++++++++++------ Classes/ZigpyTransport/AppZnp.py | 19 ++++++++---- Classes/ZigpyTransport/Transport.py | 3 +- Classes/ZigpyTransport/zigpyThread.py | 2 +- Modules/pluginHelpers.py | 39 ++++++++---------------- plugin.py | 29 +++++++++++++----- 8 files changed, 109 insertions(+), 57 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 6623f99d9..beaee707f 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -4,7 +4,6 @@ # Author: deufo, badz & pipiche38 # -import collections import logging import bellows.config as bellows_conf @@ -49,7 +48,9 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) LOGGER.info("EZSP Configuration: %s", self.config) - async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + """Starts a network, optionally forming one with random settings if necessary.""" + # If set to != 0 (default) extended PanId will be use when forming the network. # If set to !=0 (default) channel will be use when formin the network self.log = log @@ -59,17 +60,18 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call self.callBackGetDevice = callBackGetDevice self.callBackUpdDevice = callBackUpdDevice self.callBackBackup = callBackBackup + self.callBackRestartPlugin = callBackRestartPlugin self.HardwareID = HardwareID self.captureRxFrame = captureRxFrame self.use_of_zigpy_persistent_db = use_of_zigpy_persistent_db - """ - Starts a network, optionally forming one with random settings if necessary. - """ + self.shutting_down = False + self.restarting = False try: await self.connect() await self.initialize(auto_form=True, force_form=force_form) + except Exception as e: LOGGER.error("Couldn't start application", exc_info=e) await self.shutdown() @@ -117,6 +119,11 @@ async def shutdown(self) -> None: await Classes.ZigpyTransport.AppGeneric.shutdown(self) + def connection_lost(self, exc: Exception) -> None: + """Handle connection lost event.""" + Classes.ZigpyTransport.AppGeneric.connection_lost(self, exc) + + async def register_endpoints(self, endpoint=1): # Only needed if the device require simple node descriptor from the coordinator self.log.logging("TransportZigpy", "Status", "Bellows Radio register default Ep") diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index f8962f5de..587f42a52 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -46,7 +46,9 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) LOGGER.info("deCONZ Configuration: %s", self.config) - async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + """Starts a network, optionally forming one with random settings if necessary.""" + self.log = log self.pluginconf = pluginconf self.permit_to_join_timer = permit_to_join_timer @@ -54,10 +56,14 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call self.callBackGetDevice = callBackGetDevice self.callBackUpdDevice = callBackUpdDevice self.callBackBackup = callBackBackup + self.callBackRestartPlugin = callBackRestartPlugin self.HardwareID = HardwareID self.captureRxFrame = captureRxFrame self.use_of_zigpy_persistent_db = use_of_zigpy_persistent_db + self.shutting_down = False + self.restarting = False + await asyncio.sleep( 3 ) try: @@ -99,6 +105,11 @@ async def shutdown(self) -> None: await Classes.ZigpyTransport.AppGeneric.shutdown(self) + def connection_lost(self, exc: Exception) -> None: + """Handle connection lost event.""" + Classes.ZigpyTransport.AppGeneric.connection_lost(self, exc) + + async def register_endpoints(self): """ Registers all necessary endpoints. diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 1149b9800..60eb23a32 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -164,9 +164,9 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) async def shutdown(self) -> None: """Shutdown controller.""" LOGGER.info("Zigpy shutdown") + self.shutting_down = True - if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: - self.callBackBackup(await self.backups.create_backup(load_devices=True)) + await _create_backup(self) # Cancel watchdog task if it exists if self._watchdog_task is not None: @@ -184,22 +184,50 @@ async def shutdown(self) -> None: if self.topology is not None: self.topology.stop_periodic_scans() + await _disconnect(self) + await _shutdown_db_listeners(self) + + +async def _create_backup(self) -> None: + """ Create a coordinator backup""" + try: + if self.config[zigpy_conf.CONF_NWK_BACKUP_ENABLED]: + self.callBackBackup(await self.backups.create_backup(load_devices=True)) + except Exception: + LOGGER.warning("Failed to create backup", exc_info=False) + + +async def _disconnect(self) -> None: + """ disconect from the radio""" try: await self.disconnect() except Exception: - LOGGER.warning("Failed to disconnect from radio", exc_info=True) - - await asyncio.sleep( 1 ) + LOGGER.warning("Failed to disconnect from radio", exc_info=True) + finally: + await asyncio.sleep(1) + +async def _shutdown_db_listeners(self) -> None: + """ shutdown the database listener""" if self._dblistener is not None: - self._remove_db_listeners() - try: + self._remove_db_listeners() await self._dblistener.shutdown() except Exception: LOGGER.warning("Failed to disconnect from database", exc_info=True) +def connection_lost(self, exc: Exception) -> None: + """Handle connection lost event.""" + LOGGER.warning("Connection to the radio was lost: %r", exc) + + if self.shutting_down or self.restarting: + return + + self.restarting = True + self.callBackRestartPlugin() + + def _retreive_previous_backup(self): _retreived_backup = None if "autoRestore" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoRestore"]: @@ -304,7 +332,6 @@ def handle_leave(self, nwk, ieee): self.callBackFunction(plugin_frame) - def handle_relays(self, nwk, relays) -> None: self.log.logging("TransportZigpy", "Debug","handle_relays (0x%04x %s)" %(nwk, str(relays))) """Called when a list of relaying devices is received.""" @@ -507,4 +534,3 @@ def scan_channel( self, scan_result ): def is_zigpy_topology_in_progress(self): zigpy_topology = self.topology return zigpy_topology._scan_task is not None and not zigpy_topology._scan_task.done() - diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 2d55ad90c..3da3d5ac7 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -49,7 +49,9 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) LOGGER.info("ZNP Configuration: %s", self.config) - async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + """Starts a network, optionally forming one with random settings if necessary.""" + # If set to != 0 (default) extended PanId will be use when forming the network. # If set to !=0 (default) channel will be use when formin the network self.log = log @@ -59,17 +61,17 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call self.callBackUpdDevice = callBackUpdDevice self.callBackGetDevice = callBackGetDevice self.callBackBackup = callBackBackup + self.callBackRestartPlugin = callBackRestartPlugin self.HardwareID = HardwareID self.captureRxFrame = captureRxFrame self.use_of_zigpy_persistent_db = use_of_zigpy_persistent_db - + + self.shutting_down = False + self.restarting = False + # Pipiche : 24-Oct-2022 Disabling CONF_MAX_CONCURRENT_REQUESTS so the default will be used ( 16 ) # self.znp_config[znp_conf.CONF_MAX_CONCURRENT_REQUESTS] = 2 - """ - Starts a network, optionally forming one with random settings if necessary. - """ - try: await self.connect() await self.initialize(auto_form=True, force_form=force_form) @@ -103,6 +105,11 @@ async def shutdown(self) -> None: await Classes.ZigpyTransport.AppGeneric.shutdown(self) + def connection_lost(self, exc: Exception) -> None: + """Handle connection lost event.""" + Classes.ZigpyTransport.AppGeneric.connection_lost(self, exc) + + async def register_endpoints(self): self.log.logging("TransportZigpy", "Status", "ZNP Radio register default Ep") await super().register_endpoints() diff --git a/Classes/ZigpyTransport/Transport.py b/Classes/ZigpyTransport/Transport.py index 37ddcc8d1..cb0edb209 100644 --- a/Classes/ZigpyTransport/Transport.py +++ b/Classes/ZigpyTransport/Transport.py @@ -21,7 +21,7 @@ class ZigpyTransport(object): - def __init__(self, ControllerData, pluginParameters, pluginconf, F_out, zigpy_upd_device, zigpy_get_device, zigpy_backup_available, log, statistics, hardwareid, radiomodule, serialPort): + def __init__(self, ControllerData, pluginParameters, pluginconf, F_out, zigpy_upd_device, zigpy_get_device, zigpy_backup_available, restart_plugin, log, statistics, hardwareid, radiomodule, serialPort): self.zigbee_communication = "zigpy" self.pluginParameters = pluginParameters self.pluginconf = pluginconf @@ -29,6 +29,7 @@ def __init__(self, ControllerData, pluginParameters, pluginconf, F_out, zigpy_up self.ZigpyUpdDevice = zigpy_upd_device self.ZigpyGetDevice = zigpy_get_device self.ZigpyBackupAvailable = zigpy_backup_available + self.restart_plugin = restart_plugin self.log = log self.statistics = statistics self.hardwareid = hardwareid diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index c92244191..76673d041 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -328,6 +328,7 @@ async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_netwo callBackUpdDevice=self.ZigpyUpdDevice, callBackGetDevice=self.ZigpyGetDevice, callBackBackup=self.ZigpyBackupAvailable, + callBackRestartPlugin=self.restart_plugin, captureRxFrame=self.captureRxFrame, auto_form=True, force_form=new_network, @@ -497,7 +498,6 @@ async def dispatch_command(self, data): self.manual_topology_scan_task = asyncio.create_task( self.app.start_topology_scan(), name="ZIGPY-TOPOLOGY-SCAN") - async def _permit_to_joint(self, data): log = self.log radiomodule = self._radiomodule diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index 90b1cae34..c15b60d99 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -117,19 +117,22 @@ def _domoticz_not_compatible(self): return False -def check_python_modules_version( self ): - flag = True +def check_python_modules_version(self): + if self.pluginconf.pluginConf["internetAccess"]: + return True + + for module, expected_version in MODULES_VERSION.items(): + current_version = importlib.metadata.version(module) + if current_version != expected_version: + self.log.logging("Plugin", "Error", "The Python module %s version %s loaded is not compatible. Expected version: %s" % ( + module, current_version, expected_version)) + return False - for x in MODULES_VERSION: - if importlib.metadata.version( x ) != MODULES_VERSION[ x]: - self.log.logging("Plugin", "Error", "The python module %s version %s loaded is not compatible as we are expecting this level %s" %( - x, importlib.metadata.version( x ), MODULES_VERSION[ x] )) - flag = False - - return flag + return True def check_requirements(home_folder): + requirements_file = Path(home_folder) / "requirements.txt" Domoticz.Status("Checking Python modules %s" % requirements_file) @@ -177,24 +180,6 @@ def check_requirements(home_folder): return False -#def list_all_modules_loaded(self): -# # Get a list of installed packages and their versions -# installed_packages = {pkg.key: pkg.version for pkg in pkg_resources.working_set} -# -# # Get a list of modules imported by the main script -# main_modules = set(sys.modules.keys()) -# -# # Combine the lists -# all_modules = set(installed_packages.keys()) | main_modules -# -# # Print the list of modules and their versions -# self.log.logging("Plugin", "Log", "=============================") -# for module_name in sorted(all_modules): -# version = installed_packages.get(module_name, "Not installed") -# self.log.logging("Plugin", "Log", f"{module_name}: {version}") -# self.log.logging("Plugin", "Log", "=============================") -# - def list_all_modules_loaded(self): # Get a list of modules imported by the main script main_modules = set(sys.modules.keys()) diff --git a/plugin.py b/plugin.py index b17557fd0..f66d7f344 100644 --- a/plugin.py +++ b/plugin.py @@ -309,10 +309,6 @@ def onStart(self): _current_python_version_major, _current_python_version_minor)) assert sys.version_info >= (3, 8) # nosec - - if check_requirements( Parameters[ "HomeFolder"] ): - self.onStop() - return if Parameters["Mode1"] == "V1" and Parameters["Mode2"] in ( "USB", "DIN", "PI", "Wifi", ): self.transport = Parameters["Mode2"] @@ -390,6 +386,11 @@ def onStart(self): self.zigbee_communication, self.VersionNewFashion, self.DomoticzMajor, self.DomoticzMinor, Parameters["HomeFolder"], self.HardwareID ) + if self.pluginconf.pluginConf["internetAccess"]: + if check_requirements( Parameters[ "HomeFolder"] ): + self.onStop() + return + #if self.pluginconf.pluginConf["Garbage"]: # # Enable the cycle detector # Domoticz.Log("Setup Garbage set_debug to %s" %gc.DEBUG_LEAK) @@ -791,6 +792,14 @@ def zigpy_get_device(self, ieee=None, nwkid=None): def zigpy_backup_available(self, backups): handle_zigpy_backup(self, backups) + + def restart_plugin(self): + """ This is used as a call back function for zigpy connection_lost handling""" + error_message = "Connection lost with coordinator, restarting plugin" + self.log.logging("Plugin", "Error", error_message) + self.adminWidgets.updateNotificationWidget(Devices, error_message) + restartPluginViaDomoticzJsonApi(self, stop=False, url_base_api=Parameters["Mode5"]) + #def onCommand(self, DeviceID, Unit, Command, Level, Color): def onCommand(self, Unit, Command, Level, Color): if ( self.ControllerLink is None or not self.VersionNewFashion or self.pluginconf is None or not self.log ): @@ -1062,7 +1071,9 @@ def _start_zigpy_ZNP(self): self.pluginParameters["Zigpy"] = True self.log.logging("Plugin", "Status", "Start Zigpy Transport on ZNP") - self.ControllerLink= ZigpyTransport( self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.log, self.statistics, self.HardwareID, "znp", Parameters["SerialPort"]) + self.ControllerLink= ZigpyTransport( + self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.restart_plugin, self.log, self.statistics, self.HardwareID, "znp", Parameters["SerialPort"] + ) self.ControllerLink.open_cie_connection() self.pluginconf.pluginConf["ControllerInRawMode"] = True @@ -1080,7 +1091,9 @@ def _start_zigpy_deConz(self): check_python_modules_version( self ) self.pluginParameters["Zigpy"] = True self.log.logging("Plugin", "Status","Start Zigpy Transport on deCONZ") - self.ControllerLink= ZigpyTransport( self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.log, self.statistics, self.HardwareID, "deCONZ", Parameters["SerialPort"]) + self.ControllerLink= ZigpyTransport( + self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.restart_plugin, self.log, self.statistics, self.HardwareID, "deCONZ", Parameters["SerialPort"] + ) self.ControllerLink.open_cie_connection() self.pluginconf.pluginConf["ControllerInRawMode"] = True @@ -1108,7 +1121,9 @@ def _start_zigpy_EZSP(self): SerialPort = Parameters["SerialPort"] - self.ControllerLink= ZigpyTransport( self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.log, self.statistics, self.HardwareID, "ezsp", SerialPort) + self.ControllerLink= ZigpyTransport( + self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.restart_plugin, self.log, self.statistics, self.HardwareID, "ezsp", SerialPort + ) self.ControllerLink.open_cie_connection() self.pluginconf.pluginConf["ControllerInRawMode"] = True From bae388021ea918433f2ad9298684dadae57017cd Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 14 Apr 2024 18:19:06 +0200 Subject: [PATCH 215/301] Plugin wip-develop version 7.2.067 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 375ede076..1707eb187 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.066"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.067"} \ No newline at end of file From 6866cc75ef6c1e8c07fd65be15cf0b75b875cef3 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 14 Apr 2024 18:27:48 +0200 Subject: [PATCH 216/301] update --- ReleaseNotes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index ec52fba28..85f9fd0b0 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -32,10 +32,13 @@ Release Numbering - [Technical] - datetime.utcnow() deprecated, use a new way. - [Technical] - disable OTA in zigpy radio libs. - [Technical] - Several refactoring, code simplification +- [Technical] - Automatically restart plugin in case of connection lost with coordination (zigpy) +- [Technical] - Add Tuya sensors for Pool sensors ( PhMeter, EC, OPR, Salinity) - [WebUI] - New API to get the list of device settings parameters (/device-settings-help) - [WebUI] - Provides color status of device parameters sync. - [WebUI] - AngularJS 17 upgrade +- [WebUI] - Cookie to manage the number of devices to be displayed in Device Management ## March 2024 - stable7.1.011 ( 2024.03.1) From 4f5512641b39bfab40466171e80cfcd4283878b3 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 15 Apr 2024 19:58:30 +0200 Subject: [PATCH 217/301] retreive RSSI from zigpy layer and store it ( #1728) --- Classes/ZigpyTransport/AppBellows.py | 17 +++++++++--- Classes/ZigpyTransport/AppDeconz.py | 15 +++++++++-- Classes/ZigpyTransport/AppGeneric.py | 39 ++++++++++++++++++---------- Classes/ZigpyTransport/AppZnp.py | 14 ++++++++-- Modules/tools.py | 18 +++++++++++++ Zigbee/decode8002.py | 23 ++++++++++++---- 6 files changed, 100 insertions(+), 26 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index beaee707f..fa09f6c85 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -1,8 +1,14 @@ -#!/usr/bin/env python3btt. -# coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: deufo, badz & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: badz & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import logging @@ -261,6 +267,7 @@ def get_topology(self): return self.topology.neighbors, self.topology.routes + def is_zigpy_topology_in_progress(self): return Classes.ZigpyTransport.AppGeneric.is_zigpy_topology_in_progress(self) @@ -269,6 +276,10 @@ async def start_topology_scan(self): await self.topology.scan() + def get_device_rssi(self, z4d_ieee=None, z4d_nwk=None): + return Classes.ZigpyTransport.AppGeneric.get_device_rssi(self, z4d_ieee, z4d_nwk) + + def is_bellows(self): return True diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 587f42a52..4b47c4639 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: badz & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: badz & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + import asyncio import logging @@ -259,6 +266,10 @@ def is_zigpy_topology_in_progress(self): return Classes.ZigpyTransport.AppGeneric.is_zigpy_topology_in_progress(self) + def get_device_rssi(self, z4d_ieee=None, z4d_nwk=None): + return Classes.ZigpyTransport.AppGeneric.get_device_rssi(self, z4d_ieee, z4d_nwk) + + async def start_topology_scan(self): await self.topology.scan() diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 60eb23a32..ea8c84b43 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -6,7 +6,7 @@ # This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee # (C) 2015-2024 # -# Initial authors: zaraki673 & pipiche38 & badz +# Initial authors: badz & pipiche38 & badz # # SPDX-License-Identifier: GPL-3.0 license @@ -25,7 +25,7 @@ import zigpy.const as const import zigpy.device import zigpy.exceptions -import zigpy.types as t +import zigpy.types as zigpy_t import zigpy.zdo import zigpy.zdo.types as zdo_types from zigpy.backups import NetworkBackup @@ -145,7 +145,7 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) if self.config[zigpy_conf.CONF_STARTUP_ENERGY_SCAN]: # Each scan period is 15.36ms. Scan for at least 200ms (2^4 + 1 periods) to # pick up WiFi beacon frames. - results = await self.energy_scan( channels=t.Channels.ALL_CHANNELS, duration_exp=4, count=1 ) + results = await self.energy_scan( channels=zigpy_t.Channels.ALL_CHANNELS, duration_exp=4, count=1 ) if results[self.state.network_info.channel] > ENERGY_SCAN_WARN_THRESHOLD: self.log.logging("TransportZigpy", "Error", "WARNING - Zigbee channel %s utilization is %0.2f%%!" %( @@ -265,11 +265,11 @@ def get_device(self, ieee=None, nwk=None): if nwk is not None: nwk = nwk.serialize()[::-1].hex() if ieee is not None: - ieee = "%016x" % t.uint64_t.deserialize(ieee.serialize())[0] + ieee = "%016x" % zigpy_t.uint64_t.deserialize(ieee.serialize())[0] zfd_dev = self.callBackGetDevice(ieee, nwk) if zfd_dev is not None: (nwk, ieee) = zfd_dev - dev = self.add_device(t.EUI64(t.uint64_t(ieee).serialize()),nwk) + dev = self.add_device(zigpy_t.EUI64(zigpy_t.uint64_t(ieee).serialize()),nwk) if dev is not None: return dev @@ -278,7 +278,7 @@ def get_device(self, ieee=None, nwk=None): raise KeyError -def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK) -> None: +def handle_join(self, nwk: zigpy_t.NWK, ieee: zigpy_t.EUI64, parent_nwk: zigpy_t.NWK) -> None: """ Called when a device joins or announces itself on the network. """ @@ -289,7 +289,7 @@ def handle_join(self, nwk: t.NWK, ieee: t.EUI64, parent_nwk: t.NWK) -> None: self.log.logging("TransportZigpy", "Log", "ignoring invalid neighbor: %s" %ieee) return - ieee = t.EUI64(ieee) + ieee = zigpy_t.EUI64(ieee) try: dev = self.get_device(ieee) time.sleep(1.0) @@ -321,7 +321,7 @@ def get_device_ieee(self, nwk): return None if dev.ieee: - return "%016x" % t.uint64_t.deserialize(dev.ieee.serialize())[0] + return "%016x" % zigpy_t.uint64_t.deserialize(dev.ieee.serialize())[0] return None @@ -340,7 +340,7 @@ def handle_relays(self, nwk, relays) -> None: def packet_received( self, - packet: t.ZigbeePacket + packet: zigpy_t.ZigbeePacket ) -> None: """Notify zigpy of a received Zigbee packet.""" @@ -404,7 +404,7 @@ def packet_received( def _update_nkdids_if_needed( self, ieee, new_nwkid ): if not isinstance(self, ZigpyTransport): return - _ieee = "%016x" % t.uint64_t.deserialize(ieee.serialize())[0] + _ieee = "%016x" % zigpy_t.uint64_t.deserialize(ieee.serialize())[0] _nwk = new_nwkid.serialize()[::-1].hex() self.callBackUpdDevice(_ieee, _nwk) @@ -414,13 +414,13 @@ def get_zigpy_version(self): LOGGER.debug("get_zigpy_version ake version number. !!") return self.version -def get_device_with_address( self, address: t.AddrModeAddress ) -> zigpy.device.Device: +def get_device_with_address( self, address: zigpy_t.AddrModeAddress ) -> zigpy.device.Device: """Gets a `Device` object using the provided address mode address.""" - if address.addr_mode == t.AddrMode.NWK: + if address.addr_mode == zigpy_t.AddrMode.NWK: return self.get_device(nwk=address.address) - elif address.addr_mode == t.AddrMode.IEEE: + elif address.addr_mode == zigpy_t.AddrMode.IEEE: return self.get_device(ieee=address.address) else: @@ -472,7 +472,7 @@ async def network_interference_scan(self): # Each scan period is 15.36ms. Scan for at least 200ms (2^4 + 1 periods) to # pick up WiFi beacon frames. - results = await self.energy_scan( channels=t.Channels.ALL_CHANNELS, duration_exp=4, count=1 ) + results = await self.energy_scan( channels=zigpy_t.Channels.ALL_CHANNELS, duration_exp=4, count=1 ) self.log.logging( "NetworkEnergy", "Debug", "Network Energly Level Report: %s" % results) @@ -534,3 +534,14 @@ def scan_channel( self, scan_result ): def is_zigpy_topology_in_progress(self): zigpy_topology = self.topology return zigpy_topology._scan_task is not None and not zigpy_topology._scan_task.done() + + +def get_device_rssi(self, z4d_ieee=None, z4d_nwk=None): + """ retreive RSSI of the device nwk or ieee """ + + try: + nwk = zigpy_t.NWK.convert(z4d_nwk) + dev = super(type(self),self).get_device(None, nwk) + return dev.rssi + except KeyError: + return None diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 3da3d5ac7..921230cd7 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: badz & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: badz & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import logging @@ -226,6 +232,10 @@ async def start_topology_scan(self): await self.topology.scan() + def get_device_rssi(self, z4d_ieee=None, z4d_nwk=None): + return Classes.ZigpyTransport.AppGeneric.get_device_rssi(self, z4d_ieee, z4d_nwk) + + def is_bellows(self): return False diff --git a/Modules/tools.py b/Modules/tools.py index 4fadd7dd3..51a54fcdc 100644 --- a/Modules/tools.py +++ b/Modules/tools.py @@ -482,6 +482,24 @@ def updLQI(self, key, LQI): return +def upd_RSSI(self, nwkid, rssi_value): + # Ensure the device exists in the dictionary + if nwkid not in self.ListOfDevices: + return + + # Update RSSI value directly + self.ListOfDevices[nwkid]["RSSI"] = rssi_value + + # Initialize RollingRSSI list if it doesn't exist + self.ListOfDevices[nwkid].setdefault("RollingRSSI", []) + + # Add RSSI to RollingRSSI list + self.ListOfDevices[nwkid]["RollingRSSI"].append(rssi_value) + + # Keep RollingRSSI list size at most 10 elements + self.ListOfDevices[nwkid]["RollingRSSI"] = self.ListOfDevices[nwkid]["RollingRSSI"][-10:] + + # Those functions will be use with the new DeviceConf structutre def is_fake_ep( self, nwkid, ep): diff --git a/Zigbee/decode8002.py b/Zigbee/decode8002.py index 0f50b3dc8..cacf8726d 100644 --- a/Zigbee/decode8002.py +++ b/Zigbee/decode8002.py @@ -1,11 +1,17 @@ -# !/usr/bin/env python3 -# coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license -from Modules.tools import lookupForIEEE +from Modules.tools import lookupForIEEE, upd_RSSI from Modules.zigateConsts import ADDRESS_MODE from Zigbee.zclDecoders import zcl_decoders from Zigbee.zdpDecoders import zdp_decoders @@ -39,7 +45,14 @@ def decode8002_and_process(self, frame): self.log.logging("Transport8002", "Log", "decode8002_and_process unknown NwkId: %s for ZCL frame %s" % (SrcNwkId,frame)) return None - + + if self.zigbee_communication == "zigpy": + rssi = self.ControllerLink.app.get_device_rssi( z4d_nwk=SrcNwkId) + + if rssi is not None: + upd_RSSI(self, SrcNwkId, rssi) + + # Z-Stack doesn't provide Profile Information, so we should assumed that if it is not 0x0000 (ZDP) it is then ZCL frame = zcl_decoders(self, SrcNwkId, SrcEndPoint, TargetEp, ClusterId, Payload, frame) self.log.logging("Transport8002", "Debug", "decode8002_and_process return ZCL frame: %s" % frame) From a7433ca0d1166492a711c3dc45147dc3a1d96ca6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 15 Apr 2024 19:58:53 +0200 Subject: [PATCH 218/301] Plugin wip-develop version 7.2.068 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 1707eb187..71c061cfc 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.067"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.068"} \ No newline at end of file From 8f42f351d057a390347ca2ab66af5dab652a2e94 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 15 Apr 2024 20:53:25 +0200 Subject: [PATCH 219/301] Plugin wip-develop version 7.2.069 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 71c061cfc..53c58e612 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.068"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.069"} \ No newline at end of file From 1e37877a11f7d31c44c49bff988ad84589e725ad Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 16 Apr 2024 18:51:21 +0200 Subject: [PATCH 220/301] remove line of comments --- Modules/heartbeat.py | 78 -------------------------------------------- 1 file changed, 78 deletions(-) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index c7b6a05a8..9000c3124 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -670,84 +670,6 @@ def hr_process_device(self, Devices, NwkId): process_main_powered_or_force_devices( self, NwkId, device_hearbeat, _mainPowered, enabledEndDevicePolling, model) -#def process_main_powered_or_force_devices( self, NwkId, device_hearbeat, _mainPowered, enabledEndDevicePolling, model): -# -# # Action not taken, must be reschedule to next cycle -# rescheduleAction = False -# -# if self.pluginconf.pluginConf["forcePollingAfterAction"] and (device_hearbeat == 1): # HB has been reset to 0 as for a Group command -# # device_hearbeat is 1 as if it has been reset, we get +1 in ProcessListOfDevices -# self.log.logging("Heartbeat", "Debug", "hr_process_device - %s due to device_hearbeat %s" % (NwkId, device_hearbeat), NwkId) -# rescheduleAction = rescheduleAction or pollingDeviceStatus(self, NwkId) -# # Priority on getting the status, nothing more to be done! -# return -# -# # Device Custom defined Polling -# rescheduleAction = rescheduleAction or DeviceCustomPolling(self, NwkId, device_hearbeat) -# -# # Polling Manufacturer Specific devices ( Philips, Gledopto ) if applicable -# rescheduleAction = rescheduleAction or pollingManufSpecificDevices(self, NwkId, device_hearbeat) -# -# # Polling Tuya device -# rescheduleAction = rescheduleAction or tuya_polling(self, NwkId) -# -# _doReadAttribute = bool((self.pluginconf.pluginConf["enableReadAttributes"] or self.pluginconf.pluginConf["resetReadAttributes"]) and device_hearbeat != 0 and (device_hearbeat % READATTRIBUTE_FEQ) == 0) -# -# pairing_time = self.ListOfDevices[NwkId].get("PairingTime") -# load_transmit = self.ControllerLink.loadTransmit() -# -# is_load_transmit_high = load_transmit > 5 -# is_pairing_time_set = pairing_time is not None -# is_within_time_limit = time.time() <= pairing_time + (load_transmit // 5) + 15 -# -# if is_load_transmit_high and is_pairing_time_set and is_within_time_limit: -# self.log.logging( -# "Heartbeat", -# "Debug", -# f"hr_process_device - {NwkId} delay the next ReadAttribute close to the pairing {pairing_time}", -# NwkId, -# ) -# return -# -# if _doReadAttribute: -# self.log.logging( "Heartbeat", "Debug", "hr_process_device - %s device_hearbeat: %s _mainPowered: %s doReadAttr: %s" % ( -# NwkId, device_hearbeat, _mainPowered, _doReadAttribute), NwkId, ) -# rescheduleAction = rescheduleAction or process_read_attributes(self, NwkId, model) -# -# # Call Schneider Reenforcement if needed -# if self.pluginconf.pluginConf["reenforcementWiser"] and (self.HeartbeatCount % self.pluginconf.pluginConf["reenforcementWiser"]) == 0: -# rescheduleAction = rescheduleAction or schneiderRenforceent(self, NwkId) -# -# if self.pluginconf.pluginConf["checkConfigurationReporting"]: -# rescheduleAction = rescheduleAction or check_configuration_reporting(self, NwkId, _mainPowered, device_hearbeat) -# -# if night_shift_jobs( self ) and _mainPowered and not enabledEndDevicePolling and device_hearbeat != 0 and ((device_hearbeat % ATTRIBUTE_DISCOVERY_REFRESH) == 0): -# rescheduleAction = rescheduleAction or attributeDiscovery(self, NwkId) -# -# if night_shift_jobs( self ) and _mainPowered and not enabledEndDevicePolling and device_hearbeat != 0 and ((device_hearbeat % BINDING_TABLE_REFRESH) == 0): -# mgtm_binding(self, NwkId, "BindingTable") -# -# # If corresponding Attributes not present, let's do a Request Node Description -# if night_shift_jobs(self) and _mainPowered and device_hearbeat != 0 and (device_hearbeat % NODE_DESCRIPTOR_REFRESH) == 0: -# required_keys = ["Manufacturer", "DeviceType", "LogicalType", "PowerSource", "ReceiveOnIdle", "_rawNodeDescriptor"] -# if not all(key in self.ListOfDevices.get(NwkId, {}) for key in required_keys): -# if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: -# # sendZigateCmd(self, "0042", str(NwkId), ackIsDisabled=True) # Request a Node Descriptor -# zdp_node_descriptor_request(self, NwkId) -# else: -# rescheduleAction = True -# -# -# if not self.busy and self.ControllerLink.loadTransmit() <= MAX_LOAD_ZIGATE: -# add_device_group_for_ping(self, NwkId) -# -# if rescheduleAction and device_hearbeat != 0: # Reschedule is set because Zigate was busy or Queue was too long to process -# self.ListOfDevices[NwkId]["Heartbeat"] = str(device_hearbeat - 1) # So next round it trigger again -# else: -# for key in ["LastPollingManufSpecificDevices", "LastCustomPolling"]: -# if key in self.ListOfDevices[NwkId]: -# del self.ListOfDevices[NwkId][key] - def process_main_powered_or_force_devices(self, NwkId, device_hearbeat, _mainPowered, enabledEndDevicePolling, model): self.log.logging("Heartbeat", "Debug",f"Calling process_main_powered_or_force_devices with arguments: NwkId={NwkId}, device_hearbeat={device_hearbeat}, _mainPowered={_mainPowered}, enabledEndDevicePolling={enabledEndDevicePolling}, model={model}", NwkId) From 1973dce1a89d20677ed32ea2ee521b8b9cce8f84 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 16 Apr 2024 18:52:24 +0200 Subject: [PATCH 221/301] should be fixing the Alarm command --- Modules/command.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Modules/command.py b/Modules/command.py index c3631219a..ba5b45dac 100644 --- a/Modules/command.py +++ b/Modules/command.py @@ -1093,6 +1093,7 @@ def _set_level_setpoint(self, Devices, DeviceID, Unit, Nwkid, EPout, Level, Batt return + def _set_level_fan_control(self, Devices, DeviceID, Unit, BatteryLevel, SignalLevel, forceUpdateDev, DeviceType, Nwkid, EPout, Level, model_name): if model_name == "AC201A": casaia_ac201_fan_control(self, Nwkid, Level) @@ -1168,17 +1169,22 @@ def _set_level_windows_covering(self, DeviceType, Nwkid, EPout, Level): def handle_alarm_command(self, Nwkid, EPout, Level): - action_mapping = { + ias_action_mapping = { 0: self.iaszonemgt.alarm_off, 10: self.iaszonemgt.alarm_on, 20: self.iaszonemgt.siren_only, 30: self.iaszonemgt.strobe_only, - 40: lambda: self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "armed"), - 50: lambda: self.iaszonemgt.write_IAS_WD_Squawk(Nwkid, EPout, "disarmed"), + 40: self.iaszonemgt.write_IAS_WD_Squawk, + 50: self.iaszonemgt.write_IAS_WD_Squawk, } - action = action_mapping.get(Level) - if action: - action() + + if Level in ias_action_mapping: + action = ias_action_mapping.get(Level) + if Level in (40, 50): + mode = "armed" if Level == 40 else "disarmed" + action(Nwkid, EPout, mode) + else: + action(Nwkid, EPout) else: self.log.logging("Command", "Error", "Invalid alarm level: %s" % Level) From a2f8a440f0c1effbf840dc6a911da64634dbbdf4 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 16 Apr 2024 18:54:23 +0200 Subject: [PATCH 222/301] Add RSSI persistent from one start to the other --- Modules/database.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/database.py b/Modules/database.py index 6d9327221..bf594168c 100644 --- a/Modules/database.py +++ b/Modules/database.py @@ -120,6 +120,7 @@ "ReadAttributes", "WriteAttributes", "LQI", + "RSSI", "SQN", "Stamp", "Health", From 30f15d142156b0f19e0e09fea48fa19cfdc1ac10 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 16 Apr 2024 18:54:26 +0200 Subject: [PATCH 223/301] Plugin wip-develop version 7.2.070 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 53c58e612..7bffad44c 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.069"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.070"} \ No newline at end of file From 4970be88f8fc4f0e696b53205e110983d494046a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 16 Apr 2024 18:59:48 +0200 Subject: [PATCH 224/301] Prevent to load cryptopgrahy python module with rust bindings --- constraints.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/constraints.txt b/constraints.txt index 15dadb7a2..e4129ee0d 100644 --- a/constraints.txt +++ b/constraints.txt @@ -7,3 +7,4 @@ dnspython==2.6.1 pyserial>=3.5 charset-normalizer==2.0.11 jsonschema==4.17.3 +cryptography<=40.0.2 From 43db5a2090379579e8e9ec2eef2b420bb5375bf0 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 16 Apr 2024 19:09:35 +0200 Subject: [PATCH 225/301] Plugin wip-develop version 7.2.071 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 7bffad44c..05a04c092 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.070"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.071"} \ No newline at end of file From 02949bbf0e78de3ccf4c00e32c4e0e22bd00eb49 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Fri, 19 Apr 2024 17:58:36 +0200 Subject: [PATCH 226/301] Instrument EventLoop (#1733) * Instrument EventLoop * make Bellows EventLoop dedicated thread optional * by default enable Bellows EventLoop thread * optimize logging * refactor process_raw_command --- Classes/LoggingManagement.py | 145 +++++++++++++---------- Classes/PluginConf.py | 4 +- Classes/ZigpyTransport/zigpyThread.py | 161 +++++++++++++------------- 3 files changed, 173 insertions(+), 137 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index ecebad7ca..a68ac22be 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -46,21 +46,13 @@ def __init__(self, pluginconf, PluginHealth, HardwareID, ListOfDevices, permitTo self.logging_thread = None self._startTime = int(time.time()) - self.debugzigpy = False - self.debugZNP = False - self.debugEZSP = False - self.debugZigate = False - self.debugdeconz = False + self.debugZigpy = None + self.debugZNP = None + self.debugEZSP = None + self.debugZigate = None + self.debugdeconz = None - self.reload_debug_settings = False - - configure_zigpy_loggers("warning") - configure_zigpy_znp_loggers("warning") - configure_zigpy_ezsp_loggers("warning") - configure_zigpy_zigate_loggers("warning") - configure_zigpy_deconz_loggers("warning") - - self.zigpy_login() + self.reload_debug_settings = True start_logging_thread(self) @@ -83,20 +75,24 @@ def is_new_error(self): def zigpy_login(self): - _configure_debug_mode(self, self.debugzigpy, "Zigpy", configure_zigpy_loggers) - _configure_debug_mode(self, self.debugZNP, "ZigpyZNP", configure_zigpy_znp_loggers) - _configure_debug_mode(self, self.debugEZSP, "ZigpyEZSP", configure_zigpy_ezsp_loggers) - _configure_debug_mode(self, self.debugZigate, "ZigpyZigate", configure_zigpy_zigate_loggers) - _configure_debug_mode(self, self.debugdeconz, "ZigpydeCONZ", configure_zigpy_deconz_loggers) + self.reload_debug_settings = False + + _configure_debug_mode(self, "Zigpy", configure_zigpy_loggers) + _configure_debug_mode(self, "ZigpyZNP", configure_zigpy_znp_loggers) + _configure_debug_mode(self, "ZigpyEZSP", configure_zigpy_ezsp_loggers) + _configure_debug_mode(self, "ZigpyZigate", configure_zigpy_zigate_loggers) + _configure_debug_mode(self, "ZigpydeCONZ", configure_zigpy_deconz_loggers) + default_mode = logging.INFO if self.pluginconf.pluginConf["ZigpyDefaultLoggingInfo"] else logging.WARNING for param in self.pluginconf.pluginConf: if 'Python/' in param: logger_name = param.split('/')[1] logger_name = logger_name.replace( '-', '.') mode = self.pluginconf.pluginConf[param] - _set_logging_level = logging.DEBUG if mode == 1 else logging.WARNING - logging.getLogger(logger_name).setLevel(_set_logging_level) + _set_logging_level = logging.DEBUG if mode == 1 else default_mode + if logging.getLogger(logger_name).level != _set_logging_level: + logging.getLogger(logger_name).setLevel(_set_logging_level) def loggingUpdatePluginVersion(self, Version): self.PluginVersion = Version @@ -257,11 +253,6 @@ def loggingClearErrorHistory(self): def logging(self, module, logType, message, nwkid=None, context=None): - #domoticz_log_api("%s %s %s %s %s %s %s" % (module, logType, message, nwkid, context, self.logging_thread, self.logging_queue)) - # Set python3 modules logging if required - if self.reload_debug_settings: - self.zigpy_login() - self.reload_debug_settings = False try: thread_id = threading.current_thread().native_id @@ -284,7 +275,8 @@ def logging(self, module, logType, message, nwkid=None, context=None): for module_instance in module: if _is_to_be_logged(self, logType, module_instance): enqueue_logging( self, thread_id, module_instance, logType, message, nwkid, context ) - + + def _is_to_be_logged(self, logType, module): if logType in ( "Log", "Status", "Error"): return True @@ -296,6 +288,7 @@ def _is_to_be_logged(self, logType, module): return True return False + def enqueue_logging( self, thread_id, module, logType, message, nwkid, context ): if self.logging_thread and self.logging_queue: logging_tuple = [ @@ -484,24 +477,22 @@ def logging_thread(self): # We loop until self.running is set to False, # which indicate plugin shutdown logging_tuple = self.logging_queue.get() + if len(logging_tuple) == 2: - timing, command = logging_tuple + _, command = logging_tuple if command == "QUIT": domoticz_log_api("logging_thread Exit requested") break + elif len(logging_tuple) == 8: - ( - timing, - thread_name, - thread_id, - module, - logType, - message, - nwkid, - context, - ) = logging_tuple + ( _, thread_name, thread_id, module, logType, message, nwkid, context, ) = logging_tuple + + if self.reload_debug_settings: + self.zigpy_login() + try: context = eval(context) + except Exception as e: domoticz_error_api("Something went wrong and catch: context: %s" % str(context)) domoticz_error_api(" logging_thread unexpected tuple %s" % (str(logging_tuple))) @@ -528,15 +519,30 @@ def logging_thread(self): domoticz_log_api("logging_thread - ended") -def configure_loggers(logger_names, mode): - _set_logging_level = logging.DEBUG if mode == "debug" else logging.WARNING - +def configure_loggers(self, logger_names, mode): + #domoticz_log_api( f"configure_loggers - {logger_names} {mode}") + if mode == "debug": + _set_logging_level = logging.DEBUG + elif mode == "warning": + _set_logging_level = logging.WARNING + elif mode == "info": + _set_logging_level = logging.INFO + else: + domoticz_error_api( f"configure_loggers error {logger_names} - {mode}") + for logger_name in logger_names: + #domoticz_log_api( f" - {logger_name} {_set_logging_level}") logging.getLogger(logger_name).setLevel(_set_logging_level) # Loggers configurations -def configure_zigpy_loggers(mode): +def configure_zigpy_loggers(self, mode="warning"): + """ Configure Logging level for zigpy """ + #domoticz_log_api( f"configure_zigpy_loggers -{mode}") + if mode == self.debugZigpy: + return + self.debugZigpy = mode + logger_names = [ "Classes.ZigpyTransport.AppGeneric", "aiosqlite", @@ -549,10 +555,16 @@ def configure_zigpy_loggers(mode): "zigpy.quirks", "zigpy.zcl", "zigpy.zdo" ] - configure_loggers(logger_names, mode) + configure_loggers(self, logger_names, mode) + +def configure_zigpy_znp_loggers(self, mode="warning"): + """ Configure Logging level for zigpy-znp """ + #domoticz_log_api( f"configure_zigpy_znp_loggers -{mode}") + if mode == self.debugZNP: + return + self.debugZNP = mode -def configure_zigpy_znp_loggers(mode): logger_names = [ "AppZnp", "zigpy_znp", @@ -562,10 +574,16 @@ def configure_zigpy_znp_loggers(mode): "Classes.ZigpyTransport.AppZnp", "Classes.ZigpyTransport.AppGeneric" ] - configure_loggers(logger_names, mode) + configure_loggers(self, logger_names, mode) -def configure_zigpy_ezsp_loggers(mode): +def configure_zigpy_ezsp_loggers(self, mode="warning"): + """ Configure Logging level for bellows """ + #domoticz_log_api( f"configure_zigpy_ezsp_loggers -{mode}") + if mode == self.debugEZSP: + return + self.debugEZSP = mode + logger_names = [ "AppBellows", "bellows", @@ -576,31 +594,42 @@ def configure_zigpy_ezsp_loggers(mode): "ZigpyTransport.AppBellows", "Classes.ZigpyTransport.AppGeneric" ] - configure_loggers(logger_names, mode) + configure_loggers(self, logger_names, mode) -def configure_zigpy_zigate_loggers(mode): +def configure_zigpy_zigate_loggers(self, mode="warning"): + """ Configure Logging level for zigpy-zigate """ + #domoticz_log_api( f"configure_zigpy_zigate_loggers -{mode}") logger_names = [ "zigpy_zigate", "Classes.ZigpyTransport.AppZigate" ] - configure_loggers(logger_names, mode) + configure_loggers(self, logger_names, mode) + +def configure_zigpy_deconz_loggers(self, mode="warning"): + """ Configure Logging level for zigpy-deconz """ + #domoticz_log_api( "configure_zigpy_deconz_loggers") + if mode == self.debugdeconz: + return + self.debugdeconz = mode -def configure_zigpy_deconz_loggers(mode): logger_names = [ "zigpy_deconz", "ZigpyTransport.AppDeconz", "Classes.ZigpyTransport.AppGeneric" ] - configure_loggers(logger_names, mode) + configure_loggers(self, logger_names, mode) # Main configuration function -def _configure_debug_mode(self, debug_flag, config_name, config_function): - if not debug_flag and self.pluginconf.pluginConf[config_name]: - debug_flag = True - config_function("debug") - elif debug_flag and not self.pluginconf.pluginConf[config_name]: - debug_flag = False - config_function("warning") +def _configure_debug_mode(self, config_name, config_function): + """ if debug_flag set to True, or ConfigName parameter set to True, enable python module logging""" + + #domoticz_log_api( f"_configure_debug_mode - {config_name}") + + if self.pluginconf.pluginConf[config_name]: + return config_function(self, "debug") + + default_mode = "info" if self.pluginconf.pluginConf["ZigpyDefaultLoggingInfo"] else "warning" + config_function(self,default_mode) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 39cd940bf..26622f892 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -260,7 +260,7 @@ "Pluzzy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "PollControl": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Profalux": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - + "ZigpyDefaultLoggingInfo": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": False }, "Python/aiosqlite": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Python/zigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Python/zigpy-appdb": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -380,6 +380,8 @@ "useDomoticzDatabase": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": False,"Advanced": True,}, "enableZigpyPersistentInFile": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, "enableZigpyPersistentInMemory": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, + "EventLoopInstrumentation": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, + "EventLoopThread": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, }, }, "Reserved": { diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 76673d041..e314207d3 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -24,6 +24,7 @@ from typing import Any, Optional import serial +import serial_asyncio as pyserial_asyncio import zigpy.config import zigpy.device import zigpy.exceptions @@ -73,7 +74,6 @@ def stop_zigpy_thread(self): def start_zigpy_thread(self): self.log.logging("TransportZigpy", "Debug", "start_zigpy_thread - Starting zigpy thread (1)") - if sys.platform == "win32" and (3, 8, 0) <= sys.version_info < (3, 9, 0): asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) @@ -81,36 +81,28 @@ def start_zigpy_thread(self): def setup_zigpy_thread(self): - self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - Starting zigpy thread (1)") - self.zigpy_loop = get_or_create_eventloop() + self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - Starting zigpy thread") + self.zigpy_thread = Thread(name=f"ZigpyCom_{self.hardwareid}", target=zigpy_thread, args=(self,)) + self.zigpy_thread.start() - if self.zigpy_loop: - self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - Starting zigpy thread") + self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - zigpy thread started") - self.zigpy_thread = Thread(name=f"ZigpyCom_{self.hardwareid}", target=zigpy_thread, args=(self,)) - self.zigpy_thread.start() - self.log.logging("TransportZigpy", "Debug", "setup_zigpy_thread - zigpy thread started") +def zigpy_thread(self): + self.zigpy_loop = asyncio.new_event_loop() + asyncio.set_event_loop(self.zigpy_loop) + if self.pluginconf.pluginConf["EventLoopInstrumentation"]: + self.zigpy_loop.set_debug(enabled=True) -def get_or_create_eventloop(): + self.log.logging("TransportZigpy", "Log", "zigpy_thread starting event loop : %s" %self.zigpy_loop) try: - loop = asyncio.get_event_loop() - - except RuntimeError as ex: - if "There is no current event loop in thread" in str(ex): - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - else: - if loop.is_closed(): - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - return loop - + self.zigpy_loop.run_until_complete(start_zigpy_task(self, channel=0, extended_pan_id=0)) + except Exception as e: + self.log.logging("TransportZigpy", "Error", "zigpy_thread error when starting %s" %e) -def zigpy_thread(self): - self.zigpy_loop.run_until_complete(start_zigpy_task(self, channel=0, extended_pan_id=0)) - self.zigpy_loop.close() + finally: + self.zigpy_loop.close() async def start_zigpy_task(self, channel, extended_pan_id): @@ -166,7 +158,6 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, try: if radiomodule == "ezsp": import bellows.config as radio_specific_conf - from Classes.ZigpyTransport.AppBellows import App_bellows as App config = ezsp_configuration_setup(self, radio_specific_conf, serialPort) @@ -231,21 +222,25 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, def ezsp_configuration_setup(self, bellows_conf, serialPort): config = { - zigpy.config.CONF_DEVICE: { "path": serialPort, "baudrate": 115200}, + zigpy.config.CONF_DEVICE: { zigpy.config.CONF_DEVICE_PATH: serialPort, zigpy.config.CONF_DEVICE_BAUDRATE: 115200}, zigpy.config.CONF_NWK: {}, bellows_conf.CONF_EZSP_CONFIG: {}, zigpy.config.CONF_OTA: {}, "handle_unknown_devices": True, } - + + if not self.pluginconf.pluginConf["EventLoopThread"]: + self.log.logging("TransportZigpy", "Status", "Disable Bellows specific EventLoop thread") + config[bellows_conf.CONF_USE_THREAD] = False + if "BellowsNoMoreEndDeviceChildren" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["BellowsNoMoreEndDeviceChildren"]: self.log.logging("TransportZigpy", "Status", "Set The maximum number of end device children that Coordinater will support to 0") config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_MAX_END_DEVICE_CHILDREN"] = 0 - + if self.pluginconf.pluginConf["TXpower_set"]: self.log.logging("TransportZigpy", "Status", "Enables boost power mode and the alternate transmitter output.") config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_TX_POWER_MODE"] = 0x3 - + return config @@ -535,71 +530,81 @@ async def process_raw_command(self, data, AckIsDisable=False, Sqn=None): payload = bytes.fromhex(data["payload"]) sequence = Sqn or self.app.get_sequence() addressmode = data["AddressMode"] - result = None - - # extended_timeout managed the retry at zigpy level ( instruct the radio to use slower APS retries ) - # If the device is not listening on Idle ( end device ), enable the retry - # However if PluginRetrys enabled, then we disable the slower APS retry as the plugin will do. + extended_timeout = not data.get("RxOnIdle", False) and not self.pluginconf.pluginConf["PluginRetrys"] - self.log.logging( "TransportZigpy", "Debug", f"process_raw_command: extended_timeout {extended_timeout}") - + self.log.logging("TransportZigpy", "Debug", f"process_raw_command: extended_timeout {extended_timeout}") + delay = data.get("Delay", None) self.log.logging("TransportZigpy", "Debug", f"process_raw_command: process_raw_command ready to request Function: {Function} NwkId: {NwkId}/{dEp} Cluster: {Cluster} Seq: {sequence} Payload: {payload.hex()} AddrMode: {addressmode} EnableAck: {not AckIsDisable}, Sqn: {Sqn}, Delay: {delay}, Extended_TO: {extended_timeout}") destination, transport_needs = _get_destination(self, NwkId, addressmode, Profile, Cluster, sEp, dEp, sequence, payload) - + if destination is None: return - + if transport_needs == "Broadcast": self.log.logging("TransportZigpy", "Debug", f"process_raw_command Broadcast: {NwkId}") - result, msg = await self.app.broadcast( Profile, Cluster, sEp, dEp, 0x0, 0x0, sequence, payload, ) - await asyncio.sleep( 2 * WAITING_TIME_BETWEEN_ATTEMPTS) + result, msg = await _broadcast_command(self, Profile, Cluster, sEp, dEp, sequence, payload) elif addressmode == 0x01: - # Group Mode - destination = int(NwkId, 16) - self.log.logging("TransportZigpy", "Debug", f"process_raw_command Multicast: {destination}") - result, msg = await self.app.mrequest(destination, Profile, Cluster, sEp, sequence, payload) - await asyncio.sleep( 2 * WAITING_TIME_BETWEEN_ATTEMPTS) + result, msg = await _multicast_command(self, NwkId, Profile, Cluster, sEp, sequence, payload) elif transport_needs == "Unicast": - self.log.logging("TransportZigpy", "Debug", f"process_raw_command Unicast destination: {destination} Profile: {Profile} Cluster: {Cluster} sEp: {sEp} dEp: {dEp} Seq: {sequence} Payload: {payload.hex()}") + result, msg = await _unicast_command(self, destination, Profile, Cluster, sEp, dEp, sequence, payload, AckIsDisable, delay, extended_timeout, Function, Sqn) - AckIsDisable = False if self.pluginconf.pluginConf["ForceAPSAck"] else AckIsDisable + self.log.logging("TransportZigpy", "Debug", f"ZigyTransport: process_raw_command completed NwkId: {destination} result: {result} msg: {msg}") - try: - task = asyncio.create_task( - transport_request( self, Function,destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=AckIsDisable, use_ieee=False, delay=delay, extended_timeout=extended_timeout), - name=f"transport_request-{Function}-{destination}-{Cluster}-{Sqn}" - ) - self.statistics._sent += 1 - - except (asyncio.TimeoutError, asyncio.exceptions.TimeoutError) as e: - self.log.logging("TransportZigpy", "Log", f"process_raw_command: TimeoutError {destination} {Profile} {Cluster} {payload}") - error_msg = str(e) - result = 0xB6 - - except (asyncio.CancelledError, asyncio.exceptions.CancelledError) as e: - self.log.logging("TransportZigpy", "Log", f"process_raw_command: CancelledError {destination} {Profile} {Cluster} {payload}") - error_msg = str(e) - result = 0xB6 - - except AttributeError as e: - self.log.logging("TransportZigpy", "Log", f"process_raw_command: AttributeError {Profile} {type(Profile)} {Cluster} {type(Cluster)}") - error_msg = str(e) - result = 0xB6 - - except DeliveryError as e: - # This could be relevant to APS NACK after retry - # Request failed after 5 attempts: - self.log.logging("TransportZigpy", "Debug", f"process_raw_command - DeliveryError : {e}") - error_msg = str(e) - result = int(e.status) if hasattr(e, 'status') else 0xB6 - if result: - self.log.logging("TransportZigpy", "Debug", f"ZigyTransport: process_raw_command completed NwkId: {destination} result: {result} msg: {error_msg}") - return +async def _broadcast_command(self, Profile, Cluster, sEp, dEp, sequence, payload): + result, msg = await self.app.broadcast(Profile, Cluster, sEp, dEp, 0x0, 0x0, sequence, payload) + await asyncio.sleep(2 * WAITING_TIME_BETWEEN_ATTEMPTS) + return result, msg + + +async def _multicast_command(self, NwkId, Profile, Cluster, sEp, sequence, payload): + destination = int(NwkId, 16) + self.log.logging("TransportZigpy", "Debug", f"process_raw_command Multicast: {destination}") + result, msg = await self.app.mrequest(destination, Profile, Cluster, sEp, sequence, payload) + await asyncio.sleep(2 * WAITING_TIME_BETWEEN_ATTEMPTS) + return result, msg + + +async def _unicast_command(self, destination, Profile, Cluster, sEp, dEp, sequence, payload, AckIsDisable, delay, extended_timeout, Function, Sqn): + self.log.logging("TransportZigpy", "Debug", f"process_raw_command Unicast destination: {destination} Profile: {Profile} Cluster: {Cluster} sEp: {sEp} dEp: {dEp} Seq: {sequence} Payload: {payload.hex()}") + AckIsDisable = False if self.pluginconf.pluginConf["ForceAPSAck"] else AckIsDisable + + try: + task = asyncio.create_task( + transport_request(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=AckIsDisable, use_ieee=False, delay=delay, extended_timeout=extended_timeout), + name=f"_unicast_command-{Function}-{destination}-{Cluster}-{Sqn}" + ) + + except (asyncio.TimeoutError, asyncio.exceptions.TimeoutError) as e: + self.log.logging("TransportZigpy", "Log", f"process_raw_command: TimeoutError {destination} {Profile} {Cluster} {payload}") + error_msg = str(e) + result = 0xB6 + + except (asyncio.CancelledError, asyncio.exceptions.CancelledError) as e: + self.log.logging("TransportZigpy", "Log", f"process_raw_command: CancelledError {destination} {Profile} {Cluster} {payload}") + error_msg = str(e) + result = 0xB6 + + except AttributeError as e: + self.log.logging("TransportZigpy", "Log", f"process_raw_command: AttributeError {Profile} {type(Profile)} {Cluster} {type(Cluster)}") + error_msg = str(e) + result = 0xB6 + + except DeliveryError as e: + self.log.logging("TransportZigpy", "Debug", f"process_raw_command - DeliveryError : {e}") + error_msg = str(e) + result = int(e.status) if hasattr(e, 'status') else 0xB6 + + else: + self.statistics._sent += 1 + result = None + error_msg = "" + + return result, error_msg def _get_destination(self, NwkId, addressmode, Profile, Cluster, sEp, dEp, sequence, payload): From cff04a39dbd88e6ad62902975ebd26c919772208 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 19 Apr 2024 17:58:51 +0200 Subject: [PATCH 227/301] Plugin wip-develop version 7.2.072 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 05a04c092..42d138fb2 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.071"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.072"} \ No newline at end of file From e08eb848ea1b28d781097262529924265e9d9aa7 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 20 Apr 2024 11:20:55 +0200 Subject: [PATCH 228/301] refactor and Parameter to enable oldFashion (not optimized) --- Classes/LoggingManagement.py | 71 +++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index a68ac22be..5329b14e5 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -53,6 +53,8 @@ def __init__(self, pluginconf, PluginHealth, HardwareID, ListOfDevices, permitTo self.debugdeconz = None self.reload_debug_settings = True + + self.not_optimized = self.pluginconf.pluginConf.get("loggingNotOptimized", False) start_logging_thread(self) @@ -266,16 +268,17 @@ def logging(self, module, logType, message, nwkid=None, context=None): else: context = { "StackTrace": get_stack_trace() } - # Do not enqueue if there is nothing to log. + # Do not enqueue if there is nothing to log. (except if self.not_optimized set to True) if isinstance( module, str): - if _is_to_be_logged(self, logType, module): + if _is_to_be_logged(self, logType, module) or self.not_optimized: enqueue_logging( self, thread_id, module, logType, message, nwkid, context ) elif isinstance( module, list): for module_instance in module: - if _is_to_be_logged(self, logType, module_instance): + if _is_to_be_logged(self, logType, module_instance) or self.not_optimized: enqueue_logging( self, thread_id, module_instance, logType, message, nwkid, context ) + def _is_to_be_logged(self, logType, module): if logType in ( "Log", "Status", "Error"): @@ -304,7 +307,7 @@ def enqueue_logging( self, thread_id, module, logType, message, nwkid, context ) self.logging_queue.put(logging_tuple) else: domoticz_log_api("%s" % message) - + def _loggingStatus(self, thread_name, message): if self.pluginconf.pluginConf["logThreadName"]: @@ -485,38 +488,47 @@ def logging_thread(self): break elif len(logging_tuple) == 8: - ( _, thread_name, thread_id, module, logType, message, nwkid, context, ) = logging_tuple + process_logging_event( self, logging_tuple) + + else: + domoticz_error_api("logging_thread unexpected tuple %s" % (str(logging_tuple))) + domoticz_log_api("logging_thread - ended") - if self.reload_debug_settings: - self.zigpy_login() - try: - context = eval(context) +def process_logging_event( self, logging_tuple): + _, thread_name, thread_id, module, logType, message, nwkid, context = logging_tuple - except Exception as e: - domoticz_error_api("Something went wrong and catch: context: %s" % str(context)) - domoticz_error_api(" logging_thread unexpected tuple %s" % (str(logging_tuple))) - domoticz_error_api(" Error %s" % (str(e))) - return + if self.reload_debug_settings: + self.zigpy_login() - if logType == "Error": - loggingError(self, thread_name, module, message, nwkid, context) + try: + context = eval(context) - elif logType == "Debug": - # thread filter - threadFilter = [ x for x in self.threadLogConfig if self.pluginconf.pluginConf["Thread" + self.threadLogConfig[x]] == 1 ] - if threadFilter and thread_name not in threadFilter: - continue + except Exception as err: + _catch_error_event(self, context,logging_tuple, err ) + return - thread_name=thread_name + " " + thread_id - _logginfilter(self, thread_name, message, nwkid) + thread_name = f"{thread_name} {thread_id}" - else: - thread_name=thread_name + " " + thread_id - loggingDirector(self, thread_name, logType, message) - else: - domoticz_error_api("logging_thread unexpected tuple %s" % (str(logging_tuple))) - domoticz_log_api("logging_thread - ended") + if logType == "Error": + loggingError(self, thread_name, module, message, nwkid, context) + + elif logType == "Debug" and _should_log_debug(self, thread_name) and _is_to_be_logged(self, logType, module): + _logginfilter(self, thread_name, message, nwkid) + + else: + thread_name=thread_name + " " + thread_id + loggingDirector(self, thread_name, logType, message) + +def _should_log_debug(self, thread_name): + thread_filter = [x for x in self.threadLogConfig if self.pluginconf.pluginConf[f"Thread{self.threadLogConfig[x]}"] == 1] + return not thread_filter or thread_name in thread_filter + + +def _catch_error_event(self, context,logging_tuple, err ): + domoticz_error_api("Something went wrong and catch: context: %s" % str(context)) + domoticz_error_api(" logging_thread unexpected tuple %s" % (str(logging_tuple))) + domoticz_error_api(" Error %s" % (str(err))) def configure_loggers(self, logger_names, mode): @@ -621,7 +633,6 @@ def configure_zigpy_deconz_loggers(self, mode="warning"): ] configure_loggers(self, logger_names, mode) -# Main configuration function def _configure_debug_mode(self, config_name, config_function): """ if debug_flag set to True, or ConfigName parameter set to True, enable python module logging""" From 476c34f63fa356578f2f8d26ac306f211c8a7520 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sat, 20 Apr 2024 19:22:00 +0200 Subject: [PATCH 229/301] Zigpy instrument - transport_request (#1734) * refactor and Parameter to enable oldFashion (not optimized) * ZigpyReactTime enabled by default, loggingNotOptimized disabled by default * Zigpy instrument * display Zigpy timing when stoping plugin * refactor, do not create a task to start the radio * instrumenting transport_request via a decorator. --- Classes/PluginConf.py | 2 + Classes/TransportStats.py | 28 +++---- Classes/ZigpyTransport/zigpyThread.py | 102 +++++++++++++------------- plugin.py | 2 +- 4 files changed, 64 insertions(+), 70 deletions(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index 26622f892..b8c9a4d5d 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -318,6 +318,7 @@ "ZLinky": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZclClusters": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZiGateReactTime": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "ZigpyReactTime": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Zigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyEZSP": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyTopology": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -382,6 +383,7 @@ "enableZigpyPersistentInMemory": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, "EventLoopInstrumentation": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, "EventLoopThread": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, + "loggingNotOptimized": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, }, }, "Reserved": { diff --git a/Classes/TransportStats.py b/Classes/TransportStats.py index d30aa3fbc..2a5768bd3 100644 --- a/Classes/TransportStats.py +++ b/Classes/TransportStats.py @@ -14,7 +14,7 @@ class TransportStatistics: - def __init__(self, pluginconf): + def __init__(self, pluginconf, log): self._pdmLoads = 0 # count the number of PDM Loads ( should be 1 max) self._crcErrors = 0 # count of crc errors self._frameErrors = 0 # count of frames error @@ -46,6 +46,7 @@ def __init__(self, pluginconf): self._start = int(time()) self.TrendStats = [] self.pluginconf = pluginconf + self.log = log # Statistics methods def starttime(self): @@ -63,14 +64,7 @@ def add_timing_zigpy(self, timing): self._average_reading_zigpy_timing = int((self._cumul_reading_zigpy_timing / self._cnt_reading_zigpy_timing)) if timing > self._max_reading_zigpy_timing: self._max_reading_zigpy_timing = timing - domoticz_log_api( - "Zigate Thread Serial Read Max: %s ms with an of average: %s ms" - % (self._max_reading_zigpy_timing, self._average_reading_zigpy_timing) - ) - domoticz_log_api( - "Zigate Thread Serial Read Max: %s ms with an of average: %s ms" - % (self._max_reading_zigpy_timing, self._average_reading_zigpy_timing) - ) + self.log.logging("TransportZigpy", "Log", f"ZigpyThread Max: {self._max_reading_zigpy_timing} ms with an average of: {self._average_reading_zigpy_timing} ms") def add_timing_thread(self, timing): @@ -80,7 +74,7 @@ def add_timing_thread(self, timing): if timing > self._max_reading_thread_timing: self._max_reading_thread_timing = timing domoticz_log_api( - "Zigate Thread Serial Read Max: %s ms with an of average: %s ms" + "Coordinator Thread Serial Read Max: %s ms with an of average: %s ms" % (self._max_reading_thread_timing, self._average_reading_thread_timing) ) @@ -92,7 +86,7 @@ def add_timing8000(self, timing): if timing > self._maxTiming8000: self._maxTiming8000 = timing domoticz_log_api( - "Zigate command round trip 0x8000 Max: %s ms with an of average: %s ms" + "Coordinator command round trip 0x8000 Max: %s ms with an of average: %s ms" % (self._maxTiming8000, self._averageTiming8000) ) @@ -104,7 +98,7 @@ def add_timing8011(self, timing): if timing > self._maxTiming8011: self._maxTiming8011 = timing domoticz_log_api( - "Zigate command round trip 0x8011 Max: %s ms with an of average: %s ms" + "Coordinator command round trip 0x8011 Max: %s ms with an of average: %s ms" % (self._maxTiming8011, self._averageTiming8011) ) @@ -116,7 +110,7 @@ def add_timing8012(self, timing): if timing > self._maxTiming8012: self._maxTiming8012 = timing domoticz_log_api( - "Zigate command round trip 0x8012 Max: %s ms with an of average: %s ms" + "Coordinator command round trip 0x8012 Max: %s ms with an of average: %s ms" % (self._maxTiming8012, self._averageTiming8012) ) @@ -128,7 +122,7 @@ def add_rxTiming(self, timing): if timing > self._maxRxProcesses: self._maxRxProcesses = timing domoticz_log_api( - "Zigate receive message processing time Max: %s ms with an of average: %s ms" + "Coordinator receive message processing time Max: %s ms with an of average: %s ms" % (self._maxRxProcesses, self._averageRxProcess) ) @@ -200,10 +194,10 @@ def printSummary(self): return domoticz_status_api("Statistics on message") domoticz_status_api(" PDM load(s) : %s" % self._pdmLoads) - domoticz_status_api("ZiGate reacting time") + domoticz_status_api("Coordinator reacting time") domoticz_status_api(" Max : %s sec" % (self._maxTiming8000)) domoticz_status_api(" Average : %s sec" % (self._averageTiming8000)) - domoticz_status_api("ZiGate processing time on Rx") + domoticz_status_api("Coordinator processing time on Rx") domoticz_status_api(" Max : %s sec" % (self._maxRxProcesses)) domoticz_status_api(" Average : %s sec" % (self._averageRxProcess)) domoticz_status_api("Sent:") @@ -260,6 +254,8 @@ def printSummary(self): _duration = _duration % 60 _sec = _duration % 60 domoticz_status_api("Operating time : %s Hours %s Mins %s Secs" % (_hours, _min, _sec)) + domoticz_status_api( f"ZigpyThread Max: {self._max_reading_zigpy_timing} ms with an average of: {self._average_reading_zigpy_timing} ms") + def writeReport(self): diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index e314207d3..aac40ecce 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -48,8 +48,7 @@ build_plugin_8043_frame_list_node_descriptor, build_plugin_8045_frame_list_controller_ep) from Classes.ZigpyTransport.tools import handle_thread_error -from Modules.macPrefix import DELAY_FOR_VERY_KEY, casaiaPrefix_zigpy -from Modules.tools import print_stack +from Modules.macPrefix import DELAY_FOR_VERY_KEY MAX_ATTEMPS_REQUEST = 3 WAITING_TIME_BETWEEN_ATTEMPS = 0.250 @@ -73,7 +72,7 @@ def stop_zigpy_thread(self): def start_zigpy_thread(self): - self.log.logging("TransportZigpy", "Debug", "start_zigpy_thread - Starting zigpy thread (1)") + self.log.logging("TransportZigpy", "Debug", "start_zigpy_thread - Starting zigpy thread") if sys.platform == "win32" and (3, 8, 0) <= sys.version_info < (3, 9, 0): asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) @@ -95,7 +94,7 @@ def zigpy_thread(self): if self.pluginconf.pluginConf["EventLoopInstrumentation"]: self.zigpy_loop.set_debug(enabled=True) - self.log.logging("TransportZigpy", "Log", "zigpy_thread starting event loop : %s" %self.zigpy_loop) + self.log.logging("TransportZigpy", "Log", "zigpyThread EventLoop : %s" %self.zigpy_loop) try: self.zigpy_loop.run_until_complete(start_zigpy_task(self, channel=0, extended_pan_id=0)) except Exception as e: @@ -109,12 +108,8 @@ async def start_zigpy_task(self, channel, extended_pan_id): self.log.logging("TransportZigpy", "Debug", "start_zigpy_task - Starting zigpy thread") self.zigpy_running = True - self.log.logging("TransportZigpy", "Debug", f"===> channel : {self.pluginconf.pluginConf['channel']}") - self.log.logging("TransportZigpy", "Debuf", f"===> extendedPANID: {self.pluginconf.pluginConf['extendedPANID']}") - if "channel" in self.pluginconf.pluginConf: channel = int(self.pluginconf.pluginConf["channel"]) - self.log.logging("TransportZigpy", "Debug", f"===> channel: {channel}") if "extendedPANID" in self.pluginconf.pluginConf: if isinstance( self.pluginconf.pluginConf["extendedPANID"], str): @@ -122,15 +117,21 @@ async def start_zigpy_task(self, channel, extended_pan_id): else: extended_pan_id = self.pluginconf.pluginConf["extendedPANID"] - self.log.logging("TransportZigpy", "Debug", f"===> extendedPanId: 0x{extended_pan_id:X}") - self.log.logging( "TransportZigpy", "Debug", f"start_zigpy_task -extendedPANID {self.pluginconf.pluginConf['extendedPANID']} {extended_pan_id}", ) - task = asyncio.create_task( - radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), - name=f"radio_start-{self._radiomodule}-{self._serialPort}" - ) - await asyncio.gather(task, return_exceptions=False) + #task = asyncio.create_task( + # radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), + # name=f"radio_start-{self._radiomodule}-{self._serialPort}" + #) + await radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), + + # Run forever + await worker_loop(self) + + # We exit the worker_loop, shutdown time + await self.app.shutdown() + + #await asyncio.gather(task, return_exceptions=False) await asyncio.sleep(1) await _shutdown_remaining_task(self) @@ -140,12 +141,11 @@ async def start_zigpy_task(self, channel, extended_pan_id): async def _shutdown_remaining_task(self): """Cleanup tasks tied to the service's shutdown.""" - tasks = [t for t in asyncio.all_tasks() if t is not asyncio.current_task()] [task.cancel() for task in tasks] - self.log.logging("TransportZigpy", "Debug", f"Cancelling {len(tasks)} outstanding tasks") + self.log.logging("TransportZigpy", "Log", f"Cancelling {len(tasks)} outstanding tasks") await asyncio.gather(*tasks, return_exceptions=True) await asyncio.sleep(1) @@ -161,7 +161,6 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, from Classes.ZigpyTransport.AppBellows import App_bellows as App config = ezsp_configuration_setup(self, radio_specific_conf, serialPort) - self.log.logging("TransportZigpy", "Status", "Started radio %s port: %s" %( radiomodule, serialPort)) elif radiomodule =="znp": @@ -170,7 +169,6 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, from Classes.ZigpyTransport.AppZnp import App_znp as App config = znp_configuration_setup(self, radio_specific_conf, serialPort) - self.log.logging("TransportZigpy", "Status", "Started radio znp port: %s" %(serialPort)) elif radiomodule =="deCONZ": @@ -179,7 +177,6 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, from Classes.ZigpyTransport.AppDeconz import App_deconz as App config = deconz_configuration_setup(self, radio_specific_conf, serialPort) - self.log.logging("TransportZigpy", "Status", "Started radio deconz port: %s" %(serialPort)) else: @@ -189,7 +186,6 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, self.log.logging("TransportZigpy", "Error", "Error while starting Radio: %s on port %s with %s" %( radiomodule, serialPort, e)) self.log.logging("TransportZigpy", "Error", "%s" %traceback.format_exc()) - optional_configuration_setup(self, config, radio_specific_conf, set_extendedPanId, set_channel) try: @@ -205,7 +201,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, return if self.pluginParameters["Mode3"] == "True": - self.log.logging( "TransportZigpy", "Status", "Coordinator initialisation requested Channel %s(0x%02x) ExtendedPanId: 0x%016x" % ( + self.log.logging( "TransportZigpy", "Status", "Coordinator initialisation requested Channel %s(0x%02x) ExtendedPanId: 0x%016x" % ( set_channel, set_channel, set_extendedPanId), ) new_network = True @@ -213,7 +209,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, new_network = False if self.use_of_zigpy_persistent_db and self.app: - self.log.logging( "TransportZigpy", "Status", "Use of zigpy Persistent Db") + self.log.logging( "TransportZigpy", "Status", "Use of Zigpy Persistent Db") await self.app._load_db() await _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule) @@ -332,7 +328,6 @@ async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_netwo ) except Exception as e: self.log.logging( "TransportZigpy", "Error", "Error at startup %s" %e) - #print_stack( self ) if new_network: # Assume that the new network has been created @@ -344,10 +339,6 @@ async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_netwo post_coordinator_startup(self, radiomodule) - # Run forever - await worker_loop(self) - - await self.app.shutdown() def post_coordinator_startup(self, radiomodule): @@ -374,10 +365,8 @@ def display_network_infos(self): self.log.logging( "TransportZigpy", "Status", " Device IEEE: %s" %self.app.state.node_info.ieee) self.log.logging( "TransportZigpy", "Status", " Device NWK: 0x%04X" %self.app.state.node_info.nwk) self.log.logging( "TransportZigpy", "Status", " Network Update Id: 0x%04X" %self.app.state.network_info.nwk_update_id) - self.log.logging( "TransportZigpy", "Status", " PAN ID: 0x%04X" %self.app.state.network_info.pan_id) self.log.logging( "TransportZigpy", "Status", " Extended PAN ID: %s" %self.app.state.network_info.extended_pan_id) - self.log.logging( "TransportZigpy", "Status", " Channel: %s" %self.app.state.network_info.channel) self.log.logging( "TransportZigpy", "Debug", " Network key: " + ":".join( f"{c:02x}" for c in self.app.state.network_information.network_key.key )) @@ -388,9 +377,7 @@ async def worker_loop(self): self.writer_queue = queue.Queue() # We MUST use queue and not asyncio.Queue, because it is not compatible with the Domoticz framework while self.zigpy_running and self.writer_queue is not None: - self.log.logging("TransportZigpy", "Debug", "wait for command") command_to_send = await get_next_command(self) - self.log.logging("TransportZigpy", "Debug", f"got an entry {command_to_send} ({type(command_to_send)})") if command_to_send is None: continue @@ -402,31 +389,23 @@ async def worker_loop(self): break data = json.loads(command_to_send) - self.log.logging("TransportZigpy", "Debug", f"got a command {data['cmd']} ({type(data['cmd'])})") - - if self.pluginconf.pluginConf.get("ZiGateReactTime", False): - t_start = int(1000 * time.time()) + await process_incoming_command(self, data) - try: - await dispatch_command(self, data) - except (DeliveryError, APIException, ControllerException, InvalidFrame, - CommandNotRecognized, ValueError, InvalidResponse, - InvalidCommandResponse, asyncio.TimeoutError, RuntimeError) as e: - log_exception(self, type(e).__name__, e, data.get("cmd", ""), data.get("datas", "")) - if isinstance(e, (APIException, ControllerException)): - await asyncio.sleep(1.0) +async def process_incoming_command(self, data): + try: + await dispatch_command(self, data) - except Exception as e: - self.log.logging("TransportZigpy", "Error", f"Error while receiving a Plugin command: >{e}<") - handle_thread_error(self, e, data) + except (DeliveryError, APIException, ControllerException, InvalidFrame, + CommandNotRecognized, ValueError, InvalidResponse, + InvalidCommandResponse, asyncio.TimeoutError, RuntimeError) as e: + log_exception(self, type(e).__name__, e, data.get("cmd", ""), data.get("datas", "")) + if isinstance(e, (APIException, ControllerException)): + await asyncio.sleep(1.0) - if self.pluginconf.pluginConf.get("ZiGateReactTime", False): - t_end = int(1000 * time.time()) - t_elapse = t_end - t_start - self.statistics.add_timing_zigpy(t_elapse) - if t_elapse > 1000: - self.log.logging("TransportZigpy", "Log", f"process_raw_command (zigpyThread) spent more than 1s ({t_elapse} ms) frame: {data}") + except Exception as e: + self.log.logging("TransportZigpy", "Error", f"Error while receiving a Plugin command: >{e}<") + handle_thread_error(self, e, data) async def get_next_command(self): @@ -705,7 +684,24 @@ def check_transport_readiness(self): return False +def measure_execution_time(func): + async def wrapper(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False): + t_start = None + if self.pluginconf.pluginConf.get("ZigpyReactTime", False): + t_start = int(1000 * time.time()) + + try: + await func(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False) + + finally: + if t_start: + t_end = int(1000 * time.time()) + t_elapse = t_end - t_start + self.statistics.add_timing_zigpy(t_elapse) + self.log.logging("TransportZigpy", "Log", f"| (transport_request) | {t_elapse} | {Function} | {destination.nwk} | {destination.ieee} | {destination.model} | {destination.manufacturer_id} | {destination.is_initialized} | {destination.rssi} | {destination.lqi} |") + return wrapper +@measure_execution_time async def transport_request(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False): """Send a zigbee message based on different arguments diff --git a/plugin.py b/plugin.py index f66d7f344..af26b6d1c 100644 --- a/plugin.py +++ b/plugin.py @@ -544,7 +544,7 @@ def onStart(self): self.log.logging("Plugin", "Debug", "IEEE2NWK after checkListOfDevice2Devices : " + str(self.IEEE2NWK)) # Create Statistics object - self.statistics = TransportStatistics(self.pluginconf) + self.statistics = TransportStatistics(self.pluginconf, self.log) # Connect to Coordinator only when all initialisation are properly done. self.log.logging("Plugin", "Status", "Transport mode: %s" % self.transport) From 627bf95d4aa1813fa44b25fdf74a3487a1c626e6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 20 Apr 2024 19:22:22 +0200 Subject: [PATCH 230/301] Plugin wip-develop version 7.2.073 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 42d138fb2..484fa6e2c 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.072"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.073"} \ No newline at end of file From 399580ee4a0c60a047a1d1a55dac6da1b5c323a3 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 14:12:56 +0200 Subject: [PATCH 231/301] adding more verbose to understand --- Modules/tuyaTS0601.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Modules/tuyaTS0601.py b/Modules/tuyaTS0601.py index 06d600e10..93fbc02fe 100644 --- a/Modules/tuyaTS0601.py +++ b/Modules/tuyaTS0601.py @@ -114,14 +114,14 @@ def ts0601_actuator( self, NwkId, command, value=None): if str_dp is None: self.log.logging("Tuya0601", "Error", "ts0601_actuator - unknow command %s in config file" % command) return False - + if "action_Exp" in dps_mapping[ str_dp ]: # Correct Value to proper format value = evaluate_expression_with_data(self, dps_mapping[ str_dp ]["action_Exp"], value) self.log.logging("Tuya0601", "Debug", " corrected value: %s" % ( value )) - + dp = int(str_dp, 16) - + self.log.logging("Tuya0601", "Debug", "ts0601_actuator - requesting %s %s %s" %( command, dp, value)) @@ -130,12 +130,19 @@ def ts0601_actuator( self, NwkId, command, value=None): ts0601_tuya_action(self, NwkId, "01", command, dp, dt, value) return + func_source = None if command in TS0601_COMMANDS: - # TS0601_COMMANDS[ command ] is callable func = TS0601_COMMANDS[ command ] - + func_source = "TS0601_COMMANDS" else: func = DP_ACTION_FUNCTION[ command ] + func_source = "DP_ACTION_FUNCTION" + + if not callable( func ): + # Huston we have a problem + self.log.logging("Tuya0601", "Error", "ts0601_actuator - don't get a callable function for nwkid: %s %s %s (%s) source: %s command: %s, value: %s , dp: %s, str_dp: %s %s" %( + NwkId, model_name, func, type(func), func_source, command, value, dp, str_dp, dps_mapping), NwkId) + return if value is not None: func(self, NwkId, "01", dp, value ) From f53dd2a4a88344f0358d01aee75d1083540321d6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 14:13:04 +0200 Subject: [PATCH 232/301] Plugin wip-develop version 7.2.074 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 484fa6e2c..4df912395 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.073"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.074"} \ No newline at end of file From 110ab6e6f2f57ea19680de3ec7900c4acb820904 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 15:24:09 +0200 Subject: [PATCH 233/301] check for tuple and list --- Modules/tuyaTS0601.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Modules/tuyaTS0601.py b/Modules/tuyaTS0601.py index 93fbc02fe..b5c5d22aa 100644 --- a/Modules/tuyaTS0601.py +++ b/Modules/tuyaTS0601.py @@ -110,6 +110,7 @@ def ts0601_actuator( self, NwkId, command, value=None): self.log.logging("Tuya0601", "Error", "ts0601_actuator - unknow command %s in core plugin" % command) return False + # Check if we have the command via a TS0601_DP str_dp = ts0601_actuator_dp( command, dps_mapping) if str_dp is None: self.log.logging("Tuya0601", "Error", "ts0601_actuator - unknow command %s in config file" % command) @@ -125,7 +126,7 @@ def ts0601_actuator( self, NwkId, command, value=None): self.log.logging("Tuya0601", "Debug", "ts0601_actuator - requesting %s %s %s" %( command, dp, value)) - if command in TS0601_COMMANDS and isinstance(TS0601_COMMANDS[ command ], list): + if command in TS0601_COMMANDS and isinstance(TS0601_COMMANDS[ command ], (list, tuple)): dt = TS0601_COMMANDS[ command ][1] ts0601_tuya_action(self, NwkId, "01", command, dp, dt, value) return @@ -140,8 +141,17 @@ def ts0601_actuator( self, NwkId, command, value=None): if not callable( func ): # Huston we have a problem - self.log.logging("Tuya0601", "Error", "ts0601_actuator - don't get a callable function for nwkid: %s %s %s (%s) source: %s command: %s, value: %s , dp: %s, str_dp: %s %s" %( - NwkId, model_name, func, type(func), func_source, command, value, dp, str_dp, dps_mapping), NwkId) + _context = { + "Nwkid": NwkId, + "Model":model_name, + "command": command, + "value": value, + "dp": dp, + "str_dp": str_dp, + "dps_mapping": dps_mapping + } + self.log.logging("Tuya0601", "Error", "ts0601_actuator - don't get a callable function for nwkid: %s" %( NwkId ), nwkid=NwkId, context=_context) + return if value is not None: @@ -149,7 +159,6 @@ def ts0601_actuator( self, NwkId, command, value=None): else: func(self, NwkId, "01", dp ) - # Helpers def process_sensor_data(self, sensor_type, dps_mapping_item, value, Devices, NwkId, domo_ep): From a7e3cd1d4e6f810f7a81a4d6e873e1180f0f93b4 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 15:43:18 +0200 Subject: [PATCH 234/301] Plugin wip-develop version 7.2.075 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4df912395..08bfc11e7 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.074"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.075"} \ No newline at end of file From ab4bf4b88296213358605d65ff78feea6adea36f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:15:08 +0200 Subject: [PATCH 235/301] remove obsolete code, and rely on the optimized version. Do not queue if it has not to be logged --- Classes/LoggingManagement.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Classes/LoggingManagement.py b/Classes/LoggingManagement.py index 5329b14e5..e4c43ddc4 100644 --- a/Classes/LoggingManagement.py +++ b/Classes/LoggingManagement.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: deufo & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module : logging.py @@ -54,8 +61,6 @@ def __init__(self, pluginconf, PluginHealth, HardwareID, ListOfDevices, permitTo self.reload_debug_settings = True - self.not_optimized = self.pluginconf.pluginConf.get("loggingNotOptimized", False) - start_logging_thread(self) # Thread log filter configuration @@ -268,18 +273,16 @@ def logging(self, module, logType, message, nwkid=None, context=None): else: context = { "StackTrace": get_stack_trace() } - # Do not enqueue if there is nothing to log. (except if self.not_optimized set to True) if isinstance( module, str): - if _is_to_be_logged(self, logType, module) or self.not_optimized: + if _is_to_be_logged(self, logType, module): enqueue_logging( self, thread_id, module, logType, message, nwkid, context ) elif isinstance( module, list): for module_instance in module: - if _is_to_be_logged(self, logType, module_instance) or self.not_optimized: + if _is_to_be_logged(self, logType, module_instance): enqueue_logging( self, thread_id, module_instance, logType, message, nwkid, context ) - def _is_to_be_logged(self, logType, module): if logType in ( "Log", "Status", "Error"): return True From a32d5abd63cc1b65f5c80079e232a7e323e195d9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:15:54 +0200 Subject: [PATCH 236/301] remove EventLoopThread and loggingNotOptimized as not used any more, move ZigpyReactTime to disable by default --- Classes/PluginConf.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index b8c9a4d5d..a948101e3 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -1,8 +1,9 @@ #!/usr/bin/env python3 # coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Author: pipiche38 # + """ Class PluginConf @@ -318,7 +319,7 @@ "ZLinky": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZclClusters": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZiGateReactTime": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, - "ZigpyReactTime": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "ZigpyReactTime": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Zigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyEZSP": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyTopology": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, @@ -382,8 +383,6 @@ "enableZigpyPersistentInFile": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, "enableZigpyPersistentInMemory": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, "EventLoopInstrumentation": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, - "EventLoopThread": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, - "loggingNotOptimized": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, }, }, "Reserved": { From 91755913e841bca9a3b5d88f30f53237b6485556 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:16:13 +0200 Subject: [PATCH 237/301] remove unnecessary log --- Classes/ZigpyTransport/AppBellows.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index fa09f6c85..79274bc99 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -51,7 +51,6 @@ def _remove_db_listeners(self): async def initialize(self, *, auto_form: bool = False, force_form: bool = False): await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) - LOGGER.info("EZSP Configuration: %s", self.config) async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): From 984261c5e8d07bd5afaaa61de69080645fc7599d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:16:27 +0200 Subject: [PATCH 238/301] remove unnecessary log --- Classes/ZigpyTransport/AppDeconz.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 4b47c4639..a0c59b918 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -50,7 +50,6 @@ def _remove_db_listeners(self): async def initialize(self, *, auto_form: bool = False, force_form: bool = False): await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) - LOGGER.info("deCONZ Configuration: %s", self.config) async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): From 67e54fc972f6bdc4a3a71a6a324d02d6c9e191b3 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:16:40 +0200 Subject: [PATCH 239/301] remove unnecessary log --- Classes/ZigpyTransport/AppZnp.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 921230cd7..c7e0fa2e1 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -52,7 +52,6 @@ def _remove_db_listeners(self): async def initialize(self, *, auto_form: bool = False, force_form: bool = False): await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) - LOGGER.info("ZNP Configuration: %s", self.config) async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): From 6e800d38da71cdf84d39dbd3cb5bdb109a09df40 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:17:14 +0200 Subject: [PATCH 240/301] refactor --- Classes/ZigpyTransport/zigpyThread.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index aac40ecce..3e9452644 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -119,13 +119,11 @@ async def start_zigpy_task(self, channel, extended_pan_id): self.log.logging( "TransportZigpy", "Debug", f"start_zigpy_task -extendedPANID {self.pluginconf.pluginConf['extendedPANID']} {extended_pan_id}", ) - #task = asyncio.create_task( - # radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), - # name=f"radio_start-{self._radiomodule}-{self._serialPort}" - #) await radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), # Run forever + self.writer_queue = queue.Queue() # We MUST use queue and not asyncio.Queue, because it is not compatible with the Domoticz framework + await worker_loop(self) # We exit the worker_loop, shutdown time @@ -225,10 +223,6 @@ def ezsp_configuration_setup(self, bellows_conf, serialPort): "handle_unknown_devices": True, } - if not self.pluginconf.pluginConf["EventLoopThread"]: - self.log.logging("TransportZigpy", "Status", "Disable Bellows specific EventLoop thread") - config[bellows_conf.CONF_USE_THREAD] = False - if "BellowsNoMoreEndDeviceChildren" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["BellowsNoMoreEndDeviceChildren"]: self.log.logging("TransportZigpy", "Status", "Set The maximum number of end device children that Coordinater will support to 0") config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_MAX_END_DEVICE_CHILDREN"] = 0 @@ -340,7 +334,6 @@ async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_netwo post_coordinator_startup(self, radiomodule) - def post_coordinator_startup(self, radiomodule): # Send Network information to plugin, in order to poplulate various objetcs self.forwarder_queue.put(build_plugin_8009_frame_content(self, radiomodule)) @@ -374,9 +367,7 @@ def display_network_infos(self): async def worker_loop(self): self.log.logging("TransportZigpy", "Debug", "worker_loop - ZigyTransport: worker_loop start.") - self.writer_queue = queue.Queue() # We MUST use queue and not asyncio.Queue, because it is not compatible with the Domoticz framework - - while self.zigpy_running and self.writer_queue is not None: + while self.zigpy_running: command_to_send = await get_next_command(self) if command_to_send is None: @@ -388,11 +379,11 @@ async def worker_loop(self): self.zigpy_running = False break - data = json.loads(command_to_send) - await process_incoming_command(self, data) + await process_incoming_command(self, command_to_send), -async def process_incoming_command(self, data): +async def process_incoming_command(self, command_to_send): + data = json.loads(command_to_send) try: await dispatch_command(self, data) From 7469d928a37f040054ecd56ae79cd783b144f0dd Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 24 Apr 2024 20:42:26 +0200 Subject: [PATCH 241/301] Plugin wip-develop version 7.2.076 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 08bfc11e7..de253d463 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.075"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.076"} \ No newline at end of file From 996ba51ca2e1a86aaf0958bc045fce5babeb6848 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 25 Apr 2024 09:00:28 +0200 Subject: [PATCH 242/301] Update WebUI --- www/z4d/12.14d74df58224a7ef.js | 1 + www/z4d/12.9d3b53b1dced2927.js | 1 - www/z4d/317.388031fbd5f6515c.js | 1 - www/z4d/317.59bbe14d2339e649.js | 1 + www/z4d/577.b613e50ce344a936.js | 1 - www/z4d/577.d8ab166ec1c4b8d8.js | 1 + www/z4d/index.html | 2 +- www/z4d/runtime.848b3c2fbf7395f7.js | 1 - www/z4d/runtime.c9d9cd43c9ea2eb9.js | 1 + 9 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 www/z4d/12.14d74df58224a7ef.js delete mode 100644 www/z4d/12.9d3b53b1dced2927.js delete mode 100644 www/z4d/317.388031fbd5f6515c.js create mode 100644 www/z4d/317.59bbe14d2339e649.js delete mode 100644 www/z4d/577.b613e50ce344a936.js create mode 100644 www/z4d/577.d8ab166ec1c4b8d8.js delete mode 100644 www/z4d/runtime.848b3c2fbf7395f7.js create mode 100644 www/z4d/runtime.c9d9cd43c9ea2eb9.js diff --git a/www/z4d/12.14d74df58224a7ef.js b/www/z4d/12.14d74df58224a7ef.js new file mode 100644 index 000000000..933176879 --- /dev/null +++ b/www/z4d/12.14d74df58224a7ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}if(2&n){e.XpG();const t=e.sdS(18);e.R7$(7),e.FS9("placeholder",e.bMT(8,2,"device.byname.placeholder")),e.Y8G("value",null==t.filters.global?null:t.filters.global.value)}}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function S(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function $(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,S,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,$,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.title")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.text"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","device",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","value","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,4,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/12.9d3b53b1dced2927.js b/www/z4d/12.9d3b53b1dced2927.js deleted file mode 100644 index d46547041..000000000 --- a/www/z4d/12.9d3b53b1dced2927.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&n&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"device.byname.placeholder")))}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function $(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function S(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,$,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,S,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.title")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.text"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","device",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,3,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/317.388031fbd5f6515c.js b/www/z4d/317.388031fbd5f6515c.js deleted file mode 100644 index a20d5d1cc..000000000 --- a/www/z4d/317.388031fbd5f6515c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[317],{22317:(V,m,o)=>{o.r(m),o.d(m,{ManufacturerModule:()=>z});var h=o(93887),d=o(93331),u=o(38117);class _{IRCode;NwkId;constructor(l,n){this.IRCode=l,this.NwkId=n}}var e=o(54438),E=o(3366),g=o(45794),p=o(19664),F=o(89417),i=o(46247),I=o(5779),k=o(22242);const v=()=>["NwkId","Name","IEEE","Model","IRCode"],b=()=>[10,25,50];function T(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",13),e.EFF(2,"\n "),e.j41(3,"span",14),e.EFF(4,"\n "),e.nrm(5,"i",15),e.EFF(6,"\n "),e.j41(7,"input",16),e.nI1(8,"translate"),e.bIt("input",function(r){e.eBV(n),e.XpG();const s=e.sdS(21);return e.Njj(s.filterGlobal(r.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}2&t&&(e.R7$(7),e.FS9("placeholder",e.bMT(8,1,"manufacturer.casaia.placeholder")))}function R(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",17),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",18),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",19),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",20),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",21),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",22),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",23),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",24),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",25),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",26),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,5,"manufacturer.casaia.nwkid"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,7,"manufacturer.casaia.name"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,9,"manufacturer.casaia.ieee"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,11,"manufacturer.casaia.model"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,13,"manufacturer.casaia.ircode"),""))}function y(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function j(t,l){if(1&t){const n=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(r){e.eBV(n);const s=e.XpG().$implicit;return e.DH7(s.IRCode,r)||(s.IRCode=r),e.Njj(r)}),e.bIt("change",function(r){e.eBV(n);const s=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(r,s.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&t){const n=e.XpG().$implicit;e.R7$(),e.R50("ngModel",n.IRCode)}}function w(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",27),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,y,3,1,"ng-template",28),e.EFF(20,"\n "),e.DNE(21,j,3,1,"ng-template",29),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s()()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",n.NwkId,"\n "),e.R7$(3),e.SpI("\n ",n.Name,"\n "),e.R7$(3),e.SpI("\n ",n.IEEE,"\n "),e.R7$(3),e.SpI("\n ",n.Model,"\n "),e.R7$(2),e.Y8G("pEditableColumn",n.IRCode)}}let S=(()=>{class t{apiService;toastr;translate;rows;temp=[];hasEditing=!1;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.getCasaiaDevices()}updateIRCode(n,a){this.hasEditing=!0,this.rows.find(s=>s.NwkId===a).IRCode=n.target.value}updateCasaiaDevices(){const n=[];this.rows.forEach(a=>{n.push(new _(a.IRCode,a.NwkId))}),this.apiService.putCasiaIrcode(n).subscribe(()=>{this.hasEditing=!1,this.getCasaiaDevices(),this.toastr.success(this.translate.instant("api.global.succes.update.notify"))})}getCasaiaDevices(){this.apiService.getCasiaDevices().subscribe(n=>{this.rows=n,this.temp=[...this.rows]})}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-casaia"]],decls:36,vars:23,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","casaia",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","placeholder"],["pSortableColumn","NwkId"],["field","NwkId"],["pSortableColumn","Name"],["field","Name"],["pSortableColumn","IEEE"],["field","IEEE"],["pSortableColumn","Model"],["field","Model"],["pSortableColumn","IRCode",2,"width","8rem"],["field","IRCode"],["pEditableColumnField","IRCode",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"]],template:function(a,r){if(1&a){const s=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.j41(9,"button",5),e.nI1(10,"translate"),e.bIt("click",function(){return e.eBV(s),e.Njj(r.updateCasaiaDevices())}),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.nrm(15,"h5",7),e.nI1(16,"translate"),e.EFF(17,"\n "),e.j41(18,"div",8),e.EFF(19,"\n "),e.j41(20,"p-table",9,0),e.nI1(22,"translate"),e.EFF(23,"\n "),e.DNE(24,T,12,3,"ng-template",10),e.EFF(25,"\n "),e.DNE(26,R,34,15,"ng-template",11),e.EFF(27,"\n "),e.DNE(28,w,24,5,"ng-template",12),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n"),e.k0s(),e.EFF(35,"\n")}2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,13,"manufacturer.casaia.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(10,15,"manufacturer.casaia.validate.button")),e.Y8G("disabled",!r.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(16,17,"manufacturer.casaia.subtitle"),e.npT),e.R7$(5),e.FS9("currentPageReportTemplate",e.bMT(22,19,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(21,v))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(22,b))("value",r.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[F.me,F.BC,F.vS,p.Mm,i.XI,I.Ei,i.Tg,i.hp,i.c5,i.yc,k.S,p.D9]})}return t})();class M{key;value}var N=o(96354),f=o(60177),C=o(97013);const $=()=>[10,25,50];function D(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&t){const n=l.item;e.R7$(5),e.SpI(" : ",n.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",n.Nwkid,"")}}function P(t,l){if(1&t&&(e.j41(0,"p",12),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&t){const n=e.XpG();e.R7$(),e.SpI("\n ",e.bMT(2,1,"manufacturer.zlinky.".concat(n.deviceSelected.protocole)),"\n ")}}function G(t,l){1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th"),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")),2&t&&(e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.key"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,4,"manufacturer.zlinky.value"),"\n "))}function x(t,l){if(1&t&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"td"),e.EFF(8),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&t){const n=l.$implicit;e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.".concat(n.key)),"\n "),e.R7$(4),e.SpI("\n ",n.value,"\n ")}}function O(t,l){if(1&t&&(e.j41(0,"p-table",13,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,G,12,6,"ng-template",14),e.EFF(5,"\n "),e.DNE(6,x,10,4,"ng-template",15),e.EFF(7,"\n "),e.k0s()),2&t){const n=e.XpG();e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,$))("value",n.deviceSelected.ParametersForDisplay)("rows",10)("paginator",!0)("scrollable",!0)}}let X=(()=>{class t{apiService;toastr;translate;zlinkys$;deviceSelected;constructor(n,a,r){this.apiService=n,this.toastr=a,this.translate=r}ngOnInit(){this.zlinkys$=this.apiService.getZlinky().pipe((0,N.T)(n=>(n.forEach(a=>{a.protocole="PROTOCOL_LINKY_"+a["PROTOCOL Linky"],a.ParametersForDisplay=[],a.Parameters.forEach(r=>{const s=new M;s.key=Object.keys(r)[0],s.value=Object.values(r)[0],a.ParametersForDisplay.push(s)})}),n)))}getConfiguration(n){this.deviceSelected=n}static \u0275fac=function(a){return new(a||t)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:t,selectors:[["app-manufacturer-zlinky"]],decls:33,vars:17,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["bindLabel","ZDeviceName","appendTo","body",1,"w-25",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],["class","mt-3 mb-3 font-weight-bold",4,"ngIf"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","zlinky",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable",4,"ngIf"],[1,"mt-3","mb-3","font-weight-bold"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","zlinky",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"]],template:function(a,r){1&a&&(e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.nrm(12,"h5",6),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.bIt("change",function(c){return r.getConfiguration(c)})("clear",function(){return r.deviceSelected=null}),e.EFF(20,"\n "),e.DNE(21,D,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n\n "),e.DNE(24,P,3,3,"p",10),e.EFF(25,"\n\n "),e.DNE(26,O,8,11,"p-table",11),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n")),2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,9,"manufacturer.zlinky.header"),"\n "),e.R7$(5),e.Y8G("innerHTML",e.bMT(13,11,"manufacturer.zlinky.subtitle"),e.npT),e.R7$(5),e.FS9("placeholder",e.bMT(18,13,"manufacturer.zlinky.placeholder")),e.Y8G("items",e.bMT(19,15,r.zlinkys$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(7),e.Y8G("ngIf",r.deviceSelected),e.R7$(2),e.Y8G("ngIf",r.deviceSelected))},dependencies:[f.bT,C.vr,C.Uq,i.XI,I.Ei,f.Jj,p.D9]})}return t})();const L=[{path:"casaia",component:S,data:{title:(0,u.o6)("manufacturer.casaia")}},{path:"zlinky",component:X,data:{title:(0,u.o6)("manufacturer.zlinky")}}];let Z=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[d.iI.forChild(L),d.iI]})}return t})(),z=(()=>{class t{static \u0275fac=function(a){return new(a||t)};static \u0275mod=e.$C({type:t});static \u0275inj=e.G2t({imports:[Z,h.G]})}return t})()}}]); \ No newline at end of file diff --git a/www/z4d/317.59bbe14d2339e649.js b/www/z4d/317.59bbe14d2339e649.js new file mode 100644 index 000000000..7689e1dc0 --- /dev/null +++ b/www/z4d/317.59bbe14d2339e649.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[317],{22317:(V,m,l)=>{l.r(m),l.d(m,{ManufacturerModule:()=>z});var h=l(93887),u=l(93331),d=l(38117);class _{IRCode;NwkId;constructor(o,t){this.IRCode=o,this.NwkId=t}}var e=l(54438),E=l(3366),g=l(45794),p=l(19664),F=l(89417),i=l(46247),I=l(5779),k=l(22242);const v=()=>["NwkId","Name","IEEE","Model","IRCode"],b=()=>[10,25,50];function T(n,o){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",13),e.EFF(2,"\n "),e.j41(3,"span",14),e.EFF(4,"\n "),e.nrm(5,"i",15),e.EFF(6,"\n "),e.j41(7,"input",16),e.nI1(8,"translate"),e.bIt("input",function(s){e.eBV(t),e.XpG();const r=e.sdS(21);return e.Njj(r.filterGlobal(s.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}if(2&n){e.XpG();const t=e.sdS(21);e.R7$(7),e.FS9("placeholder",e.bMT(8,2,"manufacturer.casaia.placeholder")),e.Y8G("value",null==t.filters.global?null:t.filters.global.value)}}function R(n,o){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",17),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",18),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",19),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",20),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",21),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",22),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",23),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",24),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",25),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",26),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,5,"manufacturer.casaia.nwkid"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,7,"manufacturer.casaia.name"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,9,"manufacturer.casaia.ieee"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,11,"manufacturer.casaia.model"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,13,"manufacturer.casaia.ircode"),""))}function y(n,o){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(s){e.eBV(t);const r=e.XpG().$implicit;return e.DH7(r.IRCode,s)||(r.IRCode=s),e.Njj(s)}),e.bIt("change",function(s){e.eBV(t);const r=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(s,r.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.IRCode)}}function j(n,o){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",30),e.mxI("ngModelChange",function(s){e.eBV(t);const r=e.XpG().$implicit;return e.DH7(r.IRCode,s)||(r.IRCode=s),e.Njj(s)}),e.bIt("change",function(s){e.eBV(t);const r=e.XpG().$implicit,c=e.XpG();return e.Njj(c.updateIRCode(s,r.NwkId))}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.IRCode)}}function w(n,o){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td",27),e.EFF(16,"\n "),e.j41(17,"p-cellEditor"),e.EFF(18,"\n "),e.DNE(19,y,3,1,"ng-template",28),e.EFF(20,"\n "),e.DNE(21,j,3,1,"ng-template",29),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n "),e.k0s()()),2&n){const t=o.$implicit;e.R7$(4),e.SpI("\n ",t.NwkId,"\n "),e.R7$(3),e.SpI("\n ",t.Name,"\n "),e.R7$(3),e.SpI("\n ",t.IEEE,"\n "),e.R7$(3),e.SpI("\n ",t.Model,"\n "),e.R7$(2),e.Y8G("pEditableColumn",t.IRCode)}}let S=(()=>{class n{apiService;toastr;translate;rows;temp=[];hasEditing=!1;constructor(t,a,s){this.apiService=t,this.toastr=a,this.translate=s}ngOnInit(){this.getCasaiaDevices()}updateIRCode(t,a){this.hasEditing=!0,this.rows.find(r=>r.NwkId===a).IRCode=t.target.value}updateCasaiaDevices(){const t=[];this.rows.forEach(a=>{t.push(new _(a.IRCode,a.NwkId))}),this.apiService.putCasiaIrcode(t).subscribe(()=>{this.hasEditing=!1,this.getCasaiaDevices(),this.toastr.success(this.translate.instant("api.global.succes.update.notify"))})}getCasaiaDevices(){this.apiService.getCasiaDevices().subscribe(t=>{this.rows=t,this.temp=[...this.rows]})}static \u0275fac=function(a){return new(a||n)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-manufacturer-casaia"]],decls:36,vars:23,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","casaia",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","value","placeholder"],["pSortableColumn","NwkId"],["field","NwkId"],["pSortableColumn","Name"],["field","Name"],["pSortableColumn","IEEE"],["field","IEEE"],["pSortableColumn","Model"],["field","Model"],["pSortableColumn","IRCode",2,"width","8rem"],["field","IRCode"],["pEditableColumnField","IRCode",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"]],template:function(a,s){if(1&a){const r=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.j41(9,"button",5),e.nI1(10,"translate"),e.bIt("click",function(){return e.eBV(r),e.Njj(s.updateCasaiaDevices())}),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div",6),e.EFF(14,"\n "),e.nrm(15,"h5",7),e.nI1(16,"translate"),e.EFF(17,"\n "),e.j41(18,"div",8),e.EFF(19,"\n "),e.j41(20,"p-table",9,0),e.nI1(22,"translate"),e.EFF(23,"\n "),e.DNE(24,T,12,4,"ng-template",10),e.EFF(25,"\n "),e.DNE(26,R,34,15,"ng-template",11),e.EFF(27,"\n "),e.DNE(28,w,24,5,"ng-template",12),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n"),e.k0s(),e.EFF(35,"\n")}2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,13,"manufacturer.casaia.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(10,15,"manufacturer.casaia.validate.button")),e.Y8G("disabled",!s.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(16,17,"manufacturer.casaia.subtitle"),e.npT),e.R7$(5),e.FS9("currentPageReportTemplate",e.bMT(22,19,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(21,v))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(22,b))("value",s.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[F.me,F.BC,F.vS,p.Mm,i.XI,I.Ei,i.Tg,i.hp,i.c5,i.yc,k.S,p.D9]})}return n})();class M{key;value}var N=l(96354),f=l(60177),C=l(97013);const $=()=>[10,25,50];function D(n,o){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"span"),e.EFF(2," "),e.j41(3,"b"),e.EFF(4,"Name"),e.k0s(),e.EFF(5),e.j41(6,"b"),e.EFF(7,"NwkId"),e.k0s(),e.EFF(8),e.k0s(),e.EFF(9,"\n ")),2&n){const t=o.item;e.R7$(5),e.SpI(" : ",t.ZDeviceName," - "),e.R7$(3),e.SpI(" : ",t.Nwkid,"")}}function P(n,o){if(1&n&&(e.j41(0,"p",12),e.EFF(1),e.nI1(2,"translate"),e.k0s()),2&n){const t=e.XpG();e.R7$(),e.SpI("\n ",e.bMT(2,1,"manufacturer.zlinky.".concat(t.deviceSelected.protocole)),"\n ")}}function G(n,o){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th"),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.key"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,4,"manufacturer.zlinky.value"),"\n "))}function x(n,o){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"td"),e.EFF(8),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&n){const t=o.$implicit;e.R7$(4),e.SpI("\n ",e.bMT(5,2,"manufacturer.zlinky.".concat(t.key)),"\n "),e.R7$(4),e.SpI("\n ",t.value,"\n ")}}function X(n,o){if(1&n&&(e.j41(0,"p-table",13,0),e.nI1(2,"translate"),e.EFF(3,"\n "),e.DNE(4,G,12,6,"ng-template",14),e.EFF(5,"\n "),e.DNE(6,x,10,4,"ng-template",15),e.EFF(7,"\n "),e.k0s()),2&n){const t=e.XpG();e.FS9("currentPageReportTemplate",e.bMT(2,8,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(10,$))("value",t.deviceSelected.ParametersForDisplay)("rows",10)("paginator",!0)("scrollable",!0)}}let O=(()=>{class n{apiService;toastr;translate;zlinkys$;deviceSelected;constructor(t,a,s){this.apiService=t,this.toastr=a,this.translate=s}ngOnInit(){this.zlinkys$=this.apiService.getZlinky().pipe((0,N.T)(t=>(t.forEach(a=>{a.protocole="PROTOCOL_LINKY_"+a["PROTOCOL Linky"],a.ParametersForDisplay=[],a.Parameters.forEach(s=>{const r=new M;r.key=Object.keys(s)[0],r.value=Object.values(s)[0],a.ParametersForDisplay.push(r)})}),t)))}getConfiguration(t){this.deviceSelected=t}static \u0275fac=function(a){return new(a||n)(e.rXU(E.G),e.rXU(g.tw),e.rXU(p.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-manufacturer-zlinky"]],decls:33,vars:17,consts:[["dt1",""],[1,"row","row-cols-1","row-cols-xxl-2","row-cols-xl-1","g-4"],[1,"col"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"card-title",3,"innerHTML"],[1,"card-text"],["bindLabel","ZDeviceName","appendTo","body",1,"w-25",3,"change","clear","items","multiple","closeOnSelect","searchable","placeholder"],["ng-option-tmp",""],["class","mt-3 mb-3 font-weight-bold",4,"ngIf"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","zlinky",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable",4,"ngIf"],[1,"mt-3","mb-3","font-weight-bold"],["styleClass","p-datatable-sm","responsiveLayout","scroll","stateStorage","local","stateKey","zlinky",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","header"],["pTemplate","body"]],template:function(a,s){1&a&&(e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"div",3),e.EFF(5,"\n "),e.j41(6,"div",4),e.EFF(7),e.nI1(8,"translate"),e.k0s(),e.EFF(9,"\n "),e.j41(10,"div",5),e.EFF(11,"\n "),e.nrm(12,"h5",6),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",7),e.EFF(16,"\n "),e.j41(17,"ng-select",8),e.nI1(18,"translate"),e.nI1(19,"async"),e.bIt("change",function(c){return s.getConfiguration(c)})("clear",function(){return s.deviceSelected=null}),e.EFF(20,"\n "),e.DNE(21,D,10,2,"ng-template",9),e.EFF(22,"\n "),e.k0s(),e.EFF(23,"\n\n "),e.DNE(24,P,3,3,"p",10),e.EFF(25,"\n\n "),e.DNE(26,X,8,11,"p-table",11),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n")),2&a&&(e.R7$(7),e.SpI("\n ",e.bMT(8,9,"manufacturer.zlinky.header"),"\n "),e.R7$(5),e.Y8G("innerHTML",e.bMT(13,11,"manufacturer.zlinky.subtitle"),e.npT),e.R7$(5),e.FS9("placeholder",e.bMT(18,13,"manufacturer.zlinky.placeholder")),e.Y8G("items",e.bMT(19,15,s.zlinkys$))("multiple",!1)("closeOnSelect",!0)("searchable",!0),e.R7$(7),e.Y8G("ngIf",s.deviceSelected),e.R7$(2),e.Y8G("ngIf",s.deviceSelected))},dependencies:[f.bT,C.vr,C.Uq,i.XI,I.Ei,f.Jj,p.D9]})}return n})();const L=[{path:"casaia",component:S,data:{title:(0,d.o6)("manufacturer.casaia")}},{path:"zlinky",component:O,data:{title:(0,d.o6)("manufacturer.zlinky")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[u.iI.forChild(L),u.iI]})}return n})(),z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,h.G]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/577.b613e50ce344a936.js b/www/z4d/577.b613e50ce344a936.js deleted file mode 100644 index 6069f50ce..000000000 --- a/www/z4d/577.b613e50ce344a936.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[577],{74577:(B,m,s)=>{s.r(m),s.d(m,{GroupModule:()=>X});var p=s(89417),h=s(93887),F=s(93331),g=s(38117),_=s(12298),f=s(28990),t=s(54438),G=s(88652),b=s(3366),d=s(19664),I=s(45794),j=s(38852),E=s(97013),c=s(46247),v=s(5779),k=s(22242);const C=["content"],N=()=>["_GroupId","GroupName"],T=()=>[10,25,50];function S(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",12),t.EFF(2,"\n "),t.j41(3,"span",13),t.EFF(4,"\n "),t.nrm(5,"i",14),t.EFF(6,"\n "),t.j41(7,"input",15),t.nI1(8,"translate"),t.bIt("input",function(o){t.eBV(e),t.XpG();const r=t.sdS(16);return t.Njj(r.filterGlobal(o.target.value,"contains"))}),t.k0s(),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"button",16),t.bIt("click",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.add())}),t.k0s(),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n ")}2&i&&(t.R7$(7),t.FS9("placeholder",t.bMT(8,1,"device.byname.placeholder")))}function w(i,l){1&i&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.nrm(3,"th"),t.EFF(4,"\n "),t.j41(5,"th",17),t.EFF(6),t.nI1(7,"translate"),t.nrm(8,"p-sortIcon",18),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"th",19),t.EFF(12),t.nI1(13,"translate"),t.nrm(14,"p-sortIcon",20),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.j41(17,"th"),t.EFF(18),t.nI1(19,"translate"),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th"),t.EFF(22),t.nI1(23,"translate"),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n ")),2&i&&(t.R7$(6),t.SpI("\n ",t.bMT(7,4,"group.create.shortid.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(13,6,"group.create.groupname.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(19,8,"group.create.devices.column"),"\n "),t.R7$(4),t.SpI("\n ",t.bMT(23,10,"group.create.coordinator.column"),"\n "))}function R(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function $(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function M(i,l){if(1&i&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Widget"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Ep"),t.k0s(),t.EFF(11),t.j41(12,"b"),t.EFF(13,"Id"),t.k0s(),t.EFF(14),t.j41(15,"b"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.k0s(),t.EFF(18,"\n ")),2&i){const e=l.item;t.R7$(5),t.SpI(" : ",e.Name," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" : ",e.Ep," -\n "),t.R7$(3),t.SpI(" : ",e._ID," -\n "),t.R7$(2),t.JRh(e.ZDeviceName)}}function y(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4,"\n "),t.j41(5,"i",21),t.nI1(6,"translate"),t.bIt("click",function(){const o=t.eBV(e).$implicit,r=t.XpG();return t.Njj(r.delete(o))}),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td",22),t.EFF(13,"\n "),t.j41(14,"p-cellEditor"),t.EFF(15,"\n "),t.DNE(16,R,3,1,"ng-template",23),t.EFF(17,"\n "),t.DNE(18,$,3,1,"ng-template",24),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.k0s(),t.EFF(21,"\n "),t.j41(22,"td"),t.EFF(23,"\n "),t.j41(24,"ng-select",25),t.mxI("ngModelChange",function(o){const r=t.eBV(e).$implicit;return t.DH7(r.devicesSelected,o)||(r.devicesSelected=o),t.Njj(o)}),t.bIt("change",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.isFormValid())}),t.EFF(25,"\n "),t.DNE(26,M,19,5,"ng-template",26),t.EFF(27,"\n "),t.k0s(),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.j41(30,"td"),t.EFF(31,"\n "),t.j41(32,"div",27),t.EFF(33,"\n "),t.j41(34,"input",28),t.bIt("click",function(o){const r=t.eBV(e).$implicit,a=t.XpG();return t.Njj(a.updateCoordinator(o,r))}),t.k0s(),t.EFF(35,"\n "),t.k0s(),t.EFF(36,"\n "),t.k0s()()}if(2&i){const e=l.$implicit,n=t.XpG();t.R7$(5),t.FS9("title",t.bMT(6,9,"group.create.delete.button")),t.R7$(5),t.SpI("\n ",e._GroupId,"\n "),t.R7$(2),t.Y8G("pEditableColumn",e.GroupName),t.R7$(12),t.Y8G("items",n.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),t.R50("ngModel",e.devicesSelected),t.R7$(10),t.Y8G("checked",e.coordinatorInside)}}function V(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",30),t.EFF(2,"\n "),t.nrm(3,"h4",31),t.EFF(4,"\n "),t.j41(5,"button",32),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",33),t.EFF(9,"\n "),t.j41(10,"div",34),t.EFF(11,"\n "),t.j41(12,"button",35),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n ")}}const x=[{path:"",component:(()=>{class i extends f.U{modalService;apiService;formBuilder;translate;toastr;headerService;content;form;rows=[];rowsTemp=[];devices;temp=[];hasEditing=!1;waiting=!1;constructor(e,n,o,r,a,u){super(),this.modalService=e,this.apiService=n,this.formBuilder=o,this.translate=r,this.toastr=a,this.headerService=u}ngOnInit(){this.apiService.getZGroupDevicesAvalaible().subscribe(e=>{const n=[];e&&e.length>0&&(e.forEach(o=>{o.WidgetList.forEach(r=>{if("0000"!==o._NwkId){const a=new _.ij;a.Ep=r.Ep,a.IEEE=r.IEEE,a.Name=r.Name,a.ZDeviceName=r.ZDeviceName,a._ID=r._ID,a._NwkId=o._NwkId,n.push(a)}})}),this.devices=[...n],this.getGroups())})}updateValue(e,n){this.hasEditing=!0,this.rows.find(r=>r._GroupId===n).GroupName=e.target.value}updateDevices(){this.rows.forEach(e=>{e.coordinatorInside&&(e.devicesSelected||(e.devicesSelected=[]),e.devicesSelected.push({Ep:"01",_NwkId:"0000"}))}),this.isFormValid&&this.apiService.putZGroups(this.rows).subscribe(()=>{this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getRestartNeeded().subscribe(e=>{1===e.RestartNeeded&&(this.headerService.setRestart(!0),this.open(this.content))}),this.waiting=!0,setTimeout(()=>{this.getGroups(),this.waiting=!1},1e3)})}delete(e){const n=this.rows.indexOf(e,0);n>-1&&(this.rows.splice(n,1),this.rows=[...this.rows],this.temp=[...this.rows])}add(){const e=new _.YJ;e.GroupName="",e.coordinatorInside=!1,this.rows.push(e),this.rows=[...this.rows],this.temp=[...this.rows]}updateCoordinator(e,n){n.coordinatorInside=e.currentTarget.checked}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then()}isFormValid(){let e=!0;return this.rows.forEach(n=>{n.GroupName&&(n.coordinatorInside||n.devicesSelected&&0!==n.devicesSelected.length)||(e=!1)}),!this.waiting&&e}getGroups(){this.apiService.getZGroups().subscribe(e=>{e&&e.length>0&&(e.forEach(n=>{const o=[];n.coordinatorInside=!1,n.Devices.forEach(r=>{if("0000"===r._NwkId)n.coordinatorInside=!0;else{const a=this.devices.find(u=>u._NwkId===r._NwkId&&u.Ep===r.Ep);null!=a&&o.push(a)}}),n.devicesSelected=o}),this.rows=[...e],this.temp=[...e])})}static \u0275fac=function(n){return new(n||i)(t.rXU(G.Bq),t.rXU(b.G),t.rXU(p.ok),t.rXU(d.c$),t.rXU(I.tw),t.rXU(j.d))};static \u0275cmp=t.VBU({type:i,selectors:[["app-group"]],viewQuery:function(n,o){if(1&n&&t.GBs(C,5),2&n){let r;t.mGM(r=t.lsd())&&(o.content=r.first)}},features:[t.Vt3],decls:32,vars:20,consts:[["dt1",""],["content",""],[1,"card"],[1,"card-header","fw-bold"],["translate","group.create.validate.button",1,"btn","btn-primary","float-end",3,"click","disabled"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_GroupId","responsiveLayout","scroll","stateStorage","local","stateKey","group",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"d-flex","justify-content-between"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",1,"w-75",3,"input","placeholder"],["translate","group.create.add.button",1,"btn","btn-primary",3,"click"],["pSortableColumn","_GroupId",2,"width","8rem"],["field","_GroupId"],["pSortableColumn","GroupName",2,"width","10rem"],["field","GroupName"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],["pEditableColumnField","GroupName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["bindLabel","Name","placeholder","Choose device","appendTo","body",3,"ngModelChange","change","items","multiple","closeOnSelect","searchable","ngModel"],["ng-option-tmp",""],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"click","checked"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"],[1,"modal-header"],["id","modal-basic-title","translate","group.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","group.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","group.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(n,o){if(1&n){const r=t.RV6();t.j41(0,"div",2),t.EFF(1,"\n "),t.j41(2,"div",3),t.EFF(3),t.nI1(4,"translate"),t.j41(5,"button",4),t.bIt("click",function(){return t.eBV(r),t.Njj(o.updateDevices())}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",5),t.EFF(9,"\n "),t.nrm(10,"p",6),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",7),t.EFF(14,"\n "),t.j41(15,"p-table",8,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,S,14,3,"ng-template",9),t.EFF(20,"\n "),t.DNE(21,w,26,12,"ng-template",10),t.EFF(22,"\n "),t.DNE(23,y,37,11,"ng-template",11),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n\n "),t.DNE(28,V,15,0,"ng-template",null,1,t.C5r),t.EFF(30,"\n"),t.k0s(),t.EFF(31,"\n")}2&n&&(t.R7$(3),t.SpI("\n ",t.bMT(4,12,"group.create.header"),""),t.R7$(2),t.Y8G("disabled",!o.isFormValid()),t.R7$(5),t.Y8G("innerHTML",t.bMT(11,14,"group.create.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,16,"TOTAL")),t.Y8G("globalFilterFields",t.lJ4(18,N))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(19,T))("value",o.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.me,p.BC,p.vS,E.vr,E.Uq,d.Mm,c.XI,v.Ei,c.Tg,c.hp,c.c5,c.yc,k.S,d.D9]})}return i})(),data:{title:(0,g.o6)("group")}}];let D=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[F.iI.forChild(x),F.iI]})}return i})(),X=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[D,h.G,p.YN]})}return i})()}}]); \ No newline at end of file diff --git a/www/z4d/577.d8ab166ec1c4b8d8.js b/www/z4d/577.d8ab166ec1c4b8d8.js new file mode 100644 index 000000000..5df3cc3c3 --- /dev/null +++ b/www/z4d/577.d8ab166ec1c4b8d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[577],{74577:(B,m,s)=>{s.r(m),s.d(m,{GroupModule:()=>D});var p=s(89417),g=s(93887),F=s(93331),h=s(38117),_=s(12298),f=s(28990),t=s(54438),G=s(88652),b=s(3366),d=s(19664),v=s(45794),I=s(38852),E=s(97013),c=s(46247),j=s(5779),k=s(22242);const C=["content"],N=()=>["_GroupId","GroupName"],T=()=>[10,25,50];function S(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",12),t.EFF(2,"\n "),t.j41(3,"span",13),t.EFF(4,"\n "),t.nrm(5,"i",14),t.EFF(6,"\n "),t.j41(7,"input",15),t.nI1(8,"translate"),t.bIt("input",function(o){t.eBV(e),t.XpG();const r=t.sdS(16);return t.Njj(r.filterGlobal(o.target.value,"contains"))}),t.k0s(),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"button",16),t.bIt("click",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.add())}),t.k0s(),t.EFF(12,"\n "),t.k0s(),t.EFF(13,"\n ")}if(2&i){t.XpG();const e=t.sdS(16);t.R7$(7),t.FS9("placeholder",t.bMT(8,2,"device.byname.placeholder")),t.Y8G("value",null==e.filters.global?null:e.filters.global.value)}}function w(i,l){1&i&&(t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.nrm(3,"th"),t.EFF(4,"\n "),t.j41(5,"th",17),t.EFF(6),t.nI1(7,"translate"),t.nrm(8,"p-sortIcon",18),t.EFF(9,"\n "),t.k0s(),t.EFF(10,"\n "),t.j41(11,"th",19),t.EFF(12),t.nI1(13,"translate"),t.nrm(14,"p-sortIcon",20),t.EFF(15,"\n "),t.k0s(),t.EFF(16,"\n "),t.j41(17,"th"),t.EFF(18),t.nI1(19,"translate"),t.k0s(),t.EFF(20,"\n "),t.j41(21,"th"),t.EFF(22),t.nI1(23,"translate"),t.k0s(),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n ")),2&i&&(t.R7$(6),t.SpI("\n ",t.bMT(7,4,"group.create.shortid.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(13,6,"group.create.groupname.column"),""),t.R7$(6),t.SpI("\n ",t.bMT(19,8,"group.create.devices.column"),"\n "),t.R7$(4),t.SpI("\n ",t.bMT(23,10,"group.create.coordinator.column"),"\n "))}function R(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function $(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"input",29),t.mxI("ngModelChange",function(o){t.eBV(e);const r=t.XpG().$implicit;return t.DH7(r.GroupName,o)||(r.GroupName=o),t.Njj(o)}),t.bIt("change",function(o){t.eBV(e);const r=t.XpG().$implicit,a=t.XpG();return t.Njj(a.updateValue(o,r._GroupId))}),t.k0s(),t.EFF(2,"\n ")}if(2&i){const e=t.XpG().$implicit;t.R7$(),t.R50("ngModel",e.GroupName)}}function M(i,l){if(1&i&&(t.EFF(0,"\n "),t.j41(1,"span"),t.EFF(2,"\n "),t.j41(3,"b"),t.EFF(4,"Widget"),t.k0s(),t.EFF(5),t.j41(6,"b"),t.EFF(7,"IEEE"),t.k0s(),t.EFF(8),t.j41(9,"b"),t.EFF(10,"Ep"),t.k0s(),t.EFF(11),t.j41(12,"b"),t.EFF(13,"Id"),t.k0s(),t.EFF(14),t.j41(15,"b"),t.EFF(16),t.k0s(),t.EFF(17,"\n "),t.k0s(),t.EFF(18,"\n ")),2&i){const e=l.item;t.R7$(5),t.SpI(" : ",e.Name," - "),t.R7$(3),t.SpI(" : ",e.IEEE," - "),t.R7$(3),t.SpI(" : ",e.Ep," -\n "),t.R7$(3),t.SpI(" : ",e._ID," -\n "),t.R7$(2),t.JRh(e.ZDeviceName)}}function y(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"tr"),t.EFF(2,"\n "),t.j41(3,"td"),t.EFF(4,"\n "),t.j41(5,"i",21),t.nI1(6,"translate"),t.bIt("click",function(){const o=t.eBV(e).$implicit,r=t.XpG();return t.Njj(r.delete(o))}),t.k0s(),t.EFF(7,"\n "),t.k0s(),t.EFF(8,"\n "),t.j41(9,"td"),t.EFF(10),t.k0s(),t.EFF(11,"\n "),t.j41(12,"td",22),t.EFF(13,"\n "),t.j41(14,"p-cellEditor"),t.EFF(15,"\n "),t.DNE(16,R,3,1,"ng-template",23),t.EFF(17,"\n "),t.DNE(18,$,3,1,"ng-template",24),t.EFF(19,"\n "),t.k0s(),t.EFF(20,"\n "),t.k0s(),t.EFF(21,"\n "),t.j41(22,"td"),t.EFF(23,"\n "),t.j41(24,"ng-select",25),t.mxI("ngModelChange",function(o){const r=t.eBV(e).$implicit;return t.DH7(r.devicesSelected,o)||(r.devicesSelected=o),t.Njj(o)}),t.bIt("change",function(){t.eBV(e);const o=t.XpG();return t.Njj(o.isFormValid())}),t.EFF(25,"\n "),t.DNE(26,M,19,5,"ng-template",26),t.EFF(27,"\n "),t.k0s(),t.EFF(28,"\n "),t.k0s(),t.EFF(29,"\n "),t.j41(30,"td"),t.EFF(31,"\n "),t.j41(32,"div",27),t.EFF(33,"\n "),t.j41(34,"input",28),t.bIt("click",function(o){const r=t.eBV(e).$implicit,a=t.XpG();return t.Njj(a.updateCoordinator(o,r))}),t.k0s(),t.EFF(35,"\n "),t.k0s(),t.EFF(36,"\n "),t.k0s()()}if(2&i){const e=l.$implicit,n=t.XpG();t.R7$(5),t.FS9("title",t.bMT(6,9,"group.create.delete.button")),t.R7$(5),t.SpI("\n ",e._GroupId,"\n "),t.R7$(2),t.Y8G("pEditableColumn",e.GroupName),t.R7$(12),t.Y8G("items",n.devices)("multiple",!0)("closeOnSelect",!1)("searchable",!0),t.R50("ngModel",e.devicesSelected),t.R7$(10),t.Y8G("checked",e.coordinatorInside)}}function V(i,l){if(1&i){const e=t.RV6();t.EFF(0,"\n "),t.j41(1,"div",30),t.EFF(2,"\n "),t.nrm(3,"h4",31),t.EFF(4,"\n "),t.j41(5,"button",32),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("Cross click"))}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.nrm(8,"div",33),t.EFF(9,"\n "),t.j41(10,"div",34),t.EFF(11,"\n "),t.j41(12,"button",35),t.bIt("click",function(){const o=t.eBV(e).$implicit;return t.Njj(o.dismiss("cancel"))}),t.k0s(),t.EFF(13,"\n "),t.k0s(),t.EFF(14,"\n ")}}const x=[{path:"",component:(()=>{class i extends f.U{modalService;apiService;formBuilder;translate;toastr;headerService;content;form;rows=[];rowsTemp=[];devices;temp=[];hasEditing=!1;waiting=!1;constructor(e,n,o,r,a,u){super(),this.modalService=e,this.apiService=n,this.formBuilder=o,this.translate=r,this.toastr=a,this.headerService=u}ngOnInit(){this.apiService.getZGroupDevicesAvalaible().subscribe(e=>{const n=[];e&&e.length>0&&(e.forEach(o=>{o.WidgetList.forEach(r=>{if("0000"!==o._NwkId){const a=new _.ij;a.Ep=r.Ep,a.IEEE=r.IEEE,a.Name=r.Name,a.ZDeviceName=r.ZDeviceName,a._ID=r._ID,a._NwkId=o._NwkId,n.push(a)}})}),this.devices=[...n],this.getGroups())})}updateValue(e,n){this.hasEditing=!0,this.rows.find(r=>r._GroupId===n).GroupName=e.target.value}updateDevices(){this.rows.forEach(e=>{e.coordinatorInside&&(e.devicesSelected||(e.devicesSelected=[]),e.devicesSelected.push({Ep:"01",_NwkId:"0000"}))}),this.isFormValid&&this.apiService.putZGroups(this.rows).subscribe(()=>{this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify")),this.apiService.getRestartNeeded().subscribe(e=>{1===e.RestartNeeded&&(this.headerService.setRestart(!0),this.open(this.content))}),this.waiting=!0,setTimeout(()=>{this.getGroups(),this.waiting=!1},1e3)})}delete(e){const n=this.rows.indexOf(e,0);n>-1&&(this.rows.splice(n,1),this.rows=[...this.rows],this.temp=[...this.rows])}add(){const e=new _.YJ;e.GroupName="",e.coordinatorInside=!1,this.rows.push(e),this.rows=[...this.rows],this.temp=[...this.rows]}updateCoordinator(e,n){n.coordinatorInside=e.currentTarget.checked}open(e){this.modalService.open(e,{ariaLabelledBy:"modal-basic-title"}).result.then()}isFormValid(){let e=!0;return this.rows.forEach(n=>{n.GroupName&&(n.coordinatorInside||n.devicesSelected&&0!==n.devicesSelected.length)||(e=!1)}),!this.waiting&&e}getGroups(){this.apiService.getZGroups().subscribe(e=>{e&&e.length>0&&(e.forEach(n=>{const o=[];n.coordinatorInside=!1,n.Devices.forEach(r=>{if("0000"===r._NwkId)n.coordinatorInside=!0;else{const a=this.devices.find(u=>u._NwkId===r._NwkId&&u.Ep===r.Ep);null!=a&&o.push(a)}}),n.devicesSelected=o}),this.rows=[...e],this.temp=[...e])})}static \u0275fac=function(n){return new(n||i)(t.rXU(G.Bq),t.rXU(b.G),t.rXU(p.ok),t.rXU(d.c$),t.rXU(v.tw),t.rXU(I.d))};static \u0275cmp=t.VBU({type:i,selectors:[["app-group"]],viewQuery:function(n,o){if(1&n&&t.GBs(C,5),2&n){let r;t.mGM(r=t.lsd())&&(o.content=r.first)}},features:[t.Vt3],decls:32,vars:20,consts:[["dt1",""],["content",""],[1,"card"],[1,"card-header","fw-bold"],["translate","group.create.validate.button",1,"btn","btn-primary","float-end",3,"click","disabled"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_GroupId","responsiveLayout","scroll","stateStorage","local","stateKey","group",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],[1,"d-flex","justify-content-between"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",1,"w-75",3,"input","value","placeholder"],["translate","group.create.add.button",1,"btn","btn-primary",3,"click"],["pSortableColumn","_GroupId",2,"width","8rem"],["field","_GroupId"],["pSortableColumn","GroupName",2,"width","10rem"],["field","GroupName"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],["pEditableColumnField","GroupName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["bindLabel","Name","placeholder","Choose device","appendTo","body",3,"ngModelChange","change","items","multiple","closeOnSelect","searchable","ngModel"],["ng-option-tmp",""],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"click","checked"],["pInputText","","type","text",3,"ngModelChange","change","ngModel"],[1,"modal-header"],["id","modal-basic-title","translate","group.reloadplugin.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","group.reloadplugin.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","group.reloadplugin.alert.cancel",1,"btn","btn-outline-dark",3,"click"]],template:function(n,o){if(1&n){const r=t.RV6();t.j41(0,"div",2),t.EFF(1,"\n "),t.j41(2,"div",3),t.EFF(3),t.nI1(4,"translate"),t.j41(5,"button",4),t.bIt("click",function(){return t.eBV(r),t.Njj(o.updateDevices())}),t.k0s(),t.EFF(6,"\n "),t.k0s(),t.EFF(7,"\n "),t.j41(8,"div",5),t.EFF(9,"\n "),t.nrm(10,"p",6),t.nI1(11,"translate"),t.EFF(12,"\n "),t.j41(13,"div",7),t.EFF(14,"\n "),t.j41(15,"p-table",8,0),t.nI1(17,"translate"),t.EFF(18,"\n "),t.DNE(19,S,14,4,"ng-template",9),t.EFF(20,"\n "),t.DNE(21,w,26,12,"ng-template",10),t.EFF(22,"\n "),t.DNE(23,y,37,11,"ng-template",11),t.EFF(24,"\n "),t.k0s(),t.EFF(25,"\n "),t.k0s(),t.EFF(26,"\n "),t.k0s(),t.EFF(27,"\n\n "),t.DNE(28,V,15,0,"ng-template",null,1,t.C5r),t.EFF(30,"\n"),t.k0s(),t.EFF(31,"\n")}2&n&&(t.R7$(3),t.SpI("\n ",t.bMT(4,12,"group.create.header"),""),t.R7$(2),t.Y8G("disabled",!o.isFormValid()),t.R7$(5),t.Y8G("innerHTML",t.bMT(11,14,"group.create.subtitle"),t.npT),t.R7$(5),t.FS9("currentPageReportTemplate",t.bMT(17,16,"TOTAL")),t.Y8G("globalFilterFields",t.lJ4(18,N))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",t.lJ4(19,T))("value",o.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[p.me,p.BC,p.vS,E.vr,E.Uq,d.Mm,c.XI,j.Ei,c.Tg,c.hp,c.c5,c.yc,k.S,d.D9]})}return i})(),data:{title:(0,h.o6)("group")}}];let X=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[F.iI.forChild(x),F.iI]})}return i})(),D=(()=>{class i{static \u0275fac=function(n){return new(n||i)};static \u0275mod=t.$C({type:i});static \u0275inj=t.G2t({imports:[X,g.G,p.YN]})}return i})()}}]); \ No newline at end of file diff --git a/www/z4d/index.html b/www/z4d/index.html index 7a4c3f918..d5dbd5be8 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -24,5 +24,5 @@

    This page requires JavaScript to work properly. Please enable JavaScript in your browser.

    - + diff --git a/www/z4d/runtime.848b3c2fbf7395f7.js b/www/z4d/runtime.848b3c2fbf7395f7.js deleted file mode 100644 index d3a83a6c0..000000000 --- a/www/z4d/runtime.848b3c2fbf7395f7.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,g={},m={};function r(e){var o=m[e];if(void 0!==o)return o.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(o,t,n,i)=>{if(!t){var a=1/0;for(f=0;f=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(c=!1,i0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},(()=>{var o,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var f={};o=o||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~o.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(c=>f[c]=()=>t[c]);return f.default=()=>t,r.d(i,f),i}})(),r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((o,t)=>(r.f[t](e,o),o),[])),r.u=e=>(76===e?"common":e)+"."+{12:"9d3b53b1dced2927",76:"481b903deeb9dee7",317:"388031fbd5f6515c",521:"4a2e700ea1ed6d2d",577:"b613e50ce344a936",644:"e5bbcc7e1d18b79d",837:"e9d5b18d020927e4",846:"e10721e2f1184a6d",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={},o="z4d-plugin:";r.l=(t,n,i,f)=>{if(e[t])e[t].push(n);else{var a,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),l=0;l{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:o=>o},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var f=r.o(e,n)?e[n]:void 0;if(0!==f)if(f)i.push(f[2]);else if(121!=n){var a=new Promise((u,s)=>f=e[n]=[u,s]);i.push(f[2]=a);var c=r.p+r.u(n),d=new Error;r.l(c,u=>{if(r.o(e,n)&&(0!==(f=e[n])&&(e[n]=void 0),f)){var s=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,f[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var o=(n,i)=>{var d,l,[f,a,c]=i,u=0;if(f.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(c)var s=c(r)}for(n&&n(i);u{"use strict";var e,g={},m={};function r(e){var f=m[e];if(void 0!==f)return f.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(f,t,n,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(c=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,n,i]},(()=>{var f,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};f=f||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~f.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(c=>o[c]=()=>t[c]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>(76===e?"common":e)+"."+{12:"14d74df58224a7ef",76:"481b903deeb9dee7",317:"59bbe14d2339e649",521:"4a2e700ea1ed6d2d",577:"d8ab166ec1c4b8d8",644:"e5bbcc7e1d18b79d",837:"e9d5b18d020927e4",846:"e10721e2f1184a6d",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="z4d-plugin:";r.l=(t,n,i,o)=>{if(e[t])e[t].push(n);else{var a,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),l=0;l{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var o=r.o(e,n)?e[n]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=n){var a=new Promise((u,s)=>o=e[n]=[u,s]);i.push(o[2]=a);var c=r.p+r.u(n),d=new Error;r.l(c,u=>{if(r.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var s=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,o[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var f=(n,i)=>{var d,l,[o,a,c]=i,u=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(c)var s=c(r)}for(n&&n(i);u Date: Thu, 25 Apr 2024 11:32:00 +0200 Subject: [PATCH 243/301] Plugin wip-develop version 7.2.077 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index de253d463..e7095a509 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.076"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.077"} \ No newline at end of file From 517b2f2f1199b69ab1ed45f28b195b77494443f3 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 25 Apr 2024 14:20:03 +0200 Subject: [PATCH 244/301] based on the recent PR on Domoticz, we can now update Widget style if they correspond to a Typename --- Classes/GroupMgtv2/GrpDomoticz.py | 39 ++++++++++++++-- Modules/domoticzAbstractLayer.py | 19 +++++--- Modules/tools.py | 76 +++++++++++++++++++++++-------- 3 files changed, 105 insertions(+), 29 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index 0e0d7acdc..04db0fa8f 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -18,9 +18,9 @@ from Modules.domoticzAbstractLayer import ( FreeUnit, domo_create_api, domo_delete_widget, domo_read_Name, domo_read_nValue_sValue, domo_read_SwitchType_SubType_Type, - domo_update_api, domo_update_name, domo_update_SwitchType_SubType_Type, - find_first_unit_widget_from_deviceID) -from Modules.tools import Hex_Format, is_hex + domo_read_Typename, domo_update_api, domo_update_name, + domo_update_SwitchType_SubType_Type, find_first_unit_widget_from_deviceID) +from Modules.tools import Hex_Format, is_domoticz_latest_typename, is_hex from Modules.zigateConsts import ADDRESS_MODE, LEGRAND_REMOTES, ZIGATE_EP from Zigbee.zclCommands import (zcl_group_level_move_to_level, zcl_group_move_to_level_stop, @@ -46,6 +46,21 @@ "ColorControlFull": (241, 7, 7), } +WIDGET_STYLE_TO_DOMOTICZ_TYPEMAP = { + "Plug": "On/Off ", + "Switch": "On/Off ", + "LvlControl": "Dimmer", + "BlindPercentInverted": "BlindsPercentage", + "WindowCovering": "VenetianBlindsEU", + "Venetian": "VenetianBlindsEU", + "VenetianInverted": "VenetianBlindsEU", + "ColorControlWW": "CW_WW", + "ColorControlRGB": "RGB", + "ColorControlRGBWW": "RGB_CW_WW", + "ColorControlFull": "RGB_CW_WW_Z", + +} + def create_domoticz_group_device(self, GroupName, GroupId): """ Create Device for just created group in Domoticz. """ @@ -122,13 +137,27 @@ def update_domoticz_group_device_widget(self, GroupId): return Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) + + if is_domoticz_latest_typename(self): + current_typename = domo_read_Typename(self, self.Devices, GroupId, unit) + new_typename = get_typename(Type_, Subtype_, SwitchType_) + + self.logging("Debug", f" Looking to update Unit: {unit} from {current_typename} to {new_typename}") + if current_typename != new_typename: + domo_update_SwitchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_, Typename_=new_typename) + + return + + # Old fashion we rely only on Type_, Subtype_, SwitchType_ current_switchType, current_Subtype, current_Type = domo_read_SwitchType_SubType_Type(self, self.Devices, GroupId, unit) - self.logging( "Debug", " Looking to update Unit: %s from %s %s %s to %s %s %s"% ( - unit, current_Type, current_Subtype, current_switchType, Type_, Subtype_, SwitchType_, ),) + self.logging("Debug", f" Looking to update Unit: {unit} from {current_Type} {current_Subtype} {current_switchType} to {Type_} {Subtype_} {SwitchType_}") domo_update_SwitchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_) +def get_typename(Type_, Subtype_, SwitchType_): + return WIDGET_STYLE_TO_DOMOTICZ_TYPEMAP.get(WIDGET_STYLE.get((Type_, Subtype_, SwitchType_))) + def best_group_widget(self, GroupId): # WIDGETS = { diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 6afe33515..a88d38a19 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -480,17 +480,15 @@ def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): Devices[Unit_].Update(**update_params) -def domo_update_SwitchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): +def domo_update_SwitchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0, Typename_=None): self.log.logging("AbstractDz", "Debug", "domo_update_SwitchType_SubType_Type DeviceID: %s,Unit: %s,Type: %s,Subtype: %s,Switchtype: %s" %( DeviceID_, Unit_, Type_, Subtype_, Switchtype_)) if DOMOTICZ_EXTENDED_API: - # Due to bug https://github.com/domoticz/domoticz/issues/6027 (on extended Framework ) - # Devices[DeviceID_].Units[Unit_].Type = Type_ - # Devices[DeviceID_].Units[Unit_].Subtype = Subtype_ - # Devices[DeviceID_].Units[Unit_].Switchtype = Switchtype_ - # Devices[DeviceID_].Units[Unit_].Update(Log=True) + # With Domoticz Extended the change of Widget type, can be done only via Typename + if Typename_: + Devices[DeviceID_].Units[Unit_].Update(TypeName=Typename_) return update_params = { @@ -611,6 +609,15 @@ def domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit): return _unit.SwitchType, _unit.SubType, _unit.Type +def domo_read_Typename(self, Devices, DeviceID, Unit): + self.log.logging("AbstractDz", "Debug", f"domo_read_Typename: DeviceID: {DeviceID} Unit {Unit}") + if DOMOTICZ_EXTENDED_API: + _unit = Devices[DeviceID].Units[Unit] + else: + _unit = Devices[Unit] + + return _unit.TypeName + def _is_meter_widget(self, Devices, DeviceID_, Unit_): if DOMOTICZ_EXTENDED_API: diff --git a/Modules/tools.py b/Modules/tools.py index 51a54fcdc..6075b4d24 100644 --- a/Modules/tools.py +++ b/Modules/tools.py @@ -1624,7 +1624,19 @@ def is_domoticz_2023(self): def is_domoticz_above_2023(self): return self.DomoticzMajor > 2023 - + + +def is_domoticz_bellow_2024(self): + return self.DomoticzMajor < 2024 + + +def is_domoticz_2024(self): + return self.DomoticzMajor == 2024 + + +def is_domoticz_above_2024(self): + return self.DomoticzMajor > 2024 + def is_domoticz_new_API(self): 'is_domoticz_new_API() False True 1 15356' @@ -1640,10 +1652,25 @@ def is_domoticz_new_API(self): # Domoticz 2024 ! return True +def is_domoticz_latest_typename(self): + """Checks if the Domoticz binary includes the latest typename.""" + + # If Domoticz version is below 2024, it's not the latest typename. + if is_domoticz_bellow_2024(self): + return False + + # If DomoticzMinor is greater than 4 or DomoticzBuild is 15956 or higher, it's the latest typename. + if self.DomoticzMinor > 4 or self.DomoticzBuild >= 15956: + return True + + # Otherwise, it's not the latest typename. + return False + def is_domoticz_new_blind(self): return is_domoticz_above_2022_2(self) + def is_domoticz_update_SuppressTriggers( self ): if is_domoticz_above_2022: @@ -1659,28 +1686,41 @@ def is_domoticz_update_SuppressTriggers( self ): def is_domoticz_touch(self): - if self.VersionNewFashion: - return True - if self.DomoticzMajor >= 2022: + """Checks if the Domoticz version supports touch.""" + + # If VersionNewFashion flag is set or DomoticzMajor is 2022 or higher, it supports touch. + if self.VersionNewFashion or self.DomoticzMajor >= 2022: return True + + # If DomoticzMajor is 4 and DomoticzMinor is 10547 or higher, it supports touch. return self.DomoticzMajor == 4 and self.DomoticzMinor >= 10547 +def get_device_config_param(self, NwkId, config_parameter): + """Retrieve config_parameter from the Param section in Config or Device""" -def get_device_config_param( self, NwkId, config_parameter): - """ Retreive config_parameter from the Param section in Config or Device""" - - self.log.logging("Input", "Debug", "get_device_config_param: %s Config: %s" %( NwkId,config_parameter )) - - if NwkId not in self.ListOfDevices: - return None - if "Param" not in self.ListOfDevices[NwkId]: + # Log debug information + self.log.logging("Input", "Debug", f"get_device_config_param: {NwkId} Config: {config_parameter}") + + # Get the device dictionary for the given NwkId, defaulting to None if not found + device = self.ListOfDevices.get(NwkId) + + # If device dictionary does not exist, return None + if not device: return None - if config_parameter not in self.ListOfDevices[NwkId]["Param"]: + + # Get the "Param" section dictionary from the device, defaulting to None if not found + param_section = device.get("Param") + + # If "Param" section dictionary does not exist, return None + if not param_section: return None - - - self.log.logging("Input", "Debug", "get_device_config_param: %s Config: %s return %s" %( - NwkId,config_parameter, self.ListOfDevices[NwkId]["Param"][ config_parameter ])) - return self.ListOfDevices[NwkId]["Param"][ config_parameter ] + # Get the value of config_parameter from the "Param" section, defaulting to None if not found + param_value = param_section.get(config_parameter) + + # Log debug information + self.log.logging("Input", "Debug", f"get_device_config_param: {NwkId} Config: {config_parameter} return {param_value}") + + # Return the value of config_parameter + return param_value From b7849ec25d9702b47bde6f71b5f937046bfb9448 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 26 Apr 2024 21:14:02 +0200 Subject: [PATCH 245/301] remove un-necessary code --- Classes/WebServer/rest_Topology.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index b12de5693..233b604f8 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -242,7 +242,7 @@ def extract_legacy_report(self, reportLQI): self.logging("Debug", "extract_report - found item: %s - %s" %(node1, node1_name)) # Let browse the neighbours - for node2 in reportLQI[node1]["Neighbours"]: + for node2 in list(reportLQI[node1]["Neighbours"]): # Check it exists if (node1 == node2) or (node2 != "0000" and node2 not in self.ListOfDevices): # We remove nodes which are unknown @@ -251,12 +251,6 @@ def extract_legacy_report(self, reportLQI): # Get nickname node2_name = get_node_name( self, node2) - self.logging("Debug2", " ---> %15s (%s) %s %s %s" % ( - node2_name, node2, - reportLQI[node1]["Neighbours"][x]["_relationshp"], - reportLQI[node1]["Neighbours"][x]["_devicetype"], - int(reportLQI[node1]["Neighbours"][node2]["_lnkqty"], 16) )) - if "Neighbours" not in reportLQI[node1]: self.logging("Error", "Missing attribute :%s for (%s,%s)" % ("Neighbours", node1, node2)) continue @@ -273,7 +267,6 @@ def extract_legacy_report(self, reportLQI): self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( node1, x, str(_check_duplicate))) continue - _check_duplicate.append(( node1, node2)) # Build the relation for the graph From 72df0425816cdecff62ef0ef1d24be68a7662527 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 26 Apr 2024 21:21:09 +0200 Subject: [PATCH 246/301] refactor extract_legacy_report --- Classes/WebServer/rest_Topology.py | 163 +++++++++++++++++++++-------- 1 file changed, 117 insertions(+), 46 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index 233b604f8..00dde2724 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -214,86 +214,157 @@ def extract_list_of_legacy_report(self, _response, _filename): return _topo, _timestamps_lst +#def extract_legacy_report(self, reportLQI): +# _check_duplicate = [] # List of tuble ( item, x) to prevent adding twice the same relation +# +# _topo = [] # Use to store the list to be send to the Browser +# +# self.logging("Debug", "RAW report" ) +# for item in reportLQI: +# for x in reportLQI[item]["Neighbours"]: +# self.logging("Debug", "%s - %s - %s - %s - %s - %s" %( +# get_node_name( self, item), +# reportLQI[item]["Neighbours"][x]["_relationshp"], +# get_node_name( self, x), +# reportLQI[item]["Neighbours"][x]["_devicetype"], +# reportLQI[item]["Neighbours"][x]["_lnkqty"], +# reportLQI[item]["Neighbours"][x]["_relationshp"] +# )) +# +# for node1 in reportLQI: +# if node1 != "0000" and node1 not in self.ListOfDevices: +# # We remove nodes which are unknown +# continue +# +# # Get the Nickname +# node1_name = get_node_name( self, item) +# +# self.logging("Debug", "extract_report - found item: %s - %s" %(node1, node1_name)) +# +# # Let browse the neighbours +# for node2 in list(reportLQI[node1]["Neighbours"]): +# # Check it exists +# if (node1 == node2) or (node2 != "0000" and node2 not in self.ListOfDevices): +# # We remove nodes which are unknown +# continue +# +# # Get nickname +# node2_name = get_node_name( self, node2) +# +# if "Neighbours" not in reportLQI[node1]: +# self.logging("Error", "Missing attribute :%s for (%s,%s)" % ("Neighbours", node1, node2)) +# continue +# +# for attribute in ( "_relationshp", "_lnkqty", "_devicetype", ): +# if attribute not in reportLQI[node1]["Neighbours"][node2]: +# self.logging("Error", "Missing attribute :%s for (%s,%s)" % (attribute, node1, node2)) +# continue +# +# if reportLQI[node1]["Neighbours"][node2]["_relationshp"] in ("Former Child", "None"): +# continue +# +# if ( node1, node2) in _check_duplicate or ( node2, node1) in _check_duplicate: +# self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( node1, x, str(_check_duplicate))) +# continue +# +# _check_duplicate.append(( node1, node2)) +# +# # Build the relation for the graph +# _relation = { +# "Father": node1_name, +# "Child": node2_name, +# "_lnkqty": int( +# reportLQI[item]["Neighbours"][x]["_lnkqty"], 16 +# ), +# "DeviceType": reportLQI[node1]["Neighbours"][x]["_devicetype"], +# +# } +# self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( +# _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"]),) +# _topo.append(_relation) +# +# self.logging("Debug", "WebUI report" ) +# +# for x in _topo: +# self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( +# x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"]),) +# +# del _check_duplicate +# +# return _topo + def extract_legacy_report(self, reportLQI): - _check_duplicate = [] # List of tuble ( item, x) to prevent adding twice the same relation - - _topo = [] # Use to store the list to be send to the Browser - - self.logging("Debug", "RAW report" ) - for item in reportLQI: - for x in reportLQI[item]["Neighbours"]: - self.logging("Debug", "%s - %s - %s - %s - %s - %s" %( - get_node_name( self, item), - reportLQI[item]["Neighbours"][x]["_relationshp"], - get_node_name( self, x), - reportLQI[item]["Neighbours"][x]["_devicetype"], - reportLQI[item]["Neighbours"][x]["_lnkqty"], - reportLQI[item]["Neighbours"][x]["_relationshp"] + _check_duplicate = [] # List of tuple (item, x) to prevent adding twice the same relation + _topo = [] # Use to store the list to be sent to the Browser + + self.logging("Debug", "RAW report") + for item, neighbours_info in reportLQI.items(): + for x, neighbour_info in neighbours_info.get("Neighbours", {}).items(): + self.logging("Debug", "%s - %s - %s - %s - %s - %s" % ( + get_node_name(self, item), + neighbour_info.get("_relationshp", "Unknown"), + get_node_name(self, x), + neighbour_info.get("_devicetype", "Unknown"), + neighbour_info.get("_lnkqty", "Unknown"), + neighbour_info.get("_relationshp", "Unknown") )) - for node1 in reportLQI: + for node1, neighbours_info in reportLQI.items(): if node1 != "0000" and node1 not in self.ListOfDevices: # We remove nodes which are unknown continue - # Get the Nickname - node1_name = get_node_name( self, item) + # Get the Nickname for node1 + node1_name = get_node_name(self, node1) - self.logging("Debug", "extract_report - found item: %s - %s" %(node1, node1_name)) + self.logging("Debug", "extract_report - found item: %s - %s" % (node1, node1_name)) - # Let browse the neighbours - for node2 in list(reportLQI[node1]["Neighbours"]): - # Check it exists + neighbours = neighbours_info.get("Neighbours", {}) + for node2, neighbour_info in neighbours.items(): if (node1 == node2) or (node2 != "0000" and node2 not in self.ListOfDevices): # We remove nodes which are unknown continue # Get nickname - node2_name = get_node_name( self, node2) + node2_name = get_node_name(self, node2) - if "Neighbours" not in reportLQI[node1]: - self.logging("Error", "Missing attribute :%s for (%s,%s)" % ("Neighbours", node1, node2)) + required_attributes = ["_relationshp", "_lnkqty", "_devicetype"] + if any(attr not in neighbour_info for attr in required_attributes): + for attr in required_attributes: + if attr not in neighbour_info: + self.logging("Error", "Missing attribute: %s for (%s, %s)" % (attr, node1, node2)) continue - for attribute in ( "_relationshp", "_lnkqty", "_devicetype", ): - if attribute not in reportLQI[node1]["Neighbours"][node2]: - self.logging("Error", "Missing attribute :%s for (%s,%s)" % (attribute, node1, node2)) - continue - - if reportLQI[node1]["Neighbours"][node2]["_relationshp"] in ("Former Child", "None"): + relationshp = neighbour_info["_relationshp"] + if relationshp in ("Former Child", "None"): continue - if ( node1, node2) in _check_duplicate or ( node2, node1) in _check_duplicate: - self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( node1, x, str(_check_duplicate))) + if (node1, node2) in _check_duplicate or (node2, node1) in _check_duplicate: + self.logging("Debug", "Skip (%s,%s) as there is already %s" % (node1, x, str(_check_duplicate))) continue - _check_duplicate.append(( node1, node2)) + _check_duplicate.append((node1, node2)) # Build the relation for the graph _relation = { "Father": node1_name, "Child": node2_name, - "_lnkqty": int( - reportLQI[item]["Neighbours"][x]["_lnkqty"], 16 - ), - "DeviceType": reportLQI[node1]["Neighbours"][x]["_devicetype"], - + "_lnkqty": int(neighbour_info.get("_lnkqty", "0"), 16), + "DeviceType": neighbour_info.get("_devicetype", "Unknown"), } - self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( - _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"]),) + + self.logging("Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( + _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"])) _topo.append(_relation) - self.logging("Debug", "WebUI report" ) + self.logging("Debug", "WebUI report") for x in _topo: - self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( - x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"]),) - - del _check_duplicate + self.logging("Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( + x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"])) return _topo - def get_device_type( self, node): if node not in self.ListOfDevices: return '??' From 85d25b4fa6cd9c9665d21e786f877bf21f6fb95b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 26 Apr 2024 21:28:57 +0200 Subject: [PATCH 247/301] cleanup --- Classes/WebServer/rest_Topology.py | 102 +---------------------------- 1 file changed, 3 insertions(+), 99 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index 00dde2724..0947e7d14 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -214,101 +214,10 @@ def extract_list_of_legacy_report(self, _response, _filename): return _topo, _timestamps_lst -#def extract_legacy_report(self, reportLQI): -# _check_duplicate = [] # List of tuble ( item, x) to prevent adding twice the same relation -# -# _topo = [] # Use to store the list to be send to the Browser -# -# self.logging("Debug", "RAW report" ) -# for item in reportLQI: -# for x in reportLQI[item]["Neighbours"]: -# self.logging("Debug", "%s - %s - %s - %s - %s - %s" %( -# get_node_name( self, item), -# reportLQI[item]["Neighbours"][x]["_relationshp"], -# get_node_name( self, x), -# reportLQI[item]["Neighbours"][x]["_devicetype"], -# reportLQI[item]["Neighbours"][x]["_lnkqty"], -# reportLQI[item]["Neighbours"][x]["_relationshp"] -# )) -# -# for node1 in reportLQI: -# if node1 != "0000" and node1 not in self.ListOfDevices: -# # We remove nodes which are unknown -# continue -# -# # Get the Nickname -# node1_name = get_node_name( self, item) -# -# self.logging("Debug", "extract_report - found item: %s - %s" %(node1, node1_name)) -# -# # Let browse the neighbours -# for node2 in list(reportLQI[node1]["Neighbours"]): -# # Check it exists -# if (node1 == node2) or (node2 != "0000" and node2 not in self.ListOfDevices): -# # We remove nodes which are unknown -# continue -# -# # Get nickname -# node2_name = get_node_name( self, node2) -# -# if "Neighbours" not in reportLQI[node1]: -# self.logging("Error", "Missing attribute :%s for (%s,%s)" % ("Neighbours", node1, node2)) -# continue -# -# for attribute in ( "_relationshp", "_lnkqty", "_devicetype", ): -# if attribute not in reportLQI[node1]["Neighbours"][node2]: -# self.logging("Error", "Missing attribute :%s for (%s,%s)" % (attribute, node1, node2)) -# continue -# -# if reportLQI[node1]["Neighbours"][node2]["_relationshp"] in ("Former Child", "None"): -# continue -# -# if ( node1, node2) in _check_duplicate or ( node2, node1) in _check_duplicate: -# self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( node1, x, str(_check_duplicate))) -# continue -# -# _check_duplicate.append(( node1, node2)) -# -# # Build the relation for the graph -# _relation = { -# "Father": node1_name, -# "Child": node2_name, -# "_lnkqty": int( -# reportLQI[item]["Neighbours"][x]["_lnkqty"], 16 -# ), -# "DeviceType": reportLQI[node1]["Neighbours"][x]["_devicetype"], -# -# } -# self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( -# _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"]),) -# _topo.append(_relation) -# -# self.logging("Debug", "WebUI report" ) -# -# for x in _topo: -# self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( -# x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"]),) -# -# del _check_duplicate -# -# return _topo - def extract_legacy_report(self, reportLQI): _check_duplicate = [] # List of tuple (item, x) to prevent adding twice the same relation _topo = [] # Use to store the list to be sent to the Browser - self.logging("Debug", "RAW report") - for item, neighbours_info in reportLQI.items(): - for x, neighbour_info in neighbours_info.get("Neighbours", {}).items(): - self.logging("Debug", "%s - %s - %s - %s - %s - %s" % ( - get_node_name(self, item), - neighbour_info.get("_relationshp", "Unknown"), - get_node_name(self, x), - neighbour_info.get("_devicetype", "Unknown"), - neighbour_info.get("_lnkqty", "Unknown"), - neighbour_info.get("_relationshp", "Unknown") - )) - for node1, neighbours_info in reportLQI.items(): if node1 != "0000" and node1 not in self.ListOfDevices: # We remove nodes which are unknown @@ -340,7 +249,7 @@ def extract_legacy_report(self, reportLQI): continue if (node1, node2) in _check_duplicate or (node2, node1) in _check_duplicate: - self.logging("Debug", "Skip (%s,%s) as there is already %s" % (node1, x, str(_check_duplicate))) + self.logging("Debug", "Skip (%s,%s) as there is already %s" % (node1, node2, str(_check_duplicate))) continue _check_duplicate.append((node1, node2)) @@ -357,14 +266,9 @@ def extract_legacy_report(self, reportLQI): _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"])) _topo.append(_relation) - self.logging("Debug", "WebUI report") - - for x in _topo: - self.logging("Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( - x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"])) - return _topo + def get_device_type( self, node): if node not in self.ListOfDevices: return '??' @@ -382,6 +286,7 @@ def get_node_name( self, node): return self.ListOfDevices[node]["ZDeviceName"] return node + def check_sibbling(self, reportLQI): # for node1 in sorted(reportLQI): # for node2 in list(reportLQI[node1]['Neighbours']): @@ -580,7 +485,6 @@ def get_lqi_from_neighbours(self, father, child, time_stamp=None): return item2[ node ]["_lnkqty"] return 1 - # Zigpy Topology helpers def zigpy_topology_filename(self): return Path( self.pluginconf.pluginConf["pluginReports"] ) / ( ZIGPY_TOPOLOGY_REPORT_FILENAME + "%02d.json" % self.hardwareID) From 3a255132a797abd92a8aabd9364bed1a60ad7ba2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Fri, 26 Apr 2024 21:29:01 +0200 Subject: [PATCH 248/301] Plugin wip-develop version 7.2.078 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index e7095a509..a93126475 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.077"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.078"} \ No newline at end of file From e3be31893bb6f3ed77684891f4f047646174f5ff Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 10:27:20 +0200 Subject: [PATCH 249/301] Refactor --- Modules/checkingUpdate.py | 108 +++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 37 deletions(-) diff --git a/Modules/checkingUpdate.py b/Modules/checkingUpdate.py index ae5eb86f7..08c931b8c 100644 --- a/Modules/checkingUpdate.py +++ b/Modules/checkingUpdate.py @@ -1,17 +1,22 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # - -# Enable Version Check ( will required Internet connectivity ) +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license # Use DNS TXT to check latest version available on gitHub # - stable # - beta -# Provide response to REST API request + import dns.resolver +import requests PLUGIN_TXT_RECORD = "zigate_plugin.pipiche.net" ZIGATEV1_FIRMWARE_TXT_RECORD = "zigatev1.pipiche.net" @@ -25,42 +30,61 @@ } -def checkPluginVersion(self, zigbee_communitation, branch, zigate_model): - - TXT_RECORD = None - if zigbee_communitation == "native": - TXT_RECORD = ZIGATE_DNS_RECORDS.get(zigate_model) - - zigate_plugin = zigateVersions = None +def check_plugin_version_against_dns(self, zigbee_communication, branch, zigate_model): + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {zigbee_communication} {branch} {zigate_model}") + try: - zigate_plugin = dns.resolver.resolve(PLUGIN_TXT_RECORD, "TXT", tcp=True, lifetime=1).response.answer[0] - zigate_plugin = str( zigate_plugin[0] ).strip('"') - if TXT_RECORD: - zigateVersions = dns.resolver.resolve(TXT_RECORD, "TXT", tcp=True, lifetime=1).response.answer[0] - zigateVersions = str(zigateVersions[0]).strip('"') + plugin_version = None + firmware_version = None + + plugin_version = _get_dns_txt_record(self, PLUGIN_TXT_RECORD) + plugin_version_dict = _parse_dns_txt_record( plugin_version) + + # If native communication (zigate) let's find the zigate firmware + if zigbee_communication == "native": + zigate_plugin_record = ZIGATE_DNS_RECORDS.get(zigate_model) + firmware_version = _get_dns_txt_record(self, zigate_plugin_record) + firmware_version_dict = _parse_dns_txt_record(firmware_version) + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {firmware_version} {firmware_version_dict}") + + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {plugin_version} {plugin_version_dict}") + + if zigbee_communication == "native" and branch in plugin_version_dict and "firmMajor" in firmware_version_dict and "firmMinor" in firmware_version_dict: + return (plugin_version_dict[branch], firmware_version_dict["firmMajor"], firmware_version_dict["firmMinor"]) + + if zigbee_communication == "zigpy" and branch in plugin_version_dict: + return (plugin_version_dict[branch], 0, 0) + + self.log.logging("Plugin", "Error", f"You are running {branch}-{plugin_version}, a NOT SUPPORTED version. " + "Please refer to https://github.com/zigbeefordomoticz/Domoticz-Zigbee to get the latest information") + except Exception as e: - return (0, 0, 0) + self.log.logging("Plugin", "Error", f"An error occurred while checking plugin version: {e}") + if not is_internet_available(): + self.internet_available = False + + return (0, 0, 0) - pluginVersion = {} - if zigate_plugin and zigate_plugin != "": - for branch_version in zigate_plugin.split(";"): - pluginVersion[branch_version.split("=")[0]] = branch_version.split("=")[1].strip('"') - firmwareVersion = {} - if zigateVersions and zigateVersions != "": - for major_minor in zigateVersions.split(";"): - firmwareVersion[major_minor.split("=")[0]] = major_minor.split("=")[1].strip('"') +def _get_dns_txt_record(self, record): + try: + result = dns.resolver.resolve(record, "TXT", tcp=True, lifetime=1).response.answer[0] + return str(result[0]).strip('"') - if zigbee_communitation == "native" and branch in pluginVersion and "firmMajor" in firmwareVersion and "firmMinor" in firmwareVersion: - return (pluginVersion[branch], firmwareVersion["firmMajor"], firmwareVersion["firmMinor"]) - if zigbee_communitation == "zigpy" and branch in pluginVersion: - return (pluginVersion[branch], 0, 0) + except Exception as e: + self.log.logging("Plugin", "Error", f"An error occurred while resolving DNS TXT record: {e}") + return None - self.log.logging("Plugin", "Error", "You are running %s-%s , a NOT SUPPORTED version. Please refer to https://github.com/zigbeefordomoticz/Domoticz-Zigbee to get the latest informations" % (branch, pluginVersion )) - return (0, 0, 0) +def _parse_dns_txt_record(txt_record): + version_dict = {} + if txt_record and txt_record != "": + for branch_version in txt_record.split(";"): + version_dict.update({k.strip(): v.strip('"') for k, v in (item.split("=") for item in branch_version.split(";"))}) + return version_dict -def checkPluginUpdate(self, currentVersion, availVersion): + +def is_plugin_update_available(self, currentVersion, availVersion): if availVersion == 0: return False @@ -68,22 +92,32 @@ def checkPluginUpdate(self, currentVersion, availVersion): availMaj, availMin, availUpd = availVersion.split(".") if availMaj > currentMaj: - self.log.logging("Plugin", "Status", "checkPluginVersion - Upgrade available: %s" %availVersion) + self.log.logging("Plugin", "Status", "Zigbee4Domoticz plugin: upgrade available: %s" %availVersion) return True + if availMaj == currentMaj and ( availMin == currentMin and availUpd > currentUpd or availMin > currentMin ): - self.log.logging("Plugin", "Status", "checkPluginVersion - Upgrade available: %s" %availVersion) + self.log.logging("Plugin", "Status", "Zigbee4Domoticz plugin: upgrade available: %s" %availVersion) return True return False -def checkFirmwareUpdate(self, currentMajorVersion, currentFirmwareVersion, availfirmMajor, availfirmMinor): +def is_zigate_firmware_available(self, currentMajorVersion, currentFirmwareVersion, availfirmMajor, availfirmMinor): if not (availfirmMinor and currentFirmwareVersion): return False if int(availfirmMinor, 16) > int(currentFirmwareVersion, 16): - self.log.logging("Plugin", "Status", "checkFirmwareUpdate - Firmware update available") + self.log.logging("Plugin", "Status", "Zigate Firmware update available") return True return False + + +def is_internet_available(): + try: + response = requests.get("http://www.google.com", timeout=3) + # Check if the status code is a success code (2xx) + return response.status_code == 200 + except requests.ConnectionError: + return False From 27e0da7d17cdbc35923bc107c91cebe4538b9a14 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 10:27:56 +0200 Subject: [PATCH 250/301] check if internet is enabled or not --- Classes/OTA.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Classes/OTA.py b/Classes/OTA.py index 52819bc31..d235fad24 100644 --- a/Classes/OTA.py +++ b/Classes/OTA.py @@ -136,7 +136,8 @@ def __init__( IEEE2NWK, log, PluginHealth, - readZclClusters + readZclClusters, + internet_available ): # Pointers to external objects @@ -153,6 +154,7 @@ def __init__( self.log = log self.PluginHealth = PluginHealth self.readZclClusters = readZclClusters + self.internet_available = internet_available # Properties for firmware/image management self.ListOfImages = {} # List of available firmware loaded at plugin startup @@ -1380,6 +1382,9 @@ def start_upgrade_infos(self, MsgSrcAddr, intMsgImageType, intMsgManufCode, MsgF def loading_zigbee_ota_index( self ): + if not self.internet_available: + return + self.zigbee_ota_index = [] if self.pluginconf.pluginConf["internetAccess"]: self.zigbee_ota_index = _load_json_from_url( self, self.pluginconf.pluginConf["ZigbeeOTA_Repository"] ) From 4e53ad828e4730233efce140f1e7ed445b8d229e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 10:32:59 +0200 Subject: [PATCH 251/301] remove Error log --- Z4D_decoders/z4d_decoder_Leave_Notification.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Z4D_decoders/z4d_decoder_Leave_Notification.py b/Z4D_decoders/z4d_decoder_Leave_Notification.py index 164461198..4846638a8 100644 --- a/Z4D_decoders/z4d_decoder_Leave_Notification.py +++ b/Z4D_decoders/z4d_decoder_Leave_Notification.py @@ -41,7 +41,6 @@ def Decode8048(self, Devices, MsgData, MsgLQI): elif self.ListOfDevices[sAddr]['Status'] == 'Leave': self.ListOfDevices[sAddr]['Status'] = 'Leave' self.ListOfDevices[sAddr]['Heartbeat'] = 0 - self.log.logging('Input', 'Error', "Receiving a leave from %s/%s while device is '%s' status." % (sAddr, MsgExtAddress, self.ListOfDevices[sAddr]['Status'])) zdevname = '' From a5c296533b358a52d72a38b0ff2d178b2b87abba Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 10:33:46 +0200 Subject: [PATCH 252/301] refactor of check_plugin_upgrade --- plugin.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/plugin.py b/plugin.py index af26b6d1c..47f9a167c 100644 --- a/plugin.py +++ b/plugin.py @@ -124,20 +124,24 @@ from Classes.PluginConf import PluginConf from Classes.TransportStats import TransportStatistics from Classes.WebServer.WebServer import WebServer +from Classes.ZigpyTopology import ZigpyTopology from Modules.basicOutputs import (ZigatePermitToJoin, leaveRequest, setExtendedPANID, setTimeServer, start_Zigate, zigateBlueLed) from Modules.casaia import restart_plugin_reset_ModuleIRCode -from Modules.checkingUpdate import (checkFirmwareUpdate, checkPluginUpdate, - checkPluginVersion) +from Modules.checkingUpdate import (check_plugin_version_against_dns, + is_internet_available, + is_plugin_update_available, + is_zigate_firmware_available) from Modules.command import domoticz_command from Modules.database import (LoadDeviceList, WriteDeviceList, checkDevices2LOD, checkListOfDevice2Devices, import_local_device_conf) -from Modules.domoticzAbstractLayer import ( - domo_read_Name, find_legacy_DeviceID_from_unit, - how_many_legacy_slot_available, is_domoticz_extended, - load_list_of_domoticz_widget, retreive_widgetid_from_deviceId_unit) +from Modules.domoticzAbstractLayer import (domo_read_Name, + find_legacy_DeviceID_from_unit, + how_many_legacy_slot_available, + is_domoticz_extended, + load_list_of_domoticz_widget) from Modules.heartbeat import processListOfDevices from Modules.input import zigbee_receive_message from Modules.paramDevice import initialize_device_settings @@ -153,8 +157,8 @@ from Modules.restartPlugin import restartPluginViaDomoticzJsonApi from Modules.schneider_wiser import wiser_thermostat_monitoring_heating_demand from Modules.tools import (build_list_of_device_model, - chk_and_update_IEEE_NWKID, how_many_devices, - lookupForIEEE, night_shift_jobs, removeDeviceInList) + chk_and_update_IEEE_NWKID, lookupForIEEE, + night_shift_jobs, removeDeviceInList) from Modules.txPower import set_TxPower from Modules.zigateCommands import (zigate_erase_eeprom, zigate_get_firmware_version, @@ -165,7 +169,6 @@ from Modules.zigateConsts import CERTIFICATION, HEARTBEAT, MAX_FOR_ZIGATE_BUZY from Modules.zigpyBackup import handle_zigpy_backup from Zigbee.zdpCommands import zdp_get_permit_joint_status -from Classes.ZigpyTopology import ZigpyTopology VERSION_FILENAME = ".hidden/VERSION" @@ -184,6 +187,7 @@ class BasePlugin: def __init__(self): + self.internet_available = None self.ListOfDevices = ( {} ) # {DevicesAddresse : { status : status_de_detection, data : {ep list ou autres en fonctions du status}}, DevicesAddresse : ...} @@ -391,10 +395,9 @@ def onStart(self): self.onStop() return - #if self.pluginconf.pluginConf["Garbage"]: - # # Enable the cycle detector - # Domoticz.Log("Setup Garbage set_debug to %s" %gc.DEBUG_LEAK) - # gc.set_debug(gc.DEBUG_LEAK) + if self.internet_available is None: + is_internet_available() + self.internet_available = bool(self.pluginconf.pluginConf["internetAccess"]) # Create Domoticz Sub menu if "DomoticzCustomMenu" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["DomoticzCustomMenu"] : @@ -887,7 +890,8 @@ def onHeartbeat(self): return # Checking Version - _check_plugin_version( self ) + if self.internet_available: + _check_plugin_version( self ) if self.transport == "None": return @@ -1385,7 +1389,8 @@ def start_OTAManagement(self, homefolder): self.IEEE2NWK, self.log, self.PluginHealth, - self.readZclClusters + self.readZclClusters, + self.internet_available ) if self.OTA: self.webserver.update_OTA(self.OTA) @@ -1719,15 +1724,15 @@ def _check_plugin_version( self ): self.pluginParameters["available"], self.pluginParameters["available-firmMajor"], self.pluginParameters["available-firmMinor"], - ) = checkPluginVersion(self, self.zigbee_communication, self.pluginParameters["PluginBranch"], self.FirmwareMajorVersion) + ) = check_plugin_version_against_dns(self, self.zigbee_communication, self.pluginParameters["PluginBranch"], self.FirmwareMajorVersion) self.pluginParameters["FirmwareUpdate"] = False self.pluginParameters["PluginUpdate"] = False - if checkPluginUpdate(self, self.pluginParameters["PluginVersion"], self.pluginParameters["available"]): + if is_plugin_update_available(self, self.pluginParameters["PluginVersion"], self.pluginParameters["available"]): self.log.logging("Plugin", "Status", "*** A recent plugin version (%s) is waiting for you on gitHub. You are on (%s) ***" %( self.pluginParameters["available"], self.pluginParameters["PluginVersion"] )) self.pluginParameters["PluginUpdate"] = True - if checkFirmwareUpdate( + if is_zigate_firmware_available( self, self.FirmwareMajorVersion, self.FirmwareVersion, From 7e6f85ced036dd695d86c33acc68c0def4ec039b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 10:33:57 +0200 Subject: [PATCH 253/301] Plugin wip-develop version 7.2.079 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index a93126475..544b1a81f 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.078"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.079"} \ No newline at end of file From 98efbbc8eb7564c89e5f1227a34268ed6e58b71d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 14:53:37 +0200 Subject: [PATCH 254/301] WebUI update --- .hidden/VERSION | 2 +- www/z4d/{12.14d74df58224a7ef.js => 12.3967806234088415.js} | 2 +- www/z4d/index.html | 2 +- ...{runtime.c9d9cd43c9ea2eb9.js => runtime.a7a9d52a9859177d.js} | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename www/z4d/{12.14d74df58224a7ef.js => 12.3967806234088415.js} (99%) rename www/z4d/{runtime.c9d9cd43c9ea2eb9.js => runtime.a7a9d52a9859177d.js} (63%) diff --git a/.hidden/VERSION b/.hidden/VERSION index 544b1a81f..d2dd8adcb 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.079"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.080"} \ No newline at end of file diff --git a/www/z4d/12.14d74df58224a7ef.js b/www/z4d/12.3967806234088415.js similarity index 99% rename from www/z4d/12.14d74df58224a7ef.js rename to www/z4d/12.3967806234088415.js index 933176879..7ecf3ba97 100644 --- a/www/z4d/12.14d74df58224a7ef.js +++ b/www/z4d/12.3967806234088415.js @@ -1 +1 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}if(2&n){e.XpG();const t=e.sdS(18);e.R7$(7),e.FS9("placeholder",e.bMT(8,2,"device.byname.placeholder")),e.Y8G("value",null==t.filters.global?null:t.filters.global.value)}}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function S(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function $(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,S,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,$,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.title")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.text"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","device",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","value","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,4,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[12],{55012:(J,F,r)=>{r.r(F),r.d(F,{DeviceModule:()=>H});var l=r(89417),g=r(93887),d=r(93331),u=r(38117),e=r(54438),_=r(3366),m=r(19664),v=r(88652),h=r(45794),f=r(83801),E=r(60177),p=r(46247),y=r(5779),k=r(22242),j=r(81141);let I=(()=>{class n{iconName;static \u0275fac=function(a){return new(a||n)};static \u0275cmp=e.VBU({type:n,selectors:[["shared-custom-icon"]],inputs:{iconName:"iconName"},decls:5,vars:1,consts:[["preserveAspectRatio","xMidYMid meet","viewBox","0 0 64 64",1,"w-25"]],template:function(a,i){1&a&&(e.qSk(),e.j41(0,"svg",0),e.EFF(1,"\n "),e.nrm(2,"use"),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.R7$(2),e.BMQ("href","assets/icons.svg#"+i.iconName,null,"xlink"))},encapsulation:2})}return n})();const T=()=>["_NwkId","IEEE","Model","WidgetList","ZDeviceName","MacCapa","Status","Health"],C=()=>[10,25,50];function N(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",14),e.EFF(2,"\n "),e.j41(3,"span",15),e.EFF(4,"\n "),e.nrm(5,"i",16),e.EFF(6,"\n "),e.j41(7,"input",17),e.nI1(8,"translate"),e.bIt("input",function(i){e.eBV(t),e.XpG();const o=e.sdS(18);return e.Njj(o.filterGlobal(i.target.value,"contains"))}),e.k0s(),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n ")}if(2&n){e.XpG();const t=e.sdS(18);e.R7$(7),e.FS9("placeholder",e.bMT(8,2,"device.byname.placeholder")),e.Y8G("value",null==t.filters.global?null:t.filters.global.value)}}function D(n,c){1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",18),e.EFF(4),e.nI1(5,"translate"),e.k0s(),e.EFF(6,"\n "),e.j41(7,"th",18),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.EFF(10,"\n "),e.j41(11,"th",19),e.EFF(12),e.nI1(13,"translate"),e.nrm(14,"p-sortIcon",20),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"th",21),e.EFF(18),e.nI1(19,"translate"),e.nrm(20,"p-sortIcon",22),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"th",23),e.EFF(24),e.nI1(25,"translate"),e.nrm(26,"p-sortIcon",24),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"th",25),e.EFF(30),e.nI1(31,"translate"),e.nrm(32,"p-sortIcon",26),e.EFF(33,"\n "),e.k0s(),e.EFF(34,"\n "),e.j41(35,"th",27),e.EFF(36),e.nI1(37,"translate"),e.nrm(38,"p-sortIcon",28),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"th",29),e.EFF(42),e.nI1(43,"translate"),e.nrm(44,"p-sortIcon",30),e.EFF(45,"\n "),e.k0s(),e.EFF(46,"\n "),e.j41(47,"th",31),e.EFF(48),e.nI1(49,"translate"),e.nrm(50,"p-sortIcon",32),e.EFF(51,"\n "),e.k0s(),e.EFF(52,"\n "),e.j41(53,"th",33),e.EFF(54),e.nI1(55,"translate"),e.nrm(56,"p-sortIcon",34),e.EFF(57,"\n "),e.k0s(),e.EFF(58,"\n "),e.j41(59,"th",35),e.EFF(60),e.nI1(61,"translate"),e.nrm(62,"p-sortIcon",36),e.EFF(63,"\n "),e.k0s(),e.EFF(64,"\n "),e.j41(65,"th",37),e.EFF(66),e.nI1(67,"translate"),e.k0s(),e.EFF(68,"\n "),e.k0s(),e.EFF(69,"\n ")),2&n&&(e.R7$(4),e.SpI("\n ",e.bMT(5,12,"device.byname.trash.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(9,14,"device.byname.optimized.column"),"\n "),e.R7$(4),e.SpI("\n ",e.bMT(13,16,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(19,18,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(25,20,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(31,22,"device.byname.widget.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(37,24,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(43,26,"device.byname.capabilities.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(49,28,"device.byname.lqi.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(55,30,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(61,32,"device.byname.health.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(67,34,"device.byname.devicename.param"),"\n "))}function R(n,c){if(1&n&&e.nrm(0,"button",46),2&n){const t=e.XpG(),i=t.expanded;e.Y8G("pRowToggler",t.$implicit)("icon",i?"pi pi-chevron-down":"pi pi-chevron-right")}}function B(n,c){if(1&n){const t=e.RV6();e.j41(0,"i",47),e.nI1(1,"translate"),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG(),s=e.sdS(34);return o.rowToDelete=i,e.Njj(o.open(s))}),e.k0s()}2&n&&e.FS9("title",e.bMT(1,1,"device.byname.delete.colum"))}function w(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",50),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ok")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ok")))}function M(n,c){if(1&n){const t=e.RV6();e.qex(0),e.EFF(1,"\n "),e.j41(2,"div",48),e.bIt("click",function(){e.eBV(t);const i=e.XpG().$implicit,o=e.XpG();return e.Njj(o.copy(i))}),e.EFF(3,"\n "),e.j41(4,"div",49),e.EFF(5,"\n "),e.j41(6,"shared-custom-icon",51),e.nI1(7,"translate"),e.nI1(8,"translate"),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s(),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.bVm()}2&n&&(e.R7$(6),e.FS9("ngbPopover",e.bMT(7,2,"device.byname.optimized.popover.text.ko")),e.FS9("popoverTitle",e.bMT(8,4,"device.byname.optimized.popover.title.ko")))}function S(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function $(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function x(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"input",52),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG().$implicit;return e.DH7(o.ZDeviceName,i)||(o.ZDeviceName=i),e.Njj(i)}),e.bIt("input",function(){e.eBV(t);const i=e.XpG(2);return e.Njj(i.hasEditing=!0)}),e.k0s(),e.EFF(2,"\n ")}if(2&n){const t=e.XpG().$implicit;e.R7$(),e.R50("ngModel",t.ZDeviceName)}}function G(n,c){if(1&n&&(e.j41(0,"div"),e.EFF(1),e.k0s()),2&n){const t=c.$implicit;e.R7$(),e.SpI("\n ",t,"\n ")}}function V(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4,"\n "),e.DNE(5,R,1,2,"button",38),e.EFF(6,"\n "),e.DNE(7,B,2,3,"i",39),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.j41(10,"td"),e.EFF(11,"\n "),e.DNE(12,w,13,6,"ng-container",40),e.EFF(13,"\n "),e.DNE(14,M,13,6,"ng-container",40),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n "),e.j41(17,"td"),e.EFF(18),e.k0s(),e.EFF(19,"\n "),e.j41(20,"td"),e.EFF(21),e.k0s(),e.EFF(22,"\n "),e.j41(23,"td"),e.EFF(24),e.k0s(),e.EFF(25,"\n "),e.j41(26,"td"),e.EFF(27,"\n "),e.DNE(28,S,2,1,"div",41),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.j41(31,"td",42),e.EFF(32,"\n "),e.j41(33,"p-cellEditor"),e.EFF(34,"\n "),e.DNE(35,$,3,1,"ng-template",43),e.EFF(36,"\n "),e.DNE(37,x,3,1,"ng-template",44),e.EFF(38,"\n "),e.k0s(),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n "),e.j41(41,"td"),e.EFF(42,"\n "),e.DNE(43,G,2,1,"div",41),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n "),e.j41(46,"td"),e.EFF(47),e.k0s(),e.EFF(48,"\n "),e.j41(49,"td"),e.EFF(50),e.k0s(),e.EFF(51,"\n "),e.j41(52,"td"),e.EFF(53),e.k0s(),e.EFF(54,"\n "),e.j41(55,"td"),e.EFF(56,"\n "),e.j41(57,"i",45),e.nI1(58,"translate"),e.nI1(59,"translate"),e.bIt("click",function(){const i=e.eBV(t).$implicit,o=e.XpG(),s=e.sdS(37);return o.rowParameter=i,e.Njj(o.editParameter(s))}),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n ")}if(2&n){const t=c.$implicit;e.R7$(5),e.Y8G("ngIf","{}"!==t.Param),e.R7$(2),e.Y8G("ngIf","not in DZ"===t.ConsistencyCheck||"Bad Pairing"===t.ConsistencyCheck||!t.WidgetList||0===t.WidgetList.length),e.R7$(5),e.Y8G("ngIf",t.CertifiedDevice),e.R7$(2),e.Y8G("ngIf",!t.CertifiedDevice),e.R7$(4),e.JRh(t._NwkId),e.R7$(3),e.JRh(t.IEEE),e.R7$(3),e.JRh(t.Model),e.R7$(4),e.Y8G("ngForOf",t.WidgetList),e.R7$(3),e.Y8G("pEditableColumn",t.ZDeviceName),e.R7$(12),e.Y8G("ngForOf",t.MacCapa),e.R7$(4),e.JRh(t.LQI),e.R7$(3),e.JRh(t.Status),e.R7$(3),e.JRh(t.Health),e.R7$(4),e.xc7("color",t.CheckParam?"orange":"green"),e.FS9("ngbPopover",e.bMT(58,17,"device.byname.parameter.popover.text")),e.FS9("popoverTitle",e.bMT(59,19,"device.byname.parameter.popover.title"))}}function P(n,c){if(1&n&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td",53),e.EFF(4,"\n "),e.j41(5,"div",54),e.EFF(6,"\n "),e.j41(7,"div"),e.EFF(8,"\n "),e.j41(9,"strong"),e.EFF(10),e.nI1(11,"translate"),e.k0s(),e.EFF(12),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n ")),2&n){const t=c.$implicit;e.R7$(10),e.SpI("",e.bMT(11,2,"device.byname.devicename.param")," : "),e.R7$(2),e.SpI(" ",t.Param,"\n ")}}function X(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",56),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("Cross click"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.nrm(8,"div",58),e.EFF(9,"\n "),e.j41(10,"div",59),e.EFF(11,"\n "),e.j41(12,"button",60),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("erase"))}),e.k0s(),e.EFF(13,"\n "),e.j41(14,"button",61),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(15,"\n "),e.k0s(),e.EFF(16,"\n")}}function O(n,c){if(1&n){const t=e.RV6();e.EFF(0,"\n "),e.j41(1,"div",55),e.EFF(2,"\n "),e.nrm(3,"h4",62),e.EFF(4,"\n "),e.j41(5,"button",57),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("cancel"))}),e.k0s(),e.EFF(6,"\n "),e.k0s(),e.EFF(7,"\n "),e.j41(8,"div",63),e.EFF(9,"\n "),e.nrm(10,"div",64),e.nI1(11,"translate"),e.EFF(12,"\n "),e.j41(13,"div",65),e.EFF(14,"\n "),e.j41(15,"input",66),e.bIt("click",function(){e.eBV(t);const i=e.XpG();return e.Njj(i.onChangeEnabled())}),e.k0s(),e.EFF(16,"\n "),e.nrm(17,"label",67),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.j41(20,"div",68),e.EFF(21),e.nI1(22,"translate"),e.k0s(),e.EFF(23,"\n "),e.j41(24,"textarea",69),e.mxI("ngModelChange",function(i){e.eBV(t);const o=e.XpG();return e.DH7(o.parameter,i)||(o.parameter=i),e.Njj(i)}),e.k0s(),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",59),e.EFF(28,"\n "),e.j41(29,"button",70),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.dismiss("cancel"))}),e.k0s(),e.EFF(30,"\n "),e.j41(31,"button",71),e.bIt("click",function(){const i=e.eBV(t).$implicit;return e.Njj(i.close("save"))}),e.k0s(),e.EFF(32,"\n "),e.k0s(),e.EFF(33,"\n")}if(2&n){const t=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,4,"device.byname.parameter.alert.subject"),e.npT),e.R7$(5),e.Y8G("checked",t.enabled),e.R7$(6),e.SpI("",e.bMT(22,6,"device.byname.devicename.param")," :"),e.R7$(3),e.R50("ngModel",t.parameter)}}const b=new u.Vy("DeviceByNameComponent");let L=(()=>{class n{apiService;translate;modalService;toastr;clipboard;devices;rows=[];temp=[];hasEditing=!1;rowToDelete;rowParameter;parameter;expanded={};enabled=!1;prefixEnabled="Disabled";enabledTrue="'Disabled': 0";enabledFalse="'Disabled': 1";constructor(t,a,i,o,s){this.apiService=t,this.translate=a,this.modalService=i,this.toastr=o,this.clipboard=s}ngOnChanges(t){t.devices.currentValue!==t.devices.previousValue&&(this.devices=this.devices,this.rows=this.devices,this.temp=[...this.rows])}open(t){this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.delete()})}editParameter(t){this.parameter=this.rowParameter.Param,this.enabled=!this.parameter.includes(this.enabledFalse),this.enabled?(this.parameter=this.parameter.replace(this.enabledTrue.concat(","),""),this.parameter=this.parameter.replace(this.enabledTrue,"")):(this.parameter=this.parameter.replace(this.enabledFalse.concat(","),""),this.parameter=this.parameter.replace(this.enabledFalse,"")),this.modalService.open(t,{ariaLabelledBy:"modal-basic-title"}).result.then(()=>{this.parameter.includes(this.prefixEnabled)?this.toastr.error(this.translate.instant("device.byname.error.notify")):(this.parameter=this.parameter.replace("{",this.enabled?"{".concat(this.enabledTrue).concat(", "):"{".concat(this.enabledFalse).concat(", ")),this.updateValueJson(this.parameter,"Param",this.rowParameter._NwkId))})}onChangeEnabled(){this.enabled=!this.enabled}delete(){this.apiService.deleteZDeviceName(this.rowToDelete._NwkId).subscribe(()=>{const t=this.rows.indexOf(this.rowToDelete,0);this.rowToDelete=null,t>-1&&(this.rows.splice(t,1),this.rows=[...this.rows],this.temp=[...this.rows])})}updateValue(t,a,i){this.updateValueJson(t.target.value,a,i)}updateValueJson(t,a,i){this.hasEditing=!0;const o=this.rows.find(s=>s._NwkId===i);o?o[a]=t:b.error("row not found")}updateDevices(){this.apiService.putZDeviceName(this.rows).subscribe(t=>{b.debug(t),this.hasEditing=!1,this.toastr.success(this.translate.instant("api.global.succes.saved.notify"))})}copy(t){this.apiService.getNonOptimizedDevice(t._NwkId).subscribe(a=>this.clipboard.copy(JSON.stringify(a)))}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(m.c$),e.rXU(v.Bq),e.rXU(h.tw),e.rXU(f.B0))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device-by-name"]],inputs:{devices:"devices"},features:[e.OA$],decls:39,vars:26,consts:[["dt1",""],["content",""],["editContent",""],[1,"card"],[1,"card-header","fw-bold"],[1,"btn","btn-primary","float-end",3,"click","disabled","translate"],[1,"card-body"],[1,"card-text",3,"innerHTML"],[1,"card-text"],["styleClass","p-datatable-sm","dataKey","_NwkId","responsiveLayout","scroll","stateStorage","local","stateKey","device",3,"globalFilterFields","rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","caption"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],[1,"flex"],[1,"p-input-icon-left","ml-auto"],[1,"pi","pi-search"],["pInputText","","type","text",3,"input","value","placeholder"],[2,"width","1rem"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","WidgetList",2,"width","15rem"],["field","WidgetList"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","MacCapa",2,"width","10rem"],["field","MacCapa"],["pSortableColumn","LQI",2,"width","5rem"],["field","LQI"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"],[2,"width","2rem"],["type","button","pButton","","pRipple","","class","p-button-text p-button-rounded p-button-plain",3,"pRowToggler","icon",4,"ngIf"],["class","fa fa-trash","style","cursor: pointer",3,"title","click",4,"ngIf"],[4,"ngIf"],[4,"ngFor","ngForOf"],["pEditableColumnField","ZDeviceName",3,"pEditableColumn"],["pTemplate","input"],["pTemplate","output"],["triggers","mouseenter:mouseleave",1,"fas","fa-cog",2,"cursor","pointer",3,"click","ngbPopover","popoverTitle"],["type","button","pButton","","pRipple","",1,"p-button-text","p-button-rounded","p-button-plain",3,"pRowToggler","icon"],[1,"fa","fa-trash",2,"cursor","pointer",3,"click","title"],[3,"click"],[1,"container"],["triggers","mouseenter:mouseleave","iconName","CHECK_ICON",1,"container__icon","container__icon--green",3,"ngbPopover","popoverTitle"],["triggers","mouseenter:mouseleave","iconName","X_ICON",1,"container__icon","container__icon--orange",3,"ngbPopover","popoverTitle"],["pInputText","","type","text",3,"ngModelChange","input","ngModel"],["colspan","12"],[2,"padding-left","35px"],[1,"modal-header"],["id","modal-basic-title","translate","device.byname.alert.title",1,"modal-title"],["type","button","aria-label","Close",1,"btn-close",3,"click"],["translate","device.byname.alert.subject",1,"modal-body"],[1,"modal-footer"],["type","button","translate","device.byname.alert.delete",1,"btn","btn-primary",3,"click"],["type","button","translate","device.byname.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["id","modal-basic-title","translate","device.byname.parameter.alert.title",1,"modal-title"],[1,"modal-body"],[3,"innerHTML"],[1,"switch","switch-sm","mt-3","me-2","pe-3"],["type","checkbox","id","switch-enabled",3,"click","checked"],["for","switch-enabled","translate","device.byname.devicename.enabled",1,"mb-0"],[1,"mt-3"],["name","parameter","rows","5",3,"ngModelChange","ngModel"],["type","button","translate","device.byname.parameter.alert.cancel",1,"btn","btn-outline-dark",3,"click"],["type","button","translate","device.byname.parameter.alert.save",1,"btn","btn-primary",3,"click"]],template:function(a,i){if(1&a){const o=e.RV6();e.j41(0,"div",3),e.EFF(1,"\n "),e.j41(2,"div",4),e.EFF(3),e.nI1(4,"translate"),e.j41(5,"button",5),e.nI1(6,"translate"),e.bIt("click",function(){return e.eBV(o),e.Njj(i.updateDevices())}),e.k0s(),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"div",6),e.EFF(10,"\n "),e.nrm(11,"p",7),e.nI1(12,"translate"),e.nI1(13,"translate"),e.EFF(14,"\n "),e.j41(15,"div",8),e.EFF(16,"\n "),e.j41(17,"p-table",9,0),e.nI1(19,"translate"),e.EFF(20,"\n "),e.DNE(21,N,12,4,"ng-template",10),e.EFF(22,"\n "),e.DNE(23,D,70,36,"ng-template",11),e.EFF(24,"\n "),e.DNE(25,V,63,21,"ng-template",12),e.EFF(26,"\n "),e.DNE(27,P,17,4,"ng-template",13),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n"),e.k0s(),e.EFF(32,"\n\n"),e.DNE(33,X,17,0,"ng-template",null,1,e.C5r),e.EFF(35,"\n\n"),e.DNE(36,O,34,8,"ng-template",null,2,e.C5r),e.EFF(38,"\n")}2&a&&(e.R7$(3),e.SpI("\n ",e.bMT(4,14,"device.byname.header"),"\n "),e.R7$(2),e.FS9("translate",e.bMT(6,16,"device.byname.validate.button")),e.Y8G("disabled",!i.hasEditing),e.R7$(6),e.Y8G("innerHTML",e.bMT(12,18,"group.create.subtitle"),e.npT)("innerHTML",e.bMT(13,20,"device.byname.subtitle"),e.npT),e.R7$(6),e.FS9("currentPageReportTemplate",e.bMT(19,22,"TOTAL")),e.Y8G("globalFilterFields",e.lJ4(24,T))("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(25,C))("value",i.rows)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[E.Sq,E.bT,l.me,l.BC,l.vS,v.ZM,m.Mm,p.XI,y.Ei,p.Tg,p.FP,p.hp,p.c5,p.yc,k.S,j._f,I,m.D9],styles:[".container[_ngcontent-%COMP%]{display:flex}.container--green[_ngcontent-%COMP%]{color:green}.container--primary-color[_ngcontent-%COMP%]{color:var(--primary-color)}.container__icon[_ngcontent-%COMP%]{flex:1}.container__icon--orange[_ngcontent-%COMP%]{color:orange}.container__icon--green[_ngcontent-%COMP%]{color:green}textarea[_ngcontent-%COMP%]{width:100%}"]})}return n})();const Y=[{path:"",component:(()=>{class n{apiService;formBuilder;translate;form;devices;constructor(t,a,i){this.apiService=t,this.formBuilder=a,this.translate=i}ngOnInit(){this.form=this.formBuilder.group({devices:this.formBuilder.group({}),permit:this.formBuilder.group({})}),this.apiService.getZDeviceName().subscribe(t=>{this.devices=t})}static \u0275fac=function(a){return new(a||n)(e.rXU(_.G),e.rXU(l.ok),e.rXU(m.c$))};static \u0275cmp=e.VBU({type:n,selectors:[["app-device"]],decls:5,vars:2,consts:[[3,"formGroup"],[3,"devices"]],template:function(a,i){1&a&&(e.j41(0,"form",0),e.EFF(1,"\n "),e.nrm(2,"app-device-by-name",1),e.EFF(3,"\n"),e.k0s(),e.EFF(4,"\n")),2&a&&(e.Y8G("formGroup",i.form),e.R7$(2),e.Y8G("devices",i.devices))},dependencies:[l.qT,l.cb,l.j4,L]})}return n})(),data:{title:(0,u.o6)("device")}}];let Z=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[d.iI.forChild(Y),d.iI]})}return n})(),H=(()=>{class n{static \u0275fac=function(a){return new(a||n)};static \u0275mod=e.$C({type:n});static \u0275inj=e.G2t({imports:[Z,g.G,l.YN]})}return n})()}}]); \ No newline at end of file diff --git a/www/z4d/index.html b/www/z4d/index.html index d5dbd5be8..1f1ef108d 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -24,5 +24,5 @@

    This page requires JavaScript to work properly. Please enable JavaScript in your browser.

    - + diff --git a/www/z4d/runtime.c9d9cd43c9ea2eb9.js b/www/z4d/runtime.a7a9d52a9859177d.js similarity index 63% rename from www/z4d/runtime.c9d9cd43c9ea2eb9.js rename to www/z4d/runtime.a7a9d52a9859177d.js index 10be375e6..04d6269da 100644 --- a/www/z4d/runtime.c9d9cd43c9ea2eb9.js +++ b/www/z4d/runtime.a7a9d52a9859177d.js @@ -1 +1 @@ -(()=>{"use strict";var e,g={},m={};function r(e){var f=m[e];if(void 0!==f)return f.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(f,t,n,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(c=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,n,i]},(()=>{var f,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};f=f||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~f.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(c=>o[c]=()=>t[c]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>(76===e?"common":e)+"."+{12:"14d74df58224a7ef",76:"481b903deeb9dee7",317:"59bbe14d2339e649",521:"4a2e700ea1ed6d2d",577:"d8ab166ec1c4b8d8",644:"e5bbcc7e1d18b79d",837:"e9d5b18d020927e4",846:"e10721e2f1184a6d",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="z4d-plugin:";r.l=(t,n,i,o)=>{if(e[t])e[t].push(n);else{var a,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),l=0;l{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var o=r.o(e,n)?e[n]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=n){var a=new Promise((u,s)=>o=e[n]=[u,s]);i.push(o[2]=a);var c=r.p+r.u(n),d=new Error;r.l(c,u=>{if(r.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var s=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,o[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var f=(n,i)=>{var d,l,[o,a,c]=i,u=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(c)var s=c(r)}for(n&&n(i);u{"use strict";var e,g={},m={};function r(e){var f=m[e];if(void 0!==f)return f.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(f,t,n,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,n,i]},(()=>{var f,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};f=f||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~f.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>o[l]=()=>t[l]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>(76===e?"common":e)+"."+{12:"3967806234088415",76:"481b903deeb9dee7",317:"59bbe14d2339e649",521:"4a2e700ea1ed6d2d",577:"d8ab166ec1c4b8d8",644:"e5bbcc7e1d18b79d",837:"e9d5b18d020927e4",846:"e10721e2f1184a6d",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="z4d-plugin:";r.l=(t,n,i,o)=>{if(e[t])e[t].push(n);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),u=0;u{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var o=r.o(e,n)?e[n]:void 0;if(0!==o)if(o)i.push(o[2]);else if(121!=n){var a=new Promise((c,s)=>o=e[n]=[c,s]);i.push(o[2]=a);var l=r.p+r.u(n),d=new Error;r.l(l,c=>{if(r.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var s=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,o[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var f=(n,i)=>{var d,u,[o,a,l]=i,c=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var s=l(r)}for(n&&n(i);c Date: Sun, 28 Apr 2024 14:54:01 +0200 Subject: [PATCH 255/301] ignore zigpy persistent db in Data --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 006f48846..a3b008ad0 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ Data/zigatePDM-* Data/ZigateGroupsConfig** Data/Zigate.json Data/*.backup** +Data/zigpy_persistent** www/zigate/reports/* Logs/* Reports/* From 7ba513f4d509ffbaa6fc41e9c10a810e903565ba Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 14:54:12 +0200 Subject: [PATCH 256/301] Plugin wip-develop version 7.2.081 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index d2dd8adcb..8fd8daeee 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.080"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.081"} \ No newline at end of file From f766c8434e169cc5da5575c504a10afe4daef9a6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 14:57:25 +0200 Subject: [PATCH 257/301] zigpy upstream 0.64.0 --- Modules/pluginHelpers.py | 2 +- constraints.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index c15b60d99..cefa97ec1 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -22,7 +22,7 @@ from Modules.domoticzAbstractLayer import domoticz_error_api MODULES_VERSION = { - "zigpy": "0.63.5", + "zigpy": "0.64.0", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", "bellows": "0.38.1", diff --git a/constraints.txt b/constraints.txt index e4129ee0d..7c518d975 100644 --- a/constraints.txt +++ b/constraints.txt @@ -1,5 +1,5 @@ charset-normalizer==2.0.11 -zigpy==0.63.5 +zigpy==0.64.0 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 bellows==0.38.1 From ddbf2f5498e286b6a094b963c75ee38bfa42281e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 14:57:32 +0200 Subject: [PATCH 258/301] Plugin wip-develop version 7.2.082 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 8fd8daeee..237d86065 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.081"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.082"} \ No newline at end of file From eb33ad42452994e7f6245563763c5b012ee7acee Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 18:26:22 +0200 Subject: [PATCH 259/301] make sure that BuildVersion is also available in Group object --- Classes/GroupMgtv2/GroupManagement.py | 2 ++ plugin.py | 1 + 2 files changed, 3 insertions(+) diff --git a/Classes/GroupMgtv2/GroupManagement.py b/Classes/GroupMgtv2/GroupManagement.py index ea509a0f0..b4f581b5c 100644 --- a/Classes/GroupMgtv2/GroupManagement.py +++ b/Classes/GroupMgtv2/GroupManagement.py @@ -87,6 +87,7 @@ def __init__( VersionNewFashion, DomoticzMajor, DomoticzMinor, + DomoticzBuild, PluginConf, ZigateComm, adminWidgets, @@ -121,6 +122,7 @@ def __init__( self.VersionNewFashion = VersionNewFashion self.DomoticzMajor = DomoticzMajor self.DomoticzMinor = DomoticzMinor + self.DomoticzBuild = DomoticzBuild self.readZclClusters = readZclClusters self.pluginParameters = pluginParameters self.ListOfDomoticzWidget = ListOfDomoticzWidget diff --git a/plugin.py b/plugin.py index 47f9a167c..ee915012a 100644 --- a/plugin.py +++ b/plugin.py @@ -1344,6 +1344,7 @@ def start_GrpManagement(self, homefolder): self.VersionNewFashion, self.DomoticzMajor, self.DomoticzMinor, + self.DomoticzBuild, self.pluginconf, self.ControllerLink, self.adminWidgets, From 24a5a56cd183553eced429cfbff022a77450057d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 28 Apr 2024 18:26:38 +0200 Subject: [PATCH 260/301] Plugin wip-develop version 7.2.083 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 237d86065..84be590c9 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.082"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.083"} \ No newline at end of file From 8cdd78a97ee5860da0fb4b7bc4747677aa3fd3a0 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:26:00 +0200 Subject: [PATCH 261/301] Update checkingUpdate.py --- Modules/checkingUpdate.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Modules/checkingUpdate.py b/Modules/checkingUpdate.py index 08c931b8c..649e7b365 100644 --- a/Modules/checkingUpdate.py +++ b/Modules/checkingUpdate.py @@ -66,13 +66,18 @@ def check_plugin_version_against_dns(self, zigbee_communication, branch, zigate_ return (0, 0, 0) -def _get_dns_txt_record(self, record): +def _get_dns_txt_record(self, record, timeout=1): try: - result = dns.resolver.resolve(record, "TXT", tcp=True, lifetime=1).response.answer[0] - return str(result[0]).strip('"') + answers = dns.resolver.resolve(record, "TXT", tcp=True, lifetime=timeout) + txt_records = [str(answer).strip('"') for answer in answers] + return txt_records - except Exception as e: - self.log.logging("Plugin", "Error", f"An error occurred while resolving DNS TXT record: {e}") + except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN) as e: + self.log.logging("Plugin", "Error", f"DNS TXT record not found for {record}: {e}") + return None + + except dns.resolver.Timeout: + self.log.logging("Plugin", "Error", f"DNS resolution timed out for {record}") return None From 67d00bc5c1b61583c4d0971f0c3100825b3e1d12 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 29 Apr 2024 19:23:06 +0200 Subject: [PATCH 262/301] update dns_record_query function --- Modules/checkingUpdate.py | 82 +++++++++++++++++++++------------------ plugin.py | 34 +++++++--------- 2 files changed, 60 insertions(+), 56 deletions(-) diff --git a/Modules/checkingUpdate.py b/Modules/checkingUpdate.py index 649e7b365..90f9f3eb0 100644 --- a/Modules/checkingUpdate.py +++ b/Modules/checkingUpdate.py @@ -32,53 +32,61 @@ def check_plugin_version_against_dns(self, zigbee_communication, branch, zigate_model): self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {zigbee_communication} {branch} {zigate_model}") - - try: - plugin_version = None - firmware_version = None - - plugin_version = _get_dns_txt_record(self, PLUGIN_TXT_RECORD) - plugin_version_dict = _parse_dns_txt_record( plugin_version) - - # If native communication (zigate) let's find the zigate firmware - if zigbee_communication == "native": - zigate_plugin_record = ZIGATE_DNS_RECORDS.get(zigate_model) - firmware_version = _get_dns_txt_record(self, zigate_plugin_record) - firmware_version_dict = _parse_dns_txt_record(firmware_version) - self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {firmware_version} {firmware_version_dict}") - - self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {plugin_version} {plugin_version_dict}") - - if zigbee_communication == "native" and branch in plugin_version_dict and "firmMajor" in firmware_version_dict and "firmMinor" in firmware_version_dict: - return (plugin_version_dict[branch], firmware_version_dict["firmMajor"], firmware_version_dict["firmMinor"]) - - if zigbee_communication == "zigpy" and branch in plugin_version_dict: - return (plugin_version_dict[branch], 0, 0) - - self.log.logging("Plugin", "Error", f"You are running {branch}-{plugin_version}, a NOT SUPPORTED version. " - "Please refer to https://github.com/zigbeefordomoticz/Domoticz-Zigbee to get the latest information") - except Exception as e: - self.log.logging("Plugin", "Error", f"An error occurred while checking plugin version: {e}") - if not is_internet_available(): - self.internet_available = False + plugin_version = None + plugin_version = _get_dns_txt_record(self, PLUGIN_TXT_RECORD) + + if plugin_version is None: + # Something weird happened + self.log.logging("Plugin", "Error", "Unable to get access to plugin expected version. Is Internet access available ?") + return (0, 0, 0) + + plugin_version_dict = _parse_dns_txt_record( plugin_version) + + # If native communication (zigate) let's find the zigate firmware + firmware_version = None + if zigbee_communication == "native": + zigate_plugin_record = ZIGATE_DNS_RECORDS.get(zigate_model) + firmware_version = _get_dns_txt_record(self, zigate_plugin_record) + firmware_version_dict = _parse_dns_txt_record(firmware_version) + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {firmware_version} {firmware_version_dict}") + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {plugin_version} {plugin_version_dict}") + + if zigbee_communication == "native" and branch in plugin_version_dict and "firmMajor" in firmware_version_dict and "firmMinor" in firmware_version_dict: + return (plugin_version_dict[branch], firmware_version_dict["firmMajor"], firmware_version_dict["firmMinor"]) + + if zigbee_communication == "zigpy" and branch in plugin_version_dict: + return (plugin_version_dict[branch], 0, 0) + + self.log.logging("Plugin", "Error", f"You are running {branch}-{plugin_version}, a NOT SUPPORTED version. ") return (0, 0, 0) def _get_dns_txt_record(self, record, timeout=1): + if not self.internet_available: + return None + try: answers = dns.resolver.resolve(record, "TXT", tcp=True, lifetime=timeout) - txt_records = [str(answer).strip('"') for answer in answers] - return txt_records - - except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN) as e: - self.log.logging("Plugin", "Error", f"DNS TXT record not found for {record}: {e}") - return None + return [str(answer).strip('"') for answer in answers] except dns.resolver.Timeout: - self.log.logging("Plugin", "Error", f"DNS resolution timed out for {record}") - return None + error_message = f"DNS resolution timed out for {record} after {timeout} second" + self.internet_available = False + + except dns.resolver.NoAnswer: + error_message = f"DNS TXT record not found for {record}" + + except dns.resolver.NoNameservers: + error_message = f"No nameservers found for {record}" + self.internet_available = False + + except Exception as e: + error_message = f"An unexpected error occurred while resolving DNS TXT record for {record}: {e}" + + self.log.logging("Plugin", "Error", error_message) + return None def _parse_dns_txt_record(txt_record): diff --git a/plugin.py b/plugin.py index ee915012a..7a25e9626 100644 --- a/plugin.py +++ b/plugin.py @@ -573,9 +573,7 @@ def onStart(self): if Parameters["Mode4"].isdigit() or ':' in Parameters["Mode4"]: start_web_server(self, Parameters["Mode4"], Parameters["HomeFolder"]) else: - self.log.logging( - "Plugin", "Error", "WebServer disabled du to Parameter Mode4 set to %s" % Parameters["Mode4"] - ) + self.log.logging( "Plugin", "Error", "WebServer disabled du to Parameter Mode4 set to %s" % Parameters["Mode4"] ) if is_domoticz_extended(): framework_status = "Extended Framework" @@ -585,7 +583,7 @@ def onStart(self): usage_percentage = round(((255 - free_slots) / 255) * 100, 1) self.log.logging("Plugin", "Status", f"Domoticz Widgets usage is at {usage_percentage}% ({free_slots} units free)") - self.log.logging("Plugin", "Status", f"Plugin started with !! {framework_status} !!") + self.log.logging("Plugin", "Status", f"Plugin started with {framework_status}") self.busy = False @@ -690,16 +688,10 @@ def onDeviceRemoved(self, Unit): def onConnect(self, Connection, Status, Description): - self.log.logging("Plugin", "Debug", "onConnect called with status: %s" % Status) - self.log.logging( - "Plugin", "Debug", "onConnect %s called with status: %s and Desc: %s" % (Connection, Status, Description) - ) + self.log.logging( "Plugin", "Debug", "onConnect %s called with status: %s and Desc: %s" % (Connection, Status, Description) ) decodedConnection = decodeConnection(str(Connection)) - if "Protocol" in decodedConnection and decodedConnection["Protocol"] in ( - "HTTP", - "HTTPS", - ): # We assumed that is the Web Server + if "Protocol" in decodedConnection and decodedConnection["Protocol"] in ( "HTTP", "HTTPS", ): # We assumed that is the Web Server if self.webserver: self.webserver.onConnect(Connection, Status, Description) return @@ -707,13 +699,7 @@ def onConnect(self, Connection, Status, Description): self.busy = True if Status != 0: - self.log.logging("Plugin", "Error", "Failed to connect (" + str(Status) + ")") - self.log.logging("Plugin", "Debug", "Failed to connect (" + str(Status) + ") with error: " + Description) - self.connectionState = 0 - self.ControllerLink.re_conn() - self.PluginHealth["Flag"] = 3 - self.PluginHealth["Txt"] = "No Communication" - self.adminWidgets.updateStatusWidget(Devices, "No Communication") + _onConnect_status_error(self, Status, Description) return self.log.logging("Plugin", "Debug", "Connected successfully") @@ -721,6 +707,7 @@ def onConnect(self, Connection, Status, Description): self.PluginHealth["Flag"] = 2 self.PluginHealth["Txt"] = "Starting Up" self.adminWidgets.updateStatusWidget(Devices, "Starting the plugin up") + elif self.connectionState == 0: self.log.logging("Plugin", "Status", "Reconnected after failure") self.PluginHealth["Flag"] = 2 @@ -949,6 +936,15 @@ def onHeartbeat(self): self.busy = _check_if_busy(self) return True +def _onConnect_status_error(self, Status, Description): + self.log.logging("Plugin", "Error", "Failed to connect (" + str(Status) + ")") + self.log.logging("Plugin", "Debug", "Failed to connect (" + str(Status) + ") with error: " + Description) + self.connectionState = 0 + self.ControllerLink.re_conn() + self.PluginHealth["Flag"] = 3 + self.PluginHealth["Txt"] = "No Communication" + self.adminWidgets.updateStatusWidget(Devices, "No Communication") + def retreive_zigpy_topology_data(self): # Determine sync period based on existing data From 6cba478dfb20adb128b101323a1716253617d325 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 29 Apr 2024 19:23:38 +0200 Subject: [PATCH 263/301] Plugin wip-develop version 7.2.084 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 84be590c9..63e9346e7 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.083"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.084"} \ No newline at end of file From 810f0677396d6a6105185dc20518e6d2a572b456 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 29 Apr 2024 22:37:00 +0200 Subject: [PATCH 264/301] harmonised startup messages --- Classes/OTA.py | 14 ++- Classes/ZigpyTransport/AppBellows.py | 10 +- Classes/ZigpyTransport/AppDeconz.py | 8 +- Classes/ZigpyTransport/AppGeneric.py | 12 +- Classes/ZigpyTransport/AppZnp.py | 12 +- Classes/ZigpyTransport/Transport.py | 2 +- .../ZigpyTransport/firmwareversionHelper.py | 2 +- Classes/ZigpyTransport/forwarderThread.py | 4 +- Classes/ZigpyTransport/zigpyThread.py | 34 +++--- Modules/basicOutputs.py | 6 +- Modules/checkingUpdate.py | 6 +- Modules/database.py | 28 ++--- Modules/domoticzAbstractLayer.py | 1 - Modules/readZclClusters.py | 4 +- plugin.py | 110 ++++++++---------- 15 files changed, 115 insertions(+), 138 deletions(-) diff --git a/Classes/OTA.py b/Classes/OTA.py index d235fad24..b2038d399 100644 --- a/Classes/OTA.py +++ b/Classes/OTA.py @@ -963,11 +963,15 @@ def ota_scan_folder(self): # OK 13/10 "intImageVersion": headers["image_version"], "intSize": headers["size"], } - # Logging if Debug - logging(self, "Status", "ota_scan_folder Following Firmware have been loaded ") - for brand, value in self.ListOfImages["Brands"].items(): - for ota_image_file in value: - logging(self, "Status", " --> Brand: %s Image File: %s" % (brand, ota_image_file)) + # Check if there are any firmware images loaded + if self.ListOfImages: + logging(self, "Status", "Z4D loads the firmware images") + + # Iterate over the loaded firmware images and log their details + for brand, value in self.ListOfImages["Brands"].items(): + for ota_image_file in value: + logging(self, "Status", " --> Brand: %s Image File: %s" % (brand, ota_image_file)) + def check_image_valid_version(self, brand, image_type, ota_image_file, headers): # OK 13/10 # Purpose is to check if the already imported image has a higher version or not. diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 79274bc99..44a1d3f43 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -82,7 +82,7 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call await self.shutdown() raise - self.log.logging("TransportZigpy", "Log", "EZSP Configuration %s" %self.config) + self.log.logging("TransportZigpy", "Status", "++ EZSP Configuration %s" %self.config) # Populate and get the list of active devices. # This will allow the plugin if needed to update the IEEE -> NwkId @@ -92,9 +92,9 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call # Trigger Version payload to plugin try: brd_manuf, brd_name, version = await self._ezsp.get_board_info() - self.log.logging("TransportZigpy", "Status", "EZSP Radio manufacturer: %s" %brd_manuf) - self.log.logging("TransportZigpy", "Status", "EZSP Radio board name: %s" %brd_name) - self.log.logging("TransportZigpy", "Status", "EmberZNet version: %s" %version) + self.log.logging("TransportZigpy", "Status", "++ EZSP Radio manufacturer: %s" %brd_manuf) + self.log.logging("TransportZigpy", "Status", "++ EZSP Radio board name: %s" %brd_name) + self.log.logging("TransportZigpy", "Status", "++ EmberZNet version: %s" %version) except EzspError as exc: LOGGER.error("EZSP Radio does not support getMfgToken command: %s" %str(exc)) @@ -131,7 +131,7 @@ def connection_lost(self, exc: Exception) -> None: async def register_endpoints(self, endpoint=1): # Only needed if the device require simple node descriptor from the coordinator - self.log.logging("TransportZigpy", "Status", "Bellows Radio register default Ep") + self.log.logging("TransportZigpy", "Status", "++ Bellows Radio register default Ep") await self.add_endpoint( zdo_types.SimpleDescriptor( endpoint=1, diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index a0c59b918..e6a471da8 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -82,7 +82,7 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call await self.shutdown() raise - self.log.logging("TransportZigpy", "Log", "deConz Configuration %s" %self.config) + self.log.logging("TransportZigpy", "Status", "++ deConz Configuration %s" %self.config) # Populate and get the list of active devices. # This will allow the plugin if needed to update the IEEE -> NwkId await self.load_network_info( load_devices=True ) @@ -97,9 +97,9 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call # Trigger Version payload to plugin deconz_model = self.get_device(nwk=t.NWK(0x0000)).model deconz_manuf = self.get_device(nwk=t.NWK(0x0000)).manufacturer - self.log.logging("TransportZigpy", "Status", "deConz Radio manufacturer: %s" %deconz_manuf) - self.log.logging("TransportZigpy", "Status", "deConz Radio board model: %s" %deconz_model) - self.log.logging("TransportZigpy", "Status", "deConz Radio version: 0x %x" %version ) + self.log.logging("TransportZigpy", "Status", "++ deConz Radio manufacturer: %s" %deconz_manuf) + self.log.logging("TransportZigpy", "Status", "++ deConz Radio board model: %s" %deconz_model) + self.log.logging("TransportZigpy", "Status", "++ deConz Radio version: 0x %x" %version ) branch, version = deconz_extract_versioning_for_plugin( self, deconz_model, deconz_manuf, version) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index ea8c84b43..3b4e547ca 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -46,7 +46,7 @@ async def _load_db(self) -> None: if not database_file: return - LOGGER.info("PersistingListener on %s" %database_file) + LOGGER.info("++ PersistingListener on %s" %database_file) self._dblistener = await zigpy.appdb.PersistingListener.new(database_file, self) await self._dblistener.load() self._add_db_listeners() @@ -94,7 +94,7 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) if _retreived_backup is None: await super(type(self),self).form_network() else: - self.log.logging( "Zigpy", "Status","Force Form: Restoring the most recent network backup") + self.log.logging( "Zigpy", "Status","++ Force Form: Restoring the most recent network backup") await self.backups.restore_backup( _retreived_backup ) # Load Network Information @@ -107,16 +107,16 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) if not auto_form: raise - self.log.logging( "Zigpy", "Status","Forming a new network") + self.log.logging( "Zigpy", "Status","++ Forming a new network") await super(type(self),self).form_network() if _retreived_backup is None: # Form a new network if we have no backup - self.log.logging( "Zigpy", "Status","Forming a new network with no backup") + self.log.logging( "Zigpy", "Status","++ Forming a new network with no backup") await self.form_network() else: # Otherwise, restore the most recent backup - self.log.logging( "Zigpy", "Status","Restoring the most recent network backup") + self.log.logging( "Zigpy", "Status","++ Restoring the most recent network backup") await self.backups.restore_backup( _retreived_backup ) await self.load_network_info(load_devices=True) @@ -446,7 +446,7 @@ async def register_specific_endpoints(self): # Iterate through endpoint configurations for plugin, (endpoint, input_clusters, output_clusters) in endpoint_configs.items(): if plugin in self.pluginconf.pluginConf and self.pluginconf.pluginConf[plugin]: - self.log.logging("TransportZigpy", "Status", f"Adding {plugin} Endpoint 0x{endpoint:x}") + self.log.logging("TransportZigpy", "Status", f"++ Adding {plugin} Endpoint 0x{endpoint:x}") await self.add_endpoint( zdo_types.SimpleDescriptor( endpoint=endpoint, diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index c7e0fa2e1..44165e0d2 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -85,7 +85,7 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call await self.shutdown() raise - self.log.logging("TransportZigpy", "Log", "ZNP Configuration %s" %self.config) + self.log.logging("TransportZigpy", "Status", "++ ZNP Configuration %s" %self.config) # Populate and get the list of active devices. # This will allow the plugin if needed to update the IEEE -> NwkId await self.load_network_info( load_devices=True ) @@ -100,9 +100,9 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call FirmwareBranch, FirmwareVersion, build = znp_extract_versioning_for_plugin( self, znp_model, znp_manuf, version) self.callBackFunction(build_plugin_8010_frame_content(FirmwareBranch, "000000", FirmwareVersion, "" )) - self.log.logging("TransportZigpy", "Status", "ZNP Radio manufacturer: %s" %znp_manuf) - self.log.logging("TransportZigpy", "Status", "ZNP Radio board model: %s" %znp_model) - self.log.logging("TransportZigpy", "Status", "ZNP Radio version: %s" %version) + self.log.logging("TransportZigpy", "Status", "++ ZNP Radio manufacturer: %s" %znp_manuf) + self.log.logging("TransportZigpy", "Status", "++ ZNP Radio board model: %s" %znp_model) + self.log.logging("TransportZigpy", "Status", "++ ZNP Radio version: %s" %version) async def shutdown(self) -> None: @@ -116,10 +116,10 @@ def connection_lost(self, exc: Exception) -> None: async def register_endpoints(self): - self.log.logging("TransportZigpy", "Status", "ZNP Radio register default Ep") + self.log.logging("TransportZigpy", "Status", "++ ZNP Radio register default Ep") await super().register_endpoints() - self.log.logging("TransportZigpy", "Status", "ZNP Radio register any additional/specific Ep") + self.log.logging("TransportZigpy", "Status", "++ ZNP Radio register any additional/specific Ep") await Classes.ZigpyTransport.AppGeneric.register_specific_endpoints(self) diff --git a/Classes/ZigpyTransport/Transport.py b/Classes/ZigpyTransport/Transport.py index cb0edb209..8144cfdc3 100644 --- a/Classes/ZigpyTransport/Transport.py +++ b/Classes/ZigpyTransport/Transport.py @@ -90,7 +90,7 @@ def close_cie_connection(self): pass def thread_transport_shutdown(self): - self.log.logging("Transport", "Status", "Shuting down co-routine") + self.log.logging("Transport", "Debug", "Shuting down co-routine") stop_zigpy_thread(self) stop_forwarder_thread(self) diff --git a/Classes/ZigpyTransport/firmwareversionHelper.py b/Classes/ZigpyTransport/firmwareversionHelper.py index 52425bdca..b098532a0 100644 --- a/Classes/ZigpyTransport/firmwareversionHelper.py +++ b/Classes/ZigpyTransport/firmwareversionHelper.py @@ -16,7 +16,7 @@ # Bellows def bellows_extract_versioning_for_plugin(self, brd_manuf, brd_name, version): - self.log.logging("TransportZigpy", "Log", "bellows_extract_versioning_for_plugin Manuf: %s Name: %s Version: %s" % (brd_manuf, brd_name, version)) + self.log.logging("TransportZigpy", "Debug", "bellows_extract_versioning_for_plugin Manuf: %s Name: %s Version: %s" % (brd_manuf, brd_name, version)) firmware_branch = "98" # Not found in the Table. diff --git a/Classes/ZigpyTransport/forwarderThread.py b/Classes/ZigpyTransport/forwarderThread.py index a8c0bf9c3..184a3c36a 100644 --- a/Classes/ZigpyTransport/forwarderThread.py +++ b/Classes/ZigpyTransport/forwarderThread.py @@ -21,7 +21,7 @@ def stop_forwarder_thread(self): def forwarder_thread(self): - self.log.logging("TransportFrwder", "Status", "ZigpyTransport: thread_processing_and_sending Thread start.") + self.log.logging("TransportFrwder", "Debug", "ZigpyTransport: thread_processing_and_sending Thread start.") self.forwarder_queue = queue.Queue() @@ -48,7 +48,7 @@ def forwarder_thread(self): handle_thread_error(self, e, message) - self.log.logging("TransportFrwder", "Status", "ZigpyTransport: thread_processing_and_sending Thread stop.") + self.log.logging("TransportFrwder", "Debug", "ZigpyTransport: thread_processing_and_sending Thread stop.") @time_spent_forwarder() diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 3e9452644..96a500956 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -159,7 +159,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, from Classes.ZigpyTransport.AppBellows import App_bellows as App config = ezsp_configuration_setup(self, radio_specific_conf, serialPort) - self.log.logging("TransportZigpy", "Status", "Started radio %s port: %s" %( radiomodule, serialPort)) + self.log.logging("TransportZigpy", "Status", "++ Started radio %s port: %s" %( radiomodule, serialPort)) elif radiomodule =="znp": import zigpy_znp.config as radio_specific_conf @@ -167,7 +167,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, from Classes.ZigpyTransport.AppZnp import App_znp as App config = znp_configuration_setup(self, radio_specific_conf, serialPort) - self.log.logging("TransportZigpy", "Status", "Started radio znp port: %s" %(serialPort)) + self.log.logging("TransportZigpy", "Status", "++ Started radio znp port: %s" %(serialPort)) elif radiomodule =="deCONZ": import zigpy_deconz.config as radio_specific_conf @@ -175,7 +175,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, from Classes.ZigpyTransport.AppDeconz import App_deconz as App config = deconz_configuration_setup(self, radio_specific_conf, serialPort) - self.log.logging("TransportZigpy", "Status", "Started radio deconz port: %s" %(serialPort)) + self.log.logging("TransportZigpy", "Status", "++ Started radio deconz port: %s" %(serialPort)) else: self.log.logging( "TransportZigpy", "Error", "Wrong radiomode: %s" % (radiomodule), ) @@ -199,7 +199,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, return if self.pluginParameters["Mode3"] == "True": - self.log.logging( "TransportZigpy", "Status", "Coordinator initialisation requested Channel %s(0x%02x) ExtendedPanId: 0x%016x" % ( + self.log.logging( "TransportZigpy", "Status", "++ Coordinator initialisation requested Channel %s(0x%02x) ExtendedPanId: 0x%016x" % ( set_channel, set_channel, set_extendedPanId), ) new_network = True @@ -207,7 +207,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, new_network = False if self.use_of_zigpy_persistent_db and self.app: - self.log.logging( "TransportZigpy", "Status", "Use of Zigpy Persistent Db") + self.log.logging( "TransportZigpy", "Status", "++ Use of Zigpy Persistent Db") await self.app._load_db() await _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule) @@ -224,11 +224,11 @@ def ezsp_configuration_setup(self, bellows_conf, serialPort): } if "BellowsNoMoreEndDeviceChildren" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["BellowsNoMoreEndDeviceChildren"]: - self.log.logging("TransportZigpy", "Status", "Set The maximum number of end device children that Coordinater will support to 0") + self.log.logging("TransportZigpy", "Status", "++ Set The maximum number of end device children that Coordinater will support to 0") config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_MAX_END_DEVICE_CHILDREN"] = 0 if self.pluginconf.pluginConf["TXpower_set"]: - self.log.logging("TransportZigpy", "Status", "Enables boost power mode and the alternate transmitter output.") + self.log.logging("TransportZigpy", "Status", "++ Enables boost power mode and the alternate transmitter output.") config[bellows_conf.CONF_EZSP_CONFIG]["CONFIG_TX_POWER_MODE"] = 0x3 return config @@ -325,7 +325,7 @@ async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_netwo if new_network: # Assume that the new network has been created - self.log.logging( "TransportZigpy", "Status", "Assuming new network formed") + self.log.logging( "TransportZigpy", "Status", "++ Assuming new network formed") self.ErasePDMDone = True display_network_infos(self) @@ -354,14 +354,14 @@ def post_coordinator_startup(self, radiomodule): def display_network_infos(self): - self.log.logging( "TransportZigpy", "Status", "Network settings") - self.log.logging( "TransportZigpy", "Status", " Device IEEE: %s" %self.app.state.node_info.ieee) - self.log.logging( "TransportZigpy", "Status", " Device NWK: 0x%04X" %self.app.state.node_info.nwk) - self.log.logging( "TransportZigpy", "Status", " Network Update Id: 0x%04X" %self.app.state.network_info.nwk_update_id) - self.log.logging( "TransportZigpy", "Status", " PAN ID: 0x%04X" %self.app.state.network_info.pan_id) - self.log.logging( "TransportZigpy", "Status", " Extended PAN ID: %s" %self.app.state.network_info.extended_pan_id) - self.log.logging( "TransportZigpy", "Status", " Channel: %s" %self.app.state.network_info.channel) - self.log.logging( "TransportZigpy", "Debug", " Network key: " + ":".join( f"{c:02x}" for c in self.app.state.network_information.network_key.key )) + self.log.logging( "TransportZigpy", "Status", "++ Network settings") + self.log.logging( "TransportZigpy", "Status", "++ Device IEEE: %s" %self.app.state.node_info.ieee) + self.log.logging( "TransportZigpy", "Status", "++ Device NWK: 0x%04X" %self.app.state.node_info.nwk) + self.log.logging( "TransportZigpy", "Status", "++ Network Update Id: 0x%04X" %self.app.state.network_info.nwk_update_id) + self.log.logging( "TransportZigpy", "Status", "++ PAN ID: 0x%04X" %self.app.state.network_info.pan_id) + self.log.logging( "TransportZigpy", "Status", "++ Extended PAN ID: %s" %self.app.state.network_info.extended_pan_id) + self.log.logging( "TransportZigpy", "Status", "++ Channel: %s" %self.app.state.network_info.channel) + self.log.logging( "TransportZigpy", "Debug", "++ Network key: " + ":".join( f"{c:02x}" for c in self.app.state.network_information.network_key.key )) async def worker_loop(self): @@ -479,7 +479,7 @@ async def _permit_to_joint(self, data): permit_to_join_timer["Timer"] = time.time() permit_to_join_timer["Duration"] = duration - log.logging("TransportZigpy", "Status", f"PERMIT-TO-JOIN: duration: {duration} for Radio: {self._radiomodule} for node: {target_router}") + log.logging("TransportZigpy", "Status", f"++ opening zigbee network for {duration} secondes on specific router {target_router}") if radiomodule == "deCONZ": return await app.permit_ncp(time_s=duration) diff --git a/Modules/basicOutputs.py b/Modules/basicOutputs.py index efd28d6ae..868b8444e 100644 --- a/Modules/basicOutputs.py +++ b/Modules/basicOutputs.py @@ -61,16 +61,16 @@ def ZigatePermitToJoin(self, permit): # Enable Permit to join if self.permitTojoin["Duration"] != 255: if permit != 255: - self.log.logging("BasicOutput", "Status", "Request Accepting new Hardware for %s seconds " % permit) + self.log.logging("BasicOutput", "Status", "Z4D opened the Zigbee network for %s seconds " % permit) else: - self.log.logging("BasicOutput", "Status", "Request Accepting new Hardware for ever ") + self.log.logging("BasicOutput", "Status", "Z4D opened the Zigbee network for ever ") self.permitTojoin["Starttime"] = int(time()) self.permitTojoin["Duration"] = 0 if permit <= 5 else permit else: self.permitTojoin["Starttime"] = int(time()) self.permitTojoin["Duration"] = 0 - self.log.logging("BasicOutput", "Status", "Request Disabling Accepting new Hardware") + self.log.logging("BasicOutput", "Status", "Z4D closed the Zigbee network") PermitToJoin(self, "%02x" % permit) diff --git a/Modules/checkingUpdate.py b/Modules/checkingUpdate.py index 90f9f3eb0..5ca8e0e80 100644 --- a/Modules/checkingUpdate.py +++ b/Modules/checkingUpdate.py @@ -35,6 +35,7 @@ def check_plugin_version_against_dns(self, zigbee_communication, branch, zigate_ plugin_version = None plugin_version = _get_dns_txt_record(self, PLUGIN_TXT_RECORD) + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {plugin_version}") if plugin_version is None: # Something weird happened @@ -42,6 +43,7 @@ def check_plugin_version_against_dns(self, zigbee_communication, branch, zigate_ return (0, 0, 0) plugin_version_dict = _parse_dns_txt_record( plugin_version) + self.log.logging("Plugin", "Debug", f"check_plugin_version_against_dns {plugin_version} {plugin_version_dict}") # If native communication (zigate) let's find the zigate firmware firmware_version = None @@ -68,8 +70,8 @@ def _get_dns_txt_record(self, record, timeout=1): return None try: - answers = dns.resolver.resolve(record, "TXT", tcp=True, lifetime=timeout) - return [str(answer).strip('"') for answer in answers] + result = dns.resolver.resolve(record, "TXT", tcp=True, lifetime=1).response.answer[0] + return str(result[0]).strip('"') except dns.resolver.Timeout: error_message = f"DNS resolution timed out for {record} after {timeout} second" diff --git a/Modules/database.py b/Modules/database.py index bf594168c..7e6c71889 100644 --- a/Modules/database.py +++ b/Modules/database.py @@ -168,17 +168,9 @@ def LoadDeviceList(self): self.ListOfDevices = {} return True - self.log.logging("Database", "Status", "%s Entries loaded from %s" % (len(self.ListOfDevices), _DeviceListFileName)) + self.log.logging("Database", "Status", "Z4D loads %s entries from %s" % (len(self.ListOfDevices), _DeviceListFileName)) if ListOfDevices_from_Domoticz: - self.log.logging( - "Database", - "Log", - "Plugin Database loaded - BUT NOT USE - from Dz: %s from DeviceList: %s, checking deltas " - % ( - len(ListOfDevices_from_Domoticz), - len(self.ListOfDevices), - ), - ) + self.log.logging( "Database", "Log", "Plugin Database loaded - BUT NOT USE - from Dz: %s from DeviceList: %s, checking deltas " % ( len(ListOfDevices_from_Domoticz), len(self.ListOfDevices), ), ) self.log.logging("Database", "Debug", "LoadDeviceList - DeviceList filename : %s" % _DeviceListFileName) Modules.tools.helper_versionFile(_DeviceListFileName, self.pluginconf.pluginConf["numDeviceListVersion"]) @@ -430,10 +422,7 @@ def importDeviceConf(self): if iterDevType == "": del self.DeviceConf[iterDevType] - # for iterDevType in list(self.DeviceConf): - # Domoticz.Log("%s - %s" %(iterDevType, self.DeviceConf[iterDevType])) - - self.log.logging("Database", "Status", "DeviceConf loaded - %s confs loaded" %len(self.DeviceConf)) + self.log.logging("Database", "Status", "Z4D loaded %s configuration from legacy database." %len(self.DeviceConf)) def import_local_device_conf(self): @@ -487,10 +476,9 @@ def import_local_device_conf(self): except Exception: self.log.logging("Database", "Error","--> Unexpected error when loading a configuration file") - self.log.logging("Database", "Debug", "--> Config loaded: %s" % self.DeviceConf.keys()) self.log.logging("Database", "Debug", "Local-Device ModelManufMapping loaded - %s" %self.ModelManufMapping.keys()) - self.log.logging("Database", "Status", "Local-Device conf loaded - %s confs loaded" %len(self.DeviceConf)) + self.log.logging("Database", "Status", "Z4D loads %s configuration from the local certified Db." %len(self.DeviceConf)) def checkDevices2LOD(self, Devices): @@ -573,7 +561,7 @@ def CheckDeviceList(self, key, val): # List of Attribnutes that will be Loaded from the deviceList-xx.txt database if self.pluginconf.pluginConf["resetPluginDS"]: - self.log.logging("Database", "Status", "Reset Build Attributes for %s" % DeviceListVal["IEEE"]) + self.log.logging("Database", "Status", "Z4D resets Build Attributes for %s" % DeviceListVal["IEEE"]) IMPORT_ATTRIBUTES = list(set(MANDATORY_ATTRIBUTES)) elif key == "0000": @@ -605,7 +593,7 @@ def CheckDeviceList(self, key, val): OldModel = self.ListOfDevices[key][attribute] self.ListOfDevices[key][attribute] = self.ListOfDevices[key][attribute].replace("/", "") if OldModel != self.ListOfDevices[key][attribute]: - self.log.logging("Database", "Status", "Model adjustement during import from %s to %s" % ( + self.log.logging("Database", "Status", "Z4D adjusted Model from %s to %s" % ( OldModel, self.ListOfDevices[key][attribute])) self.ListOfDevices[key]["Health"] = "" @@ -920,7 +908,7 @@ def profalux_fix_remote_device_model(self): if self.ListOfDevices[x]["MacCapa"] != "80": continue if "Model" in self.ListOfDevices[x] and self.ListOfDevices[x]["Model"] != "Telecommande-Profalux": - self.log.logging( "Profalux", "Status", "++++++ Model Name for %s forced to : %s" % ( + self.log.logging( "Profalux", "Status", "Z4D forces Model Name from %s to %s" % ( x, self.ListOfDevices[x]["Model"],), x) self.ListOfDevices[x]["Model"] = "Telecommande-Profalux" @@ -959,7 +947,7 @@ def hack_ts0601_rename_model( self, nwkid, modelName, manufacturer_name): suggested_model = check_found_plugin_model( self, modelName, manufacturer_name=manufacturer_name, manufacturer_code=None, device_id=None ) if self.ListOfDevices[ nwkid ][ 'Model' ] != suggested_model: - self.log.logging("Tuya", "Status", "Adjusting Model name from %s to %s" %( modelName, suggested_model)) + self.log.logging("Tuya", "Status", "Z4D adjusts Model name from %s to %s" %( modelName, suggested_model)) self.ListOfDevices[ nwkid ][ 'Model' ] = suggested_model def cleanup_ota(self, nwkid): diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index a88d38a19..1059abcbf 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -135,7 +135,6 @@ def load_list_of_domoticz_widget(self, Devices): Args: Devices (dictionary): Devices dictionary provided by the Domoticz framework """ - self.log.logging("AbstractDz", "Log", "load_list_of_domoticz_widget") # clean self.ListOfDomoticzWidget.clear() diff --git a/Modules/readZclClusters.py b/Modules/readZclClusters.py index 2c46a349f..ac85a40f5 100644 --- a/Modules/readZclClusters.py +++ b/Modules/readZclClusters.py @@ -277,7 +277,7 @@ def load_zcl_cluster(self): if not isdir(zcl_cluster_path): return - self.log.logging("ZclClusters", "Status", "Loading ZCL Cluster definitions") + self.log.logging("ZclClusters", "Status", "Z4D loads ZCL Cluster definitions") zcl_cluster_definition = [f for f in listdir(zcl_cluster_path) if isfile(join(zcl_cluster_path, f))] for cluster_definition in sorted(zcl_cluster_definition): @@ -303,7 +303,7 @@ def load_zcl_cluster(self): self.readZclClusters[ cluster_definition[ "ClusterId"] ]["Debug"] = cluster_definition[ "Debug" ] - self.log.logging("ZclClusters", "Status", " - ZCL Cluster %s - (V%s) %s loaded" %( + self.log.logging("ZclClusters", "Debug", " - ZCL Cluster %s - (V%s) %s loaded" %( cluster_definition[ "ClusterId"], cluster_definition[ "Version" ], cluster_definition["Description"],)) diff --git a/plugin.py b/plugin.py index 7a25e9626..15165d4e5 100644 --- a/plugin.py +++ b/plugin.py @@ -304,12 +304,12 @@ def __init__(self): initialize_device_settings(self) def onStart(self): - Domoticz.Status( "Zigbee for Domoticz plugin starting") + Domoticz.Status( "Welcome to Zigbee for Domoticz (Z4D) plugin.") _current_python_version_major = sys.version_info.major _current_python_version_minor = sys.version_info.minor - Domoticz.Status( "Z4D plugin requires python3 3.8 or above and you are running %s.%s" %( + Domoticz.Status( "Z4D requires python3.8 or above and you are running %s.%s" %( _current_python_version_major, _current_python_version_minor)) assert sys.version_info >= (3, 8) # nosec @@ -385,20 +385,20 @@ def onStart(self): return # Import PluginConf.txt - Domoticz.Log("load PluginConf") + Domoticz.Log("Z4D loading PluginConf") self.pluginconf = PluginConf( self.zigbee_communication, self.VersionNewFashion, self.DomoticzMajor, self.DomoticzMinor, Parameters["HomeFolder"], self.HardwareID ) - if self.pluginconf.pluginConf["internetAccess"]: - if check_requirements( Parameters[ "HomeFolder"] ): - self.onStop() - return - if self.internet_available is None: is_internet_available() self.internet_available = bool(self.pluginconf.pluginConf["internetAccess"]) + if self.internet_available and check_requirements( Parameters[ "HomeFolder"] ): + # Check_requirements() return True if requirements not meet. + self.onStop() + return + # Create Domoticz Sub menu if "DomoticzCustomMenu" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["DomoticzCustomMenu"] : install_Z4D_to_domoticz_custom_ui( ) @@ -408,7 +408,6 @@ def onStart(self): self.PluginHealth["Txt"] = "Startup" if self.log is None: - Domoticz.Log("Starting LoggingManagement thread") self.log = LoggingManagement( self.pluginconf, self.PluginHealth, @@ -422,8 +421,9 @@ def onStart(self): self.log.openLogFile() # We can use from now the self.log.logging() - self.log.logging( "Plugin", "Status", "Zigbee for Domoticz (z4d) plugin %s-%s started" % ( + self.log.logging( "Plugin", "Status", "Z4D starting with %s-%s" % ( self.pluginParameters["PluginBranch"], self.pluginParameters["PluginVersion"]), ) + if ( _current_python_version_major , _current_python_version_minor) <= ( 3, 7): self.log.logging( "Plugin", "Error", "** Please do consider upgrading to a more recent python3 version %s.%s is not supported anymore **" %( _current_python_version_major , _current_python_version_minor)) @@ -464,7 +464,7 @@ def onStart(self): and ( self.pluginconf.pluginConf["forceZigpy_noasyncio"] or self.domoticzdb_Hardware.multiinstances_z4d_plugin_instance()) ): # https://github.com/python/cpython/issues/91375 - self.log.logging("Plugin", "Status", "Multi instances plugin detected. Enable zigpy workaround") + self.log.logging("Plugin", "Status", "Z4D Multi-instances detected. Enable workaround") sys.modules["_asyncio"] = None if "LogLevel" not in self.pluginParameters: @@ -484,16 +484,15 @@ def onStart(self): self.DomoticzMinor, ) self.WebUsername, self.WebPassword = self.domoticzdb_Preferences.retreiveWebUserNamePassword() - # Domoticz.Status("Domoticz Website credentials %s/%s" %(self.WebUsername, self.WebPassword)) self.adminWidgets = AdminWidgets( self.log , self.pluginconf, self.pluginParameters, self.ListOfDomoticzWidget, Devices, self.ListOfDevices, self.HardwareID) - self.adminWidgets.updateStatusWidget(Devices, "Startup") + self.adminWidgets.updateStatusWidget(Devices, "Starting up") self.DeviceListName = "DeviceList-" + str(Parameters["HardwareID"]) + ".txt" - self.log.logging("Plugin", "Log", "Plugin Database: %s" % self.DeviceListName) + self.log.logging("Plugin", "Log", "Z4D Database found: %s" % self.DeviceListName) z4d_certified_devices_pathname = os.path.dirname( z4d_certified_devices.__file__ ) + "/" - self.log.logging("Plugin", "Log", "Pathname to z4d_certified_devices %s" %z4d_certified_devices_pathname) + self.log.logging("Plugin", "Log", "Z4D Certified devices database %s" %z4d_certified_devices_pathname) # Import Zcl Cluster definitions load_zcl_cluster(self) @@ -512,7 +511,7 @@ def onStart(self): load_list_of_domoticz_widget(self, Devices) # Import DeviceList.txt Filename is : DeviceListName - self.log.logging("Plugin", "Status", "load ListOfDevice") + self.log.logging("Plugin", "Status", "Z4D loading database") if LoadDeviceList(self) == "Failed": self.log.logging("Plugin", "Error", "Something wennt wrong during the import of Load of Devices ...") @@ -550,7 +549,7 @@ def onStart(self): self.statistics = TransportStatistics(self.pluginconf, self.log) # Connect to Coordinator only when all initialisation are properly done. - self.log.logging("Plugin", "Status", "Transport mode: %s" % self.transport) + self.log.logging("Plugin", "Status", "Z4D configured to use transport mode: %s" % self.transport) if len(self.ListOfDevices) > 10: # Don't do Energy Scan if too many objects, as Energy scan don't make the difference between real traffic and noise @@ -581,9 +580,9 @@ def onStart(self): framework_status = "legacy Framework" free_slots = how_many_legacy_slot_available(Devices) usage_percentage = round(((255 - free_slots) / 255) * 100, 1) - self.log.logging("Plugin", "Status", f"Domoticz Widgets usage is at {usage_percentage}% ({free_slots} units free)") + self.log.logging("Plugin", "Status", f"Z4D Widgets usage is at {usage_percentage}% ({free_slots} units free)") - self.log.logging("Plugin", "Status", f"Plugin started with {framework_status}") + self.log.logging("Plugin", "Status", f"Z4D started with {framework_status}") self.busy = False @@ -709,7 +708,7 @@ def onConnect(self, Connection, Status, Description): self.adminWidgets.updateStatusWidget(Devices, "Starting the plugin up") elif self.connectionState == 0: - self.log.logging("Plugin", "Status", "Reconnected after failure") + self.log.logging("Plugin", "Status", "Z4D reconnected after failure") self.PluginHealth["Flag"] = 2 self.PluginHealth["Txt"] = "Reconnecting after failure" @@ -769,12 +768,6 @@ def zigpy_get_device(self, ieee=None, nwkid=None): self.log.logging("TransportZigpy", "Debug", "zigpy_get_device( %s(%s), %s(%s)) NOT FOUND" %( sieee, type(sieee), snwkid, type(snwkid) )) return None - # model = manuf = None - #if nwkid in self.ListOfDevices and "Model" in self.ListOfDevices[ nwkid ] and self.ListOfDevices[ nwkid ]["Model"] not in ( "", {} ): - # model = self.ListOfDevices[ nwkid ]["Model"] - #if nwkid in self.ListOfDevices and "Manufacturer" in self.ListOfDevices[ nwkid ] and self.ListOfDevices[ nwkid ]["Manufacturer"] not in ( "", {} ): - # manuf = self.ListOfDevices[ nwkid ]["Manufacturer"] - self.log.logging("TransportZigpy", "Debug", "zigpy_get_device( %s, %s returns %04x %016x" %( sieee, snwkid, int(nwkid,16), int(ieee,16) )) return int(nwkid,16) ,int(ieee,16) @@ -1069,7 +1062,7 @@ def _start_zigpy_ZNP(self): check_python_modules_version( self ) self.zigbee_communication = "zigpy" self.pluginParameters["Zigpy"] = True - self.log.logging("Plugin", "Status", "Start Zigpy Transport on ZNP") + self.log.logging("Plugin", "Status", "Z4D starting ZNP") self.ControllerLink= ZigpyTransport( self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.restart_plugin, self.log, self.statistics, self.HardwareID, "znp", Parameters["SerialPort"] @@ -1090,7 +1083,7 @@ def _start_zigpy_deConz(self): #self.pythonModuleVersion["zigpy_deconz"] = (zigpy_deconz.__version__) check_python_modules_version( self ) self.pluginParameters["Zigpy"] = True - self.log.logging("Plugin", "Status","Start Zigpy Transport on deCONZ") + self.log.logging("Plugin", "Status","Z4D starting deConz") self.ControllerLink= ZigpyTransport( self.ControllerData, self.pluginParameters, self.pluginconf,self.processFrame, self.zigpy_chk_upd_device, self.zigpy_get_device, self.zigpy_backup_available, self.restart_plugin, self.log, self.statistics, self.HardwareID, "deCONZ", Parameters["SerialPort"] ) @@ -1111,7 +1104,7 @@ def _start_zigpy_EZSP(self): check_python_modules_version( self ) self.zigbee_communication = "zigpy" self.pluginParameters["Zigpy"] = True - self.log.logging("Plugin", "Status","Start Zigpy Transport on EZSP") + self.log.logging("Plugin", "Status","Z4D starting EZSP") if Parameters["Mode2"] == "Socket": SerialPort = "socket://" + Parameters["IP"] + ':' + Parameters["Port"] @@ -1136,7 +1129,7 @@ def zigateInit_Phase1(self): # Check if we have to Erase PDM. if self.zigbee_communication == "native" and Parameters["Mode3"] == "True" and not self.ErasePDMDone and not self.ErasePDMinProgress: # Erase PDM zigate_erase_eeprom(self) - self.log.logging("Plugin", "Status", "Erase coordinator PDM") + self.log.logging("Plugin", "Status", "Z4D has erase the Zigate PDM") #sendZigateCmd(self, "0012", "") self.PDMready = False self.startZigateNeeded = 1 @@ -1144,7 +1137,7 @@ def zigateInit_Phase1(self): update_DB_device_status_to_reinit( self ) return elif self.zigbee_communication == "zigpy" and Parameters["Mode3"] == "True" and not self.ErasePDMDone and not self.ErasePDMinProgress: - self.log.logging("Plugin", "Status", "Form a new network requested") + self.log.logging("Plugin", "Status", "Z4D requests to form a new network") self.ErasePDMinProgress = True update_DB_device_status_to_reinit( self ) return @@ -1232,19 +1225,15 @@ def zigateInit_Phase3(self): # Set Certification Code if self.pluginconf.pluginConf["CertificationCode"] in CERTIFICATION: - self.log.logging( - "Plugin", - "Status", - "coordinator set to Certification : %s/%s -> %s" % ( - self.pluginconf.pluginConf["CertificationCode"], - self.pluginconf.pluginConf["Certification"], - CERTIFICATION[self.pluginconf.pluginConf["CertificationCode"]],)) + self.log.logging( "Plugin", "Status", "Z4D coordinator set to Certification : %s/%s -> %s" % ( + self.pluginconf.pluginConf["CertificationCode"], self.pluginconf.pluginConf["Certification"], CERTIFICATION[self.pluginconf.pluginConf["CertificationCode"]],)) #sendZigateCmd(self, "0019", "%02x" % self.pluginconf.pluginConf["CertificationCode"]) zigate_set_certificate(self, "%02x" % self.pluginconf.pluginConf["CertificationCode"] ) # Create Configure Reporting object if self.configureReporting is None: + self.log.logging("Plugin", "Status", "Z4D starts Configure Reporting handling") self.configureReporting = ConfigureReporting( self.zigbee_communication, self.pluginconf, @@ -1264,7 +1253,7 @@ def zigateInit_Phase3(self): # Enable Group Management if self.groupmgt is None and self.pluginconf.pluginConf["enablegroupmanagement"]: - self.log.logging("Plugin", "Status", "Start Group Management") + self.log.logging("Plugin", "Status", "Z4D starts Group Management") start_GrpManagement(self, Parameters["HomeFolder"]) # Create Network Energy object and trigger one scan @@ -1293,12 +1282,9 @@ def zigateInit_Phase3(self): if self.networkmap: self.webserver.update_networkmap(self.networkmap) - # In case we have Transport = None , let's check if we have to active Group management or not. (For Test and Web UI Dev purposes - if self.transport == "None" and self.groupmgt is None and self.pluginconf.pluginConf["enablegroupmanagement"]: - start_GrpManagement(self, Parameters["HomeFolder"]) - # Enable Over The Air Upgrade if applicable if self.OTA is None and self.pluginconf.pluginConf["allowOTA"]: + self.log.logging("Plugin", "Status", "Z4D starts Over-The-Air Management") start_OTAManagement(self, Parameters["HomeFolder"]) networksize_update(self) @@ -1307,23 +1293,21 @@ def zigateInit_Phase3(self): # Request to resend the IRCode with the next command of Casaia/Owon ACxxxx restart_plugin_reset_ModuleIRCode(self, nwkid=None) - if self.FirmwareMajorVersion == "03": - self.log.logging( - "Plugin", "Status", "Plugin with Zigate, firmware %s correctly initialized" % self.FirmwareVersion - ) - elif self.FirmwareMajorVersion == "04": - self.log.logging( - "Plugin", "Status", "Plugin with Zigate (OptiPDM), firmware %s correctly initialized" % self.FirmwareVersion - ) - elif self.FirmwareMajorVersion == "05": - self.log.logging( - "Plugin", "Status", "Plugin with Zigate+, firmware %s correctly initialized" % self.FirmwareVersion - ) + firmware_messages = { + "03": "Z4D with Zigate, firmware %s correctly initialized", + "04": "Z4D with Zigate (OptiPDM), firmware %s correctly initialized", + "05": "Z4D with Zigate+, firmware %s correctly initialized" + } + # Check if firmware major version exists in the dictionary + if self.FirmwareMajorVersion in firmware_messages: + message = firmware_messages[self.FirmwareMajorVersion] % self.FirmwareVersion + self.log.logging("Plugin", "Status", message) elif int(self.FirmwareBranch) >= 20: - self.log.logging( - "Plugin", "Status", "Plugin with Zigpy, Coordinator %s firmware %s correctly initialized" % ( - self.pluginParameters["CoordinatorModel"], self.pluginParameters["CoordinatorFirmwareVersion"])) + message = "Z4D with Zigpy, Coordinator %s firmware %s correctly initialized" % ( + self.pluginParameters["CoordinatorModel"], self.pluginParameters["CoordinatorFirmwareVersion"]) + self.log.logging("Plugin", "Status", message) + # If firmware above 3.0d, Get Network State if (self.HeartbeatCount % (3600 // HEARTBEAT)) == 0 and self.transport != "None": @@ -1395,7 +1379,7 @@ def start_OTAManagement(self, homefolder): def start_web_server(self, webserver_port, webserver_homefolder): - self.log.logging("Plugin", "Status", "Start Web Server connection") + self.log.logging("Plugin", "Status", "Z4D starts WebUI") self.webserver = WebServer( self.zigbee_communication, self.ControllerData, @@ -1497,7 +1481,7 @@ def pingZigate(self): if self.Ping["Status"] == "Receive": if self.connectionState == 0: # self.adminWidgets.updateStatusWidget( self, Devices, 'Ping: Reconnected after failure') - self.log.logging("Plugin", "Status", "pingZigate - SUCCESS - Reconnected after failure") + self.log.logging("Plugin", "Status", "Z4D - reconnected after failure") self.log.logging( "Plugin", "Debug", @@ -1726,7 +1710,7 @@ def _check_plugin_version( self ): self.pluginParameters["PluginUpdate"] = False if is_plugin_update_available(self, self.pluginParameters["PluginVersion"], self.pluginParameters["available"]): - self.log.logging("Plugin", "Status", "*** A recent plugin version (%s) is waiting for you on gitHub. You are on (%s) ***" %( + self.log.logging("Plugin", "Status", "Z4D found a recent plugin version (%s) on gitHub. You are on (%s) ***" %( self.pluginParameters["available"], self.pluginParameters["PluginVersion"] )) self.pluginParameters["PluginUpdate"] = True if is_zigate_firmware_available( @@ -1736,7 +1720,7 @@ def _check_plugin_version( self ): self.pluginParameters["available-firmMajor"], self.pluginParameters["available-firmMinor"], ): - self.log.logging("Plugin", "Status", "There is a newer Zigate Firmware version available") + self.log.logging("Plugin", "Status", "Z4D found a newer Zigate Firmware version") self.pluginParameters["FirmwareUpdate"] = True def _coordinator_ready( self ): @@ -1784,7 +1768,7 @@ def _post_readiness_startup_completed( self ): # In case case, we have to set the extendedPANID # ErasePDM has been requested, we are in the next Loop. if self.ErasePDMDone and self.pluginconf.pluginConf["extendedPANID"] is not None: - self.log.logging( "Plugin", "Status", "ZigateConf - Setting extPANID : 0x%016x" % (self.pluginconf.pluginConf["extendedPANID"]), ) + self.log.logging( "Plugin", "Status", "Z4D - Setting extPANID : 0x%016x" % (self.pluginconf.pluginConf["extendedPANID"]), ) setExtendedPANID(self, self.pluginconf.pluginConf["extendedPANID"]) start_Zigate(self) From f1935c62c387064a2688465c984c9486eb67f3a1 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 29 Apr 2024 22:53:17 +0200 Subject: [PATCH 265/301] update header and License section --- Classes/OTA.py | 12 ++++++++++-- Modules/adeo.py | 12 +++++++++++- Modules/basicInputs.py | 11 +++++++++-- Modules/basicOutputs.py | 11 +++++++++-- Modules/batterieManagement.py | 11 +++++++++-- Modules/bindings.py | 10 ++++++++-- Modules/blitzwolf.py | 10 ++++++++-- Modules/callback.py | 11 ++++++++--- Modules/casaia.py | 11 ++++++++--- Modules/cmdsDoorLock.py | 11 +++++++++-- Modules/danfoss.py | 10 ++++++++-- Modules/deviceAnnoucement.py | 11 +++++++++-- Modules/domoCreate.py | 11 +++++++++-- Modules/domoMaj.py | 12 ++++++++++-- Modules/domoTools.py | 12 ++++++++++-- Modules/errorCodes.py | 10 ++++++++-- Modules/fanControl.py | 11 ++++++++--- Modules/gledopto.py | 10 ++++++++-- Modules/heartbeat.py | 11 +++++++++-- Modules/heiman.py | 11 +++++++++++ Modules/ikeaTradfri.py | 11 +++++++++-- Modules/inRawAps.py | 11 +++++++++-- Modules/input.py | 11 +++++++++-- Modules/legrand_netatmo.py | 11 +++++++++-- Modules/livolo.py | 11 +++++++++-- Modules/lumi.py | 11 +++++++++-- Modules/macPrefix.py | 11 +++++++++++ Modules/manufacturer_code.py | 11 +++++++++-- Modules/orvibo.py | 11 +++++++++-- Modules/osram_ledvance.py | 12 +++++++++--- Modules/piZigate.py | 11 +++++++++-- Modules/pluginDbAttributes.py | 11 +++++++++-- Modules/pluginModels.py | 11 +++++++++++ Modules/pluzzy.py | 11 +++++++++-- Modules/pollControl.py | 11 +++++++++-- Modules/profalux.py | 11 +++++++++-- Modules/restartPlugin.py | 11 +++++++++-- Modules/schneider_wiser.py | 11 +++++++++-- Modules/sendZigateCommand.py | 11 +++++++++-- Modules/status.py | 11 +++++++++-- Modules/switchSelectorWidgets.py | 12 +++++++++--- Modules/thermostats.py | 11 +++++++++-- Modules/timeServer.py | 11 +++++++++-- Modules/touchLink.py | 11 +++++++++-- Modules/tuyaConst.py | 11 +++++++++++ Modules/tuyaSiren.py | 11 +++++++++-- Modules/tuyaTS0601.py | 11 +++++++++-- Modules/tuyaTools.py | 11 +++++++++-- Modules/txPower.py | 11 +++++++++-- Modules/writeAttributes.py | 10 ++++++++-- Modules/zb_tables_management.py | 12 ++++++++++++ Modules/zclClusterHelpers.py | 12 ++++++++++++ Modules/zigateCommands.py | 11 +++++++++-- Modules/zigateConsts.py | 11 +++++++++-- Modules/zigbeeController.py | 11 +++++++++-- Modules/zigbeeVersionTable.py | 12 ++++++++++++ Modules/zigpyBackup.py | 11 +++++++++++ 57 files changed, 528 insertions(+), 102 deletions(-) diff --git a/Classes/OTA.py b/Classes/OTA.py index b2038d399..df15ad250 100644 --- a/Classes/OTA.py +++ b/Classes/OTA.py @@ -1,7 +1,15 @@ -#!/usr/bin/env python3 # coding: utf-8 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + # """ # References: diff --git a/Modules/adeo.py b/Modules/adeo.py index 4ab500402..f5e39a19d 100644 --- a/Modules/adeo.py +++ b/Modules/adeo.py @@ -1,4 +1,14 @@ - +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.sendZigateCommand import raw_APS_request from Modules.tools import get_and_inc_ZCL_SQN diff --git a/Modules/basicInputs.py b/Modules/basicInputs.py index a292729ff..abb53bd21 100644 --- a/Modules/basicInputs.py +++ b/Modules/basicInputs.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + import struct diff --git a/Modules/basicOutputs.py b/Modules/basicOutputs.py index 868b8444e..55a799cb1 100644 --- a/Modules/basicOutputs.py +++ b/Modules/basicOutputs.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: basicOutputs diff --git a/Modules/batterieManagement.py b/Modules/batterieManagement.py index c88f122f0..30c9c77b3 100644 --- a/Modules/batterieManagement.py +++ b/Modules/batterieManagement.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: batteryManagement.py diff --git a/Modules/bindings.py b/Modules/bindings.py index 8798098b4..e0296c00b 100644 --- a/Modules/bindings.py +++ b/Modules/bindings.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from time import time diff --git a/Modules/blitzwolf.py b/Modules/blitzwolf.py index 5ea032ee8..fe8d26801 100644 --- a/Modules/blitzwolf.py +++ b/Modules/blitzwolf.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.readAttributes import ReadAttributeRequest_0b04_050b_0505_0508 from Modules.zigateConsts import MAX_LOAD_ZIGATE diff --git a/Modules/callback.py b/Modules/callback.py index 2ad6d2daf..a5e55583f 100644 --- a/Modules/callback.py +++ b/Modules/callback.py @@ -1,9 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # - +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.bindings import callBackForWebBindIfNeeded from Modules.legrand_netatmo import callbackDeviceAwake_Legrand diff --git a/Modules/casaia.py b/Modules/casaia.py index 11e52222a..4148b095a 100644 --- a/Modules/casaia.py +++ b/Modules/casaia.py @@ -1,9 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 -# French translation: @martial83 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import json import os diff --git a/Modules/cmdsDoorLock.py b/Modules/cmdsDoorLock.py index d86937c6b..3f1a45292 100644 --- a/Modules/cmdsDoorLock.py +++ b/Modules/cmdsDoorLock.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: cmdsDoorLock.py diff --git a/Modules/danfoss.py b/Modules/danfoss.py index cc3481ddf..86ca9d99f 100644 --- a/Modules/danfoss.py +++ b/Modules/danfoss.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.basicOutputs import (raw_APS_request, read_attribute, write_attribute) diff --git a/Modules/deviceAnnoucement.py b/Modules/deviceAnnoucement.py index 1249ed50a..78c4279b1 100755 --- a/Modules/deviceAnnoucement.py +++ b/Modules/deviceAnnoucement.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: deviceAnnoucement.py diff --git a/Modules/domoCreate.py b/Modules/domoCreate.py index 356af25fc..9482011eb 100644 --- a/Modules/domoCreate.py +++ b/Modules/domoCreate.py @@ -1,7 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license # """ Module: domoCreat.py diff --git a/Modules/domoMaj.py b/Modules/domoMaj.py index 54bc8a696..153abed30 100644 --- a/Modules/domoMaj.py +++ b/Modules/domoMaj.py @@ -1,8 +1,16 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license +# + """ Module: domoMaj.py Description: Update of Domoticz Widget diff --git a/Modules/domoTools.py b/Modules/domoTools.py index 9595f9d0f..d2449767d 100644 --- a/Modules/domoTools.py +++ b/Modules/domoTools.py @@ -1,8 +1,16 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license +# + """ Module: domoTools.py Description: Tools to manage Domoticz widget inetractions diff --git a/Modules/errorCodes.py b/Modules/errorCodes.py index 40d8f9ab5..94015a1dd 100644 --- a/Modules/errorCodes.py +++ b/Modules/errorCodes.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license """ Module: errorCodes.py diff --git a/Modules/fanControl.py b/Modules/fanControl.py index 38ce4e7d9..289e88924 100644 --- a/Modules/fanControl.py +++ b/Modules/fanControl.py @@ -1,9 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # - +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.basicOutputs import write_attribute from Modules.casaia import casaia_check_irPairing diff --git a/Modules/gledopto.py b/Modules/gledopto.py index a9d8b9ce2..689a4fb8a 100644 --- a/Modules/gledopto.py +++ b/Modules/gledopto.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.readAttributes import (ReadAttributeRequest_0006_0000, ReadAttributeRequest_0008_0000) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 9000c3124..b897cd9f5 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: heartbeat.py diff --git a/Modules/heiman.py b/Modules/heiman.py index ef3541699..c2fc9ed68 100644 --- a/Modules/heiman.py +++ b/Modules/heiman.py @@ -1,3 +1,14 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license diff --git a/Modules/ikeaTradfri.py b/Modules/ikeaTradfri.py index 9d461a73b..32ac631c3 100644 --- a/Modules/ikeaTradfri.py +++ b/Modules/ikeaTradfri.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: ikeaTradfri.py diff --git a/Modules/inRawAps.py b/Modules/inRawAps.py index 9cfa7833e..dd57ea87f 100644 --- a/Modules/inRawAps.py +++ b/Modules/inRawAps.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + import struct from Modules.casaia import CASAIA_MANUF_CODE, casaiaReadRawAPS diff --git a/Modules/input.py b/Modules/input.py index 8193782d6..ec2ef899a 100644 --- a/Modules/input.py +++ b/Modules/input.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: z_input.py diff --git a/Modules/legrand_netatmo.py b/Modules/legrand_netatmo.py index 74f99d5df..a87416fce 100755 --- a/Modules/legrand_netatmo.py +++ b/Modules/legrand_netatmo.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: z_output.py diff --git a/Modules/livolo.py b/Modules/livolo.py index 42f5043c5..c262e7774 100644 --- a/Modules/livolo.py +++ b/Modules/livolo.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: z_output.py diff --git a/Modules/lumi.py b/Modules/lumi.py index 9d814cfe9..8081583cd 100644 --- a/Modules/lumi.py +++ b/Modules/lumi.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: lumi.py diff --git a/Modules/macPrefix.py b/Modules/macPrefix.py index 1562d6bd5..ade2df16a 100644 --- a/Modules/macPrefix.py +++ b/Modules/macPrefix.py @@ -1,3 +1,14 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license diff --git a/Modules/manufacturer_code.py b/Modules/manufacturer_code.py index 05e26ab6a..54400f808 100644 --- a/Modules/manufacturer_code.py +++ b/Modules/manufacturer_code.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: manufacturer_code.py diff --git a/Modules/orvibo.py b/Modules/orvibo.py index ed0fa6ddf..ea8f03098 100644 --- a/Modules/orvibo.py +++ b/Modules/orvibo.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + from Modules.basicOutputs import write_attribute from Modules.domoMaj import MajDomoDevice diff --git a/Modules/osram_ledvance.py b/Modules/osram_ledvance.py index 18e161246..5dfe1089c 100644 --- a/Modules/osram_ledvance.py +++ b/Modules/osram_ledvance.py @@ -1,9 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 -# French translation: @martial83 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: osram_ledvance.py diff --git a/Modules/piZigate.py b/Modules/piZigate.py index 585a834b2..9c2331c9b 100644 --- a/Modules/piZigate.py +++ b/Modules/piZigate.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: piZigate.py diff --git a/Modules/pluginDbAttributes.py b/Modules/pluginDbAttributes.py index e69d290a4..111458ec3 100644 --- a/Modules/pluginDbAttributes.py +++ b/Modules/pluginDbAttributes.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zpipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + # Configure Reporting Attributes STORE_READ_CONFIGURE_REPORTING = "ReadConfigureReporting" # Store result of read Configuration Reporting diff --git a/Modules/pluginModels.py b/Modules/pluginModels.py index d20c92f6e..d84372004 100644 --- a/Modules/pluginModels.py +++ b/Modules/pluginModels.py @@ -1,3 +1,14 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license from Modules.tuyaConst import (TS0002_RELAY_SWITCH_MANUF, TS0003_RELAY_SWITCH_MANUF, diff --git a/Modules/pluzzy.py b/Modules/pluzzy.py index 20124b836..3eedb9949 100644 --- a/Modules/pluzzy.py +++ b/Modules/pluzzy.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: pluzzy.py diff --git a/Modules/pollControl.py b/Modules/pollControl.py index 478242ea3..51813e813 100644 --- a/Modules/pollControl.py +++ b/Modules/pollControl.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: pollControl.py diff --git a/Modules/profalux.py b/Modules/profalux.py index 0f0b945ce..00144a8c3 100644 --- a/Modules/profalux.py +++ b/Modules/profalux.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: profalux.py diff --git a/Modules/restartPlugin.py b/Modules/restartPlugin.py index 44c4ff7f3..6ef14bdfe 100644 --- a/Modules/restartPlugin.py +++ b/Modules/restartPlugin.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + import os import urllib.parse diff --git a/Modules/schneider_wiser.py b/Modules/schneider_wiser.py index 560d07f7f..a9991ac2e 100755 --- a/Modules/schneider_wiser.py +++ b/Modules/schneider_wiser.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 & badz +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: schneider_wiser.py diff --git a/Modules/sendZigateCommand.py b/Modules/sendZigateCommand.py index 4228659ed..a42f649e5 100644 --- a/Modules/sendZigateCommand.py +++ b/Modules/sendZigateCommand.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: very low level to send command to ZiGate diff --git a/Modules/status.py b/Modules/status.py index f09983b7c..7bbe06258 100644 --- a/Modules/status.py +++ b/Modules/status.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: status.py diff --git a/Modules/switchSelectorWidgets.py b/Modules/switchSelectorWidgets.py index 819fdc639..2259d283b 100644 --- a/Modules/switchSelectorWidgets.py +++ b/Modules/switchSelectorWidgets.py @@ -1,9 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 -# French translation: @martial83 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: widget.py diff --git a/Modules/thermostats.py b/Modules/thermostats.py index 43176fcc1..b31752eb3 100644 --- a/Modules/thermostats.py +++ b/Modules/thermostats.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + from Modules.basicOutputs import write_attribute from Modules.casaia import casaia_check_irPairing, casaia_setpoint diff --git a/Modules/timeServer.py b/Modules/timeServer.py index c37301859..4dc9b59a6 100644 --- a/Modules/timeServer.py +++ b/Modules/timeServer.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + from datetime import datetime diff --git a/Modules/touchLink.py b/Modules/touchLink.py index 01a04c601..bc60a5f54 100644 --- a/Modules/touchLink.py +++ b/Modules/touchLink.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module : touchLink.py diff --git a/Modules/tuyaConst.py b/Modules/tuyaConst.py index fa01290ea..2d67dcd93 100644 --- a/Modules/tuyaConst.py +++ b/Modules/tuyaConst.py @@ -1,3 +1,14 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license # Cluster 0xef00 # Commands diff --git a/Modules/tuyaSiren.py b/Modules/tuyaSiren.py index 3d945f315..07ef399dc 100644 --- a/Modules/tuyaSiren.py +++ b/Modules/tuyaSiren.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: tuya.py diff --git a/Modules/tuyaTS0601.py b/Modules/tuyaTS0601.py index b5c5d22aa..8d4b562cd 100644 --- a/Modules/tuyaTS0601.py +++ b/Modules/tuyaTS0601.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: tuyaTS0601.py diff --git a/Modules/tuyaTools.py b/Modules/tuyaTools.py index 054d10439..a7eaf48a2 100644 --- a/Modules/tuyaTools.py +++ b/Modules/tuyaTools.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: tuya.py diff --git a/Modules/txPower.py b/Modules/txPower.py index 3ea46ed24..7aab12f84 100644 --- a/Modules/txPower.py +++ b/Modules/txPower.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: txPower.py diff --git a/Modules/writeAttributes.py b/Modules/writeAttributes.py index b93ac7e20..e98aff15e 100644 --- a/Modules/writeAttributes.py +++ b/Modules/writeAttributes.py @@ -1,9 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 # +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: writeAttributes.py diff --git a/Modules/zb_tables_management.py b/Modules/zb_tables_management.py index 43b40c974..df14568b7 100644 --- a/Modules/zb_tables_management.py +++ b/Modules/zb_tables_management.py @@ -3,6 +3,18 @@ # # Author: pipiche38 # +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: mgmt_rtpg.py diff --git a/Modules/zclClusterHelpers.py b/Modules/zclClusterHelpers.py index 094896a1b..4115d1a56 100644 --- a/Modules/zclClusterHelpers.py +++ b/Modules/zclClusterHelpers.py @@ -1,3 +1,15 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + import binascii import struct diff --git a/Modules/zigateCommands.py b/Modules/zigateCommands.py index 8cbf3db89..8a5c3faf4 100644 --- a/Modules/zigateCommands.py +++ b/Modules/zigateCommands.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: low level commands manuf. specific ZiGate diff --git a/Modules/zigateConsts.py b/Modules/zigateConsts.py index 2572f3ee2..198a7bdb4 100644 --- a/Modules/zigateConsts.py +++ b/Modules/zigateConsts.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + """ Module: zigateConst.py diff --git a/Modules/zigbeeController.py b/Modules/zigbeeController.py index 1bdb7e08d..5b1ba5ca9 100644 --- a/Modules/zigbeeController.py +++ b/Modules/zigbeeController.py @@ -1,8 +1,15 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + from Zigbee.zdpCommands import (zdp_active_endpoint_request, zdp_simple_descriptor_request) diff --git a/Modules/zigbeeVersionTable.py b/Modules/zigbeeVersionTable.py index adc3b3d71..07e07df38 100644 --- a/Modules/zigbeeVersionTable.py +++ b/Modules/zigbeeVersionTable.py @@ -1,3 +1,15 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + FIRMWARE_BRANCH = { "00": "Production", "01": "Beta", diff --git a/Modules/zigpyBackup.py b/Modules/zigpyBackup.py index d1e9a8331..b3e8a11cf 100644 --- a/Modules/zigpyBackup.py +++ b/Modules/zigpyBackup.py @@ -1,3 +1,14 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import json import os.path From 96c8a465b4c61b4c6370ffa27c43fc61010f5bbf Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 29 Apr 2024 22:53:48 +0200 Subject: [PATCH 266/301] Plugin wip-develop version 7.2.085 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 63e9346e7..4a9e947a9 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.084"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.085"} \ No newline at end of file From 49e214a5e4b71a39858f858ae9ebb01873d5b2f4 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Tue, 30 Apr 2024 14:57:39 +0200 Subject: [PATCH 267/301] update Coordinator communication confirmed --- plugin.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugin.py b/plugin.py index 15165d4e5..b4efb657d 100644 --- a/plugin.py +++ b/plugin.py @@ -1294,9 +1294,9 @@ def zigateInit_Phase3(self): restart_plugin_reset_ModuleIRCode(self, nwkid=None) firmware_messages = { - "03": "Z4D with Zigate, firmware %s correctly initialized", - "04": "Z4D with Zigate (OptiPDM), firmware %s correctly initialized", - "05": "Z4D with Zigate+, firmware %s correctly initialized" + "03": "Z4D with Zigate coordinator, firmware %s communication confirmed.", + "04": "Z4D with Zigate coordinator, OptiPDM firmware %s communication confirmed.", + "05": "Z4D with Zigate+ coordinator, firmware %s communication confirmed." } # Check if firmware major version exists in the dictionary @@ -1304,11 +1304,10 @@ def zigateInit_Phase3(self): message = firmware_messages[self.FirmwareMajorVersion] % self.FirmwareVersion self.log.logging("Plugin", "Status", message) elif int(self.FirmwareBranch) >= 20: - message = "Z4D with Zigpy, Coordinator %s firmware %s correctly initialized" % ( + message = "Z4D with Zigpy, coordinator %s, firmware %s communication confirmed." % ( self.pluginParameters["CoordinatorModel"], self.pluginParameters["CoordinatorFirmwareVersion"]) self.log.logging("Plugin", "Status", message) - # If firmware above 3.0d, Get Network State if (self.HeartbeatCount % (3600 // HEARTBEAT)) == 0 and self.transport != "None": zigate_get_nwk_state(self) From 2fee4dc13c69f6bd187b981bcc90c2b45b97bddc Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 30 Apr 2024 21:13:48 +0200 Subject: [PATCH 268/301] cleanup --- plugin.py | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/plugin.py b/plugin.py index b4efb657d..d408ed02c 100644 --- a/plugin.py +++ b/plugin.py @@ -391,13 +391,13 @@ def onStart(self): ) if self.internet_available is None: - is_internet_available() - self.internet_available = bool(self.pluginconf.pluginConf["internetAccess"]) + self.internet_available = is_internet_available() - if self.internet_available and check_requirements( Parameters[ "HomeFolder"] ): - # Check_requirements() return True if requirements not meet. - self.onStop() - return + if self.internet_available: + if check_requirements( Parameters[ "HomeFolder"] ): + # Check_requirements() return True if requirements not meet. + self.onStop() + return # Create Domoticz Sub menu if "DomoticzCustomMenu" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["DomoticzCustomMenu"] : @@ -644,6 +644,7 @@ def onStop(self): if self.adminWidgets: self.adminWidgets.updateStatusWidget(Devices, "No Communication") + def onDeviceRemoved(self, Unit): # def onDeviceRemoved(self, DeviceID, Unit): if not self.ControllerIEEE: @@ -811,6 +812,7 @@ def onCommand(self, Unit, Command, Level, Color): else: self.log.logging( "Command", "Error", "onCommand - Unknown device or GrpMgr not enabled %s, unit %s , id %s" % (domo_read_Name( self, Devices, DeviceID, Unit, ), Unit, DeviceID), ) + def onDisconnect(self, Connection): self.log.logging("Plugin", "Debug", "onDisconnect: %s" % Connection) @@ -830,6 +832,7 @@ def onDisconnect(self, Connection): self.adminWidgets.updateStatusWidget(Devices, "Plugin stop") self.log.logging("Plugin", "Status", "onDisconnect called") + def onHeartbeat(self): if not self.VersionNewFashion or self.pluginconf is None: @@ -879,8 +882,6 @@ def onHeartbeat(self): # Memorize the size of Devices. This is will allow to trigger a backup of live data to file, if the size change. prevLenDevices = len(Devices) - do_python_garbage_collection( self ) - # Manage all entries in ListOfDevices (existing and up-coming devices) processListOfDevices(self, Devices) @@ -1226,7 +1227,7 @@ def zigateInit_Phase3(self): # Set Certification Code if self.pluginconf.pluginConf["CertificationCode"] in CERTIFICATION: self.log.logging( "Plugin", "Status", "Z4D coordinator set to Certification : %s/%s -> %s" % ( - self.pluginconf.pluginConf["CertificationCode"], self.pluginconf.pluginConf["Certification"], CERTIFICATION[self.pluginconf.pluginConf["CertificationCode"]],)) + self.pluginconf.pluginConf["CertificationCode"], self.pluginconf.pluginConf["Certification"], CERTIFICATION[self.pluginconf.pluginConf["CertificationCode"]],)) #sendZigateCmd(self, "0019", "%02x" % self.pluginconf.pluginConf["CertificationCode"]) zigate_set_certificate(self, "%02x" % self.pluginconf.pluginConf["CertificationCode"] ) @@ -1256,19 +1257,16 @@ def zigateInit_Phase3(self): self.log.logging("Plugin", "Status", "Z4D starts Group Management") start_GrpManagement(self, Parameters["HomeFolder"]) - # Create Network Energy object and trigger one scan + # Create Network Energy object if self.networkenergy is None: self.networkenergy = NetworkEnergy( self.zigbee_communication, self.pluginconf, self.ControllerLink, self.ListOfDevices, Devices, self.HardwareID, self.log ) - # if len(self.ListOfDevices) > 1: - # self.log.logging( 'Plugin', 'Status', "Trigger a Energy Level Scan") - # self.networkenergy.start_scan() if self.networkenergy: self.webserver.update_networkenergy(self.networkenergy) - # Create Network Map object and trigger one scan + # Create Network Map object if self.networkmap is None: self.networkmap = NetworkMap( self.zigbee_communication ,self.pluginconf, self.ControllerLink, self.ListOfDevices, Devices, self.HardwareID, self.log @@ -1638,13 +1636,6 @@ def uninstall_Z4D_to_domoticz_custom_ui(): Domoticz.Error('Error during installing plugin custom page') Domoticz.Error(repr(e)) -def do_python_garbage_collection( self ): - # Garbage collector ( experimental for now) - pass - #if self.internalHB % (3600 // HEARTBEAT) == 0: - # self.log.logging("Garbage", "Debug", "Garbage Collection status: %s" % str(gc.get_count()) ) - # self.log.logging("Garbage", "Debug", "Garbage collection statistics: %s" % str( gc.get_stats()) ) - # # self.log.logging("Garbage", "Debug", "Garbage Collection triggered: %s" % str(gc.collect()) ) def _check_if_busy(self): busy_ = self.ControllerLink.loadTransmit() >= MAX_FOR_ZIGATE_BUZY @@ -1667,6 +1658,7 @@ def _check_if_busy(self): self.PluginHealth["Txt"] = "Ready" self.adminWidgets.updateStatusWidget(Devices, "Ready") + def _check_permit_to_joint_status(self): if ( self.permitTojoin["Duration"] != 255 @@ -1683,6 +1675,7 @@ def _check_permit_to_joint_status(self): pingZigate(self) self.Ping["Nb Ticks"] += 1 + def _trigger_coordinator_backup( self ): if ( self.zigbee_communication @@ -1695,6 +1688,7 @@ def _trigger_coordinator_backup( self ): ): self.ControllerLink.sendData( "COORDINATOR-BACKUP", {}) + def _check_plugin_version( self ): self.pluginParameters["TimeStamp"] = int(time.time()) if self.transport != "None" and self.pluginconf.pluginConf["internetAccess"] and ( @@ -1722,6 +1716,7 @@ def _check_plugin_version( self ): self.log.logging("Plugin", "Status", "Z4D found a newer Zigate Firmware version") self.pluginParameters["FirmwareUpdate"] = True + def _coordinator_ready( self ): self.log.logging( "Plugin", "Debug", "_coordinator_ready transport: %s PDMready: %s" %(self.transport, self.PDMready)) if self.transport == "None" or self.PDMready: @@ -1752,6 +1747,7 @@ def _coordinator_ready( self ): return False + def _post_readiness_startup_completed( self ): if self.transport != "None" and (self.startZigateNeeded or not self.InitPhase1 or not self.InitPhase2): # Require Transport From 0c2f8c92537ea339757c47b452407dd16fa67f3b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 30 Apr 2024 21:15:08 +0200 Subject: [PATCH 269/301] Plugin wip-develop version 7.2.086 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4a9e947a9..46d1a5d77 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.085"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.086"} \ No newline at end of file From f17a9f3e92df77edf3f3890ba15e938fb5e0b964 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 1 May 2024 15:34:32 +0200 Subject: [PATCH 270/301] remove some log and move it to debug --- Z4D_decoders/z4d_decoder_IAS.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Z4D_decoders/z4d_decoder_IAS.py b/Z4D_decoders/z4d_decoder_IAS.py index 088159b39..88c462e25 100644 --- a/Z4D_decoders/z4d_decoder_IAS.py +++ b/Z4D_decoders/z4d_decoder_IAS.py @@ -46,13 +46,13 @@ def Decode8046(self, Devices, MsgData, MsgLQI): updSQN(self, MsgDataShAddr, MsgDataSQN) updLQI(self, MsgDataShAddr, MsgLQI) - self.log.logging('Input', 'Log', 'Decode8046 - Match Descriptor response: SQN: %s Status: %s Nwkid: %s Lenght: %s List: %s' % (MsgDataSQN, MsgDataStatus, MsgDataShAddr, MsgDataLenList, MsgDataMatchList)) + self.log.logging('Input', 'Debug', 'Decode8046 - Match Descriptor response: SQN: %s Status: %s Nwkid: %s Lenght: %s List: %s' % (MsgDataSQN, MsgDataStatus, MsgDataShAddr, MsgDataLenList, MsgDataMatchList)) if MsgDataStatus == '00' and MsgDataLenList != '00' and self.iaszonemgt: idx = 0 while idx < int(MsgDataLenList, 16): ep = MsgDataMatchList[idx:idx + 2] idx += 2 - self.log.logging('Input', 'Log', 'Decode8046 - Match Descriptor response Nwkid: %sfound Ep: %s Matching 0500' % (MsgDataShAddr, ep)) + self.log.logging('Input', 'Debug', 'Decode8046 - Match Descriptor response Nwkid: %sfound Ep: %s Matching 0500' % (MsgDataShAddr, ep)) self.iaszonemgt.IAS_write_CIE_after_match_descriptor(MsgDataShAddr, ep) @@ -62,7 +62,7 @@ def Decode8400(self, Devices, MsgData, MsgLQI): manufacturercode = MsgData[6:10] nwkid = MsgData[10:14] ep = MsgData[14:16] - self.log.logging('Input', 'Log', 'Decode8400 - IAS Zone Enroll Request NwkId: %s/%s Sqn: %s ZoneType: %s Manuf: %s' % (nwkid, ep, sqn, zonetype, manufacturercode)) + self.log.logging('Input', 'Debug', 'Decode8400 - IAS Zone Enroll Request NwkId: %s/%s Sqn: %s ZoneType: %s Manuf: %s' % (nwkid, ep, sqn, zonetype, manufacturercode)) if self.iaszonemgt: self.iaszonemgt.IAS_zone_enroll_request(nwkid, ep, zonetype, sqn) From 908bcc25300b33e578b85a71a2464734be5fdcf2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 1 May 2024 17:46:32 +0200 Subject: [PATCH 271/301] check that data is not None --- Classes/OTA.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Classes/OTA.py b/Classes/OTA.py index df15ad250..1f88874e5 100644 --- a/Classes/OTA.py +++ b/Classes/OTA.py @@ -1429,7 +1429,9 @@ def convert_ikea_format_to_list(zigbee_ikea_index): ] -def check_ota_availability_from_index( self, manufcode, imagetype, fileversion ): +def check_ota_availability_from_index( self, manufcode, imagetype, fileversion ): + if self.zigbee_ota_index is None: + return None logging(self, "Debug", "check_ota_availability_from_index: Index Size: %s Searching ImageType: 0x%04x (%s) Version: 0x%08x (%s) ManufCode: 0x%04x (%s)" %( len(self.zigbee_ota_index), manufcode, manufcode, imagetype, imagetype, fileversion, fileversion)) From cc47a031ed15eeb3946b7cd1de9fc5385359fdc1 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 1 May 2024 19:03:11 +0200 Subject: [PATCH 272/301] fix issue when PUT /zgroup --- Classes/WebServer/rest_Groups.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Classes/WebServer/rest_Groups.py b/Classes/WebServer/rest_Groups.py index c7df55390..f5ab7133c 100644 --- a/Classes/WebServer/rest_Groups.py +++ b/Classes/WebServer/rest_Groups.py @@ -221,29 +221,29 @@ def rest_scan_devices_for_group(self, verb, data, parameter): def rest_zGroup(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) + _response["Data"] = {} self.logging("Log", f"rest_zGroup {verb} {data} {parameters}") + if self.groupmgt is None: + domoticz_error_api("Looks like Group Management is not enabled") + return _response if verb == "GET": - return _response if self.groupmgt is None else _zgroup_get(self, parameters) + return _zgroup_get(self, parameters) if verb == "PUT": - _zgroup_put( self, data, parameters) + return _zgroup_put( self, data, parameters) def _zgroup_put( self, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) - _response["Data"] = None - if not self.groupmgt: + _response["Data"] = {} + if self.groupmgt is None: domoticz_error_api("Looks like Group Management is not enabled") - _response["Data"] = {} return _response - ListOfGroups = self.groupmgt.ListOfGroups - grp_lst = [] if len(parameters) == 0: data = data.decode("utf8") - _response["Data"] = {} self.groupmgt.process_web_request(json.loads(data)) return _response @@ -253,12 +253,11 @@ def _zgroup_get(self, parameters): self.logging("Debug", f"zgroup_get - {parameters}") _response = prepResponseMessage(self, setupHeadersResponse()) - ListOfGroups = self.groupmgt.ListOfGroups - if ListOfGroups is None: + if self.groupmgt.ListOfGroups is None: return _response zgroup_lst = [] - for itergrp, group_info in ListOfGroups.items(): + for itergrp, group_info in self.groupmgt.ListOfGroups.items(): self.logging("Debug", f"_zgroup_get - {itergrp} {group_info}") if len(parameters) == 1 and itergrp != parameters[0]: continue @@ -275,6 +274,7 @@ def _zgroup_get(self, parameters): elif len(itemDevice) == 3: dev, ep, ieee = itemDevice zgroup["Devices"].append( {"_NwkId": dev, "Ep": ep, "IEEE": ieee} ) + zgroup["Cluster"] = group_info.get("Cluster", "") zgroup["WidgetStyle"] = group_info.get("WidgetStyle", "") zgroup["Switchtype"] = group_info.get("Switchtype", "") From 8fa4c00338d8e85d388ebe99af80596108e80d63 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 1 May 2024 19:47:50 +0200 Subject: [PATCH 273/301] fix few issues related to Typename and Group --- Classes/GroupMgtv2/GrpDomoticz.py | 29 ++++++++++++++++++++++------- Classes/WebServer/rest_Groups.py | 4 ++-- Modules/domoticzAbstractLayer.py | 10 ---------- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index 04db0fa8f..224074e60 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -18,7 +18,7 @@ from Modules.domoticzAbstractLayer import ( FreeUnit, domo_create_api, domo_delete_widget, domo_read_Name, domo_read_nValue_sValue, domo_read_SwitchType_SubType_Type, - domo_read_Typename, domo_update_api, domo_update_name, + domo_update_api, domo_update_name, domo_update_SwitchType_SubType_Type, find_first_unit_widget_from_deviceID) from Modules.tools import Hex_Format, is_domoticz_latest_typename, is_hex from Modules.zigateConsts import ADDRESS_MODE, LEGRAND_REMOTES, ZIGATE_EP @@ -47,8 +47,8 @@ } WIDGET_STYLE_TO_DOMOTICZ_TYPEMAP = { - "Plug": "On/Off ", - "Switch": "On/Off ", + "Plug": "On/Off", + "Switch": "On/Off", "LvlControl": "Dimmer", "BlindPercentInverted": "BlindsPercentage", "WindowCovering": "VenetianBlindsEU", @@ -76,6 +76,7 @@ def create_domoticz_group_device(self, GroupName, GroupId): return Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) + self.ListOfGroups[GroupId]['TypeName'] = get_typename(self, Type_, Subtype_, SwitchType_) unit = FreeUnit(self, self.Devices, GroupId, 1) idx = domo_create_api(self, self.Devices, GroupId, unit, GroupName, Type_=Type_, Subtype_=Subtype_, Switchtype_=SwitchType_, widgetOptions=None, Image=None) @@ -139,11 +140,16 @@ def update_domoticz_group_device_widget(self, GroupId): Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) if is_domoticz_latest_typename(self): - current_typename = domo_read_Typename(self, self.Devices, GroupId, unit) - new_typename = get_typename(Type_, Subtype_, SwitchType_) + current_typename = get_group_latest_typename(self, GroupId) + if current_typename is None: + current_switchType, current_Subtype, current_Type = domo_read_SwitchType_SubType_Type(self, self.Devices, GroupId, unit) + current_typename = get_typename(self, current_switchType, current_Subtype, current_Type) + + new_typename = get_typename(self, Type_, Subtype_, SwitchType_) self.logging("Debug", f" Looking to update Unit: {unit} from {current_typename} to {new_typename}") if current_typename != new_typename: + self.ListOfGroups[GroupId]['TypeName'] = new_typename domo_update_SwitchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_, Typename_=new_typename) return @@ -155,8 +161,13 @@ def update_domoticz_group_device_widget(self, GroupId): domo_update_SwitchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_) -def get_typename(Type_, Subtype_, SwitchType_): - return WIDGET_STYLE_TO_DOMOTICZ_TYPEMAP.get(WIDGET_STYLE.get((Type_, Subtype_, SwitchType_))) +def get_typename(self, Type_, Subtype_, SwitchType_): + for widget, style in WIDGET_STYLE.items(): + if style == (Type_, Subtype_, SwitchType_): + widget_stype = widget + return WIDGET_STYLE_TO_DOMOTICZ_TYPEMAP.get(widget_stype) + return None + def best_group_widget(self, GroupId): @@ -774,3 +785,7 @@ def resetDevicesHearttBeat(self, GrpId): # Reset Health status of corresponding device if any in Not Reachable if "Health" in self.ListOfDevices[NwkId] and self.ListOfDevices[NwkId]["Health"] == "Not Reachable": self.ListOfDevices[NwkId]["Health"] = "" + +def get_group_latest_typename(self, GroupId): + + return self.ListOfGroups[GroupId].get("TypeName") \ No newline at end of file diff --git a/Classes/WebServer/rest_Groups.py b/Classes/WebServer/rest_Groups.py index f5ab7133c..cb1aa9081 100644 --- a/Classes/WebServer/rest_Groups.py +++ b/Classes/WebServer/rest_Groups.py @@ -223,7 +223,7 @@ def rest_zGroup(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) _response["Data"] = {} - self.logging("Log", f"rest_zGroup {verb} {data} {parameters}") + self.logging("Debug", f"rest_zGroup {verb} {data} {parameters}") if self.groupmgt is None: domoticz_error_api("Looks like Group Management is not enabled") return _response @@ -239,7 +239,7 @@ def _zgroup_put( self, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) _response["Data"] = {} if self.groupmgt is None: - domoticz_error_api("Looks like Group Management is not enabled") + self.logging("Error", "Looks like Group Management is not enabled") return _response if len(parameters) == 0: diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index 1059abcbf..172f29993 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -608,15 +608,6 @@ def domo_read_SwitchType_SubType_Type(self, Devices, DeviceID, Unit): return _unit.SwitchType, _unit.SubType, _unit.Type -def domo_read_Typename(self, Devices, DeviceID, Unit): - self.log.logging("AbstractDz", "Debug", f"domo_read_Typename: DeviceID: {DeviceID} Unit {Unit}") - if DOMOTICZ_EXTENDED_API: - _unit = Devices[DeviceID].Units[Unit] - else: - _unit = Devices[Unit] - - return _unit.TypeName - def _is_meter_widget(self, Devices, DeviceID_, Unit_): if DOMOTICZ_EXTENDED_API: @@ -797,7 +788,6 @@ def is_dimmable_blind(self, Devices, DeviceId, Unit): return None - def find_partially_opened_nValue(switch_type, sub_type, widget_type): key = (switch_type, sub_type, widget_type) return DIMMABLE_WIDGETS.get(key,{}).get("partially_opened_nValue") From a11896e7d4c53126b3683581adccac9822f8a7c2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 1 May 2024 19:48:09 +0200 Subject: [PATCH 274/301] Plugin wip-develop version 7.2.087 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 46d1a5d77..3c1ff6cc7 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.086"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.087"} \ No newline at end of file From 61865c6557eb505aa2fb75a410c2047218618231 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 2 May 2024 09:41:11 +0200 Subject: [PATCH 275/301] rely on zigpy .register_endpoints() instead of having a specific one --- Classes/ZigpyTransport/AppDeconz.py | 41 ++--------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index e6a471da8..8bd5cc99c 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -117,45 +117,8 @@ def connection_lost(self, exc: Exception) -> None: async def register_endpoints(self): - """ - Registers all necessary endpoints. - The exact order in which this method is called depends on the radio module. - """ - - LOGGER.info("Adding Endpoint 0x%x" %0x01) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=1, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zha.DeviceType.IAS_CONTROL, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - zigpy.zcl.clusters.general.OnOff.cluster_id, - zigpy.zcl.clusters.general.Time.cluster_id, - zigpy.zcl.clusters.general.Ota.cluster_id, - zigpy.zcl.clusters.security.IasAce.cluster_id, - ], - output_clusters=[ - zigpy.zcl.clusters.general.PowerConfiguration.cluster_id, - zigpy.zcl.clusters.general.PollControl.cluster_id, - zigpy.zcl.clusters.security.IasZone.cluster_id, - zigpy.zcl.clusters.security.IasWd.cluster_id, - ], - ) - ) - - LOGGER.info("Adding Endpoint 0x%x" %0x02) - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=2, - profile=zigpy.profiles.zll.PROFILE_ID, - device_type=zigpy.profiles.zll.DeviceType.CONTROLLER, - device_version=0b0000, - input_clusters=[zigpy.zcl.clusters.general.Basic.cluster_id], - output_clusters=[], - ) - ) + self.log.logging("TransportZigpy", "Status", "++ deConz Radio register default Ep") + await super().register_endpoints() LOGGER.info("Adding any additional and specific Endpoints ") await Classes.ZigpyTransport.AppGeneric.register_specific_endpoints(self) From c3483c5a8857951ec9fb22e4ecf7bc2f1ff43a61 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 2 May 2024 09:41:57 +0200 Subject: [PATCH 276/301] cosmetic --- Classes/ZigpyTransport/AppGeneric.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 3b4e547ca..0fc3d88ba 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -139,6 +139,7 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) # Start Network await self.start_network() + self._persist_coordinator_model_strings_in_db() # Network interference scan From 804008570468a297c475074f7318105034082ede Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 2 May 2024 09:42:31 +0200 Subject: [PATCH 277/301] rely on zigpy .register_endpoints() instead of a specific one --- Classes/ZigpyTransport/AppBellows.py | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 44a1d3f43..5d388e340 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -130,31 +130,8 @@ def connection_lost(self, exc: Exception) -> None: async def register_endpoints(self, endpoint=1): - # Only needed if the device require simple node descriptor from the coordinator - self.log.logging("TransportZigpy", "Status", "++ Bellows Radio register default Ep") - await self.add_endpoint( - zdo_types.SimpleDescriptor( - endpoint=1, - profile=zigpy.profiles.zha.PROFILE_ID, - device_type=zigpy.profiles.zha.DeviceType.IAS_CONTROL, - device_version=0b0000, - input_clusters=[ - zigpy.zcl.clusters.general.Basic.cluster_id, - zigpy.zcl.clusters.general.OnOff.cluster_id, - zigpy.zcl.clusters.general.Groups.cluster_id, - zigpy.zcl.clusters.general.Scenes.cluster_id, - zigpy.zcl.clusters.general.Time.cluster_id, - zigpy.zcl.clusters.general.Ota.cluster_id, - zigpy.zcl.clusters.security.IasAce.cluster_id, - ], - output_clusters=[ - zigpy.zcl.clusters.general.PowerConfiguration.cluster_id, - zigpy.zcl.clusters.general.PollControl.cluster_id, - zigpy.zcl.clusters.security.IasZone.cluster_id, - zigpy.zcl.clusters.security.IasWd.cluster_id, - ], - ) - ) + self.log.logging("TransportZigpy", "Status", "++ deConz Radio register default Ep") + await super().register_endpoints() def get_device(self, ieee=None, nwk=None): From fb575068e896939fc0957845184980690171c2e5 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 2 May 2024 09:42:37 +0200 Subject: [PATCH 278/301] Plugin wip-develop version 7.2.088 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 3c1ff6cc7..fccf0bdaa 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.087"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.088"} \ No newline at end of file From 12e644730f3e4fd0a8ffff205e02c264dbb8ebbe Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 2 May 2024 09:45:09 +0200 Subject: [PATCH 279/301] correct mistake in log --- Classes/ZigpyTransport/AppBellows.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 5d388e340..89329bc83 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -130,7 +130,7 @@ def connection_lost(self, exc: Exception) -> None: async def register_endpoints(self, endpoint=1): - self.log.logging("TransportZigpy", "Status", "++ deConz Radio register default Ep") + self.log.logging("TransportZigpy", "Status", "++ EZSP Radio register default Ep") await super().register_endpoints() From 7d14abcbdbfc4afa98ec89a09cdd54252facbedd Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sat, 4 May 2024 09:10:44 +0200 Subject: [PATCH 280/301] upgrade bellows version (#1735) * upgrade bellows version * better display various Board and Protocol version --- Classes/ZigpyTransport/AppBellows.py | 10 +++++++--- Classes/ZigpyTransport/AppDeconz.py | 8 +++++--- Classes/ZigpyTransport/AppZnp.py | 7 ++++--- Classes/ZigpyTransport/zigpyThread.py | 15 ++++++++------- Modules/pluginHelpers.py | 2 +- constraints.txt | 2 +- 6 files changed, 26 insertions(+), 18 deletions(-) diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 89329bc83..16df6a2f0 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -92,9 +92,11 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call # Trigger Version payload to plugin try: brd_manuf, brd_name, version = await self._ezsp.get_board_info() - self.log.logging("TransportZigpy", "Status", "++ EZSP Radio manufacturer: %s" %brd_manuf) - self.log.logging("TransportZigpy", "Status", "++ EZSP Radio board name: %s" %brd_name) - self.log.logging("TransportZigpy", "Status", "++ EmberZNet version: %s" %version) + self.log.logging("TransportZigpy", "Status", "++ EZSP Board Information" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio manufacturer : {brd_manuf}" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio board name : {brd_name}" ) + self.log.logging("TransportZigpy", "Status", f"++ EmberZNet version : {version}" ) + self.log.logging("TransportZigpy", "Status", f"++ Protocol Version : {self._ezsp.ezsp_version}") except EzspError as exc: LOGGER.error("EZSP Radio does not support getMfgToken command: %s" %str(exc)) @@ -118,6 +120,8 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call status = await coordinator.add_to_group( 0x4005, name="Default Tint Group 4005", ) status = await coordinator.add_to_group( 0x4006, name="Default Tint Group 4006", ) + + async def shutdown(self) -> None: """Shutdown controller.""" diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 8bd5cc99c..d1372a861 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -97,9 +97,11 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call # Trigger Version payload to plugin deconz_model = self.get_device(nwk=t.NWK(0x0000)).model deconz_manuf = self.get_device(nwk=t.NWK(0x0000)).manufacturer - self.log.logging("TransportZigpy", "Status", "++ deConz Radio manufacturer: %s" %deconz_manuf) - self.log.logging("TransportZigpy", "Status", "++ deConz Radio board model: %s" %deconz_model) - self.log.logging("TransportZigpy", "Status", "++ deConz Radio version: 0x %x" %version ) + + self.log.logging("TransportZigpy", "Status", "++ deConz Board Information" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio manufacturer : {deconz_manuf}" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio board model : {deconz_model}" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio version : {version}" ) branch, version = deconz_extract_versioning_for_plugin( self, deconz_model, deconz_manuf, version) diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 44165e0d2..94e60af6a 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -100,9 +100,10 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call FirmwareBranch, FirmwareVersion, build = znp_extract_versioning_for_plugin( self, znp_model, znp_manuf, version) self.callBackFunction(build_plugin_8010_frame_content(FirmwareBranch, "000000", FirmwareVersion, "" )) - self.log.logging("TransportZigpy", "Status", "++ ZNP Radio manufacturer: %s" %znp_manuf) - self.log.logging("TransportZigpy", "Status", "++ ZNP Radio board model: %s" %znp_model) - self.log.logging("TransportZigpy", "Status", "++ ZNP Radio version: %s" %version) + self.log.logging("TransportZigpy", "Status", "++ ZNP Board Information" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio manufacturer : {znp_manuf}" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio board model : {znp_model}" ) + self.log.logging("TransportZigpy", "Status", f"++ Radio version : {version}" ) async def shutdown(self) -> None: diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 96a500956..d080d5e41 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -60,7 +60,8 @@ def stop_zigpy_thread(self): """ will send a STOP message to the writer_queue in order to stop the thread """ self.log.logging("TransportZigpy", "Debug", "stop_zigpy_thread - Stopping zigpy thread") - self.writer_queue.put_nowait("STOP") + if self.writer_queue: + self.writer_queue.put_nowait("STOP") self.zigpy_running = False # Make sure top the manualy started task @@ -355,12 +356,12 @@ def post_coordinator_startup(self, radiomodule): def display_network_infos(self): self.log.logging( "TransportZigpy", "Status", "++ Network settings") - self.log.logging( "TransportZigpy", "Status", "++ Device IEEE: %s" %self.app.state.node_info.ieee) - self.log.logging( "TransportZigpy", "Status", "++ Device NWK: 0x%04X" %self.app.state.node_info.nwk) - self.log.logging( "TransportZigpy", "Status", "++ Network Update Id: 0x%04X" %self.app.state.network_info.nwk_update_id) - self.log.logging( "TransportZigpy", "Status", "++ PAN ID: 0x%04X" %self.app.state.network_info.pan_id) - self.log.logging( "TransportZigpy", "Status", "++ Extended PAN ID: %s" %self.app.state.network_info.extended_pan_id) - self.log.logging( "TransportZigpy", "Status", "++ Channel: %s" %self.app.state.network_info.channel) + self.log.logging( "TransportZigpy", "Status", "++ Device IEEE : %s" %self.app.state.node_info.ieee) + self.log.logging( "TransportZigpy", "Status", "++ Device NWK : 0x%04X" %self.app.state.node_info.nwk) + self.log.logging( "TransportZigpy", "Status", "++ Network Update Id : 0x%04X" %self.app.state.network_info.nwk_update_id) + self.log.logging( "TransportZigpy", "Status", "++ PAN ID : 0x%04X" %self.app.state.network_info.pan_id) + self.log.logging( "TransportZigpy", "Status", "++ Extended PAN ID : %s" %self.app.state.network_info.extended_pan_id) + self.log.logging( "TransportZigpy", "Status", "++ Channel : %s" %self.app.state.network_info.channel) self.log.logging( "TransportZigpy", "Debug", "++ Network key: " + ":".join( f"{c:02x}" for c in self.app.state.network_information.network_key.key )) diff --git a/Modules/pluginHelpers.py b/Modules/pluginHelpers.py index cefa97ec1..bed9c6abc 100644 --- a/Modules/pluginHelpers.py +++ b/Modules/pluginHelpers.py @@ -25,7 +25,7 @@ "zigpy": "0.64.0", "zigpy_znp": "0.12.1", "zigpy_deconz": "0.23.1", - "bellows": "0.38.1", + "bellows": "0.38.4", } def networksize_update(self): diff --git a/constraints.txt b/constraints.txt index 7c518d975..db439d42a 100644 --- a/constraints.txt +++ b/constraints.txt @@ -2,7 +2,7 @@ charset-normalizer==2.0.11 zigpy==0.64.0 zigpy_znp==0.12.1 zigpy_deconz==0.23.1 -bellows==0.38.1 +bellows==0.38.4 dnspython==2.6.1 pyserial>=3.5 charset-normalizer==2.0.11 From 03f8dad379d74241daa208f68fd6030571482b8d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 4 May 2024 09:10:54 +0200 Subject: [PATCH 281/301] Plugin wip-develop version 7.2.089 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index fccf0bdaa..4c03e77b3 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.088"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.089"} \ No newline at end of file From d6f798a169dba5c0aa175da89f90532873560e8a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 4 May 2024 20:35:02 +0200 Subject: [PATCH 282/301] beurk ... do not know what happened --- Classes/WebServer/dispatcher.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/WebServer/dispatcher.py b/Classes/WebServer/dispatcher.py index b02c0e5ea..a51f6e791 100644 --- a/Classes/WebServer/dispatcher.py +++ b/Classes/WebServer/dispatcher.py @@ -60,7 +60,7 @@ def setup_list_rest_commands( self ): ( {"Name": "req-topologie", "Verbs": {"GET"}, "function": self.rest_req_topologie} ), ( {"Name": "rescan-groups", "Verbs": {"GET"}, "function": self.rest_rescan_group} ), ( {"Name": "restart-needed", "Verbs": {"GET"}, "function": self.rest_restart_needed} ), - ( {"Name": "ScanDevscan-device-for-grpiceForGrp", "Verbs": {"PUT"}, "function": self.rest_scan_devices_for_group } ), + ( {"Name": "scan-device-for-grp", "Verbs": {"PUT"}, "function": self.rest_scan_devices_for_group } ), ( {"Name": "setting-debug", "Verbs": {"GET", "PUT"}, "function": self.rest_Settings_with_debug} ), ( {"Name": "setting", "Verbs": {"GET", "PUT"}, "function": self.rest_Settings_wo_debug} ), ( {"Name": "sw-reset-zigate", "Verbs": {"GET"}, "function": self.rest_reset_zigate} ), From 9dd407b1c5ee025323b2bc48da12a4815b25ee74 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 4 May 2024 20:35:53 +0200 Subject: [PATCH 283/301] better compute widget style for groups, and in case a On is sent with SetLevel at 100, do a Group_On via cluster 0x0006 --- Classes/GroupMgtv2/GrpDomoticz.py | 151 +++++++++++++----------------- 1 file changed, 66 insertions(+), 85 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index 224074e60..800c8e683 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -210,78 +210,43 @@ def best_group_widget(self, GroupId): WidgetType = self.ListOfDevices[NwkId]["Ep"][devEp]["ClusterType"][DomoDeviceUnit] self.logging("Debug", "------------ GroupWidget: %s WidgetType: %s" % (GroupWidgetType, WidgetType)) - if WidgetType == "LvlControl" and "Blind" in self.ListOfDevices[NwkId]["Type"]: + if self.ListOfDevices[NwkId]["Ep"][devEp]["Type"] in ( "Blind", "BlindInverted") and WidgetType == "LvlControl": + # Blinds control via cluster 0x0008 GroupWidgetStyle = "BlindPercentInverted" - + GroupWidgetType = "LvlControl" + break + if WidgetType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): # Those widgets are commanded via cluster Level Control - GroupWidgetType = "LvlControl" GroupWidgetStyle = "VenetianInverted" - continue - - if GroupWidgetType is None and WidgetType in WIDGET_STYLE: - GroupWidgetType = WidgetType - continue + GroupWidgetType = "LvlControl" + + break if WidgetType == GroupWidgetType: continue - if WidgetType == "Switch" and GroupWidgetType == "Plug": - GroupWidgetType = "Switch" - continue - - if WidgetType == "LvlControl" and GroupWidgetType in ("Plug", "Switch"): - GroupWidgetType = WidgetType - continue - - if WidgetType == "ColorControlWW" and GroupWidgetType in ("Plug", "Switch", "LvlControl"): - GroupWidgetType = WidgetType - continue - - if WidgetType == "ColorControlRGB" and GroupWidgetType in ("Plug", "Switch", "LvlControl"): - GroupWidgetType = WidgetType - continue - - if (WidgetType == "ColorControlRGB" and GroupWidgetType in ("ColorControlWW")) or ( - WidgetType == "ColorControlWW" and GroupWidgetType in ("ColorControlRGB") - ): - GroupWidgetType = "ColorControlRGBWW" - continue - - if WidgetType in ("ColorControl", "ColorControlFull"): - GroupWidgetType = WidgetType - continue - - if WidgetType in ("Venetian", "WindowCovering", "BlindPercentInverted"): - GroupWidgetType = WidgetType - + GroupWidgetType = my_best_widget_offer(self, WidgetType, GroupWidgetType) + if GroupWidgetType is None: GroupWidgetType = "ColorControlFull" - self.ListOfGroups[GroupId]["WidgetStyle"] = GroupWidgetType - # This will be used when receiving left/right click , to know if it is RGB or WW + self.ListOfGroups[GroupId]["GroupWidgetType"] = GroupWidgetType - if "Tradfri Remote" in self.ListOfGroups[GroupId]: - self.ListOfGroups[GroupId]["Tradfri Remote"]["Color Mode"] = GroupWidgetType + # Update Tradfri Remote color mode + self.ListOfGroups[GroupId].get("Tradfri Remote", {}).setdefault("Color Mode", GroupWidgetType) - # Update Cluster, based on WidgetStyle - if self.ListOfGroups[GroupId]["WidgetStyle"] in ("Switch", "Plug"): + # Update Cluster based on WidgetStyle + if GroupWidgetType in ("Switch", "Plug"): self.ListOfGroups[GroupId]["Cluster"] = "0006" - elif self.ListOfGroups[GroupId]["WidgetStyle"] in ("LvlControl"): + elif GroupWidgetType == "LvlControl": self.ListOfGroups[GroupId]["Cluster"] = "0008" - elif self.ListOfGroups[GroupId]["WidgetStyle"] in ( - "ColorControlWW", - "ColorControlRGB", - "ColorControlRGB", - "ColorControlRGBWW", - "ColorControl", - "ColorControlFull", - ): + elif GroupWidgetType in ("ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"): self.ListOfGroups[GroupId]["Cluster"] = "0300" - elif self.ListOfGroups[GroupId]["WidgetStyle"] in ("Venetian", "WindowCovering", "VenetianInverted"): + elif GroupWidgetType in ("Venetian", "WindowCovering", "VenetianInverted"): self.ListOfGroups[GroupId]["Cluster"] = "0102" else: @@ -293,8 +258,35 @@ def best_group_widget(self, GroupId): if GroupWidgetStyle is None: GroupWidgetStyle = GroupWidgetType + self.ListOfGroups[GroupId]["GroupWidgetStyle"] = GroupWidgetType + return WIDGET_STYLE.get(GroupWidgetStyle, WIDGET_STYLE["ColorControlFull"]) + +WIDGET_STYLE_RULES = { + "Switch": {"Plug", "LvlControl", "ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"}, + "Plug": {"Plug", "LvlControl", "ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"}, + "LvlControl": {"ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"}, + "ColorControlWW": {"ColorControlRGBWW"}, + "ColorControlRGB": {"ColorControlRGBWW"}, + "ColorControlRGBWW": set(), + "ColorControl": set(), + "ColorControlFull": set() +} + +def my_best_widget_offer(self, current_widget, current_group_widget): + """ Find the best suitable widget. looks at the overlap features. If you have a Switch and ColorRGB, you can only do switch actions""" + if current_group_widget in (None, current_widget): + return current_widget + + if current_widget not in WIDGET_STYLE_RULES: + return current_group_widget + + if current_group_widget in WIDGET_STYLE_RULES and current_widget in WIDGET_STYLE_RULES[current_group_widget]: + return current_group_widget + + return current_widget + def update_domoticz_group_device(self, GroupId): """ @@ -475,19 +467,14 @@ def update_domoticz_group_device(self, GroupId): def update_domoticz_group_name(self, GrpId, NewGrpName): update_domoticz_group_device_widget_name(self, NewGrpName, GrpId) - return - def ValuesForVenetian(level): - nValue = 2 - if level > 0 and level < 100: - nValue = 2 - elif level == 0: - nValue = 0 + if level == 0: + return 0, "0" elif level == 100: - nValue = 1 - sValue = "%s" % level - return (nValue, sValue) + return 1, "100" + else: + return 2, str(level) def remove_domoticz_group_device(self, GroupId): @@ -609,10 +596,7 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): # Not sure that Groups are always on EP 01 !!!!! EPout = "01" - if ( - "Cluster" in self.ListOfGroups[GrpId] - and self.ListOfGroups[GrpId]["Cluster"] == "0102" - ): # Venetian store + if self.ListOfGroups.get(GrpId, {}).get("Cluster") == "0102": if Command in ( "Off", "Close", ): nValue = 0 sValue = "Off" @@ -666,39 +650,36 @@ def processCommand(self, unit, GrpId, Command, Level, Color_): update_domoticz_group_device(self, GrpId) zcl_group_onoff_on(self, GrpId, ZIGATE_EP, EPout) - elif Command in ( "Stop",) and self.ListOfGroups[GrpId]["Cluster"] == "0102": + elif Command in ( "Stop",) and self.ListOfGroups.get(GrpId, {}).get("Cluster") == "0102": # Windowscovering Stop zcl_group_window_covering_stop(self, GrpId, "01", EPout) - - elif Command in ( "Stop",) and self.ListOfGroups[GrpId]["Cluster"] == "0008": + + elif Command in ( "Stop",) and self.ListOfGroups.get(GrpId, {}).get("Cluster") == "0008": # SetLevel Off zcl_group_move_to_level_stop(self, GrpId, EPout) elif Command == "Set Level": - # Level: % value of move - # Converted to value , raw value from 0 to 255 - # sValue is just a string of Level - - if Level > 100: - Level = 100 - elif Level < 0: - Level = 0 + Level = max(0, min(Level, 100)) OnOff = "01" - - # value = int(Level*255//100) + value = "%02X" % int(Level * 255 // 100) update_device_list_attribute(self, GrpId, "0008", value) - - transitionMoveLevel = "%04x" % self.pluginconf.pluginConf["GrpmoveToLevel"] - GroupLevelWithOnOff = False - if ( "GroupLevelWithOnOff" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["GroupLevelWithOnOff"] ): - GroupLevelWithOnOff = True + transitionMoveLevel = "%04x" % self.pluginconf.pluginConf["GrpmoveToLevel"] + GroupLevelWithOnOff = bool( + ( + "GroupLevelWithOnOff" in self.pluginconf.pluginConf + and self.pluginconf.pluginConf["GroupLevelWithOnOff"] + ) + ) if GroupLevelWithOnOff: zcl_group_move_to_level_with_onoff(self, GrpId, EPout, OnOff, value, transition=transitionMoveLevel, ackIsDisabled=True) else: zcl_group_level_move_to_level( self, GrpId, ZIGATE_EP, EPout, "01", value, transition=transitionMoveLevel) + if self.ListOfGroups[GrpId].get("WidgetStyle") in {"Switch", "Plug", "LvlControl", "ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"} and Level == 100: + zcl_group_onoff_on(self, GrpId, ZIGATE_EP, EPout) + update_domoticz_group_device(self, GrpId) # Update Device nValue = 2 From 333408c94b3d118813fffce0bff4f865f3399aeb Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 4 May 2024 20:35:59 +0200 Subject: [PATCH 284/301] Plugin wip-develop version 7.2.090 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4c03e77b3..651117d73 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.089"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.090"} \ No newline at end of file From bf8690b8ff118f406fa6306f4dfdb5cc2dbdd30c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 4 May 2024 20:45:25 +0200 Subject: [PATCH 285/301] fix --- Classes/GroupMgtv2/GrpDomoticz.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index 800c8e683..86072a8c1 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -210,24 +210,29 @@ def best_group_widget(self, GroupId): WidgetType = self.ListOfDevices[NwkId]["Ep"][devEp]["ClusterType"][DomoDeviceUnit] self.logging("Debug", "------------ GroupWidget: %s WidgetType: %s" % (GroupWidgetType, WidgetType)) - if self.ListOfDevices[NwkId]["Ep"][devEp]["Type"] in ( "Blind", "BlindInverted") and WidgetType == "LvlControl": + if "BlindInverted" in self.ListOfDevices[NwkId]["Type"] and WidgetType == "LvlControl": # Blinds control via cluster 0x0008 GroupWidgetStyle = "BlindPercentInverted" GroupWidgetType = "LvlControl" break - + + elif "Blind" in self.ListOfDevices[NwkId]["Type"] and WidgetType == "LvlControl": + # Blinds control via cluster 0x0008 + GroupWidgetStyle = "BlindPercent" + GroupWidgetType = "LvlControl" + break + if WidgetType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): # Those widgets are commanded via cluster Level Control GroupWidgetStyle = "VenetianInverted" GroupWidgetType = "LvlControl" - break if WidgetType == GroupWidgetType: continue GroupWidgetType = my_best_widget_offer(self, WidgetType, GroupWidgetType) - + if GroupWidgetType is None: GroupWidgetType = "ColorControlFull" From f56352015f140cf7d6628555b383ccfab18cfeda Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 5 May 2024 15:29:39 +0200 Subject: [PATCH 286/301] enhance statistics at shutdown for Zigpy --- Classes/TransportStats.py | 96 ++++++++++++--------------- Classes/ZigpyTransport/AppBellows.py | 21 +----- Classes/ZigpyTransport/AppDeconz.py | 17 +---- Classes/ZigpyTransport/AppGeneric.py | 22 +++++- Classes/ZigpyTransport/AppZnp.py | 16 +---- Classes/ZigpyTransport/zigpyThread.py | 56 ++++++++++------ plugin.py | 2 +- 7 files changed, 110 insertions(+), 120 deletions(-) diff --git a/Classes/TransportStats.py b/Classes/TransportStats.py index 2a5768bd3..ea9fdf966 100644 --- a/Classes/TransportStats.py +++ b/Classes/TransportStats.py @@ -14,7 +14,7 @@ class TransportStatistics: - def __init__(self, pluginconf, log): + def __init__(self, pluginconf, log, zigbee_communication): self._pdmLoads = 0 # count the number of PDM Loads ( should be 1 max) self._crcErrors = 0 # count of crc errors self._frameErrors = 0 # count of frames error @@ -47,6 +47,7 @@ def __init__(self, pluginconf, log): self.TrendStats = [] self.pluginconf = pluginconf self.log = log + self.zigbee_communication = zigbee_communication # Statistics methods def starttime(self): @@ -192,55 +193,47 @@ def printSummary(self): return if self.sent() == 0 or self.received() == 0: return - domoticz_status_api("Statistics on message") - domoticz_status_api(" PDM load(s) : %s" % self._pdmLoads) - domoticz_status_api("Coordinator reacting time") - domoticz_status_api(" Max : %s sec" % (self._maxTiming8000)) - domoticz_status_api(" Average : %s sec" % (self._averageTiming8000)) - domoticz_status_api("Coordinator processing time on Rx") - domoticz_status_api(" Max : %s sec" % (self._maxRxProcesses)) - domoticz_status_api(" Average : %s sec" % (self._averageRxProcess)) - domoticz_status_api("Sent:") - domoticz_status_api(" TX commands : %s" % (self.sent())) - domoticz_status_api(" Max Load (Queue) : %s " % (self._MaxLoad)) - domoticz_status_api(" Max aPDU (Queue) : %s " % (self._MaxaPdu)) - domoticz_status_api(" Max nPDU (Queue) : %s " % (self._MaxnPdu)) - domoticz_status_api( - " TX failed : %s (%s" % (self.ackKOReceived(), round((self.ackKOReceived() / self.sent()) * 10, 2)) - + "%)" - ) - domoticz_status_api( - " TX timeout : %s (%s" % (self.TOstatus(), round((self.TOstatus() / self.sent()) * 100, 2)) + "%)" - ) - domoticz_status_api( - " TX data timeout : %s (%s" % (self.TOdata(), round((self.TOdata() / self.sent()) * 100, 2)) + "%)" - ) - domoticz_status_api( - " TX reTransmit : %s (%s" % (self.reTx(), round((self.reTx() / self.sent()) * 100, 2)) + "%)" - ) - domoticz_status_api( - " TX APS Failure : %s (%s" % (self.APSFailure(), round((self.APSFailure() / self.sent()) * 100, 2)) - + "%)" - ) - domoticz_status_api( - " TX APS Ack : %s (%s" % (self.APSAck(), round((self.APSAck() / self.sent()) * 100, 2)) + "%)" - ) - domoticz_status_api( - " TX APS Nck : %s (%s" % (self.APSNck(), round((self.APSNck() / self.sent()) * 100, 2)) + "%)" - ) - domoticz_status_api("Received:") - domoticz_status_api(" RX frame : %s" % (self.received())) - domoticz_status_api( - " RX crc errors : %s (%s" % (self.crcErrors(), round((self.crcErrors() / self.received()) * 100, 2)) - + "%)" - ) - domoticz_status_api( - " RX lentgh errors : %s (%s" - % (self.frameErrors(), round((self.frameErrors() / self.received()) * 100, 2)) - + "%)" - ) - domoticz_status_api(" RX clusters : %s" % (self.clusterOK())) - domoticz_status_api(" RX clusters KO : %s" % (self.clusterKO())) + domoticz_status_api("Plugin statistics") + domoticz_status_api(" Messages Sent:") + domoticz_status_api(" Max Load (Queue) : %s " % (self._MaxLoad)) + domoticz_status_api(" TX commands : %s" % (self.sent())) + domoticz_status_api(" TX failed : %s (%s" % (self.ackKOReceived(), round((self.ackKOReceived() / self.sent()) * 10, 2))+ "%)") + + if self.zigbee_communication == "native": + domoticz_status_api(" TX timeout : %s (%s" % (self.TOstatus(), round((self.TOstatus() / self.sent()) * 100, 2)) + "%)") + + domoticz_status_api(" TX data timeout : %s (%s" % (self.TOdata(), round((self.TOdata() / self.sent()) * 100, 2)) + "%)") + domoticz_status_api(" TX reTransmit : %s (%s" % (self.reTx(), round((self.reTx() / self.sent()) * 100, 2)) + "%)") + + if self.zigbee_communication == "native": + domoticz_status_api(" TX APS Failure : %s (%s" % (self.APSFailure(), round((self.APSFailure() / self.sent()) * 100, 2))+ "%)") + + domoticz_status_api(" TX APS Ack : %s (%s" % (self.APSAck(), round((self.APSAck() / self.sent()) * 100, 2)) + "%)") + domoticz_status_api(" TX APS Nck : %s (%s" % (self.APSNck(), round((self.APSNck() / self.sent()) * 100, 2)) + "%)") + + domoticz_status_api(" Messages Received:") + domoticz_status_api(" RX frame : %s" % (self.received())) + domoticz_status_api(" RX clusters : %s" % (self.clusterOK())) + domoticz_status_api(" RX clusters KO : %s" % (self.clusterKO())) + + if self.zigbee_communication == "native": + domoticz_status_api(" Coordinator reacting time on Tx (if ReactTime enabled)") + domoticz_status_api(" Max : %s sec" % (self._maxTiming8000)) + domoticz_status_api(" Average : %s sec" % (self._averageTiming8000)) + + else: + domoticz_status_api(" Plugin reacting time on Tx (if ReactTime enabled)") + domoticz_status_api(" Max : %s ms" % (self._max_reading_zigpy_timing)) + domoticz_status_api(" Average : %s ms" % (self._average_reading_zigpy_timing)) + + domoticz_status_api(" Plugin processing time on Rx (if ReactTime enabled)") + if self.zigbee_communication == "native": + domoticz_status_api(" Max : %s sec" % (self._maxRxProcesses)) + domoticz_status_api(" Average : %s sec" % (self._averageRxProcess)) + else: + domoticz_status_api(" Max : %s ms" % (self._maxRxProcesses)) + domoticz_status_api(" Average : %s ms" % (self._averageRxProcess)) + t0 = self.starttime() t1 = int(time()) _days = 0 @@ -253,8 +246,7 @@ def printSummary(self): _min = _duration // 60 _duration = _duration % 60 _sec = _duration % 60 - domoticz_status_api("Operating time : %s Hours %s Mins %s Secs" % (_hours, _min, _sec)) - domoticz_status_api( f"ZigpyThread Max: {self._max_reading_zigpy_timing} ms with an average of: {self._average_reading_zigpy_timing} ms") + domoticz_status_api(" Operating time : %s Hours %s Mins %s Secs" % (_hours, _min, _sec)) def writeReport(self): diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index 16df6a2f0..77a21f33a 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -53,12 +53,13 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) - async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + async def startup(self, statistics, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): """Starts a network, optionally forming one with random settings if necessary.""" # If set to != 0 (default) extended PanId will be use when forming the network. # If set to !=0 (default) channel will be use when formin the network self.log = log + self.statistics = statistics self.pluginconf = pluginconf self.permit_to_join_timer = permit_to_join_timer self.callBackFunction = callBackHandleMessage @@ -120,9 +121,7 @@ async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, call status = await coordinator.add_to_group( 0x4005, name="Default Tint Group 4005", ) status = await coordinator.add_to_group( 0x4006, name="Default Tint Group 4006", ) - - - + async def shutdown(self) -> None: """Shutdown controller.""" await Classes.ZigpyTransport.AppGeneric.shutdown(self) @@ -166,20 +165,6 @@ def packet_received(self, packet: zigpy_t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) - def handle_message( - self, - sender: zigpy.device.Device, - profile: int, - cluster: int, - src_ep: int, - dst_ep: int, - message: bytes, - * , - dst_addressing=None, - )->None: - return Classes.ZigpyTransport.AppGeneric.handle_message(self,sender,profile,cluster,src_ep,dst_ep,message, dst_addressing=dst_addressing) - - async def set_zigpy_tx_power(self, power): # EmberConfigTxPowerMode - EZSP_CONFIG_TX_POWER_MODE in EzspConfigId # 0x00: Normal mode diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index d1372a861..2b7f2d93f 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -52,10 +52,11 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) - async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + async def startup(self, statistics, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): """Starts a network, optionally forming one with random settings if necessary.""" self.log = log + self.statistics = statistics self.pluginconf = pluginconf self.permit_to_join_timer = permit_to_join_timer self.callBackFunction = callBackHandleMessage @@ -150,20 +151,6 @@ def packet_received(self, packet: t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) - def handle_message( - self, - sender: zigpy.device.Device, - profile: int, - cluster: int, - src_ep: int, - dst_ep: int, - message: bytes, - * , - dst_addressing=None, - ) -> None: - return Classes.ZigpyTransport.AppGeneric.handle_message(self,sender,profile,cluster,src_ep,dst_ep,message,dst_addressing=dst_addressing) - - async def set_zigpy_tx_power(self, power): pass #await self._api.set_tx_power(power) diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 0fc3d88ba..7684e7508 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -338,7 +338,26 @@ def handle_relays(self, nwk, relays) -> None: """Called when a list of relaying devices is received.""" super(type(self),self).handle_relays(nwk, relays) - + +def measure_execution_time(func): + def wrapper(self, packet): + t_start = None + if self.pluginconf.pluginConf.get("ZigpyReactTime", False): + t_start = int(1000 * time.time()) + + try: + func(self, packet) + + finally: + if t_start: + t_end = int(1000 * time.time()) + t_elapse = t_end - t_start + self.statistics.add_rxTiming(t_elapse) + self.log.logging("TransportZigpy", "Log", f"| (packet_received) | {t_elapse} | {packet.src.address.serialize()[::-1].hex()} | {packet.profile_id} | {packet.lqi} | {packet.rssi} |") + return wrapper + + +@measure_execution_time def packet_received( self, packet: zigpy_t.ZigbeePacket @@ -415,6 +434,7 @@ def get_zigpy_version(self): LOGGER.debug("get_zigpy_version ake version number. !!") return self.version + def get_device_with_address( self, address: zigpy_t.AddrModeAddress ) -> zigpy.device.Device: """Gets a `Device` object using the provided address mode address.""" diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 94e60af6a..5e2887485 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -54,12 +54,13 @@ async def initialize(self, *, auto_form: bool = False, force_form: bool = False) await Classes.ZigpyTransport.AppGeneric.initialize(self, auto_form=auto_form, force_form=force_form) - async def startup(self, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): + async def startup(self, statistics, HardwareID, pluginconf, use_of_zigpy_persistent_db, callBackHandleMessage, callBackUpdDevice=None, callBackGetDevice=None, callBackBackup=None, callBackRestartPlugin=None, captureRxFrame=None, auto_form=False, force_form=False, log=None, permit_to_join_timer=None): """Starts a network, optionally forming one with random settings if necessary.""" # If set to != 0 (default) extended PanId will be use when forming the network. # If set to !=0 (default) channel will be use when formin the network self.log = log + self.statistics = statistics self.pluginconf = pluginconf self.permit_to_join_timer = permit_to_join_timer self.callBackFunction = callBackHandleMessage @@ -151,19 +152,6 @@ def get_zigpy_version(self): def packet_received(self, packet: zigpy_t.ZigbeePacket) -> None: return Classes.ZigpyTransport.AppGeneric.packet_received(self,packet) - - def handle_message( - self, - sender: zigpy.device.Device, - profile: int, - cluster: int, - src_ep: int, - dst_ep: int, - message: bytes, - dst_addressing=None, - ) -> None: - return Classes.ZigpyTransport.AppGeneric.handle_message(self,sender,profile,cluster,src_ep,dst_ep,message, dst_addressing=dst_addressing) - async def set_zigpy_tx_power(self, power): self.log.logging("TransportZigpy", "Debug", "set_tx_power %s" %power) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index d080d5e41..acfaa3df4 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -120,7 +120,7 @@ async def start_zigpy_task(self, channel, extended_pan_id): self.log.logging( "TransportZigpy", "Debug", f"start_zigpy_task -extendedPANID {self.pluginconf.pluginConf['extendedPANID']} {extended_pan_id}", ) - await radio_start(self, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), + await radio_start(self, self.statistics, self.pluginconf, self.use_of_zigpy_persistent_db, self._radiomodule, self._serialPort, set_channel=channel, set_extendedPanId=extended_pan_id), # Run forever self.writer_queue = queue.Queue() # We MUST use queue and not asyncio.Queue, because it is not compatible with the Domoticz framework @@ -150,7 +150,7 @@ async def _shutdown_remaining_task(self): await asyncio.sleep(1) -async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, serialPort, auto_form=False, set_channel=0, set_extendedPanId=0): +async def radio_start(self, statistics, pluginconf, use_of_zigpy_persistent_db, radiomodule, serialPort, auto_form=False, set_channel=0, set_extendedPanId=0): self.log.logging("TransportZigpy", "Debug", "In radio_start %s" %radiomodule) @@ -211,7 +211,7 @@ async def radio_start(self, pluginconf, use_of_zigpy_persistent_db, radiomodule, self.log.logging( "TransportZigpy", "Status", "++ Use of Zigpy Persistent Db") await self.app._load_db() - await _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule) + await _radio_startup(self, statistics, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule) self.log.logging( "TransportZigpy", "Debug", "Exiting co-rounting radio_start") @@ -303,10 +303,11 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan config[zigpy.config.CONF_STARTUP_ENERGY_SCAN] = False -async def _radio_startup(self, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule): +async def _radio_startup(self, statistics, pluginconf, use_of_zigpy_persistent_db, new_network, radiomodule): try: await self.app.startup( + self.statistics, self.hardwareid, pluginconf, use_of_zigpy_persistent_db, @@ -554,21 +555,25 @@ async def _unicast_command(self, destination, Profile, Cluster, sEp, dEp, sequen self.log.logging("TransportZigpy", "Log", f"process_raw_command: TimeoutError {destination} {Profile} {Cluster} {payload}") error_msg = str(e) result = 0xB6 + self.statistics._TOdata += 1 except (asyncio.CancelledError, asyncio.exceptions.CancelledError) as e: self.log.logging("TransportZigpy", "Log", f"process_raw_command: CancelledError {destination} {Profile} {Cluster} {payload}") error_msg = str(e) result = 0xB6 + self.statistics._ackKO += 1 except AttributeError as e: self.log.logging("TransportZigpy", "Log", f"process_raw_command: AttributeError {Profile} {type(Profile)} {Cluster} {type(Cluster)}") error_msg = str(e) result = 0xB6 + self.statistics._ackKO += 1 except DeliveryError as e: self.log.logging("TransportZigpy", "Debug", f"process_raw_command - DeliveryError : {e}") error_msg = str(e) result = int(e.status) if hasattr(e, 'status') else 0xB6 + self.statistics._ackKO += 1 else: self.statistics._sent += 1 @@ -676,6 +681,7 @@ def check_transport_readiness(self): return False + def measure_execution_time(func): async def wrapper(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False): t_start = None @@ -683,16 +689,17 @@ async def wrapper(self, Function, destination, Profile, Cluster, sEp, dEp, seque t_start = int(1000 * time.time()) try: - await func(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False) + await func(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable, use_ieee, delay, extended_timeout) finally: if t_start: t_end = int(1000 * time.time()) t_elapse = t_end - t_start - self.statistics.add_timing_zigpy(t_elapse) + self.statistics.add_timing_zigpy(t_elapse) self.log.logging("TransportZigpy", "Log", f"| (transport_request) | {t_elapse} | {Function} | {destination.nwk} | {destination.ieee} | {destination.model} | {destination.manufacturer_id} | {destination.is_initialized} | {destination.rssi} | {destination.lqi} |") return wrapper + @measure_execution_time async def transport_request(self, Function, destination, Profile, Cluster, sEp, dEp, sequence, payload, ack_is_disable=False, use_ieee=False, delay=None, extended_timeout=False): """Send a zigbee message based on different arguments @@ -734,8 +741,7 @@ async def transport_request(self, Function, destination, Profile, Cluster, sEp, await _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, sEp, dEp, sequence, payload, use_ieee, _ieee,ack_is_disable, extended_timeout ) -async def _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, sEp, dEp, sequence, payload, use_ieee, _ieee,ack_is_disable, extended_timeout ): - +async def _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, sEp, dEp, sequence, payload, use_ieee, _ieee, ack_is_disable, extended_timeout): max_retry = MAX_ATTEMPS_REQUEST if self.pluginconf.pluginConf["PluginRetrys"] else 1 for attempt in range(1, (max_retry + 1)): @@ -743,19 +749,18 @@ async def _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, self.log.logging("TransportZigpy", "Debug", f"_send_and_retry: {_ieee} {Profile} {Cluster} - Expect_Reply: {ack_is_disable} extended_timeout: {extended_timeout} Attempts: {attempt}/{max_retry}") result, msg = await self.app.request(destination, Profile, Cluster, sEp, dEp, sequence, payload, expect_reply=not ack_is_disable, use_ieee=use_ieee, extended_timeout=extended_timeout) - except (asyncio.exceptions.CancelledError, asyncio.CancelledError, asyncio.exceptions.TimeoutError, asyncio.TimeoutError, AttributeError, asyncio.exceptions.CancelledError, asyncio.exceptions.TimeoutError, DeliveryError) as e: - self.log.logging("TransportZigpy", "Log", f"{Function} {_ieee}/0x{_nwkid} 0x{Profile} 0x{Cluster}:16 Ack: {ack_is_disable} RETRY: {attempt}/{max_retry} - {e}") + except (asyncio.exceptions.TimeoutError, asyncio.exceptions.CancelledError, AttributeError, DeliveryError) as e: + error_log_message = f"{Function} {_ieee}/0x{_nwkid} 0x{Profile} 0x{Cluster}:16 Ack: {ack_is_disable} RETRY: {attempt}/{max_retry} ({e})" + self.log.logging("TransportZigpy", "Log", error_log_message) - if attempt < max_retry: - # Slow down the throughput when too many commands. Try not to overload the coordinators - multi = 1.5 if self._currently_waiting_requests_list[_ieee] else 1 - await asyncio.sleep(multi * WAITING_TIME_BETWEEN_ATTEMPTS) + if await _retry_or_not(self, attempt, max_retry, Function, sequence, ack_is_disable, _ieee, _nwkid, destination, e): + self.statistics._reTx += 1 + if isinstance(e, asyncio.exceptions.TimeoutError): + self.statistics._TOdata += 1 continue - - # Stop here as we have exceed the max retrys - result = int(e.status) if hasattr(e, 'status') else 0xB6 - handle_transport_result(self, Function, sequence, result, ack_is_disable, _ieee, _nwkid, destination.lqi) - break + else: + self.statistics._ackKO += 1 + break else: # Success @@ -763,6 +768,19 @@ async def _send_and_retry(self, Function, destination, Profile, Cluster, _nwkid, self.log.logging("TransportZigpy", "Debug", f"transport_request: result: {result}") break +async def _retry_or_not(self, attempt, max_retry, Function, sequence,ack_is_disable, _ieee, _nwkid, destination , e): + if attempt < max_retry: + # Slow down the throughput when too many commands. Try not to overload the coordinators + multi = 1.5 if self._currently_waiting_requests_list[_ieee] else 1 + await asyncio.sleep(multi * WAITING_TIME_BETWEEN_ATTEMPTS) + return True + + # Stop here as we have exceed the max retrys + result = int(e.status) if hasattr(e, 'status') else 0xB6 + + handle_transport_result(self, Function, sequence, result, ack_is_disable, _ieee, _nwkid, destination.lqi) + return False + def handle_transport_result(self, Function, sequence, result, ack_is_disable, _ieee, _nwkid, lqi): self.log.logging("TransportZigpy", "Debug", f"handle_transport_result - {Function} - {_nwkid} - Ack: {ack_is_disable} Result: {result}") diff --git a/plugin.py b/plugin.py index d408ed02c..8ba23ea2a 100644 --- a/plugin.py +++ b/plugin.py @@ -546,7 +546,7 @@ def onStart(self): self.log.logging("Plugin", "Debug", "IEEE2NWK after checkListOfDevice2Devices : " + str(self.IEEE2NWK)) # Create Statistics object - self.statistics = TransportStatistics(self.pluginconf, self.log) + self.statistics = TransportStatistics(self.pluginconf, self.log, self.zigbee_communication) # Connect to Coordinator only when all initialisation are properly done. self.log.logging("Plugin", "Status", "Z4D configured to use transport mode: %s" % self.transport) From d343850148b69b0df3895d0b12e11fb673a86a5a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 5 May 2024 15:29:49 +0200 Subject: [PATCH 287/301] Plugin wip-develop version 7.2.091 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 651117d73..edaec8e1a 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.090"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.091"} \ No newline at end of file From d75089d35710043b77d50b112590829f363467b3 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Sun, 5 May 2024 17:31:25 +0200 Subject: [PATCH 288/301] discover correctly blind under groups (#1736) * set the correct widget type for BlindPercentage and remove logs --- Classes/GroupMgtv2/GrpDomoticz.py | 137 ++++++++++++++++-------------- 1 file changed, 71 insertions(+), 66 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index 86072a8c1..30c275c79 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -36,8 +36,9 @@ "Plug": (244, 73, 0), "Switch": (244, 73, 0), "LvlControl": (244, 73, 7), - "BlindPercentInverted": (244, 73, 16), - "WindowCovering": (244, 73, 16), + "BlindPercentInverted": (244, 73, 13), + "BlindPercent": (244, 73, 13), + "WindowCovering": (244, 73, 13), "Venetian": (244, 73, 15), "VenetianInverted": (244, 73, 15), "ColorControlWW": (241, 8, 7), @@ -61,6 +62,19 @@ } +CLUSTER_MAPPING = { + "Switch": "0006", + "Plug": "0006", + "LvlControl": "0008", + "ColorControlWW": "0300", + "ColorControlRGB": "0300", + "ColorControlRGBWW": "0300", + "ColorControl": "0300", + "ColorControlFull": "0300", + "Venetian": "0102", + "WindowCovering": "0102", + "VenetianInverted": "0102", +} def create_domoticz_group_device(self, GroupName, GroupId): """ Create Device for just created group in Domoticz. """ @@ -171,22 +185,7 @@ def get_typename(self, Type_, Subtype_, SwitchType_): def best_group_widget(self, GroupId): - # WIDGETS = { - # 'Plug':1, # ( 244, 73, 0) - # 'Switch':1, # ( 244, 73, 0) - # 'LvlControl':2, # ( 244, 73, 7) - # 'ColorControlWW':3, # ( 241, 8, 7) - Cold white + warm white - # 'ColorControlRGB':3, # ( 241, 2, 7) - RGB - # 'ColorControlRGBWW':4, # ( 241, 4, 7) - RGB + cold white + warm white, either RGB or white can be lit - # 'ColorControl':5, # ( 241, 7, 7) - Like RGBWW, but allows combining RGB and white - # 'ColorControlFull':5, # ( 241, 7, 7) - Like RGBWW, but allows combining RGB and white - # 'Venetian': 10, # ( 244, 73, 15) # Shade, Venetian - # 'VenetianInverted': 11, # ( 244, 73, 15) - # 'WindowCovering': 12, # ( 244, 73, 16) # Venetian Blind EU - # 'BlindPercentInverted': 12, # ( 244, 73, 16) # Venetian Blind EU - # } - - GroupWidgetType = None + group_widget_type_candidate = None GroupWidgetStyle = None self.logging("Debug", "best_group_widget Device - %s" % str(self.ListOfGroups[GroupId]["Devices"])) @@ -202,72 +201,78 @@ def best_group_widget(self, GroupId): # We have some inconsistency ! continue - if "ClusterType" not in self.ListOfDevices[NwkId]["Ep"][devEp]: - # No widget associated + device_info = self.ListOfDevices.get(NwkId) + device_ep_info = self.ListOfDevices.get(NwkId, {}).get("Ep", {}).get(devEp, {}) + if "ClusterType" not in device_ep_info: continue - for DomoDeviceUnit in self.ListOfDevices[NwkId]["Ep"][devEp]["ClusterType"]: - WidgetType = self.ListOfDevices[NwkId]["Ep"][devEp]["ClusterType"][DomoDeviceUnit] - self.logging("Debug", "------------ GroupWidget: %s WidgetType: %s" % (GroupWidgetType, WidgetType)) - - if "BlindInverted" in self.ListOfDevices[NwkId]["Type"] and WidgetType == "LvlControl": - # Blinds control via cluster 0x0008 - GroupWidgetStyle = "BlindPercentInverted" - GroupWidgetType = "LvlControl" - break + GroupWidgetStyle, group_widget_type_candidate = screen_device_list(self, NwkId, device_info, device_ep_info, GroupWidgetStyle, group_widget_type_candidate) + self.logging( "Debug", f"best_group_widget {NwkId} {devEp} {iterIEEE} --> {GroupWidgetStyle} {group_widget_type_candidate}") - elif "Blind" in self.ListOfDevices[NwkId]["Type"] and WidgetType == "LvlControl": - # Blinds control via cluster 0x0008 - GroupWidgetStyle = "BlindPercent" - GroupWidgetType = "LvlControl" - break + # If GroupWidgetStyle is set then we stop here + if GroupWidgetStyle in ( "BlindPercentInverted", "BlindPercent", "VenetianInverted"): + break + + if group_widget_type_candidate is None: + group_widget_type_candidate = "ColorControlFull" + + self.ListOfGroups[GroupId]["GroupWidgetType"] = group_widget_type_candidate - if WidgetType in ("VenetianInverted", "VanneInverted", "CurtainInverted"): - # Those widgets are commanded via cluster Level Control - GroupWidgetStyle = "VenetianInverted" - GroupWidgetType = "LvlControl" - break + # Update Tradfri Remote color mode + self.ListOfGroups[GroupId].get("Tradfri Remote", {}).setdefault("Color Mode", group_widget_type_candidate) - if WidgetType == GroupWidgetType: - continue + # Update Cluster based on WidgetStyle + self.ListOfGroups[GroupId]["Cluster"] = CLUSTER_MAPPING.get(group_widget_type_candidate, "") - GroupWidgetType = my_best_widget_offer(self, WidgetType, GroupWidgetType) + self.logging( "Debug", "best_group_widget for GroupId: %s Found WidgetType: %s Widget: %s" % ( + GroupId, group_widget_type_candidate, WIDGET_STYLE.get(group_widget_type_candidate, WIDGET_STYLE["ColorControlFull"])), ) - if GroupWidgetType is None: - GroupWidgetType = "ColorControlFull" + if GroupWidgetStyle is None: + GroupWidgetStyle = group_widget_type_candidate + + self.ListOfGroups[GroupId]["GroupWidgetStyle"] = GroupWidgetStyle + + return WIDGET_STYLE.get(GroupWidgetStyle, WIDGET_STYLE["ColorControlFull"]) - self.ListOfGroups[GroupId]["GroupWidgetType"] = GroupWidgetType - # Update Tradfri Remote color mode - self.ListOfGroups[GroupId].get("Tradfri Remote", {}).setdefault("Color Mode", GroupWidgetType) +def screen_device_list(self, NwkId, device_info, device_ep_info, GroupWidgetStyle, group_widget_type_candidate): + + for DomoDeviceUnit, device_widget_type in device_ep_info["ClusterType"].items(): + self.logging("Debug", f"------------screen_device_list {NwkId} DomoDeviceUnit: {DomoDeviceUnit} device_widget_type: {device_widget_type}" ) + if (device_widget_type is None): + continue - # Update Cluster based on WidgetStyle - if GroupWidgetType in ("Switch", "Plug"): - self.ListOfGroups[GroupId]["Cluster"] = "0006" + self.logging("Debug", f"------------screen_device_list {NwkId} group_widget_type_candidate: {group_widget_type_candidate} device_widget_type: {device_widget_type}" ) - elif GroupWidgetType == "LvlControl": - self.ListOfGroups[GroupId]["Cluster"] = "0008" + if device_widget_type == "LvlControl": + device_type = device_ep_info.get("Type") or device_info.get("Type") + if device_type is not None: + device_type = device_type.split('/') + self.logging("Debug", f"------------screen_device_list {NwkId} device_ep_type: {device_type}" ) - elif GroupWidgetType in ("ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"): - self.ListOfGroups[GroupId]["Cluster"] = "0300" + if "BlindInverted" in device_type: + # Blinds control via cluster 0x0008 + self.logging("Debug", "------------screen_device_list - Found BlindInverted!!") + return "BlindPercentInverted", "LvlControl" - elif GroupWidgetType in ("Venetian", "WindowCovering", "VenetianInverted"): - self.ListOfGroups[GroupId]["Cluster"] = "0102" + elif "Blind" in device_type: + # Blinds control via cluster 0x0008 + self.logging("Debug", "------------screen_device_list - Found Blind!!") + return "BlindPercent", "LvlControl" - else: - self.ListOfGroups[GroupId]["Cluster"] = "" + if device_widget_type in ("VenetianInverted", "VanneInverted", "CurtainInverted"): + # Those widgets are commanded via cluster Level Control + return "VenetianInverted", "LvlControl" - self.logging( "Debug", "best_group_widget for GroupId: %s Found WidgetType: %s Widget: %s" % ( - GroupId, GroupWidgetType, WIDGET_STYLE.get(GroupWidgetType, WIDGET_STYLE["ColorControlFull"])), ) + if (device_widget_type == group_widget_type_candidate): + continue - if GroupWidgetStyle is None: - GroupWidgetStyle = GroupWidgetType + group_widget_type_candidate = my_best_widget_offer(self, device_widget_type, group_widget_type_candidate) + self.logging("Debug", f"------------screen_device_list - Found from my_best_widget_offer {group_widget_type_candidate}") - self.ListOfGroups[GroupId]["GroupWidgetStyle"] = GroupWidgetType - - return WIDGET_STYLE.get(GroupWidgetStyle, WIDGET_STYLE["ColorControlFull"]) + return GroupWidgetStyle, group_widget_type_candidate - + WIDGET_STYLE_RULES = { "Switch": {"Plug", "LvlControl", "ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"}, "Plug": {"Plug", "LvlControl", "ColorControlWW", "ColorControlRGB", "ColorControlRGBWW", "ColorControl", "ColorControlFull"}, From 39a89d71027dbd7ea0cf55efbe9d741486f12a6c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 5 May 2024 17:32:18 +0200 Subject: [PATCH 289/301] Plugin wip-develop version 7.2.092 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index edaec8e1a..37829d1f9 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.091"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.092"} \ No newline at end of file From 5d9dad70ec640a9231ec3aab8b3464294aebc4aa Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 6 May 2024 10:43:32 +0200 Subject: [PATCH 290/301] fix codefacor --- Classes/OTA.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/OTA.py b/Classes/OTA.py index 1f88874e5..b3dc08e36 100644 --- a/Classes/OTA.py +++ b/Classes/OTA.py @@ -1431,7 +1431,7 @@ def convert_ikea_format_to_list(zigbee_ikea_index): def check_ota_availability_from_index( self, manufcode, imagetype, fileversion ): if self.zigbee_ota_index is None: - return None + return None logging(self, "Debug", "check_ota_availability_from_index: Index Size: %s Searching ImageType: 0x%04x (%s) Version: 0x%08x (%s) ManufCode: 0x%04x (%s)" %( len(self.zigbee_ota_index), manufcode, manufcode, imagetype, imagetype, fileversion, fileversion)) From 481a48a43f8e1e2bc50a01beb2045a0c47fc2931 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 6 May 2024 13:26:45 +0200 Subject: [PATCH 291/301] implement a specific low cost REST API for plugin ping --- Classes/WebServer/WebServer.py | 12 ++++++++++-- Classes/WebServer/dispatcher.py | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 04e2fa9a9..c9d69b2ef 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -227,12 +227,20 @@ def update_groupManagement(self, groupmanagement): self.groupmgt = groupmanagement if groupmanagement else None def update_OTA(self, OTA): - self.OTA = OTA if OTA else None + self.OTA = OTA or None def setZigateIEEE(self, ZigateIEEE): - self.ControllerIEEE = ZigateIEEE + + def rest_plugin_ping(self, verb, data, parameters): + _response = prepResponseMessage(self, setupHeadersResponse()) + _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" + if verb == "GET": + _response["Data"] = json.dumps({"pong":"ok"}, sort_keys=True) + return _response + + def rest_plugin_health(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) diff --git a/Classes/WebServer/dispatcher.py b/Classes/WebServer/dispatcher.py index a51f6e791..fb674a1e7 100644 --- a/Classes/WebServer/dispatcher.py +++ b/Classes/WebServer/dispatcher.py @@ -44,6 +44,7 @@ def setup_list_rest_commands( self ): ( {"Name": "ota-firmware-list", "Verbs": {"GET"}, "function": self.rest_ota_firmware_list} ), ( {"Name": "ota-firmware-update", "Verbs": {"PUT"}, "function": self.rest_ota_firmware_update } ), ( {"Name": "permit-to-join", "Verbs": {"GET", "PUT"}, "function": self.rest_PermitToJoin} ), + ( {"Name": "plugin-ping", "Verbs": {"GET"}, "function": self.rest_plugin_ping} ), ( {"Name": "plugin-health", "Verbs": {"GET"}, "function": self.rest_plugin_health} ), ( {"Name": "plugin-log", "Verbs": {"GET"}, "function": self.rest_logPlugin} ), ( {"Name": "plugin-upgrade", "Verbs": {"GET"}, "function": self.rest_plugin_upgrade} ), From 957832c56dc06ab6a6d042751217d92eb66af131 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 6 May 2024 13:27:53 +0200 Subject: [PATCH 292/301] Python script to check if the plugin is alive --- Tools/plugin-ping.py | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Tools/plugin-ping.py diff --git a/Tools/plugin-ping.py b/Tools/plugin-ping.py new file mode 100644 index 000000000..10e67d441 --- /dev/null +++ b/Tools/plugin-ping.py @@ -0,0 +1,52 @@ +import argparse +import requests +import time +import sys + +# PLUGIN_PING = "rest-z4d/1/health" +PLUGIN_PING = "rest-z4d/1/plugin-ping" + +def check_zigbee_plugin_alive(ip, port, silent=False): + """ + Check if the Zigbee for Domoticz plugin is alive via a REST API. + + Args: + ip (str): The IP address of the server running the plugin. + port (str): The port number of the Zigbee plugin. + silent (bool): Whether to print status messages or not. Default is False. + + Returns: + bool: True if the plugin is alive, False otherwise. + """ + try: + response = requests.get(f"http://{ip}:{port}/{PLUGIN_PING}", timeout=1) + if response.status_code == 200: + if not silent: + print("The Zigbee for Domoticz plugin is alive!") + return True + else: + if not silent: + print("The Zigbee for Domoticz plugin is not alive.") + return False + except (requests.ConnectionError, requests.Timeout): + if not silent: + print("The Zigbee for Domoticz plugin is not alive.") + return False + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Monitor if the Zigbee for Domoticz plugin is alive.") + parser.add_argument("--ip", help="IP address of the server running the Zigbee plugin", default="127.0.0.1") + parser.add_argument("--port", help="Port number of the Zigbee plugin", default="9440") + parser.add_argument("--check_period", help="Time interval between checks in seconds", type=int, default=300) + parser.add_argument("--silent", help="Run in silent mode (no output except errors)", action="store_true") + args = parser.parse_args() + + ip = args.ip + port = args.port + check_period = args.check_period + silent = args.silent + + while True: + if not check_zigbee_plugin_alive(ip, port, silent): + sys.exit(1) # Exit with error code 1 if the plugin is not alive + time.sleep(check_period) # Sleep before next check From bfd6d1a21802174865973fd75aa20539d9d991c6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 6 May 2024 13:32:54 +0200 Subject: [PATCH 293/301] magic word and exit with 255 instead of 1 --- Tools/plugin-ping.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) mode change 100644 => 100755 Tools/plugin-ping.py diff --git a/Tools/plugin-ping.py b/Tools/plugin-ping.py old mode 100644 new mode 100755 index 10e67d441..3152e5bd5 --- a/Tools/plugin-ping.py +++ b/Tools/plugin-ping.py @@ -1,3 +1,15 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + import argparse import requests import time @@ -48,5 +60,5 @@ def check_zigbee_plugin_alive(ip, port, silent=False): while True: if not check_zigbee_plugin_alive(ip, port, silent): - sys.exit(1) # Exit with error code 1 if the plugin is not alive + sys.exit(-1) # Exit with error code 1 if the plugin is not alive time.sleep(check_period) # Sleep before next check From e51de30ce47c568513f7ee77be33c3248d812d43 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 6 May 2024 19:25:07 +0200 Subject: [PATCH 294/301] replace pong:ok by status=Ok --- Classes/WebServer/WebServer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index c9d69b2ef..414596e94 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -237,7 +237,7 @@ def rest_plugin_ping(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) _response["Headers"]["Content-Type"] = "application/json; charset=utf-8" if verb == "GET": - _response["Data"] = json.dumps({"pong":"ok"}, sort_keys=True) + _response["Data"] = json.dumps({"status":"Ok"}, sort_keys=True) return _response From e56550187cc2c84ab3cfd551ec05008746e1c495 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 7 May 2024 11:43:17 +0200 Subject: [PATCH 295/301] report RSSI on /zdevice znd /zdevice-name --- Classes/WebServer/WebServer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 414596e94..e42ce3623 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -874,7 +874,7 @@ def rest_zDevice_name(self, verb, data, parameters): continue device = {"_NwkId": x} - for item in ( "CheckParam", "Param", "ZDeviceName", "IEEE", "Model", "MacCapa", "Status", "ConsistencyCheck", "Health", "LQI", "Battery", "CertifiedDevice" ): + for item in ( "CheckParam", "Param", "ZDeviceName", "IEEE", "Model", "MacCapa", "Status", "ConsistencyCheck", "Health", "LQI", "RSSI", "Battery", "CertifiedDevice" ): if item not in self.ListOfDevices[x]: if item == "Param": device[item] = str({}) @@ -1040,6 +1040,7 @@ def rest_zDevice(self, verb, data, parameters): "Status", "Battery", "LQI", + "RSSI", "Model", "IEEE", "ProfileID", From 3187ce38575012f704fda1eda236753c03734832 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 7 May 2024 12:51:44 +0200 Subject: [PATCH 296/301] add WebUIReactTime parameter --- Classes/PluginConf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index a948101e3..1e15f9c8a 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -309,6 +309,7 @@ "Tuya": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Tuya0601": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "TuyaTS011F": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "WebUIReactTime": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WebServer": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Widget": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "WidgetCreation": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, From 42e3ba61bee27c8e6358fa1dbd5863dfdfc1c4e6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 7 May 2024 12:56:31 +0200 Subject: [PATCH 297/301] refactor and instrument for reaction time --- Classes/WebServer/onMessage.py | 268 +++++++++++++++++++-------------- 1 file changed, 156 insertions(+), 112 deletions(-) diff --git a/Classes/WebServer/onMessage.py b/Classes/WebServer/onMessage.py index 8e9de8094..e9178b804 100644 --- a/Classes/WebServer/onMessage.py +++ b/Classes/WebServer/onMessage.py @@ -6,6 +6,7 @@ import mimetypes import os import os.path +import time from datetime import datetime from pathlib import Path from time import gmtime, strftime @@ -18,107 +19,166 @@ domoticz_log_api, domoticz_status_api) +def measure_execution_time(func): + def wrapper(self, Connection, Data): + t_start = None + if self.pluginconf.pluginConf.get("WebUIReactTime", False): + t_start = int(1000 * time.time()) -def onMessage(self, Connection, Data): + try: + func(self, Connection, Data) - self.logging("Debug", "WebServer onMessage : %s" % Data) - # DumpHTTPResponseToLog(Data) + finally: + if t_start: + t_end = int(1000 * time.time()) + t_elapse = t_end - t_start + self.statistics.add_rxTiming(t_elapse) + _verb = Data['Verb'] if 'Verb' in Data else None + _url = Data['URL'] if 'URL' in Data else None + self.logging( "Log", f"| (onMessage WebUI) | {t_elapse} | {_verb} | {_url}") + return wrapper - headerCode = "200 OK" - if "Verb" not in Data: - domoticz_error_api("Invalid web request received, no Verb present") - headerCode = "400 Bad Request" - elif Data["Verb"] not in ("GET", "PUT", "POST", "DELETE"): - domoticz_error_api("Invalid web request received, only GET requests allowed (" + Data["Verb"] + ")") - headerCode = "405 Method Not Allowed" +@measure_execution_time +def onMessage(self, Connection, Data): + self.logging("Debug", f"WebServer onMessage: {Data}") - elif "URL" not in Data: - domoticz_error_api("Invalid web request received, no URL present") - headerCode = "400 Bad Request" + headerCode = check_header(Data) + self.logging("Debug", f"onMessage - headerCode: {headerCode}") - parsed_url = urlparse(Data["URL"]) - self.logging("Debug", "URL: %s , Path: %s" % (Data["URL"], parsed_url.path)) - if Data["URL"][0] == "/": - parsed_query = Data["URL"][1:].split("/") + if headerCode != "200 OK": + self.sendResponse(Connection, {"Status": headerCode}) + return - else: - parsed_query = Data["URL"].split("/") + url, parsed_url, parsed_query = parse_and_decode_query(Data) + cookie = Data["Headers"].get("Cookie") + Data.setdefault("Data", None) - self.logging("Debug", "parsed_query: %s" % (str(parsed_query))) + if handle_rest_api(self, Connection, Data, parsed_query): + return - # Any Cookie ? - cookie = None - if "Cookie" in Data["Headers"]: - cookie = Data["Headers"]["Cookie"] + if handle_download( parsed_query, parsed_url): + return - if "Data" not in Data: - Data["Data"] = None + webFilename = get_web_filename(self, url, parsed_query, parsed_url) + if not os.path.isfile(webFilename): + webFilename = redirect_to_index_html(self) - if headerCode != "200 OK": - self.sendResponse(Connection, {"Status": headerCode}) - return + response_headers = prepare_response_headers(self,cookie) + _response = setupHeadersResponse(cookie) + _response["Headers"].update(response_headers) - url = Data["URL"] - if len(parsed_query) >= 3 and parsed_query[0] in ["rest-z4d", "rest-zigate"]: - self.logging( "Debug", "Receiving a REST API - Version: %s, Verb: %s, Command: %s, Param: %s" % ( - parsed_query[1], Data["Verb"], parsed_query[2], parsed_query[3:]), ) - if parsed_query[0] == "rest-z4d" or parsed_query[0] == "rest-zigate" and parsed_query[1] == "1": - # API Version 1 - self.do_rest(Connection, Data["Verb"], Data["Data"], parsed_query[1], parsed_query[2], parsed_query[3:]) - else: - domoticz_error_api("Unknown API %s" % parsed_query) - headerCode = "400 Bad Request" - self.sendResponse(Connection, {"Status": headerCode}) + self.logging("Debug", f"Opening: {webFilename}") + + _last_modified = get_last_modified(webFilename) + set_referer_header(self, Data, _response) + + if get_from_cache_or_send(self, Connection, webFilename, Data, _last_modified, _response): return - - elif parsed_query[0] == 'download': - # we have to serve a file for download purposes, let's remove '/download' to get the filename to access - webFilename = parsed_url.path[len('/download'):] + if "Ranges" in Data["Headers"]: + get_range_and_send(self, Connection, webFilename, Data, _response) else: - # Finaly we simply has to serve a File. - _homedir = Path( self.homedirectory ) - webFilename = _homedir / ("www" + url) - self.logging("Debug", "webFilename: %s" % webFilename) - - if not os.path.isfile(webFilename): - _homedir = Path( self.homedirectory ) - webFilename = _homedir / "www/z4d/index.html" - self.logging("Debug", "Redirecting to /z4d/index.html") + send_file(self, Connection, webFilename, Data, _last_modified, _response) - # We are ready to send the response - _response = setupHeadersResponse(cookie) - if self.pluginconf.pluginConf["enableKeepalive"]: - _response["Headers"]["Connection"] = "Keep-alive" +def handle_rest_api(self, Connection, Data, parsed_query): + if len(parsed_query) < 3 or parsed_query[0] not in ["rest-z4d","rest-zigate",]: + return False + api_version = parsed_query[1] + verb = Data.get("Verb") + command = parsed_query[2] + params = parsed_query[3:] + self.logging("Debug", f"Receiving a REST API - Version: {api_version}, Verb: {verb}, Command: {command}, Params: {params}") + + if parsed_query[0] in ["rest-z4d", "rest-zigate"] and api_version == "1": + self.do_rest(Connection, verb, Data.get("Data"), api_version, command, params) else: - _response["Headers"]["Connection"] = "Close" - if not self.pluginconf.pluginConf["enableCache"]: - _response["Headers"]["Cache-Control"] = "no-cache, no-store, must-revalidate" - _response["Headers"]["Pragma"] = "no-cache" - _response["Headers"]["Expires"] = "0" - _response["Headers"]["Accept"] = "*/*" + domoticz_error_api(f"Unknown API {parsed_query}") + self.sendResponse(Connection, {"Status": "400 Bad Request"}) + return True + + +def handle_download( parsed_query, parsed_url): + return parsed_query[0] == 'download' + + +def get_web_filename(self, url, parsed_query, parsed_url): + if parsed_query[0] == 'download': + webFilename = parsed_url.path[len('/download'):] else: - _response["Headers"]["Cache-Control"] = "private" + _homedir = Path(self.homedirectory) + webFilename = _homedir / ("www" + url) + self.logging("Debug", f"webFilename: {webFilename}") + return webFilename + + +def redirect_to_index_html(self): + _homedir = Path(self.homedirectory) + webFilename = _homedir / "www/z4d/index.html" + self.logging("Debug", "Redirecting to /z4d/index.html") + return webFilename - self.logging("Debug", "Opening: %s" % webFilename) - currentVersionOnServer = os.path.getmtime(webFilename) - _lastmodified = strftime("%a, %d %m %y %H:%M:%S GMT", gmtime(currentVersionOnServer)) +def prepare_response_headers(self, cookie): + return { + "Connection": ( + "Keep-alive" + if self.pluginconf.pluginConf["enableKeepalive"] + else "Close" + ), + "Cache-Control": ( + "private" + if self.pluginconf.pluginConf["enableCache"] + else "no-cache, no-store, must-revalidate" + ), + "Pragma": ( + "" if self.pluginconf.pluginConf["enableCache"] else "no-cache" + ), + "Expires": "" if self.pluginconf.pluginConf["enableCache"] else "0", + "Accept": "" if self.pluginconf.pluginConf["enableCache"] else "*/*", + } - # Check Referrrer + +def get_last_modified(webFilename): + current_version_on_server = os.path.getmtime(webFilename) + return strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime(current_version_on_server)) + + +def set_referer_header(self, Data, _response): if "Referer" in Data["Headers"]: - self.logging("Debug", "Set Referer: %s" % Data["Headers"]["Referer"]) _response["Headers"]["Referer"] = Data["Headers"]["Referer"] - # Can we use Cache if exists - if get_from_cache_if_available( self, Connection, webFilename, Data, _lastmodified, _response): - return - if "Ranges" in Data["Headers"]: - get__range_and_send(self,Connection, webFilename, Data, _response ) +def get_from_cache_or_send(self, Connection, webFilename, Data, _last_modified, _response): + return bool( + get_from_cache_if_available( + self, Connection, webFilename, Data, _last_modified, _response + ) + ) + + +def parse_and_decode_query( Data ): + url = Data["URL"] + parsed_url = urlparse(Data["URL"]) + if Data["URL"][0] == "/": + parsed_query = Data["URL"][1:].split("/") else: - send_file( self, Connection, webFilename, Data, _lastmodified, _response) + parsed_query = Data["URL"].split("/") + return url, parsed_url, parsed_query + + +def check_header( Data): + if "Verb" not in Data: + domoticz_error_api("Invalid web request received, no Verb present") + return "400 Bad Request" + elif Data["Verb"] not in ("GET", "PUT", "POST", "DELETE"): + domoticz_error_api("Invalid web request received, only GET requests allowed (" + Data["Verb"] + ")") + return "405 Method Not Allowed" + elif "URL" not in Data: + domoticz_error_api("Invalid web request received, no URL present") + return "400 Bad Request" + return "200 OK" + def send_file(self, Connection, webFilename, Data, _lastmodified, _response): self.logging( "Debug", "send_file %s %s" %(webFilename, _response)) @@ -128,9 +188,7 @@ def send_file(self, Connection, webFilename, Data, _lastmodified, _response): _response["Data"] = webFile.read() _contentType, _contentEncoding = mimetypes.guess_type(Data["URL"]) - self.logging( "Debug", "--- _contentType %s" %_contentType) - self.logging( "Debug", "--- _contentEncoding %s" %_contentEncoding) - + if _contentType is None: filename, file_extension = os.path.splitext(webFilename) EXTENSION_MIME_TYPE = { @@ -149,9 +207,6 @@ def send_file(self, Connection, webFilename, Data, _lastmodified, _response): if file_extension in EXTENSION_MIME_TYPE: _contentType = EXTENSION_MIME_TYPE[ file_extension ] - self.logging( "Debug", "--- _contentType %s" %_contentType) - self.logging( "Debug", "--- _contentEncoding %s" %_contentEncoding) - if _contentType: _response["Headers"]["Content-Type"] = _contentType + "; charset=utf-8" if _contentEncoding: @@ -160,62 +215,51 @@ def send_file(self, Connection, webFilename, Data, _lastmodified, _response): _response["Status"] = "200 OK" if "Accept-Encoding" in Data["Headers"]: - #self.logging( "Debug", "send_file sendResponse %s %s" %(webFilename, _response)) self.sendResponse(Connection, _response, AcceptEncoding=Data["Headers"]["Accept-Encoding"]) else: - #self.logging( "Debug", "send_file sendResponse %s %s" %(webFilename, _response)) self.sendResponse(Connection, _response) - -def get__range_and_send(self,Connection, webFilename, Data, _response ): + + +def get_range_and_send(self, Connection, webFilename, Data, _response): self.logging("Debug", "Ranges processing") + RangeProcess = Data["Headers"]["Range"] fileStartPosition = int(RangeProcess[RangeProcess.find("=") + 1 : RangeProcess.find("-")]) + messageFileSize = os.path.getsize(webFilename) messageFile = open(webFilename, mode="rb") messageFile.seek(fileStartPosition) + fileContent = messageFile.read(MAX_KB_TO_SEND) + self.logging( "Debug", - Connection.Address - + ":" - + Connection.Port - + " Sent 'GET' request file '" - + Data["URL"] - + "' from position " - + str(fileStartPosition) - + ", " - + str(len(fileContent)) - + " bytes will be returned", + f"{Connection.Address}:{Connection.Port} Sent 'GET' request file '{Data['URL']}' from position {fileStartPosition}, {len(fileContent)} bytes will be returned", ) + _response["Status"] = "200 OK" if len(fileContent) == MAX_KB_TO_SEND: _response["Status"] = "206 Partial Content" - _response["Headers"]["Content-Range"] = ( - "bytes " + str(fileStartPosition) + "-" + str(messageFile.tell()) + "/" + str(messageFileSize) - ) - DumpHTTPResponseToLog(_response) + _response["Headers"]["Content-Range"] = f"bytes {fileStartPosition}-{messageFile.tell()}/{messageFileSize}" + Connection.Send(_response) + if not self.pluginconf.pluginConf["enableKeepalive"]: Connection.Disconnect() -def get_from_cache_if_available( self, Connection, webFilename, Data, _lastmodified, _response): + +def get_from_cache_if_available(self, Connection, webFilename, Data, _lastmodified, _response): if not self.pluginconf.pluginConf["enableCache"]: return False - + if "If-Modified-Since" not in Data["Headers"]: return False - - lastVersionInCache = Data["Headers"]["If-Modified-Since"] - self.logging("Debug", "InCache: %s versus Current: %s" % (lastVersionInCache, _lastmodified)) - if lastVersionInCache != _lastmodified: + + if Data["Headers"]["If-Modified-Since"] != _lastmodified: return False - + # No need to send it back - self.logging( - "Debug", - "User Caching - file: %s InCache: %s versus Current: %s" - % (webFilename, lastVersionInCache, _lastmodified), - ) + self.logging( "Debug", f"User Caching - file: {webFilename} InCache: {Data['Headers']['If-Modified-Since']} versus Current: {_lastmodified}" ) _response["Status"] = "304 Not Modified" self.sendResponse(Connection, _response) - return True + return True \ No newline at end of file From 05f5098d71745bb786d3cbcf7c88ca0dfeffdb52 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 7 May 2024 12:56:35 +0200 Subject: [PATCH 298/301] Plugin wip-develop version 7.2.093 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 37829d1f9..b5e19a5bb 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.092"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.093"} \ No newline at end of file From 3b5fbcc50a4dff859491ec119b796fddcebee8bb Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 8 May 2024 19:48:44 +0200 Subject: [PATCH 299/301] Move status to Debug --- Modules/checkingUpdate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/checkingUpdate.py b/Modules/checkingUpdate.py index 5ca8e0e80..d67c305f8 100644 --- a/Modules/checkingUpdate.py +++ b/Modules/checkingUpdate.py @@ -124,7 +124,7 @@ def is_zigate_firmware_available(self, currentMajorVersion, currentFirmwareVersi if not (availfirmMinor and currentFirmwareVersion): return False if int(availfirmMinor, 16) > int(currentFirmwareVersion, 16): - self.log.logging("Plugin", "Status", "Zigate Firmware update available") + self.log.logging("Plugin", "Debug", "Zigate Firmware update available") return True return False From 672cc56643695fc4678464626aa799f0d9553e6e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 8 May 2024 19:49:35 +0200 Subject: [PATCH 300/301] fix tab error --- plugin.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugin.py b/plugin.py index 8ba23ea2a..9149be408 100644 --- a/plugin.py +++ b/plugin.py @@ -1206,6 +1206,8 @@ def zigateInit_Phase3(self): self.log.logging("Plugin", "Debug", "let's update Mode3 is needed") self.domoticzdb_Hardware.disableErasePDM( self.WebUsername, self.WebPassword) + if self.InitPhase3: + return self.InitPhase3 = True @@ -1292,19 +1294,20 @@ def zigateInit_Phase3(self): restart_plugin_reset_ModuleIRCode(self, nwkid=None) firmware_messages = { - "03": "Z4D with Zigate coordinator, firmware %s communication confirmed.", - "04": "Z4D with Zigate coordinator, OptiPDM firmware %s communication confirmed.", - "05": "Z4D with Zigate+ coordinator, firmware %s communication confirmed." + "03": "Z4D with Zigate coordinator, firmware %s communication confirmed", + "04": "Z4D with Zigate coordinator, OptiPDM firmware %s communication confirmed", + "05": "Z4D with Zigate+ coordinator, firmware %s communication confirmed" } # Check if firmware major version exists in the dictionary if self.FirmwareMajorVersion in firmware_messages: message = firmware_messages[self.FirmwareMajorVersion] % self.FirmwareVersion self.log.logging("Plugin", "Status", message) + elif int(self.FirmwareBranch) >= 20: message = "Z4D with Zigpy, coordinator %s, firmware %s communication confirmed." % ( self.pluginParameters["CoordinatorModel"], self.pluginParameters["CoordinatorFirmwareVersion"]) - self.log.logging("Plugin", "Status", message) + self.log.logging("Plugin", "Status", message) # If firmware above 3.0d, Get Network State if (self.HeartbeatCount % (3600 // HEARTBEAT)) == 0 and self.transport != "None": From 5d42ad4cc0ddd1ef1bc340f394bd0877f63cce4c Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 8 May 2024 19:50:06 +0200 Subject: [PATCH 301/301] Plugin wip-develop version 7.2.094 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index b5e19a5bb..4529a72f9 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.093"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.094"} \ No newline at end of file

    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 literal 0 HcmV?d00001 diff --git a/www/z4d/index.html b/www/z4d/index.html index e010394ca..afc27b2c7 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -1,4 +1,6 @@ - + + + Zigbee for Domoticz @@ -10,7 +12,7 @@ - + |--!>|)/;const Rd=new Map;let Nd=0;const El="__ngContext__";function jo(f,S){ko(S)?(f[El]=S[20],function oh(f){Rd.set(f[20],f)}(S)):f[El]=S}let Hu;function Gu(f,S){return Hu(f,S)}function Uh(f){const S=f[3];return Fo(S)?S[3]:S}function Vu(f){return Sf(f[13])}function Uu(f){return Sf(f[4])}function Sf(f){for(;null!==f&&!Fo(f);)f=f[4];return f}function ah(f,S,F,tt,ct){if(null!=tt){let ft,Tt=!1;Fo(tt)?ft=tt:ko(tt)&&(Tt=!0,tt=tt[0]);const Nt=to(tt);0===f&&null!==F?null==ct?qu(S,F,Nt):Ql(S,F,Nt,ct||null,!0):1===f&&null!==F?Ql(S,F,Nt,ct||null,!0):2===f?Ud(S,Nt,Tt):3===f&&S.destroyNode(Nt),null!=ft&&function $h(f,S,F,tt,ct){const ft=F[7];ft!==to(F)&&ah(S,f,tt,ft,ct);for(let Nt=10;NtS.replace(Nu,"\u200b$1\u200b"))}(S))}function lh(f,S,F){return f.createElement(S,F)}function jd(f,S){const F=f[9],tt=F.indexOf(S),ct=S[3];512&S[2]&&(S[2]&=-513,$s(ct,-1)),F.splice(tt,1)}function nl(f,S){if(f.length<=10)return;const F=10+S,tt=f[F];if(tt){const ct=tt[17];null!==ct&&ct!==f&&jd(ct,tt),S>0&&(f[F-1][4]=tt[4]);const ft=jt(f,10+S);!function Xu(f,S){ic(f,S,S[11],2,null,null),S[0]=null,S[6]=null}(tt[1],tt);const Tt=ft[19];null!==Tt&&Tt.detachView(ft[1]),tt[3]=null,tt[4]=null,tt[2]&=-65}return tt}function $u(f,S){if(!(128&S[2])){const F=S[11];F.destroyNode&&ic(f,S,F,3,null,null),function Zu(f){let S=f[13];if(!S)return Hd(f[1],f);for(;S;){let F=null;if(ko(S))F=S[13];else{const tt=S[10];tt&&(F=tt)}if(!F){for(;S&&!S[4]&&S!==f;)ko(S)&&Hd(S[1],S),S=S[3];null===S&&(S=f),ko(S)&&Hd(S[1],S),F=S&&S[4]}S=F}}(S)}}function Hd(f,S){if(!(128&S[2])){S[2]&=-65,S[2]|=128,function Mf(f,S){let F;if(null!=f&&null!=(F=f.destroyHooks))for(let tt=0;tt=0?tt[ct=Tt]():tt[ct=-Tt].unsubscribe(),ft+=2}else{const Tt=tt[ct=F[ft+1]];F[ft].call(Tt)}if(null!==tt){for(let ft=ct+1;ft-1){const{encapsulation:ft}=f.data[tt.directiveStart+ct];if(ft===hn.None||ft===hn.Emulated)return null}return Eo(tt,F)}}function Ql(f,S,F,tt,ct){f.insertBefore(S,F,tt,ct)}function qu(f,S,F){f.appendChild(S,F)}function Ju(f,S,F,tt,ct){null!==tt?Ql(f,S,F,tt,ct):qu(f,S,F)}function br(f,S){return f.parentNode(S)}function tp(f,S,F){return Rr(f,S,F)}function tc(f,S,F){return 40&f.type?Eo(f,F):null}let hh,Na,Kh,uh,Rr=tc;function Yh(f,S){Rr=f,hh=S}function ec(f,S,F,tt){const ct=Fc(f,tt,S),ft=S[11],Nt=tp(tt.parent||S[6],tt,S);if(null!=ct)if(Array.isArray(F))for(let Vt=0;Vtf,createScript:f=>f,createScriptURL:f=>f})}catch{}return Na}()?.createHTML(f)||f}function Of(f){Kh=f}function ip(){return void 0!==Kh?Kh:typeof document<"u"?document:void 0}function qh(){if(void 0===uh&&(uh=null,xt.trustedTypes))try{uh=xt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:f=>f,createScript:f=>f,createScriptURL:f=>f})}catch{}return uh}function np(f){return qh()?.createHTML(f)||f}function ol(f){return qh()?.createScriptURL(f)||f}class Al{constructor(S){this.changingThisBreaksApplicationSecurity=S}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${g})`}}class Jh extends Al{getTypeName(){return"HTML"}}class op extends Al{getTypeName(){return"Style"}}class Qh extends Al{getTypeName(){return"Script"}}class _s extends Al{getTypeName(){return"URL"}}class $d extends Al{getTypeName(){return"ResourceURL"}}function da(f){return f instanceof Al?f.changingThisBreaksApplicationSecurity:f}function Ol(f,S){const F=function rp(f){return f instanceof Al&&f.getTypeName()||null}(f);if(null!=F&&F!==S){if("ResourceURL"===F&&"URL"===S)return!0;throw new Error(`Required a safe ${S}, got a ${F} (see ${g})`)}return F===S}function Kd(f){return new Jh(f)}function Pf(f){return new op(f)}function Fa(f){return new Qh(f)}function td(f){return new _s(f)}function sp(f){return new $d(f)}function ap(f){const S=new ed(f);return function lp(){try{return!!(new window.DOMParser).parseFromString(Cr(""),"text/html")}catch{return!1}}()?new If(S):S}class If{constructor(S){this.inertDocumentHelper=S}getInertBodyElement(S){S=""+S;try{const F=(new window.DOMParser).parseFromString(Cr(S),"text/html").body;return null===F?this.inertDocumentHelper.getInertBodyElement(S):(F.removeChild(F.firstChild),F)}catch{return null}}}class ed{constructor(S){if(this.defaultDoc=S,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const F=this.inertDocument.createElement("html");this.inertDocument.appendChild(F);const tt=this.inertDocument.createElement("body");F.appendChild(tt)}}getInertBodyElement(S){const F=this.inertDocument.createElement("template");if("content"in F)return F.innerHTML=Cr(S),F;const tt=this.inertDocument.createElement("body");return tt.innerHTML=Cr(S),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(tt),tt}stripCustomNsAttrs(S){const F=S.attributes;for(let ct=F.length-1;0"),!0}endElement(S){const F=S.nodeName.toLowerCase();Jd.hasOwnProperty(F)&&!Gc.hasOwnProperty(F)&&(this.buf.push(""))}chars(S){this.buf.push(Qd(S))}checkClobberedElement(S,F){if(F&&(S.compareDocumentPosition(F)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${S.outerHTML}`);return F}}const Nf=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,km=/([^\#-~ |!])/g;function Qd(f){return f.replace(/&/g,"&").replace(Nf,function(S){return"&#"+(1024*(S.charCodeAt(0)-55296)+(S.charCodeAt(1)-56320)+65536)+";"}).replace(km,function(S){return"&#"+S.charCodeAt(0)+";"}).replace(//g,">")}let sl;function Ff(f,S){let F=null;try{sl=sl||ap(f);let tt=S?String(S):"";F=sl.getInertBodyElement(tt);let ct=5,ft=tt;do{if(0===ct)throw new Error("Failed to sanitize html because the input is unstable");ct--,tt=ft,ft=F.innerHTML,F=sl.getInertBodyElement(tt)}while(tt!==ft);return Cr((new Mm).sanitizeChildren(tu(F)||F))}finally{if(F){const tt=tu(F)||F;for(;tt.firstChild;)tt.removeChild(tt.firstChild)}}}function tu(f){return"content"in f&&function ph(f){return f.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===f.nodeName}(f)?f.content:null}var Po=(()=>((Po=Po||{})[Po.NONE=0]="NONE",Po[Po.HTML=1]="HTML",Po[Po.STYLE=2]="STYLE",Po[Po.SCRIPT=3]="SCRIPT",Po[Po.URL=4]="URL",Po[Po.RESOURCE_URL=5]="RESOURCE_URL",Po))();function fh(f){const S=Yt();return S?np(S.sanitize(Po.HTML,f)||""):Ol(f,"HTML")?np(da(f)):Ff(ip(),C(f))}function gh(f){const S=Yt();return S?S.sanitize(Po.URL,f)||"":Ol(f,"URL")?da(f):qd(C(f))}function oc(f){const S=Yt();if(S)return ol(S.sanitize(Po.RESOURCE_URL,f)||"");if(Ol(f,"ResourceURL"))return ol(da(f));throw new T(904,!1)}function q(f,S,F){return function yt(f,S){return"src"===S&&("embed"===f||"frame"===f||"iframe"===f||"media"===f||"script"===f)||"href"===S&&("base"===f||"link"===f)?oc:gh}(S,F)(f)}function Yt(){const f=ri();return f&&f[12]}const ge=new oo("ENVIRONMENT_INITIALIZER"),ke=new oo("INJECTOR",-1),Ie=new oo("INJECTOR_DEF_TYPES");class We{get(S,F=Qt){if(F===Qt){const tt=new Error(`NullInjectorError: No provider for ${ot(S)}!`);throw tt.name="NullInjectorError",tt}return F}}function Ke(f){return{\u0275providers:f}}function wi(...f){return{\u0275providers:gi(0,f),\u0275fromNgModule:!0}}function gi(f,...S){const F=[],tt=new Set;let ct;return It(S,ft=>{const Tt=ft;yn(Tt,F,[],tt)&&(ct||(ct=[]),ct.push(Tt))}),void 0!==ct&&Ai(ct,F),F}function Ai(f,S){for(let F=0;F{S.push(ft)})}}function yn(f,S,F,tt){if(!(f=W(f)))return!1;let ct=null,ft=ut(f);const Tt=!ft&&Re(f);if(ft||Tt){if(Tt&&!Tt.standalone)return!1;ct=f}else{const Vt=f.ngModule;if(ft=ut(Vt),!ft)return!1;ct=Vt}const Nt=tt.has(ct);if(Tt){if(Nt)return!1;if(tt.add(ct),Tt.dependencies){const Vt="function"==typeof Tt.dependencies?Tt.dependencies():Tt.dependencies;for(const te of Vt)yn(te,S,F,tt)}}else{if(!ft)return!1;{if(null!=ft.imports&&!Nt){let te;tt.add(ct);try{It(ft.imports,ae=>{yn(ae,S,F,tt)&&(te||(te=[]),te.push(ae))})}finally{}void 0!==te&&Ai(te,S)}if(!Nt){const te=xr(ct)||(()=>new ct);S.push({provide:ct,useFactory:te,deps:Ci},{provide:Ie,useValue:ct,multi:!0},{provide:ge,useValue:()=>Ue(ct),multi:!0})}const Vt=ft.providers;null==Vt||Nt||ln(Vt,ae=>{S.push(ae)})}}return ct!==f&&void 0!==f.providers}function ln(f,S){for(let F of f)N(F)&&(F=F.\u0275providers),Array.isArray(F)?ln(F,S):S(F)}const An=Y({provide:String,useValue:Y});function xn(f){return null!==f&&"object"==typeof f&&An in f}function dn(f){return"function"==typeof f}const no=new oo("Set Injector scope."),Tn={},ro={};let Yo;function vo(){return void 0===Yo&&(Yo=new We),Yo}class wr{}class Tr extends wr{constructor(S,F,tt,ct){super(),this.parent=F,this.source=tt,this.scopes=ct,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,sc(S,Tt=>this.processProvider(Tt)),this.records.set(ke,al(void 0,this)),ct.has("environment")&&this.records.set(wr,al(void 0,this));const ft=this.records.get(no);null!=ft&&"string"==typeof ft.value&&this.scopes.add(ft.value),this.injectorDefTypes=new Set(this.get(Ie.multi,Ci,At.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const S of this._ngOnDestroyHooks)S.ngOnDestroy();for(const S of this._onDestroyHooks)S()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(S){this._onDestroyHooks.push(S)}runInContext(S){this.assertNotDestroyed();const F=me(this),tt=Ct(void 0);try{return S()}finally{me(F),Ct(tt)}}get(S,F=Qt,tt=At.Default){this.assertNotDestroyed(),tt=ue(tt);const ct=me(this),ft=Ct(void 0);try{if(!(tt&At.SkipSelf)){let Nt=this.records.get(S);if(void 0===Nt){const Vt=function eu(f){return"function"==typeof f||"object"==typeof f&&f instanceof oo}(S)&&R(S);Nt=Vt&&this.injectableDefInScope(Vt)?al(ua(S),Tn):null,this.records.set(S,Nt)}if(null!=Nt)return this.hydrate(S,Nt)}return(tt&At.Self?vo():this.parent).get(S,F=tt&At.Optional&&F===Qt?null:F)}catch(Tt){if("NullInjectorError"===Tt.name){if((Tt[pe]=Tt[pe]||[]).unshift(ot(S)),ct)throw Tt;return function Ui(f,S,F,tt){const ct=f[pe];throw S[Me]&&ct.unshift(S[Me]),f.message=function Ji(f,S,F,tt=null){f=f&&"\n"===f.charAt(0)&&"\u0275"==f.charAt(1)?f.slice(2):f;let ct=ot(S);if(Array.isArray(S))ct=S.map(ot).join(" -> ");else if("object"==typeof S){let ft=[];for(let Tt in S)if(S.hasOwnProperty(Tt)){let Nt=S[Tt];ft.push(Tt+":"+("string"==typeof Nt?JSON.stringify(Nt):ot(Nt)))}ct=`{${ft.join(", ")}}`}return`${F}${tt?"("+tt+")":""}[${ct}]: ${f.replace(fe,"\n ")}`}("\n"+f.message,ct,F,tt),f.ngTokenPath=ct,f[pe]=null,f}(Tt,S,"R3InjectorError",this.source)}throw Tt}finally{Ct(ft),me(ct)}}resolveInjectorInitializers(){const S=me(this),F=Ct(void 0);try{const tt=this.get(ge.multi,Ci,At.Self);for(const ct of tt)ct()}finally{me(S),Ct(F)}}toString(){const S=[],F=this.records;for(const tt of F.keys())S.push(ot(tt));return`R3Injector[${S.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new T(205,!1)}processProvider(S){let F=dn(S=W(S))?S:W(S&&S.provide);const tt=function Nr(f){return xn(f)?al(void 0,f.useValue):al(Bs(f),Tn)}(S);if(dn(S)||!0!==S.multi)this.records.get(F);else{let ct=this.records.get(F);ct||(ct=al(void 0,Tn,!0),ct.factory=()=>_e(ct.multi),this.records.set(F,ct)),F=S,ct.multi.push(S)}this.records.set(F,tt)}hydrate(S,F){return F.value===Tn&&(F.value=ro,F.value=F.factory()),"object"==typeof F.value&&F.value&&function od(f){return null!==f&&"object"==typeof f&&"function"==typeof f.ngOnDestroy}(F.value)&&this._ngOnDestroyHooks.add(F.value),F.value}injectableDefInScope(S){if(!S.providedIn)return!1;const F=W(S.providedIn);return"string"==typeof F?"any"===F||this.scopes.has(F):this.injectorDefTypes.has(F)}}function ua(f){const S=R(f),F=null!==S?S.factory:xr(f);if(null!==F)return F;if(f instanceof oo)throw new T(204,!1);if(f instanceof Function)return function Pl(f){const S=f.length;if(S>0)throw Kt(S,"?"),new T(204,!1);const F=function J(f){const S=f&&(f[vt]||f[Lt]);if(S){const F=function rt(f){if(f.hasOwnProperty("name"))return f.name;const S=(""+f).match(/^function\s*([^\s(]+)/);return null===S?"":S[1]}(f);return console.warn(`DEPRECATED: DI is instantiating a token "${F}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${F}" class.`),S}return null}(f);return null!==F?()=>F.factory(f):()=>new f}(f);throw new T(204,!1)}function Bs(f,S,F){let tt;if(dn(f)){const ct=W(f);return xr(ct)||ua(ct)}if(xn(f))tt=()=>W(f.useValue);else if(function In(f){return!(!f||!f.useFactory)}(f))tt=()=>f.useFactory(..._e(f.deps||[]));else if(function ho(f){return!(!f||!f.useExisting)}(f))tt=()=>Ue(W(f.useExisting));else{const ct=W(f&&(f.useClass||f.provide));if(!function Il(f){return!!f.deps}(f))return xr(ct)||ua(ct);tt=()=>new ct(..._e(f.deps))}return tt}function al(f,S,F=!1){return{factory:f,value:S,multi:F?[]:void 0}}function sc(f,S){for(const F of f)Array.isArray(F)?sc(F,S):F&&N(F)?sc(F.\u0275providers,S):S(F)}class rd{}class ac{}class cc{resolveComponentFactory(S){throw function Ba(f){const S=Error(`No component factory found for ${ot(f)}. Did you add it to @NgModule.entryComponents?`);return S.ngComponent=f,S}(S)}}let hc=(()=>{class f{}return f.NULL=new cc,f})();function zf(){return Ll(Bo(),ri())}function Ll(f,S){return new mh(Eo(f,S))}let mh=(()=>{class f{constructor(F){this.nativeElement=F}}return f.__NG_ELEMENT_ID__=zf,f})();function dp(f){return f instanceof mh?f.nativeElement:f}class up{}let jf=(()=>{class f{}return f.__NG_ELEMENT_ID__=()=>function pp(){const f=ri(),F=po(Bo().index,f);return(ko(F)?F:f)[11]}(),f})(),fp=(()=>{class f{}return f.\u0275prov=U({token:f,providedIn:"root",factory:()=>null}),f})();class gp{constructor(S){this.full=S,this.major=S.split(".")[0],this.minor=S.split(".")[1],this.patch=S.split(".").slice(2).join(".")}}const Hf=new gp("15.0.4"),ll={};function sd(f){return f.ngOriginalError}class dc{constructor(){this._console=console}handleError(S){const F=this._findOriginalError(S);this._console.error("ERROR",S),F&&this._console.error("ORIGINAL ERROR",F)}_findOriginalError(S){let F=S&&sd(S);for(;F&&sd(F);)F=sd(F);return F||null}}function Dm(f){return f.ownerDocument.defaultView}function Em(f){return f.ownerDocument}function uc(f){return f instanceof Function?f():f}function Om(f,S,F){let tt=f.length;for(;;){const ct=f.indexOf(S,F);if(-1===ct)return ct;if(0===ct||f.charCodeAt(ct-1)<=32){const ft=S.length;if(ct+ft===tt||f.charCodeAt(ct+ft)<=32)return ct}F=ct+1}}const Gf="ng-template";function y0(f,S,F){let tt=0;for(;ttft?"":ct[be+1].toLowerCase();const Ye=8&tt?Fe:null;if(Ye&&-1!==Om(Ye,te,0)||2&tt&&te!==Fe){if(cl(tt))return!1;Tt=!0}}}}else{if(!Tt&&!cl(tt)&&!cl(Vt))return!1;if(Tt&&cl(Vt))continue;Tt=!1,tt=Vt|1&tt}}return cl(tt)||Tt}function cl(f){return 0==(1&f)}function b0(f,S,F,tt){if(null===S)return-1;let ct=0;if(tt||!F){let ft=!1;for(;ct-1)for(F++;F0?'="'+Nt+'"':"")+"]"}else 8&tt?ct+="."+Tt:4&tt&&(ct+=" "+Tt);else""!==ct&&!cl(Tt)&&(S+=Lm(ft,ct),ct=""),tt=Tt,ft=ft||!cl(tt);F++}return""!==ct&&(S+=Lm(ft,ct)),S}const _n={};function Rl(f){Rm(an(),ri(),fo()+f,!1)}function Rm(f,S,F,tt){if(!tt)if(3==(3&S[2])){const ft=f.preOrderCheckHooks;null!==ft&&Wt(S,ft,F)}else{const ft=f.preOrderHooks;null!==ft&&oe(S,ft,0,F)}ms(F)}function I0(f,S=null,F=null,tt){const ct=bp(f,S,F,tt);return ct.resolveInjectorInitializers(),ct}function bp(f,S=null,F=null,tt,ct=new Set){const ft=[F||Ci,wi(f)];return tt=tt||("object"==typeof f?void 0:ot(f)),new Tr(ft,S||vo(),tt||null,ct)}let yh=(()=>{class f{static create(F,tt){if(Array.isArray(F))return I0({name:""},tt,F,"");{const ct=F.name??"";return I0({name:ct},F.parent,F.providers,ct)}}}return f.THROW_IF_NOT_FOUND=Qt,f.NULL=new We,f.\u0275prov=U({token:f,providedIn:"any",factory:()=>Ue(ke)}),f.__NG_ELEMENT_ID__=-1,f})();function Uc(f,S=At.Default){const F=ri();return null===F?Ue(f,S):Dc(Bo(),F,W(f),S)}function Vm(){throw new Error("invalid")}function Tp(f,S){const F=f.contentQueries;if(null!==F)for(let tt=0;tt22&&Rm(f,S,22,!1),F(tt,ct)}finally{ms(ft)}}function Mp(f,S,F){if(Vo(S)){const ct=S.directiveEnd;for(let ft=S.directiveStart;ft0;){const F=f[--S];if("number"==typeof F&&F<0)return F}return 0})(Tt)!=Nt&&Tt.push(Nt),Tt.push(F,tt,ft)}}(f,S,tt,ss(f,F,ct.hostVars,_n),ct)}function Zm(f,S,F,tt,ct,ft,Tt){if(null==ft)f.removeAttribute(S,ct,F);else{const Nt=null==Tt?C(ft):Tt(ft,tt||"",ct);f.setAttribute(S,ct,Nt,F)}}function s1(f,S,F,tt,ct,ft){const Tt=ft[S];if(null!==Tt){const Nt=tt.setInput;for(let Vt=0;Vt0&&gc(F)}}function gc(f){for(let tt=Vu(f);null!==tt;tt=Uu(tt))for(let ct=10;ct0&&gc(ft)}const F=f[1].components;if(null!==F)for(let tt=0;tt0&&gc(ct)}}function c1(f,S){const F=po(S,f),tt=F[1];(function Km(f,S){for(let F=S.length;F-1&&(nl(S,tt),jt(F,tt))}this._attachedToViewContainer=!1}$u(this._lView[1],this._lView)}onDestroy(S){U0(this._lView[1],this._lView,null,S)}markForCheck(){qm(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){uu(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new T(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function Wh(f,S){ic(f,S,S[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(S){if(this._attachedToViewContainer)throw new T(902,!1);this._appRef=S}}class J0 extends pu{constructor(S){super(S),this._view=S}detectChanges(){const S=this._view;uu(S[1],S,S[8],!1)}checkNoChanges(){}get context(){return null}}class Q0 extends hc{constructor(S){super(),this.ngModule=S}resolveComponentFactory(S){const F=Re(S);return new Rp(F,this.ngModule)}}function tx(f){const S=[];for(let F in f)f.hasOwnProperty(F)&&S.push({propName:f[F],templateName:F});return S}class u1{constructor(S,F){this.injector=S,this.parentInjector=F}get(S,F,tt){tt=ue(tt);const ct=this.injector.get(S,ll,tt);return ct!==ll||F===ll?ct:this.parentInjector.get(S,F,tt)}}class Rp extends ac{constructor(S,F){super(),this.componentDef=S,this.ngModule=F,this.componentType=S.type,this.selector=function k0(f){return f.map(M0).join(",")}(S.selectors),this.ngContentSelectors=S.ngContentSelectors?S.ngContentSelectors:[],this.isBoundToModule=!!F}get inputs(){return tx(this.componentDef.inputs)}get outputs(){return tx(this.componentDef.outputs)}create(S,F,tt,ct){let ft=(ct=ct||this.ngModule)instanceof wr?ct:ct?.injector;ft&&null!==this.componentDef.getStandaloneInjector&&(ft=this.componentDef.getStandaloneInjector(ft)||ft);const Tt=ft?new u1(S,ft):S,Nt=Tt.get(up,null);if(null===Nt)throw new T(407,!1);const Vt=Tt.get(fp,null),te=Nt.createRenderer(null,this.componentDef),ae=this.componentDef.selectors[0][0]||"div",be=tt?function V0(f,S,F){return f.selectRootElement(S,F===hn.ShadowDom)}(te,tt,this.componentDef.encapsulation):lh(te,ae,function d1(f){const S=f.toLowerCase();return"svg"===S?"svg":"math"===S?"math":null}(ae)),Fe=this.componentDef.onPush?288:272,Ye=fr(0,null,null,1,0,null,null,null,null,null),si=au(null,Ye,null,Fe,null,null,Nt,te,Vt,Tt,null);let yi,Pi;Ka(si);try{const Hi=this.componentDef;let rn,hi=null;Hi.findHostDirectiveDefs?(rn=[],hi=new Map,Hi.findHostDirectiveDefs(Hi,rn,hi),rn.push(Hi)):rn=[Hi];const mn=function Qm(f,S){const F=f[1];return f[22]=S,Wc(F,22,2,"#host",null)}(si,be),Ho=function ex(f,S,F,tt,ct,ft,Tt,Nt){const Vt=ct[1];!function f1(f,S,F,tt){for(const ct of f)S.mergedAttrs=_r(S.mergedAttrs,ct.hostAttrs);null!==S.mergedAttrs&&(Lp(S,S.mergedAttrs,!0),null!==F&&zc(tt,F,S))}(tt,f,S,Tt);const te=ft.createRenderer(S,F),ae=au(ct,kp(F),null,F.onPush?32:16,ct[f.index],f,ft,te,Nt||null,null,null);return Vt.firstCreatePass&&Yc(Vt,f,tt.length-1),Op(ct,ae),ct[f.index]=ae}(mn,be,Hi,rn,si,Nt,te);Pi=jr(Ye,22),be&&function hd(f,S,F,tt){if(tt)Ko(f,F,["ng-version",Hf.full]);else{const{attrs:ct,classes:ft}=function D0(f){const S=[],F=[];let tt=1,ct=2;for(;tt0&&nc(f,F,ft.join(" "))}}(te,Hi,be,tt),void 0!==F&&function g1(f,S,F){const tt=f.projection=[];for(let ct=0;ct=0;tt--){const ct=f[tt];ct.hostVars=S+=ct.hostVars,ct.hostAttrs=_r(ct.hostAttrs,F=_r(F,ct.hostAttrs))}}(tt)}function ig(f){return f===fn?{}:f===Ci?[]:f}function ng(f,S){const F=f.viewQuery;f.viewQuery=F?(tt,ct)=>{S(tt,ct),F(tt,ct)}:S}function og(f,S){const F=f.contentQueries;f.contentQueries=F?(tt,ct,ft)=>{S(tt,ct,ft),F(tt,ct,ft)}:S}function fu(f,S){const F=f.hostBindings;f.hostBindings=F?(tt,ct)=>{S(tt,ct),F(tt,ct)}:S}let Fp=null;function _h(){if(!Fp){const f=xt.Symbol;if(f&&f.iterator)Fp=f.iterator;else{const S=Object.getOwnPropertyNames(Map.prototype);for(let F=0;FTt(to(mn[tt.index])):tt.index;let hi=null;if(!Tt&&Nt&&(hi=function ux(f,S,F,tt){const ct=f.cleanup;if(null!=ct)for(let ft=0;ftVt?Nt[Vt]:null}"string"==typeof Tt&&(ft+=2)}return null}(f,S,ct,tt.index)),null!==hi)(hi.__ngLastListenerFn__||hi).__ngNextListenerFn__=ft,hi.__ngLastListenerFn__=ft,Fe=!1;else{ft=bv(tt,S,ae,ft,!1);const mn=F.listen(Pi,ct,ft);be.push(ft,mn),te&&te.push(ct,rn,Hi,Hi+1)}}else ft=bv(tt,S,ae,ft,!1);const Ye=tt.outputs;let si;if(Fe&&null!==Ye&&(si=Ye[ct])){const yi=si.length;if(yi)for(let Pi=0;Pi-1?po(f.index,S):S);let Vt=_v(S,0,tt,Tt),te=ft.__ngNextListenerFn__;for(;te;)Vt=_v(S,0,te,Tt)&&Vt,te=te.__ngNextListenerFn__;return ct&&!1===Vt&&(Tt.preventDefault(),Tt.returnValue=!1),Vt}}function Cv(f=1){return function _l(f){return(Zi.lFrame.contextLView=function Vl(f,S){for(;f>0;)S=S[15],f--;return S}(f,Zi.lFrame.contextLView))[8]}(f)}function px(f,S){let F=null;const tt=function C0(f){const S=f.attrs;if(null!=S){const F=S.indexOf(5);if(0==(1&F))return S[F+1]}return null}(f);for(let ct=0;ct>17&32767}function _g(f){return 2|f}function Th(f){return(131068&f)>>2}function bg(f,S){return-131069&f|S<<2}function Zc(f){return 1|f}function Cg(f,S,F,tt,ct){const ft=f[F+1],Tt=null===S;let Nt=tt?wh(ft):Th(ft),Vt=!1;for(;0!==Nt&&(!1===Vt||Tt);){const ae=f[Nt+1];vx(f[Nt],S)&&(Vt=!0,f[Nt+1]=tt?Zc(ae):_g(ae)),Nt=tt?wh(ae):Th(ae)}Vt&&(f[F+1]=tt?_g(ft):Zc(ft))}function vx(f,S){return null===f||null==S||(Array.isArray(f)?f[1]:f)===S||!(!Array.isArray(f)||"string"!=typeof S)&&Dn(f,S)>=0}const gr={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function _d(f){return f.substring(gr.key,gr.keyEnd)}function x1(f){return f.substring(gr.value,gr.valueEnd)}function Av(f,S){const F=gr.textEnd;return F===S?-1:(S=gr.keyEnd=function Wp(f,S,F){for(;S32;)S++;return S}(f,gr.key=S,F),bd(f,S,F))}function wg(f,S){const F=gr.textEnd;let tt=gr.key=bd(f,S,F);return F===tt?-1:(tt=gr.keyEnd=function Tg(f,S,F){let tt;for(;S=65&&(-33&tt)<=90||tt>=48&&tt<=57);)S++;return S}(f,tt,F),tt=Pv(f,tt,F),tt=gr.value=bd(f,tt,F),tt=gr.valueEnd=function Yp(f,S,F){let tt=-1,ct=-1,ft=-1,Tt=S,Nt=Tt;for(;Tt32&&(Nt=Tt),ft=ct,ct=tt,tt=-33&Vt}return Nt}(f,tt,F),Pv(f,tt,F))}function Ov(f){gr.key=0,gr.keyEnd=0,gr.value=0,gr.valueEnd=0,gr.textEnd=f.length}function bd(f,S,F){for(;S=0;F=wg(S,F))Fv(f,_d(S),x1(S))}function Lv(f){Va(bi,pl,f,!0)}function pl(f,S){for(let F=function yx(f){return Ov(f),Av(f,bd(f,0,gr.textEnd))}(S);F>=0;F=Av(S,F))bi(f,_d(S),!0)}function Ga(f,S,F,tt){const ct=ri(),ft=an(),Tt=Vn(2);ft.firstUpdatePass&&Dg(ft,f,Tt,tt),S!==_n&&Wr(ct,Tt,S)&&Cd(ft,ft.data[fo()],ct,ct[11],f,ct[Tt+1]=function Og(f,S){return null==f||("string"==typeof S?f+=S:"object"==typeof f&&(f=ot(da(f)))),f}(S,F),tt,Tt)}function Va(f,S,F,tt){const ct=an(),ft=Vn(2);ct.firstUpdatePass&&Dg(ct,null,ft,tt);const Tt=ri();if(F!==_n&&Wr(Tt,ft,F)){const Nt=ct.data[fo()];if(Zp(Nt,tt)&&!kg(ct,ft)){let Vt=tt?Nt.classesWithoutHost:Nt.stylesWithoutHost;null!==Vt&&(F=it(Vt,F||"")),cg(ct,Nt,Tt,F,tt)}else!function Cx(f,S,F,tt,ct,ft,Tt,Nt){ct===_n&&(ct=Ci);let Vt=0,te=0,ae=0=f.expandoStartIndex}function Dg(f,S,F,tt){const ct=f.data;if(null===ct[F+1]){const ft=ct[fo()],Tt=kg(f,F);Zp(ft,tt)&&null===S&&!Tt&&(S=!1),S=function _x(f,S,F,tt){const ct=Qs(f);let ft=tt?S.residualClasses:S.residualStyles;if(null===ct)0===(tt?S.classBindings:S.styleBindings)&&(F=yu(F=Eg(null,f,S,F,tt),S.attrs,tt),ft=null);else{const Tt=S.directiveStylingLast;if(-1===Tt||f[Tt]!==ct)if(F=Eg(ct,f,S,F,tt),null===ft){let Vt=function Xp(f,S,F){const tt=F?S.classBindings:S.styleBindings;if(0!==Th(tt))return f[wh(tt)]}(f,S,tt);void 0!==Vt&&Array.isArray(Vt)&&(Vt=Eg(null,f,S,Vt[1],tt),Vt=yu(Vt,S.attrs,tt),function Rv(f,S,F,tt){f[wh(F?S.classBindings:S.styleBindings)]=tt}(f,S,tt,Vt))}else ft=function Nv(f,S,F){let tt;const ct=S.directiveEnd;for(let ft=1+S.directiveStylingLast;ft0)&&(te=!0)}else ae=F;if(ct)if(0!==Vt){const Fe=wh(f[Nt+1]);f[tt+1]=Up(Fe,Nt),0!==Fe&&(f[Fe+1]=bg(f[Fe+1],tt)),f[Nt+1]=function kv(f,S){return 131071&f|S<<17}(f[Nt+1],tt)}else f[tt+1]=Up(Nt,0),0!==Nt&&(f[Nt+1]=bg(f[Nt+1],tt)),Nt=tt;else f[tt+1]=Up(Vt,0),0===Nt?Nt=tt:f[Vt+1]=bg(f[Vt+1],tt),Vt=tt;te&&(f[tt+1]=_g(f[tt+1])),Cg(f,ae,tt,!0),Cg(f,ae,tt,!1),function mx(f,S,F,tt,ct){const ft=ct?f.residualClasses:f.residualStyles;null!=ft&&"string"==typeof S&&Dn(ft,S)>=0&&(F[tt+1]=Zc(F[tt+1]))}(S,ae,f,tt,ft),Tt=Up(Nt,Vt),ft?S.classBindings=Tt:S.styleBindings=Tt}(ct,ft,S,F,Tt,tt)}}function Eg(f,S,F,tt,ct){let ft=null;const Tt=F.directiveEnd;let Nt=F.directiveStylingLast;for(-1===Nt?Nt=F.directiveStart:Nt++;Nt0;){const Vt=f[ct],te=Array.isArray(Vt),ae=te?Vt[1]:Vt,be=null===ae;let Fe=F[ct+1];Fe===_n&&(Fe=be?Ci:void 0);let Ye=be?Si(Fe,tt):ae===tt?Fe:void 0;if(te&&!xu(Ye)&&(Ye=Si(Vt,tt)),xu(Ye)&&(Nt=Ye,Tt))return Nt;const si=f[ct+1];ct=Tt?wh(si):Th(si)}if(null!==S){let Vt=ft?S.residualClasses:S.residualStyles;null!=Vt&&(Nt=Si(Vt,tt))}return Nt}function xu(f){return void 0!==f}function Zp(f,S){return 0!=(f.flags&(S?8:16))}function Pg(f,S=""){const F=ri(),tt=an(),ct=f+22,ft=tt.firstCreatePass?Wc(tt,ct,1,S,null):tt.data[ct],Tt=F[ct]=Wu(F[11],S);ec(tt,F,Tt,ft),kr(ft,!1)}function Ig(f){return Lg("",f,""),Ig}function Lg(f,S,F){const tt=ri(),ct=pd(tt,f,S,F);return ct!==_n&&mc(tt,fo(),ct),Lg}function Rg(f,S,F,tt,ct){const ft=ri(),Tt=function fd(f,S,F,tt,ct,ft){const Nt=bh(f,zo(),F,ct);return Vn(2),Nt?S+C(F)+tt+C(ct)+ft:_n}(ft,f,S,F,tt,ct);return Tt!==_n&&mc(ft,fo(),Tt),Rg}function $p(f,S,F,tt,ct,ft,Tt){const Nt=ri(),Vt=function gd(f,S,F,tt,ct,ft,Tt,Nt){const te=vu(f,zo(),F,ct,Tt);return Vn(3),te?S+C(F)+tt+C(ct)+ft+C(Tt)+Nt:_n}(Nt,f,S,F,tt,ct,ft,Tt);return Vt!==_n&&mc(Nt,fo(),Vt),$p}function _u(f,S,F,tt,ct,ft,Tt,Nt,Vt){const te=ri(),ae=md(te,f,S,F,tt,ct,ft,Tt,Nt,Vt);return ae!==_n&&mc(te,fo(),ae),_u}function zv(f,S,F){Va(bi,pl,pd(ri(),f,S,F),!0)}function Yr(f,S,F,tt,ct,ft,Tt,Nt,Vt){Va(bi,pl,md(ri(),f,S,F,tt,ct,ft,Tt,Nt,Vt),!0)}function Bg(f,S,F){const tt=ri();return Wr(tt,Ao(),S)&&ja(an(),ao(),tt,f,S,tt[11],F,!0),Bg}function zg(f,S,F){const tt=ri();if(Wr(tt,Ao(),S)){const ft=an(),Tt=ao();ja(ft,Tt,tt,f,S,function Xc(f,S,F){return(null===f||Io(f))&&(F=function Nn(f){for(;Array.isArray(f);){if("object"==typeof f[1])return f;f=f[0]}return null}(F[S.index])),F[11]}(Qs(ft.data),Tt,tt),F,!0)}return zg}const Td=void 0;var Ax=["en",[["a","p"],["AM","PM"],Td],[["AM","PM"],Td,Td],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Td,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Td,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Td,"{1} 'at' {0}",Td],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Ex(f){const F=Math.floor(Math.abs(f)),tt=f.toString().replace(/^[^.]*\.?/,"").length;return 1===F&&0===tt?1:5}];let Sd={};function jg(f){const S=function T1(f){return f.toLowerCase().replace(/_/g,"-")}(f);let F=$v(S);if(F)return F;const tt=S.split("-")[0];if(F=$v(tt),F)return F;if("en"===tt)return Ax;throw new T(701,!1)}function Zv(f){return jg(f)[tn.PluralCase]}function $v(f){return f in Sd||(Sd[f]=xt.ng&&xt.ng.common&&xt.ng.common.locales&&xt.ng.common.locales[f]),Sd[f]}var tn=(()=>((tn=tn||{})[tn.LocaleId=0]="LocaleId",tn[tn.DayPeriodsFormat=1]="DayPeriodsFormat",tn[tn.DayPeriodsStandalone=2]="DayPeriodsStandalone",tn[tn.DaysFormat=3]="DaysFormat",tn[tn.DaysStandalone=4]="DaysStandalone",tn[tn.MonthsFormat=5]="MonthsFormat",tn[tn.MonthsStandalone=6]="MonthsStandalone",tn[tn.Eras=7]="Eras",tn[tn.FirstDayOfWeek=8]="FirstDayOfWeek",tn[tn.WeekendRange=9]="WeekendRange",tn[tn.DateFormat=10]="DateFormat",tn[tn.TimeFormat=11]="TimeFormat",tn[tn.DateTimeFormat=12]="DateTimeFormat",tn[tn.NumberSymbols=13]="NumberSymbols",tn[tn.NumberFormats=14]="NumberFormats",tn[tn.CurrencyCode=15]="CurrencyCode",tn[tn.CurrencySymbol=16]="CurrencySymbol",tn[tn.CurrencyName=17]="CurrencyName",tn[tn.Currencies=18]="Currencies",tn[tn.Directionality=19]="Directionality",tn[tn.PluralCase=20]="PluralCase",tn[tn.ExtraData=21]="ExtraData",tn))();const S1=["zero","one","two","few","many"],wu="en-US",Hg={marker:"element"},Gg={marker:"ICU"};var rr=(()=>((rr=rr||{})[rr.SHIFT=2]="SHIFT",rr[rr.APPEND_EAGERLY=1]="APPEND_EAGERLY",rr[rr.COMMENT=2]="COMMENT",rr))();let Px=wu;function Ix(f){(function X(f,S){null==f&&j(S,f,null,"!=")})(f,"Expected localeId to be defined"),"string"==typeof f&&(Px=f.toLowerCase().replace(/_/g,"-"))}function Kv(f,S,F){const tt=S.insertBeforeIndex,ct=Array.isArray(tt)?tt[0]:tt;return null===ct?tc(f,0,F):to(F[ct])}function qv(f,S,F,tt,ct){const ft=S.insertBeforeIndex;if(Array.isArray(ft)){let Tt=tt,Nt=null;if(3&S.type||(Nt=Tt,Tt=ct),null!==Tt&&-1===S.componentOffset)for(let Vt=1;Vt1)for(let F=f.length-2;F>=0;F--){const tt=f[F];Lx(tt)||Rx(tt,S)&&null===Nx(tt)&&D1(tt,S.index)}}function Lx(f){return!(64&f.type)}function Rx(f,S){return Lx(S)||f.index>S.index}function Nx(f){const S=f.insertBeforeIndex;return Array.isArray(S)?S[0]:S}function D1(f,S){const F=f.insertBeforeIndex;Array.isArray(F)?F[0]=S:(Yh(Kv,qv),f.insertBeforeIndex=S)}function ef(f,S){const F=f.data[S];return null===F||"string"==typeof F?null:F.hasOwnProperty("currentCaseLViewIndex")?F:F.value}function Fx(f,S,F){const tt=hl(f,F,64,null,null);return Jv(S,tt),tt}function nf(f,S){const F=S[f.currentCaseLViewIndex];return null===F?F:F<0?~F:F}function Qv(f){return f>>>17}function ty(f){return(131070&f)>>>1}let Tu=0,Su=0;function iy(f,S,F,tt){const ct=F[11];let Tt,ft=null;for(let Nt=0;Nt>>1,F),null,null,Ye,si,null)}else switch(Vt){case Gg:const te=S[++Nt],ae=S[++Nt];null===F[ae]&&jo(F[ae]=Yu(ct,te),F);break;case Hg:const be=S[++Nt],Fe=S[++Nt];null===F[Fe]&&jo(F[Fe]=lh(ct,be,null),F)}}}function ny(f,S,F,tt,ct){for(let ft=0;ft>>2;switch(3&ae){case 1:const Fe=F[++te],Ye=F[++te],si=f.data[be];"string"==typeof si?Zm(S[11],S[be],null,si,Fe,Vt,Ye):ja(f,si,S,Fe,Vt,S[11],Ye,!1);break;case 0:const yi=S[be];null!==yi&&Bd(S[11],yi,Vt);break;case 2:Gx(f,ef(f,be),S,Vt);break;case 3:oy(f,ef(f,be),tt,S)}}}}else{const Vt=F[ft+1];if(Vt>0&&3==(3&Vt)){const ae=ef(f,Vt>>>2);S[ae.currentCaseLViewIndex]<0&&oy(f,ae,tt,S)}}ft+=Nt}}function oy(f,S,F,tt){let ct=tt[S.currentCaseLViewIndex];if(null!==ct){let ft=Tu;ct<0&&(ct=tt[S.currentCaseLViewIndex]=~ct,ft=-1),ny(f,tt,S.update[ct],F,ft)}}function Gx(f,S,F,tt){const ct=function Vx(f,S){let F=f.cases.indexOf(S);if(-1===F)switch(f.type){case 1:{const tt=function M1(f,S){const F=Zv(S)(parseInt(f,10)),tt=S1[F];return void 0!==tt?tt:"other"}(S,function k1(){return Px}());F=f.cases.indexOf(tt),-1===F&&"other"!==tt&&(F=f.cases.indexOf("other"));break}case 0:F=f.cases.indexOf("other")}return-1===F?null:F}(S,tt);if(nf(S,F)!==ct&&(ry(f,S,F),F[S.currentCaseLViewIndex]=null===ct?null:~ct,null!==ct)){const Tt=F[S.anchorIdx];Tt&&iy(f,S.create[ct],F,Tt)}}function ry(f,S,F){let tt=nf(S,F);if(null!==tt){const ct=S.remove[tt];for(let ft=0;ft0){const Nt=nr(Tt,F);null!==Nt&&Ud(F[11],Nt)}else ry(f,ef(f,~Tt),F)}}}function Ux(){const f=[];let F,tt,S=-1;function ft(Nt,Vt){S=0;const te=nf(Nt,Vt);tt=null!==te?Nt.remove[te]:Ci}function Tt(){if(S0?F[Nt]:(f.push(S,tt),ft(F[1].data[~Nt],F),Tt())}return 0===f.length?null:(tt=f.pop(),S=f.pop(),Tt())}return function ct(Nt,Vt){for(F=Vt;f.length;)f.pop();return ft(Nt.value,Vt),Tt}}const rf=/\ufffd(\d+):?\d*\ufffd/gi,Yx=/\ufffd(\d+)\ufffd/,Xx=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,F1=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,B1=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,z1=/\uE500/g;function $x(f,S,F,tt,ct,ft,Tt){const Nt=ss(f,tt,1,null);let Vt=Nt<F.length&&F.push(Vt)}return{type:tt,mainBinding:ct,cases:S,values:F}}function Vg(f){if(!f)return[];let S=0;const F=[],tt=[],ct=/[{}]/g;let ft;for(ct.lastIndex=0;ft=ct.exec(f);){const Nt=ft.index;if("}"==ft[0]){if(F.pop(),0==F.length){const Vt=f.substring(S,Nt);Xx.test(Vt)?tt.push(U1(Vt)):tt.push(Vt),S=Nt+1}}else{if(0==F.length){const Vt=f.substring(S,Nt);tt.push(Vt),S=Nt+1}F.push("{")}}const Tt=f.substring(S);return tt.push(Tt),tt}function W1(f,S,F,tt,ct,ft,Tt,Nt){const Vt=[],te=[],ae=[];S.cases.push(ft),S.create.push(Vt),S.remove.push(te),S.update.push(ae);const Fe=ap(ip()).getInertBodyElement(Tt),Ye=tu(Fe)||Fe;return Ye?Jx(f,S,F,tt,Vt,te,ae,Ye,ct,Nt,0):0}function Jx(f,S,F,tt,ct,ft,Tt,Nt,Vt,te,ae){let be=0,Fe=Nt.firstChild;for(;Fe;){const Ye=ss(f,F,1,null);switch(Fe.nodeType){case Node.ELEMENT_NODE:const si=Fe,yi=si.tagName.toLowerCase();if(Jd.hasOwnProperty(yi)){cy(ct,Hg,yi,Vt,Ye),f.data[Ye]=yi;const hi=si.attributes;for(let mn=0;mn>>rr.SHIFT;let be=f[ae];null===be&&(be=f[ae]=Vt?ct.createComment(Nt):Wu(ct,Nt)),te&&null!==F&&Ql(ct,F,be,tt,!1)}})(ct,Vt.create,ae,Nt&&8&Nt.type?ct[Nt.index]:null),Wo(!0)}function r_(f,S,F){o_(f,S,F),function hy(){Wo(!1)}()}function dy(f){return function zx(f){f&&(Tu|=1<0){const tt=f.data[F];ny(f,S,Array.isArray(tt)?tt:tt.update,zo()-Su-1,Tu)}Tu=0,Su=0}(an(),ri(),f+22)}function uy(f,S,F,tt,ct){if(f=W(f),Array.isArray(f))for(let ft=0;ft>20;if(dn(f)||!f.multi){const Ye=new gn(Vt,ct,Uc),si=py(Nt,S,ct?ae:ae+Fe,be);-1===si?(co(Gr(te,Tt),ft,Nt),Ug(ft,f,S.length),S.push(Nt),te.directiveStart++,te.directiveEnd++,ct&&(te.providerIndexes+=1048576),F.push(Ye),Tt.push(Ye)):(F[si]=Ye,Tt[si]=Ye)}else{const Ye=py(Nt,S,ae+Fe,be),si=py(Nt,S,ae,ae+Fe),yi=Ye>=0&&F[Ye],Pi=si>=0&&F[si];if(ct&&!Pi||!ct&&!yi){co(Gr(te,Tt),ft,Nt);const Hi=function d_(f,S,F,tt,ct){const ft=new gn(f,F,Uc);return ft.multi=[],ft.index=S,ft.componentProviders=0,c_(ft,ct,tt&&!F),ft}(ct?h_:iC,F.length,ct,tt,Vt);!ct&&Pi&&(F[si].providerFactory=Hi),Ug(ft,f,S.length,0),S.push(Nt),te.directiveStart++,te.directiveEnd++,ct&&(te.providerIndexes+=1048576),F.push(Hi),Tt.push(Hi)}else Ug(ft,f,Ye>-1?Ye:si,c_(F[ct?si:Ye],Vt,!ct&&tt));!ct&&tt&&Pi&&F[si].componentProviders++}}}function Ug(f,S,F,tt){const ct=dn(S),ft=function Ln(f){return!!f.useClass}(S);if(ct||ft){const Vt=(ft?W(S.useClass):S).prototype.ngOnDestroy;if(Vt){const te=f.destroyHooks||(f.destroyHooks=[]);if(!ct&&S.multi){const ae=te.indexOf(F);-1===ae?te.push(F,[tt,Vt]):te[ae+1].push(tt,Vt)}else te.push(F,Vt)}}}function c_(f,S,F){return F&&f.componentProviders++,f.multi.push(S)-1}function py(f,S,F,tt){for(let ct=F;ct{F.providersResolver=(tt,ct)=>function l_(f,S,F){const tt=an();if(tt.firstCreatePass){const ct=Io(f);uy(F,tt.data,tt.blueprint,ct,!0),uy(S,tt.data,tt.blueprint,ct,!1)}}(tt,ct?ct(f):f,S)}}class Du{}class gy{}function nC(f,S){return new p_(f,S??null)}class p_ extends Du{constructor(S,F){super(),this._parent=F,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Q0(this);const tt=kn(S);this._bootstrapComponents=uc(tt.bootstrap),this._r3Injector=bp(S,F,[{provide:Du,useValue:this},{provide:hc,useValue:this.componentFactoryResolver}],ot(S),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(S)}get injector(){return this._r3Injector}destroy(){const S=this._r3Injector;!S.destroyed&&S.destroy(),this.destroyCbs.forEach(F=>F()),this.destroyCbs=null}onDestroy(S){this.destroyCbs.push(S)}}class Wg extends gy{constructor(S){super(),this.moduleType=S}create(S){return new p_(this.moduleType,S)}}class rC extends Du{constructor(S,F,tt){super(),this.componentFactoryResolver=new Q0(this),this.instance=null;const ct=new Tr([...S,{provide:Du,useValue:this},{provide:hc,useValue:this.componentFactoryResolver}],F||vo(),tt,new Set(["environment"]));this.injector=ct,ct.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(S){this.injector.onDestroy(S)}}function my(f,S,F=null){return new rC(f,S,F).injector}let sC=(()=>{class f{constructor(F){this._injector=F,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(F){if(!F.standalone)return null;if(!this.cachedInjectors.has(F.id)){const tt=gi(0,F.type),ct=tt.length>0?my([tt],this._injector,`Standalone[${F.type.name}]`):null;this.cachedInjectors.set(F.id,ct)}return this.cachedInjectors.get(F.id)}ngOnDestroy(){try{for(const F of this.cachedInjectors.values())null!==F&&F.destroy()}finally{this.cachedInjectors.clear()}}}return f.\u0275prov=U({token:f,providedIn:"environment",factory:()=>new f(Ue(wr))}),f})();function f_(f){f.getStandaloneInjector=S=>S.get(sC).getOrCreateStandaloneInjector(f)}function b_(f,S,F){const tt=xo()+f,ct=ri();return ct[tt]===_n?Fl(ct,tt,F?S.call(F):S()):mu(ct,tt)}function C_(f,S,F,tt){return wy(ri(),xo(),f,S,F,tt)}function w_(f,S,F,tt,ct){return D_(ri(),xo(),f,S,F,tt,ct)}function T_(f,S,F,tt,ct,ft){return function Ty(f,S,F,tt,ct,ft,Tt,Nt){const Vt=S+F;return vu(f,Vt,ct,ft,Tt)?Fl(f,Vt+3,Nt?tt.call(Nt,ct,ft,Tt):tt(ct,ft,Tt)):af(f,Vt+3)}(ri(),xo(),f,S,F,tt,ct,ft)}function S_(f,S,F,tt,ct,ft,Tt){return function E_(f,S,F,tt,ct,ft,Tt,Nt,Vt){const te=S+F;return Ha(f,te,ct,ft,Tt,Nt)?Fl(f,te+4,Vt?tt.call(Vt,ct,ft,Tt,Nt):tt(ct,ft,Tt,Nt)):af(f,te+4)}(ri(),xo(),f,S,F,tt,ct,ft,Tt)}function M_(f,S,F,tt,ct,ft,Tt,Nt){const Vt=xo()+f,te=ri(),ae=Ha(te,Vt,F,tt,ct,ft);return Wr(te,Vt+4,Tt)||ae?Fl(te,Vt+5,Nt?S.call(Nt,F,tt,ct,ft,Tt):S(F,tt,ct,ft,Tt)):mu(te,Vt+5)}function by(f,S,F,tt,ct,ft,Tt,Nt,Vt){const te=xo()+f,ae=ri(),be=Ha(ae,te,F,tt,ct,ft);return bh(ae,te+4,Tt,Nt)||be?Fl(ae,te+6,Vt?S.call(Vt,F,tt,ct,ft,Tt,Nt):S(F,tt,ct,ft,Tt,Nt)):mu(ae,te+6)}function Cy(f,S,F,tt,ct,ft,Tt,Nt,Vt,te){const ae=xo()+f,be=ri();let Fe=Ha(be,ae,F,tt,ct,ft);return vu(be,ae+4,Tt,Nt,Vt)||Fe?Fl(be,ae+7,te?S.call(te,F,tt,ct,ft,Tt,Nt,Vt):S(F,tt,ct,ft,Tt,Nt,Vt)):mu(be,ae+7)}function k_(f,S,F,tt){return function A_(f,S,F,tt,ct,ft){let Tt=S+F,Nt=!1;for(let Vt=0;Vt=0;F--){const tt=S[F];if(f===tt.name)return tt}}(S,F.pipeRegistry),F.data[ct]=tt,tt.onDestroy&&(F.destroyHooks||(F.destroyHooks=[])).push(ct,tt.onDestroy)):tt=F.data[ct];const ft=tt.factory||(tt.factory=xr(tt.type)),Tt=Ct(Uc);try{const Nt=Ja(!1),Vt=ft();return Ja(Nt),function dx(f,S,F,tt){F>=f.data.length&&(f.data[F]=null,f.blueprint[F]=null),S[F]=tt}(F,ri(),ct,Vt),Vt}finally{Ct(Tt)}}function P_(f,S,F){const tt=f+22,ct=ri(),ft=Hr(ct,tt);return lf(ct,tt)?wy(ct,xo(),S,ft.transform,F,ft):ft.transform(F)}function I_(f,S,F,tt){const ct=f+22,ft=ri(),Tt=Hr(ft,ct);return lf(ft,ct)?D_(ft,xo(),S,Tt.transform,F,tt,Tt):Tt.transform(F,tt)}function lf(f,S){return f[1].data[S].pure}function Sy(f){return S=>{setTimeout(f,void 0,S)}}const xc=class yC extends A.x{constructor(S=!1){super(),this.__isAsync=S}emit(S){super.next(S)}subscribe(S,F,tt){let ct=S,ft=F||(()=>null),Tt=tt;if(S&&"object"==typeof S){const Vt=S;ct=Vt.next?.bind(Vt),ft=Vt.error?.bind(Vt),Tt=Vt.complete?.bind(Vt)}this.__isAsync&&(ft=Sy(ft),ct&&(ct=Sy(ct)),Tt&&(Tt=Sy(Tt)));const Nt=super.subscribe({next:ct,error:ft,complete:Tt});return S instanceof t.w0&&S.add(Nt),Nt}};function xC(){return this._results[_h()]()}class My{constructor(S=!1){this._emitDistinctChangesOnly=S,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const F=_h(),tt=My.prototype;tt[F]||(tt[F]=xC)}get changes(){return this._changes||(this._changes=new xc)}get(S){return this._results[S]}map(S){return this._results.map(S)}filter(S){return this._results.filter(S)}find(S){return this._results.find(S)}reduce(S,F){return this._results.reduce(S,F)}forEach(S){this._results.forEach(S)}some(S){return this._results.some(S)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(S,F){const tt=this;tt.dirty=!1;const ct=function Et(f){return f.flat(Number.POSITIVE_INFINITY)}(S);(this._changesDetected=!function Od(f,S,F){if(f.length!==S.length)return!1;for(let tt=0;tt{class f{}return f.__NG_ELEMENT_ID__=R_,f})();const L_=cf,_C=class extends L_{constructor(S,F,tt){super(),this._declarationLView=S,this._declarationTContainer=F,this.elementRef=tt}createEmbeddedView(S,F){const tt=this._declarationTContainer.tViews,ct=au(this._declarationLView,tt,S,16,null,tt.declTNode,null,null,null,null,F||null);ct[17]=this._declarationLView[this._declarationTContainer.index];const Tt=this._declarationLView[19];return null!==Tt&&(ct[19]=Tt.createEmbeddedView(tt)),dl(tt,ct,S),new pu(ct)}};function R_(){return Yg(Bo(),ri())}function Yg(f,S){return 4&f.type?new _C(S,f,Ll(f,S)):null}let hf=(()=>{class f{}return f.__NG_ELEMENT_ID__=bC,f})();function bC(){return B_(Bo(),ri())}const N_=hf,F_=class extends N_{constructor(S,F,tt){super(),this._lContainer=S,this._hostTNode=F,this._hostLView=tt}get element(){return Ll(this._hostTNode,this._hostLView)}get injector(){return new Qa(this._hostTNode,this._hostLView)}get parentInjector(){const S=Pa(this._hostTNode,this._hostLView);if(Aa(S)){const F=Ar(S,this._hostLView),tt=Oa(S);return new Qa(F[1].data[tt+8],F)}return new Qa(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(S){const F=ky(this._lContainer);return null!==F&&F[S]||null}get length(){return this._lContainer.length-10}createEmbeddedView(S,F,tt){let ct,ft;"number"==typeof tt?ct=tt:null!=tt&&(ct=tt.index,ft=tt.injector);const Tt=S.createEmbeddedView(F||{},ft);return this.insert(Tt,ct),Tt}createComponent(S,F,tt,ct,ft){const Tt=S&&!function os(f){return"function"==typeof f}(S);let Nt;if(Tt)Nt=F;else{const be=F||{};Nt=be.index,tt=be.injector,ct=be.projectableNodes,ft=be.environmentInjector||be.ngModuleRef}const Vt=Tt?S:new Rp(Re(S)),te=tt||this.parentInjector;if(!ft&&null==Vt.ngModule){const Fe=(Tt?te:this.parentInjector).get(wr,null);Fe&&(ft=Fe)}const ae=Vt.create(te,ct,void 0,ft);return this.insert(ae.hostView,Nt),ae}insert(S,F){const tt=S._lView,ct=tt[1];if(function gs(f){return Fo(f[3])}(tt)){const ae=this.indexOf(S);if(-1!==ae)this.detach(ae);else{const be=tt[3],Fe=new F_(be,be[6],be[3]);Fe.detach(Fe.indexOf(S))}}const ft=this._adjustIndex(F),Tt=this._lContainer;!function ch(f,S,F,tt){const ct=10+tt,ft=F.length;tt>0&&(F[ct-1][4]=S),tt0)tt.push(Tt[Nt/2]);else{const te=ft[Nt+1],ae=S[-Vt];for(let be=10;be{class f{constructor(F){this.appInits=F,this.resolve=Qg,this.reject=Qg,this.initialized=!1,this.done=!1,this.donePromise=new Promise((tt,ct)=>{this.resolve=tt,this.reject=ct})}runInitializers(){if(this.initialized)return;const F=[],tt=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let ct=0;ct{ft.subscribe({complete:Nt,error:Vt})});F.push(Tt)}}Promise.all(F).then(()=>{tt()}).catch(ct=>{this.reject(ct)}),0===F.length&&tt(),this.initialized=!0}}return f.\u0275fac=function(F){return new(F||f)(Ue(rb,8))},f.\u0275prov=U({token:f,factory:f.\u0275fac,providedIn:"root"}),f})();const sb=new oo("AppId",{providedIn:"root",factory:function em(){return`${zl()}${zl()}${zl()}`}});function zl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const ff=new oo("Platform Initializer"),qy=new oo("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),im=new oo("appBootstrapListener"),fl=new oo("AnimationModuleType");let nm=(()=>{class f{log(F){console.log(F)}warn(F){console.warn(F)}}return f.\u0275fac=function(F){return new(F||f)},f.\u0275prov=U({token:f,factory:f.\u0275fac,providedIn:"platform"}),f})();const bc=new oo("LocaleId",{providedIn:"root",factory:()=>Ne(bc,At.Optional|At.SkipSelf)||function Jy(){return typeof $localize<"u"&&$localize.locale||wu}()}),ab=new oo("DefaultCurrencyCode",{providedIn:"root",factory:()=>"USD"});class Qy{constructor(S,F){this.ngModuleFactory=S,this.componentFactories=F}}let cb=(()=>{class f{compileModuleSync(F){return new Wg(F)}compileModuleAsync(F){return Promise.resolve(this.compileModuleSync(F))}compileModuleAndAllComponentsSync(F){const tt=this.compileModuleSync(F),ft=uc(kn(F).declarations).reduce((Tt,Nt)=>{const Vt=Re(Nt);return Vt&&Tt.push(new Rp(Vt)),Tt},[]);return new Qy(tt,ft)}compileModuleAndAllComponentsAsync(F){return Promise.resolve(this.compileModuleAndAllComponentsSync(F))}clearCache(){}clearCacheFor(F){}getModuleId(F){}}return f.\u0275fac=function(F){return new(F||f)},f.\u0275prov=U({token:f,factory:f.\u0275fac,providedIn:"root"}),f})();const ub=(()=>Promise.resolve(0))();function rm(f){typeof Zone>"u"?ub.then(()=>{f&&f.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",f)}class Xo{constructor({enableLongStackTrace:S=!1,shouldCoalesceEventChangeDetection:F=!1,shouldCoalesceRunChangeDetection:tt=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new xc(!1),this.onMicrotaskEmpty=new xc(!1),this.onStable=new xc(!1),this.onError=new xc(!1),typeof Zone>"u")throw new T(908,!1);Zone.assertZonePatched();const ct=this;ct._nesting=0,ct._outer=ct._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(ct._inner=ct._inner.fork(new Zone.TaskTrackingZoneSpec)),S&&Zone.longStackTraceZoneSpec&&(ct._inner=ct._inner.fork(Zone.longStackTraceZoneSpec)),ct.shouldCoalesceEventChangeDetection=!tt&&F,ct.shouldCoalesceRunChangeDetection=tt,ct.lastRequestAnimationFrameId=-1,ct.nativeRequestAnimationFrame=function e0(){let f=xt.requestAnimationFrame,S=xt.cancelAnimationFrame;if(typeof Zone<"u"&&f&&S){const F=f[Zone.__symbol__("OriginalDelegate")];F&&(f=F);const tt=S[Zone.__symbol__("OriginalDelegate")];tt&&(S=tt)}return{nativeRequestAnimationFrame:f,nativeCancelAnimationFrame:S}}().nativeRequestAnimationFrame,function NC(f){const S=()=>{!function fb(f){f.isCheckStableRunning||-1!==f.lastRequestAnimationFrameId||(f.lastRequestAnimationFrameId=f.nativeRequestAnimationFrame.call(xt,()=>{f.fakeTopEventTask||(f.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{f.lastRequestAnimationFrameId=-1,sm(f),f.isCheckStableRunning=!0,vf(f),f.isCheckStableRunning=!1},void 0,()=>{},()=>{})),f.fakeTopEventTask.invoke()}),sm(f))}(f)};f._inner=f._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(F,tt,ct,ft,Tt,Nt)=>{try{return gb(f),F.invokeTask(ct,ft,Tt,Nt)}finally{(f.shouldCoalesceEventChangeDetection&&"eventTask"===ft.type||f.shouldCoalesceRunChangeDetection)&&S(),mb(f)}},onInvoke:(F,tt,ct,ft,Tt,Nt,Vt)=>{try{return gb(f),F.invoke(ct,ft,Tt,Nt,Vt)}finally{f.shouldCoalesceRunChangeDetection&&S(),mb(f)}},onHasTask:(F,tt,ct,ft)=>{F.hasTask(ct,ft),tt===ct&&("microTask"==ft.change?(f._hasPendingMicrotasks=ft.microTask,sm(f),vf(f)):"macroTask"==ft.change&&(f.hasPendingMacrotasks=ft.macroTask))},onHandleError:(F,tt,ct,ft)=>(F.handleError(ct,ft),f.runOutsideAngular(()=>f.onError.emit(ft)),!1)})}(ct)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Xo.isInAngularZone())throw new T(909,!1)}static assertNotInAngularZone(){if(Xo.isInAngularZone())throw new T(909,!1)}run(S,F,tt){return this._inner.run(S,F,tt)}runTask(S,F,tt,ct){const ft=this._inner,Tt=ft.scheduleEventTask("NgZoneEvent: "+ct,S,pb,Qg,Qg);try{return ft.runTask(Tt,F,tt)}finally{ft.cancelTask(Tt)}}runGuarded(S,F,tt){return this._inner.runGuarded(S,F,tt)}runOutsideAngular(S){return this._outer.run(S)}}const pb={};function vf(f){if(0==f._nesting&&!f.hasPendingMicrotasks&&!f.isStable)try{f._nesting++,f.onMicrotaskEmpty.emit(null)}finally{if(f._nesting--,!f.hasPendingMicrotasks)try{f.runOutsideAngular(()=>f.onStable.emit(null))}finally{f.isStable=!0}}}function sm(f){f.hasPendingMicrotasks=!!(f._hasPendingMicrotasks||(f.shouldCoalesceEventChangeDetection||f.shouldCoalesceRunChangeDetection)&&-1!==f.lastRequestAnimationFrameId)}function gb(f){f._nesting++,f.isStable&&(f.isStable=!1,f.onUnstable.emit(null))}function mb(f){f._nesting--,vf(f)}class FC{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new xc,this.onMicrotaskEmpty=new xc,this.onStable=new xc,this.onError=new xc}run(S,F,tt){return S.apply(F,tt)}runGuarded(S,F,tt){return S.apply(F,tt)}runOutsideAngular(S){return S()}runTask(S,F,tt,ct){return S.apply(F,tt)}}const vb=new oo(""),yb=new oo("");let am,BC=(()=>{class f{constructor(F,tt,ct){this._ngZone=F,this.registry=tt,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,am||(function zC(f){am=f}(ct),ct.addToWindow(tt)),this._watchAngularEvents(),F.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Xo.assertNotInAngularZone(),rm(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())rm(()=>{for(;0!==this._callbacks.length;){let F=this._callbacks.pop();clearTimeout(F.timeoutId),F.doneCb(this._didWork)}this._didWork=!1});else{let F=this.getPendingTasks();this._callbacks=this._callbacks.filter(tt=>!tt.updateCb||!tt.updateCb(F)||(clearTimeout(tt.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(F=>({source:F.source,creationLocation:F.creationLocation,data:F.data})):[]}addCallback(F,tt,ct){let ft=-1;tt&&tt>0&&(ft=setTimeout(()=>{this._callbacks=this._callbacks.filter(Tt=>Tt.timeoutId!==ft),F(this._didWork,this.getPendingTasks())},tt)),this._callbacks.push({doneCb:F,timeoutId:ft,updateCb:ct})}whenStable(F,tt,ct){if(ct&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(F,tt,ct),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(F){this.registry.registerApplication(F,this)}unregisterApplication(F){this.registry.unregisterApplication(F)}findProviders(F,tt,ct){return[]}}return f.\u0275fac=function(F){return new(F||f)(Ue(Xo),Ue(xb),Ue(yb))},f.\u0275prov=U({token:f,factory:f.\u0275fac}),f})(),xb=(()=>{class f{constructor(){this._applications=new Map}registerApplication(F,tt){this._applications.set(F,tt)}unregisterApplication(F){this._applications.delete(F)}unregisterAllApplications(){this._applications.clear()}getTestability(F){return this._applications.get(F)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(F,tt=!0){return am?.findTestabilityInTree(this,F,tt)??null}}return f.\u0275fac=function(F){return new(F||f)},f.\u0275prov=U({token:f,factory:f.\u0275fac,providedIn:"platform"}),f})(),Dh=null;const _b=new oo("AllowMultipleToken"),n0=new oo("PlatformDestroyListeners");class GC{constructor(S,F){this.name=S,this.token=F}}function Cb(f,S,F=[]){const tt=`Platform: ${S}`,ct=new oo(tt);return(ft=[])=>{let Tt=o0();if(!Tt||Tt.injector.get(_b,!1)){const Nt=[...F,...ft,{provide:ct,useValue:!0}];f?f(Nt):function VC(f){if(Dh&&!Dh.get(_b,!1))throw new T(400,!1);Dh=f;const S=f.get(wb);(function bb(f){const S=f.get(ff,null);S&&S.forEach(F=>F())})(f)}(function lm(f=[],S){return yh.create({name:S,providers:[{provide:no,useValue:"platform"},{provide:n0,useValue:new Set([()=>Dh=null])},...f]})}(Nt,tt))}return function WC(f){const S=o0();if(!S)throw new T(401,!1);return S}()}}function o0(){return Dh?.get(wb)??null}let wb=(()=>{class f{constructor(F){this._injector=F,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(F,tt){const ct=function Tb(f,S){let F;return F="noop"===f?new FC:("zone.js"===f?void 0:f)||new Xo(S),F}(tt?.ngZone,function r0(f){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!f||!f.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!f||!f.ngZoneRunCoalescing)||!1}}(tt)),ft=[{provide:Xo,useValue:ct}];return ct.run(()=>{const Tt=yh.create({providers:ft,parent:this.injector,name:F.moduleType.name}),Nt=F.create(Tt),Vt=Nt.injector.get(dc,null);if(!Vt)throw new T(402,!1);return ct.runOutsideAngular(()=>{const te=ct.onError.subscribe({next:ae=>{Vt.handleError(ae)}});Nt.onDestroy(()=>{yf(this._modules,Nt),te.unsubscribe()})}),function Sb(f,S,F){try{const tt=F();return ug(tt)?tt.catch(ct=>{throw S.runOutsideAngular(()=>f.handleError(ct)),ct}):tt}catch(tt){throw S.runOutsideAngular(()=>f.handleError(tt)),tt}}(Vt,ct,()=>{const te=Nt.injector.get(tm);return te.runInitializers(),te.donePromise.then(()=>(Ix(Nt.injector.get(bc,wu)||wu),this._moduleDoBootstrap(Nt),Nt))})})}bootstrapModule(F,tt=[]){const ct=Mb({},tt);return function jC(f,S,F){const tt=new Wg(F);return Promise.resolve(tt)}(0,0,F).then(ft=>this.bootstrapModuleFactory(ft,ct))}_moduleDoBootstrap(F){const tt=F.injector.get(cm);if(F._bootstrapComponents.length>0)F._bootstrapComponents.forEach(ct=>tt.bootstrap(ct));else{if(!F.instance.ngDoBootstrap)throw new T(403,!1);F.instance.ngDoBootstrap(tt)}this._modules.push(F)}onDestroy(F){this._destroyListeners.push(F)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new T(404,!1);this._modules.slice().forEach(tt=>tt.destroy()),this._destroyListeners.forEach(tt=>tt());const F=this._injector.get(n0,null);F&&(F.forEach(tt=>tt()),F.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return f.\u0275fac=function(F){return new(F||f)(Ue(yh))},f.\u0275prov=U({token:f,factory:f.\u0275fac,providedIn:"platform"}),f})();function Mb(f,S){return Array.isArray(S)?S.reduce(Mb,f):{...f,...S}}let cm=(()=>{class f{constructor(F,tt,ct){this._zone=F,this._injector=tt,this._exceptionHandler=ct,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const ft=new Rt.y(Nt=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{Nt.next(this._stable),Nt.complete()})}),Tt=new Rt.y(Nt=>{let Vt;this._zone.runOutsideAngular(()=>{Vt=this._zone.onStable.subscribe(()=>{Xo.assertNotInAngularZone(),rm(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,Nt.next(!0))})})});const te=this._zone.onUnstable.subscribe(()=>{Xo.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{Nt.next(!1)}))});return()=>{Vt.unsubscribe(),te.unsubscribe()}});this.isStable=(0,$.T)(ft,Tt.pipe((0,V.B)()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(F,tt){const ct=F instanceof ac;if(!this._injector.get(tm).done)throw!ct&&Qi(F),new T(405,false);let Tt;Tt=ct?F:this._injector.get(hc).resolveComponentFactory(F),this.componentTypes.push(Tt.componentType);const Nt=function HC(f){return f.isBoundToModule}(Tt)?void 0:this._injector.get(Du),te=Tt.create(yh.NULL,[],tt||Tt.selector,Nt),ae=te.location.nativeElement,be=te.injector.get(vb,null);return be?.registerApplication(ae),te.onDestroy(()=>{this.detachView(te.hostView),yf(this.components,te),be?.unregisterApplication(ae)}),this._loadComponent(te),te}tick(){if(this._runningTick)throw new T(101,!1);try{this._runningTick=!0;for(let F of this._views)F.detectChanges()}catch(F){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(F))}finally{this._runningTick=!1}}attachView(F){const tt=F;this._views.push(tt),tt.attachToAppRef(this)}detachView(F){const tt=F;yf(this._views,tt),tt.detachFromAppRef()}_loadComponent(F){this.attachView(F.hostView),this.tick(),this.components.push(F);const tt=this._injector.get(im,[]);tt.push(...this._bootstrapListeners),tt.forEach(ct=>ct(F))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(F=>F()),this._views.slice().forEach(F=>F.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(F){return this._destroyListeners.push(F),()=>yf(this._destroyListeners,F)}destroy(){if(this._destroyed)throw new T(406,!1);const F=this._injector;F.destroy&&!F.destroyed&&F.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return f.\u0275fac=function(F){return new(F||f)(Ue(Xo),Ue(wr),Ue(dc))},f.\u0275prov=U({token:f,factory:f.\u0275fac,providedIn:"root"}),f})();function yf(f,S){const F=f.indexOf(S);F>-1&&f.splice(F,1)}function Db(){}let s0=(()=>{class f{}return f.__NG_ELEMENT_ID__=Ab,f})();function Ab(f){return function XC(f,S,F){if(tr(f)&&!F){const tt=po(f.index,S);return new pu(tt,tt)}return 47&f.type?new pu(S[16],S):null}(Bo(),ri(),16==(16&f))}class Ib{constructor(){}supports(S){return gu(S)}create(S){return new nw(S)}}const iw=(f,S)=>S;class nw{constructor(S){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=S||iw}forEachItem(S){let F;for(F=this._itHead;null!==F;F=F._next)S(F)}forEachOperation(S){let F=this._itHead,tt=this._removalsHead,ct=0,ft=null;for(;F||tt;){const Tt=!tt||F&&F.currentIndex{Tt=this._trackByFn(ct,Nt),null!==F&&Object.is(F.trackById,Tt)?(tt&&(F=this._verifyReinsertion(F,Nt,Tt,ct)),Object.is(F.item,Nt)||this._addIdentityChange(F,Nt)):(F=this._mismatch(F,Nt,Tt,ct),tt=!0),F=F._next,ct++}),this.length=ct;return this._truncate(F),this.collection=S,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let S;for(S=this._previousItHead=this._itHead;null!==S;S=S._next)S._nextPrevious=S._next;for(S=this._additionsHead;null!==S;S=S._nextAdded)S.previousIndex=S.currentIndex;for(this._additionsHead=this._additionsTail=null,S=this._movesHead;null!==S;S=S._nextMoved)S.previousIndex=S.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(S,F,tt,ct){let ft;return null===S?ft=this._itTail:(ft=S._prev,this._remove(S)),null!==(S=null===this._unlinkedRecords?null:this._unlinkedRecords.get(tt,null))?(Object.is(S.item,F)||this._addIdentityChange(S,F),this._reinsertAfter(S,ft,ct)):null!==(S=null===this._linkedRecords?null:this._linkedRecords.get(tt,ct))?(Object.is(S.item,F)||this._addIdentityChange(S,F),this._moveAfter(S,ft,ct)):S=this._addAfter(new Lb(F,tt),ft,ct),S}_verifyReinsertion(S,F,tt,ct){let ft=null===this._unlinkedRecords?null:this._unlinkedRecords.get(tt,null);return null!==ft?S=this._reinsertAfter(ft,S._prev,ct):S.currentIndex!=ct&&(S.currentIndex=ct,this._addToMoves(S,ct)),S}_truncate(S){for(;null!==S;){const F=S._next;this._addToRemovals(this._unlink(S)),S=F}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(S,F,tt){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(S);const ct=S._prevRemoved,ft=S._nextRemoved;return null===ct?this._removalsHead=ft:ct._nextRemoved=ft,null===ft?this._removalsTail=ct:ft._prevRemoved=ct,this._insertAfter(S,F,tt),this._addToMoves(S,tt),S}_moveAfter(S,F,tt){return this._unlink(S),this._insertAfter(S,F,tt),this._addToMoves(S,tt),S}_addAfter(S,F,tt){return this._insertAfter(S,F,tt),this._additionsTail=null===this._additionsTail?this._additionsHead=S:this._additionsTail._nextAdded=S,S}_insertAfter(S,F,tt){const ct=null===F?this._itHead:F._next;return S._next=ct,S._prev=F,null===ct?this._itTail=S:ct._prev=S,null===F?this._itHead=S:F._next=S,null===this._linkedRecords&&(this._linkedRecords=new Rb),this._linkedRecords.put(S),S.currentIndex=tt,S}_remove(S){return this._addToRemovals(this._unlink(S))}_unlink(S){null!==this._linkedRecords&&this._linkedRecords.remove(S);const F=S._prev,tt=S._next;return null===F?this._itHead=tt:F._next=tt,null===tt?this._itTail=F:tt._prev=F,S}_addToMoves(S,F){return S.previousIndex===F||(this._movesTail=null===this._movesTail?this._movesHead=S:this._movesTail._nextMoved=S),S}_addToRemovals(S){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Rb),this._unlinkedRecords.put(S),S.currentIndex=null,S._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=S,S._prevRemoved=null):(S._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=S),S}_addIdentityChange(S,F){return S.item=F,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=S:this._identityChangesTail._nextIdentityChange=S,S}}class Lb{constructor(S,F){this.item=S,this.trackById=F,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class ow{constructor(){this._head=null,this._tail=null}add(S){null===this._head?(this._head=this._tail=S,S._nextDup=null,S._prevDup=null):(this._tail._nextDup=S,S._prevDup=this._tail,S._nextDup=null,this._tail=S)}get(S,F){let tt;for(tt=this._head;null!==tt;tt=tt._nextDup)if((null===F||F<=tt.currentIndex)&&Object.is(tt.trackById,S))return tt;return null}remove(S){const F=S._prevDup,tt=S._nextDup;return null===F?this._head=tt:F._nextDup=tt,null===tt?this._tail=F:tt._prevDup=F,null===this._head}}class Rb{constructor(){this.map=new Map}put(S){const F=S.trackById;let tt=this.map.get(F);tt||(tt=new ow,this.map.set(F,tt)),tt.add(S)}get(S,F){const ct=this.map.get(S);return ct?ct.get(S,F):null}remove(S){const F=S.trackById;return this.map.get(F).remove(S)&&this.map.delete(F),S}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Nb(f,S,F){const tt=f.previousIndex;if(null===tt)return tt;let ct=0;return F&&tt{if(F&&F.key===ct)this._maybeAddToChanges(F,tt),this._appendAfter=F,F=F._next;else{const ft=this._getOrCreateRecordForKey(ct,tt);F=this._insertBeforeOrAppend(F,ft)}}),F){F._prev&&(F._prev._next=null),this._removalsHead=F;for(let tt=F;null!==tt;tt=tt._nextRemoved)tt===this._mapHead&&(this._mapHead=null),this._records.delete(tt.key),tt._nextRemoved=tt._next,tt.previousValue=tt.currentValue,tt.currentValue=null,tt._prev=null,tt._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(S,F){if(S){const tt=S._prev;return F._next=S,F._prev=tt,S._prev=F,tt&&(tt._next=F),S===this._mapHead&&(this._mapHead=F),this._appendAfter=S,S}return this._appendAfter?(this._appendAfter._next=F,F._prev=this._appendAfter):this._mapHead=F,this._appendAfter=F,null}_getOrCreateRecordForKey(S,F){if(this._records.has(S)){const ct=this._records.get(S);this._maybeAddToChanges(ct,F);const ft=ct._prev,Tt=ct._next;return ft&&(ft._next=Tt),Tt&&(Tt._prev=ft),ct._next=null,ct._prev=null,ct}const tt=new Bb(S);return this._records.set(S,tt),tt.currentValue=F,this._addToAdditions(tt),tt}_reset(){if(this.isDirty){let S;for(this._previousMapHead=this._mapHead,S=this._previousMapHead;null!==S;S=S._next)S._nextPrevious=S._next;for(S=this._changesHead;null!==S;S=S._nextChanged)S.previousValue=S.currentValue;for(S=this._additionsHead;null!=S;S=S._nextAdded)S.previousValue=S.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(S,F){Object.is(F,S.currentValue)||(S.previousValue=S.currentValue,S.currentValue=F,this._addToChanges(S))}_addToAdditions(S){null===this._additionsHead?this._additionsHead=this._additionsTail=S:(this._additionsTail._nextAdded=S,this._additionsTail=S)}_addToChanges(S){null===this._changesHead?this._changesHead=this._changesTail=S:(this._changesTail._nextChanged=S,this._changesTail=S)}_forEach(S,F){S instanceof Map?S.forEach(F):Object.keys(S).forEach(tt=>F(S[tt],tt))}}class Bb{constructor(S){this.key=S,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function h0(){return new um([new Ib])}let um=(()=>{class f{constructor(F){this.factories=F}static create(F,tt){if(null!=tt){const ct=tt.factories.slice();F=F.concat(ct)}return new f(F)}static extend(F){return{provide:f,useFactory:tt=>f.create(F,tt||h0()),deps:[[f,new Nc,new Rs]]}}find(F){const tt=this.factories.find(ct=>ct.supports(F));if(null!=tt)return tt;throw new T(901,!1)}}return f.\u0275prov=U({token:f,providedIn:"root",factory:h0}),f})();function Ou(){return new pm([new Fb])}let pm=(()=>{class f{constructor(F){this.factories=F}static create(F,tt){if(tt){const ct=tt.factories.slice();F=F.concat(ct)}return new f(F)}static extend(F){return{provide:f,useFactory:tt=>f.create(F,tt||Ou()),deps:[[f,new Nc,new Rs]]}}find(F){const tt=this.factories.find(ct=>ct.supports(F));if(tt)return tt;throw new T(901,!1)}}return f.\u0275prov=U({token:f,providedIn:"root",factory:Ou}),f})();const Hb=Cb(null,"core",[]);let fm=(()=>{class f{constructor(F){}}return f.\u0275fac=function(F){return new(F||f)(Ue(cm))},f.\u0275mod=Go({type:f}),f.\u0275inj=v({}),f})();function aw(f){return"boolean"==typeof f?f:null!=f&&"false"!==f}function Ub(f,S){const F=Re(f),tt=S.elementInjector||vo();return new Rp(F).create(tt,S.projectableNodes,S.hostElement,S.environmentInjector)}},24006:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{Cf:()=>y,Fj:()=>N,JJ:()=>Lt,JL:()=>Ft,JU:()=>ot,On:()=>No,UX:()=>po,Wl:()=>et,_Y:()=>Gn,gN:()=>J,kI:()=>w,qQ:()=>ir,qu:()=>Sa,sg:()=>Io,u:()=>hs,u5:()=>Hr,wV:()=>Mr,x0:()=>er});var A=Bt(94650),t=Bt(36895),Rt=Bt(50457),$=Bt(4128),V=Bt(54004);let Y=(()=>{class qt{constructor(Ut,ce){this._renderer=Ut,this._elementRef=ce,this.onChange=$e=>{},this.onTouched=()=>{}}setProperty(Ut,ce){this._renderer.setProperty(this._elementRef.nativeElement,Ut,ce)}registerOnTouched(Ut){this.onTouched=Ut}registerOnChange(Ut){this.onChange=Ut}setDisabledState(Ut){this.setProperty("disabled",Ut)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(A.Qsj),A.Y36(A.SBq))},qt.\u0275dir=A.lG2({type:qt}),qt})(),K=(()=>{class qt extends Y{}return qt.\u0275fac=function(){let Xt;return function(ce){return(Xt||(Xt=A.n5z(qt)))(ce||qt)}}(),qt.\u0275dir=A.lG2({type:qt,features:[A.qOj]}),qt})();const ot=new A.OlP("NgValueAccessor"),it={provide:ot,useExisting:(0,A.Gpc)(()=>et),multi:!0};let et=(()=>{class qt extends K{writeValue(Ut){this.setProperty("checked",Ut)}}return qt.\u0275fac=function(){let Xt;return function(ce){return(Xt||(Xt=A.n5z(qt)))(ce||qt)}}(),qt.\u0275dir=A.lG2({type:qt,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(Ut,ce){1&Ut&&A.NdJ("change",function(vi){return ce.onChange(vi.target.checked)})("blur",function(){return ce.onTouched()})},features:[A._Bn([it]),A.qOj]}),qt})();const nt={provide:ot,useExisting:(0,A.Gpc)(()=>N),multi:!0},G=new A.OlP("CompositionEventMode");let N=(()=>{class qt extends Y{constructor(Ut,ce,$e){super(Ut,ce),this._compositionMode=$e,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function W(){const qt=(0,t.q)()?(0,t.q)().getUserAgent():"";return/android (\d+)/.test(qt.toLowerCase())}())}writeValue(Ut){this.setProperty("value",Ut??"")}_handleInput(Ut){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ut)}_compositionStart(){this._composing=!0}_compositionEnd(Ut){this._composing=!1,this._compositionMode&&this.onChange(Ut)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(A.Qsj),A.Y36(A.SBq),A.Y36(G,8))},qt.\u0275dir=A.lG2({type:qt,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(Ut,ce){1&Ut&&A.NdJ("input",function(vi){return ce._handleInput(vi.target.value)})("blur",function(){return ce.onTouched()})("compositionstart",function(){return ce._compositionStart()})("compositionend",function(vi){return ce._compositionEnd(vi.target.value)})},features:[A._Bn([nt]),A.qOj]}),qt})();function g(qt){return null==qt||("string"==typeof qt||Array.isArray(qt))&&0===qt.length}function T(qt){return null!=qt&&"number"==typeof qt.length}const y=new A.OlP("NgValidators"),C=new A.OlP("NgAsyncValidators"),x=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class w{static min(Xt){return E(Xt)}static max(Xt){return function z(qt){return Xt=>{if(g(Xt.value)||g(qt))return null;const Ut=parseFloat(Xt.value);return!isNaN(Ut)&&Ut>qt?{max:{max:qt,actual:Xt.value}}:null}}(Xt)}static required(Xt){return function L(qt){return g(qt.value)?{required:!0}:null}(Xt)}static requiredTrue(Xt){return function _(qt){return!0===qt.value?null:{required:!0}}(Xt)}static email(Xt){return function l(qt){return g(qt.value)||x.test(qt.value)?null:{email:!0}}(Xt)}static minLength(Xt){return function m(qt){return Xt=>g(Xt.value)||!T(Xt.value)?null:Xt.value.lengthT(Xt.value)&&Xt.value.length>qt?{maxlength:{requiredLength:qt,actualLength:Xt.value.length}}:null}(Xt)}static pattern(Xt){return function a(qt){if(!qt)return n;let Xt,Ut;return"string"==typeof qt?(Ut="","^"!==qt.charAt(0)&&(Ut+="^"),Ut+=qt,"$"!==qt.charAt(qt.length-1)&&(Ut+="$"),Xt=new RegExp(Ut)):(Ut=qt.toString(),Xt=qt),ce=>{if(g(ce.value))return null;const $e=ce.value;return Xt.test($e)?null:{pattern:{requiredPattern:Ut,actualValue:$e}}}}(Xt)}static nullValidator(Xt){return null}static compose(Xt){return P(Xt)}static composeAsync(Xt){return j(Xt)}}function E(qt){return Xt=>{if(g(Xt.value)||g(qt))return null;const Ut=parseFloat(Xt.value);return!isNaN(Ut)&&Ut{Xt=null!=Ut?{...Xt,...Ut}:Xt}),0===Object.keys(Xt).length?null:Xt}function p(qt,Xt){return Xt.map(Ut=>Ut(qt))}function k(qt){return qt.map(Xt=>function h(qt){return!qt.validate}(Xt)?Xt:Ut=>Xt.validate(Ut))}function P(qt){if(!qt)return null;const Xt=qt.filter(r);return 0==Xt.length?null:function(Ut){return o(p(Ut,Xt))}}function X(qt){return null!=qt?P(k(qt)):null}function j(qt){if(!qt)return null;const Xt=qt.filter(r);return 0==Xt.length?null:function(Ut){const ce=p(Ut,Xt).map(e);return(0,$.D)(ce).pipe((0,V.U)(o))}}function c(qt){return null!=qt?j(k(qt)):null}function d(qt,Xt){return null===qt?[Xt]:Array.isArray(qt)?[...qt,Xt]:[qt,Xt]}function I(qt){return qt._rawValidators}function U(qt){return qt._rawAsyncValidators}function H(qt){return qt?Array.isArray(qt)?qt:[qt]:[]}function v(qt,Xt){return Array.isArray(qt)?qt.includes(Xt):qt===Xt}function R(qt,Xt){const Ut=H(Xt);return H(qt).forEach($e=>{v(Ut,$e)||Ut.push($e)}),Ut}function B(qt,Xt){return H(Xt).filter(Ut=>!v(qt,Ut))}class Q{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(Xt){this._rawValidators=Xt||[],this._composedValidatorFn=X(this._rawValidators)}_setAsyncValidators(Xt){this._rawAsyncValidators=Xt||[],this._composedAsyncValidatorFn=c(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(Xt){this._onDestroyCallbacks.push(Xt)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(Xt=>Xt()),this._onDestroyCallbacks=[]}reset(Xt){this.control&&this.control.reset(Xt)}hasError(Xt,Ut){return!!this.control&&this.control.hasError(Xt,Ut)}getError(Xt,Ut){return this.control?this.control.getError(Xt,Ut):null}}class J extends Q{get formDirective(){return null}get path(){return null}}class rt extends Q{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class ut{constructor(Xt){this._cd=Xt}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Lt=(()=>{class qt extends ut{constructor(Ut){super(Ut)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(rt,2))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(Ut,ce){2&Ut&&A.ekj("ng-untouched",ce.isUntouched)("ng-touched",ce.isTouched)("ng-pristine",ce.isPristine)("ng-dirty",ce.isDirty)("ng-valid",ce.isValid)("ng-invalid",ce.isInvalid)("ng-pending",ce.isPending)},features:[A.qOj]}),qt})(),Ft=(()=>{class qt extends ut{constructor(Ut){super(Ut)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(J,10))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(Ut,ce){2&Ut&&A.ekj("ng-untouched",ce.isUntouched)("ng-touched",ce.isTouched)("ng-pristine",ce.isPristine)("ng-dirty",ce.isDirty)("ng-valid",ce.isValid)("ng-invalid",ce.isInvalid)("ng-pending",ce.isPending)("ng-submitted",ce.isSubmitted)},features:[A.qOj]}),qt})();const me="VALID",qe="INVALID",Ue="PENDING",Ze="DISABLED";function Ne(qt){return(ni(qt)?qt.validators:qt)||null}function _e(qt,Xt){return(ni(Xt)?Xt.asyncValidators:qt)||null}function ni(qt){return null!=qt&&!Array.isArray(qt)&&"object"==typeof qt}function Ui(qt,Xt,Ut){const ce=qt.controls;if(!(Xt?Object.keys(ce):ce).length)throw new A.vHH(1e3,"");if(!ce[Ut])throw new A.vHH(1001,"")}function Ji(qt,Xt,Ut){qt._forEachChild((ce,$e)=>{if(void 0===Ut[$e])throw new A.vHH(1002,"")})}class pn{constructor(Xt,Ut){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(Xt),this._assignAsyncValidators(Ut)}get validator(){return this._composedValidatorFn}set validator(Xt){this._rawValidators=this._composedValidatorFn=Xt}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(Xt){this._rawAsyncValidators=this._composedAsyncValidatorFn=Xt}get parent(){return this._parent}get valid(){return this.status===me}get invalid(){return this.status===qe}get pending(){return this.status==Ue}get disabled(){return this.status===Ze}get enabled(){return this.status!==Ze}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(Xt){this._assignValidators(Xt)}setAsyncValidators(Xt){this._assignAsyncValidators(Xt)}addValidators(Xt){this.setValidators(R(Xt,this._rawValidators))}addAsyncValidators(Xt){this.setAsyncValidators(R(Xt,this._rawAsyncValidators))}removeValidators(Xt){this.setValidators(B(Xt,this._rawValidators))}removeAsyncValidators(Xt){this.setAsyncValidators(B(Xt,this._rawAsyncValidators))}hasValidator(Xt){return v(this._rawValidators,Xt)}hasAsyncValidator(Xt){return v(this._rawAsyncValidators,Xt)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(Xt={}){this.touched=!0,this._parent&&!Xt.onlySelf&&this._parent.markAsTouched(Xt)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(Xt=>Xt.markAllAsTouched())}markAsUntouched(Xt={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ut=>{Ut.markAsUntouched({onlySelf:!0})}),this._parent&&!Xt.onlySelf&&this._parent._updateTouched(Xt)}markAsDirty(Xt={}){this.pristine=!1,this._parent&&!Xt.onlySelf&&this._parent.markAsDirty(Xt)}markAsPristine(Xt={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ut=>{Ut.markAsPristine({onlySelf:!0})}),this._parent&&!Xt.onlySelf&&this._parent._updatePristine(Xt)}markAsPending(Xt={}){this.status=Ue,!1!==Xt.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!Xt.onlySelf&&this._parent.markAsPending(Xt)}disable(Xt={}){const Ut=this._parentMarkedDirty(Xt.onlySelf);this.status=Ze,this.errors=null,this._forEachChild(ce=>{ce.disable({...Xt,onlySelf:!0})}),this._updateValue(),!1!==Xt.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...Xt,skipPristineCheck:Ut}),this._onDisabledChange.forEach(ce=>ce(!0))}enable(Xt={}){const Ut=this._parentMarkedDirty(Xt.onlySelf);this.status=me,this._forEachChild(ce=>{ce.enable({...Xt,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:Xt.emitEvent}),this._updateAncestors({...Xt,skipPristineCheck:Ut}),this._onDisabledChange.forEach(ce=>ce(!1))}_updateAncestors(Xt){this._parent&&!Xt.onlySelf&&(this._parent.updateValueAndValidity(Xt),Xt.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(Xt){this._parent=Xt}getRawValue(){return this.value}updateValueAndValidity(Xt={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===me||this.status===Ue)&&this._runAsyncValidator(Xt.emitEvent)),!1!==Xt.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!Xt.onlySelf&&this._parent.updateValueAndValidity(Xt)}_updateTreeValidity(Xt={emitEvent:!0}){this._forEachChild(Ut=>Ut._updateTreeValidity(Xt)),this.updateValueAndValidity({onlySelf:!0,emitEvent:Xt.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Ze:me}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(Xt){if(this.asyncValidator){this.status=Ue,this._hasOwnPendingAsyncValidator=!0;const Ut=e(this.asyncValidator(this));this._asyncValidationSubscription=Ut.subscribe(ce=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(ce,{emitEvent:Xt})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(Xt,Ut={}){this.errors=Xt,this._updateControlsErrors(!1!==Ut.emitEvent)}get(Xt){let Ut=Xt;return null==Ut||(Array.isArray(Ut)||(Ut=Ut.split(".")),0===Ut.length)?null:Ut.reduce((ce,$e)=>ce&&ce._find($e),this)}getError(Xt,Ut){const ce=Ut?this.get(Ut):this;return ce&&ce.errors?ce.errors[Xt]:null}hasError(Xt,Ut){return!!this.getError(Xt,Ut)}get root(){let Xt=this;for(;Xt._parent;)Xt=Xt._parent;return Xt}_updateControlsErrors(Xt){this.status=this._calculateStatus(),Xt&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(Xt)}_initObservables(){this.valueChanges=new A.vpe,this.statusChanges=new A.vpe}_calculateStatus(){return this._allControlsDisabled()?Ze:this.errors?qe:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ue)?Ue:this._anyControlsHaveStatus(qe)?qe:me}_anyControlsHaveStatus(Xt){return this._anyControls(Ut=>Ut.status===Xt)}_anyControlsDirty(){return this._anyControls(Xt=>Xt.dirty)}_anyControlsTouched(){return this._anyControls(Xt=>Xt.touched)}_updatePristine(Xt={}){this.pristine=!this._anyControlsDirty(),this._parent&&!Xt.onlySelf&&this._parent._updatePristine(Xt)}_updateTouched(Xt={}){this.touched=this._anyControlsTouched(),this._parent&&!Xt.onlySelf&&this._parent._updateTouched(Xt)}_registerOnCollectionChange(Xt){this._onCollectionChange=Xt}_setUpdateStrategy(Xt){ni(Xt)&&null!=Xt.updateOn&&(this._updateOn=Xt.updateOn)}_parentMarkedDirty(Xt){return!Xt&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(Xt){return null}_assignValidators(Xt){this._rawValidators=Array.isArray(Xt)?Xt.slice():Xt,this._composedValidatorFn=function ue(qt){return Array.isArray(qt)?X(qt):qt||null}(this._rawValidators)}_assignAsyncValidators(Xt){this._rawAsyncValidators=Array.isArray(Xt)?Xt.slice():Xt,this._composedAsyncValidatorFn=function Ve(qt){return Array.isArray(qt)?c(qt):qt||null}(this._rawAsyncValidators)}}class Ei extends pn{constructor(Xt,Ut,ce){super(Ne(Ut),_e(ce,Ut)),this.controls=Xt,this._initObservables(),this._setUpdateStrategy(Ut),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(Xt,Ut){return this.controls[Xt]?this.controls[Xt]:(this.controls[Xt]=Ut,Ut.setParent(this),Ut._registerOnCollectionChange(this._onCollectionChange),Ut)}addControl(Xt,Ut,ce={}){this.registerControl(Xt,Ut),this.updateValueAndValidity({emitEvent:ce.emitEvent}),this._onCollectionChange()}removeControl(Xt,Ut={}){this.controls[Xt]&&this.controls[Xt]._registerOnCollectionChange(()=>{}),delete this.controls[Xt],this.updateValueAndValidity({emitEvent:Ut.emitEvent}),this._onCollectionChange()}setControl(Xt,Ut,ce={}){this.controls[Xt]&&this.controls[Xt]._registerOnCollectionChange(()=>{}),delete this.controls[Xt],Ut&&this.registerControl(Xt,Ut),this.updateValueAndValidity({emitEvent:ce.emitEvent}),this._onCollectionChange()}contains(Xt){return this.controls.hasOwnProperty(Xt)&&this.controls[Xt].enabled}setValue(Xt,Ut={}){Ji(this,0,Xt),Object.keys(Xt).forEach(ce=>{Ui(this,!0,ce),this.controls[ce].setValue(Xt[ce],{onlySelf:!0,emitEvent:Ut.emitEvent})}),this.updateValueAndValidity(Ut)}patchValue(Xt,Ut={}){null!=Xt&&(Object.keys(Xt).forEach(ce=>{const $e=this.controls[ce];$e&&$e.patchValue(Xt[ce],{onlySelf:!0,emitEvent:Ut.emitEvent})}),this.updateValueAndValidity(Ut))}reset(Xt={},Ut={}){this._forEachChild((ce,$e)=>{ce.reset(Xt[$e],{onlySelf:!0,emitEvent:Ut.emitEvent})}),this._updatePristine(Ut),this._updateTouched(Ut),this.updateValueAndValidity(Ut)}getRawValue(){return this._reduceChildren({},(Xt,Ut,ce)=>(Xt[ce]=Ut.getRawValue(),Xt))}_syncPendingControls(){let Xt=this._reduceChildren(!1,(Ut,ce)=>!!ce._syncPendingControls()||Ut);return Xt&&this.updateValueAndValidity({onlySelf:!0}),Xt}_forEachChild(Xt){Object.keys(this.controls).forEach(Ut=>{const ce=this.controls[Ut];ce&&Xt(ce,Ut)})}_setUpControls(){this._forEachChild(Xt=>{Xt.setParent(this),Xt._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(Xt){for(const[Ut,ce]of Object.entries(this.controls))if(this.contains(Ut)&&Xt(ce))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ut,ce,$e)=>((ce.enabled||this.disabled)&&(Ut[$e]=ce.value),Ut))}_reduceChildren(Xt,Ut){let ce=Xt;return this._forEachChild(($e,vi)=>{ce=Ut(ce,$e,vi)}),ce}_allControlsDisabled(){for(const Xt of Object.keys(this.controls))if(this.controls[Xt].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(Xt){return this.controls.hasOwnProperty(Xt)?this.controls[Xt]:null}}class hn extends Ei{}const Ci=new A.OlP("CallSetDisabledState",{providedIn:"root",factory:()=>Le}),Le="always";function Pe(qt,Xt){return[...Xt.path,qt]}function xe(qt,Xt,Ut=Le){Yi(qt,Xt),Xt.valueAccessor.writeValue(qt.value),(qt.disabled||"always"===Ut)&&Xt.valueAccessor.setDisabledState?.(qt.disabled),function To(qt,Xt){Xt.valueAccessor.registerOnChange(Ut=>{qt._pendingValue=Ut,qt._pendingChange=!0,qt._pendingDirty=!0,"change"===qt.updateOn&&Qn(qt,Xt)})}(qt,Xt),function Go(qt,Xt){const Ut=(ce,$e)=>{Xt.valueAccessor.writeValue(ce),$e&&Xt.viewToModelUpdate(ce)};qt.registerOnChange(Ut),Xt._registerOnDestroy(()=>{qt._unregisterOnChange(Ut)})}(qt,Xt),function Zo(qt,Xt){Xt.valueAccessor.registerOnTouched(()=>{qt._pendingTouched=!0,"blur"===qt.updateOn&&qt._pendingChange&&Qn(qt,Xt),"submit"!==qt.updateOn&&qt.markAsTouched()})}(qt,Xt),function Li(qt,Xt){if(Xt.valueAccessor.setDisabledState){const Ut=ce=>{Xt.valueAccessor.setDisabledState(ce)};qt.registerOnDisabledChange(Ut),Xt._registerOnDestroy(()=>{qt._unregisterOnDisabledChange(Ut)})}}(qt,Xt)}function Be(qt,Xt,Ut=!0){const ce=()=>{};Xt.valueAccessor&&(Xt.valueAccessor.registerOnChange(ce),Xt.valueAccessor.registerOnTouched(ce)),Hn(qt,Xt),qt&&(Xt._invokeOnDestroyCallbacks(),qt._registerOnCollectionChange(()=>{}))}function oi(qt,Xt){qt.forEach(Ut=>{Ut.registerOnValidatorChange&&Ut.registerOnValidatorChange(Xt)})}function Yi(qt,Xt){const Ut=I(qt);null!==Xt.validator?qt.setValidators(d(Ut,Xt.validator)):"function"==typeof Ut&&qt.setValidators([Ut]);const ce=U(qt);null!==Xt.asyncValidator?qt.setAsyncValidators(d(ce,Xt.asyncValidator)):"function"==typeof ce&&qt.setAsyncValidators([ce]);const $e=()=>qt.updateValueAndValidity();oi(Xt._rawValidators,$e),oi(Xt._rawAsyncValidators,$e)}function Hn(qt,Xt){let Ut=!1;if(null!==qt){if(null!==Xt.validator){const $e=I(qt);if(Array.isArray($e)&&$e.length>0){const vi=$e.filter(yo=>yo!==Xt.validator);vi.length!==$e.length&&(Ut=!0,qt.setValidators(vi))}}if(null!==Xt.asyncValidator){const $e=U(qt);if(Array.isArray($e)&&$e.length>0){const vi=$e.filter(yo=>yo!==Xt.asyncValidator);vi.length!==$e.length&&(Ut=!0,qt.setAsyncValidators(vi))}}}const ce=()=>{};return oi(Xt._rawValidators,ce),oi(Xt._rawAsyncValidators,ce),Ut}function Qn(qt,Xt){qt._pendingDirty&&qt.markAsDirty(),qt.setValue(qt._pendingValue,{emitModelToViewChange:!1}),Xt.viewToModelUpdate(qt._pendingValue),qt._pendingChange=!1}function Qi(qt,Xt){if(!qt.hasOwnProperty("model"))return!1;const Ut=qt.model;return!!Ut.isFirstChange()||!Object.is(Xt,Ut.currentValue)}function mi(qt,Xt){if(!Xt)return null;let Ut,ce,$e;return Array.isArray(Xt),Xt.forEach(vi=>{vi.constructor===N?Ut=vi:function kn(qt){return Object.getPrototypeOf(qt.constructor)===K}(vi)?ce=vi:$e=vi}),$e||ce||Ut||null}function ar(qt,Xt){const Ut=qt.indexOf(Xt);Ut>-1&&qt.splice(Ut,1)}function wn(qt){return"object"==typeof qt&&null!==qt&&2===Object.keys(qt).length&&"value"in qt&&"disabled"in qt}const lr=class extends pn{constructor(Xt=null,Ut,ce){super(Ne(Ut),_e(ce,Ut)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(Xt),this._setUpdateStrategy(Ut),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ni(Ut)&&(Ut.nonNullable||Ut.initialValueIsDefault)&&(this.defaultValue=wn(Xt)?Xt.value:Xt)}setValue(Xt,Ut={}){this.value=this._pendingValue=Xt,this._onChange.length&&!1!==Ut.emitModelToViewChange&&this._onChange.forEach(ce=>ce(this.value,!1!==Ut.emitViewToModelChange)),this.updateValueAndValidity(Ut)}patchValue(Xt,Ut={}){this.setValue(Xt,Ut)}reset(Xt=this.defaultValue,Ut={}){this._applyFormState(Xt),this.markAsPristine(Ut),this.markAsUntouched(Ut),this.setValue(this.value,Ut),this._pendingChange=!1}_updateValue(){}_anyControls(Xt){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(Xt){this._onChange.push(Xt)}_unregisterOnChange(Xt){ar(this._onChange,Xt)}registerOnDisabledChange(Xt){this._onDisabledChange.push(Xt)}_unregisterOnDisabledChange(Xt){ar(this._onDisabledChange,Xt)}_forEachChild(Xt){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(Xt){wn(Xt)?(this.value=this._pendingValue=Xt.value,Xt.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=Xt}};let Sr=(()=>{class qt extends J{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Pe(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return qt.\u0275fac=function(){let Xt;return function(ce){return(Xt||(Xt=A.n5z(qt)))(ce||qt)}}(),qt.\u0275dir=A.lG2({type:qt,features:[A.qOj]}),qt})();const $o={provide:rt,useExisting:(0,A.Gpc)(()=>No)},Zr=(()=>Promise.resolve())();let No=(()=>{class qt extends rt{constructor(Ut,ce,$e,vi,yo,ri){super(),this._changeDetectorRef=yo,this.callSetDisabledState=ri,this.control=new lr,this._registered=!1,this.update=new A.vpe,this._parent=Ut,this._setValidators(ce),this._setAsyncValidators($e),this.valueAccessor=mi(0,vi)}ngOnChanges(Ut){if(this._checkForErrors(),!this._registered||"name"in Ut){if(this._registered&&(this._checkName(),this.formDirective)){const ce=Ut.name.previousValue;this.formDirective.removeControl({name:ce,path:this._getPath(ce)})}this._setUpControl()}"isDisabled"in Ut&&this._updateDisabled(Ut),Qi(Ut,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ut){this.viewModel=Ut,this.update.emit(Ut)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){xe(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ut){Zr.then(()=>{this.control.setValue(Ut,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ut){const ce=Ut.isDisabled.currentValue,$e=0!==ce&&(0,A.D6c)(ce);Zr.then(()=>{$e&&!this.control.disabled?this.control.disable():!$e&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ut){return this._parent?Pe(Ut,this._parent):[Ut]}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(J,9),A.Y36(y,10),A.Y36(C,10),A.Y36(ot,10),A.Y36(A.sBO,8),A.Y36(Ci,8))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[A._Bn([$o]),A.qOj,A.TTD]}),qt})(),Gn=(()=>{class qt{}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275dir=A.lG2({type:qt,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),qt})();const Ts={provide:ot,useExisting:(0,A.Gpc)(()=>Mr),multi:!0};let Mr=(()=>{class qt extends K{writeValue(Ut){this.setProperty("value",Ut??"")}registerOnChange(Ut){this.onChange=ce=>{Ut(""==ce?null:parseFloat(ce))}}}return qt.\u0275fac=function(){let Xt;return function(ce){return(Xt||(Xt=A.n5z(qt)))(ce||qt)}}(),qt.\u0275dir=A.lG2({type:qt,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(Ut,ce){1&Ut&&A.NdJ("input",function(vi){return ce.onChange(vi.target.value)})("blur",function(){return ce.onTouched()})},features:[A._Bn([Ts]),A.qOj]}),qt})(),Br=(()=>{class qt{}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275mod=A.oAB({type:qt}),qt.\u0275inj=A.cJS({}),qt})();const Fo=new A.OlP("NgModelWithFormControlWarning"),Ss={provide:J,useExisting:(0,A.Gpc)(()=>Io)};let Io=(()=>{class qt extends J{constructor(Ut,ce,$e){super(),this.callSetDisabledState=$e,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new A.vpe,this._setValidators(Ut),this._setAsyncValidators(ce)}ngOnChanges(Ut){this._checkFormPresent(),Ut.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Hn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ut){const ce=this.form.get(Ut.path);return xe(ce,Ut,this.callSetDisabledState),ce.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ut),ce}getControl(Ut){return this.form.get(Ut.path)}removeControl(Ut){Be(Ut.control||null,Ut,!1),function Ii(qt,Xt){const Ut=qt.indexOf(Xt);Ut>-1&&qt.splice(Ut,1)}(this.directives,Ut)}addFormGroup(Ut){this._setUpFormContainer(Ut)}removeFormGroup(Ut){this._cleanUpFormContainer(Ut)}getFormGroup(Ut){return this.form.get(Ut.path)}addFormArray(Ut){this._setUpFormContainer(Ut)}removeFormArray(Ut){this._cleanUpFormContainer(Ut)}getFormArray(Ut){return this.form.get(Ut.path)}updateModel(Ut,ce){this.form.get(Ut.path).setValue(ce)}onSubmit(Ut){return this.submitted=!0,function bn(qt,Xt){qt._syncPendingControls(),Xt.forEach(Ut=>{const ce=Ut.control;"submit"===ce.updateOn&&ce._pendingChange&&(Ut.viewToModelUpdate(ce._pendingValue),ce._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ut),"dialog"===Ut?.target?.method}onReset(){this.resetForm()}resetForm(Ut){this.form.reset(Ut),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ut=>{const ce=Ut.control,$e=this.form.get(Ut.path);ce!==$e&&(Be(ce||null,Ut),(qt=>qt instanceof lr)($e)&&(xe($e,Ut,this.callSetDisabledState),Ut.control=$e))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ut){const ce=this.form.get(Ut.path);(function Te(qt,Xt){Yi(qt,Xt)})(ce,Ut),ce.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ut){if(this.form){const ce=this.form.get(Ut.path);ce&&function Ce(qt,Xt){return Hn(qt,Xt)}(ce,Ut)&&ce.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){Yi(this.form,this),this._oldForm&&Hn(this._oldForm,this)}_checkFormPresent(){}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(y,10),A.Y36(C,10),A.Y36(Ci,8))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","formGroup",""]],hostBindings:function(Ut,ce){1&Ut&&A.NdJ("submit",function(vi){return ce.onSubmit(vi)})("reset",function(){return ce.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[A._Bn([Ss]),A.qOj,A.TTD]}),qt})();const ya={provide:J,useExisting:(0,A.Gpc)(()=>er)};let er=(()=>{class qt extends Sr{constructor(Ut,ce,$e){super(),this._parent=Ut,this._setValidators(ce),this._setAsyncValidators($e)}_checkParentType(){cs(this._parent)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(J,13),A.Y36(y,10),A.Y36(C,10))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[A._Bn([ya]),A.qOj]}),qt})();const Vs={provide:J,useExisting:(0,A.Gpc)(()=>Ms)};let Ms=(()=>{class qt extends J{constructor(Ut,ce,$e){super(),this._parent=Ut,this._setValidators(ce),this._setAsyncValidators($e)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Pe(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){cs(this._parent)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(J,13),A.Y36(y,10),A.Y36(C,10))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[A._Bn([Vs]),A.qOj]}),qt})();function cs(qt){return!(qt instanceof er||qt instanceof Io||qt instanceof Ms)}const Ua={provide:rt,useExisting:(0,A.Gpc)(()=>hs)};let hs=(()=>{class qt extends rt{constructor(Ut,ce,$e,vi,yo){super(),this._ngModelWarningConfig=yo,this._added=!1,this.update=new A.vpe,this._ngModelWarningSent=!1,this._parent=Ut,this._setValidators(ce),this._setAsyncValidators($e),this.valueAccessor=mi(0,vi)}set isDisabled(Ut){}ngOnChanges(Ut){this._added||this._setUpControl(),Qi(Ut,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ut){this.viewModel=Ut,this.update.emit(Ut)}get path(){return Pe(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return qt._ngModelWarningSentOnce=!1,qt.\u0275fac=function(Ut){return new(Ut||qt)(A.Y36(J,13),A.Y36(y,10),A.Y36(C,10),A.Y36(ot,10),A.Y36(Fo,8))},qt.\u0275dir=A.lG2({type:qt,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[A._Bn([Ua]),A.qOj,A.TTD]}),qt})();let dr=(()=>{class qt{constructor(){this._validator=n}ngOnChanges(Ut){if(this.inputName in Ut){const ce=this.normalizeInput(Ut[this.inputName].currentValue);this._enabled=this.enabled(ce),this._validator=this._enabled?this.createValidator(ce):n,this._onChange&&this._onChange()}}validate(Ut){return this._validator(Ut)}registerOnValidatorChange(Ut){this._onChange=Ut}enabled(Ut){return null!=Ut}}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275dir=A.lG2({type:qt,features:[A.TTD]}),qt})();const zr={provide:y,useExisting:(0,A.Gpc)(()=>ir),multi:!0};let ir=(()=>{class qt extends dr{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ut=>function ml(qt){return"number"==typeof qt?qt:parseFloat(qt)}(Ut),this.createValidator=Ut=>E(Ut)}}return qt.\u0275fac=function(){let Xt;return function(ce){return(Xt||(Xt=A.n5z(qt)))(ce||qt)}}(),qt.\u0275dir=A.lG2({type:qt,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(Ut,ce){2&Ut&&A.uIk("min",ce._enabled?ce.min:null)},inputs:{min:"min"},features:[A._Bn([zr]),A.qOj]}),qt})(),jr=(()=>{class qt{}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275mod=A.oAB({type:qt}),qt.\u0275inj=A.cJS({imports:[Br]}),qt})(),Hr=(()=>{class qt{static withConfig(Ut){return{ngModule:qt,providers:[{provide:Ci,useValue:Ut.callSetDisabledState??Le}]}}}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275mod=A.oAB({type:qt}),qt.\u0275inj=A.cJS({imports:[jr]}),qt})(),po=(()=>{class qt{static withConfig(Ut){return{ngModule:qt,providers:[{provide:Fo,useValue:Ut.warnOnNgModelWithFormControl??"always"},{provide:Ci,useValue:Ut.callSetDisabledState??Le}]}}}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275mod=A.oAB({type:qt}),qt.\u0275inj=A.cJS({imports:[jr]}),qt})();class fs extends pn{constructor(Xt,Ut,ce){super(Ne(Ut),_e(ce,Ut)),this.controls=Xt,this._initObservables(),this._setUpdateStrategy(Ut),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(Xt){return this.controls[this._adjustIndex(Xt)]}push(Xt,Ut={}){this.controls.push(Xt),this._registerControl(Xt),this.updateValueAndValidity({emitEvent:Ut.emitEvent}),this._onCollectionChange()}insert(Xt,Ut,ce={}){this.controls.splice(Xt,0,Ut),this._registerControl(Ut),this.updateValueAndValidity({emitEvent:ce.emitEvent})}removeAt(Xt,Ut={}){let ce=this._adjustIndex(Xt);ce<0&&(ce=0),this.controls[ce]&&this.controls[ce]._registerOnCollectionChange(()=>{}),this.controls.splice(ce,1),this.updateValueAndValidity({emitEvent:Ut.emitEvent})}setControl(Xt,Ut,ce={}){let $e=this._adjustIndex(Xt);$e<0&&($e=0),this.controls[$e]&&this.controls[$e]._registerOnCollectionChange(()=>{}),this.controls.splice($e,1),Ut&&(this.controls.splice($e,0,Ut),this._registerControl(Ut)),this.updateValueAndValidity({emitEvent:ce.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(Xt,Ut={}){Ji(this,0,Xt),Xt.forEach((ce,$e)=>{Ui(this,!1,$e),this.at($e).setValue(ce,{onlySelf:!0,emitEvent:Ut.emitEvent})}),this.updateValueAndValidity(Ut)}patchValue(Xt,Ut={}){null!=Xt&&(Xt.forEach((ce,$e)=>{this.at($e)&&this.at($e).patchValue(ce,{onlySelf:!0,emitEvent:Ut.emitEvent})}),this.updateValueAndValidity(Ut))}reset(Xt=[],Ut={}){this._forEachChild((ce,$e)=>{ce.reset(Xt[$e],{onlySelf:!0,emitEvent:Ut.emitEvent})}),this._updatePristine(Ut),this._updateTouched(Ut),this.updateValueAndValidity(Ut)}getRawValue(){return this.controls.map(Xt=>Xt.getRawValue())}clear(Xt={}){this.controls.length<1||(this._forEachChild(Ut=>Ut._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:Xt.emitEvent}))}_adjustIndex(Xt){return Xt<0?Xt+this.length:Xt}_syncPendingControls(){let Xt=this.controls.reduce((Ut,ce)=>!!ce._syncPendingControls()||Ut,!1);return Xt&&this.updateValueAndValidity({onlySelf:!0}),Xt}_forEachChild(Xt){this.controls.forEach((Ut,ce)=>{Xt(Ut,ce)})}_updateValue(){this.value=this.controls.filter(Xt=>Xt.enabled||this.disabled).map(Xt=>Xt.value)}_anyControls(Xt){return this.controls.some(Ut=>Ut.enabled&&Xt(Ut))}_setUpControls(){this._forEachChild(Xt=>this._registerControl(Xt))}_allControlsDisabled(){for(const Xt of this.controls)if(Xt.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(Xt){Xt.setParent(this),Xt._registerOnCollectionChange(this._onCollectionChange)}_find(Xt){return this.at(Xt)??null}}function Lo(qt){return!!qt&&(void 0!==qt.asyncValidators||void 0!==qt.validators||void 0!==qt.updateOn)}let Sa=(()=>{class qt{constructor(){this.useNonNullable=!1}get nonNullable(){const Ut=new qt;return Ut.useNonNullable=!0,Ut}group(Ut,ce=null){const $e=this._reduceControls(Ut);let vi={};return Lo(ce)?vi=ce:null!==ce&&(vi.validators=ce.validator,vi.asyncValidators=ce.asyncValidator),new Ei($e,vi)}record(Ut,ce=null){const $e=this._reduceControls(Ut);return new hn($e,ce)}control(Ut,ce,$e){let vi={};return this.useNonNullable?(Lo(ce)?vi=ce:(vi.validators=ce,vi.asyncValidators=$e),new lr(Ut,{...vi,nonNullable:!0})):new lr(Ut,ce,$e)}array(Ut,ce,$e){const vi=Ut.map(yo=>this._createControl(yo));return new fs(vi,ce,$e)}_reduceControls(Ut){const ce={};return Object.keys(Ut).forEach($e=>{ce[$e]=this._createControl(Ut[$e])}),ce}_createControl(Ut){return Ut instanceof lr||Ut instanceof pn?Ut:Array.isArray(Ut)?this.control(Ut[0],Ut.length>1?Ut[1]:null,Ut.length>2?Ut[2]:null):this.control(Ut)}}return qt.\u0275fac=function(Ut){return new(Ut||qt)},qt.\u0275prov=A.Yz7({token:qt,factory:qt.\u0275fac,providedIn:po}),qt})()},11481:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{Dx:()=>dt,H7:()=>wo,b2:()=>At,q6:()=>vt,se:()=>r});var A=Bt(36895),t=Bt(94650);class Rt extends A.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class $ extends Rt{static makeCurrent(){(0,A.HT)(new $)}onAndCancel(Pe,xe,Be){return Pe.addEventListener(xe,Be,!1),()=>{Pe.removeEventListener(xe,Be,!1)}}dispatchEvent(Pe,xe){Pe.dispatchEvent(xe)}remove(Pe){Pe.parentNode&&Pe.parentNode.removeChild(Pe)}createElement(Pe,xe){return(xe=xe||this.getDefaultDocument()).createElement(Pe)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(Pe){return Pe.nodeType===Node.ELEMENT_NODE}isShadowRoot(Pe){return Pe instanceof DocumentFragment}getGlobalEventTarget(Pe,xe){return"window"===xe?window:"document"===xe?Pe:"body"===xe?Pe.body:null}getBaseHref(Pe){const xe=function Y(){return V=V||document.querySelector("base"),V?V.getAttribute("href"):null}();return null==xe?null:function ot(Le){K=K||document.createElement("a"),K.setAttribute("href",Le);const Pe=K.pathname;return"/"===Pe.charAt(0)?Pe:`/${Pe}`}(xe)}resetBaseElement(){V=null}getUserAgent(){return window.navigator.userAgent}getCookie(Pe){return(0,A.Mx)(document.cookie,Pe)}}let K,V=null;const it=new t.OlP("TRANSITION_ID"),nt=[{provide:t.ip1,useFactory:function et(Le,Pe,xe){return()=>{xe.get(t.CZH).donePromise.then(()=>{const Be=(0,A.q)(),oi=Pe.querySelectorAll(`style[ng-transition="${Le}"]`);for(let Li=0;Li{class Le{build(){return new XMLHttpRequest}}return Le.\u0275fac=function(xe){return new(xe||Le)},Le.\u0275prov=t.Yz7({token:Le,factory:Le.\u0275fac}),Le})();const N=new t.OlP("EventManagerPlugins");let b=(()=>{class Le{constructor(xe,Be){this._zone=Be,this._eventNameToPlugin=new Map,xe.forEach(oi=>oi.manager=this),this._plugins=xe.slice().reverse()}addEventListener(xe,Be,oi){return this._findPluginFor(Be).addEventListener(xe,Be,oi)}addGlobalEventListener(xe,Be,oi){return this._findPluginFor(Be).addGlobalEventListener(xe,Be,oi)}getZone(){return this._zone}_findPluginFor(xe){const Be=this._eventNameToPlugin.get(xe);if(Be)return Be;const oi=this._plugins;for(let Li=0;Li{class Le{constructor(){this._stylesSet=new Set}addStyles(xe){const Be=new Set;xe.forEach(oi=>{this._stylesSet.has(oi)||(this._stylesSet.add(oi),Be.add(oi))}),this.onStylesAdded(Be)}onStylesAdded(xe){}getAllStyles(){return Array.from(this._stylesSet)}}return Le.\u0275fac=function(xe){return new(xe||Le)},Le.\u0275prov=t.Yz7({token:Le,factory:Le.\u0275fac}),Le})(),y=(()=>{class Le extends T{constructor(xe){super(),this._doc=xe,this._hostNodes=new Map,this._hostNodes.set(xe.head,[])}_addStylesToHost(xe,Be,oi){xe.forEach(Li=>{const Yi=this._doc.createElement("style");Yi.textContent=Li,oi.push(Be.appendChild(Yi))})}addHost(xe){const Be=[];this._addStylesToHost(this._stylesSet,xe,Be),this._hostNodes.set(xe,Be)}removeHost(xe){const Be=this._hostNodes.get(xe);Be&&Be.forEach(C),this._hostNodes.delete(xe)}onStylesAdded(xe){this._hostNodes.forEach((Be,oi)=>{this._addStylesToHost(xe,oi,Be)})}ngOnDestroy(){this._hostNodes.forEach(xe=>xe.forEach(C))}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(A.K0))},Le.\u0275prov=t.Yz7({token:Le,factory:Le.\u0275fac}),Le})();function C(Le){(0,A.q)().remove(Le)}const x={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},w=/%COMP%/g,z="%COMP%",L=`_nghost-${z}`,_=`_ngcontent-${z}`;function s(Le,Pe){return Pe.flat(100).map(xe=>xe.replace(w,Le))}function a(Le){return Pe=>{if("__ngUnwrap__"===Pe)return Le;!1===Le(Pe)&&(Pe.preventDefault(),Pe.returnValue=!1)}}let r=(()=>{class Le{constructor(xe,Be,oi){this.eventManager=xe,this.sharedStylesHost=Be,this.appId=oi,this.rendererByCompId=new Map,this.defaultRenderer=new e(xe)}createRenderer(xe,Be){if(!xe||!Be)return this.defaultRenderer;switch(Be.encapsulation){case t.ifc.Emulated:{let oi=this.rendererByCompId.get(Be.id);return oi||(oi=new k(this.eventManager,this.sharedStylesHost,Be,this.appId),this.rendererByCompId.set(Be.id,oi)),oi.applyToHost(xe),oi}case 1:case t.ifc.ShadowDom:return new P(this.eventManager,this.sharedStylesHost,xe,Be);default:if(!this.rendererByCompId.has(Be.id)){const oi=s(Be.id,Be.styles);this.sharedStylesHost.addStyles(oi),this.rendererByCompId.set(Be.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(b),t.LFG(y),t.LFG(t.AFp))},Le.\u0275prov=t.Yz7({token:Le,factory:Le.\u0275fac}),Le})();class e{constructor(Pe){this.eventManager=Pe,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(Pe,xe){return xe?document.createElementNS(x[xe]||xe,Pe):document.createElement(Pe)}createComment(Pe){return document.createComment(Pe)}createText(Pe){return document.createTextNode(Pe)}appendChild(Pe,xe){(h(Pe)?Pe.content:Pe).appendChild(xe)}insertBefore(Pe,xe,Be){Pe&&(h(Pe)?Pe.content:Pe).insertBefore(xe,Be)}removeChild(Pe,xe){Pe&&Pe.removeChild(xe)}selectRootElement(Pe,xe){let Be="string"==typeof Pe?document.querySelector(Pe):Pe;if(!Be)throw new Error(`The selector "${Pe}" did not match any elements`);return xe||(Be.textContent=""),Be}parentNode(Pe){return Pe.parentNode}nextSibling(Pe){return Pe.nextSibling}setAttribute(Pe,xe,Be,oi){if(oi){xe=oi+":"+xe;const Li=x[oi];Li?Pe.setAttributeNS(Li,xe,Be):Pe.setAttribute(xe,Be)}else Pe.setAttribute(xe,Be)}removeAttribute(Pe,xe,Be){if(Be){const oi=x[Be];oi?Pe.removeAttributeNS(oi,xe):Pe.removeAttribute(`${Be}:${xe}`)}else Pe.removeAttribute(xe)}addClass(Pe,xe){Pe.classList.add(xe)}removeClass(Pe,xe){Pe.classList.remove(xe)}setStyle(Pe,xe,Be,oi){oi&(t.JOm.DashCase|t.JOm.Important)?Pe.style.setProperty(xe,Be,oi&t.JOm.Important?"important":""):Pe.style[xe]=Be}removeStyle(Pe,xe,Be){Be&t.JOm.DashCase?Pe.style.removeProperty(xe):Pe.style[xe]=""}setProperty(Pe,xe,Be){Pe[xe]=Be}setValue(Pe,xe){Pe.nodeValue=xe}listen(Pe,xe,Be){return"string"==typeof Pe?this.eventManager.addGlobalEventListener(Pe,xe,a(Be)):this.eventManager.addEventListener(Pe,xe,a(Be))}}function h(Le){return"TEMPLATE"===Le.tagName&&void 0!==Le.content}class k extends e{constructor(Pe,xe,Be,oi){super(Pe),this.component=Be;const Li=s(oi+"-"+Be.id,Be.styles);xe.addStyles(Li),this.contentAttr=function l(Le){return _.replace(w,Le)}(oi+"-"+Be.id),this.hostAttr=function m(Le){return L.replace(w,Le)}(oi+"-"+Be.id)}applyToHost(Pe){super.setAttribute(Pe,this.hostAttr,"")}createElement(Pe,xe){const Be=super.createElement(Pe,xe);return super.setAttribute(Be,this.contentAttr,""),Be}}class P extends e{constructor(Pe,xe,Be,oi){super(Pe),this.sharedStylesHost=xe,this.hostEl=Be,this.shadowRoot=Be.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Li=s(oi.id,oi.styles);for(let Yi=0;Yi{class Le extends g{constructor(xe){super(xe)}supports(xe){return!0}addEventListener(xe,Be,oi){return xe.addEventListener(Be,oi,!1),()=>this.removeEventListener(xe,Be,oi)}removeEventListener(xe,Be,oi){return xe.removeEventListener(Be,oi)}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(A.K0))},Le.\u0275prov=t.Yz7({token:Le,factory:Le.\u0275fac}),Le})();const j=["alt","control","meta","shift"],c={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},d={alt:Le=>Le.altKey,control:Le=>Le.ctrlKey,meta:Le=>Le.metaKey,shift:Le=>Le.shiftKey};let I=(()=>{class Le extends g{constructor(xe){super(xe)}supports(xe){return null!=Le.parseEventName(xe)}addEventListener(xe,Be,oi){const Li=Le.parseEventName(Be),Yi=Le.eventCallback(Li.fullKey,oi,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,A.q)().onAndCancel(xe,Li.domEventName,Yi))}static parseEventName(xe){const Be=xe.toLowerCase().split("."),oi=Be.shift();if(0===Be.length||"keydown"!==oi&&"keyup"!==oi)return null;const Li=Le._normalizeKey(Be.pop());let Yi="",Hn=Be.indexOf("code");if(Hn>-1&&(Be.splice(Hn,1),Yi="code."),j.forEach(Zo=>{const Qn=Be.indexOf(Zo);Qn>-1&&(Be.splice(Qn,1),Yi+=Zo+".")}),Yi+=Li,0!=Be.length||0===Li.length)return null;const To={};return To.domEventName=oi,To.fullKey=Yi,To}static matchEventFullKeyCode(xe,Be){let oi=c[xe.key]||xe.key,Li="";return Be.indexOf("code.")>-1&&(oi=xe.code,Li="code."),!(null==oi||!oi)&&(oi=oi.toLowerCase()," "===oi?oi="space":"."===oi&&(oi="dot"),j.forEach(Yi=>{Yi!==oi&&(0,d[Yi])(xe)&&(Li+=Yi+".")}),Li+=oi,Li===Be)}static eventCallback(xe,Be,oi){return Li=>{Le.matchEventFullKeyCode(Li,xe)&&oi.runGuarded(()=>Be(Li))}}static _normalizeKey(xe){return"esc"===xe?"escape":xe}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(A.K0))},Le.\u0275prov=t.Yz7({token:Le,factory:Le.\u0275fac}),Le})();const vt=(0,t.eFA)(t._c5,"browser",[{provide:t.Lbi,useValue:A.bD},{provide:t.g9A,useValue:function Q(){$.makeCurrent()},multi:!0},{provide:A.K0,useFactory:function rt(){return(0,t.RDi)(document),document},deps:[]}]),gt=new t.OlP(""),Lt=[{provide:t.rWj,useClass:class W{addToWindow(Pe){t.dqk.getAngularTestability=(Be,oi=!0)=>{const Li=Pe.findTestabilityInTree(Be,oi);if(null==Li)throw new Error("Could not find testability for element.");return Li},t.dqk.getAllAngularTestabilities=()=>Pe.getAllTestabilities(),t.dqk.getAllAngularRootElements=()=>Pe.getAllRootElements(),t.dqk.frameworkStabilizers||(t.dqk.frameworkStabilizers=[]),t.dqk.frameworkStabilizers.push(Be=>{const oi=t.dqk.getAllAngularTestabilities();let Li=oi.length,Yi=!1;const Hn=function(To){Yi=Yi||To,Li--,0==Li&&Be(Yi)};oi.forEach(function(To){To.whenStable(Hn)})})}findTestabilityInTree(Pe,xe,Be){return null==xe?null:Pe.getTestability(xe)??(Be?(0,A.q)().isShadowRoot(xe)?this.findTestabilityInTree(Pe,xe.host,!0):this.findTestabilityInTree(Pe,xe.parentElement,!0):null)}},deps:[]},{provide:t.lri,useClass:t.dDg,deps:[t.R0b,t.eoX,t.rWj]},{provide:t.dDg,useClass:t.dDg,deps:[t.R0b,t.eoX,t.rWj]}],Ft=[{provide:t.zSh,useValue:"root"},{provide:t.qLn,useFactory:function J(){return new t.qLn},deps:[]},{provide:N,useClass:X,multi:!0,deps:[A.K0,t.R0b,t.Lbi]},{provide:N,useClass:I,multi:!0,deps:[A.K0]},{provide:r,useClass:r,deps:[b,y,t.AFp]},{provide:t.FYo,useExisting:r},{provide:T,useExisting:y},{provide:y,useClass:y,deps:[A.K0]},{provide:b,useClass:b,deps:[N,t.R0b]},{provide:A.JF,useClass:G,deps:[]},[]];let At=(()=>{class Le{constructor(xe){}static withServerTransition(xe){return{ngModule:Le,providers:[{provide:t.AFp,useValue:xe.appId},{provide:it,useExisting:t.AFp},nt]}}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(gt,12))},Le.\u0275mod=t.oAB({type:Le}),Le.\u0275inj=t.cJS({providers:[...Ft,...Lt],imports:[A.ez,t.hGG]}),Le})(),dt=(()=>{class Le{constructor(xe){this._doc=xe}getTitle(){return this._doc.title}setTitle(xe){this._doc.title=xe||""}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(A.K0))},Le.\u0275prov=t.Yz7({token:Le,factory:function(xe){let Be=null;return Be=xe?new xe:function ht(){return new dt((0,t.LFG)(A.K0))}(),Be},providedIn:"root"}),Le})();typeof window<"u"&&window;let wo=(()=>{class Le{}return Le.\u0275fac=function(xe){return new(xe||Le)},Le.\u0275prov=t.Yz7({token:Le,factory:function(xe){let Be=null;return Be=xe?new(xe||Le):t.LFG(fn),Be},providedIn:"root"}),Le})(),fn=(()=>{class Le extends wo{constructor(xe){super(),this._doc=xe}sanitize(xe,Be){if(null==Be)return null;switch(xe){case t.q3G.NONE:return Be;case t.q3G.HTML:return(0,t.qzn)(Be,"HTML")?(0,t.z3N)(Be):(0,t.EiD)(this._doc,String(Be)).toString();case t.q3G.STYLE:return(0,t.qzn)(Be,"Style")?(0,t.z3N)(Be):Be;case t.q3G.SCRIPT:if((0,t.qzn)(Be,"Script"))return(0,t.z3N)(Be);throw new Error("unsafe value used in a script context");case t.q3G.URL:return(0,t.qzn)(Be,"URL")?(0,t.z3N)(Be):(0,t.mCW)(String(Be));case t.q3G.RESOURCE_URL:if((0,t.qzn)(Be,"ResourceURL"))return(0,t.z3N)(Be);throw new Error(`unsafe value used in a resource URL context (see ${t.JZr})`);default:throw new Error(`Unexpected SecurityContext ${xe} (see ${t.JZr})`)}}bypassSecurityTrustHtml(xe){return(0,t.JVY)(xe)}bypassSecurityTrustStyle(xe){return(0,t.L6k)(xe)}bypassSecurityTrustScript(xe){return(0,t.eBb)(xe)}bypassSecurityTrustUrl(xe){return(0,t.LAX)(xe)}bypassSecurityTrustResourceUrl(xe){return(0,t.pB0)(xe)}}return Le.\u0275fac=function(xe){return new(xe||Le)(t.LFG(A.K0))},Le.\u0275prov=t.Yz7({token:Le,factory:function(xe){let Be=null;return Be=xe?new xe:function hn(Le){return new fn(Le.get(A.K0))}(t.LFG(t.zs3)),Be},providedIn:"root"}),Le})()},96749:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{gz:()=>er,m2:()=>Qo,wm:()=>Ec,wN:()=>io,F0:()=>co,rH:()=>bl,Od:()=>Cl,Bz:()=>Lh,lC:()=>Do});var A=Bt(94650),t=Bt(50457),Rt=Bt(39646),$=Bt(61135);const Y=(0,Bt(83888).d)(Et=>function(){Et(this),this.name="EmptyError",this.message="no elements in sequence"});var K=Bt(39841),ot=Bt(97272),it=Bt(49770),et=Bt(89635),nt=Bt(62843),W=Bt(69751),G=Bt(60515),N=Bt(50727),b=Bt(54482),g=Bt(25403);function T(){return(0,b.e)((Et,It)=>{let wt=null;Et._refCount++;const jt=(0,g.x)(It,void 0,void 0,void 0,()=>{if(!Et||Et._refCount<=0||0<--Et._refCount)return void(wt=null);const Kt=Et._connection,re=wt;wt=null,Kt&&(!re||Kt===re)&&Kt.unsubscribe(),It.unsubscribe()});Et.subscribe(jt),jt.closed||(wt=Et.connect())})}class y extends W.y{constructor(It,wt){super(),this.source=It,this.subjectFactory=wt,this._subject=null,this._refCount=0,this._connection=null,(0,b.A)(It)&&(this.lift=It.lift)}_subscribe(It){return this.getSubject().subscribe(It)}getSubject(){const It=this._subject;return(!It||It.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:It}=this;this._subject=this._connection=null,It?.unsubscribe()}connect(){let It=this._connection;if(!It){It=this._connection=new N.w0;const wt=this.getSubject();It.add(this.source.subscribe((0,g.x)(wt,void 0,()=>{this._teardown(),wt.complete()},jt=>{this._teardown(),wt.error(jt)},()=>this._teardown()))),It.closed&&(this._connection=null,It=N.w0.EMPTY)}return It}refCount(){return T()(this)}}var C=Bt(77579),x=Bt(36895),w=Bt(54004),E=Bt(63900),z=Bt(95698),L=Bt(68675),_=Bt(39300),l=Bt(95577),m=Bt(46590);function s(Et=a){return(0,b.e)((It,wt)=>{let jt=!1;It.subscribe((0,g.x)(wt,Kt=>{jt=!0,wt.next(Kt)},()=>jt?wt.complete():wt.error(Et())))})}function a(){return new Y}var n=Bt(44671);function r(Et,It){const wt=arguments.length>=2;return jt=>jt.pipe(Et?(0,_.h)((Kt,re)=>Et(Kt,re,jt)):n.y,(0,z.q)(1),wt?(0,m.d)(It):s(()=>new Y))}var e=Bt(24351),o=Bt(18505),p=Bt(70262);function h(Et,It,wt,jt,Kt){return(re,he)=>{let ze=wt,Qe=It,bi=0;re.subscribe((0,g.x)(he,Si=>{const Dn=bi++;Qe=ze?Et(Qe,Si,Dn):(ze=!0,Si),jt&&he.next(Qe)},Kt&&(()=>{ze&&he.next(Qe),he.complete()})))}}function k(Et,It){return(0,b.e)(h(Et,It,arguments.length>=2,!0))}function P(Et){return Et<=0?()=>G.E:(0,b.e)((It,wt)=>{let jt=[];It.subscribe((0,g.x)(wt,Kt=>{jt.push(Kt),Et{for(const Kt of jt)wt.next(Kt);wt.complete()},void 0,()=>{jt=null}))})}function X(Et,It){const wt=arguments.length>=2;return jt=>jt.pipe(Et?(0,_.h)((Kt,re)=>Et(Kt,re,jt)):n.y,P(1),wt?(0,m.d)(It):s(()=>new Y))}var c=Bt(69718),d=Bt(28746),I=Bt(8189),U=Bt(11481);const H="primary",v=Symbol("RouteTitle");class R{constructor(It){this.params=It||{}}has(It){return Object.prototype.hasOwnProperty.call(this.params,It)}get(It){if(this.has(It)){const wt=this.params[It];return Array.isArray(wt)?wt[0]:wt}return null}getAll(It){if(this.has(It)){const wt=this.params[It];return Array.isArray(wt)?wt:[wt]}return[]}get keys(){return Object.keys(this.params)}}function B(Et){return new R(Et)}function Q(Et,It,wt){const jt=wt.path.split("/");if(jt.length>Et.length||"full"===wt.pathMatch&&(It.hasChildren()||jt.lengthjt[re]===Kt)}return Et===It}function vt(Et){return Array.prototype.concat.apply([],Et)}function gt(Et){return Et.length>0?Et[Et.length-1]:null}function Ft(Et,It){for(const wt in Et)Et.hasOwnProperty(wt)&&It(Et[wt],wt)}function At(Et){return(0,A.CqO)(Et)?Et:(0,A.QGY)(Et)?(0,t.D)(Promise.resolve(Et)):(0,Rt.of)(Et)}const Pt=!1,Ht={exact:function xt(Et,It,wt){if(!Ee(Et.segments,It.segments)||!Qt(Et.segments,It.segments,wt)||Et.numberOfChildren!==It.numberOfChildren)return!1;for(const jt in It.children)if(!Et.children[jt]||!xt(Et.children[jt],It.children[jt],wt))return!1;return!0},subset:Dt},Ct={exact:function dt(Et,It){return rt(Et,It)},subset:function bt(Et,It){return Object.keys(It).length<=Object.keys(Et).length&&Object.keys(It).every(wt=>ut(Et[wt],It[wt]))},ignored:()=>!0};function ht(Et,It,wt){return Ht[wt.paths](Et.root,It.root,wt.matrixParams)&&Ct[wt.queryParams](Et.queryParams,It.queryParams)&&!("exact"===wt.fragment&&Et.fragment!==It.fragment)}function Dt(Et,It,wt){return Gt(Et,It,It.segments,wt)}function Gt(Et,It,wt,jt){if(Et.segments.length>wt.length){const Kt=Et.segments.slice(0,wt.length);return!(!Ee(Kt,wt)||It.hasChildren()||!Qt(Kt,wt,jt))}if(Et.segments.length===wt.length){if(!Ee(Et.segments,wt)||!Qt(Et.segments,wt,jt))return!1;for(const Kt in It.children)if(!Et.children[Kt]||!Dt(Et.children[Kt],It.children[Kt],jt))return!1;return!0}{const Kt=wt.slice(0,Et.segments.length),re=wt.slice(Et.segments.length);return!!(Ee(Et.segments,Kt)&&Qt(Et.segments,Kt,jt)&&Et.children[H])&&Gt(Et.children[H],It,re,jt)}}function Qt(Et,It,wt){return It.every((jt,Kt)=>Ct[wt](Et[Kt].parameters,jt.parameters))}class ne{constructor(It=new pe([],{}),wt={},jt=null){this.root=It,this.queryParams=wt,this.fragment=jt}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=B(this.queryParams)),this._queryParamMap}toString(){return qe.serialize(this)}}class pe{constructor(It,wt){this.segments=It,this.children=wt,this.parent=null,Ft(wt,(jt,Kt)=>jt.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Ue(this)}}class se{constructor(It,wt){this.path=It,this.parameters=wt}get parameterMap(){return this._parameterMap||(this._parameterMap=B(this.parameters)),this._parameterMap}toString(){return Ji(this)}}function Ee(Et,It){return Et.length===It.length&&Et.every((wt,jt)=>wt.path===It[jt].path)}let Ae=(()=>{class Et{}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:function(){return new me},providedIn:"root"}),Et})();class me{parse(It){const wt=new Pe(It);return new ne(wt.parseRootSegment(),wt.parseQueryParams(),wt.parseFragment())}serialize(It){const wt=`/${Ze(It.root,!0)}`,jt=function Ei(Et){const It=Object.keys(Et).map(wt=>{const jt=Et[wt];return Array.isArray(jt)?jt.map(Kt=>`${ue(wt)}=${ue(Kt)}`).join("&"):`${ue(wt)}=${ue(jt)}`}).filter(wt=>!!wt);return It.length?`?${It.join("&")}`:""}(It.queryParams);return`${wt}${jt}${"string"==typeof It.fragment?`#${function _e(Et){return encodeURI(Et)}(It.fragment)}`:""}`}}const qe=new me;function Ue(Et){return Et.segments.map(It=>Ji(It)).join("/")}function Ze(Et,It){if(!Et.hasChildren())return Ue(Et);if(It){const wt=Et.children[H]?Ze(Et.children[H],!1):"",jt=[];return Ft(Et.children,(Kt,re)=>{re!==H&&jt.push(`${re}:${Ze(Kt,!1)}`)}),jt.length>0?`${wt}(${jt.join("//")})`:wt}{const wt=function Me(Et,It){let wt=[];return Ft(Et.children,(jt,Kt)=>{Kt===H&&(wt=wt.concat(It(jt,Kt)))}),Ft(Et.children,(jt,Kt)=>{Kt!==H&&(wt=wt.concat(It(jt,Kt)))}),wt}(Et,(jt,Kt)=>Kt===H?[Ze(Et.children[H],!1)]:[`${Kt}:${Ze(jt,!1)}`]);return 1===Object.keys(Et.children).length&&null!=Et.children[H]?`${Ue(Et)}/${wt[0]}`:`${Ue(Et)}/(${wt.join("//")})`}}function Ne(Et){return encodeURIComponent(Et).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function ue(Et){return Ne(Et).replace(/%3B/gi,";")}function Ve(Et){return Ne(Et).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function ni(Et){return decodeURIComponent(Et)}function Ui(Et){return ni(Et.replace(/\+/g,"%20"))}function Ji(Et){return`${Ve(Et.path)}${function pn(Et){return Object.keys(Et).map(It=>`;${Ve(It)}=${Ve(Et[It])}`).join("")}(Et.parameters)}`}const $n=/^[^\/()?;=#]+/;function wo(Et){const It=Et.match($n);return It?It[0]:""}const hn=/^[^=?&#]+/,Ci=/^[^&#]+/;class Pe{constructor(It){this.url=It,this.remaining=It}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new pe([],{}):new pe([],this.parseChildren())}parseQueryParams(){const It={};if(this.consumeOptional("?"))do{this.parseQueryParam(It)}while(this.consumeOptional("&"));return It}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const It=[];for(this.peekStartsWith("(")||It.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),It.push(this.parseSegment());let wt={};this.peekStartsWith("/(")&&(this.capture("/"),wt=this.parseParens(!0));let jt={};return this.peekStartsWith("(")&&(jt=this.parseParens(!1)),(It.length>0||Object.keys(wt).length>0)&&(jt[H]=new pe(It,wt)),jt}parseSegment(){const It=wo(this.remaining);if(""===It&&this.peekStartsWith(";"))throw new A.vHH(4009,Pt);return this.capture(It),new se(ni(It),this.parseMatrixParams())}parseMatrixParams(){const It={};for(;this.consumeOptional(";");)this.parseParam(It);return It}parseParam(It){const wt=wo(this.remaining);if(!wt)return;this.capture(wt);let jt="";if(this.consumeOptional("=")){const Kt=wo(this.remaining);Kt&&(jt=Kt,this.capture(jt))}It[ni(wt)]=ni(jt)}parseQueryParam(It){const wt=function fn(Et){const It=Et.match(hn);return It?It[0]:""}(this.remaining);if(!wt)return;this.capture(wt);let jt="";if(this.consumeOptional("=")){const he=function Le(Et){const It=Et.match(Ci);return It?It[0]:""}(this.remaining);he&&(jt=he,this.capture(jt))}const Kt=Ui(wt),re=Ui(jt);if(It.hasOwnProperty(Kt)){let he=It[Kt];Array.isArray(he)||(he=[he],It[Kt]=he),he.push(re)}else It[Kt]=re}parseParens(It){const wt={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const jt=wo(this.remaining),Kt=this.remaining[jt.length];if("/"!==Kt&&")"!==Kt&&";"!==Kt)throw new A.vHH(4010,Pt);let re;jt.indexOf(":")>-1?(re=jt.slice(0,jt.indexOf(":")),this.capture(re),this.capture(":")):It&&(re=H);const he=this.parseChildren();wt[re]=1===Object.keys(he).length?he[H]:new pe([],he),this.consumeOptional("//")}return wt}peekStartsWith(It){return this.remaining.startsWith(It)}consumeOptional(It){return!!this.peekStartsWith(It)&&(this.remaining=this.remaining.substring(It.length),!0)}capture(It){if(!this.consumeOptional(It))throw new A.vHH(4011,Pt)}}function xe(Et){return Et.segments.length>0?new pe([],{[H]:Et}):Et}function Be(Et){const It={};for(const jt of Object.keys(Et.children)){const re=Be(Et.children[jt]);(re.segments.length>0||re.hasChildren())&&(It[jt]=re)}return function oi(Et){if(1===Et.numberOfChildren&&Et.children[H]){const It=Et.children[H];return new pe(Et.segments.concat(It.segments),It.children)}return Et}(new pe(Et.segments,It))}function Li(Et){return Et instanceof ne}function Qn(Et,It,wt,jt,Kt){if(0===wt.length)return Ce(It.root,It.root,It.root,jt,Kt);const re=function Re(Et){if("string"==typeof Et[0]&&1===Et.length&&"/"===Et[0])return new ve(!0,0,Et);let It=0,wt=!1;const jt=Et.reduce((Kt,re,he)=>{if("object"==typeof re&&null!=re){if(re.outlets){const ze={};return Ft(re.outlets,(Qe,bi)=>{ze[bi]="string"==typeof Qe?Qe.split("/"):Qe}),[...Kt,{outlets:ze}]}if(re.segmentPath)return[...Kt,re.segmentPath]}return"string"!=typeof re?[...Kt,re]:0===he?(re.split("/").forEach((ze,Qe)=>{0==Qe&&"."===ze||(0==Qe&&""===ze?wt=!0:".."===ze?It++:""!=ze&&Kt.push(ze))}),Kt):[...Kt,re]},[]);return new ve(wt,It,jt)}(wt);return re.toRoot()?Ce(It.root,It.root,new pe([],{}),jt,Kt):function he(Qe){const bi=function Qi(Et,It,wt,jt){if(Et.isAbsolute)return new ti(It.root,!0,0);if(-1===jt)return new ti(wt,wt===It.root,0);return function kn(Et,It,wt){let jt=Et,Kt=It,re=wt;for(;re>Kt;){if(re-=Kt,jt=jt.parent,!jt)throw new A.vHH(4005,!1);Kt=jt.segments.length}return new ti(jt,!1,Kt-re)}(wt,jt+(Go(Et.commands[0])?0:1),Et.numberOfDoubleDots)}(re,It,Et.snapshot?._urlSegment,Qe),Si=bi.processChildren?Ii(bi.segmentGroup,bi.index,re.commands):mi(bi.segmentGroup,bi.index,re.commands);return Ce(It.root,bi.segmentGroup,Si,jt,Kt)}(Et.snapshot?._lastPathIndex)}function Go(Et){return"object"==typeof Et&&null!=Et&&!Et.outlets&&!Et.segmentPath}function Te(Et){return"object"==typeof Et&&null!=Et&&Et.outlets}function Ce(Et,It,wt,jt,Kt){let he,re={};jt&&Ft(jt,(Qe,bi)=>{re[bi]=Array.isArray(Qe)?Qe.map(Si=>`${Si}`):`${Qe}`}),he=Et===It?wt:$t(Et,It,wt);const ze=xe(Be(he));return new ne(ze,re,Kt)}function $t(Et,It,wt){const jt={};return Ft(Et.children,(Kt,re)=>{jt[re]=Kt===It?wt:$t(Kt,It,wt)}),new pe(Et.segments,jt)}class ve{constructor(It,wt,jt){if(this.isAbsolute=It,this.numberOfDoubleDots=wt,this.commands=jt,It&&jt.length>0&&Go(jt[0]))throw new A.vHH(4003,!1);const Kt=jt.find(Te);if(Kt&&Kt!==gt(jt))throw new A.vHH(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ti{constructor(It,wt,jt){this.segmentGroup=It,this.processChildren=wt,this.index=jt}}function mi(Et,It,wt){if(Et||(Et=new pe([],{})),0===Et.segments.length&&Et.hasChildren())return Ii(Et,It,wt);const jt=function en(Et,It,wt){let jt=0,Kt=It;const re={match:!1,pathIndex:0,commandIndex:0};for(;Kt=wt.length)return re;const he=Et.segments[Kt],ze=wt[jt];if(Te(ze))break;const Qe=`${ze}`,bi=jt0&&void 0===Qe)break;if(Qe&&bi&&"object"==typeof bi&&void 0===bi.outlets){if(!ar(Qe,bi,he))return re;jt+=2}else{if(!ar(Qe,{},he))return re;jt++}Kt++}return{match:!0,pathIndex:Kt,commandIndex:jt}}(Et,It,wt),Kt=wt.slice(jt.commandIndex);if(jt.match&&jt.pathIndex{"string"==typeof re&&(re=[re]),null!==re&&(Kt[he]=mi(Et.children[he],It,re))}),Ft(Et.children,(re,he)=>{void 0===jt[he]&&(Kt[he]=re)}),new pe(Et.segments,Kt)}}function lo(Et,It,wt){const jt=Et.segments.slice(0,It);let Kt=0;for(;Kt{"string"==typeof wt&&(wt=[wt]),null!==wt&&(It[jt]=lo(new pe([],{}),0,wt))}),It}function so(Et){const It={};return Ft(Et,(wt,jt)=>It[jt]=`${wt}`),It}function ar(Et,It,wt){return Et==wt.path&&rt(It,wt.parameters)}class wn{constructor(It,wt){this.id=It,this.url=wt}}class lr extends wn{constructor(It,wt,jt="imperative",Kt=null){super(It,wt),this.type=0,this.navigationTrigger=jt,this.restoredState=Kt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Qo extends wn{constructor(It,wt,jt){super(It,wt),this.urlAfterRedirects=jt,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Ki extends wn{constructor(It,wt,jt,Kt){super(It,wt),this.reason=jt,this.code=Kt,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Sr extends wn{constructor(It,wt,jt,Kt){super(It,wt),this.error=jt,this.target=Kt,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class ls extends wn{constructor(It,wt,jt,Kt){super(It,wt),this.urlAfterRedirects=jt,this.state=Kt,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ma extends wn{constructor(It,wt,jt,Kt){super(It,wt),this.urlAfterRedirects=jt,this.state=Kt,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class cr extends wn{constructor(It,wt,jt,Kt,re){super(It,wt),this.urlAfterRedirects=jt,this.state=Kt,this.shouldActivate=re,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class uo extends wn{constructor(It,wt,jt,Kt){super(It,wt),this.urlAfterRedirects=jt,this.state=Kt,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Xr extends wn{constructor(It,wt,jt,Kt){super(It,wt),this.urlAfterRedirects=jt,this.state=Kt,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class hr{constructor(It){this.route=It,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class $o{constructor(It){this.route=It,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Zr{constructor(It){this.snapshot=It,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class No{constructor(It){this.snapshot=It,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Gn{constructor(It){this.snapshot=It,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ts{constructor(It){this.snapshot=It,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Mr{constructor(It,wt,jt){this.routerEvent=It,this.position=wt,this.anchor=jt,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let Br=(()=>{class Et{createUrlTree(wt,jt,Kt,re,he,ze){return Qn(wt||jt.root,Kt,re,he,ze)}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac}),Et})(),Mo=(()=>{class Et{}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:function(It){return Br.\u0275fac(It)},providedIn:"root"}),Et})();class Gs{constructor(It){this._root=It}get root(){return this._root.value}parent(It){const wt=this.pathFromRoot(It);return wt.length>1?wt[wt.length-2]:null}children(It){const wt=ko(It,this._root);return wt?wt.children.map(jt=>jt.value):[]}firstChild(It){const wt=ko(It,this._root);return wt&&wt.children.length>0?wt.children[0].value:null}siblings(It){const wt=Fo(It,this._root);return wt.length<2?[]:wt[wt.length-2].children.map(Kt=>Kt.value).filter(Kt=>Kt!==It)}pathFromRoot(It){return Fo(It,this._root).map(wt=>wt.value)}}function ko(Et,It){if(Et===It.value)return It;for(const wt of It.children){const jt=ko(Et,wt);if(jt)return jt}return null}function Fo(Et,It){if(Et===It.value)return[It];for(const wt of It.children){const jt=Fo(Et,wt);if(jt.length)return jt.unshift(It),jt}return[]}class Vo{constructor(It,wt){this.value=It,this.children=wt}toString(){return`TreeNode(${this.value})`}}function tr(Et){const It={};return Et&&Et.children.forEach(wt=>It[wt.value.outlet]=wt),It}class Ss extends Gs{constructor(It,wt){super(It),this.snapshot=wt,hs(this,It)}toString(){return this.snapshot.toString()}}function Io(Et,It){const wt=function ya(Et,It){const he=new cs([],{},{},"",{},H,It,null,Et.root,-1,{});return new Ua("",new Vo(he,[]))}(Et,It),jt=new $.X([new se("",{})]),Kt=new $.X({}),re=new $.X({}),he=new $.X({}),ze=new $.X(""),Qe=new er(jt,Kt,he,ze,re,H,It,wt.root);return Qe.snapshot=wt.root,new Ss(new Vo(Qe,[]),wt)}class er{constructor(It,wt,jt,Kt,re,he,ze,Qe){this.url=It,this.params=wt,this.queryParams=jt,this.fragment=Kt,this.data=re,this.outlet=he,this.component=ze,this.title=this.data?.pipe((0,w.U)(bi=>bi[v]))??(0,Rt.of)(void 0),this._futureSnapshot=Qe}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,w.U)(It=>B(It)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,w.U)(It=>B(It)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Vs(Et,It="emptyOnly"){const wt=Et.pathFromRoot;let jt=0;if("always"!==It)for(jt=wt.length-1;jt>=1;){const Kt=wt[jt],re=wt[jt-1];if(Kt.routeConfig&&""===Kt.routeConfig.path)jt--;else{if(re.component)break;jt--}}return function Ms(Et){return Et.reduce((It,wt)=>({params:{...It.params,...wt.params},data:{...It.data,...wt.data},resolve:{...wt.data,...It.resolve,...wt.routeConfig?.data,...wt._resolvedData}}),{params:{},data:{},resolve:{}})}(wt.slice(jt))}class cs{constructor(It,wt,jt,Kt,re,he,ze,Qe,bi,Si,Dn){this.url=It,this.params=wt,this.queryParams=jt,this.fragment=Kt,this.data=re,this.outlet=he,this.component=ze,this.routeConfig=Qe,this._urlSegment=bi,this._lastPathIndex=Si,this._resolve=Dn}get title(){return this.data?.[v]}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=B(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=B(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(jt=>jt.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Ua extends Gs{constructor(It,wt){super(wt),this.url=It,hs(this,wt)}toString(){return Wa(this._root)}}function hs(Et,It){It.value._routerState=Et,It.children.forEach(wt=>hs(Et,wt))}function Wa(Et){const It=Et.children.length>0?` { ${Et.children.map(Wa).join(", ")} } `:"";return`${Et.value}${It}`}function ds(Et){if(Et.snapshot){const It=Et.snapshot,wt=Et._futureSnapshot;Et.snapshot=wt,rt(It.queryParams,wt.queryParams)||Et.queryParams.next(wt.queryParams),It.fragment!==wt.fragment&&Et.fragment.next(wt.fragment),rt(It.params,wt.params)||Et.params.next(wt.params),function J(Et,It){if(Et.length!==It.length)return!1;for(let wt=0;wtrt(wt.parameters,It[jt].parameters))}(Et.url,It.url);return wt&&!(!Et.parent!=!It.parent)&&(!Et.parent||ks(Et.parent,It.parent))}function Ws(Et,It,wt){if(wt&&Et.shouldReuseRoute(It.value,wt.value.snapshot)){const jt=wt.value;jt._futureSnapshot=It.value;const Kt=function Ds(Et,It,wt){return It.children.map(jt=>{for(const Kt of wt.children)if(Et.shouldReuseRoute(jt.value,Kt.value.snapshot))return Ws(Et,jt,Kt);return Ws(Et,jt)})}(Et,It,wt);return new Vo(jt,Kt)}{if(Et.shouldAttach(It.value)){const re=Et.retrieve(It.value);if(null!==re){const he=re.route;return he.value._futureSnapshot=It.value,he.children=It.children.map(ze=>Ws(Et,ze)),he}}const jt=function Ys(Et){return new er(new $.X(Et.url),new $.X(Et.params),new $.X(Et.queryParams),new $.X(Et.fragment),new $.X(Et.data),Et.outlet,Et.component,Et)}(It.value),Kt=It.children.map(re=>Ws(Et,re));return new Vo(jt,Kt)}}const xa="ngNavigationCancelingError";function _a(Et,It){const{redirectTo:wt,navigationBehaviorOptions:jt}=Li(It)?{redirectTo:It,navigationBehaviorOptions:void 0}:It,Kt=us(!1,0,It);return Kt.url=wt,Kt.navigationBehaviorOptions=jt,Kt}function us(Et,It,wt){const jt=new Error("NavigationCancelingError: "+(Et||""));return jt[xa]=!0,jt.cancellationCode=It,wt&&(jt.url=wt),jt}function Xs(Et){return ba(Et)&&Li(Et.url)}function ba(Et){return Et&&Et[xa]}class ml{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new dr,this.attachRef=null}}let dr=(()=>{class Et{constructor(){this.contexts=new Map}onChildOutletCreated(wt,jt){const Kt=this.getOrCreateContext(wt);Kt.outlet=jt,this.contexts.set(wt,Kt)}onChildOutletDestroyed(wt){const jt=this.getContext(wt);jt&&(jt.outlet=null,jt.attachRef=null)}onOutletDeactivated(){const wt=this.contexts;return this.contexts=new Map,wt}onOutletReAttached(wt){this.contexts=wt}getOrCreateContext(wt){let jt=this.getContext(wt);return jt||(jt=new ml,this.contexts.set(wt,jt)),jt}getContext(wt){return this.contexts.get(wt)||null}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})();const xr=!1;let Do=(()=>{class Et{constructor(){this.activated=null,this._activatedRoute=null,this.name=H,this.activateEvents=new A.vpe,this.deactivateEvents=new A.vpe,this.attachEvents=new A.vpe,this.detachEvents=new A.vpe,this.parentContexts=(0,A.f3M)(dr),this.location=(0,A.f3M)(A.s_b),this.changeDetector=(0,A.f3M)(A.sBO),this.environmentInjector=(0,A.f3M)(A.lqb)}ngOnChanges(wt){if(wt.name){const{firstChange:jt,previousValue:Kt}=wt.name;if(jt)return;this.isTrackedInParentContexts(Kt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(Kt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name)}isTrackedInParentContexts(wt){return this.parentContexts.getContext(wt)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const wt=this.parentContexts.getContext(this.name);wt?.route&&(wt.attachRef?this.attach(wt.attachRef,wt.route):this.activateWith(wt.route,wt.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new A.vHH(4012,xr);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new A.vHH(4012,xr);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new A.vHH(4012,xr);this.location.detach();const wt=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(wt.instance),wt}attach(wt,jt){this.activated=wt,this._activatedRoute=jt,this.location.insert(wt.hostView),this.attachEvents.emit(wt.instance)}deactivate(){if(this.activated){const wt=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(wt)}}activateWith(wt,jt){if(this.isActivated)throw new A.vHH(4013,xr);this._activatedRoute=wt;const Kt=this.location,he=wt.snapshot.component,ze=this.parentContexts.getOrCreateContext(this.name).children,Qe=new zr(wt,ze,Kt.injector);if(jt&&function ir(Et){return!!Et.resolveComponentFactory}(jt)){const bi=jt.resolveComponentFactory(he);this.activated=Kt.createComponent(bi,Kt.length,Qe)}else this.activated=Kt.createComponent(he,{index:Kt.length,injector:Qe,environmentInjector:jt??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275dir=A.lG2({type:Et,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[A.TTD]}),Et})();class zr{constructor(It,wt,jt){this.route=It,this.childContexts=wt,this.parent=jt}get(It,wt){return It===er?this.route:It===dr?this.childContexts:this.parent.get(It,wt)}}let ps=(()=>{class Et{}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275cmp=A.Xpm({type:Et,selectors:[["ng-component"]],standalone:!0,features:[A.jDz],decls:1,vars:0,template:function(wt,jt){1&wt&&A._UZ(0,"router-outlet")},dependencies:[Do],encapsulation:2}),Et})();function Ya(Et,It){return Et.providers&&!Et._injector&&(Et._injector=(0,A.MMx)(Et.providers,It,`Route: ${Et.path}`)),Et._injector??It}function to(Et){const It=Et.children&&Et.children.map(to),wt=It?{...Et,children:It}:{...Et};return!wt.component&&!wt.loadComponent&&(It||wt.loadChildren)&&wt.outlet&&wt.outlet!==H&&(wt.component=ps),wt}function Nn(Et){return Et.outlet||H}function nr(Et,It){const wt=Et.filter(jt=>Nn(jt)===It);return wt.push(...Et.filter(jt=>Nn(jt)!==It)),wt}function Eo(Et){if(!Et)return null;if(Et.routeConfig?._injector)return Et.routeConfig._injector;for(let It=Et.parent;It;It=It.parent){const wt=It.routeConfig;if(wt?._loadedInjector)return wt._loadedInjector;if(wt?._injector)return wt._injector}return null}class jr{constructor(It,wt,jt,Kt){this.routeReuseStrategy=It,this.futureState=wt,this.currState=jt,this.forwardEvent=Kt}activate(It){const wt=this.futureState._root,jt=this.currState?this.currState._root:null;this.deactivateChildRoutes(wt,jt,It),ds(this.futureState.root),this.activateChildRoutes(wt,jt,It)}deactivateChildRoutes(It,wt,jt){const Kt=tr(wt);It.children.forEach(re=>{const he=re.value.outlet;this.deactivateRoutes(re,Kt[he],jt),delete Kt[he]}),Ft(Kt,(re,he)=>{this.deactivateRouteAndItsChildren(re,jt)})}deactivateRoutes(It,wt,jt){const Kt=It.value,re=wt?wt.value:null;if(Kt===re)if(Kt.component){const he=jt.getContext(Kt.outlet);he&&this.deactivateChildRoutes(It,wt,he.children)}else this.deactivateChildRoutes(It,wt,jt);else re&&this.deactivateRouteAndItsChildren(wt,jt)}deactivateRouteAndItsChildren(It,wt){It.value.component&&this.routeReuseStrategy.shouldDetach(It.value.snapshot)?this.detachAndStoreRouteSubtree(It,wt):this.deactivateRouteAndOutlet(It,wt)}detachAndStoreRouteSubtree(It,wt){const jt=wt.getContext(It.value.outlet),Kt=jt&&It.value.component?jt.children:wt,re=tr(It);for(const he of Object.keys(re))this.deactivateRouteAndItsChildren(re[he],Kt);if(jt&&jt.outlet){const he=jt.outlet.detach(),ze=jt.children.onOutletDeactivated();this.routeReuseStrategy.store(It.value.snapshot,{componentRef:he,route:It,contexts:ze})}}deactivateRouteAndOutlet(It,wt){const jt=wt.getContext(It.value.outlet),Kt=jt&&It.value.component?jt.children:wt,re=tr(It);for(const he of Object.keys(re))this.deactivateRouteAndItsChildren(re[he],Kt);jt&&jt.outlet&&(jt.outlet.deactivate(),jt.children.onOutletDeactivated(),jt.attachRef=null,jt.resolver=null,jt.route=null)}activateChildRoutes(It,wt,jt){const Kt=tr(wt);It.children.forEach(re=>{this.activateRoutes(re,Kt[re.value.outlet],jt),this.forwardEvent(new Ts(re.value.snapshot))}),It.children.length&&this.forwardEvent(new No(It.value.snapshot))}activateRoutes(It,wt,jt){const Kt=It.value,re=wt?wt.value:null;if(ds(Kt),Kt===re)if(Kt.component){const he=jt.getOrCreateContext(Kt.outlet);this.activateChildRoutes(It,wt,he.children)}else this.activateChildRoutes(It,wt,jt);else if(Kt.component){const he=jt.getOrCreateContext(Kt.outlet);if(this.routeReuseStrategy.shouldAttach(Kt.snapshot)){const ze=this.routeReuseStrategy.retrieve(Kt.snapshot);this.routeReuseStrategy.store(Kt.snapshot,null),he.children.onOutletReAttached(ze.contexts),he.attachRef=ze.componentRef,he.route=ze.route.value,he.outlet&&he.outlet.attach(ze.componentRef,ze.route.value),ds(ze.route.value),this.activateChildRoutes(It,null,he.children)}else{const ze=Eo(Kt.snapshot),Qe=ze?.get(A._Vd)??null;he.attachRef=null,he.route=Kt,he.resolver=Qe,he.injector=ze,he.outlet&&he.outlet.activateWith(Kt,he.injector),this.activateChildRoutes(It,null,he.children)}}else this.activateChildRoutes(It,null,jt)}}class Hr{constructor(It){this.path=It,this.route=this.path[this.path.length-1]}}class po{constructor(It,wt){this.component=It,this.route=wt}}function fs(Et,It,wt){const jt=Et._root;return Lo(jt,It?It._root:null,wt,[jt.value])}function gs(Et,It){const wt=Symbol(),jt=It.get(Et,wt);return jt===wt?"function"!=typeof Et||(0,A.Z0I)(Et)?It.get(Et):Et:jt}function Lo(Et,It,wt,jt,Kt={canDeactivateChecks:[],canActivateChecks:[]}){const re=tr(It);return Et.children.forEach(he=>{(function Sa(Et,It,wt,jt,Kt={canDeactivateChecks:[],canActivateChecks:[]}){const re=Et.value,he=It?It.value:null,ze=wt?wt.getContext(Et.value.outlet):null;if(he&&re.routeConfig===he.routeConfig){const Qe=function $s(Et,It,wt){if("function"==typeof wt)return wt(Et,It);switch(wt){case"pathParamsChange":return!Ee(Et.url,It.url);case"pathParamsOrQueryParamsChange":return!Ee(Et.url,It.url)||!rt(Et.queryParams,It.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!ks(Et,It)||!rt(Et.queryParams,It.queryParams);default:return!ks(Et,It)}}(he,re,re.routeConfig.runGuardsAndResolvers);Qe?Kt.canActivateChecks.push(new Hr(jt)):(re.data=he.data,re._resolvedData=he._resolvedData),Lo(Et,It,re.component?ze?ze.children:null:wt,jt,Kt),Qe&&ze&&ze.outlet&&ze.outlet.isActivated&&Kt.canDeactivateChecks.push(new po(ze.outlet.component,he))}else he&&Zi(It,ze,Kt),Kt.canActivateChecks.push(new Hr(jt)),Lo(Et,null,re.component?ze?ze.children:null:wt,jt,Kt)})(he,re[he.value.outlet],wt,jt.concat([he.value]),Kt),delete re[he.value.outlet]}),Ft(re,(he,ze)=>Zi(he,wt.getContext(ze),Kt)),Kt}function Zi(Et,It,wt){const jt=tr(Et),Kt=Et.value;Ft(jt,(re,he)=>{Zi(re,Kt.component?It?It.children.getContext(he):null:It,wt)}),wt.canDeactivateChecks.push(new po(Kt.component&&It&&It.outlet&&It.outlet.isActivated?It.outlet.component:null,Kt))}function Wi(Et){return"function"==typeof Et}function an(Et){return Et instanceof Y||"EmptyError"===Et?.name}const Jr=Symbol("INITIAL_VALUE");function Os(){return(0,E.w)(Et=>(0,K.a)(Et.map(It=>It.pipe((0,z.q)(1),(0,L.O)(Jr)))).pipe((0,w.U)(It=>{for(const wt of It)if(!0!==wt){if(wt===Jr)return Jr;if(!1===wt||wt instanceof ne)return wt}return!0}),(0,_.h)(It=>It!==Jr),(0,z.q)(1)))}function xo(Et){return(0,et.z)((0,o.b)(It=>{if(Li(It))throw _a(0,It)}),(0,w.U)(It=>!0===It))}const Ea={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Ao(Et,It,wt,jt,Kt){const re=Vn(Et,It,wt);return re.matched?function zo(Et,It,wt,jt){const Kt=It.canMatch;if(!Kt||0===Kt.length)return(0,Rt.of)(!0);const re=Kt.map(he=>{const ze=gs(he,Et);return At(function vi(Et){return Et&&Wi(Et.canMatch)}(ze)?ze.canMatch(It,wt):Et.runInContext(()=>ze(It,wt)))});return(0,Rt.of)(re).pipe(Os(),xo())}(jt=Ya(It,jt),It,wt).pipe((0,w.U)(he=>!0===he?re:{...Ea})):(0,Rt.of)(re)}function Vn(Et,It,wt){if(""===It.path)return"full"===It.pathMatch&&(Et.hasChildren()||wt.length>0)?{...Ea}:{matched:!0,consumedSegments:[],remainingSegments:wt,parameters:{},positionalParamSegments:{}};const Kt=(It.matcher||Q)(wt,Et,It);if(!Kt)return{...Ea};const re={};Ft(Kt.posParams,(ze,Qe)=>{re[Qe]=ze.path});const he=Kt.consumed.length>0?{...re,...Kt.consumed[Kt.consumed.length-1].parameters}:re;return{matched:!0,consumedSegments:Kt.consumed,remainingSegments:wt.slice(Kt.consumed.length),parameters:he,positionalParamSegments:Kt.posParams??{}}}function Qr(Et,It,wt,jt){if(wt.length>0&&function Za(Et,It,wt){return wt.some(jt=>Qs(Et,It,jt)&&Nn(jt)!==H)}(Et,wt,jt)){const re=new pe(It,function qs(Et,It,wt,jt){const Kt={};Kt[H]=jt,jt._sourceSegment=Et,jt._segmentIndexShift=It.length;for(const re of wt)if(""===re.path&&Nn(re)!==H){const he=new pe([],{});he._sourceSegment=Et,he._segmentIndexShift=It.length,Kt[Nn(re)]=he}return Kt}(Et,It,jt,new pe(wt,Et.children)));return re._sourceSegment=Et,re._segmentIndexShift=It.length,{segmentGroup:re,slicedSegments:[]}}if(0===wt.length&&function Js(Et,It,wt){return wt.some(jt=>Qs(Et,It,jt))}(Et,wt,jt)){const re=new pe(Et.segments,function Wo(Et,It,wt,jt,Kt){const re={};for(const he of jt)if(Qs(Et,wt,he)&&!Kt[Nn(he)]){const ze=new pe([],{});ze._sourceSegment=Et,ze._segmentIndexShift=It.length,re[Nn(he)]=ze}return{...Kt,...re}}(Et,It,wt,jt,Et.children));return re._sourceSegment=Et,re._segmentIndexShift=It.length,{segmentGroup:re,slicedSegments:wt}}const Kt=new pe(Et.segments,Et.children);return Kt._sourceSegment=Et,Kt._segmentIndexShift=It.length,{segmentGroup:Kt,slicedSegments:wt}}function Qs(Et,It,wt){return(!(Et.hasChildren()||It.length>0)||"full"!==wt.pathMatch)&&""===wt.path}function yl(Et,It,wt,jt){return!!(Nn(Et)===jt||jt!==H&&Qs(It,wt,Et))&&("**"===Et.path||Vn(It,Et,wt).matched)}function $a(Et,It,wt){return 0===It.length&&!Et.children[wt]}const ur=!1;class ta{constructor(It){this.segmentGroup=It||null}}class Ka{constructor(It){this.urlTree=It}}function ts(Et){return(0,nt._)(new ta(Et))}function Dr(Et){return(0,nt._)(new Ka(Et))}class _l{constructor(It,wt,jt,Kt,re){this.injector=It,this.configLoader=wt,this.urlSerializer=jt,this.urlTree=Kt,this.config=re,this.allowRedirects=!0}apply(){const It=Qr(this.urlTree.root,[],[],this.config).segmentGroup,wt=new pe(It.segments,It.children);return this.expandSegmentGroup(this.injector,this.config,wt,H).pipe((0,w.U)(re=>this.createUrlTree(Be(re),this.urlTree.queryParams,this.urlTree.fragment))).pipe((0,p.K)(re=>{if(re instanceof Ka)return this.allowRedirects=!1,this.match(re.urlTree);throw re instanceof ta?this.noMatchError(re):re}))}match(It){return this.expandSegmentGroup(this.injector,this.config,It.root,H).pipe((0,w.U)(Kt=>this.createUrlTree(Be(Kt),It.queryParams,It.fragment))).pipe((0,p.K)(Kt=>{throw Kt instanceof ta?this.noMatchError(Kt):Kt}))}noMatchError(It){return new A.vHH(4002,ur)}createUrlTree(It,wt,jt){const Kt=xe(It);return new ne(Kt,wt,jt)}expandSegmentGroup(It,wt,jt,Kt){return 0===jt.segments.length&&jt.hasChildren()?this.expandChildren(It,wt,jt).pipe((0,w.U)(re=>new pe([],re))):this.expandSegment(It,jt,wt,jt.segments,Kt,!0)}expandChildren(It,wt,jt){const Kt=[];for(const re of Object.keys(jt.children))"primary"===re?Kt.unshift(re):Kt.push(re);return(0,t.D)(Kt).pipe((0,e.b)(re=>{const he=jt.children[re],ze=nr(wt,re);return this.expandSegmentGroup(It,ze,he,re).pipe((0,w.U)(Qe=>({segment:Qe,outlet:re})))}),k((re,he)=>(re[he.outlet]=he.segment,re),{}),X())}expandSegment(It,wt,jt,Kt,re,he){return(0,t.D)(jt).pipe((0,e.b)(ze=>this.expandSegmentAgainstRoute(It,wt,jt,ze,Kt,re,he).pipe((0,p.K)(bi=>{if(bi instanceof ta)return(0,Rt.of)(null);throw bi}))),r(ze=>!!ze),(0,p.K)((ze,Qe)=>{if(an(ze))return $a(wt,Kt,re)?(0,Rt.of)(new pe([],{})):ts(wt);throw ze}))}expandSegmentAgainstRoute(It,wt,jt,Kt,re,he,ze){return yl(Kt,wt,re,he)?void 0===Kt.redirectTo?this.matchSegmentAgainstRoute(It,wt,Kt,re,he):ze&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(It,wt,jt,Kt,re,he):ts(wt):ts(wt)}expandSegmentAgainstRouteUsingRedirect(It,wt,jt,Kt,re,he){return"**"===Kt.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(It,jt,Kt,he):this.expandRegularSegmentAgainstRouteUsingRedirect(It,wt,jt,Kt,re,he)}expandWildCardWithParamsAgainstRouteUsingRedirect(It,wt,jt,Kt){const re=this.applyRedirectCommands([],jt.redirectTo,{});return jt.redirectTo.startsWith("/")?Dr(re):this.lineralizeSegments(jt,re).pipe((0,l.z)(he=>{const ze=new pe(he,{});return this.expandSegment(It,ze,wt,he,Kt,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(It,wt,jt,Kt,re,he){const{matched:ze,consumedSegments:Qe,remainingSegments:bi,positionalParamSegments:Si}=Vn(wt,Kt,re);if(!ze)return ts(wt);const Dn=this.applyRedirectCommands(Qe,Kt.redirectTo,Si);return Kt.redirectTo.startsWith("/")?Dr(Dn):this.lineralizeSegments(Kt,Dn).pipe((0,l.z)(Oo=>this.expandSegment(It,wt,jt,Oo.concat(bi),he,!1)))}matchSegmentAgainstRoute(It,wt,jt,Kt,re){return"**"===jt.path?(It=Ya(jt,It),jt.loadChildren?(jt._loadedRoutes?(0,Rt.of)({routes:jt._loadedRoutes,injector:jt._loadedInjector}):this.configLoader.loadChildren(It,jt)).pipe((0,w.U)(ze=>(jt._loadedRoutes=ze.routes,jt._loadedInjector=ze.injector,new pe(Kt,{})))):(0,Rt.of)(new pe(Kt,{}))):Ao(wt,jt,Kt,It).pipe((0,E.w)(({matched:he,consumedSegments:ze,remainingSegments:Qe})=>he?this.getChildConfig(It=jt._injector??It,jt,Kt).pipe((0,l.z)(Si=>{const Dn=Si.injector??It,Oo=Si.routes,{segmentGroup:Ls,slicedSegments:vs}=Qr(wt,ze,Qe,Oo),ys=new pe(Ls.segments,Ls.children);if(0===vs.length&&ys.hasChildren())return this.expandChildren(Dn,Oo,ys).pipe((0,w.U)(Fh=>new pe(ze,Fh)));if(0===Oo.length&&0===vs.length)return(0,Rt.of)(new pe(ze,{}));const Ir=Nn(jt)===re;return this.expandSegment(Dn,ys,Oo,vs,Ir?H:re,!0).pipe((0,w.U)(Lc=>new pe(ze.concat(Lc.segments),Lc.children)))})):ts(wt)))}getChildConfig(It,wt,jt){return wt.children?(0,Rt.of)({routes:wt.children,injector:It}):wt.loadChildren?void 0!==wt._loadedRoutes?(0,Rt.of)({routes:wt._loadedRoutes,injector:wt._loadedInjector}):function Xa(Et,It,wt,jt){const Kt=It.canLoad;if(void 0===Kt||0===Kt.length)return(0,Rt.of)(!0);const re=Kt.map(he=>{const ze=gs(he,Et);return At(function Xt(Et){return Et&&Wi(Et.canLoad)}(ze)?ze.canLoad(It,wt):Et.runInContext(()=>ze(It,wt)))});return(0,Rt.of)(re).pipe(Os(),xo())}(It,wt,jt).pipe((0,l.z)(Kt=>Kt?this.configLoader.loadChildren(It,wt).pipe((0,o.b)(re=>{wt._loadedRoutes=re.routes,wt._loadedInjector=re.injector})):function Er(Et){return(0,nt._)(us(ur,3))}())):(0,Rt.of)({routes:[],injector:It})}lineralizeSegments(It,wt){let jt=[],Kt=wt.root;for(;;){if(jt=jt.concat(Kt.segments),0===Kt.numberOfChildren)return(0,Rt.of)(jt);if(Kt.numberOfChildren>1||!Kt.children[H])return(0,nt._)(new A.vHH(4e3,ur));Kt=Kt.children[H]}}applyRedirectCommands(It,wt,jt){return this.applyRedirectCreateUrlTree(wt,this.urlSerializer.parse(wt),It,jt)}applyRedirectCreateUrlTree(It,wt,jt,Kt){const re=this.createSegmentGroup(It,wt.root,jt,Kt);return new ne(re,this.createQueryParams(wt.queryParams,this.urlTree.queryParams),wt.fragment)}createQueryParams(It,wt){const jt={};return Ft(It,(Kt,re)=>{if("string"==typeof Kt&&Kt.startsWith(":")){const ze=Kt.substring(1);jt[re]=wt[ze]}else jt[re]=Kt}),jt}createSegmentGroup(It,wt,jt,Kt){const re=this.createSegments(It,wt.segments,jt,Kt);let he={};return Ft(wt.children,(ze,Qe)=>{he[Qe]=this.createSegmentGroup(It,ze,jt,Kt)}),new pe(re,he)}createSegments(It,wt,jt,Kt){return wt.map(re=>re.path.startsWith(":")?this.findPosParam(It,re,Kt):this.findOrReturn(re,jt))}findPosParam(It,wt,jt){const Kt=jt[wt.path.substring(1)];if(!Kt)throw new A.vHH(4001,ur);return Kt}findOrReturn(It,wt){let jt=0;for(const Kt of wt){if(Kt.path===It.path)return wt.splice(jt),Kt;jt++}return It}}class ms{}class Ul{constructor(It,wt,jt,Kt,re,he,ze){this.injector=It,this.rootComponentType=wt,this.config=jt,this.urlTree=Kt,this.url=re,this.paramsInheritanceStrategy=he,this.urlSerializer=ze}recognize(){const It=Qr(this.urlTree.root,[],[],this.config.filter(wt=>void 0===wt.redirectTo)).segmentGroup;return this.processSegmentGroup(this.injector,this.config,It,H).pipe((0,w.U)(wt=>{if(null===wt)return null;const jt=new cs([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},H,this.rootComponentType,null,this.urlTree.root,-1,{}),Kt=new Vo(jt,wt),re=new Ua(this.url,Kt);return this.inheritParamsAndData(re._root),re}))}inheritParamsAndData(It){const wt=It.value,jt=Vs(wt,this.paramsInheritanceStrategy);wt.params=Object.freeze(jt.params),wt.data=Object.freeze(jt.data),It.children.forEach(Kt=>this.inheritParamsAndData(Kt))}processSegmentGroup(It,wt,jt,Kt){return 0===jt.segments.length&&jt.hasChildren()?this.processChildren(It,wt,jt):this.processSegment(It,wt,jt,jt.segments,Kt)}processChildren(It,wt,jt){return(0,t.D)(Object.keys(jt.children)).pipe((0,e.b)(Kt=>{const re=jt.children[Kt],he=nr(wt,Kt);return this.processSegmentGroup(It,he,re,Kt)}),k((Kt,re)=>Kt&&re?(Kt.push(...re),Kt):null),function j(Et,It=!1){return(0,b.e)((wt,jt)=>{let Kt=0;wt.subscribe((0,g.x)(jt,re=>{const he=Et(re,Kt++);(he||It)&&jt.next(re),!he&&jt.complete()}))})}(Kt=>null!==Kt),(0,m.d)(null),X(),(0,w.U)(Kt=>{if(null===Kt)return null;const re=zt(Kt);return function Wl(Et){Et.sort((It,wt)=>It.value.outlet===H?-1:wt.value.outlet===H?1:It.value.outlet.localeCompare(wt.value.outlet))}(re),re}))}processSegment(It,wt,jt,Kt,re){return(0,t.D)(wt).pipe((0,e.b)(he=>this.processSegmentAgainstRoute(he._injector??It,he,jt,Kt,re)),r(he=>!!he),(0,p.K)(he=>{if(an(he))return $a(jt,Kt,re)?(0,Rt.of)([]):(0,Rt.of)(null);throw he}))}processSegmentAgainstRoute(It,wt,jt,Kt,re){if(wt.redirectTo||!yl(wt,jt,Kt,re))return(0,Rt.of)(null);let he;if("**"===wt.path){const ze=Kt.length>0?gt(Kt).parameters:{},Qe=oe(jt)+Kt.length,bi=new cs(Kt,ze,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,Je(wt),Nn(wt),wt.component??wt._loadedComponent??null,wt,Wt(jt),Qe,ii(wt));he=(0,Rt.of)({snapshot:bi,consumedSegments:[],remainingSegments:[]})}else he=Ao(jt,wt,Kt,It).pipe((0,w.U)(({matched:ze,consumedSegments:Qe,remainingSegments:bi,parameters:Si})=>{if(!ze)return null;const Dn=oe(jt)+Qe.length;return{snapshot:new cs(Qe,Si,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,Je(wt),Nn(wt),wt.component??wt._loadedComponent??null,wt,Wt(jt),Dn,ii(wt)),consumedSegments:Qe,remainingSegments:bi}}));return he.pipe((0,E.w)(ze=>{if(null===ze)return(0,Rt.of)(null);const{snapshot:Qe,consumedSegments:bi,remainingSegments:Si}=ze;It=wt._injector??It;const Dn=wt._loadedInjector??It,Oo=function wc(Et){return Et.children?Et.children:Et.loadChildren?Et._loadedRoutes:[]}(wt),{segmentGroup:Ls,slicedSegments:vs}=Qr(jt,bi,Si,Oo.filter(Ir=>void 0===Ir.redirectTo));if(0===vs.length&&Ls.hasChildren())return this.processChildren(Dn,Oo,Ls).pipe((0,w.U)(Ir=>null===Ir?null:[new Vo(Qe,Ir)]));if(0===Oo.length&&0===vs.length)return(0,Rt.of)([new Vo(Qe,[])]);const ys=Nn(wt)===re;return this.processSegment(Dn,Oo,Ls,vs,ys?H:re).pipe((0,w.U)(Ir=>null===Ir?null:[new Vo(Qe,Ir)]))}))}}function Tc(Et){const It=Et.value.routeConfig;return It&&""===It.path&&void 0===It.redirectTo}function zt(Et){const It=[],wt=new Set;for(const jt of Et){if(!Tc(jt)){It.push(jt);continue}const Kt=It.find(re=>jt.value.routeConfig===re.value.routeConfig);void 0!==Kt?(Kt.children.push(...jt.children),wt.add(Kt)):It.push(jt)}for(const jt of wt){const Kt=zt(jt.children);It.push(new Vo(jt.value,Kt))}return It.filter(jt=>!wt.has(jt))}function Wt(Et){let It=Et;for(;It._sourceSegment;)It=It._sourceSegment;return It}function oe(Et){let It=Et,wt=It._segmentIndexShift??0;for(;It._sourceSegment;)It=It._sourceSegment,wt+=It._segmentIndexShift??0;return wt-1}function Je(Et){return Et.data||{}}function ii(Et){return Et.resolve||{}}function Un(Et){return"string"==typeof Et.title||null===Et.title}function qn(Et){return(0,E.w)(It=>{const wt=Et(It);return wt?(0,t.D)(wt).pipe((0,w.U)(()=>It)):(0,Rt.of)(It)})}const Ko=new A.OlP("ROUTES");let go=(()=>{class Et{constructor(wt,jt){this.injector=wt,this.compiler=jt,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(wt){if(this.componentLoaders.get(wt))return this.componentLoaders.get(wt);if(wt._loadedComponent)return(0,Rt.of)(wt._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(wt);const jt=At(wt.loadComponent()).pipe((0,w.U)(_r),(0,o.b)(re=>{this.onLoadEndListener&&this.onLoadEndListener(wt),wt._loadedComponent=re}),(0,d.x)(()=>{this.componentLoaders.delete(wt)})),Kt=new y(jt,()=>new C.x).pipe(T());return this.componentLoaders.set(wt,Kt),Kt}loadChildren(wt,jt){if(this.childrenLoaders.get(jt))return this.childrenLoaders.get(jt);if(jt._loadedRoutes)return(0,Rt.of)({routes:jt._loadedRoutes,injector:jt._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(jt);const re=this.loadModuleFactoryOrRoutes(jt.loadChildren).pipe((0,w.U)(ze=>{this.onLoadEndListener&&this.onLoadEndListener(jt);let Qe,bi,Si=!1;Array.isArray(ze)?bi=ze:(Qe=ze.create(wt).injector,bi=vt(Qe.get(Ko,[],A.XFs.Self|A.XFs.Optional)));return{routes:bi.map(to),injector:Qe}}),(0,d.x)(()=>{this.childrenLoaders.delete(jt)})),he=new y(re,()=>new C.x).pipe(T());return this.childrenLoaders.set(jt,he),he}loadModuleFactoryOrRoutes(wt){return At(wt()).pipe((0,w.U)(_r),(0,l.z)(Kt=>Kt instanceof A.YKP||Array.isArray(Kt)?(0,Rt.of)(Kt):(0,t.D)(this.compiler.compileModuleAsync(Kt))))}}return Et.\u0275fac=function(wt){return new(wt||Et)(A.LFG(A.zs3),A.LFG(A.Sil))},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})();function _r(Et){return function ia(Et){return Et&&"object"==typeof Et&&"default"in Et}(Et)?Et.default:Et}let Aa=(()=>{class Et{constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new C.x,this.configLoader=(0,A.f3M)(go),this.environmentInjector=(0,A.f3M)(A.lqb),this.urlSerializer=(0,A.f3M)(Ae),this.rootContexts=(0,A.f3M)(dr),this.navigationId=0,this.configLoader.onLoadEndListener=Kt=>this.events.next(new $o(Kt)),this.configLoader.onLoadStartListener=Kt=>this.events.next(new hr(Kt))}get hasRequestedNavigation(){return 0!==this.navigationId}complete(){this.transitions?.complete()}handleNavigationRequest(wt){const jt=++this.navigationId;this.transitions?.next({...this.transitions.value,...wt,id:jt})}setupNavigations(wt){return this.transitions=new $.X({id:0,targetPageId:0,currentUrlTree:wt.currentUrlTree,currentRawUrl:wt.currentUrlTree,extractedUrl:wt.urlHandlingStrategy.extract(wt.currentUrlTree),urlAfterRedirects:wt.urlHandlingStrategy.extract(wt.currentUrlTree),rawUrl:wt.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:wt.routerState.snapshot,targetSnapshot:null,currentRouterState:wt.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,_.h)(jt=>0!==jt.id),(0,w.U)(jt=>({...jt,extractedUrl:wt.urlHandlingStrategy.extract(jt.rawUrl)})),(0,E.w)(jt=>{let Kt=!1,re=!1;return(0,Rt.of)(jt).pipe((0,o.b)(he=>{this.currentNavigation={id:he.id,initialUrl:he.rawUrl,extractedUrl:he.extractedUrl,trigger:he.source,extras:he.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),(0,E.w)(he=>{const ze=wt.browserUrlTree.toString(),Qe=!wt.navigated||he.extractedUrl.toString()!==ze||ze!==wt.currentUrlTree.toString();if(("reload"===wt.onSameUrlNavigation||Qe)&&wt.urlHandlingStrategy.shouldProcessUrl(he.rawUrl))return Oa(he.source)&&(wt.browserUrlTree=he.extractedUrl),(0,Rt.of)(he).pipe((0,E.w)(Si=>{const Dn=this.transitions?.getValue();return this.events.next(new lr(Si.id,this.urlSerializer.serialize(Si.extractedUrl),Si.source,Si.restoredState)),Dn!==this.transitions?.getValue()?G.E:Promise.resolve(Si)}),function Vl(Et,It,wt,jt){return(0,E.w)(Kt=>function xl(Et,It,wt,jt,Kt){return new _l(Et,It,wt,jt,Kt).apply()}(Et,It,wt,Kt.extractedUrl,jt).pipe((0,w.U)(re=>({...Kt,urlAfterRedirects:re}))))}(this.environmentInjector,this.configLoader,this.urlSerializer,wt.config),(0,o.b)(Si=>{this.currentNavigation={...this.currentNavigation,finalUrl:Si.urlAfterRedirects},jt.urlAfterRedirects=Si.urlAfterRedirects}),function Oi(Et,It,wt,jt,Kt){return(0,l.z)(re=>function qa(Et,It,wt,jt,Kt,re,he="emptyOnly"){return new Ul(Et,It,wt,jt,Kt,he,re).recognize().pipe((0,E.w)(ze=>null===ze?function ao(Et){return new W.y(It=>It.error(Et))}(new ms):(0,Rt.of)(ze)))}(Et,It,wt,re.urlAfterRedirects,jt.serialize(re.urlAfterRedirects),jt,Kt).pipe((0,w.U)(he=>({...re,targetSnapshot:he}))))}(this.environmentInjector,wt.rootComponentType,wt.config,this.urlSerializer,wt.paramsInheritanceStrategy),(0,o.b)(Si=>{if(jt.targetSnapshot=Si.targetSnapshot,"eager"===wt.urlUpdateStrategy){if(!Si.extras.skipLocationChange){const Oo=wt.urlHandlingStrategy.merge(Si.urlAfterRedirects,Si.rawUrl);wt.setBrowserUrl(Oo,Si)}wt.browserUrlTree=Si.urlAfterRedirects}const Dn=new ls(Si.id,this.urlSerializer.serialize(Si.extractedUrl),this.urlSerializer.serialize(Si.urlAfterRedirects),Si.targetSnapshot);this.events.next(Dn)}));if(Qe&&wt.rawUrlTree&&wt.urlHandlingStrategy.shouldProcessUrl(wt.rawUrlTree)){const{id:Dn,extractedUrl:Oo,source:Ls,restoredState:vs,extras:ys}=he,Ir=new lr(Dn,this.urlSerializer.serialize(Oo),Ls,vs);this.events.next(Ir);const Zl=Io(Oo,wt.rootComponentType).snapshot;return jt={...he,targetSnapshot:Zl,urlAfterRedirects:Oo,extras:{...ys,skipLocationChange:!1,replaceUrl:!1}},(0,Rt.of)(jt)}return wt.rawUrlTree=he.rawUrl,he.resolve(null),G.E}),(0,o.b)(he=>{const ze=new ma(he.id,this.urlSerializer.serialize(he.extractedUrl),this.urlSerializer.serialize(he.urlAfterRedirects),he.targetSnapshot);this.events.next(ze)}),(0,w.U)(he=>jt={...he,guards:fs(he.targetSnapshot,he.currentSnapshot,this.rootContexts)}),function Bo(Et,It){return(0,l.z)(wt=>{const{targetSnapshot:jt,currentSnapshot:Kt,guards:{canActivateChecks:re,canDeactivateChecks:he}}=wt;return 0===he.length&&0===re.length?(0,Rt.of)({...wt,guardsResult:!0}):function vl(Et,It,wt,jt){return(0,t.D)(Et).pipe((0,l.z)(Kt=>function Jc(Et,It,wt,jt,Kt){const re=It&&It.routeConfig?It.routeConfig.canDeactivate:null;if(!re||0===re.length)return(0,Rt.of)(!0);const he=re.map(ze=>{const Qe=Eo(It)??Kt,bi=gs(ze,Qe);return At(function $e(Et){return Et&&Wi(Et.canDeactivate)}(bi)?bi.canDeactivate(Et,It,wt,jt):Qe.runInContext(()=>bi(Et,It,wt,jt))).pipe(r())});return(0,Rt.of)(he).pipe(Os())}(Kt.component,Kt.route,wt,It,jt)),r(Kt=>!0!==Kt,!0))}(he,jt,Kt,Et).pipe((0,l.z)(ze=>ze&&function qt(Et){return"boolean"==typeof Et}(ze)?function Ma(Et,It,wt,jt){return(0,t.D)(It).pipe((0,e.b)(Kt=>(0,ot.z)(function ka(Et,It){return null!==Et&&It&&It(new Zr(Et)),(0,Rt.of)(!0)}(Kt.route.parent,jt),function kr(Et,It){return null!==Et&&It&&It(new Gn(Et)),(0,Rt.of)(!0)}(Kt.route,jt),function Da(Et,It,wt){const jt=It[It.length-1],re=It.slice(0,It.length-1).reverse().map(he=>function Ta(Et){const It=Et.routeConfig?Et.routeConfig.canActivateChild:null;return It&&0!==It.length?{node:Et,guards:It}:null}(he)).filter(he=>null!==he).map(he=>(0,it.P)(()=>{const ze=he.guards.map(Qe=>{const bi=Eo(he.node)??wt,Si=gs(Qe,bi);return At(function ce(Et){return Et&&Wi(Et.canActivateChild)}(Si)?Si.canActivateChild(jt,Et):bi.runInContext(()=>Si(jt,Et))).pipe(r())});return(0,Rt.of)(ze).pipe(Os())}));return(0,Rt.of)(re).pipe(Os())}(Et,Kt.path,wt),function Ks(Et,It,wt){const jt=It.routeConfig?It.routeConfig.canActivate:null;if(!jt||0===jt.length)return(0,Rt.of)(!0);const Kt=jt.map(re=>(0,it.P)(()=>{const he=Eo(It)??wt,ze=gs(re,he);return At(function Ut(Et){return Et&&Wi(Et.canActivate)}(ze)?ze.canActivate(It,Et):he.runInContext(()=>ze(It,Et))).pipe(r())}));return(0,Rt.of)(Kt).pipe(Os())}(Et,Kt.route,wt))),r(Kt=>!0!==Kt,!0))}(jt,re,Et,It):(0,Rt.of)(ze)),(0,w.U)(ze=>({...wt,guardsResult:ze})))})}(this.environmentInjector,he=>this.events.next(he)),(0,o.b)(he=>{if(jt.guardsResult=he.guardsResult,Li(he.guardsResult))throw _a(0,he.guardsResult);const ze=new cr(he.id,this.urlSerializer.serialize(he.extractedUrl),this.urlSerializer.serialize(he.urlAfterRedirects),he.targetSnapshot,!!he.guardsResult);this.events.next(ze)}),(0,_.h)(he=>!!he.guardsResult||(wt.restoreHistory(he),this.cancelNavigationTransition(he,"",3,wt),!1)),qn(he=>{if(he.guards.canActivateChecks.length)return(0,Rt.of)(he).pipe((0,o.b)(ze=>{const Qe=new uo(ze.id,this.urlSerializer.serialize(ze.extractedUrl),this.urlSerializer.serialize(ze.urlAfterRedirects),ze.targetSnapshot);this.events.next(Qe)}),(0,E.w)(ze=>{let Qe=!1;return(0,Rt.of)(ze).pipe(function gn(Et,It){return(0,l.z)(wt=>{const{targetSnapshot:jt,guards:{canActivateChecks:Kt}}=wt;if(!Kt.length)return(0,Rt.of)(wt);let re=0;return(0,t.D)(Kt).pipe((0,e.b)(he=>function Cn(Et,It,wt,jt){const Kt=Et.routeConfig,re=Et._resolve;return void 0!==Kt?.title&&!Un(Kt)&&(re[v]=Kt.title),function Xi(Et,It,wt,jt){const Kt=function Fi(Et){return[...Object.keys(Et),...Object.getOwnPropertySymbols(Et)]}(Et);if(0===Kt.length)return(0,Rt.of)({});const re={};return(0,t.D)(Kt).pipe((0,l.z)(he=>function Kn(Et,It,wt,jt){const Kt=Eo(It)??jt,re=gs(Et,Kt);return At(re.resolve?re.resolve(It,wt):Kt.runInContext(()=>re(It,wt)))}(Et[he],It,wt,jt).pipe(r(),(0,o.b)(ze=>{re[he]=ze}))),P(1),(0,c.h)(re),(0,p.K)(he=>an(he)?G.E:(0,nt._)(he)))}(re,Et,It,jt).pipe((0,w.U)(he=>(Et._resolvedData=he,Et.data=Vs(Et,wt).resolve,Kt&&Un(Kt)&&(Et.data[v]=Kt.title),null)))}(he.route,jt,Et,It)),(0,o.b)(()=>re++),P(1),(0,l.z)(he=>re===Kt.length?(0,Rt.of)(wt):G.E))})}(wt.paramsInheritanceStrategy,this.environmentInjector),(0,o.b)({next:()=>Qe=!0,complete:()=>{Qe||(wt.restoreHistory(ze),this.cancelNavigationTransition(ze,"",2,wt))}}))}),(0,o.b)(ze=>{const Qe=new Xr(ze.id,this.urlSerializer.serialize(ze.extractedUrl),this.urlSerializer.serialize(ze.urlAfterRedirects),ze.targetSnapshot);this.events.next(Qe)}))}),qn(he=>{const ze=Qe=>{const bi=[];Qe.routeConfig?.loadComponent&&!Qe.routeConfig._loadedComponent&&bi.push(this.configLoader.loadComponent(Qe.routeConfig).pipe((0,o.b)(Si=>{Qe.component=Si}),(0,w.U)(()=>{})));for(const Si of Qe.children)bi.push(...ze(Si));return bi};return(0,K.a)(ze(he.targetSnapshot.root)).pipe((0,m.d)(),(0,z.q)(1))}),qn(()=>wt.afterPreactivation()),(0,w.U)(he=>{const ze=function Us(Et,It,wt){const jt=Ws(Et,It._root,wt?wt._root:void 0);return new Ss(jt,It)}(wt.routeReuseStrategy,he.targetSnapshot,he.currentRouterState);return jt={...he,targetRouterState:ze}}),(0,o.b)(he=>{wt.currentUrlTree=he.urlAfterRedirects,wt.rawUrlTree=wt.urlHandlingStrategy.merge(he.urlAfterRedirects,he.rawUrl),wt.routerState=he.targetRouterState,"deferred"===wt.urlUpdateStrategy&&(he.extras.skipLocationChange||wt.setBrowserUrl(wt.rawUrlTree,he),wt.browserUrlTree=he.urlAfterRedirects)}),((Et,It,wt)=>(0,w.U)(jt=>(new jr(It,jt.targetRouterState,jt.currentRouterState,wt).activate(Et),jt)))(this.rootContexts,wt.routeReuseStrategy,he=>this.events.next(he)),(0,o.b)({next:he=>{Kt=!0,this.lastSuccessfulNavigation=this.currentNavigation,wt.navigated=!0,this.events.next(new Qo(he.id,this.urlSerializer.serialize(he.extractedUrl),this.urlSerializer.serialize(wt.currentUrlTree))),wt.titleStrategy?.updateTitle(he.targetRouterState.snapshot),he.resolve(!0)},complete:()=>{Kt=!0}}),(0,d.x)(()=>{Kt||re||this.cancelNavigationTransition(jt,"",1,wt),this.currentNavigation?.id===jt.id&&(this.currentNavigation=null)}),(0,p.K)(he=>{if(re=!0,ba(he)){Xs(he)||(wt.navigated=!0,wt.restoreHistory(jt,!0));const ze=new Ki(jt.id,this.urlSerializer.serialize(jt.extractedUrl),he.message,he.cancellationCode);if(this.events.next(ze),Xs(he)){const Qe=wt.urlHandlingStrategy.merge(he.url,wt.rawUrlTree),bi={skipLocationChange:jt.extras.skipLocationChange,replaceUrl:"eager"===wt.urlUpdateStrategy||Oa(jt.source)};wt.scheduleNavigation(Qe,"imperative",null,bi,{resolve:jt.resolve,reject:jt.reject,promise:jt.promise})}else jt.resolve(!1)}else{wt.restoreHistory(jt,!0);const ze=new Sr(jt.id,this.urlSerializer.serialize(jt.extractedUrl),he,jt.targetSnapshot??void 0);this.events.next(ze);try{jt.resolve(wt.errorHandler(he))}catch(Qe){jt.reject(Qe)}}return G.E}))}))}cancelNavigationTransition(wt,jt,Kt,re){const he=new Ki(wt.id,this.urlSerializer.serialize(wt.extractedUrl),jt,Kt);this.events.next(he),wt.resolve(!1)}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})();function Oa(Et){return"imperative"!==Et}let Sc=(()=>{class Et{buildTitle(wt){let jt,Kt=wt.root;for(;void 0!==Kt;)jt=this.getResolvedTitleForRoute(Kt)??jt,Kt=Kt.children.find(re=>re.outlet===H);return jt}getResolvedTitleForRoute(wt){return wt.data[v]}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:function(){return(0,A.f3M)(Ar)},providedIn:"root"}),Et})(),Ar=(()=>{class Et extends Sc{constructor(wt){super(),this.title=wt}updateTitle(wt){const jt=this.buildTitle(wt);void 0!==jt&&this.title.setTitle(jt)}}return Et.\u0275fac=function(wt){return new(wt||Et)(A.LFG(U.Dx))},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})(),io=(()=>{class Et{}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:function(){return(0,A.f3M)(Mc)},providedIn:"root"}),Et})();class Ja{shouldDetach(It){return!1}store(It,wt){}shouldAttach(It){return!1}retrieve(It){return null}shouldReuseRoute(It,wt){return It.routeConfig===wt.routeConfig}}let Mc=(()=>{class Et extends Ja{}return Et.\u0275fac=function(){let It;return function(jt){return(It||(It=A.n5z(Et)))(jt||Et)}}(),Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})();const Or=new A.OlP("",{providedIn:"root",factory:()=>({})});let kc=(()=>{class Et{}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:function(){return(0,A.f3M)(Pr)},providedIn:"root"}),Et})(),Pr=(()=>{class Et{shouldProcessUrl(wt){return!0}extract(wt){return wt}merge(wt,jt){return wt}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})();function Gr(Et){throw Et}function oa(Et,It,wt){return It.parse("/")}const ra={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Pa={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let co=(()=>{class Et{constructor(){this.disposed=!1,this.currentPageId=0,this.console=(0,A.f3M)(A.c2e),this.isNgZoneEnabled=!1,this.options=(0,A.f3M)(Or,{optional:!0})||{},this.errorHandler=this.options.errorHandler||Gr,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||oa,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>(0,Rt.of)(void 0),this.urlHandlingStrategy=(0,A.f3M)(kc),this.routeReuseStrategy=(0,A.f3M)(io),this.urlCreationStrategy=(0,A.f3M)(Mo),this.titleStrategy=(0,A.f3M)(Sc),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=vt((0,A.f3M)(Ko,{optional:!0})??[]),this.navigationTransitions=(0,A.f3M)(Aa),this.urlSerializer=(0,A.f3M)(Ae),this.location=(0,A.f3M)(x.Ye),this.rootComponentType=null,this.isNgZoneEnabled=(0,A.f3M)(A.R0b)instanceof A.R0b&&A.R0b.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new ne,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=Io(this.currentUrlTree,this.rootComponentType),this.navigationTransitions.setupNavigations(this).subscribe(wt=>{this.lastSuccessfulId=wt.id,this.currentPageId=wt.targetPageId},wt=>{this.console.warn(`Unhandled Navigation Error: ${wt}`)})}get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}resetRootComponentType(wt){this.rootComponentType=wt,this.routerState.root.component=this.rootComponentType}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(wt=>{const jt="popstate"===wt.type?"popstate":"hashchange";"popstate"===jt&&setTimeout(()=>{const Kt={replaceUrl:!0},re=wt.state?.navigationId?wt.state:null;if(wt.state){const ze={...wt.state};delete ze.navigationId,delete ze.\u0275routerPageId,0!==Object.keys(ze).length&&(Kt.state=ze)}const he=this.parseUrl(wt.url);this.scheduleNavigation(he,jt,re,Kt)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}resetConfig(wt){this.config=wt.map(to),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(wt,jt={}){const{relativeTo:Kt,queryParams:re,fragment:he,queryParamsHandling:ze,preserveFragment:Qe}=jt,bi=Qe?this.currentUrlTree.fragment:he;let Si=null;switch(ze){case"merge":Si={...this.currentUrlTree.queryParams,...re};break;case"preserve":Si=this.currentUrlTree.queryParams;break;default:Si=re||null}return null!==Si&&(Si=this.removeEmptyProps(Si)),this.urlCreationStrategy.createUrlTree(Kt,this.routerState,this.currentUrlTree,wt,Si,bi??null)}navigateByUrl(wt,jt={skipLocationChange:!1}){const Kt=Li(wt)?wt:this.parseUrl(wt),re=this.urlHandlingStrategy.merge(Kt,this.rawUrlTree);return this.scheduleNavigation(re,"imperative",null,jt)}navigate(wt,jt={skipLocationChange:!1}){return function Xl(Et){for(let It=0;It{const re=wt[Kt];return null!=re&&(jt[Kt]=re),jt},{})}scheduleNavigation(wt,jt,Kt,re,he){if(this.disposed)return Promise.resolve(!1);let ze,Qe,bi,Si;return he?(ze=he.resolve,Qe=he.reject,bi=he.promise):bi=new Promise((Dn,Oo)=>{ze=Dn,Qe=Oo}),"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(Kt=this.location.getState()),Si=Kt&&Kt.\u0275routerPageId?Kt.\u0275routerPageId:re.replaceUrl||re.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):Si=0,this.navigationTransitions.handleNavigationRequest({targetPageId:Si,source:jt,restoredState:Kt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:wt,extras:re,resolve:ze,reject:Qe,promise:bi,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),bi.catch(Dn=>Promise.reject(Dn))}setBrowserUrl(wt,jt){const Kt=this.urlSerializer.serialize(wt),re={...jt.extras.state,...this.generateNgRouterState(jt.id,jt.targetPageId)};this.location.isCurrentPathEqualTo(Kt)||jt.extras.replaceUrl?this.location.replaceState(Kt,"",re):this.location.go(Kt,"",re)}restoreHistory(wt,jt=!1){if("computed"===this.canceledNavigationResolution){const Kt=this.currentPageId-wt.targetPageId;"popstate"!==wt.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.getCurrentNavigation()?.finalUrl||0===Kt?this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===Kt&&(this.resetState(wt),this.browserUrlTree=wt.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(Kt)}else"replace"===this.canceledNavigationResolution&&(jt&&this.resetState(wt),this.resetUrlToCurrentUrlTree())}resetState(wt){this.routerState=wt.currentRouterState,this.currentUrlTree=wt.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,wt.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(wt,jt){return"computed"===this.canceledNavigationResolution?{navigationId:wt,\u0275routerPageId:jt}:{navigationId:wt}}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})(),bl=(()=>{class Et{constructor(wt,jt,Kt,re,he,ze){this.router=wt,this.route=jt,this.tabIndexAttribute=Kt,this.renderer=re,this.el=he,this.locationStrategy=ze,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new C.x;const Qe=he.nativeElement.tagName;this.isAnchorElement="A"===Qe||"AREA"===Qe,this.isAnchorElement?this.subscription=wt.events.subscribe(bi=>{bi instanceof Qo&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(wt){this._preserveFragment=(0,A.D6c)(wt)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(wt){this._skipLocationChange=(0,A.D6c)(wt)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(wt){this._replaceUrl=(0,A.D6c)(wt)}get replaceUrl(){return this._replaceUrl}setTabIndexIfNotOnNativeEl(wt){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",wt)}ngOnChanges(wt){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(wt){null!=wt?(this.commands=Array.isArray(wt)?wt:[wt],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(wt,jt,Kt,re,he){return!!(null===this.urlTree||this.isAnchorElement&&(0!==wt||jt||Kt||re||he||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const wt=null===this.href?null:(0,A.P3R)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",wt)}applyAttributeValue(wt,jt){const Kt=this.renderer,re=this.el.nativeElement;null!==jt?Kt.setAttribute(re,wt,jt):Kt.removeAttribute(re,wt)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}}return Et.\u0275fac=function(wt){return new(wt||Et)(A.Y36(co),A.Y36(er),A.$8M("tabindex"),A.Y36(A.Qsj),A.Y36(A.SBq),A.Y36(x.S$))},Et.\u0275dir=A.lG2({type:Et,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(wt,jt){1&wt&&A.NdJ("click",function(re){return jt.onClick(re.button,re.ctrlKey,re.shiftKey,re.altKey,re.metaKey)}),2&wt&&A.uIk("target",jt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",relativeTo:"relativeTo",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",routerLink:"routerLink"},standalone:!0,features:[A.TTD]}),Et})(),Cl=(()=>{class Et{constructor(wt,jt,Kt,re,he){this.router=wt,this.element=jt,this.renderer=Kt,this.cdr=re,this.link=he,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new A.vpe,this.routerEventsSubscription=wt.events.subscribe(ze=>{ze instanceof Qo&&this.update()})}ngAfterContentInit(){(0,Rt.of)(this.links.changes,(0,Rt.of)(null)).pipe((0,I.J)()).subscribe(wt=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const wt=[...this.links.toArray(),this.link].filter(jt=>!!jt).map(jt=>jt.onChanges);this.linkInputChangesSubscription=(0,t.D)(wt).pipe((0,I.J)()).subscribe(jt=>{this.isActive!==this.isLinkActive(this.router)(jt)&&this.update()})}set routerLinkActive(wt){const jt=Array.isArray(wt)?wt:wt.split(" ");this.classes=jt.filter(Kt=>!!Kt)}ngOnChanges(wt){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||Promise.resolve().then(()=>{const wt=this.hasActiveLinks();this.isActive!==wt&&(this.isActive=wt,this.cdr.markForCheck(),this.classes.forEach(jt=>{wt?this.renderer.addClass(this.element.nativeElement,jt):this.renderer.removeClass(this.element.nativeElement,jt)}),wt&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(wt))})}isLinkActive(wt){const jt=function Dc(Et){return!!Et.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return Kt=>!!Kt.urlTree&&wt.isActive(Kt.urlTree,jt)}hasActiveLinks(){const wt=this.isLinkActive(this.router);return this.link&&wt(this.link)||this.links.some(wt)}}return Et.\u0275fac=function(wt){return new(wt||Et)(A.Y36(co),A.Y36(A.SBq),A.Y36(A.Qsj),A.Y36(A.sBO),A.Y36(bl,8))},Et.\u0275dir=A.lG2({type:Et,selectors:[["","routerLinkActive",""]],contentQueries:function(wt,jt,Kt){if(1&wt&&A.Suo(Kt,bl,5),2&wt){let re;A.iGM(re=A.CRH())&&(jt.links=re)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[A.TTD]}),Et})();class Ps{}let Ec=(()=>{class Et{preload(wt,jt){return jt().pipe((0,p.K)(()=>(0,Rt.of)(null)))}}return Et.\u0275fac=function(wt){return new(wt||Et)},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})(),pr=(()=>{class Et{constructor(wt,jt,Kt,re,he){this.router=wt,this.injector=Kt,this.preloadingStrategy=re,this.loader=he}setUpPreloading(){this.subscription=this.router.events.pipe((0,_.h)(wt=>wt instanceof Qo),(0,e.b)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(wt,jt){const Kt=[];for(const re of jt){re.providers&&!re._injector&&(re._injector=(0,A.MMx)(re.providers,wt,`Route: ${re.path}`));const he=re._injector??wt,ze=re._loadedInjector??he;re.loadChildren&&!re._loadedRoutes&&void 0===re.canLoad||re.loadComponent&&!re._loadedComponent?Kt.push(this.preloadConfig(he,re)):(re.children||re._loadedRoutes)&&Kt.push(this.processRoutes(ze,re.children??re._loadedRoutes))}return(0,t.D)(Kt).pipe((0,I.J)())}preloadConfig(wt,jt){return this.preloadingStrategy.preload(jt,()=>{let Kt;Kt=jt.loadChildren&&void 0===jt.canLoad?this.loader.loadChildren(wt,jt):(0,Rt.of)(null);const re=Kt.pipe((0,l.z)(he=>null===he?(0,Rt.of)(void 0):(jt._loadedRoutes=he.routes,jt._loadedInjector=he.injector,this.processRoutes(he.injector??wt,he.routes))));if(jt.loadComponent&&!jt._loadedComponent){const he=this.loader.loadComponent(jt);return(0,t.D)([re,he]).pipe((0,I.J)())}return re})}}return Et.\u0275fac=function(wt){return new(wt||Et)(A.LFG(co),A.LFG(A.Sil),A.LFG(A.lqb),A.LFG(Ps),A.LFG(go))},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac,providedIn:"root"}),Et})();const Tl=new A.OlP("");let sa=(()=>{class Et{constructor(wt,jt,Kt,re,he={}){this.urlSerializer=wt,this.transitions=jt,this.viewportScroller=Kt,this.zone=re,this.options=he,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},he.scrollPositionRestoration=he.scrollPositionRestoration||"disabled",he.anchorScrolling=he.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(wt=>{wt instanceof lr?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=wt.navigationTrigger,this.restoredId=wt.restoredState?wt.restoredState.navigationId:0):wt instanceof Qo&&(this.lastId=wt.id,this.scheduleScrollEvent(wt,this.urlSerializer.parse(wt.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(wt=>{wt instanceof Mr&&(wt.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(wt.position):wt.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(wt.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(wt,jt){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Mr(wt,"popstate"===this.lastSource?this.store[this.restoredId]:null,jt))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return Et.\u0275fac=function(wt){A.$Z()},Et.\u0275prov=A.Yz7({token:Et,factory:Et.\u0275fac}),Et})();function aa(Et,It){return{\u0275kind:Et,\u0275providers:It}}function la(){const Et=(0,A.f3M)(A.zs3);return It=>{const wt=Et.get(A.z2F);if(It!==wt.components[0])return;const jt=Et.get(co),Kt=Et.get(Ia);1===Et.get(ca)&&jt.initialNavigation(),Et.get(Pc,null,A.XFs.Optional)?.setUpPreloading(),Et.get(Tl,null,A.XFs.Optional)?.init(),jt.resetRootComponentType(wt.componentTypes[0]),Kt.closed||(Kt.next(),Kt.unsubscribe())}}const Ia=new A.OlP("",{factory:()=>new C.x}),ca=new A.OlP("",{providedIn:"root",factory:()=>1});const Pc=new A.OlP("");function Oh(Et){return aa(0,[{provide:Pc,useExisting:pr},{provide:Ps,useExisting:Et}])}const th=new A.OlP("ROUTER_FORROOT_GUARD"),Ph=[x.Ye,{provide:Ae,useClass:me},co,dr,{provide:er,useFactory:function Ac(Et){return Et.routerState.root},deps:[co]},go,[]];function Ih(){return new A.PXZ("Router",co)}let Lh=(()=>{class Et{constructor(wt){}static forRoot(wt,jt){return{ngModule:Et,providers:[Ph,[],{provide:Ko,multi:!0,useValue:wt},{provide:th,useFactory:Ic,deps:[[co,new A.FiY,new A.tp0]]},{provide:Or,useValue:jt||{}},jt?.useHash?{provide:x.S$,useClass:x.Do}:{provide:x.S$,useClass:x.b0},{provide:Tl,useFactory:()=>{const Et=(0,A.f3M)(x.EM),It=(0,A.f3M)(A.R0b),wt=(0,A.f3M)(Or),jt=(0,A.f3M)(Aa),Kt=(0,A.f3M)(Ae);return wt.scrollOffset&&Et.setOffset(wt.scrollOffset),new sa(Kt,jt,Et,It,wt)}},jt?.preloadingStrategy?Oh(jt.preloadingStrategy).\u0275providers:[],{provide:A.PXZ,multi:!0,useFactory:Ih},jt?.initialNavigation?mo(jt):[],[{provide:Ml,useFactory:la},{provide:A.tb,multi:!0,useExisting:Ml}]]}}static forChild(wt){return{ngModule:Et,providers:[{provide:Ko,multi:!0,useValue:wt}]}}}return Et.\u0275fac=function(wt){return new(wt||Et)(A.LFG(th,8))},Et.\u0275mod=A.oAB({type:Et}),Et.\u0275inj=A.cJS({imports:[ps]}),Et})();function Ic(Et){return"guarded"}function mo(Et){return["disabled"===Et.initialNavigation?aa(3,[{provide:A.ip1,multi:!0,useFactory:()=>{const It=(0,A.f3M)(co);return()=>{It.setUpLocationChangeListener()}}},{provide:ca,useValue:2}]).\u0275providers:[],"enabledBlocking"===Et.initialNavigation?aa(2,[{provide:ca,useValue:0},{provide:A.ip1,multi:!0,deps:[A.zs3],useFactory:It=>{const wt=It.get(x.V_,Promise.resolve());return()=>wt.then(()=>new Promise(Kt=>{const re=It.get(co),he=It.get(Ia);(function jt(Kt){It.get(co).events.pipe((0,_.h)(he=>he instanceof Qo||he instanceof Ki||he instanceof Sr),(0,w.U)(he=>he instanceof Qo||he instanceof Ki&&(0===he.code||1===he.code)&&null),(0,_.h)(he=>null!==he),(0,z.q)(1)).subscribe(()=>{Kt()})})(()=>{Kt(!0)}),re.afterPreactivation=()=>(Kt(!0),he.closed?(0,Rt.of)(void 0):he),re.initialNavigation()}))}}]).\u0275providers:[]]}const Ml=new A.OlP("")},75958:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{_D:()=>ca,jt:()=>ch,Vi:()=>zd,iD:()=>Zu,FF:()=>kf,IJ:()=>rc,M2:()=>lh,o8:()=>Zd});var A=Bt(94650),t=Bt(69751),Rt=Bt(60515),$=Bt(39646),V=Bt(77579),Y=Bt(54968),K=Bt(5963),ot=Bt(38421);const{isArray:it}=Array;function et(st){return 1===st.length&&it(st[0])?st[0]:st}var nt=Bt(25403);function W(...st){return 1===(st=et(st)).length?(0,ot.Xf)(st[0]):new t.y(function G(st){return yt=>{let q=[];for(let pt=0;q&&!yt.closed&&pt{if(q){for(let Yt=0;Yt{let Ot=q.map(()=>[]),Yt=q.map(()=>!1);pt.add(()=>{Ot=Yt=null});for(let ge=0;!pt.closed&&ge{if(Ot[ge].push(ke),Ot.every(Ie=>Ie.length)){const Ie=Ot.map(We=>We.shift());pt.next(yt?yt(...Ie):Ie),Ot.some((We,Ke)=>!We.length&&Yt[Ke])&&pt.complete()}},()=>{Yt[ge]=!0,!Ot[ge].length&&pt.complete()}));return()=>{Ot=Yt=null}}):Rt.E}var w=Bt(56451),E=Bt(97272),L=Bt(82722),_=Bt(39300),l=Bt(95698),m=Bt(54004),s=Bt(68675),a=Bt(71884),n=Bt(63900),r=Bt(18505),e=Bt(54482),o=Bt(44671);function p(...st){const yt=(0,C.jO)(st);return(0,e.e)((q,pt)=>{const Ot=st.length,Yt=new Array(Ot);let ge=st.map(()=>!1),ke=!1;for(let Ie=0;Ie{Yt[Ie]=We,!ke&&!ge[Ie]&&(ge[Ie]=!0,(ke=ge.every(o.y))&&(ge=null))},g.Z));q.subscribe((0,nt.x)(pt,Ie=>{if(ke){const We=[Ie,...Yt];pt.next(yt?yt(...We):We)}}))})}var h=Bt(91005),k=Bt(95577),X=Bt(13099),j=Bt(36895),c=Bt(24006),d={left:"right",right:"left",bottom:"top",top:"bottom"};function I(st){return st.replace(/left|right|bottom|top/g,function(yt){return d[yt]})}function U(st){return st.split("-")[0]}var H={start:"end",end:"start"};function v(st){return st.replace(/start|end/g,function(yt){return H[yt]})}var R="top",B="bottom",Q="right",J="left",rt="auto",ut=[R,B,Q,J],vt="start",gt="end",Ft="viewport",At="popper",Ht=ut.reduce(function(st,yt){return st.concat([yt+"-"+vt,yt+"-"+gt])},[]),Ct=[].concat(ut,[rt]).reduce(function(st,yt){return st.concat([yt,yt+"-"+vt,yt+"-"+gt])},[]),se=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function fe(st){if(null==st)return window;if("[object Window]"!==st.toString()){var yt=st.ownerDocument;return yt&&yt.defaultView||window}return st}function Ee(st){return st instanceof fe(st).Element||st instanceof Element}function Me(st){return st instanceof fe(st).HTMLElement||st instanceof HTMLElement}function Ae(st){return!(typeof ShadowRoot>"u")&&(st instanceof fe(st).ShadowRoot||st instanceof ShadowRoot)}function me(st){return((Ee(st)?st.ownerDocument:st.document)||window.document).documentElement}var qe=Math.max,Ue=Math.min,Ze=Math.round;function Ne(){var st=navigator.userAgentData;return null!=st&&st.brands?st.brands.map(function(yt){return yt.brand+"/"+yt.version}).join(" "):navigator.userAgent}function ue(){return!/^((?!chrome|android).)*safari/i.test(Ne())}function _e(st,yt,q){void 0===yt&&(yt=!1),void 0===q&&(q=!1);var pt=st.getBoundingClientRect(),Ot=1,Yt=1;yt&&Me(st)&&(Ot=st.offsetWidth>0&&Ze(pt.width)/st.offsetWidth||1,Yt=st.offsetHeight>0&&Ze(pt.height)/st.offsetHeight||1);var ke=(Ee(st)?fe(st):window).visualViewport,Ie=!ue()&&q,We=(pt.left+(Ie&&ke?ke.offsetLeft:0))/Ot,Ke=(pt.top+(Ie&&ke?ke.offsetTop:0))/Yt,wi=pt.width/Ot,gi=pt.height/Yt;return{width:wi,height:gi,top:Ke,right:We+wi,bottom:Ke+gi,left:We,x:We,y:Ke}}function Ve(st){var yt=fe(st);return{scrollLeft:yt.pageXOffset,scrollTop:yt.pageYOffset}}function ni(st){return _e(me(st)).left+Ve(st).scrollLeft}function Ji(st){return fe(st).getComputedStyle(st)}function Ei(st){return st?(st.nodeName||"").toLowerCase():null}function $n(st){return"html"===Ei(st)?st:st.assignedSlot||st.parentNode||(Ae(st)?st.host:null)||me(st)}function wo(st){var yt=Ji(st);return/auto|scroll|overlay|hidden/.test(yt.overflow+yt.overflowY+yt.overflowX)}function hn(st){return["html","body","#document"].indexOf(Ei(st))>=0?st.ownerDocument.body:Me(st)&&wo(st)?st:hn($n(st))}function fn(st,yt){var q;void 0===yt&&(yt=[]);var pt=hn(st),Ot=pt===(null==(q=st.ownerDocument)?void 0:q.body),Yt=fe(pt),ge=Ot?[Yt].concat(Yt.visualViewport||[],wo(pt)?pt:[]):pt,ke=yt.concat(ge);return Ot?ke:ke.concat(fn($n(ge)))}function Ci(st){return["table","td","th"].indexOf(Ei(st))>=0}function Le(st){return Me(st)&&"fixed"!==Ji(st).position?st.offsetParent:null}function xe(st){for(var yt=fe(st),q=Le(st);q&&Ci(q)&&"static"===Ji(q).position;)q=Le(q);return q&&("html"===Ei(q)||"body"===Ei(q)&&"static"===Ji(q).position)?yt:q||function Pe(st){var yt=/firefox/i.test(Ne());if(/Trident/i.test(Ne())&&Me(st)&&"fixed"===Ji(st).position)return null;var Ot=$n(st);for(Ae(Ot)&&(Ot=Ot.host);Me(Ot)&&["html","body"].indexOf(Ei(Ot))<0;){var Yt=Ji(Ot);if("none"!==Yt.transform||"none"!==Yt.perspective||"paint"===Yt.contain||-1!==["transform","perspective"].indexOf(Yt.willChange)||yt&&"filter"===Yt.willChange||yt&&Yt.filter&&"none"!==Yt.filter)return Ot;Ot=Ot.parentNode}return null}(st)||yt}function Be(st,yt){var q=yt.getRootNode&&yt.getRootNode();if(st.contains(yt))return!0;if(q&&Ae(q)){var pt=yt;do{if(pt&&st.isSameNode(pt))return!0;pt=pt.parentNode||pt.host}while(pt)}return!1}function oi(st){return Object.assign({},st,{left:st.x,top:st.y,right:st.x+st.width,bottom:st.y+st.height})}function Yi(st,yt,q){return yt===Ft?oi(function Ui(st,yt){var q=fe(st),pt=me(st),Ot=q.visualViewport,Yt=pt.clientWidth,ge=pt.clientHeight,ke=0,Ie=0;if(Ot){Yt=Ot.width,ge=Ot.height;var We=ue();(We||!We&&"fixed"===yt)&&(ke=Ot.offsetLeft,Ie=Ot.offsetTop)}return{width:Yt,height:ge,x:ke+ni(st),y:Ie}}(st,q)):Ee(yt)?function Li(st,yt){var q=_e(st,!1,"fixed"===yt);return q.top=q.top+st.clientTop,q.left=q.left+st.clientLeft,q.bottom=q.top+st.clientHeight,q.right=q.left+st.clientWidth,q.width=st.clientWidth,q.height=st.clientHeight,q.x=q.left,q.y=q.top,q}(yt,q):oi(function pn(st){var yt,q=me(st),pt=Ve(st),Ot=null==(yt=st.ownerDocument)?void 0:yt.body,Yt=qe(q.scrollWidth,q.clientWidth,Ot?Ot.scrollWidth:0,Ot?Ot.clientWidth:0),ge=qe(q.scrollHeight,q.clientHeight,Ot?Ot.scrollHeight:0,Ot?Ot.clientHeight:0),ke=-pt.scrollLeft+ni(st),Ie=-pt.scrollTop;return"rtl"===Ji(Ot||q).direction&&(ke+=qe(q.clientWidth,Ot?Ot.clientWidth:0)-Yt),{width:Yt,height:ge,x:ke,y:Ie}}(me(st)))}function Zo(st){return st.split("-")[1]}function Qn(st){return["top","bottom"].indexOf(st)>=0?"x":"y"}function Go(st){var Ie,yt=st.reference,q=st.element,pt=st.placement,Ot=pt?U(pt):null,Yt=pt?Zo(pt):null,ge=yt.x+yt.width/2-q.width/2,ke=yt.y+yt.height/2-q.height/2;switch(Ot){case R:Ie={x:ge,y:yt.y-q.height};break;case B:Ie={x:ge,y:yt.y+yt.height};break;case Q:Ie={x:yt.x+yt.width,y:ke};break;case J:Ie={x:yt.x-q.width,y:ke};break;default:Ie={x:yt.x,y:yt.y}}var We=Ot?Qn(Ot):null;if(null!=We){var Ke="y"===We?"height":"width";switch(Yt){case vt:Ie[We]=Ie[We]-(yt[Ke]/2-q[Ke]/2);break;case gt:Ie[We]=Ie[We]+(yt[Ke]/2-q[Ke]/2)}}return Ie}function Ce(st){return Object.assign({},{top:0,right:0,bottom:0,left:0},st)}function $t(st,yt){return yt.reduce(function(q,pt){return q[pt]=st,q},{})}function ve(st,yt){void 0===yt&&(yt={});var pt=yt.placement,Ot=void 0===pt?st.placement:pt,Yt=yt.strategy,ge=void 0===Yt?st.strategy:Yt,ke=yt.boundary,Ie=void 0===ke?"clippingParents":ke,We=yt.rootBoundary,Ke=void 0===We?Ft:We,wi=yt.elementContext,gi=void 0===wi?At:wi,Ai=yt.altBoundary,yn=void 0!==Ai&&Ai,$i=yt.padding,ln=void 0===$i?0:$i,An=Ce("number"!=typeof ln?ln:$t(ln,ut)),ho=st.rects.popper,In=st.elements[yn?gi===At?"reference":At:gi],dn=function To(st,yt,q,pt){var Ot="clippingParents"===yt?function Hn(st){var yt=fn($n(st)),pt=["absolute","fixed"].indexOf(Ji(st).position)>=0&&Me(st)?xe(st):st;return Ee(pt)?yt.filter(function(Ot){return Ee(Ot)&&Be(Ot,pt)&&"body"!==Ei(Ot)}):[]}(st):[].concat(yt),Yt=[].concat(Ot,[q]),ke=Yt.reduce(function(Ie,We){var Ke=Yi(st,We,pt);return Ie.top=qe(Ke.top,Ie.top),Ie.right=Ue(Ke.right,Ie.right),Ie.bottom=Ue(Ke.bottom,Ie.bottom),Ie.left=qe(Ke.left,Ie.left),Ie},Yi(st,Yt[0],pt));return ke.width=ke.right-ke.left,ke.height=ke.bottom-ke.top,ke.x=ke.left,ke.y=ke.top,ke}(Ee(In)?In:In.contextElement||me(st.elements.popper),Ie,Ke,ge),Ln=_e(st.elements.reference),no=Go({reference:Ln,element:ho,strategy:"absolute",placement:Ot}),Tn=oi(Object.assign({},ho,no)),ro=gi===At?Tn:Ln,Yo={top:dn.top-ro.top+An.top,bottom:ro.bottom-dn.bottom+An.bottom,left:dn.left-ro.left+An.left,right:ro.right-dn.right+An.right},vo=st.modifiersData.offset;if(gi===At&&vo){var wr=vo[Ot];Object.keys(Yo).forEach(function(Tr){var ua=[Q,B].indexOf(Tr)>=0?1:-1,Pl=[R,B].indexOf(Tr)>=0?"y":"x";Yo[Tr]+=wr[Pl]*ua})}return Yo}const Qi={name:"flip",enabled:!0,phase:"main",fn:function fi(st){var yt=st.state,q=st.options,pt=st.name;if(!yt.modifiersData[pt]._skip){for(var Ot=q.mainAxis,Yt=void 0===Ot||Ot,ge=q.altAxis,ke=void 0===ge||ge,Ie=q.fallbackPlacements,We=q.padding,Ke=q.boundary,wi=q.rootBoundary,gi=q.altBoundary,Ai=q.flipVariations,yn=void 0===Ai||Ai,$i=q.allowedAutoPlacements,ln=yt.options.placement,An=U(ln),ho=Ie||(An!==ln&&yn?function ti(st){if(U(st)===rt)return[];var yt=I(st);return[v(st),yt,v(yt)]}(ln):[I(ln)]),In=[ln].concat(ho).reduce(function(ac,Ba){return ac.concat(U(Ba)===rt?function Re(st,yt){void 0===yt&&(yt={});var Ot=yt.boundary,Yt=yt.rootBoundary,ge=yt.padding,ke=yt.flipVariations,Ie=yt.allowedAutoPlacements,We=void 0===Ie?Ct:Ie,Ke=Zo(yt.placement),wi=Ke?ke?Ht:Ht.filter(function(yn){return Zo(yn)===Ke}):ut,gi=wi.filter(function(yn){return We.indexOf(yn)>=0});0===gi.length&&(gi=wi);var Ai=gi.reduce(function(yn,$i){return yn[$i]=ve(st,{placement:$i,boundary:Ot,rootBoundary:Yt,padding:ge})[U($i)],yn},{});return Object.keys(Ai).sort(function(yn,$i){return Ai[yn]-Ai[$i]})}(yt,{placement:Ba,boundary:Ke,rootBoundary:wi,padding:We,flipVariations:yn,allowedAutoPlacements:$i}):Ba)},[]),dn=yt.rects.reference,Ln=yt.rects.popper,no=new Map,Tn=!0,ro=In[0],Yo=0;Yo=0,Pl=ua?"width":"height",Nr=ve(yt,{placement:vo,boundary:Ke,rootBoundary:wi,altBoundary:gi,padding:We}),Bs=ua?Tr?Q:J:Tr?B:R;dn[Pl]>Ln[Pl]&&(Bs=I(Bs));var al=I(Bs),Il=[];if(Yt&&Il.push(Nr[wr]<=0),ke&&Il.push(Nr[Bs]<=0,Nr[al]<=0),Il.every(function(ac){return ac})){ro=vo,Tn=!1;break}no.set(vo,Il)}if(Tn)for(var eu=function(Ba){var lc=In.find(function(iu){var cc=no.get(iu);if(cc)return cc.slice(0,Ba).every(function(hc){return hc})});if(lc)return ro=lc,"break"},sc=yn?3:1;sc>0&&"break"!==eu(sc);sc--);yt.placement!==ro&&(yt.modifiersData[pt]._skip=!0,yt.placement=ro,yt.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function bn(st,yt,q){return qe(st,Ue(yt,q))}function Ii(st){var yt=_e(st),q=st.offsetWidth,pt=st.offsetHeight;return Math.abs(yt.width-q)<=1&&(q=yt.width),Math.abs(yt.height-pt)<=1&&(pt=yt.height),{x:st.offsetLeft,y:st.offsetTop,width:q,height:pt}}const lo={name:"preventOverflow",enabled:!0,phase:"main",fn:function en(st){var yt=st.state,q=st.options,pt=st.name,Ot=q.mainAxis,Yt=void 0===Ot||Ot,ge=q.altAxis,ke=void 0!==ge&&ge,gi=q.tether,Ai=void 0===gi||gi,yn=q.tetherOffset,$i=void 0===yn?0:yn,ln=ve(yt,{boundary:q.boundary,rootBoundary:q.rootBoundary,padding:q.padding,altBoundary:q.altBoundary}),An=U(yt.placement),xn=Zo(yt.placement),ho=!xn,In=Qn(An),dn=function kn(st){return"x"===st?"y":"x"}(In),Ln=yt.modifiersData.popperOffsets,no=yt.rects.reference,Tn=yt.rects.popper,ro="function"==typeof $i?$i(Object.assign({},yt.rects,{placement:yt.placement})):$i,Yo="number"==typeof ro?{mainAxis:ro,altAxis:ro}:Object.assign({mainAxis:0,altAxis:0},ro),vo=yt.modifiersData.offset?yt.modifiersData.offset[yt.placement]:null,wr={x:0,y:0};if(Ln){if(Yt){var Tr,ua="y"===In?R:J,Pl="y"===In?B:Q,Nr="y"===In?"height":"width",Bs=Ln[In],al=Bs+ln[ua],Il=Bs-ln[Pl],od=Ai?-Tn[Nr]/2:0,eu=xn===vt?no[Nr]:Tn[Nr],sc=xn===vt?-Tn[Nr]:-no[Nr],rd=yt.elements.arrow,ac=Ai&&rd?Ii(rd):{width:0,height:0},Ba=yt.modifiersData["arrow#persistent"]?yt.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},lc=Ba[ua],iu=Ba[Pl],cc=bn(0,no[Nr],ac[Nr]),hc=ho?no[Nr]/2-od-cc-lc-Yo.mainAxis:eu-cc-lc-Yo.mainAxis,zf=ho?-no[Nr]/2+od+cc+iu+Yo.mainAxis:sc+cc+iu+Yo.mainAxis,Ll=yt.elements.arrow&&xe(yt.elements.arrow),dp=null!=(Tr=vo?.[In])?Tr:0,jf=Bs+zf-dp,pp=bn(Ai?Ue(al,Bs+hc-dp-(Ll?"y"===In?Ll.clientTop||0:Ll.clientLeft||0:0)):al,Bs,Ai?qe(Il,jf):Il);Ln[In]=pp,wr[In]=pp-Bs}if(ke){var fp,ll=Ln[dn],Vc="y"===dn?"height":"width",mp=ll+ln["x"===In?R:J],sd=ll-ln["x"===In?B:Q],dc=-1!==[R,J].indexOf(An),vp=null!=(fp=vo?.[dn])?fp:0,yp=dc?mp:ll-no[Vc]-Tn[Vc]-vp+Yo.altAxis,xp=dc?ll+no[Vc]+Tn[Vc]-vp-Yo.altAxis:sd,_p=Ai&&dc?function mi(st,yt,q){var pt=bn(st,yt,q);return pt>q?q:pt}(yp,ll,xp):bn(Ai?yp:mp,ll,Ai?xp:sd);Ln[dn]=_p,wr[dn]=_p-ll}yt.modifiersData[pt]=wr}},requiresIfExists:["offset"]},wn={name:"arrow",enabled:!0,phase:"main",fn:function so(st){var yt,q=st.state,pt=st.name,Ot=st.options,Yt=q.elements.arrow,ge=q.modifiersData.popperOffsets,ke=U(q.placement),Ie=Qn(ke),Ke=[J,Q].indexOf(ke)>=0?"height":"width";if(Yt&&ge){var wi=function(yt,q){return Ce("number"!=typeof(yt="function"==typeof yt?yt(Object.assign({},q.rects,{placement:q.placement})):yt)?yt:$t(yt,ut))}(Ot.padding,q),gi=Ii(Yt),Ai="y"===Ie?R:J,yn="y"===Ie?B:Q,$i=q.rects.reference[Ke]+q.rects.reference[Ie]-ge[Ie]-q.rects.popper[Ke],ln=ge[Ie]-q.rects.reference[Ie],An=xe(Yt),xn=An?"y"===Ie?An.clientHeight||0:An.clientWidth||0:0,Ln=xn/2-gi[Ke]/2+($i/2-ln/2),no=bn(wi[Ai],Ln,xn-gi[Ke]-wi[yn]);q.modifiersData[pt]=((yt={})[Ie]=no,yt.centerOffset=no-Ln,yt)}},effect:function ar(st){var yt=st.state,pt=st.options.element,Ot=void 0===pt?"[data-popper-arrow]":pt;null!=Ot&&("string"==typeof Ot&&!(Ot=yt.elements.popper.querySelector(Ot))||!Be(yt.elements.popper,Ot)||(yt.elements.arrow=Ot))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Sr(st,yt,q){void 0===q&&(q=!1);var pt=Me(yt),Ot=Me(yt)&&function Ki(st){var yt=st.getBoundingClientRect(),q=Ze(yt.width)/st.offsetWidth||1,pt=Ze(yt.height)/st.offsetHeight||1;return 1!==q||1!==pt}(yt),Yt=me(yt),ge=_e(st,Ot,q),ke={scrollLeft:0,scrollTop:0},Ie={x:0,y:0};return(pt||!pt&&!q)&&(("body"!==Ei(yt)||wo(Yt))&&(ke=function Qo(st){return st!==fe(st)&&Me(st)?function lr(st){return{scrollLeft:st.scrollLeft,scrollTop:st.scrollTop}}(st):Ve(st)}(yt)),Me(yt)?((Ie=_e(yt,!0)).x+=yt.clientLeft,Ie.y+=yt.clientTop):Yt&&(Ie.x=ni(Yt))),{x:ge.left+ke.scrollLeft-Ie.x,y:ge.top+ke.scrollTop-Ie.y,width:ge.width,height:ge.height}}function ls(st){var yt=new Map,q=new Set,pt=[];function Ot(Yt){q.add(Yt.name),[].concat(Yt.requires||[],Yt.requiresIfExists||[]).forEach(function(ke){if(!q.has(ke)){var Ie=yt.get(ke);Ie&&Ot(Ie)}}),pt.push(Yt)}return st.forEach(function(Yt){yt.set(Yt.name,Yt)}),st.forEach(function(Yt){q.has(Yt.name)||Ot(Yt)}),pt}function cr(st){var yt;return function(){return yt||(yt=new Promise(function(q){Promise.resolve().then(function(){yt=void 0,q(st())})})),yt}}var $o={placement:"bottom",modifiers:[],strategy:"absolute"};function Zr(){for(var st=arguments.length,yt=new Array(st),q=0;q=0?-1:1,Yt="function"==typeof q?q(Object.assign({},yt,{placement:st})):q,ge=Yt[0],ke=Yt[1];return ge=ge||0,ke=(ke||0)*Ot,[J,Q].indexOf(pt)>=0?{x:ke,y:ge}:{x:ge,y:ke}}(wi,yt.rects,Yt),Ke},{}),ke=ge[yt.placement],We=ke.y;null!=yt.modifiersData.popperOffsets&&(yt.modifiersData.popperOffsets.x+=ke.x,yt.modifiersData.popperOffsets.y+=We),yt.modifiersData[pt]=ge}};function cs(st,yt){}function Ua(st,yt){if(1&st&&(A.TgZ(0,"button",3),A._uU(1),A.YNc(2,cs,0,0,"ng-template",4),A.qZA()),2&st){const q=yt.$implicit;A.Q6J("ngbPanelToggle",q),A.xp6(1),A.hij(" ",q.title," "),A.xp6(1),A.Q6J("ngTemplateOutlet",null==q.titleTpl?null:q.titleTpl.templateRef)}}function hs(st,yt){}function Wa(st,yt){}function ds(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"div",8),A.NdJ("ngbRef",function(Ot){A.CHM(q);const Yt=A.oxw().$implicit;return A.KtG(Yt.panelDiv=Ot)}),A.TgZ(1,"div",9),A.YNc(2,Wa,0,0,"ng-template",4),A.qZA()()}if(2&st){const q=A.oxw().$implicit;A.s9C("id",q.id),A.uIk("aria-labelledby",q.id+"-header"),A.xp6(2),A.Q6J("ngTemplateOutlet",(null==q.contentTpl?null:q.contentTpl.templateRef)||null)}}const ks=function(st,yt){return{$implicit:st,opened:yt}};function Us(st,yt){if(1&st&&(A.TgZ(0,"div")(1,"div",5),A.YNc(2,hs,0,0,"ng-template",6),A.qZA(),A.YNc(3,ds,3,3,"div",7),A.qZA()),2&st){const q=yt.$implicit,pt=A.oxw(),Ot=A.MAs(1);A.Tol("accordion-item "+(q.cardClass||"")),A.xp6(1),A.Tol("accordion-header "+(q.type?"bg-"+q.type:pt.type?"bg-"+pt.type:"")),A.MGl("id","",q.id,"-header"),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==q.headerTpl?null:q.headerTpl.templateRef)||Ot)("ngTemplateOutletContext",A.WLB(8,ks,q,q.isOpen)),A.xp6(1),A.Q6J("ngIf",!pt.destroyOnHide||q.isOpen||q.transitionRunning)}}function Ws(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"button",1),A.NdJ("click",function(){A.CHM(q);const Ot=A.oxw();return A.KtG(Ot.close())}),A.qZA()}}const Ds=["*"];function Ys(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"button",6),A.NdJ("click",function(){const Yt=A.CHM(q).$implicit,ge=A.oxw();return ge.focus(),A.KtG(ge.select(Yt.id,ge.NgbSlideEventSource.INDICATOR))}),A.qZA()}if(2&st){const q=yt.$implicit,pt=A.oxw();A.ekj("active",q.id===pt.activeId),A.uIk("aria-labelledby","slide-"+q.id)("aria-controls","slide-"+q.id)("aria-selected",q.id===pt.activeId)}}function xa(st,yt){}function _a(st,yt){if(1&st&&(A.TgZ(0,"div",7)(1,"span",8),A.SDv(2,9),A.qZA(),A.YNc(3,xa,0,0,"ng-template",10),A.qZA()),2&st){const q=yt.$implicit,pt=yt.index,Ot=yt.count;A.Q6J("id","slide-"+q.id),A.xp6(2),A.pQV(pt+1)(Ot),A.QtT(2),A.xp6(1),A.Q6J("ngTemplateOutlet",q.tplRef)}}function us(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"button",11),A.NdJ("click",function(){A.CHM(q);const Ot=A.oxw();return A.KtG(Ot.arrowLeft())}),A._UZ(1,"span",12),A.TgZ(2,"span",8),A.SDv(3,13),A.qZA()()}}function Xs(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"button",14),A.NdJ("click",function(){A.CHM(q);const Ot=A.oxw();return A.KtG(Ot.arrowRight())}),A._UZ(1,"span",15),A.TgZ(2,"span",8),A.SDv(3,16),A.qZA()()}}const ba=["ngbDatepickerDayView",""],ml=["month"],dr=["year"];function xr(st,yt){if(1&st&&(A.TgZ(0,"option",5),A._uU(1),A.qZA()),2&st){const q=yt.$implicit,pt=A.oxw();A.Q6J("value",q),A.uIk("aria-label",pt.i18n.getMonthFullName(q,pt.date.year)),A.xp6(1),A.Oqu(pt.i18n.getMonthShortName(q,pt.date.year))}}function Do(st,yt){if(1&st&&(A.TgZ(0,"option",5),A._uU(1),A.qZA()),2&st){const q=yt.$implicit,pt=A.oxw();A.Q6J("value",q),A.xp6(1),A.Oqu(pt.i18n.getYearNumerals(q))}}function zr(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"ngb-datepicker-navigation-select",7),A.NdJ("select",function(Ot){A.CHM(q);const Yt=A.oxw();return A.KtG(Yt.select.emit(Ot))}),A.qZA()}if(2&st){const q=A.oxw();A.Q6J("date",q.date)("disabled",q.disabled)("months",q.selectBoxes.months)("years",q.selectBoxes.years)}}function ir(st,yt){1&st&&A._UZ(0,"div",0)}function ps(st,yt){1&st&&A._UZ(0,"div",0)}function Ya(st,yt){if(1&st&&(A.YNc(0,ir,1,0,"div",9),A.TgZ(1,"div",10),A._uU(2),A.qZA(),A.YNc(3,ps,1,0,"div",9)),2&st){const q=yt.$implicit,pt=yt.index,Ot=A.oxw(2);A.Q6J("ngIf",pt>0),A.xp6(2),A.hij(" ",Ot.i18n.getMonthLabel(q.firstDate)," "),A.xp6(1),A.Q6J("ngIf",pt!==Ot.months.length-1)}}function Es(st,yt){if(1&st&&A.YNc(0,Ya,4,3,"ng-template",8),2&st){const q=A.oxw();A.Q6J("ngForOf",q.months)}}function As(st,yt){if(1&st&&(A.TgZ(0,"div",5),A._uU(1),A.qZA()),2&st){const q=A.oxw(2);A.xp6(1),A.Oqu(q.i18n.getWeekLabel())}}function Ca(st,yt){if(1&st&&(A.TgZ(0,"div",6),A._uU(1),A.qZA()),2&st){const q=yt.$implicit;A.xp6(1),A.Oqu(q)}}function wa(st,yt){if(1&st&&(A.TgZ(0,"div",2),A.YNc(1,As,2,1,"div",3),A.YNc(2,Ca,2,1,"div",4),A.qZA()),2&st){const q=A.oxw();A.xp6(1),A.Q6J("ngIf",q.datepicker.showWeekNumbers),A.xp6(1),A.Q6J("ngForOf",q.viewModel.weekdays)}}function Kr(st,yt){if(1&st&&(A.TgZ(0,"div",11),A._uU(1),A.qZA()),2&st){const q=A.oxw(2).$implicit,pt=A.oxw();A.xp6(1),A.Oqu(pt.i18n.getWeekNumerals(q.number))}}function Uo(st,yt){}function Zs(st,yt){if(1&st&&A.YNc(0,Uo,0,0,"ng-template",14),2&st){const q=A.oxw().$implicit,pt=A.oxw(3);A.Q6J("ngTemplateOutlet",pt.datepicker.dayTemplate)("ngTemplateOutletContext",q.context)}}function qr(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"div",12),A.NdJ("click",function(Ot){const ge=A.CHM(q).$implicit;return A.oxw(3).doSelect(ge),A.KtG(Ot.preventDefault())}),A.YNc(1,Zs,1,2,"ng-template",13),A.qZA()}if(2&st){const q=yt.$implicit;A.ekj("disabled",q.context.disabled)("hidden",q.hidden)("ngb-dp-today",q.context.today),A.Q6J("tabindex",q.tabindex),A.uIk("aria-label",q.ariaLabel),A.xp6(1),A.Q6J("ngIf",!q.hidden)}}function to(st,yt){if(1&st&&(A.TgZ(0,"div",8),A.YNc(1,Kr,2,1,"div",9),A.YNc(2,qr,2,9,"div",10),A.qZA()),2&st){const q=A.oxw().$implicit,pt=A.oxw();A.xp6(1),A.Q6J("ngIf",pt.datepicker.showWeekNumbers),A.xp6(1),A.Q6J("ngForOf",q.days)}}function Nn(st,yt){1&st&&A.YNc(0,to,3,2,"div",7),2&st&&A.Q6J("ngIf",!yt.$implicit.collapsed)}const nr=["defaultDayTemplate"],Eo=["content"];function Hl(st,yt){if(1&st&&A._UZ(0,"div",7),2&st){const pt=yt.currentMonth,Ot=yt.selected,Yt=yt.disabled,ge=yt.focused;A.Q6J("date",yt.date)("currentMonth",pt)("selected",Ot)("disabled",Yt)("focused",ge)}}function jr(st,yt){if(1&st&&(A.TgZ(0,"div",12),A._uU(1),A.qZA()),2&st){const q=A.oxw().$implicit,pt=A.oxw(2);A.xp6(1),A.hij(" ",pt.i18n.getMonthLabel(q.firstDate)," ")}}function Hr(st,yt){if(1&st&&(A.TgZ(0,"div",9),A.YNc(1,jr,2,1,"div",10),A._UZ(2,"ngb-datepicker-month",11),A.qZA()),2&st){const q=yt.$implicit,pt=A.oxw(2);A.xp6(1),A.Q6J("ngIf","none"===pt.navigation||pt.displayMonths>1&&"select"===pt.navigation),A.xp6(1),A.Q6J("month",q.firstDate)}}function po(st,yt){if(1&st&&A.YNc(0,Hr,3,2,"div",8),2&st){const q=A.oxw();A.Q6J("ngForOf",q.model.months)}}function fs(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"ngb-datepicker-navigation",13),A.NdJ("navigate",function(Ot){A.CHM(q);const Yt=A.oxw();return A.KtG(Yt.onNavigateEvent(Ot))})("select",function(Ot){A.CHM(q);const Yt=A.oxw();return A.KtG(Yt.onNavigateDateSelect(Ot))}),A.qZA()}if(2&st){const q=A.oxw();A.Q6J("date",q.model.firstDate)("months",q.model.months)("disabled",q.model.disabled)("showSelect","select"===q.model.navigation)("prevDisabled",q.model.prevDisabled)("nextDisabled",q.model.nextDisabled)("selectBoxes",q.model.selectBoxes)}}function Ta(st,yt){}function gs(st,yt){}const Lo=["dialog"],Sa=["ngbNavOutlet",""];function $s(st,yt){}const Zi=function(st){return{$implicit:st}};function Wi(st,yt){if(1&st&&(A.TgZ(0,"div",2),A.YNc(1,$s,0,0,"ng-template",3),A.qZA()),2&st){const q=A.oxw().$implicit,pt=A.oxw();A.Q6J("item",q)("nav",pt.nav)("role",pt.paneRole),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==q.contentTpl?null:q.contentTpl.templateRef)||null)("ngTemplateOutletContext",A.VKq(5,Zi,q.active||pt.isPanelTransitioning(q)))}}function qt(st,yt){if(1&st&&A.YNc(0,Wi,2,7,"div",1),2&st){const q=yt.$implicit,pt=A.oxw();A.Q6J("ngIf",q.isPanelInDom()||pt.isPanelTransitioning(q))}}function Xt(st,yt){1&st&&(A.TgZ(0,"span",9),A.SDv(1,10),A.qZA())}function Ut(st,yt){1&st&&(A.TgZ(0,"span",9),A.SDv(1,11),A.qZA())}function ce(st,yt){1&st&&(A.TgZ(0,"span",9),A.SDv(1,12),A.qZA())}function $e(st,yt){1&st&&(A.TgZ(0,"span",9),A.SDv(1,13),A.qZA())}function vi(st,yt){1&st&&A._uU(0,"...")}function yo(st,yt){1&st&&(A.TgZ(0,"span",15),A._uU(1,"(current)"),A.qZA())}function ri(st,yt){if(1&st&&(A._uU(0),A.YNc(1,yo,2,0,"span",14)),2&st){const q=yt.$implicit,pt=yt.currentPage;A.hij(" ",q," "),A.xp6(1),A.Q6J("ngIf",q===pt)}}function an(st,yt){}const Jr=function(st){return{disabled:!0,currentPage:st}};function Os(st,yt){if(1&st&&(A.TgZ(0,"a",20),A.YNc(1,an,0,0,"ng-template",8),A.qZA()),2&st){const q=A.oxw(2).$implicit,pt=A.oxw(),Ot=A.MAs(9);A.xp6(1),A.Q6J("ngTemplateOutlet",(null==pt.tplEllipsis?null:pt.tplEllipsis.templateRef)||Ot)("ngTemplateOutletContext",A.VKq(2,Jr,q))}}function Bo(st,yt){}const vl=function(st,yt,q){return{disabled:st,$implicit:yt,currentPage:q}};function Ma(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"a",21),A.NdJ("click",function(Ot){A.CHM(q);const Yt=A.oxw().$implicit;return A.oxw(2).selectPage(Yt),A.KtG(Ot.preventDefault())}),A.YNc(1,Bo,0,0,"ng-template",8),A.qZA()}if(2&st){const q=A.oxw().$implicit,pt=A.oxw(),Ot=pt.disabled,Yt=pt.$implicit,ge=A.oxw(),ke=A.MAs(11);A.uIk("tabindex",Ot?"-1":null)("aria-disabled",Ot?"true":null),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==ge.tplNumber?null:ge.tplNumber.templateRef)||ke)("ngTemplateOutletContext",A.kEZ(4,vl,Ot,q,Yt))}}function kr(st,yt){if(1&st&&(A.TgZ(0,"li",17),A.YNc(1,Os,2,4,"a",18),A.YNc(2,Ma,2,8,"a",19),A.qZA()),2&st){const q=yt.$implicit,pt=A.oxw(),Ot=pt.$implicit,Yt=pt.disabled,ge=A.oxw();A.ekj("active",q===Ot)("disabled",ge.isEllipsis(q)||Yt),A.uIk("aria-current",q===Ot?"page":null),A.xp6(1),A.Q6J("ngIf",ge.isEllipsis(q)),A.xp6(1),A.Q6J("ngIf",!ge.isEllipsis(q))}}function ka(st,yt){1&st&&A.YNc(0,kr,3,7,"li",16),2&st&&A.Q6J("ngForOf",yt.pages)}function Ks(st,yt){}const Da=function(st,yt){return{disabled:st,currentPage:yt}};function Jc(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"li",17)(1,"a",22),A.NdJ("click",function(Ot){return A.CHM(q),A.oxw().selectPage(1),A.KtG(Ot.preventDefault())}),A.YNc(2,Ks,0,0,"ng-template",8),A.qZA()()}if(2&st){const q=A.oxw(),pt=A.MAs(1);A.ekj("disabled",q.previousDisabled()),A.xp6(1),A.uIk("tabindex",q.previousDisabled()?"-1":null)("aria-disabled",q.previousDisabled()?"true":null),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==q.tplFirst?null:q.tplFirst.templateRef)||pt)("ngTemplateOutletContext",A.WLB(6,Da,q.previousDisabled(),q.page))}}function Xa(st,yt){}const xo=function(st){return{disabled:st}};function zo(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"li",17)(1,"a",23),A.NdJ("click",function(Ot){A.CHM(q);const Yt=A.oxw();return Yt.selectPage(Yt.page-1),A.KtG(Ot.preventDefault())}),A.YNc(2,Xa,0,0,"ng-template",8),A.qZA()()}if(2&st){const q=A.oxw(),pt=A.MAs(3);A.ekj("disabled",q.previousDisabled()),A.xp6(1),A.uIk("tabindex",q.previousDisabled()?"-1":null)("aria-disabled",q.previousDisabled()?"true":null),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==q.tplPrevious?null:q.tplPrevious.templateRef)||pt)("ngTemplateOutletContext",A.VKq(6,xo,q.previousDisabled()))}}function Ea(st,yt){}function Ao(st,yt){}function Vn(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"li",17)(1,"a",24),A.NdJ("click",function(Ot){A.CHM(q);const Yt=A.oxw();return Yt.selectPage(Yt.page+1),A.KtG(Ot.preventDefault())}),A.YNc(2,Ao,0,0,"ng-template",8),A.qZA()()}if(2&st){const q=A.oxw(),pt=A.MAs(5);A.ekj("disabled",q.nextDisabled()),A.xp6(1),A.uIk("tabindex",q.nextDisabled()?"-1":null)("aria-disabled",q.nextDisabled()?"true":null),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==q.tplNext?null:q.tplNext.templateRef)||pt)("ngTemplateOutletContext",A.WLB(6,Da,q.nextDisabled(),q.page))}}function Qr(st,yt){}function Wo(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"li",17)(1,"a",25),A.NdJ("click",function(Ot){A.CHM(q);const Yt=A.oxw();return Yt.selectPage(Yt.pageCount),A.KtG(Ot.preventDefault())}),A.YNc(2,Qr,0,0,"ng-template",8),A.qZA()()}if(2&st){const q=A.oxw(),pt=A.MAs(7);A.ekj("disabled",q.nextDisabled()),A.xp6(1),A.uIk("tabindex",q.nextDisabled()?"-1":null)("aria-disabled",q.nextDisabled()?"true":null),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==q.tplLast?null:q.tplLast.templateRef)||pt)("ngTemplateOutletContext",A.WLB(6,Da,q.nextDisabled(),q.page))}}const qs=function(st,yt,q){return{$implicit:st,pages:yt,disabled:q}};function Za(st,yt){if(1&st&&A._uU(0),2&st){const q=A.oxw(2);A.Oqu(q.title)}}function Js(st,yt){}function Qs(st,yt){if(1&st&&(A.TgZ(0,"h3",3),A.YNc(1,Za,1,1,"ng-template",null,4,A.W1O),A.YNc(3,Js,0,0,"ng-template",5),A.qZA()),2&st){const q=A.MAs(2),pt=A.oxw();A.xp6(3),A.Q6J("ngTemplateOutlet",pt.isTitleTemplate()?pt.title:q)("ngTemplateOutletContext",pt.context)}}function yl(st,yt){if(1&st&&(A.TgZ(0,"span"),A.SDv(1,2),A.ALo(2,"percent"),A.qZA()),2&st){const q=A.oxw();A.xp6(2),A.pQV(A.lcZ(2,1,q.getValue()/q.max)),A.QtT(1)}}function $a(st,yt){1&st&&A._uU(0),2&st&&A.Oqu(100===yt.fill?"\u2605":"\u2606")}function ur(st,yt){}function ta(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"span",2),A._uU(1),A.qZA(),A.TgZ(2,"span",3),A.NdJ("mouseenter",function(){const Yt=A.CHM(q).index,ge=A.oxw();return A.KtG(ge.enter(Yt+1))})("click",function(){const Yt=A.CHM(q).index,ge=A.oxw();return A.KtG(ge.handleClick(Yt+1))}),A.YNc(3,ur,0,0,"ng-template",4),A.qZA()}if(2&st){const q=yt.index,pt=A.oxw(),Ot=A.MAs(1);A.xp6(1),A.hij("(",q=12)("ngIfElse",q)}}function Ul(st,yt){if(1&st&&(A.TgZ(0,"strong",3),A._uU(1),A.qZA()),2&st){const q=A.oxw();A.xp6(1),A.Oqu(q.header)}}function Wl(st,yt){}function wc(st,yt){if(1&st){const q=A.EpF();A.TgZ(0,"div",4),A.YNc(1,Wl,0,0,"ng-template",5),A.TgZ(2,"button",6),A.NdJ("click",function(){A.CHM(q);const Ot=A.oxw();return A.KtG(Ot.hide())}),A.qZA()()}if(2&st){const q=A.oxw(),pt=A.MAs(1);A.xp6(1),A.Q6J("ngTemplateOutlet",q.contentHeaderTpl||pt)}}function Tc(st,yt){if(1&st&&(A.TgZ(0,"span"),A._uU(1),A.qZA()),2&st){const q=A.oxw().$implicit,pt=A.oxw();A.Tol(pt.highlightClass),A.xp6(1),A.Oqu(q)}}function zt(st,yt){if(1&st&&A._uU(0),2&st){const q=A.oxw().$implicit;A.Oqu(q)}}function ee(st,yt){if(1&st&&(A.YNc(0,Tc,2,3,"span",1),A.YNc(1,zt,1,1,"ng-template",null,2,A.W1O)),2&st){const q=yt.odd,pt=A.MAs(2);A.Q6J("ngIf",q)("ngIfElse",pt)}}function ii(st){return parseInt(`${st}`,10)}function Oi(st){return null!=st?`${st}`:""}function gn(st,yt,q=0){return Math.max(Math.min(st,yt),q)}function Cn(st){return"string"==typeof st}function Xi(st){return!isNaN(ii(st))}function Fi(st){return"number"==typeof st&&isFinite(st)&&Math.floor(st)===st}function Kn(st){return null!=st}function qn(st){return Xi(st)?`0${st}`.slice(-2):""}function eo(st,yt){return st&&st.className&&st.className.split&&st.className.split(/\s+/).indexOf(yt)>=0}function go(st){return(st||document.body).getBoundingClientRect()}function _r(st){return st.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}const Aa={animation:!0,transitionTimerDelayMs:5},Oa=()=>{},{transitionTimerDelayMs:Sc}=Aa,Ar=new Map,io=(st,yt,q,pt)=>{let Ot=pt.context||{};const Yt=Ar.get(yt);if(Yt)switch(pt.runningTransition){case"continue":return Rt.E;case"stop":st.run(()=>Yt.transition$.complete()),Ot=Object.assign(Yt.context,Ot),Ar.delete(yt)}const ge=q(yt,pt.animation,Ot)||Oa;if(!pt.animation||"none"===window.getComputedStyle(yt).transitionProperty)return st.run(()=>ge()),(0,$.of)(void 0).pipe(function ia(st){return yt=>new t.y(q=>yt.subscribe({next:ge=>st.run(()=>q.next(ge)),error:ge=>st.run(()=>q.error(ge)),complete:()=>st.run(()=>q.complete())}))}(st));const ke=new V.x,Ie=new V.x,We=ke.pipe(function z(...st){return yt=>(0,E.z)(yt,(0,$.of)(...st))}(!0));Ar.set(yt,{transition$:ke,complete:()=>{Ie.next(),Ie.complete()},context:Ot});const Ke=function es(st){const{transitionDelay:yt,transitionDuration:q}=window.getComputedStyle(st);return 1e3*(parseFloat(yt)+parseFloat(q))}(yt);return st.runOutsideAngular(()=>{const wi=(0,Y.R)(yt,"transitionend").pipe((0,L.R)(We),(0,_.h)(({target:Ai})=>Ai===yt));W((0,K.H)(Ke+Sc).pipe((0,L.R)(We)),wi,Ie).pipe((0,L.R)(We)).subscribe(()=>{Ar.delete(yt),st.run(()=>{ge(),ke.next(),ke.complete()})})}),ke.asObservable()},Yl=(st,yt,q)=>{let{direction:pt,maxSize:Ot,dimension:Yt}=q;const{classList:ge}=st;function ke(){ge.add("collapse"),"show"===pt?ge.add("show"):ge.remove("show")}if(yt)return Ot||(Ot=function Mc(st,yt){if(typeof navigator>"u")return"0px";const{classList:q}=st,pt=q.contains("show");pt||q.add("show"),st.style[yt]="";const Ot=st.getBoundingClientRect()[yt]+"px";return pt||q.remove("show"),Ot}(st,Yt),q.maxSize=Ot,st.style[Yt]="show"!==pt?Ot:"0px",ge.remove("collapse"),ge.remove("collapsing"),ge.remove("show"),go(st),ge.add("collapsing")),st.style[Yt]="show"===pt?Ot:"0px",()=>{ke(),ge.remove("collapsing"),st.style[Yt]=""};ke()};let Or=(()=>{class st{constructor(){this.animation=Aa.animation}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),kc=(()=>{class st{constructor(q){this._ngbConfig=q,this.closeOthers=!1}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Pr=0,na=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPanelHeader",""]],standalone:!0}),st})(),Gr=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPanelTitle",""]],standalone:!0}),st})(),oa=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPanelContent",""]],standalone:!0}),st})(),ra=(()=>{class st{constructor(){this.disabled=!1,this.id="ngb-panel-"+Pr++,this.isOpen=!1,this.initClassDone=!1,this.transitionRunning=!1,this.shown=new A.vpe,this.hidden=new A.vpe}ngAfterContentChecked(){this.titleTpl=this.titleTpls.first,this.headerTpl=this.headerTpls.first,this.contentTpl=this.contentTpls.first}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275dir=A.lG2({type:st,selectors:[["ngb-panel"]],contentQueries:function(q,pt,Ot){if(1&q&&(A.Suo(Ot,Gr,4),A.Suo(Ot,na,4),A.Suo(Ot,oa,4)),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.titleTpls=Yt),A.iGM(Yt=A.CRH())&&(pt.headerTpls=Yt),A.iGM(Yt=A.CRH())&&(pt.contentTpls=Yt)}},inputs:{disabled:"disabled",id:"id",title:"title",type:"type",cardClass:"cardClass"},outputs:{shown:"shown",hidden:"hidden"},standalone:!0}),st})(),Pa=(()=>{class st{constructor(q){this._El=q,this.ngbRef=new A.vpe}ngOnInit(){this.ngbRef.emit(this._El.nativeElement)}ngOnDestroy(){this.ngbRef.emit(null)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.SBq))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbRef",""]],outputs:{ngbRef:"ngbRef"},standalone:!0}),st})(),co=(()=>{class st{constructor(q,pt){this.accordion=q,this.panel=pt}set ngbPanelToggle(q){q&&(this.panel=q)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36((0,A.Gpc)(()=>Xl)),A.Y36(ra,9))},st.\u0275dir=A.lG2({type:st,selectors:[["button","ngbPanelToggle",""]],hostAttrs:["type","button"],hostVars:5,hostBindings:function(q,pt){1&q&&A.NdJ("click",function(){return pt.accordion.toggle(pt.panel.id)}),2&q&&(A.Ikx("disabled",pt.panel.disabled),A.uIk("aria-expanded",pt.panel.isOpen)("aria-controls",pt.panel.id),A.ekj("collapsed",!pt.panel.isOpen))},inputs:{ngbPanelToggle:"ngbPanelToggle"},standalone:!0}),st})(),Xl=(()=>{class st{constructor(q,pt,Ot){this._ngZone=pt,this._changeDetector=Ot,this.activeIds=[],this.destroyOnHide=!0,this.panelChange=new A.vpe,this.shown=new A.vpe,this.hidden=new A.vpe,this.animation=q.animation,this.type=q.type,this.closeOtherPanels=q.closeOthers}isExpanded(q){return this.activeIds.indexOf(q)>-1}expand(q){this._changeOpenState(this._findPanelById(q),!0)}expandAll(){this.closeOtherPanels?0===this.activeIds.length&&this.panels.length&&this._changeOpenState(this.panels.first,!0):this.panels.forEach(q=>this._changeOpenState(q,!0))}collapse(q){this._changeOpenState(this._findPanelById(q),!1)}collapseAll(){this.panels.forEach(q=>{this._changeOpenState(q,!1)})}toggle(q){const pt=this._findPanelById(q);pt&&this._changeOpenState(pt,!pt.isOpen)}ngAfterContentChecked(){Cn(this.activeIds)&&(this.activeIds=this.activeIds.split(/\s*,\s*/)),this.panels.forEach(q=>{q.isOpen=!q.disabled&&this.activeIds.indexOf(q.id)>-1}),this.activeIds.length>1&&this.closeOtherPanels&&(this._closeOthers(this.activeIds[0],!1),this._updateActiveIds()),this._ngZone.onStable.pipe((0,l.q)(1)).subscribe(()=>{this.panels.forEach(q=>{const pt=q.panelDiv;pt?q.initClassDone||(q.initClassDone=!0,io(this._ngZone,pt,Yl,{animation:!1,runningTransition:"continue",context:{direction:q.isOpen?"show":"hide",dimension:"height"}})):q.initClassDone=!1})})}_changeOpenState(q,pt){if(null!=q&&!q.disabled&&q.isOpen!==pt){let Ot=!1;this.panelChange.emit({panelId:q.id,nextState:pt,preventDefault:()=>{Ot=!0}}),Ot||(q.isOpen=pt,q.transitionRunning=!0,pt&&this.closeOtherPanels&&this._closeOthers(q.id),this._updateActiveIds(),this._runTransitions(this.animation))}}_closeOthers(q,pt=!0){this.panels.forEach(Ot=>{Ot.id!==q&&Ot.isOpen&&(Ot.isOpen=!1,Ot.transitionRunning=pt)})}_findPanelById(q){return this.panels.find(pt=>pt.id===q)||null}_updateActiveIds(){this.activeIds=this.panels.filter(q=>q.isOpen&&!q.disabled).map(q=>q.id)}_runTransitions(q){this._changeDetector.detectChanges(),this.panels.forEach(pt=>{pt.transitionRunning&&io(this._ngZone,pt.panelDiv,Yl,{animation:q,runningTransition:"stop",context:{direction:pt.isOpen?"show":"hide",dimension:"height"}}).subscribe(()=>{pt.transitionRunning=!1;const{id:Yt}=pt;pt.isOpen?(pt.shown.emit(),this.shown.emit(Yt)):(pt.hidden.emit(),this.hidden.emit(Yt))})})}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(kc),A.Y36(A.R0b),A.Y36(A.sBO))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-accordion"]],contentQueries:function(q,pt,Ot){if(1&q&&A.Suo(Ot,ra,4),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.panels=Yt)}},hostAttrs:["role","tablist",1,"accordion"],hostVars:1,hostBindings:function(q,pt){2&q&&A.uIk("aria-multiselectable",!pt.closeOtherPanels)},inputs:{animation:"animation",activeIds:"activeIds",closeOtherPanels:["closeOthers","closeOtherPanels"],destroyOnHide:"destroyOnHide",type:"type"},outputs:{panelChange:"panelChange",shown:"shown",hidden:"hidden"},exportAs:["ngbAccordion"],standalone:!0,features:[A.jDz],decls:3,vars:1,consts:[["ngbPanelHeader",""],["t",""],["ngFor","",3,"ngForOf"],[1,"accordion-button",3,"ngbPanelToggle"],[3,"ngTemplateOutlet"],["role","tab",3,"id"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["role","tabpanel",3,"id","ngbRef",4,"ngIf"],["role","tabpanel",3,"id","ngbRef"],[1,"accordion-body"]],template:function(q,pt){1&q&&(A.YNc(0,Ua,3,3,"ng-template",0,1,A.W1O),A.YNc(2,Us,4,11,"ng-template",2)),2&q&&(A.xp6(2),A.Q6J("ngForOf",pt.panels))},dependencies:[j.ax,j.tP,co,Pa,na,j.O5],encapsulation:2}),st})(),Cl=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Xl]}),st})();const Dc=({classList:st})=>{st.remove("show")};let Ps=(()=>{class st{constructor(q){this._ngbConfig=q,this.dismissible=!0,this.type="warning"}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Ec=(()=>{class st{constructor(q,pt,Ot,Yt){this._renderer=pt,this._element=Ot,this._zone=Yt,this.closed=new A.vpe,this.dismissible=q.dismissible,this.type=q.type,this.animation=q.animation}close(){const q=io(this._zone,this._element.nativeElement,Dc,{animation:this.animation,runningTransition:"continue"});return q.subscribe(()=>this.closed.emit()),q}ngOnChanges(q){const pt=q.type;pt&&!pt.firstChange&&(this._renderer.removeClass(this._element.nativeElement,`alert-${pt.previousValue}`),this._renderer.addClass(this._element.nativeElement,`alert-${pt.currentValue}`))}ngOnInit(){this._renderer.addClass(this._element.nativeElement,`alert-${this.type}`)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(Ps),A.Y36(A.Qsj),A.Y36(A.SBq),A.Y36(A.R0b))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-alert"]],hostAttrs:["role","alert",1,"alert","show"],hostVars:4,hostBindings:function(q,pt){2&q&&A.ekj("fade",pt.animation)("alert-dismissible",pt.dismissible)},inputs:{animation:"animation",dismissible:"dismissible",type:"type"},outputs:{closed:"closed"},exportAs:["ngbAlert"],standalone:!0,features:[A.TTD,A.jDz],ngContentSelectors:Ds,decls:2,vars:1,consts:function(){let yt;return yt=$localize`:@@ngb.alert.close:Close`,[["type","button","class","btn-close","aria-label",yt,3,"click",4,"ngIf"],["type","button","aria-label",yt,1,"btn-close",3,"click"]]},template:function(q,pt){1&q&&(A.F$t(),A.Hsn(0),A.YNc(1,Ws,1,0,"button",0)),2&q&&(A.xp6(1),A.Q6J("ngIf",pt.dismissible))},dependencies:[j.O5],styles:["ngb-alert{display:block}\n"],encapsulation:2,changeDetection:0}),st})(),wl=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Ec]}),st})();var pr=(()=>{return(st=pr||(pr={})).START="start",st.END="end",pr;var st})();const Tl=({classList:st})=>st.contains("carousel-item-start")||st.contains("carousel-item-end"),sa=st=>{st.remove("carousel-item-start"),st.remove("carousel-item-end")},is=st=>{sa(st),st.remove("carousel-item-prev"),st.remove("carousel-item-next")},Qa=(st,yt,{direction:q})=>{const{classList:pt}=st;return yt?(Tl(st)?sa(pt):(pt.add("carousel-item-"+(q===pr.START?"next":"prev")),go(st),pt.add("carousel-item-"+q)),()=>{is(pt),pt.add("active")}):(sa(pt),is(pt),void pt.add("active"))},Ac=(st,yt,{direction:q})=>{const{classList:pt}=st;return yt?(Tl(st)?sa(pt):pt.add("carousel-item-"+q),()=>{is(pt),pt.remove("active")}):(sa(pt),is(pt),void pt.remove("active"))};let aa=(()=>{class st{constructor(q){this._ngbConfig=q,this.interval=5e3,this.wrap=!0,this.keyboard=!0,this.pauseOnHover=!0,this.pauseOnFocus=!0,this.showNavigationArrows=!0,this.showNavigationIndicators=!0}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Sl=0,Eh=(()=>{class st{constructor(q){this.tplRef=q,this.id="ngb-slide-"+Sl++,this.slid=new A.vpe}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbSlide",""]],inputs:{id:"id"},outputs:{slid:"slid"},standalone:!0}),st})(),Ah=(()=>{class st{constructor(q,pt,Ot,Yt,ge){this._platformId=pt,this._ngZone=Ot,this._cd=Yt,this._container=ge,this.NgbSlideEventSource=Is,this._destroy$=new V.x,this._interval$=new N.X(0),this._mouseHover$=new N.X(!1),this._focused$=new N.X(!1),this._pauseOnHover$=new N.X(!1),this._pauseOnFocus$=new N.X(!1),this._pause$=new N.X(!1),this._wrap$=new N.X(!1),this.slide=new A.vpe,this.slid=new A.vpe,this._transitionIds=null,this.animation=q.animation,this.interval=q.interval,this.wrap=q.wrap,this.keyboard=q.keyboard,this.pauseOnHover=q.pauseOnHover,this.pauseOnFocus=q.pauseOnFocus,this.showNavigationArrows=q.showNavigationArrows,this.showNavigationIndicators=q.showNavigationIndicators}set interval(q){this._interval$.next(q)}get interval(){return this._interval$.value}set wrap(q){this._wrap$.next(q)}get wrap(){return this._wrap$.value}set pauseOnHover(q){this._pauseOnHover$.next(q)}get pauseOnHover(){return this._pauseOnHover$.value}set pauseOnFocus(q){this._pauseOnFocus$.next(q)}get pauseOnFocus(){return this._pauseOnFocus$.value}set mouseHover(q){this._mouseHover$.next(q)}get mouseHover(){return this._mouseHover$.value}set focused(q){this._focused$.next(q)}get focused(){return this._focused$.value}arrowLeft(){this.focus(),this.prev(Is.ARROW_LEFT)}arrowRight(){this.focus(),this.next(Is.ARROW_RIGHT)}ngAfterContentInit(){(0,j.NF)(this._platformId)&&this._ngZone.runOutsideAngular(()=>{const q=(0,b.a)([this.slide.pipe((0,m.U)(pt=>pt.current),(0,s.O)(this.activeId)),this._wrap$,this.slides.changes.pipe((0,s.O)(null))]).pipe((0,m.U)(([pt,Ot])=>{const Yt=this.slides.toArray(),ge=this._getSlideIdxById(pt);return Ot?Yt.length>1:gept||Ot&&Yt||ge&&ke||!We?0:Ie),(0,a.x)(),(0,n.w)(pt=>pt>0?(0,K.H)(pt,pt):T),(0,L.R)(this._destroy$)).subscribe(()=>this._ngZone.run(()=>this.next(Is.TIMER)))}),this.slides.changes.pipe((0,L.R)(this._destroy$)).subscribe(()=>{this._transitionIds?.forEach(q=>(st=>{Ar.get(st)?.complete()})(this._getSlideElement(q))),this._transitionIds=null,this._cd.markForCheck(),this._ngZone.onStable.pipe((0,l.q)(1)).subscribe(()=>{for(const{id:q}of this.slides){const pt=this._getSlideElement(q);q===this.activeId?pt.classList.add("active"):pt.classList.remove("active")}})})}ngAfterContentChecked(){let q=this._getSlideById(this.activeId);this.activeId=q?q.id:this.slides.length?this.slides.first.id:""}ngAfterViewInit(){if(this.activeId){const q=this._getSlideElement(this.activeId);q&&q.classList.add("active")}}ngOnDestroy(){this._destroy$.next()}select(q,pt){this._cycleToSelected(q,this._getSlideEventDirection(this.activeId,q),pt)}prev(q){this._cycleToSelected(this._getPrevSlide(this.activeId),pr.END,q)}next(q){this._cycleToSelected(this._getNextSlide(this.activeId),pr.START,q)}pause(){this._pause$.next(!0)}cycle(){this._pause$.next(!1)}focus(){this._container.nativeElement.focus()}_cycleToSelected(q,pt,Ot){const Yt=this._transitionIds;if(Yt&&(Yt[0]!==q||Yt[1]!==this.activeId))return;let ge=this._getSlideById(q);if(ge&&ge.id!==this.activeId){this._transitionIds=[this.activeId,q],this.slide.emit({prev:this.activeId,current:ge.id,direction:pt,paused:this._pause$.value,source:Ot});const ke={animation:this.animation,runningTransition:"stop",context:{direction:pt}},Ie=[],We=this._getSlideById(this.activeId);if(We){const Ai=io(this._ngZone,this._getSlideElement(We.id),Ac,ke);Ai.subscribe(()=>{We.slid.emit({isShown:!1,direction:pt,source:Ot})}),Ie.push(Ai)}const Ke=this.activeId;this.activeId=ge.id;const wi=this._getSlideById(this.activeId),gi=io(this._ngZone,this._getSlideElement(ge.id),Qa,ke);gi.subscribe(()=>{wi?.slid.emit({isShown:!0,direction:pt,source:Ot})}),Ie.push(gi),x(...Ie).pipe((0,l.q)(1)).subscribe(()=>{this._transitionIds=null,this.slid.emit({prev:Ke,current:ge.id,direction:pt,paused:this._pause$.value,source:Ot})})}this._cd.markForCheck()}_getSlideEventDirection(q,pt){return this._getSlideIdxById(q)>this._getSlideIdxById(pt)?pr.END:pr.START}_getSlideById(q){return this.slides.find(pt=>pt.id===q)||null}_getSlideIdxById(q){const pt=this._getSlideById(q);return null!=pt?this.slides.toArray().indexOf(pt):-1}_getNextSlide(q){const pt=this.slides.toArray(),Ot=this._getSlideIdxById(q);return Ot===pt.length-1?this.wrap?pt[0].id:pt[pt.length-1].id:pt[Ot+1].id}_getPrevSlide(q){const pt=this.slides.toArray(),Ot=this._getSlideIdxById(q);return 0===Ot?this.wrap?pt[pt.length-1].id:pt[0].id:pt[Ot-1].id}_getSlideElement(q){return this._container.nativeElement.querySelector(`#slide-${q}`)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(aa),A.Y36(A.Lbi),A.Y36(A.R0b),A.Y36(A.sBO),A.Y36(A.SBq))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-carousel"]],contentQueries:function(q,pt,Ot){if(1&q&&A.Suo(Ot,Eh,4),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.slides=Yt)}},hostAttrs:["tabIndex","0",1,"carousel","slide"],hostVars:3,hostBindings:function(q,pt){1&q&&A.NdJ("keydown.arrowLeft",function(){return pt.keyboard&&pt.arrowLeft()})("keydown.arrowRight",function(){return pt.keyboard&&pt.arrowRight()})("mouseenter",function(){return pt.mouseHover=!0})("mouseleave",function(){return pt.mouseHover=!1})("focusin",function(){return pt.focused=!0})("focusout",function(){return pt.focused=!1}),2&q&&(A.uIk("aria-activedescendant","slide-"+pt.activeId),A.Udp("display","block"))},inputs:{animation:"animation",activeId:"activeId",interval:"interval",wrap:"wrap",keyboard:"keyboard",pauseOnHover:"pauseOnHover",pauseOnFocus:"pauseOnFocus",showNavigationArrows:"showNavigationArrows",showNavigationIndicators:"showNavigationIndicators"},outputs:{slide:"slide",slid:"slid"},exportAs:["ngbCarousel"],standalone:!0,features:[A.jDz],decls:6,vars:6,consts:function(){let yt,q,pt;return yt=$localize`:Currently selected slide number read by screen reader@@ngb.carousel.slide-number: Slide ${"\ufffd0\ufffd"}:INTERPOLATION: of ${"\ufffd1\ufffd"}:INTERPOLATION_1: `,q=$localize`:@@ngb.carousel.previous:Previous`,pt=$localize`:@@ngb.carousel.next:Next`,[["role","tablist",1,"carousel-indicators"],["type","button","data-bs-target","","role","tab",3,"active","click",4,"ngFor","ngForOf"],[1,"carousel-inner"],["class","carousel-item","role","tabpanel",3,"id",4,"ngFor","ngForOf"],["class","carousel-control-prev","type","button",3,"click",4,"ngIf"],["class","carousel-control-next","type","button",3,"click",4,"ngIf"],["type","button","data-bs-target","","role","tab",3,"click"],["role","tabpanel",1,"carousel-item",3,"id"],[1,"visually-hidden"],yt,[3,"ngTemplateOutlet"],["type","button",1,"carousel-control-prev",3,"click"],["aria-hidden","true",1,"carousel-control-prev-icon"],q,["type","button",1,"carousel-control-next",3,"click"],["aria-hidden","true",1,"carousel-control-next-icon"],pt]},template:function(q,pt){1&q&&(A.TgZ(0,"div",0),A.YNc(1,Ys,1,5,"button",1),A.qZA(),A.TgZ(2,"div",2),A.YNc(3,_a,4,4,"div",3),A.qZA(),A.YNc(4,us,4,0,"button",4),A.YNc(5,Xs,4,0,"button",5)),2&q&&(A.ekj("visually-hidden",!pt.showNavigationIndicators),A.xp6(1),A.Q6J("ngForOf",pt.slides),A.xp6(2),A.Q6J("ngForOf",pt.slides),A.xp6(1),A.Q6J("ngIf",pt.showNavigationArrows),A.xp6(1),A.Q6J("ngIf",pt.showNavigationArrows))},dependencies:[j.ax,j.tP,j.O5],encapsulation:2,changeDetection:0}),st})();var Is=(()=>{return(st=Is||(Is={})).TIMER="timer",st.ARROW_LEFT="arrowLeft",st.ARROW_RIGHT="arrowRight",st.INDICATOR="indicator",Is;var st})();let la=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Ah]}),st})(),Ia=(()=>{class st{constructor(q){this._ngbConfig=q,this.horizontal=!1}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),ca=(()=>{class st{constructor(q,pt,Ot){this._element=q,this._zone=Ot,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new A.vpe,this.shown=new A.vpe,this.hidden=new A.vpe,this.animation=pt.animation,this.horizontal=pt.horizontal}set collapsed(q){this._isCollapsed!==q&&(this._isCollapsed=q,this._afterInit&&this._runTransitionWithEvents(q,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(q=this._isCollapsed){this.collapsed=!q,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(q,pt){return io(this._zone,this._element.nativeElement,Yl,{animation:pt,runningTransition:"stop",context:{direction:q?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(q,pt){this._runTransition(q,pt).subscribe(()=>{q?this.hidden.emit():this.shown.emit()})}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.SBq),A.Y36(Ia),A.Y36(A.R0b))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(q,pt){2&q&&A.ekj("collapse-horizontal",pt.horizontal)},inputs:{animation:"animation",collapsed:["ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0}),st})(),Oc=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({}),st})();class _o{constructor(yt,q,pt){this.year=Fi(yt)?yt:null,this.month=Fi(q)?q:null,this.day=Fi(pt)?pt:null}static from(yt){return yt instanceof _o?yt:yt?new _o(yt.year,yt.month,yt.day):null}equals(yt){return null!=yt&&this.year===yt.year&&this.month===yt.month&&this.day===yt.day}before(yt){return!!yt&&(this.year===yt.year?this.month===yt.month?this.day!==yt.day&&this.dayyt.day:this.month>yt.month:this.year>yt.year)}}function ns(st,yt){return!function Oh(st,yt){return!st&&!yt||!!st&&!!yt&&st.equals(yt)}(st,yt)}function Pc(st,yt){return!(!st&&!yt||st&&yt&&st.year===yt.year&&st.month===yt.month)}function ha(st,yt,q){return st&&yt&&st.before(yt)?yt:st&&q&&st.after(q)?q:st||null}function Qc(st,yt){const{minDate:q,maxDate:pt,disabled:Ot,markDisabled:Yt}=yt;return!(null==st||Ot||Yt&&Yt(st,{year:st.year,month:st.month})||q&&st.before(q)||pt&&st.after(pt))}function Ic(st){return new _o(st.getFullYear(),st.getMonth()+1,st.getDate())}function mo(st){const yt=new Date(st.year,st.month-1,st.day,12);return isNaN(yt.getTime())||yt.setFullYear(st.year),yt}let os=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:function(){return function Ml(){return new Od}()},providedIn:"root"}),st})(),Od=(()=>{class st extends os{getDaysPerWeek(){return 7}getMonths(){return[1,2,3,4,5,6,7,8,9,10,11,12]}getWeeksPerMonth(){return 6}getNext(q,pt="d",Ot=1){let Yt=mo(q),ge=!0,ke=Yt.getMonth();switch(pt){case"y":Yt.setFullYear(Yt.getFullYear()+Ot);break;case"m":ke+=Ot,Yt.setMonth(ke),ke%=12,ke<0&&(ke+=12);break;case"d":Yt.setDate(Yt.getDate()+Ot),ge=!1;break;default:return q}return ge&&Yt.getMonth()!==ke&&Yt.setDate(0),Ic(Yt)}getPrev(q,pt="d",Ot=1){return this.getNext(q,pt,-Ot)}getWeekday(q){let Ot=mo(q).getDay();return 0===Ot?7:Ot}getWeekNumber(q,pt){7===pt&&(pt=0);const ge=mo(q[(11-pt)%7]);ge.setDate(ge.getDate()+4-(ge.getDay()||7));const ke=ge.getTime();return ge.setMonth(0),ge.setDate(1),Math.floor(Math.round((ke-ge.getTime())/864e5)/7)+1}getToday(){return Ic(new Date)}isValid(q){if(!(q&&Fi(q.year)&&Fi(q.month)&&Fi(q.day)&&0!==q.year))return!1;const pt=mo(q);return!isNaN(pt.getTime())&&pt.getFullYear()===q.year&&pt.getMonth()+1===q.month&&pt.getDate()===q.day}}return st.\u0275fac=function(){let yt;return function(pt){return(yt||(yt=A.n5z(st)))(pt||st)}}(),st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac}),st})(),It=(()=>{class st{getMonthLabel(q){return`${this.getMonthFullName(q.month,q.year)} ${this.getYearNumerals(q.year)}`}getDayNumerals(q){return`${q.day}`}getWeekNumerals(q){return`${q}`}getYearNumerals(q){return`${q}`}getWeekLabel(){return""}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:function(q){let pt=null;return pt=q?new q:function Et(st){return new wt(st)}(A.LFG(A.soG)),pt},providedIn:"root"}),st})(),wt=(()=>{class st extends It{constructor(q){super(),this._locale=q,this._monthsShort=(0,j.UT)(q,j.x.Standalone,j.Tn.Abbreviated),this._monthsFull=(0,j.UT)(q,j.x.Standalone,j.Tn.Wide)}getWeekdayLabel(q,pt){const Ot=(0,j.Mn)(this._locale,j.x.Standalone,void 0===pt?j.Tn.Short:pt);return Ot.map((ge,ke)=>Ot[(ke+1)%7])[q-1]||""}getMonthShortName(q){return this._monthsShort[q-1]||""}getMonthFullName(q){return this._monthsFull[q-1]||""}getDayAriaLabel(q){const pt=new Date(q.year,q.month-1,q.day);return(0,j.p6)(pt,"fullDate",this._locale)}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(A.soG))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac}),st})(),jt=(()=>{class st{constructor(q,pt){this._calendar=q,this._i18n=pt,this._VALIDATORS={dayTemplateData:Ot=>{if(this._state.dayTemplateData!==Ot)return{dayTemplateData:Ot}},displayMonths:Ot=>{if(Fi(Ot=ii(Ot))&&Ot>0&&this._state.displayMonths!==Ot)return{displayMonths:Ot}},disabled:Ot=>{if(this._state.disabled!==Ot)return{disabled:Ot}},firstDayOfWeek:Ot=>{if(Fi(Ot=ii(Ot))&&Ot>=0&&this._state.firstDayOfWeek!==Ot)return{firstDayOfWeek:Ot}},focusVisible:Ot=>{if(this._state.focusVisible!==Ot&&!this._state.disabled)return{focusVisible:Ot}},markDisabled:Ot=>{if(this._state.markDisabled!==Ot)return{markDisabled:Ot}},maxDate:Ot=>{const Yt=this.toValidDate(Ot,null);if(ns(this._state.maxDate,Yt))return{maxDate:Yt}},minDate:Ot=>{const Yt=this.toValidDate(Ot,null);if(ns(this._state.minDate,Yt))return{minDate:Yt}},navigation:Ot=>{if(this._state.navigation!==Ot)return{navigation:Ot}},outsideDays:Ot=>{if(this._state.outsideDays!==Ot)return{outsideDays:Ot}},weekdays:Ot=>{const Yt=!0===Ot||!1===Ot?j.Tn.Short:Ot,ge=!0!==Ot&&!1!==Ot||Ot;if(this._state.weekdayWidth!==Yt||this._state.weekdaysVisible!==ge)return{weekdayWidth:Yt,weekdaysVisible:ge}}},this._model$=new V.x,this._dateSelect$=new V.x,this._state={dayTemplateData:null,markDisabled:null,maxDate:null,minDate:null,disabled:!1,displayMonths:1,firstDate:null,firstDayOfWeek:1,lastDate:null,focusDate:null,focusVisible:!1,months:[],navigation:"select",outsideDays:"visible",prevDisabled:!1,nextDisabled:!1,selectedDate:null,selectBoxes:{years:[],months:[]},weekdayWidth:j.Tn.Short,weekdaysVisible:!0}}get model$(){return this._model$.pipe((0,_.h)(q=>q.months.length>0))}get dateSelect$(){return this._dateSelect$.pipe((0,_.h)(q=>null!==q))}set(q){let pt=Object.keys(q).map(Ot=>this._VALIDATORS[Ot](q[Ot])).reduce((Ot,Yt)=>({...Ot,...Yt}),{});Object.keys(pt).length>0&&this._nextState(pt)}focus(q){const pt=this.toValidDate(q,null);null!=pt&&!this._state.disabled&&ns(this._state.focusDate,pt)&&this._nextState({focusDate:q})}focusSelect(){Qc(this._state.focusDate,this._state)&&this.select(this._state.focusDate,{emitEvent:!0})}open(q){const pt=this.toValidDate(q,this._calendar.getToday());null!=pt&&!this._state.disabled&&(!this._state.firstDate||Pc(this._state.firstDate,pt))&&this._nextState({firstDate:pt})}select(q,pt={}){const Ot=this.toValidDate(q,null);null!=Ot&&!this._state.disabled&&(ns(this._state.selectedDate,Ot)&&this._nextState({selectedDate:Ot}),pt.emitEvent&&Qc(Ot,this._state)&&this._dateSelect$.next(Ot))}toValidDate(q,pt){const Ot=_o.from(q);return void 0===pt&&(pt=this._calendar.getToday()),this._calendar.isValid(Ot)?Ot:pt}getMonth(q){for(let pt of this._state.months)if(q.month===pt.number&&q.year===pt.year)return pt;throw new Error(`month ${q.month} of year ${q.year} not found`)}_nextState(q){const pt=this._updateState(q);this._patchContexts(pt),this._state=pt,this._model$.next(this._state)}_patchContexts(q){const{months:pt,displayMonths:Ot,selectedDate:Yt,focusDate:ge,focusVisible:ke,disabled:Ie,outsideDays:We}=q;q.months.forEach(Ke=>{Ke.weeks.forEach(wi=>{wi.days.forEach(gi=>{ge&&(gi.context.focused=ge.equals(gi.date)&&ke),gi.tabindex=!Ie&&ge&&gi.date.equals(ge)&&ge.month===Ke.number?0:-1,!0===Ie&&(gi.context.disabled=!0),void 0!==Yt&&(gi.context.selected=null!==Yt&&Yt.equals(gi.date)),Ke.number!==gi.date.month&&(gi.hidden="hidden"===We||"collapsed"===We||Ot>1&&gi.date.after(pt[0].firstDate)&&gi.date.before(pt[Ot-1].lastDate))})})})}_updateState(q){const pt=Object.assign({},this._state,q);let Ot=pt.firstDate;if(("minDate"in q||"maxDate"in q)&&(function oo(st,yt){if(yt&&st&&yt.before(st))throw new Error(`'maxDate' ${yt} should be greater than 'minDate' ${st}`)}(pt.minDate,pt.maxDate),pt.focusDate=ha(pt.focusDate,pt.minDate,pt.maxDate),pt.firstDate=ha(pt.firstDate,pt.minDate,pt.maxDate),Ot=pt.focusDate),"disabled"in q&&(pt.focusVisible=!1),"selectedDate"in q&&0===this._state.months.length&&(Ot=pt.selectedDate),"focusVisible"in q||"focusDate"in q&&(pt.focusDate=ha(pt.focusDate,pt.minDate,pt.maxDate),Ot=pt.focusDate,0!==pt.months.length&&pt.focusDate&&!pt.focusDate.before(pt.firstDate)&&!pt.focusDate.after(pt.lastDate)))return pt;if("firstDate"in q&&(pt.firstDate=ha(pt.firstDate,pt.minDate,pt.maxDate),Ot=pt.firstDate),Ot){const ge=function Rh(st,yt,q,pt,Ot){const{displayMonths:Yt,months:ge}=q,ke=ge.splice(0,ge.length);return Array.from({length:Yt},(We,Ke)=>{const wi=Object.assign(st.getNext(yt,"m",Ke),{day:1});if(ge[Ke]=null,!Ot){const gi=ke.findIndex(Ai=>Ai.firstDate.equals(wi));-1!==gi&&(ge[Ke]=ke.splice(gi,1)[0])}return wi}).forEach((We,Ke)=>{null===ge[Ke]&&(ge[Ke]=function tl(st,yt,q,pt,Ot={}){const{dayTemplateData:Yt,minDate:ge,maxDate:ke,firstDayOfWeek:Ie,markDisabled:We,outsideDays:Ke,weekdayWidth:wi,weekdaysVisible:gi}=q,Ai=st.getToday();Ot.firstDate=null,Ot.lastDate=null,Ot.number=yt.month,Ot.year=yt.year,Ot.weeks=Ot.weeks||[],Ot.weekdays=Ot.weekdays||[],yt=function Nh(st,yt,q){const pt=st.getDaysPerWeek(),Ot=new _o(yt.year,yt.month,1),Yt=st.getWeekday(Ot)%pt;return st.getPrev(Ot,"d",(pt+Yt-q)%pt)}(st,yt,Ie),gi||(Ot.weekdays.length=0);for(let yn=0;ynAn.date),Ie),$i.collapsed="collapsed"===Ke&&ln[0].date.month!==Ot.number&&ln[ln.length-1].date.month!==Ot.number}return Ot}(st,We,q,pt,ke.shift()||{}))}),ge}(this._calendar,Ot,pt,this._i18n,"dayTemplateData"in q||"firstDayOfWeek"in q||"markDisabled"in q||"minDate"in q||"maxDate"in q||"disabled"in q||"outsideDays"in q||"weekdaysVisible"in q);pt.months=ge,pt.firstDate=ge[0].firstDate,pt.lastDate=ge[ge.length-1].lastDate,"selectedDate"in q&&!Qc(pt.selectedDate,pt)&&(pt.selectedDate=null),"firstDate"in q&&(!pt.focusDate||pt.focusDate.before(pt.firstDate)||pt.focusDate.after(pt.lastDate))&&(pt.focusDate=Ot);const ke=!this._state.firstDate||this._state.firstDate.year!==pt.firstDate.year,Ie=!this._state.firstDate||this._state.firstDate.month!==pt.firstDate.month;"select"===pt.navigation?(("minDate"in q||"maxDate"in q||0===pt.selectBoxes.years.length||ke)&&(pt.selectBoxes.years=function Ph(st,yt,q){if(!st)return[];const pt=yt?Math.max(yt.year,st.year-500):st.year-10,Yt=(q?Math.min(q.year,st.year+500):st.year+10)-pt+1,ge=Array(Yt);for(let ke=0;kege===q.month);Ot=Ot.slice(Yt)}if(pt&&yt.year===pt.year){const Yt=Ot.findIndex(ge=>ge===pt.month);Ot=Ot.slice(0,Yt+1)}return Ot}(this._calendar,pt.firstDate,pt.minDate,pt.maxDate))):pt.selectBoxes={years:[],months:[]},("arrows"===pt.navigation||"select"===pt.navigation)&&(Ie||ke||"minDate"in q||"maxDate"in q||"disabled"in q)&&(pt.prevDisabled=pt.disabled||function Lh(st,yt,q){const pt=Object.assign(st.getPrev(yt,"m"),{day:1});return null!=q&&(pt.year===q.year&&pt.month{return(st=Kt||(Kt={}))[st.PREV=0]="PREV",st[st.NEXT=1]="NEXT",Kt;var st})();let re=(()=>{class st{constructor(q){this.i18n=q}isMuted(){return!this.selected&&(this.date.month!==this.currentMonth||this.disabled)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(It))},st.\u0275cmp=A.Xpm({type:st,selectors:[["","ngbDatepickerDayView",""]],hostAttrs:[1,"btn-light"],hostVars:10,hostBindings:function(q,pt){2&q&&A.ekj("bg-primary",pt.selected)("text-white",pt.selected)("text-muted",pt.isMuted())("outside",pt.isMuted())("active",pt.focused)},inputs:{currentMonth:"currentMonth",date:"date",disabled:"disabled",focused:"focused",selected:"selected"},standalone:!0,features:[A.jDz],attrs:ba,decls:1,vars:1,template:function(q,pt){1&q&&A._uU(0),2&q&&A.Oqu(pt.i18n.getDayNumerals(pt.date))},styles:["[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-btn-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\n"],encapsulation:2,changeDetection:0}),st})(),he=(()=>{class st{constructor(q,pt){this.i18n=q,this._renderer=pt,this.select=new A.vpe,this._month=-1,this._year=-1}changeMonth(q){this.select.emit(new _o(this.date.year,ii(q),1))}changeYear(q){this.select.emit(new _o(ii(q),this.date.month,1))}ngAfterViewChecked(){this.date&&(this.date.month!==this._month&&(this._month=this.date.month,this._renderer.setProperty(this.monthSelect.nativeElement,"value",this._month)),this.date.year!==this._year&&(this._year=this.date.year,this._renderer.setProperty(this.yearSelect.nativeElement,"value",this._year)))}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(It),A.Y36(A.Qsj))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-datepicker-navigation-select"]],viewQuery:function(q,pt){if(1&q&&(A.Gf(ml,7,A.SBq),A.Gf(dr,7,A.SBq)),2&q){let Ot;A.iGM(Ot=A.CRH())&&(pt.monthSelect=Ot.first),A.iGM(Ot=A.CRH())&&(pt.yearSelect=Ot.first)}},inputs:{date:"date",disabled:"disabled",months:"months",years:"years"},outputs:{select:"select"},standalone:!0,features:[A.jDz],decls:6,vars:4,consts:function(){let yt,q,pt,Ot;return yt=$localize`:@@ngb.datepicker.select-month:Select month`,q=$localize`:@@ngb.datepicker.select-month:Select month`,pt=$localize`:@@ngb.datepicker.select-year:Select year`,Ot=$localize`:@@ngb.datepicker.select-year:Select year`,[["aria-label",yt,"title",q,1,"form-select",3,"disabled","change"],["month",""],[3,"value",4,"ngFor","ngForOf"],["aria-label",pt,"title",Ot,1,"form-select",3,"disabled","change"],["year",""],[3,"value"]]},template:function(q,pt){1&q&&(A.TgZ(0,"select",0,1),A.NdJ("change",function(Yt){return pt.changeMonth(Yt.target.value)}),A.YNc(2,xr,2,3,"option",2),A.qZA(),A.TgZ(3,"select",3,4),A.NdJ("change",function(Yt){return pt.changeYear(Yt.target.value)}),A.YNc(5,Do,2,2,"option",2),A.qZA()),2&q&&(A.Q6J("disabled",pt.disabled),A.xp6(2),A.Q6J("ngForOf",pt.months),A.xp6(1),A.Q6J("disabled",pt.disabled),A.xp6(2),A.Q6J("ngForOf",pt.years))},dependencies:[j.ax],styles:["ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\n"],encapsulation:2,changeDetection:0}),st})(),ze=(()=>{class st{constructor(q){this.i18n=q,this.navigation=Kt,this.months=[],this.navigate=new A.vpe,this.select=new A.vpe}onClickPrev(q){q.currentTarget.focus(),this.navigate.emit(this.navigation.PREV)}onClickNext(q){q.currentTarget.focus(),this.navigate.emit(this.navigation.NEXT)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(It))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-datepicker-navigation"]],inputs:{date:"date",disabled:"disabled",months:"months",showSelect:"showSelect",prevDisabled:"prevDisabled",nextDisabled:"nextDisabled",selectBoxes:"selectBoxes"},outputs:{navigate:"navigate",select:"select"},standalone:!0,features:[A.jDz],decls:8,vars:4,consts:function(){let yt,q,pt,Ot;return yt=$localize`:@@ngb.datepicker.previous-month:Previous month`,q=$localize`:@@ngb.datepicker.previous-month:Previous month`,pt=$localize`:@@ngb.datepicker.next-month:Next month`,Ot=$localize`:@@ngb.datepicker.next-month:Next month`,[[1,"ngb-dp-arrow"],["type","button","aria-label",yt,"title",q,1,"btn","btn-link","ngb-dp-arrow-btn",3,"disabled","click"],[1,"ngb-dp-navigation-chevron"],["class","ngb-dp-navigation-select",3,"date","disabled","months","years","select",4,"ngIf"],[4,"ngIf"],[1,"ngb-dp-arrow","right"],["type","button","aria-label",pt,"title",Ot,1,"btn","btn-link","ngb-dp-arrow-btn",3,"disabled","click"],[1,"ngb-dp-navigation-select",3,"date","disabled","months","years","select"],["ngFor","",3,"ngForOf"],["class","ngb-dp-arrow",4,"ngIf"],[1,"ngb-dp-month-name"]]},template:function(q,pt){1&q&&(A.TgZ(0,"div",0)(1,"button",1),A.NdJ("click",function(Yt){return pt.onClickPrev(Yt)}),A._UZ(2,"span",2),A.qZA()(),A.YNc(3,zr,1,4,"ngb-datepicker-navigation-select",3),A.YNc(4,Es,1,1,null,4),A.TgZ(5,"div",5)(6,"button",6),A.NdJ("click",function(Yt){return pt.onClickNext(Yt)}),A._UZ(7,"span",2),A.qZA()()),2&q&&(A.xp6(1),A.Q6J("disabled",pt.prevDisabled),A.xp6(2),A.Q6J("ngIf",pt.showSelect),A.xp6(1),A.Q6J("ngIf",!pt.showSelect),A.xp6(2),A.Q6J("disabled",pt.nextDisabled))},dependencies:[j.O5,j.ax,he],styles:["ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\n"],encapsulation:2,changeDetection:0}),st})();var Qe=(()=>{return(st=Qe||(Qe={}))[st.Tab=9]="Tab",st[st.Enter=13]="Enter",st[st.Escape=27]="Escape",st[st.Space=32]="Space",st[st.PageUp=33]="PageUp",st[st.PageDown=34]="PageDown",st[st.End=35]="End",st[st.Home=36]="Home",st[st.ArrowLeft=37]="ArrowLeft",st[st.ArrowUp=38]="ArrowUp",st[st.ArrowRight=39]="ArrowRight",st[st.ArrowDown=40]="ArrowDown",Qe;var st})();let bi=(()=>{class st{processKey(q,pt){const{state:Ot,calendar:Yt}=pt;switch(q.which){case Qe.PageUp:pt.focusDate(Yt.getPrev(Ot.focusedDate,q.shiftKey?"y":"m",1));break;case Qe.PageDown:pt.focusDate(Yt.getNext(Ot.focusedDate,q.shiftKey?"y":"m",1));break;case Qe.End:pt.focusDate(q.shiftKey?Ot.maxDate:Ot.lastDate);break;case Qe.Home:pt.focusDate(q.shiftKey?Ot.minDate:Ot.firstDate);break;case Qe.ArrowLeft:pt.focusDate(Yt.getPrev(Ot.focusedDate,"d",1));break;case Qe.ArrowUp:pt.focusDate(Yt.getPrev(Ot.focusedDate,"d",Yt.getDaysPerWeek()));break;case Qe.ArrowRight:pt.focusDate(Yt.getNext(Ot.focusedDate,"d",1));break;case Qe.ArrowDown:pt.focusDate(Yt.getNext(Ot.focusedDate,"d",Yt.getDaysPerWeek()));break;case Qe.Enter:case Qe.Space:pt.focusSelect();break;default:return}q.preventDefault(),q.stopPropagation()}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Si=(()=>{class st{constructor(){this.displayMonths=1,this.firstDayOfWeek=1,this.navigation="select",this.outsideDays="visible",this.showWeekNumbers=!1,this.weekdays=j.Tn.Short}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Oo=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:function(){return function Dn(){return new Ls}()},providedIn:"root"}),st})(),Ls=(()=>{class st extends Oo{fromModel(q){return q&&Fi(q.year)&&Fi(q.month)&&Fi(q.day)?{year:q.year,month:q.month,day:q.day}:null}toModel(q){return q&&Fi(q.year)&&Fi(q.month)&&Fi(q.day)?{year:q.year,month:q.month,day:q.day}:null}}return st.\u0275fac=function(){let yt;return function(pt){return(yt||(yt=A.n5z(st)))(pt||st)}}(),st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac}),st})(),vs=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbDatepickerContent",""]],standalone:!0}),st})(),ys=(()=>{class st{constructor(q,pt,Ot,Yt){this.i18n=q,this.datepicker=pt,this._keyboardService=Ot,this._service=Yt}set month(q){this.viewModel=this._service.getMonth(q)}onKeyDown(q){this._keyboardService.processKey(q,this.datepicker)}doSelect(q){!q.context.disabled&&!q.hidden&&this.datepicker.onDateSelect(q.date)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(It),A.Y36((0,A.Gpc)(()=>Ir)),A.Y36(bi),A.Y36(jt))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-datepicker-month"]],hostAttrs:["role","grid"],hostBindings:function(q,pt){1&q&&A.NdJ("keydown",function(Yt){return pt.onKeyDown(Yt)})},inputs:{month:"month"},standalone:!0,features:[A.jDz],decls:2,vars:2,consts:[["class","ngb-dp-week ngb-dp-weekdays","role","row",4,"ngIf"],["ngFor","",3,"ngForOf"],["role","row",1,"ngb-dp-week","ngb-dp-weekdays"],["class","ngb-dp-weekday ngb-dp-showweek small",4,"ngIf"],["class","ngb-dp-weekday small","role","columnheader",4,"ngFor","ngForOf"],[1,"ngb-dp-weekday","ngb-dp-showweek","small"],["role","columnheader",1,"ngb-dp-weekday","small"],["class","ngb-dp-week","role","row",4,"ngIf"],["role","row",1,"ngb-dp-week"],["class","ngb-dp-week-number small text-muted",4,"ngIf"],["class","ngb-dp-day","role","gridcell",3,"disabled","tabindex","hidden","ngb-dp-today","click",4,"ngFor","ngForOf"],[1,"ngb-dp-week-number","small","text-muted"],["role","gridcell",1,"ngb-dp-day",3,"tabindex","click"],[3,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(q,pt){1&q&&(A.YNc(0,wa,3,2,"div",0),A.YNc(1,Nn,1,1,"ng-template",1)),2&q&&(A.Q6J("ngIf",pt.viewModel.weekdays.length>0),A.xp6(1),A.Q6J("ngForOf",pt.viewModel.weeks))},dependencies:[j.O5,j.ax,j.tP],styles:['ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-light)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex="0"]{z-index:1}\n'],encapsulation:2}),st})(),Ir=(()=>{class st{constructor(q,pt,Ot,Yt,ge,ke,Ie,We){this._service=q,this._calendar=pt,this.i18n=Ot,this._elementRef=ke,this._ngbDateAdapter=Ie,this._ngZone=We,this._controlValue=null,this._destroyed$=new V.x,this._publicState={},this.navigate=new A.vpe,this.dateSelect=new A.vpe,this.onChange=Ke=>{},this.onTouched=()=>{},["dayTemplate","dayTemplateData","displayMonths","firstDayOfWeek","footerTemplate","markDisabled","minDate","maxDate","navigation","outsideDays","showWeekNumbers","startDate","weekdays"].forEach(Ke=>this[Ke]=Yt[Ke]),q.dateSelect$.pipe((0,L.R)(this._destroyed$)).subscribe(Ke=>{this.dateSelect.emit(Ke)}),q.model$.pipe((0,L.R)(this._destroyed$)).subscribe(Ke=>{const wi=Ke.firstDate,gi=this.model?this.model.firstDate:null;this._publicState={maxDate:Ke.maxDate,minDate:Ke.minDate,firstDate:Ke.firstDate,lastDate:Ke.lastDate,focusedDate:Ke.focusDate,months:Ke.months.map(An=>An.firstDate)};let Ai=!1;if(!wi.equals(gi)&&(this.navigate.emit({current:gi?{year:gi.year,month:gi.month}:null,next:{year:wi.year,month:wi.month},preventDefault:()=>Ai=!0}),Ai&&null!==gi))return void this._service.open(gi);const yn=Ke.selectedDate,$i=Ke.focusDate,ln=this.model?this.model.focusDate:null;this.model=Ke,ns(yn,this._controlValue)&&(this._controlValue=yn,this.onTouched(),this.onChange(this._ngbDateAdapter.toModel(yn))),ns($i,ln)&&ln&&Ke.focusVisible&&this.focus(),ge.markForCheck()})}get state(){return this._publicState}get calendar(){return this._calendar}focusDate(q){this._service.focus(_o.from(q))}focusSelect(){this._service.focusSelect()}focus(){this._ngZone.onStable.asObservable().pipe((0,l.q)(1)).subscribe(()=>{const q=this._elementRef.nativeElement.querySelector('div.ngb-dp-day[tabindex="0"]');q&&q.focus()})}navigateTo(q){this._service.open(_o.from(q?q.day?q:{...q,day:1}:null))}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{const q=(0,Y.R)(this._contentEl.nativeElement,"focusin"),pt=(0,Y.R)(this._contentEl.nativeElement,"focusout"),{nativeElement:Ot}=this._elementRef;(0,w.T)(q,pt).pipe((0,_.h)(({target:Yt,relatedTarget:ge})=>!(eo(Yt,"ngb-dp-day")&&eo(ge,"ngb-dp-day")&&Ot.contains(Yt)&&Ot.contains(ge))),(0,L.R)(this._destroyed$)).subscribe(({type:Yt})=>this._ngZone.run(()=>this._service.set({focusVisible:"focusin"===Yt})))})}ngOnDestroy(){this._destroyed$.next()}ngOnInit(){if(void 0===this.model){const q={};["dayTemplateData","displayMonths","markDisabled","firstDayOfWeek","navigation","minDate","maxDate","outsideDays","weekdays"].forEach(pt=>q[pt]=this[pt]),this._service.set(q),this.navigateTo(this.startDate)}this.dayTemplate||(this.dayTemplate=this._defaultDayTemplate)}ngOnChanges(q){const pt={};if(["dayTemplateData","displayMonths","markDisabled","firstDayOfWeek","navigation","minDate","maxDate","outsideDays","weekdays"].filter(Ot=>Ot in q).forEach(Ot=>pt[Ot]=this[Ot]),this._service.set(pt),"startDate"in q){const{currentValue:Ot,previousValue:Yt}=q.startDate;Pc(Yt,Ot)&&this.navigateTo(this.startDate)}}onDateSelect(q){this._service.focus(q),this._service.select(q,{emitEvent:!0})}onNavigateDateSelect(q){this._service.open(q)}onNavigateEvent(q){switch(q){case Kt.PREV:this._service.open(this._calendar.getPrev(this.model.firstDate,"m",1));break;case Kt.NEXT:this._service.open(this._calendar.getNext(this.model.firstDate,"m",1))}}registerOnChange(q){this.onChange=q}registerOnTouched(q){this.onTouched=q}setDisabledState(q){this._service.set({disabled:q})}writeValue(q){this._controlValue=_o.from(this._ngbDateAdapter.fromModel(q)),this._service.select(this._controlValue)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(jt),A.Y36(os),A.Y36(It),A.Y36(Si),A.Y36(A.sBO),A.Y36(A.SBq),A.Y36(Oo),A.Y36(A.R0b))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-datepicker"]],contentQueries:function(q,pt,Ot){if(1&q&&A.Suo(Ot,vs,7),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.contentTemplate=Yt.first)}},viewQuery:function(q,pt){if(1&q&&(A.Gf(nr,7),A.Gf(Eo,7)),2&q){let Ot;A.iGM(Ot=A.CRH())&&(pt._defaultDayTemplate=Ot.first),A.iGM(Ot=A.CRH())&&(pt._contentEl=Ot.first)}},hostVars:2,hostBindings:function(q,pt){2&q&&A.ekj("disabled",pt.model.disabled)},inputs:{dayTemplate:"dayTemplate",dayTemplateData:"dayTemplateData",displayMonths:"displayMonths",firstDayOfWeek:"firstDayOfWeek",footerTemplate:"footerTemplate",markDisabled:"markDisabled",maxDate:"maxDate",minDate:"minDate",navigation:"navigation",outsideDays:"outsideDays",showWeekNumbers:"showWeekNumbers",startDate:"startDate",weekdays:"weekdays"},outputs:{navigate:"navigate",dateSelect:"dateSelect"},exportAs:["ngbDatepicker"],standalone:!0,features:[A._Bn([{provide:c.JU,useExisting:(0,A.Gpc)(()=>st),multi:!0},jt]),A.TTD,A.jDz],decls:10,vars:5,consts:[["defaultDayTemplate",""],["defaultContentTemplate",""],[1,"ngb-dp-header"],[3,"date","months","disabled","showSelect","prevDisabled","nextDisabled","selectBoxes","navigate","select",4,"ngIf"],[1,"ngb-dp-content"],["content",""],[3,"ngTemplateOutlet"],["ngbDatepickerDayView","",3,"date","currentMonth","selected","disabled","focused"],["class","ngb-dp-month",4,"ngFor","ngForOf"],[1,"ngb-dp-month"],["class","ngb-dp-month-name",4,"ngIf"],[3,"month"],[1,"ngb-dp-month-name"],[3,"date","months","disabled","showSelect","prevDisabled","nextDisabled","selectBoxes","navigate","select"]],template:function(q,pt){if(1&q&&(A.YNc(0,Hl,1,5,"ng-template",null,0,A.W1O),A.YNc(2,po,1,1,"ng-template",null,1,A.W1O),A.TgZ(4,"div",2),A.YNc(5,fs,1,7,"ngb-datepicker-navigation",3),A.qZA(),A.TgZ(6,"div",4,5),A.YNc(8,Ta,0,0,"ng-template",6),A.qZA(),A.YNc(9,gs,0,0,"ng-template",6)),2&q){const Ot=A.MAs(3);A.xp6(5),A.Q6J("ngIf","none"!==pt.navigation),A.xp6(1),A.ekj("ngb-dp-months",!pt.contentTemplate),A.xp6(2),A.Q6J("ngTemplateOutlet",(null==pt.contentTemplate?null:pt.contentTemplate.templateRef)||Ot),A.xp6(1),A.Q6J("ngTemplateOutlet",pt.footerTemplate)}},dependencies:[j.O5,j.ax,j.tP,re,ys,ze],styles:["ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-light)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-light)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\n"],encapsulation:2,changeDetection:0}),st})();const Zl=(st,yt)=>!!yt&&yt.some(q=>q.contains(st)),Lc=(st,yt)=>!yt||null!=function Ko(st,yt){return!yt||typeof st.closest>"u"?null:st.closest(yt)}(st,yt),Fh=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function Rc(st,yt,q,pt,Ot,Yt,ge,ke){q&&st.runOutsideAngular((st=>Fh?()=>setTimeout(()=>st(),100):st)(()=>{const We=(0,Y.R)(yt,"keydown").pipe((0,L.R)(Ot),(0,_.h)(gi=>gi.which===Qe.Escape),(0,r.b)(gi=>gi.preventDefault())),Ke=(0,Y.R)(yt,"mousedown").pipe((0,m.U)(gi=>{const Ai=gi.target;return 2!==gi.button&&!Zl(Ai,ge)&&("inside"===q?Zl(Ai,Yt)&&Lc(Ai,ke):"outside"===q?!Zl(Ai,Yt):Lc(Ai,ke)||!Zl(Ai,Yt))}),(0,L.R)(Ot)),wi=(0,Y.R)(yt,"mouseup").pipe(p(Ke),(0,_.h)(([gi,Ai])=>Ai),(0,h.g)(0),(0,L.R)(Ot));W([We.pipe((0,m.U)(gi=>0)),wi.pipe((0,m.U)(gi=>1))]).subscribe(gi=>st.run(()=>pt(gi)))}))}const $l=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function Rs(st){const yt=Array.from(st.querySelectorAll($l)).filter(q=>-1!==q.tabIndex);return[yt[0],yt[yt.length-1]]}const Nc=/\s+/,Bh=/ +/gi,zh={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},ih=/^left/,jh=/^right/,Pu=/^start/,Iu=/^end/;function Dl({placement:st,baseClass:yt},q){let pt=Array.isArray(st)?st:st.split(Nc),Yt=pt.findIndex(We=>"auto"===We);Yt>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(We){null==pt.find(Ke=>-1!==Ke.search("^"+We))&&pt.splice(Yt++,1,We)});const ge=pt.map(We=>function Kl(st,yt){const[q,pt]=zh[st];return yt&&pt||q}(We,q.isRTL()));return{placement:ge.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!yt,phase:"write",fn({state:We}){const Ke=new RegExp(yt+"(-[a-z]+)*","gi"),wi=We.elements.popper,gi=We.placement;let Ai=wi.className;Ai=Ai.replace(Ke,""),Ai+=` ${function kl(st,yt){let[q,pt]=yt.split("-");const Ot=q.replace(ih,"start").replace(jh,"end");let Yt=[Ot];if(pt){let ge=pt;("left"===q||"right"===q)&&(ge=ge.replace(Pu,"top").replace(Iu,"bottom")),Yt.push(`${Ot}-${ge}`)}return st&&(Yt=Yt.map(ge=>`${st}-${ge}`)),Yt.join(" ")}(yt,gi)}`,Ai=Ai.trim().replace(Bh," "),wi.className=Ai}},Qi,lo,wn,{enabled:!0,name:"flip",options:{fallbackPlacements:ge}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function Hh(st){return st}function kt(st){let yt=null;return{createPopper(q){if(!yt){let Ot=(q.updatePopperOptions||Hh)(Dl(q,st));yt=ya(q.hostElement,q.targetElement,Ot)}},update(){yt&&yt.update()},setOptions(q){if(yt){let Ot=(q.updatePopperOptions||Hh)(Dl(q,st));yt.setOptions(Ot)}},destroy(){yt&&(yt.destroy(),yt=null)}}}function O(st){return yt=>(yt.modifiers.push(Ms,{name:"offset",options:{offset:()=>st}}),yt)}let le=(()=>{class st{constructor(q){this._element=q.documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(j.K0))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})();new Date(1882,10,12),new Date(2174,10,25);let Bd=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Ir,ys]}),st})(),Yu=(()=>{class st{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=q=>q}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),lh=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275dir=A.lG2({type:st,selectors:[["",8,"navbar"]],standalone:!0}),st})(),Xu=(()=>{class st{constructor(q,pt){this.elementRef=q,this._renderer=pt,this._disabled=!1}set disabled(q){this._disabled=""===q||!0===q,this._renderer.setProperty(this.elementRef.nativeElement,"disabled",this._disabled)}get disabled(){return this._disabled}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.SBq),A.Y36(A.Qsj))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(q,pt){2&q&&(A.Ikx("tabIndex",pt.disabled?-1:0),A.ekj("disabled",pt.disabled))},inputs:{disabled:"disabled"},standalone:!0}),st})(),zd=(()=>{class st{constructor(q,pt){this.dropdown=q,this.placement="bottom",this.isOpen=!1,this.nativeElement=pt.nativeElement}}return st.\u0275fac=function(q){return new(q||st)(A.Y36((0,A.Gpc)(()=>ch)),A.Y36(A.SBq))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(q,pt,Ot){if(1&q&&A.Suo(Ot,Xu,4),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.menuItems=Yt)}},hostVars:4,hostBindings:function(q,pt){1&q&&A.NdJ("keydown.ArrowUp",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.ArrowDown",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Home",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.End",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Enter",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Space",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Tab",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Shift.Tab",function(Yt){return pt.dropdown.onKeyDown(Yt)}),2&q&&A.ekj("dropdown-menu",!0)("show",pt.dropdown.isOpen())},standalone:!0}),st})(),Wh=(()=>{class st{constructor(q,pt){this.dropdown=q,this.nativeElement=pt.nativeElement}}return st.\u0275fac=function(q){return new(q||st)(A.Y36((0,A.Gpc)(()=>ch)),A.Y36(A.SBq))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:1,hostBindings:function(q,pt){2&q&&A.uIk("aria-expanded",pt.dropdown.isOpen())},standalone:!0}),st})(),Zu=(()=>{class st extends Wh{constructor(q,pt){super(q,pt)}}return st.\u0275fac=function(q){return new(q||st)(A.Y36((0,A.Gpc)(()=>ch)),A.Y36(A.SBq))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:1,hostBindings:function(q,pt){1&q&&A.NdJ("click",function(){return pt.dropdown.toggle()})("keydown.ArrowUp",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.ArrowDown",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Home",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.End",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Tab",function(Yt){return pt.dropdown.onKeyDown(Yt)})("keydown.Shift.Tab",function(Yt){return pt.dropdown.onKeyDown(Yt)}),2&q&&A.uIk("aria-expanded",pt.dropdown.isOpen())},standalone:!0,features:[A._Bn([{provide:Wh,useExisting:(0,A.Gpc)(()=>st)}]),A.qOj]}),st})(),ch=(()=>{class st{constructor(q,pt,Ot,Yt,ge,ke,Ie,We){this._changeDetector=q,this._document=Yt,this._ngZone=ge,this._elementRef=ke,this._renderer=Ie,this._destroyCloseHandlers$=new V.x,this._bodyContainer=null,this._open=!1,this.openChange=new A.vpe,this.placement=Ot.placement,this.popperOptions=Ot.popperOptions,this.container=Ot.container,this.autoClose=Ot.autoClose,this._positioning=kt(pt),this.display=We?"static":"dynamic"}ngAfterContentInit(){this._ngZone.onStable.pipe((0,l.q)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(q){if(q.container&&this._open&&this._applyContainer(this.container),q.placement&&!q.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),q.dropdownClass){const{currentValue:pt,previousValue:Ot}=q.dropdownClass;this._applyCustomDropdownClass(pt,Ot)}q.autoClose&&this._open&&(this.autoClose=q.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:q=>this.popperOptions(O([0,2])(q))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),Rc(this._ngZone,this._document,this.autoClose,q=>{this.close(),0===q&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(q){const pt=q.which,Ot=this._getMenuElements();let Yt=-1,ge=null;const ke=this._isEventFromToggle(q);if(!ke&&Ot.length&&Ot.forEach((Ie,We)=>{Ie.contains(q.target)&&(ge=Ie),Ie===this._document.activeElement&&(Yt=We)}),pt!==Qe.Space&&pt!==Qe.Enter){if(pt!==Qe.Tab){if(ke||ge){if(this.open(),Ot.length){switch(pt){case Qe.ArrowDown:Yt=Math.min(Yt+1,Ot.length-1);break;case Qe.ArrowUp:if(this._isDropup()&&-1===Yt){Yt=Ot.length-1;break}Yt=Math.max(Yt-1,0);break;case Qe.Home:Yt=0;break;case Qe.End:Yt=Ot.length-1}Ot[Yt].focus()}q.preventDefault()}}else if(q.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===q.target)return void("body"!==this.container||q.shiftKey?q.shiftKey&&this.close():(this._renderer.setAttribute(this._menu.nativeElement,"tabindex","0"),this._menu.nativeElement.focus(),this._renderer.removeAttribute(this._menu.nativeElement,"tabindex")));if("body"===this.container){const Ie=this._menu.nativeElement.querySelectorAll($l);q.shiftKey&&q.target===Ie[0]?(this._anchor.nativeElement.focus(),q.preventDefault()):!q.shiftKey&&q.target===Ie[Ie.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,Y.R)(q.target,"focusout").pipe((0,l.q)(1)).subscribe(({relatedTarget:Ie})=>{this._elementRef.nativeElement.contains(Ie)||this.close()})}}else ge&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,Y.R)(ge,"click").pipe((0,l.q)(1)).subscribe(()=>this.close())}_isDropup(){return this._elementRef.nativeElement.classList.contains("dropup")}_isEventFromToggle(q){return this._anchor.nativeElement.contains(q.target)}_getMenuElements(){const q=this._menu;return null==q?[]:q.menuItems.filter(pt=>!pt.disabled).map(pt=>pt.elementRef.nativeElement)}_positionMenu(){const q=this._menu;this.isOpen()&&q&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(q){return Array.isArray(q)?q[0]:q.split(" ")[0]}_resetContainer(){const q=this._renderer;this._menu&&q.appendChild(this._elementRef.nativeElement,this._menu.nativeElement),this._bodyContainer&&(q.removeChild(this._document.body,this._bodyContainer),this._bodyContainer=null)}_applyContainer(q=null){if(this._resetContainer(),"body"===q){const pt=this._renderer,Ot=this._menu.nativeElement,Yt=this._bodyContainer=this._bodyContainer||pt.createElement("div");pt.setStyle(Yt,"position","absolute"),pt.setStyle(Ot,"position","static"),pt.setStyle(Yt,"z-index","1055"),pt.appendChild(Yt,Ot),pt.appendChild(this._document.body,Yt)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(q,pt){const Ot="body"===this.container?this._bodyContainer:this._elementRef.nativeElement;Ot&&(pt&&this._renderer.removeClass(Ot,pt),q&&this._renderer.addClass(Ot,q))}_applyPlacementClasses(q){const pt=this._menu;if(pt){q||(q=this._getFirstPlacement(this.placement));const Ot=this._renderer,Yt=this._elementRef.nativeElement;Ot.removeClass(Yt,"dropup"),Ot.removeClass(Yt,"dropdown");const{nativeElement:ge}=pt;"static"===this.display?(pt.placement=null,Ot.setAttribute(ge,"data-bs-popper","static")):(pt.placement=q,Ot.removeAttribute(ge,"data-bs-popper"));const ke=-1!==q.search("^top")?"dropup":"dropdown";Ot.addClass(Yt,ke);const Ie=this._bodyContainer;Ie&&(Ot.removeClass(Ie,"dropup"),Ot.removeClass(Ie,"dropdown"),Ot.addClass(Ie,ke))}}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.sBO),A.Y36(le),A.Y36(Yu),A.Y36(j.K0),A.Y36(A.R0b),A.Y36(A.SBq),A.Y36(A.Qsj),A.Y36(lh,8))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbDropdown",""]],contentQueries:function(q,pt,Ot){if(1&q&&(A.Suo(Ot,zd,5),A.Suo(Ot,Wh,5)),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt._menu=Yt.first),A.iGM(Yt=A.CRH())&&(pt._anchor=Yt.first)}},hostVars:2,hostBindings:function(q,pt){2&q&&A.ekj("show",pt.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:["open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[A.TTD]}),st})(),jd=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({}),st})();class nl{constructor(yt,q,pt){this.nodes=yt,this.viewRef=q,this.componentRef=pt}}class $u{constructor(yt,q,pt,Ot,Yt,ge){this._componentType=yt,this._injector=q,this._viewContainerRef=pt,this._renderer=Ot,this._ngZone=Yt,this._applicationRef=ge,this._windowRef=null,this._contentRef=null}open(yt,q,pt=!1){this._windowRef||(this._contentRef=this._getContentRef(yt,q),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ot}=this._windowRef.location,Yt=this._ngZone.onStable.pipe((0,l.q)(1),(0,k.z)(()=>io(this._ngZone,Ot,({classList:ge})=>ge.add("show"),{animation:pt,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:Yt}}close(yt=!1){return this._windowRef?io(this._ngZone,this._windowRef.location.nativeElement,({classList:q})=>q.remove("show"),{animation:yt,runningTransition:"stop"}).pipe((0,r.b)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,$.of)(void 0)}_getContentRef(yt,q){if(yt){if(yt instanceof A.Rgc){const pt=yt.createEmbeddedView(q);return this._applicationRef.attachView(pt),new nl([pt.rootNodes],pt)}return new nl([[this._renderer.createText(`${yt}`)]])}return new nl([])}}let Hd=(()=>{class st{constructor(q,pt){this._el=q,this._zone=pt}ngOnInit(){this._zone.onStable.asObservable().pipe((0,l.q)(1)).subscribe(()=>{io(this._zone,this._el.nativeElement,(q,pt)=>{pt&&go(q),q.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return io(this._zone,this._el.nativeElement,({classList:q})=>q.remove("show"),{animation:this.animation,runningTransition:"stop"})}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.SBq),A.Y36(A.R0b))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(q,pt){2&q&&(A.Tol("modal-backdrop"+(pt.backdropClass?" "+pt.backdropClass:"")),A.ekj("show",!pt.animation)("fade",pt.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[A.jDz],decls:0,vars:0,template:function(q,pt){},encapsulation:2}),st})();class Ku{close(yt){}dismiss(yt){}}class Mf{constructor(yt,q,pt,Ot){this._windowCmptRef=yt,this._contentRef=q,this._backdropCmptRef=pt,this._beforeDismiss=Ot,this._closed=new V.x,this._dismissed=new V.x,this._hidden=new V.x,yt.instance.dismissEvent.subscribe(Yt=>{this.dismiss(Yt)}),this.result=new Promise((Yt,ge)=>{this._resolve=Yt,this._reject=ge}),this.result.then(null,()=>{})}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,L.R)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,L.R)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}close(yt){this._windowCmptRef&&(this._closed.next(yt),this._resolve(yt),this._removeModalElements())}_dismiss(yt){this._dismissed.next(yt),this._reject(yt),this._removeModalElements()}dismiss(yt){if(this._windowCmptRef)if(this._beforeDismiss){const q=this._beforeDismiss();!function Un(st){return st&&st.then}(q)?!1!==q&&this._dismiss(yt):q.then(pt=>{!1!==pt&&this._dismiss(yt)},()=>{})}else this._dismiss(yt)}_removeModalElements(){const yt=this._windowCmptRef.instance.hide(),q=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,$.of)(void 0);yt.subscribe(()=>{const{nativeElement:pt}=this._windowCmptRef.location;pt.parentNode.removeChild(pt),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),q.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:pt}=this._backdropCmptRef.location;pt.parentNode.removeChild(pt),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),x(yt,q).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Fc=(()=>{return(st=Fc||(Fc={}))[st.BACKDROP_CLICK=0]="BACKDROP_CLICK",st[st.ESC=1]="ESC",Fc;var st})();let Gd=(()=>{class st{constructor(q,pt,Ot){this._document=q,this._elRef=pt,this._zone=Ot,this._closed$=new V.x,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new A.vpe,this.shown=new V.x,this.hidden=new V.x}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":Cn(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(q){this.dismissEvent.emit(q)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,l.q)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:q}=this._elRef,pt={animation:this.animation,runningTransition:"stop"},ge=x(io(this._zone,q,()=>q.classList.remove("show"),pt),io(this._zone,this._dialogEl.nativeElement,()=>{},pt));return ge.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ge}_show(){const q={animation:this.animation,runningTransition:"continue"};x(io(this._zone,this._elRef.nativeElement,(Yt,ge)=>{ge&&go(Yt),Yt.classList.add("show")},q),io(this._zone,this._dialogEl.nativeElement,()=>{},q)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:q}=this._elRef;this._zone.runOutsideAngular(()=>{(0,Y.R)(q,"keydown").pipe((0,L.R)(this._closed$),(0,_.h)(Ot=>Ot.which===Qe.Escape)).subscribe(Ot=>{this.keyboard?requestAnimationFrame(()=>{Ot.defaultPrevented||this._zone.run(()=>this.dismiss(Fc.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let pt=!1;(0,Y.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,L.R)(this._closed$),(0,r.b)(()=>pt=!1),(0,n.w)(()=>(0,Y.R)(q,"mouseup").pipe((0,L.R)(this._closed$),(0,l.q)(1))),(0,_.h)(({target:Ot})=>q===Ot)).subscribe(()=>{pt=!0}),(0,Y.R)(q,"click").pipe((0,L.R)(this._closed$)).subscribe(({target:Ot})=>{q===Ot&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!pt&&this._zone.run(()=>this.dismiss(Fc.BACKDROP_CLICK))),pt=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:q}=this._elRef;if(!q.contains(document.activeElement)){const pt=q.querySelector("[ngbAutofocus]"),Ot=Rs(q)[0];(pt||Ot||q).focus()}}_restoreFocus(){const q=this._document.body,pt=this._elWithFocus;let Ot;Ot=pt&&pt.focus&&q.contains(pt)?pt:q,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ot.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&io(this._zone,this._elRef.nativeElement,({classList:q})=>(q.add("modal-static"),()=>q.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(j.K0),A.Y36(A.SBq),A.Y36(A.R0b))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-modal-window"]],viewQuery:function(q,pt){if(1&q&&A.Gf(Lo,7),2&q){let Ot;A.iGM(Ot=A.CRH())&&(pt._dialogEl=Ot.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(q,pt){2&q&&(A.uIk("aria-modal",!0)("aria-labelledby",pt.ariaLabelledBy)("aria-describedby",pt.ariaDescribedBy),A.Tol("modal d-block"+(pt.windowClass?" "+pt.windowClass:"")),A.ekj("fade",pt.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[A.jDz],ngContentSelectors:Ds,decls:4,vars:2,consts:[["role","document"],["dialog",""],[1,"modal-content"]],template:function(q,pt){1&q&&(A.F$t(),A.TgZ(0,"div",0,1)(2,"div",2),A.Hsn(3),A.qZA()()),2&q&&A.Tol("modal-dialog"+(pt.size?" modal-"+pt.size:"")+(pt.centered?" modal-dialog-centered":"")+pt.fullscreenClass+(pt.scrollable?" modal-dialog-scrollable":"")+(pt.modalDialogClass?" "+pt.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2}),st})(),Ql=(()=>{class st{constructor(q){this._document=q}hide(){const q=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),pt=this._document.body,Ot=pt.style,{overflow:Yt,paddingRight:ge}=Ot;if(q>0){const ke=parseFloat(window.getComputedStyle(pt).paddingRight);Ot.paddingRight=`${ke+q}px`}return Ot.overflow="hidden",()=>{q>0&&(Ot.paddingRight=ge),Ot.overflow=Yt}}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(j.K0))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),qu=(()=>{class st{constructor(q,pt,Ot,Yt,ge,ke){this._applicationRef=q,this._injector=pt,this._document=Ot,this._scrollBar=Yt,this._rendererFactory=ge,this._ngZone=ke,this._activeWindowCmptHasChanged=new V.x,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._backdropAttributes=["animation","backdropClass"],this._modalRefs=[],this._windowAttributes=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],this._windowCmpts=[],this._activeInstances=new A.vpe,this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const Ie=this._windowCmpts[this._windowCmpts.length-1];((st,yt,q,pt=!1)=>{st.runOutsideAngular(()=>{const Ot=(0,Y.R)(yt,"focusin").pipe((0,L.R)(q),(0,m.U)(Yt=>Yt.target));(0,Y.R)(yt,"keydown").pipe((0,L.R)(q),(0,_.h)(Yt=>Yt.which===Qe.Tab),p(Ot)).subscribe(([Yt,ge])=>{const[ke,Ie]=Rs(yt);(ge===ke||ge===yt)&&Yt.shiftKey&&(Ie.focus(),Yt.preventDefault()),ge===Ie&&!Yt.shiftKey&&(ke.focus(),Yt.preventDefault())}),pt&&(0,Y.R)(yt,"click").pipe((0,L.R)(q),p(Ot),(0,m.U)(Yt=>Yt[1])).subscribe(Yt=>Yt.focus())})})(this._ngZone,Ie.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(Ie.location.nativeElement)}})}_restoreScrollBar(){const q=this._scrollBarRestoreFn;q&&(this._scrollBarRestoreFn=null,q())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(q,pt,Ot){const Yt=Ot.container instanceof HTMLElement?Ot.container:Kn(Ot.container)?this._document.querySelector(Ot.container):this._document.body,ge=this._rendererFactory.createRenderer(null,null);if(!Yt)throw new Error(`The specified modal container "${Ot.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ke=new Ku,Ie=this._getContentRef(Ot.injector||q,pt,ke,Ot);let We=!1!==Ot.backdrop?this._attachBackdrop(Yt):void 0,Ke=this._attachWindowComponent(Yt,Ie.nodes),wi=new Mf(Ke,Ie,We,Ot.beforeDismiss);return this._registerModalRef(wi),this._registerWindowCmpt(Ke),wi.hidden.pipe((0,l.q)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(ge.removeClass(this._document.body,"modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ke.close=gi=>{wi.close(gi)},ke.dismiss=gi=>{wi.dismiss(gi)},this._applyWindowOptions(Ke.instance,Ot),1===this._modalRefs.length&&ge.addClass(this._document.body,"modal-open"),We&&We.instance&&(this._applyBackdropOptions(We.instance,Ot),We.changeDetectorRef.detectChanges()),Ke.changeDetectorRef.detectChanges(),wi}get activeInstances(){return this._activeInstances}dismissAll(q){this._modalRefs.forEach(pt=>pt.dismiss(q))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(q){let pt=(0,A.LMc)(Hd,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(pt.hostView),q.appendChild(pt.location.nativeElement),pt}_attachWindowComponent(q,pt){let Ot=(0,A.LMc)(Gd,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:pt});return this._applicationRef.attachView(Ot.hostView),q.appendChild(Ot.location.nativeElement),Ot}_applyWindowOptions(q,pt){this._windowAttributes.forEach(Ot=>{Kn(pt[Ot])&&(q[Ot]=pt[Ot])})}_applyBackdropOptions(q,pt){this._backdropAttributes.forEach(Ot=>{Kn(pt[Ot])&&(q[Ot]=pt[Ot])})}_getContentRef(q,pt,Ot,Yt){return pt?pt instanceof A.Rgc?this._createFromTemplateRef(pt,Ot):Cn(pt)?this._createFromString(pt):this._createFromComponent(q,pt,Ot,Yt):new nl([])}_createFromTemplateRef(q,pt){const Yt=q.createEmbeddedView({$implicit:pt,close(ge){pt.close(ge)},dismiss(ge){pt.dismiss(ge)}});return this._applicationRef.attachView(Yt),new nl([Yt.rootNodes],Yt)}_createFromString(q){const pt=this._document.createTextNode(`${q}`);return new nl([[pt]])}_createFromComponent(q,pt,Ot,Yt){const ge=A.zs3.create({providers:[{provide:Ku,useValue:Ot}],parent:q}),ke=(0,A.LMc)(pt,{environmentInjector:this._applicationRef.injector,elementInjector:ge}),Ie=ke.location.nativeElement;return Yt.scrollable&&Ie.classList.add("component-host-scrollable"),this._applicationRef.attachView(ke.hostView),new nl([[Ie]],ke.hostView,ke)}_setAriaHidden(q){const pt=q.parentElement;pt&&q!==this._document.body&&(Array.from(pt.children).forEach(Ot=>{Ot!==q&&"SCRIPT"!==Ot.nodeName&&(this._ariaHiddenValues.set(Ot,Ot.getAttribute("aria-hidden")),Ot.setAttribute("aria-hidden","true"))}),this._setAriaHidden(pt))}_revertAriaHidden(){this._ariaHiddenValues.forEach((q,pt)=>{q?pt.setAttribute("aria-hidden",q):pt.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(q){const pt=()=>{const Ot=this._modalRefs.indexOf(q);Ot>-1&&(this._modalRefs.splice(Ot,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(q),this._activeInstances.emit(this._modalRefs),q.result.then(pt,pt)}_registerWindowCmpt(q){this._windowCmpts.push(q),this._activeWindowCmptHasChanged.next(),q.onDestroy(()=>{const pt=this._windowCmpts.indexOf(q);pt>-1&&(this._windowCmpts.splice(pt,1),this._activeWindowCmptHasChanged.next())})}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(A.z2F),A.LFG(A.zs3),A.LFG(j.K0),A.LFG(Ql),A.LFG(A.FYo),A.LFG(A.R0b))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Ju=(()=>{class st{constructor(q){this._ngbConfig=q,this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),kf=(()=>{class st{constructor(q,pt,Ot){this._injector=q,this._modalStack=pt,this._config=Ot}open(q,pt={}){const Ot={...this._config,animation:this._config.animation,...pt};return this._modalStack.open(this._injector,q,Ot)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(q){this._modalStack.dismissAll(q)}hasOpenModals(){return this._modalStack.hasOpenModals()}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(A.zs3),A.LFG(qu),A.LFG(Ju))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Qu=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({}),st})();const ec=({classList:st})=>(st.remove("show"),()=>st.remove("active")),Xh=(st,yt)=>{yt&&go(st),st.classList.add("show")};let Zh=(()=>{class st{constructor(q){this.elRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.SBq))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbNavPane",""]],hostAttrs:[1,"tab-pane"],hostVars:5,hostBindings:function(q,pt){2&q&&(A.Ikx("id",pt.item.panelDomId),A.uIk("role",pt.role?pt.role:pt.nav.roles?"tabpanel":void 0)("aria-labelledby",pt.item.domId),A.ekj("fade",pt.nav.animation))},inputs:{item:"item",nav:"nav",role:"role"},standalone:!0}),st})(),dh=(()=>{class st{constructor(q,pt){this._cd=q,this._ngZone=pt,this._activePane=null}isPanelTransitioning(q){return this._activePane?.item===q}ngAfterViewInit(){this._updateActivePane(),this.nav.navItemChange$.pipe((0,L.R)(this.nav.destroy$),(0,s.O)(this._activePane?.item||null),(0,a.x)(),function P(st){return(0,_.h)((yt,q)=>st<=q)}(1)).subscribe(q=>{const pt={animation:this.nav.animation,runningTransition:"stop"};this._cd.detectChanges(),this._activePane?io(this._ngZone,this._activePane.elRef.nativeElement,ec,pt).subscribe(()=>{const Ot=this._activePane?.item;this._activePane=this._getPaneForItem(q),this._cd.markForCheck(),this._activePane&&(this._activePane.elRef.nativeElement.classList.add("active"),io(this._ngZone,this._activePane.elRef.nativeElement,Xh,pt).subscribe(()=>{q&&(q.shown.emit(),this.nav.shown.emit(q.id))})),Ot&&(Ot.hidden.emit(),this.nav.hidden.emit(Ot.id))}):this._updateActivePane()})}_updateActivePane(){this._activePane=this._getActivePane(),this._activePane?.elRef.nativeElement.classList.add("show"),this._activePane?.elRef.nativeElement.classList.add("active")}_getPaneForItem(q){return this._panes&&this._panes.find(pt=>pt.item===q)||null}_getActivePane(){return this._panes&&this._panes.find(q=>q.item.active)||null}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.sBO),A.Y36(A.R0b))},st.\u0275cmp=A.Xpm({type:st,selectors:[["","ngbNavOutlet",""]],viewQuery:function(q,pt){if(1&q&&A.Gf(Zh,5),2&q){let Ot;A.iGM(Ot=A.CRH())&&(pt._panes=Ot)}},hostVars:2,hostBindings:function(q,pt){2&q&&A.ekj("tab-content",!0)},inputs:{paneRole:"paneRole",nav:["ngbNavOutlet","nav"]},standalone:!0,features:[A.jDz],attrs:Sa,decls:1,vars:1,consts:[["ngFor","",3,"ngForOf"],["ngbNavPane","",3,"item","nav","role",4,"ngIf"],["ngbNavPane","",3,"item","nav","role"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(q,pt){1&q&&A.YNc(0,qt,1,1,"ng-template",0),2&q&&A.Q6J("ngForOf",pt.nav.items)},dependencies:[Zh,j.ax,j.O5,j.tP],encapsulation:2,changeDetection:0}),st})(),Wd=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[dh]}),st})(),ic=(()=>{class st{constructor(){this.disabled=!1,this.boundaryLinks=!1,this.directionLinks=!0,this.ellipses=!0,this.maxSize=0,this.pageSize=10,this.rotate=!1}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),ep=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationEllipsis",""]],standalone:!0}),st})(),Yd=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationFirst",""]],standalone:!0}),st})(),$h=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationLast",""]],standalone:!0}),st})(),Xd=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationNext",""]],standalone:!0}),st})(),Bc=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationNumber",""]],standalone:!0}),st})(),nc=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationPrevious",""]],standalone:!0}),st})(),zc=(()=>{class st{constructor(q){this.templateRef=q}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.Rgc))},st.\u0275dir=A.lG2({type:st,selectors:[["ng-template","ngbPaginationPages",""]],standalone:!0}),st})(),Na=(()=>{class st{constructor(q){this.pageCount=0,this.pages=[],this.page=1,this.pageChange=new A.vpe(!0),this.disabled=q.disabled,this.boundaryLinks=q.boundaryLinks,this.directionLinks=q.directionLinks,this.ellipses=q.ellipses,this.maxSize=q.maxSize,this.pageSize=q.pageSize,this.rotate=q.rotate,this.size=q.size}hasPrevious(){return this.page>1}hasNext(){return this.page0&&(q>2?this.pages.unshift(-1):2===q&&this.pages.unshift(2),this.pages.unshift(1)),pt0&&this.pageCount>this.maxSize){let pt=0,Ot=this.pageCount;[pt,Ot]=this.rotate?this._applyRotation():this._applyPagination(),this.pages=this.pages.slice(pt,Ot),this._applyEllipses(pt,Ot)}}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(ic))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-pagination"]],contentQueries:function(q,pt,Ot){if(1&q&&(A.Suo(Ot,ep,5),A.Suo(Ot,Yd,5),A.Suo(Ot,$h,5),A.Suo(Ot,Xd,5),A.Suo(Ot,Bc,5),A.Suo(Ot,nc,5),A.Suo(Ot,zc,5)),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.tplEllipsis=Yt.first),A.iGM(Yt=A.CRH())&&(pt.tplFirst=Yt.first),A.iGM(Yt=A.CRH())&&(pt.tplLast=Yt.first),A.iGM(Yt=A.CRH())&&(pt.tplNext=Yt.first),A.iGM(Yt=A.CRH())&&(pt.tplNumber=Yt.first),A.iGM(Yt=A.CRH())&&(pt.tplPrevious=Yt.first),A.iGM(Yt=A.CRH())&&(pt.tplPages=Yt.first)}},hostAttrs:["role","navigation"],inputs:{disabled:"disabled",boundaryLinks:"boundaryLinks",directionLinks:"directionLinks",ellipses:"ellipses",rotate:"rotate",collectionSize:"collectionSize",maxSize:"maxSize",page:"page",pageSize:"pageSize",size:"size"},outputs:{pageChange:"pageChange"},standalone:!0,features:[A.TTD,A.jDz],decls:20,vars:12,consts:function(){let yt,q,pt,Ot,Yt,ge,ke,Ie;return yt=$localize`:@@ngb.pagination.first:««`,q=$localize`:@@ngb.pagination.previous:«`,pt=$localize`:@@ngb.pagination.next:»`,Ot=$localize`:@@ngb.pagination.last:»»`,Yt=$localize`:@@ngb.pagination.first-aria:First`,ge=$localize`:@@ngb.pagination.previous-aria:Previous`,ke=$localize`:@@ngb.pagination.next-aria:Next`,Ie=$localize`:@@ngb.pagination.last-aria:Last`,[["first",""],["previous",""],["next",""],["last",""],["ellipsis",""],["defaultNumber",""],["defaultPages",""],["class","page-item",3,"disabled",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true"],yt,q,pt,Ot,["class","visually-hidden",4,"ngIf"],[1,"visually-hidden"],["class","page-item",3,"active","disabled",4,"ngFor","ngForOf"],[1,"page-item"],["class","page-link","tabindex","-1","aria-disabled","true",4,"ngIf"],["class","page-link","href","",3,"click",4,"ngIf"],["tabindex","-1","aria-disabled","true",1,"page-link"],["href","",1,"page-link",3,"click"],["aria-label",Yt,"href","",1,"page-link",3,"click"],["aria-label",ge,"href","",1,"page-link",3,"click"],["aria-label",ke,"href","",1,"page-link",3,"click"],["aria-label",Ie,"href","",1,"page-link",3,"click"]]},template:function(q,pt){if(1&q&&(A.YNc(0,Xt,2,0,"ng-template",null,0,A.W1O),A.YNc(2,Ut,2,0,"ng-template",null,1,A.W1O),A.YNc(4,ce,2,0,"ng-template",null,2,A.W1O),A.YNc(6,$e,2,0,"ng-template",null,3,A.W1O),A.YNc(8,vi,1,0,"ng-template",null,4,A.W1O),A.YNc(10,ri,2,2,"ng-template",null,5,A.W1O),A.YNc(12,ka,1,1,"ng-template",null,6,A.W1O),A.TgZ(14,"ul"),A.YNc(15,Jc,3,9,"li",7),A.YNc(16,zo,3,8,"li",7),A.YNc(17,Ea,0,0,"ng-template",8),A.YNc(18,Vn,3,9,"li",7),A.YNc(19,Wo,3,9,"li",7),A.qZA()),2&q){const Ot=A.MAs(13);A.xp6(14),A.Tol("pagination"+(pt.size?" pagination-"+pt.size:"")),A.xp6(1),A.Q6J("ngIf",pt.boundaryLinks),A.xp6(1),A.Q6J("ngIf",pt.directionLinks),A.xp6(1),A.Q6J("ngTemplateOutlet",(null==pt.tplPages?null:pt.tplPages.templateRef)||Ot)("ngTemplateOutletContext",A.kEZ(8,qs,pt.page,pt.pages,pt.disabled)),A.xp6(1),A.Q6J("ngIf",pt.directionLinks),A.xp6(1),A.Q6J("ngIf",pt.boundaryLinks)}},dependencies:[j.O5,j.ax,j.tP],encapsulation:2,changeDetection:0}),st})(),Cr=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Na]}),st})();class Df{constructor(yt,q){this.open=yt,this.close=q,q||(this.close=yt)}isManual(){return"manual"===this.open||"manual"===this.close}}const Ef={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]},Kh=st=>st>0?(0,h.g)(st):yt=>yt;let uh=(()=>{class st{constructor(q){this._ngbConfig=q,this.autoClose=!0,this.placement="auto",this.popperOptions=pt=>pt,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),qh=0,np=(()=>{class st{isTitleTemplate(){return this.title instanceof A.Rgc}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip"],hostVars:5,hostBindings:function(q,pt){2&q&&(A.Ikx("id",pt.id),A.Tol("popover"+(pt.popoverClass?" "+pt.popoverClass:"")),A.ekj("fade",pt.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[A.jDz],ngContentSelectors:Ds,decls:4,vars:1,consts:[["data-popper-arrow","",1,"popover-arrow"],["class","popover-header",4,"ngIf"],[1,"popover-body"],[1,"popover-header"],["simpleTitle",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(q,pt){1&q&&(A.F$t(),A._UZ(0,"div",0),A.YNc(1,Qs,4,2,"h3",1),A.TgZ(2,"div",2),A.Hsn(3),A.qZA()),2&q&&(A.xp6(1),A.Q6J("ngIf",pt.title))},dependencies:[j.tP,j.O5],encapsulation:2,changeDetection:0}),st})(),Zd=(()=>{class st{constructor(q,pt,Ot,Yt,ge,ke,Ie,We,Ke,wi){this._elementRef=q,this._renderer=Ot,this._ngZone=Ie,this._document=We,this._changeDetector=Ke,this.shown=new A.vpe,this.hidden=new A.vpe,this._ngbPopoverWindowId="ngb-popover-"+qh++,this._windowRef=null,this.animation=ke.animation,this.autoClose=ke.autoClose,this.placement=ke.placement,this.popperOptions=ke.popperOptions,this.triggers=ke.triggers,this.container=ke.container,this.disablePopover=ke.disablePopover,this.popoverClass=ke.popoverClass,this.openDelay=ke.openDelay,this.closeDelay=ke.closeDelay,this._positioning=kt(pt),this._popupService=new $u(np,Yt,ge,Ot,this._ngZone,wi)}_isDisabled(){return!(!this.disablePopover&&(this.ngbPopover||this.popoverTitle))}open(q){if(!this._windowRef&&!this._isDisabled()){const{windowRef:pt,transition$:Ot}=this._popupService.open(this.ngbPopover,q,this.animation);this._windowRef=pt,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",q),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._renderer.setAttribute(this._getPositionTargetElement(),"aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:Yt=>this.popperOptions(O([0,8])(Yt))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),Rc(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ot.subscribe(()=>this.shown.emit())}}close(q=this.animation){this._windowRef&&(this._renderer.removeAttribute(this._getPositionTargetElement(),"aria-describedby"),this._popupService.close(q).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function ip(st,yt,q,pt,Ot,Yt,ge=0,ke=0){const Ie=function wm(st,yt=Ef){const q=(st||"").trim();if(0===q.length)return[];const pt=q.split(/\s+/).map(Yt=>Yt.split(":")).map(Yt=>{let ge=yt[Yt[0]]||Yt;return new Df(ge[0],ge[1])}),Ot=pt.filter(Yt=>Yt.isManual());if(Ot.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===Ot.length&&pt.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return pt}(q);if(1===Ie.length&&Ie[0].isManual())return()=>{};const We=function Af(st,yt,q,pt){return new t.y(Ot=>{const Yt=[],ge=()=>Ot.next(!0),ke=()=>Ot.next(!1),Ie=()=>Ot.next(!pt());return q.forEach(We=>{We.open===We.close?Yt.push(st.listen(yt,We.open,Ie)):Yt.push(st.listen(yt,We.open,ge),st.listen(yt,We.close,ke))}),()=>{Yt.forEach(We=>We())}})}(st,yt,Ie,pt).pipe(function Of(st,yt,q){return pt=>{let Ot=null;const Yt=pt.pipe((0,m.U)(Ie=>({open:Ie})),(0,_.h)(Ie=>{const We=q();return We===Ie.open||Ot&&Ot.open!==We?(Ot&&Ot.open!==Ie.open&&(Ot=null),!1):(Ot=Ie,!0)}),(0,X.B)()),ge=Yt.pipe((0,_.h)(Ie=>Ie.open),Kh(st)),ke=Yt.pipe((0,_.h)(Ie=>!Ie.open),Kh(yt));return(0,w.T)(ge,ke).pipe((0,_.h)(Ie=>Ie===Ot&&(Ot=null,Ie.open!==q())),(0,m.U)(Ie=>Ie.open))}}(ge,ke,pt)).subscribe(Ke=>Ke?Ot():Yt());return()=>We.unsubscribe()}(this._renderer,this._elementRef.nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:q,popoverTitle:pt,disablePopover:Ot,popoverClass:Yt}){Yt&&this.isOpen()&&(this._windowRef.instance.popoverClass=Yt.currentValue),(q||pt||Ot)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_getPositionTargetElement(){return(Cn(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._elementRef.nativeElement}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(A.SBq),A.Y36(le),A.Y36(A.Qsj),A.Y36(A.zs3),A.Y36(A.s_b),A.Y36(uh),A.Y36(A.R0b),A.Y36(j.K0),A.Y36(A.sBO),A.Y36(A.z2F))},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[A.TTD]}),st})(),ol=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({}),st})(),Al=(()=>{class st{constructor(){this.max=100,this.animated=!1,this.ariaLabel="progress bar",this.striped=!1,this.showValue=!1}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Jh=(()=>{class st{constructor(q){this.value=0,this.max=q.max,this.animated=q.animated,this.ariaLabel=q.ariaLabel,this.striped=q.striped,this.textType=q.textType,this.type=q.type,this.showValue=q.showValue,this.height=q.height}set max(q){this._max=!Xi(q)||q<=0?100:q}get max(){return this._max}getValue(){return gn(this.value,this.max)}getPercentValue(){return 100*this.getValue()/this.max}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(Al))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-progressbar"]],hostAttrs:[1,"progress"],hostVars:2,hostBindings:function(q,pt){2&q&&A.Udp("height",pt.height)},inputs:{max:"max",animated:"animated",ariaLabel:"ariaLabel",striped:"striped",showValue:"showValue",textType:"textType",type:"type",value:"value",height:"height"},standalone:!0,features:[A.jDz],ngContentSelectors:Ds,decls:3,vars:12,consts:function(){let yt;return yt=$localize`:@@ngb.progressbar.value:${"\ufffd0\ufffd"}:INTERPOLATION:`,[["role","progressbar","aria-valuemin","0"],[4,"ngIf"],yt]},template:function(q,pt){1&q&&(A.F$t(),A.TgZ(0,"div",0),A.YNc(1,yl,3,3,"span",1),A.Hsn(2),A.qZA()),2&q&&(A.DjV("progress-bar",pt.type?" bg-"+pt.type:"","",pt.textType?" text-"+pt.textType:"","\n ",pt.animated?" progress-bar-animated":"","",pt.striped?" progress-bar-striped":"",""),A.Udp("width",pt.getPercentValue(),"%"),A.uIk("aria-valuenow",pt.getValue())("aria-valuemax",pt.max)("aria-label",pt.ariaLabel),A.xp6(1),A.Q6J("ngIf",pt.showValue))},dependencies:[j.O5,j.Zx],encapsulation:2,changeDetection:0}),st})(),op=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Jh]}),st})(),Qh=(()=>{class st{constructor(){this.max=10,this.readonly=!1,this.resettable=!1,this.tabindex=0}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),_s=(()=>{class st{constructor(q,pt){this._changeDetectorRef=pt,this.contexts=[],this.disabled=!1,this.hover=new A.vpe,this.leave=new A.vpe,this.rateChange=new A.vpe(!0),this.onChange=Ot=>{},this.onTouched=()=>{},this.max=q.max,this.readonly=q.readonly,this.tabindex=q.tabindex}ariaValueText(){return`${this.nextRate} out of ${this.max}`}isInteractive(){return!this.readonly&&!this.disabled}enter(q){this.isInteractive()&&this._updateState(q),this.hover.emit(q)}handleBlur(){this.onTouched()}handleClick(q){this.isInteractive()&&this.update(this.resettable&&this.rate===q?0:q)}handleKeyDown(q){switch(q.which){case Qe.ArrowDown:case Qe.ArrowLeft:this.update(this.rate-1);break;case Qe.ArrowUp:case Qe.ArrowRight:this.update(this.rate+1);break;case Qe.Home:this.update(0);break;case Qe.End:this.update(this.max);break;default:return}q.preventDefault()}ngOnChanges(q){q.rate&&this.update(this.rate),q.max&&this._updateMax()}ngOnInit(){this._setupContexts(),this._updateState(this.rate)}registerOnChange(q){this.onChange=q}registerOnTouched(q){this.onTouched=q}reset(){this.leave.emit(this.nextRate),this._updateState(this.rate)}setDisabledState(q){this.disabled=q}update(q,pt=!0){const Ot=gn(q,this.max,0);this.isInteractive()&&this.rate!==Ot&&(this.rate=Ot,this.rateChange.emit(this.rate)),pt&&(this.onChange(this.rate),this.onTouched()),this._updateState(this.rate)}writeValue(q){this.update(q,!1),this._changeDetectorRef.markForCheck()}_updateState(q){this.nextRate=q,this.contexts.forEach((pt,Ot)=>pt.fill=Math.round(100*gn(q-Ot,1,0)))}_updateMax(){this.max>0&&(this._setupContexts(),this.update(this.rate))}_setupContexts(){this.contexts=Array.from({length:this.max},(q,pt)=>({fill:0,index:pt}))}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(Qh),A.Y36(A.sBO))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-rating"]],contentQueries:function(q,pt,Ot){if(1&q&&A.Suo(Ot,A.Rgc,5),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.starTemplateFromContent=Yt.first)}},hostAttrs:["role","slider","aria-valuemin","0",1,"d-inline-flex"],hostVars:5,hostBindings:function(q,pt){1&q&&A.NdJ("blur",function(){return pt.handleBlur()})("keydown",function(Yt){return pt.handleKeyDown(Yt)})("mouseleave",function(){return pt.reset()}),2&q&&(A.Ikx("tabindex",pt.disabled?-1:pt.tabindex),A.uIk("aria-valuemax",pt.max)("aria-valuenow",pt.nextRate)("aria-valuetext",pt.ariaValueText())("aria-disabled",!!pt.readonly||null))},inputs:{max:"max",rate:"rate",readonly:"readonly",resettable:"resettable",starTemplate:"starTemplate",tabindex:"tabindex"},outputs:{hover:"hover",leave:"leave",rateChange:"rateChange"},standalone:!0,features:[A._Bn([{provide:c.JU,useExisting:(0,A.Gpc)(()=>st),multi:!0}]),A.TTD,A.jDz],decls:3,vars:1,consts:[["t",""],["ngFor","",3,"ngForOf"],[1,"visually-hidden"],[3,"mouseenter","click"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(q,pt){1&q&&(A.YNc(0,$a,1,1,"ng-template",null,0,A.W1O),A.YNc(2,ta,4,5,"ng-template",1)),2&q&&(A.xp6(2),A.Q6J("ngForOf",pt.contexts))},dependencies:[j.ax,j.tP],encapsulation:2,changeDetection:0}),st})(),$d=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[_s]}),st})();class da{constructor(yt,q,pt){this.hour=ii(yt),this.minute=ii(q),this.second=ii(pt)}changeHour(yt=1){this.updateHour((isNaN(this.hour)?0:this.hour)+yt)}updateHour(yt){this.hour=Xi(yt)?(yt<0?24+yt:yt)%24:NaN}changeMinute(yt=1){this.updateMinute((isNaN(this.minute)?0:this.minute)+yt)}updateMinute(yt){Xi(yt)?(this.minute=yt%60<0?60+yt%60:yt%60,this.changeHour(Math.floor(yt/60))):this.minute=NaN}changeSecond(yt=1){this.updateSecond((isNaN(this.second)?0:this.second)+yt)}updateSecond(yt){Xi(yt)?(this.second=yt<0?60+yt%60:yt%60,this.changeMinute(Math.floor(yt/60))):this.second=NaN}isValid(yt=!0){return Xi(this.hour)&&Xi(this.minute)&&(!yt||Xi(this.second))}toString(){return`${this.hour||0}:${this.minute||0}:${this.second||0}`}}let Ol=(()=>{class st{constructor(){this.meridian=!1,this.spinners=!0,this.seconds=!1,this.hourStep=1,this.minuteStep=1,this.secondStep=1,this.disabled=!1,this.readonlyInputs=!1,this.size="medium"}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),Kd=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:function(){return function rp(){return new Pf}()},providedIn:"root"}),st})(),Pf=(()=>{class st extends Kd{fromModel(q){return q&&Fi(q.hour)&&Fi(q.minute)?{hour:q.hour,minute:q.minute,second:Fi(q.second)?q.second:null}:null}toModel(q){return q&&Fi(q.hour)&&Fi(q.minute)?{hour:q.hour,minute:q.minute,second:Fi(q.second)?q.second:null}:null}}return st.\u0275fac=function(){let yt;return function(pt){return(yt||(yt=A.n5z(st)))(pt||st)}}(),st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac}),st})(),td=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275prov=A.Yz7({token:st,factory:function(q){let pt=null;return pt=q?new q:function Fa(st){return new sp(st)}(A.LFG(A.soG)),pt},providedIn:"root"}),st})(),sp=(()=>{class st extends td{constructor(q){super(),this._periods=(0,j.ol)(q,j.x.Standalone,j.Tn.Narrow)}getMorningPeriod(){return this._periods[0]}getAfternoonPeriod(){return this._periods[1]}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(A.soG))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac}),st})();const ap=/[^0-9]/g;let If=(()=>{class st{constructor(q,pt,Ot,Yt){this._config=q,this._ngbTimeAdapter=pt,this._cd=Ot,this.i18n=Yt,this.onChange=ge=>{},this.onTouched=()=>{},this.meridian=q.meridian,this.spinners=q.spinners,this.seconds=q.seconds,this.hourStep=q.hourStep,this.minuteStep=q.minuteStep,this.secondStep=q.secondStep,this.disabled=q.disabled,this.readonlyInputs=q.readonlyInputs,this.size=q.size}set hourStep(q){this._hourStep=Fi(q)?q:this._config.hourStep}get hourStep(){return this._hourStep}set minuteStep(q){this._minuteStep=Fi(q)?q:this._config.minuteStep}get minuteStep(){return this._minuteStep}set secondStep(q){this._secondStep=Fi(q)?q:this._config.secondStep}get secondStep(){return this._secondStep}writeValue(q){const pt=this._ngbTimeAdapter.fromModel(q);this.model=pt?new da(pt.hour,pt.minute,pt.second):new da,!this.seconds&&(!pt||!Xi(pt.second))&&(this.model.second=0),this._cd.markForCheck()}registerOnChange(q){this.onChange=q}registerOnTouched(q){this.onTouched=q}setDisabledState(q){this.disabled=q}changeHour(q){this.model?.changeHour(q),this.propagateModelChange()}changeMinute(q){this.model?.changeMinute(q),this.propagateModelChange()}changeSecond(q){this.model?.changeSecond(q),this.propagateModelChange()}updateHour(q){const pt=!!this.model&&this.model.hour>=12,Ot=ii(q);this.model?.updateHour(this.meridian&&(pt&&Ot<12||!pt&&12===Ot)?Ot+12:Ot),this.propagateModelChange()}updateMinute(q){this.model?.updateMinute(ii(q)),this.propagateModelChange()}updateSecond(q){this.model?.updateSecond(ii(q)),this.propagateModelChange()}toggleMeridian(){this.meridian&&this.changeHour(12)}formatInput(q){q.value=q.value.replace(ap,"")}formatHour(q){return Xi(q)?qn(this.meridian?q%12==0?12:q%12:q%24):qn(NaN)}formatMinSec(q){return qn(Xi(q)?q:NaN)}handleBlur(){this.onTouched()}get isSmallSize(){return"small"===this.size}get isLargeSize(){return"large"===this.size}ngOnChanges(q){q.seconds&&!this.seconds&&this.model&&!Xi(this.model.second)&&(this.model.second=0,this.propagateModelChange(!1))}propagateModelChange(q=!0){q&&this.onTouched(),this.model?.isValid(this.seconds)?this.onChange(this._ngbTimeAdapter.toModel({hour:this.model.hour,minute:this.model.minute,second:this.model.second})):this.onChange(this._ngbTimeAdapter.toModel(null))}}return st.\u0275fac=function(q){return new(q||st)(A.Y36(Ol),A.Y36(Kd),A.Y36(A.sBO),A.Y36(td))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-timepicker"]],inputs:{meridian:"meridian",spinners:"spinners",seconds:"seconds",hourStep:"hourStep",minuteStep:"minuteStep",secondStep:"secondStep",readonlyInputs:"readonlyInputs",size:"size"},exportAs:["ngbTimepicker"],standalone:!0,features:[A._Bn([{provide:c.JU,useExisting:(0,A.Gpc)(()=>st),multi:!0}]),A.TTD,A.jDz],decls:16,vars:25,consts:function(){let yt,q,pt,Ot,Yt,ge,ke,Ie,We,Ke,wi,gi,Ai,yn;return yt=$localize`:@@ngb.timepicker.HH:HH`,q=$localize`:@@ngb.timepicker.hours:Hours`,pt=$localize`:@@ngb.timepicker.MM:MM`,Ot=$localize`:@@ngb.timepicker.minutes:Minutes`,Yt=$localize`:@@ngb.timepicker.increment-hours:Increment hours`,ge=$localize`:@@ngb.timepicker.decrement-hours:Decrement hours`,ke=$localize`:@@ngb.timepicker.increment-minutes:Increment minutes`,Ie=$localize`:@@ngb.timepicker.decrement-minutes:Decrement minutes`,We=$localize`:@@ngb.timepicker.SS:SS`,Ke=$localize`:@@ngb.timepicker.seconds:Seconds`,wi=$localize`:@@ngb.timepicker.increment-seconds:Increment seconds`,gi=$localize`:@@ngb.timepicker.decrement-seconds:Decrement seconds`,Ai=$localize`:@@ngb.timepicker.PM:${"\ufffd0\ufffd"}:INTERPOLATION:`,yn=$localize`:@@ngb.timepicker.AM:${"\ufffd0\ufffd"}:INTERPOLATION:`,[[3,"disabled"],[1,"ngb-tp"],[1,"ngb-tp-input-container","ngb-tp-hour"],["tabindex","-1","type","button","class","btn btn-link",3,"btn-sm","btn-lg","disabled","click",4,"ngIf"],["type","text","maxlength","2","inputmode","numeric","placeholder",yt,"aria-label",q,1,"ngb-tp-input","form-control",3,"value","readOnly","disabled","change","blur","input","keydown.ArrowUp","keydown.ArrowDown"],[1,"ngb-tp-spacer"],[1,"ngb-tp-input-container","ngb-tp-minute"],["type","text","maxlength","2","inputmode","numeric","placeholder",pt,"aria-label",Ot,1,"ngb-tp-input","form-control",3,"value","readOnly","disabled","change","blur","input","keydown.ArrowUp","keydown.ArrowDown"],["class","ngb-tp-spacer",4,"ngIf"],["class","ngb-tp-input-container ngb-tp-second",4,"ngIf"],["class","ngb-tp-meridian",4,"ngIf"],["tabindex","-1","type","button",1,"btn","btn-link",3,"disabled","click"],[1,"chevron","ngb-tp-chevron"],[1,"visually-hidden"],Yt,[1,"chevron","ngb-tp-chevron","bottom"],ge,ke,Ie,[1,"ngb-tp-input-container","ngb-tp-second"],["type","text","maxlength","2","inputmode","numeric","placeholder",We,"aria-label",Ke,1,"ngb-tp-input","form-control",3,"value","readOnly","disabled","change","blur","input","keydown.ArrowUp","keydown.ArrowDown"],wi,gi,[1,"ngb-tp-meridian"],["type","button",1,"btn","btn-outline-primary",3,"disabled","click"],[4,"ngIf","ngIfElse"],["am",""],Ai,yn]},template:function(q,pt){1&q&&(A.TgZ(0,"fieldset",0)(1,"div",1)(2,"div",2),A.YNc(3,Ka,4,7,"button",3),A.TgZ(4,"input",4),A.NdJ("change",function(Yt){return pt.updateHour(Yt.target.value)})("blur",function(){return pt.handleBlur()})("input",function(Yt){return pt.formatInput(Yt.target)})("keydown.ArrowUp",function(Yt){return pt.changeHour(pt.hourStep),Yt.preventDefault()})("keydown.ArrowDown",function(Yt){return pt.changeHour(-pt.hourStep),Yt.preventDefault()}),A.qZA(),A.YNc(5,ts,4,7,"button",3),A.qZA(),A.TgZ(6,"div",5),A._uU(7,":"),A.qZA(),A.TgZ(8,"div",6),A.YNc(9,Dr,4,7,"button",3),A.TgZ(10,"input",7),A.NdJ("change",function(Yt){return pt.updateMinute(Yt.target.value)})("blur",function(){return pt.handleBlur()})("input",function(Yt){return pt.formatInput(Yt.target)})("keydown.ArrowUp",function(Yt){return pt.changeMinute(pt.minuteStep),Yt.preventDefault()})("keydown.ArrowDown",function(Yt){return pt.changeMinute(-pt.minuteStep),Yt.preventDefault()}),A.qZA(),A.YNc(11,Gl,4,7,"button",3),A.qZA(),A.YNc(12,Er,2,0,"div",8),A.YNc(13,Vl,4,9,"div",9),A.YNc(14,fo,1,0,"div",8),A.YNc(15,qa,5,9,"div",10),A.qZA()()),2&q&&(A.ekj("disabled",pt.disabled),A.Q6J("disabled",pt.disabled),A.xp6(3),A.Q6J("ngIf",pt.spinners),A.xp6(1),A.ekj("form-control-sm",pt.isSmallSize)("form-control-lg",pt.isLargeSize),A.Q6J("value",pt.formatHour(null==pt.model?null:pt.model.hour))("readOnly",pt.readonlyInputs)("disabled",pt.disabled),A.xp6(1),A.Q6J("ngIf",pt.spinners),A.xp6(4),A.Q6J("ngIf",pt.spinners),A.xp6(1),A.ekj("form-control-sm",pt.isSmallSize)("form-control-lg",pt.isLargeSize),A.Q6J("value",pt.formatMinSec(null==pt.model?null:pt.model.minute))("readOnly",pt.readonlyInputs)("disabled",pt.disabled),A.xp6(1),A.Q6J("ngIf",pt.spinners),A.xp6(1),A.Q6J("ngIf",pt.seconds),A.xp6(1),A.Q6J("ngIf",pt.seconds),A.xp6(1),A.Q6J("ngIf",pt.meridian),A.xp6(1),A.Q6J("ngIf",pt.meridian))},dependencies:[j.O5],styles:['ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:"";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\n'],encapsulation:2}),st})(),ed=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[If]}),st})();const lp=(st,yt)=>{const{classList:q}=st;if(yt)return q.add("fade"),go(st),q.add("show","showing"),()=>{q.remove("showing")};q.add("show")},Lf=({classList:st})=>(st.add("showing"),()=>{st.remove("show","showing")});let qd=(()=>{class st{constructor(q){this._ngbConfig=q,this.autohide=!0,this.delay=5e3,this.ariaLive="polite"}get animation(){return void 0===this._animation?this._ngbConfig.animation:this._animation}set animation(q){this._animation=q}}return st.\u0275fac=function(q){return new(q||st)(A.LFG(Or))},st.\u0275prov=A.Yz7({token:st,factory:st.\u0275fac,providedIn:"root"}),st})(),rl=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275dir=A.lG2({type:st,selectors:[["","ngbToastHeader",""]],standalone:!0}),st})(),Hc=(()=>{class st{constructor(q,pt,Ot,Yt){this.ariaLive=q,this._zone=Ot,this._element=Yt,this.contentHeaderTpl=null,this.shown=new A.vpe,this.hidden=new A.vpe,null==this.ariaLive&&(this.ariaLive=pt.ariaLive),this.delay=pt.delay,this.autohide=pt.autohide,this.animation=pt.animation}ngAfterContentInit(){this._zone.onStable.asObservable().pipe((0,l.q)(1)).subscribe(()=>{this._init(),this.show()})}ngOnChanges(q){"autohide"in q&&(this._clearTimeout(),this._init())}hide(){this._clearTimeout();const q=io(this._zone,this._element.nativeElement,Lf,{animation:this.animation,runningTransition:"stop"});return q.subscribe(()=>{this.hidden.emit()}),q}show(){const q=io(this._zone,this._element.nativeElement,lp,{animation:this.animation,runningTransition:"continue"});return q.subscribe(()=>{this.shown.emit()}),q}_init(){this.autohide&&!this._timeoutID&&(this._timeoutID=setTimeout(()=>this.hide(),this.delay))}_clearTimeout(){this._timeoutID&&(clearTimeout(this._timeoutID),this._timeoutID=null)}}return st.\u0275fac=function(q){return new(q||st)(A.$8M("aria-live"),A.Y36(qd),A.Y36(A.R0b),A.Y36(A.SBq))},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-toast"]],contentQueries:function(q,pt,Ot){if(1&q&&A.Suo(Ot,rl,7,A.Rgc),2&q){let Yt;A.iGM(Yt=A.CRH())&&(pt.contentHeaderTpl=Yt.first)}},hostAttrs:["role","alert","aria-atomic","true",1,"toast"],hostVars:3,hostBindings:function(q,pt){2&q&&(A.uIk("aria-live",pt.ariaLive),A.ekj("fade",pt.animation))},inputs:{animation:"animation",delay:"delay",autohide:"autohide",header:"header"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbToast"],standalone:!0,features:[A.TTD,A.jDz],ngContentSelectors:Ds,decls:5,vars:1,consts:function(){let yt;return yt=$localize`:@@ngb.toast.close-aria:Close`,[["headerTpl",""],[3,"ngIf"],[1,"toast-body"],[1,"me-auto"],[1,"toast-header"],[3,"ngTemplateOutlet"],["type","button","aria-label",yt,1,"btn-close",3,"click"]]},template:function(q,pt){1&q&&(A.F$t(),A.YNc(0,Ul,2,1,"ng-template",null,0,A.W1O),A.YNc(2,wc,3,1,"ng-template",1),A.TgZ(3,"div",2),A.Hsn(4),A.qZA()),2&q&&(A.xp6(2),A.Q6J("ngIf",pt.contentHeaderTpl||pt.header))},dependencies:[j.O5,j.tP],styles:["ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\n"],encapsulation:2}),st})(),Gc=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Hc]}),st})(),hp=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({}),st})(),Jd=(()=>{class st{constructor(){this.highlightClass="ngb-highlight",this.accentSensitive=!0}ngOnChanges(q){!this.accentSensitive&&!String.prototype.normalize&&(console.warn("The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser that does not implement the `String.normalize` function. You will have to include a polyfill in your application to use this feature in the current browser."),this.accentSensitive=!0);const pt=Oi(this.result),Ot=Array.isArray(this.term)?this.term:[this.term],Yt=We=>this.accentSensitive?We:_r(We),ge=Ot.map(We=>function ea(st){return st.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}(Yt(Oi(We)))).filter(We=>We),ke=this.accentSensitive?pt:_r(pt),Ie=ge.length?ke.split(new RegExp(`(${ge.join("|")})`,"gmi")):[pt];if(this.accentSensitive)this.parts=Ie;else{let We=0;this.parts=Ie.map(Ke=>pt.substring(We,We+=Ke.length))}}}return st.\u0275fac=function(q){return new(q||st)},st.\u0275cmp=A.Xpm({type:st,selectors:[["ngb-highlight"]],inputs:{highlightClass:"highlightClass",result:"result",term:"term",accentSensitive:"accentSensitive"},standalone:!0,features:[A.TTD,A.jDz],decls:1,vars:1,consts:[["ngFor","",3,"ngForOf"],[3,"class",4,"ngIf","ngIfElse"],["even",""]],template:function(q,pt){1&q&&A.YNc(0,ee,3,2,"ng-template",0),2&q&&A.Q6J("ngForOf",pt.parts)},dependencies:[j.O5,j.ax],styles:[".ngb-highlight{font-weight:700}\n"],encapsulation:2,changeDetection:0}),st})();new A.OlP("live announcer delay",{providedIn:"root",factory:function id(){return 100}});let Qd=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[Jd]}),st})(),oc=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({}),st})();const nd=[Cl,wl,la,Oc,Bd,jd,Qu,Wd,oc,Cr,ol,op,$d,ed,Gc,hp,Qd];let rc=(()=>{class st{}return st.\u0275fac=function(q){return new(q||st)},st.\u0275mod=A.oAB({type:st}),st.\u0275inj=A.cJS({imports:[nd,Cl,wl,la,Oc,Bd,jd,Qu,Wd,oc,Cr,ol,op,$d,ed,Gc,hp,Qd]}),st})()},91835:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{ir:()=>Ue,w9:()=>To,A0:()=>Go});var A=Bt(94650),t=Bt(24006),Rt=Bt(82722),$=Bt(23601),V=Bt(68675),Y=Bt(18505),K=Bt(78372),ot=Bt(39300),it=Bt(54004),et=Bt(66406),nt=Bt(84408);let G,W=1;const N={};function b(Te){return Te in N&&(delete N[Te],!0)}const g={setImmediate(Te){const Ce=W++;return N[Ce]=!0,G||(G=Promise.resolve()),G.then(()=>b(Ce)&&Te()),Ce},clearImmediate(Te){b(Te)}},{setImmediate:y,clearImmediate:C}=g,x={setImmediate(...Te){const{delegate:Ce}=x;return(Ce?.setImmediate||y)(...Te)},clearImmediate(Te){const{delegate:Ce}=x;return(Ce?.clearImmediate||C)(Te)},delegate:void 0};var E=Bt(97565);const L=new class z extends E.v{flush(Ce){this._active=!0;const $t=this._scheduled;this._scheduled=void 0;const{actions:ve}=this;let Re;Ce=Ce||ve.shift();do{if(Re=Ce.execute(Ce.state,Ce.delay))break}while((Ce=ve[0])&&Ce.id===$t&&ve.shift());if(this._active=!1,Re){for(;(Ce=ve[0])&&Ce.id===$t&&ve.shift();)Ce.unsubscribe();throw Re}}}(class w extends nt.o{constructor(Ce,$t){super(Ce,$t),this.scheduler=Ce,this.work=$t}requestAsyncId(Ce,$t,ve=0){return null!==ve&&ve>0?super.requestAsyncId(Ce,$t,ve):(Ce.actions.push(this),Ce._scheduled||(Ce._scheduled=x.setImmediate(Ce.flush.bind(Ce,void 0))))}recycleAsyncId(Ce,$t,ve=0){var Re;if(null!=ve?ve>0:this.delay>0)return super.recycleAsyncId(Ce,$t,ve);const{actions:ti}=Ce;null!=$t&&(null===(Re=ti[ti.length-1])||void 0===Re?void 0:Re.id)!==$t&&(x.clearImmediate($t),Ce._scheduled=void 0)}});var l=Bt(77579),m=Bt(54968),s=Bt(56451),a=Bt(36895);const n=["content"],r=["scroll"],e=["padding"],o=function(Te){return{searchTerm:Te}};function p(Te,Ce){if(1&Te&&(A.TgZ(0,"div",6),A.GkF(1,7),A.qZA()),2&Te){const $t=A.oxw();A.xp6(1),A.Q6J("ngTemplateOutlet",$t.headerTemplate)("ngTemplateOutletContext",A.VKq(2,o,$t.filterValue))}}function h(Te,Ce){if(1&Te&&(A.TgZ(0,"div",8),A.GkF(1,7),A.qZA()),2&Te){const $t=A.oxw();A.xp6(1),A.Q6J("ngTemplateOutlet",$t.footerTemplate)("ngTemplateOutletContext",A.VKq(2,o,$t.filterValue))}}const k=["*"],P=["searchInput"];function X(Te,Ce){if(1&Te){const $t=A.EpF();A.TgZ(0,"span",15),A.NdJ("click",function(){A.CHM($t);const Re=A.oxw().$implicit,ti=A.oxw(2);return A.KtG(ti.unselect(Re))}),A._uU(1,"\xd7"),A.qZA(),A._UZ(2,"span",16)}if(2&Te){const $t=A.oxw().$implicit,ve=A.oxw(2);A.xp6(2),A.Q6J("ngItemLabel",$t.label)("escape",ve.escapeHTML)}}function j(Te,Ce){}const c=function(Te,Ce,$t){return{item:Te,clear:Ce,label:$t}};function d(Te,Ce){if(1&Te&&(A.TgZ(0,"div",12),A.YNc(1,X,3,2,"ng-template",null,13,A.W1O),A.YNc(3,j,0,0,"ng-template",14),A.qZA()),2&Te){const $t=Ce.$implicit,ve=A.MAs(2),Re=A.oxw(2);A.ekj("ng-value-disabled",$t.disabled),A.xp6(3),A.Q6J("ngTemplateOutlet",Re.labelTemplate||ve)("ngTemplateOutletContext",A.kEZ(4,c,$t.value,Re.clearItem,$t.label))}}function I(Te,Ce){if(1&Te&&(A.ynx(0),A.YNc(1,d,4,8,"div",11),A.BQk()),2&Te){const $t=A.oxw();A.xp6(1),A.Q6J("ngForOf",$t.selectedItems)("ngForTrackBy",$t.trackByOption)}}function U(Te,Ce){}const H=function(Te,Ce){return{items:Te,clear:Ce}};function v(Te,Ce){if(1&Te&&A.YNc(0,U,0,0,"ng-template",14),2&Te){const $t=A.oxw();A.Q6J("ngTemplateOutlet",$t.multiLabelTemplate)("ngTemplateOutletContext",A.WLB(2,H,$t.selectedValues,$t.clearItem))}}function R(Te,Ce){1&Te&&A._UZ(0,"div",19)}function B(Te,Ce){}function Q(Te,Ce){if(1&Te&&(A.ynx(0),A.YNc(1,R,1,0,"ng-template",null,17,A.W1O),A.YNc(3,B,0,0,"ng-template",18),A.BQk()),2&Te){const $t=A.MAs(2),ve=A.oxw();A.xp6(3),A.Q6J("ngTemplateOutlet",ve.loadingSpinnerTemplate||$t)}}function J(Te,Ce){if(1&Te&&(A.TgZ(0,"span",20)(1,"span",21),A._uU(2,"\xd7"),A.qZA()()),2&Te){const $t=A.oxw();A.s9C("title",$t.clearAllText)}}function rt(Te,Ce){if(1&Te&&A._UZ(0,"span",27),2&Te){const $t=A.oxw().$implicit,ve=A.oxw(2);A.Q6J("ngItemLabel",$t.label)("escape",ve.escapeHTML)}}function ut(Te,Ce){}const vt=function(Te,Ce,$t,ve){return{item:Te,item$:Ce,index:$t,searchTerm:ve}};function gt(Te,Ce){if(1&Te){const $t=A.EpF();A.TgZ(0,"div",25),A.NdJ("click",function(){const ti=A.CHM($t).$implicit,fi=A.oxw(2);return A.KtG(fi.toggleItem(ti))})("mouseover",function(){const ti=A.CHM($t).$implicit,fi=A.oxw(2);return A.KtG(fi.onItemHover(ti))}),A.YNc(1,rt,1,2,"ng-template",null,26,A.W1O),A.YNc(3,ut,0,0,"ng-template",14),A.qZA()}if(2&Te){const $t=Ce.$implicit,ve=A.MAs(2),Re=A.oxw(2);A.ekj("ng-option-disabled",$t.disabled)("ng-option-selected",$t.selected)("ng-optgroup",$t.children)("ng-option",!$t.children)("ng-option-child",!!$t.parent)("ng-option-marked",$t===Re.itemsList.markedItem),A.uIk("role",$t.children?"group":"option")("aria-selected",$t.selected)("id",null==$t?null:$t.htmlId),A.xp6(3),A.Q6J("ngTemplateOutlet",$t.children?Re.optgroupTemplate||ve:Re.optionTemplate||ve)("ngTemplateOutletContext",A.l5B(17,vt,$t.value,$t,$t.index,Re.searchTerm))}}function Lt(Te,Ce){if(1&Te&&(A.TgZ(0,"span")(1,"span",30),A._uU(2),A.qZA(),A._uU(3),A.qZA()),2&Te){const $t=A.oxw(3);A.xp6(2),A.Oqu($t.addTagText),A.xp6(1),A.hij('"',$t.searchTerm,'"')}}function Ft(Te,Ce){}function At(Te,Ce){if(1&Te){const $t=A.EpF();A.TgZ(0,"div",28),A.NdJ("mouseover",function(){A.CHM($t);const Re=A.oxw(2);return A.KtG(Re.itemsList.unmarkItem())})("click",function(){A.CHM($t);const Re=A.oxw(2);return A.KtG(Re.selectTag())}),A.YNc(1,Lt,4,2,"ng-template",null,29,A.W1O),A.YNc(3,Ft,0,0,"ng-template",14),A.qZA()}if(2&Te){const $t=A.MAs(2),ve=A.oxw(2);A.ekj("ng-option-marked",!ve.itemsList.markedItem),A.xp6(3),A.Q6J("ngTemplateOutlet",ve.tagTemplate||$t)("ngTemplateOutletContext",A.VKq(4,o,ve.searchTerm))}}function Pt(Te,Ce){if(1&Te&&(A.TgZ(0,"div",32),A._uU(1),A.qZA()),2&Te){const $t=A.oxw(3);A.xp6(1),A.Oqu($t.notFoundText)}}function Ht(Te,Ce){}function Ct(Te,Ce){if(1&Te&&(A.ynx(0),A.YNc(1,Pt,2,1,"ng-template",null,31,A.W1O),A.YNc(3,Ht,0,0,"ng-template",14),A.BQk()),2&Te){const $t=A.MAs(2),ve=A.oxw(2);A.xp6(3),A.Q6J("ngTemplateOutlet",ve.notFoundTemplate||$t)("ngTemplateOutletContext",A.VKq(2,o,ve.searchTerm))}}function ht(Te,Ce){if(1&Te&&(A.TgZ(0,"div",32),A._uU(1),A.qZA()),2&Te){const $t=A.oxw(3);A.xp6(1),A.Oqu($t.typeToSearchText)}}function dt(Te,Ce){}function xt(Te,Ce){if(1&Te&&(A.ynx(0),A.YNc(1,ht,2,1,"ng-template",null,33,A.W1O),A.YNc(3,dt,0,0,"ng-template",18),A.BQk()),2&Te){const $t=A.MAs(2),ve=A.oxw(2);A.xp6(3),A.Q6J("ngTemplateOutlet",ve.typeToSearchTemplate||$t)}}function bt(Te,Ce){if(1&Te&&(A.TgZ(0,"div",32),A._uU(1),A.qZA()),2&Te){const $t=A.oxw(3);A.xp6(1),A.Oqu($t.loadingText)}}function Dt(Te,Ce){}function Gt(Te,Ce){if(1&Te&&(A.ynx(0),A.YNc(1,bt,2,1,"ng-template",null,34,A.W1O),A.YNc(3,Dt,0,0,"ng-template",14),A.BQk()),2&Te){const $t=A.MAs(2),ve=A.oxw(2);A.xp6(3),A.Q6J("ngTemplateOutlet",ve.loadingTextTemplate||$t)("ngTemplateOutletContext",A.VKq(2,o,ve.searchTerm))}}function Qt(Te,Ce){if(1&Te){const $t=A.EpF();A.TgZ(0,"ng-dropdown-panel",22),A.NdJ("update",function(Re){A.CHM($t);const ti=A.oxw();return A.KtG(ti.viewPortItems=Re)})("scroll",function(Re){A.CHM($t);const ti=A.oxw();return A.KtG(ti.scroll.emit(Re))})("scrollToEnd",function(Re){A.CHM($t);const ti=A.oxw();return A.KtG(ti.scrollToEnd.emit(Re))})("outsideClick",function(){A.CHM($t);const Re=A.oxw();return A.KtG(Re.close())}),A.ynx(1),A.YNc(2,gt,4,22,"div",23),A.YNc(3,At,4,6,"div",24),A.BQk(),A.YNc(4,Ct,4,4,"ng-container",3),A.YNc(5,xt,4,1,"ng-container",3),A.YNc(6,Gt,4,4,"ng-container",3),A.qZA()}if(2&Te){const $t=A.oxw();A.ekj("ng-select-multiple",$t.multiple),A.Q6J("virtualScroll",$t.virtualScroll)("bufferAmount",$t.bufferAmount)("appendTo",$t.appendTo)("position",$t.dropdownPosition)("headerTemplate",$t.headerTemplate)("footerTemplate",$t.footerTemplate)("filterValue",$t.searchTerm)("items",$t.itemsList.filteredItems)("markedItem",$t.itemsList.markedItem)("ngClass",$t.appendTo?$t.classes:null)("id",$t.dropdownId),A.xp6(2),A.Q6J("ngForOf",$t.viewPortItems)("ngForTrackBy",$t.trackByOption),A.xp6(1),A.Q6J("ngIf",$t.showAddTag),A.xp6(1),A.Q6J("ngIf",$t.showNoItemsFound()),A.xp6(1),A.Q6J("ngIf",$t.showTypeToSearch()),A.xp6(1),A.Q6J("ngIf",$t.loading&&0===$t.itemsList.filteredItems.length)}}const ne=/[&<>"']/g,pe=RegExp(ne.source),se={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ee(Te){return null!=Te}function Me(Te){return"object"==typeof Te&&Ee(Te)}function me(Te){return Te instanceof Function}let qe=(()=>{class Te{constructor($t){this.element=$t,this.escape=!0}ngOnChanges($t){this.element.nativeElement.innerHTML=this.escape?function fe(Te){return Te&&pe.test(Te)?Te.replace(ne,Ce=>se[Ce]):Te}(this.ngItemLabel):this.ngItemLabel}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.SBq))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[A.TTD]}),Te})(),Ue=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-option-tmp",""]]}),Te})(),Ze=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-optgroup-tmp",""]]}),Te})(),Ne=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-label-tmp",""]]}),Te})(),ue=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-multi-label-tmp",""]]}),Te})(),_e=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-header-tmp",""]]}),Te})(),Ve=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-footer-tmp",""]]}),Te})(),ni=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-notfound-tmp",""]]}),Te})(),Ui=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-typetosearch-tmp",""]]}),Te})(),Ji=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-loadingtext-tmp",""]]}),Te})(),pn=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-tag-tmp",""]]}),Te})(),Ei=(()=>{class Te{constructor($t){this.template=$t}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Rgc))},Te.\u0275dir=A.lG2({type:Te,selectors:[["","ng-loadingspinner-tmp",""]]}),Te})();function $n(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const wo={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function hn(Te){return Te.replace(/[^\u0000-\u007E]/g,$t=>wo[$t]||$t)}class fn{constructor(Ce,$t){this._ngSelect=Ce,this._selectionModel=$t,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let Ce=this.selectedItems.length-1;for(;Ce>=0;Ce--){const $t=this.selectedItems[Ce];if(!$t.disabled)return $t}return null}setItems(Ce){this._items=Ce.map(($t,ve)=>this.mapItem($t,ve)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(Ce){if(Ce.selected||this.maxItemsSelected)return;const $t=this._ngSelect.multiple;$t||this.clearSelected(),this._selectionModel.select(Ce,$t,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(Ce)}unselect(Ce){!Ce.selected||(this._selectionModel.unselect(Ce,this._ngSelect.multiple),this._ngSelect.hideSelected&&Ee(Ce.index)&&this._ngSelect.multiple&&this._showSelected(Ce))}findItem(Ce){let $t;return $t=this._ngSelect.compareWith?ve=>this._ngSelect.compareWith(ve.value,Ce):this._ngSelect.bindValue?ve=>!ve.children&&this.resolveNested(ve.value,this._ngSelect.bindValue)===Ce:ve=>ve.value===Ce||!ve.children&&ve.label&&ve.label===this.resolveNested(Ce,this._ngSelect.bindLabel),this._items.find(ve=>$t(ve))}addItem(Ce){const $t=this.mapItem(Ce,this._items.length);return this._items.push($t),this._filteredItems.push($t),$t}clearSelected(Ce=!1){this._selectionModel.clear(Ce),this._items.forEach($t=>{$t.selected=Ce&&$t.selected&&$t.disabled,$t.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(Ce){return Ce=hn(Ce).toLocaleLowerCase(),this.filteredItems.find($t=>hn($t.label).toLocaleLowerCase().substr(0,Ce.length)===Ce)}filter(Ce){if(!Ce)return void this.resetFilteredItems();this._filteredItems=[],Ce=this._ngSelect.searchFn?Ce:hn(Ce).toLocaleLowerCase();const $t=this._ngSelect.searchFn||this._defaultSearchFn,ve=this._ngSelect.hideSelected;for(const Re of Array.from(this._groups.keys())){const ti=[];for(const fi of this._groups.get(Re))ve&&(fi.parent&&fi.parent.selected||fi.selected)||$t(Ce,this._ngSelect.searchFn?fi.value:fi)&&ti.push(fi);if(ti.length>0){const[fi]=ti.slice(-1);if(fi.parent){const Qi=this._items.find(kn=>kn===fi.parent);this._filteredItems.push(Qi)}this._filteredItems.push(...ti)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(Ce=>!Ce.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(Ce){this._markedIndex=this._filteredItems.indexOf(Ce)}markSelectedOrDefault(Ce){if(0===this._filteredItems.length)return;const $t=this._getLastMarkedIndex();this._markedIndex=$t>-1?$t:Ce?this.filteredItems.findIndex(ve=>!ve.disabled):-1}resolveNested(Ce,$t){if(!Me(Ce))return Ce;if(-1===$t.indexOf("."))return Ce[$t];{const ve=$t.split(".");let Re=Ce;for(let ti=0,fi=ve.length;ti-1===this.selectedItems.indexOf($t)))}_showSelected(Ce){if(this._filteredItems.push(Ce),Ce.parent){const $t=Ce.parent;this._filteredItems.find(Re=>Re===$t)||this._filteredItems.push($t)}else if(Ce.children)for(const $t of Ce.children)$t.selected=!1,this._filteredItems.push($t);this._filteredItems=[...this._filteredItems.sort(($t,ve)=>$t.index-ve.index)]}_hideSelected(Ce){this._filteredItems=this._filteredItems.filter($t=>$t!==Ce),Ce.parent?Ce.parent.children.every(ve=>ve.selected)&&(this._filteredItems=this._filteredItems.filter(ve=>ve!==Ce.parent)):Ce.children&&(this._filteredItems=this.filteredItems.filter($t=>$t.parent!==Ce))}_defaultSearchFn(Ce,$t){return hn($t.label).toLocaleLowerCase().indexOf(Ce)>-1}_getNextItemIndex(Ce){return Ce>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(Ce){0===this._filteredItems.length||this._filteredItems.every($t=>$t.disabled)||(this._markedIndex=this._getNextItemIndex(Ce),this.markedItem.disabled&&this._stepToItem(Ce))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const Ce=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&Ce<0?-1:Math.max(this.markedIndex,Ce)}_groupBy(Ce,$t){const ve=new Map;if(0===Ce.length)return ve;if(Array.isArray(Ce[0].value[$t])){for(const fi of Ce){const Qi=(fi.value[$t]||[]).map((kn,bn)=>this.mapItem(kn,bn));ve.set(fi,Qi)}return ve}const Re=me(this._ngSelect.groupBy),ti=fi=>{const Qi=Re?$t(fi.value):fi.value[$t];return Ee(Qi)?Qi:void 0};for(const fi of Ce){const Qi=ti(fi),kn=ve.get(Qi);kn?kn.push(fi):ve.set(Qi,[fi])}return ve}_flatten(Ce){const $t=me(this._ngSelect.groupBy),ve=[];for(const Re of Array.from(Ce.keys())){let ti=ve.length;if(void 0===Re){const Ii=Ce.get(void 0)||[];ve.push(...Ii.map(en=>(en.index=ti++,en)));continue}const fi=Me(Re),Qi={label:fi?"":String(Re),children:void 0,parent:null,index:ti++,disabled:!this._ngSelect.selectableGroup,htmlId:$n()},kn=$t?this._ngSelect.bindLabel:this._ngSelect.groupBy,bn=this._ngSelect.groupValue||(()=>fi?Re.value:{[kn]:Re}),mi=Ce.get(Re).map(Ii=>(Ii.parent=Qi,Ii.children=void 0,Ii.index=ti++,Ii));Qi.children=mi,Qi.value=bn(Re,mi.map(Ii=>Ii.value)),ve.push(Qi),ve.push(...mi)}return ve}}var Ci=(()=>{return(Te=Ci||(Ci={}))[Te.Tab=9]="Tab",Te[Te.Enter=13]="Enter",Te[Te.Esc=27]="Esc",Te[Te.Space=32]="Space",Te[Te.ArrowUp=38]="ArrowUp",Te[Te.ArrowDown=40]="ArrowDown",Te[Te.Backspace=8]="Backspace",Ci;var Te})();let Le=(()=>{class Te{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($t,ve,Re){const ti=this._dimensions,fi=ti.itemHeight*ve,kn=Math.max(0,$t)/fi*ve;let bn=Math.min(ve,Math.ceil(kn)+(ti.itemsPerViewport+1));const Ii=Math.max(0,bn-ti.itemsPerViewport);let en=Math.min(Ii,Math.floor(kn)),lo=ti.itemHeight*Math.ceil(en)-ti.itemHeight*Math.min(en,Re);return lo=isNaN(lo)?0:lo,en=isNaN(en)?-1:en,bn=isNaN(bn)?-1:bn,en-=Re,en=Math.max(0,en),bn+=Re,bn=Math.min(ve,bn),{topPadding:lo,scrollHeight:fi,start:en,end:bn}}setDimensions($t,ve){const Re=Math.max(1,Math.floor(ve/$t));this._dimensions={itemHeight:$t,panelHeight:ve,itemsPerViewport:Re}}getScrollTo($t,ve,Re){const{panelHeight:ti}=this.dimensions,fi=$t+ve,kn=Re+ti;return ti>=fi&&Re===$t?null:fi>kn?Re+fi-kn:$t<=Re?$t:null}}return Te.\u0275fac=function($t){return new($t||Te)},Te.\u0275prov=A.Yz7({token:Te,factory:Te.\u0275fac}),Te})();const Pe=["top","right","bottom","left"],xe=typeof requestAnimationFrame<"u"?et.Z:L;let Be=(()=>{class Te{constructor($t,ve,Re,ti,fi){this._renderer=$t,this._zone=ve,this._panelService=Re,this._document=fi,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new A.vpe,this.scroll=new A.vpe,this.scrollToEnd=new A.vpe,this.outsideClick=new A.vpe,this._destroy$=new l.x,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=ti.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($t){$t!==this._itemsLength&&(this._itemsLength=$t,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$t,panelHeight:ve}=this._panelService.dimensions,Re=this.markedItem.index*$t;return ve>Re?0:Re}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($t){if($t.items){const ve=$t.items;this._onItemsChange(ve.currentValue,ve.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($t,ve=!1){if(!$t)return;const Re=this.items.indexOf($t);if(Re<0||Re>=this.itemsLength)return;let ti;if(this.virtualScroll){const fi=this._panelService.dimensions.itemHeight;ti=this._panelService.getScrollTo(Re*fi,fi,this._lastScrollPosition)}else{const fi=this._dropdown.querySelector(`#${$t.htmlId}`);ti=this._panelService.getScrollTo(fi.offsetTop,fi.clientHeight,ve?fi.offsetTop:this._lastScrollPosition)}Ee(ti)&&(this._scrollablePanel.scrollTop=ti)}scrollToTag(){const $t=this._scrollablePanel;$t.scrollTop=$t.scrollHeight-$t.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),Pe.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($t){Pe.forEach(Re=>{const ti=`ng-select-${Re}`;this._renderer.removeClass(this._dropdown,ti),this._renderer.removeClass(this._select,ti)});const ve=`ng-select-${$t}`;this._renderer.addClass(this._dropdown,ve),this._renderer.addClass(this._select,ve)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,m.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,Rt.R)(this._destroy$),(0,$.e)(0,xe)).subscribe($t=>{const ve=$t.path||$t.composedPath&&$t.composedPath();this._onContentScrolled(ve&&0!==ve.length?ve[0].scrollTop:$t.target.scrollTop)})})}_handleOutsideClick(){!this._document||this._zone.runOutsideAngular(()=>{(0,s.T)((0,m.R)(this._document,"touchstart",{capture:!0}),(0,m.R)(this._document,"mousedown",{capture:!0})).pipe((0,Rt.R)(this._destroy$)).subscribe($t=>this._checkToClose($t))})}_checkToClose($t){if(this._select.contains($t.target)||this._dropdown.contains($t.target))return;const ve=$t.path||$t.composedPath&&$t.composedPath();$t.target&&$t.target.shadowRoot&&ve&&ve[0]&&this._select.contains(ve[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($t,ve){this.items=$t||[],this._scrollToEndFired=!1,this.itemsLength=$t.length,this.virtualScroll?this._updateItemsRange(ve):(this._setVirtualHeight(),this._updateItems(ve))}_updateItems($t){this.update.emit(this.items),!1!==$t&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$t)})})}_updateItemsRange($t){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$t?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($t){this.virtualScroll&&this._renderItemsRange($t),this._lastScrollPosition=$t,this._fireScrollToEnd($t)}_updateVirtualHeight($t){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$t}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){!this._virtualPadding||(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($t=null){if($t&&this._lastScrollPosition===$t)return;const ve=this._panelService.calculateItems($t=$t||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(ve.scrollHeight),this._contentPanel.style.transform=`translateY(${ve.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(ve.start,ve.end)),this.scroll.emit({start:ve.start,end:ve.end})}),Ee($t)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$t,this._lastScrollPosition=$t)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$t]=this.items;return this.update.emit([$t]),Promise.resolve().then(()=>{const Re=this._dropdown.querySelector(`#${$t.htmlId}`).clientHeight;return this._virtualPadding.style.height=Re*this.itemsLength+"px",this._panelService.setDimensions(Re,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($t){this._scrollToEndFired||0===$t||$t+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($t){if("auto"!==this.position)return this.position;const ve=this._select.getBoundingClientRect(),Re=document.documentElement.scrollTop||document.body.scrollTop;return ve.top+window.pageYOffset+ve.height+$t.getBoundingClientRect().height>Re+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $t=this._select.getBoundingClientRect(),ve=this._parent.getBoundingClientRect();this._dropdown.style.left=$t.left-ve.left+"px",this._dropdown.style.width=$t.width+"px",this._dropdown.style.minWidth=$t.width+"px"}_updateYPosition(){const $t=this._select.getBoundingClientRect(),ve=this._parent.getBoundingClientRect(),Re=$t.height;"top"===this._currentPosition?(this._dropdown.style.bottom=ve.bottom-$t.bottom+Re+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$t.top-ve.top+Re+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,m.R)(this._dropdown,"mousedown").pipe((0,Rt.R)(this._destroy$)).subscribe($t=>{"INPUT"!==$t.target.tagName&&$t.preventDefault()})})}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.Qsj),A.Y36(A.R0b),A.Y36(Le),A.Y36(A.SBq),A.Y36(a.K0,8))},Te.\u0275cmp=A.Xpm({type:Te,selectors:[["ng-dropdown-panel"]],viewQuery:function($t,ve){if(1&$t&&(A.Gf(n,7,A.SBq),A.Gf(r,7,A.SBq),A.Gf(e,7,A.SBq)),2&$t){let Re;A.iGM(Re=A.CRH())&&(ve.contentElementRef=Re.first),A.iGM(Re=A.CRH())&&(ve.scrollElementRef=Re.first),A.iGM(Re=A.CRH())&&(ve.paddingElementRef=Re.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[A.TTD],ngContentSelectors:k,decls:9,vars:6,consts:[["class","ng-dropdown-header",4,"ngIf"],[1,"ng-dropdown-panel-items","scroll-host"],["scroll",""],["padding",""],["content",""],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function($t,ve){1&$t&&(A.F$t(),A.YNc(0,p,2,4,"div",0),A.TgZ(1,"div",1,2),A._UZ(3,"div",null,3),A.TgZ(5,"div",null,4),A.Hsn(7),A.qZA()(),A.YNc(8,h,2,4,"div",5)),2&$t&&(A.Q6J("ngIf",ve.headerTemplate),A.xp6(3),A.ekj("total-padding",ve.virtualScroll),A.xp6(2),A.ekj("scrollable-content",ve.virtualScroll&&ve.items.length),A.xp6(3),A.Q6J("ngIf",ve.footerTemplate))},dependencies:[a.O5,a.tP],encapsulation:2,changeDetection:0}),Te})(),oi=(()=>{class Te{constructor($t){this.elementRef=$t,this.stateChange$=new l.x,this._disabled=!1}get disabled(){return this._disabled}set disabled($t){this._disabled=this._isDisabled($t)}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($t){$t.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($t){return null!=$t&&"false"!=`${$t}`}}return Te.\u0275fac=function($t){return new($t||Te)(A.Y36(A.SBq))},Te.\u0275cmp=A.Xpm({type:Te,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[A.TTD],ngContentSelectors:k,decls:1,vars:0,template:function($t,ve){1&$t&&(A.F$t(),A.Hsn(0))},encapsulation:2,changeDetection:0}),Te})(),Li=(()=>{class Te{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}}return Te.\u0275fac=function($t){return new($t||Te)},Te.\u0275prov=A.Yz7({token:Te,factory:Te.\u0275fac,providedIn:"root"}),Te})(),Yi=(()=>{class Te{warn($t){console.warn($t)}}return Te.\u0275fac=function($t){return new($t||Te)},Te.\u0275prov=A.Yz7({token:Te,factory:Te.\u0275fac,providedIn:"root"}),Te})();const Hn=new A.OlP("ng-select-selection-model");let To=(()=>{class Te{constructor($t,ve,Re,ti,fi,Qi,kn){this.classes=$t,this.autoFocus=ve,this.config=Re,this._cd=Qi,this._console=kn,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=bn=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new A.vpe,this.focusEvent=new A.vpe,this.changeEvent=new A.vpe,this.openEvent=new A.vpe,this.closeEvent=new A.vpe,this.searchEvent=new A.vpe,this.clearEvent=new A.vpe,this.addEvent=new A.vpe,this.removeEvent=new A.vpe,this.scroll=new A.vpe,this.scrollToEnd=new A.vpe,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=$n(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new l.x,this._keyPress$=new l.x,this._onChange=bn=>{},this._onTouched=()=>{},this.clearItem=bn=>{const mi=this.selectedItems.find(Ii=>Ii.value===bn);this.unselect(mi)},this.trackByOption=(bn,mi)=>this.trackByFn?this.trackByFn(mi.value):mi,this._mergeGlobalConfig(Re),this.itemsList=new fn(this,ti()),this.element=fi.nativeElement}get items(){return this._items}set items($t){null===$t&&($t=[]),this._itemsAreUsed=!0,this._items=$t}get compareWith(){return this._compareWith}set compareWith($t){if(null!=$t&&!me($t))throw Error("`compareWith` must be a function.");this._compareWith=$t}get clearSearchOnAdd(){return Ee(this._clearSearchOnAdd)?this._clearSearchOnAdd:Ee(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($t){this._clearSearchOnAdd=$t}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($t=>$t.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($t){$t.multiple&&this.itemsList.clearSelected(),$t.items&&this._setItems($t.items.currentValue||[]),$t.isOpen&&(this._manualOpen=Ee($t.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),Ee(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($t){if(Ci[$t.which]){if(!1===this.keyDownFn($t))return;this.handleKeyCode($t)}else $t.key&&1===$t.key.length&&this._keyPress$.next($t.key.toLocaleLowerCase())}handleKeyCode($t){switch($t.which){case Ci.ArrowDown:this._handleArrowDown($t);break;case Ci.ArrowUp:this._handleArrowUp($t);break;case Ci.Space:this._handleSpace($t);break;case Ci.Enter:this._handleEnter($t);break;case Ci.Tab:this._handleTab($t);break;case Ci.Esc:this.close(),$t.preventDefault();break;case Ci.Backspace:this._handleBackspace()}}handleMousedown($t){const ve=$t.target;"INPUT"!==ve.tagName&&$t.preventDefault(),ve.classList.contains("ng-clear-wrapper")?this.handleClearClick():ve.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():ve.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){!this.clearable||(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($t){this.itemsList.clearSelected(),this._handleWriteValue($t),this._cd.markForCheck()}registerOnChange($t){this._onChange=$t}registerOnTouched($t){this._onTouched=$t}setDisabledState($t){this._disabled=$t,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($t){!$t||$t.disabled||this.disabled||(this.multiple&&$t.selected?this.unselect($t):this.select($t),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($t){$t.selected||(this.itemsList.select($t),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($t.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($t){!$t||(this.itemsList.unselect($t),this.focus(),this._updateNgModel(),this.removeEvent.emit($t))}selectTag(){let $t;$t=me(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const ve=Re=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(Re,null):this.itemsList.addItem(Re);!function Ae(Te){return Te instanceof Promise}($t)?$t&&this.select(ve($t)):$t.then(Re=>this.select(ve(Re))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}get showAddTag(){if(!this._validTerm)return!1;const $t=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(ve=>ve.label.toLowerCase()===$t)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(ve=>ve.label.toLowerCase()===$t))&&!this.loading}showNoItemsFound(){const $t=0===this.itemsList.filteredItems.length;return($t&&!this._isTypeahead&&!this.loading||$t&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($t){this._isComposing=!1,!this.searchWhileComposing&&this.filter($t)}filter($t){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$t,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($t),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$t,items:this.itemsList.filteredItems.map(ve=>ve.value)}),this.open())}onInputFocus($t){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($t),this.focused=!0)}onInputBlur($t){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($t),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($t){$t.disabled||this.itemsList.markItem($t)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $t=this.selectedItems&&this.selectedItems[0];this.searchTerm=$t&&$t.label||null}_setItems($t){const ve=$t[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=Ee(ve)?!Me(ve):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($t),$t.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&Ee(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $t=Re=>{this.items=Re.map(ti=>({$ngOptionValue:ti.value,$ngOptionLabel:ti.elementRef.nativeElement.innerHTML,disabled:ti.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},ve=()=>{const Re=(0,s.T)(this.ngOptions.changes,this._destroy$);(0,s.T)(...this.ngOptions.map(ti=>ti.stateChange$)).pipe((0,Rt.R)(Re)).subscribe(ti=>{const fi=this.itemsList.findItem(ti.value);fi.disabled=ti.disabled,fi.label=ti.label||fi.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,V.O)(this.ngOptions),(0,Rt.R)(this._destroy$)).subscribe(Re=>{this.bindLabel=this._defaultLabel,$t(Re),ve()})}_isValidWriteValue($t){if(!Ee($t)||this.multiple&&""===$t||Array.isArray($t)&&0===$t.length)return!1;const ve=Re=>!(!Ee(this.compareWith)&&Me(Re)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(Re)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($t)?$t.every(Re=>ve(Re)):(this._console.warn("Multiple select ngModel should be array."),!1):ve($t)}_handleWriteValue($t){if(!this._isValidWriteValue($t))return;const ve=Re=>{let ti=this.itemsList.findItem(Re);if(ti)this.itemsList.select(ti);else{const fi=Me(Re),Qi=!fi&&!this.bindValue;fi||Qi?this.itemsList.select(this.itemsList.mapItem(Re,null)):this.bindValue&&(ti={[this.bindLabel]:null,[this.bindValue]:Re},this.itemsList.select(this.itemsList.mapItem(ti,null)))}};this.multiple?$t.forEach(Re=>ve(Re)):ve($t)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,Rt.R)(this._destroy$),(0,Y.b)($t=>this._pressedKeys.push($t)),(0,K.b)(200),(0,ot.h)(()=>this._pressedKeys.length>0),(0,it.U)(()=>this._pressedKeys.join(""))).subscribe($t=>{const ve=this.itemsList.findByLabel($t);ve&&(this.isOpen?(this.itemsList.markItem(ve),this._scrollToMarked(),this._cd.markForCheck()):this.select(ve)),this._pressedKeys=[]})}_setInputAttributes(){const $t=this.searchInput.nativeElement,ve={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const Re of Object.keys(ve))$t.setAttribute(Re,ve[Re])}_updateNgModel(){const $t=[];for(const Re of this.selectedItems)if(this.bindValue){let ti=null;ti=Re.children?Re.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(Re.value,this.bindValue),$t.push(ti)}else $t.push(Re.value);const ve=this.selectedItems.map(Re=>Re.value);this.multiple?(this._onChange($t),this.changeEvent.emit(ve)):(this._onChange(Ee($t[0])?$t[0]:null),this.changeEvent.emit(ve[0])),this._cd.markForCheck()}_clearSearch(){!this.searchTerm||(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($t){this.searchTerm=$t,this._isTypeahead&&this.typeahead.next($t)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.multiple&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($t){!1===this.isOpen&&!this.addTag||(this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$t.preventDefault()):this.showAddTag?(this.selectTag(),$t.preventDefault()):this.close():this.close())}_handleEnter($t){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$t.preventDefault()}_handleSpace($t){this.isOpen||this._manualOpen||(this.open(),$t.preventDefault())}_handleArrowDown($t){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$t.preventDefault()}_handleArrowUp($t){!this.isOpen||(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$t.preventDefault())}_nextItemIsTag($t){const ve=this.itemsList.markedIndex+$t;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(ve<0||ve===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $t=this.searchTerm&&this.searchTerm.trim();return $t&&$t.length>=this.minTermLength}_mergeGlobalConfig($t){this.placeholder=this.placeholder||$t.placeholder,this.notFoundText=this.notFoundText||$t.notFoundText,this.typeToSearchText=this.typeToSearchText||$t.typeToSearchText,this.addTagText=this.addTagText||$t.addTagText,this.loadingText=this.loadingText||$t.loadingText,this.clearAllText=this.clearAllText||$t.clearAllText,this.virtualScroll=Ee(this.virtualScroll)?this.virtualScroll:!!Ee($t.disableVirtualScroll)&&!$t.disableVirtualScroll,this.openOnEnter=Ee(this.openOnEnter)?this.openOnEnter:$t.openOnEnter,this.appendTo=this.appendTo||$t.appendTo,this.bindValue=this.bindValue||$t.bindValue,this.bindLabel=this.bindLabel||$t.bindLabel,this.appearance=this.appearance||$t.appearance}}return Te.\u0275fac=function($t){return new($t||Te)(A.$8M("class"),A.$8M("autofocus"),A.Y36(Li),A.Y36(Hn),A.Y36(A.SBq),A.Y36(A.sBO),A.Y36(Yi))},Te.\u0275cmp=A.Xpm({type:Te,selectors:[["ng-select"]],contentQueries:function($t,ve,Re){if(1&$t&&(A.Suo(Re,Ue,5,A.Rgc),A.Suo(Re,Ze,5,A.Rgc),A.Suo(Re,Ne,5,A.Rgc),A.Suo(Re,ue,5,A.Rgc),A.Suo(Re,_e,5,A.Rgc),A.Suo(Re,Ve,5,A.Rgc),A.Suo(Re,ni,5,A.Rgc),A.Suo(Re,Ui,5,A.Rgc),A.Suo(Re,Ji,5,A.Rgc),A.Suo(Re,pn,5,A.Rgc),A.Suo(Re,Ei,5,A.Rgc),A.Suo(Re,oi,5)),2&$t){let ti;A.iGM(ti=A.CRH())&&(ve.optionTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.optgroupTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.labelTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.multiLabelTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.headerTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.footerTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.notFoundTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.typeToSearchTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.loadingTextTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.tagTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.loadingSpinnerTemplate=ti.first),A.iGM(ti=A.CRH())&&(ve.ngOptions=ti)}},viewQuery:function($t,ve){if(1&$t&&(A.Gf(Be,5),A.Gf(P,7)),2&$t){let Re;A.iGM(Re=A.CRH())&&(ve.dropdownPanel=Re.first),A.iGM(Re=A.CRH())&&(ve.searchInput=Re.first)}},hostVars:20,hostBindings:function($t,ve){1&$t&&A.NdJ("keydown",function(ti){return ve.handleKeyDown(ti)}),2&$t&&A.ekj("ng-select-typeahead",ve.typeahead)("ng-select-multiple",ve.multiple)("ng-select-taggable",ve.addTag)("ng-select-searchable",ve.searchable)("ng-select-clearable",ve.clearable)("ng-select-opened",ve.isOpen)("ng-select",ve.useDefaultClass)("ng-select-disabled",ve.disabled)("ng-select-filtered",ve.filtered)("ng-select-single",ve.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[A._Bn([{provide:t.JU,useExisting:(0,A.Gpc)(()=>Te),multi:!0},Le]),A.TTD],decls:14,vars:19,consts:[[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"readOnly","disabled","value","input","compositionstart","compositionend","focus","blur","change"],["searchInput",""],["class","ng-clear-wrapper",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],["defaultLabelTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],["defaultLoadingSpinnerTemplate",""],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],[1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id","update","scroll","scrollToEnd","outsideClick"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],["defaultOptionTemplate",""],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],["defaultTagTemplate",""],[1,"ng-tag-label"],["defaultNotFoundTemplate",""],[1,"ng-option","ng-option-disabled"],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""]],template:function($t,ve){if(1&$t){const Re=A.EpF();A.TgZ(0,"div",0),A.NdJ("mousedown",function(fi){return ve.handleMousedown(fi)}),A.TgZ(1,"div",1)(2,"div",2),A._uU(3),A.qZA(),A.YNc(4,I,2,2,"ng-container",3),A.YNc(5,v,1,5,null,3),A.TgZ(6,"div",4)(7,"input",5,6),A.NdJ("input",function(){A.CHM(Re);const fi=A.MAs(8);return A.KtG(ve.filter(fi.value))})("compositionstart",function(){return ve.onCompositionStart()})("compositionend",function(){A.CHM(Re);const fi=A.MAs(8);return A.KtG(ve.onCompositionEnd(fi.value))})("focus",function(fi){return ve.onInputFocus(fi)})("blur",function(fi){return ve.onInputBlur(fi)})("change",function(fi){return fi.stopPropagation()}),A.qZA()()(),A.YNc(9,Q,4,1,"ng-container",3),A.YNc(10,J,3,1,"span",7),A.TgZ(11,"span",8),A._UZ(12,"span",9),A.qZA()(),A.YNc(13,Qt,7,19,"ng-dropdown-panel",10)}2&$t&&(A.ekj("ng-appearance-outline","outline"===ve.appearance)("ng-has-value",ve.hasValue),A.xp6(3),A.Oqu(ve.placeholder),A.xp6(1),A.Q6J("ngIf",(!ve.multiLabelTemplate||!ve.multiple)&&ve.selectedItems.length>0),A.xp6(1),A.Q6J("ngIf",ve.multiple&&ve.multiLabelTemplate&&ve.selectedValues.length>0),A.xp6(1),A.uIk("aria-expanded",ve.isOpen)("aria-owns",ve.isOpen?ve.dropdownId:null),A.xp6(1),A.Q6J("readOnly",!ve.searchable||ve.itemsList.maxItemsSelected)("disabled",ve.disabled)("value",ve.searchTerm?ve.searchTerm:""),A.uIk("id",ve.labelForId)("tabindex",ve.tabIndex)("aria-activedescendant",ve.isOpen?null==ve.itemsList||null==ve.itemsList.markedItem?null:ve.itemsList.markedItem.htmlId:null)("aria-controls",ve.isOpen?ve.dropdownId:null),A.xp6(2),A.Q6J("ngIf",ve.loading),A.xp6(1),A.Q6J("ngIf",ve.showClear()),A.xp6(3),A.Q6J("ngIf",ve.isOpen))},dependencies:[a.mk,a.sg,a.O5,a.tP,Be,qe],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0}),Te})();function Zo(){return new Qn}class Qn{constructor(){this._selected=[]}get value(){return this._selected}select(Ce,$t,ve){if(Ce.selected=!0,(!Ce.children||!$t&&ve)&&this._selected.push(Ce),$t)if(Ce.parent){const Re=Ce.parent.children.length,ti=Ce.parent.children.filter(fi=>fi.selected).length;Ce.parent.selected=Re===ti}else Ce.children&&(this._setChildrenSelectedState(Ce.children,!0),this._removeChildren(Ce),this._selected=ve&&this._activeChildren(Ce)?[...this._selected.filter(Re=>Re.parent!==Ce),Ce]:[...this._selected,...Ce.children.filter(Re=>!Re.disabled)])}unselect(Ce,$t){if(this._selected=this._selected.filter(ve=>ve!==Ce),Ce.selected=!1,$t)if(Ce.parent&&Ce.parent.selected){const ve=Ce.parent.children;this._removeParent(Ce.parent),this._removeChildren(Ce.parent),this._selected.push(...ve.filter(Re=>Re!==Ce&&!Re.disabled)),Ce.parent.selected=!1}else Ce.children&&(this._setChildrenSelectedState(Ce.children,!1),this._removeChildren(Ce))}clear(Ce){this._selected=Ce?this._selected.filter($t=>$t.disabled):[]}_setChildrenSelectedState(Ce,$t){for(const ve of Ce)ve.disabled||(ve.selected=$t)}_removeChildren(Ce){this._selected=[...this._selected.filter($t=>$t.parent!==Ce),...Ce.children.filter($t=>$t.parent===Ce&&$t.disabled&&$t.selected)]}_removeParent(Ce){this._selected=this._selected.filter($t=>$t!==Ce)}_activeChildren(Ce){return Ce.children.every($t=>!$t.disabled||$t.selected)}}let Go=(()=>{class Te{}return Te.\u0275fac=function($t){return new($t||Te)},Te.\u0275mod=A.oAB({type:Te}),Te.\u0275inj=A.cJS({providers:[{provide:Hn,useValue:Zo}],imports:[a.ez]}),Te})()},42543:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{j3:()=>v,kJ:()=>K,ws:()=>w,zq:()=>it});var A=Bt(36895),t=Bt(94650);function Rt(R,B){if(null==R)throw new Error("Unexpected "+R+" value: "+B);return R}const Y=new t.OlP("MATOMO_CONFIGURATION"),K=new t.OlP("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!1,requireConsent:it.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...Rt((0,t.f3M)(Y,t.XFs.Optional),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})});var ot=(()=>{return(R=ot||(ot={}))[R.AUTO=0]="AUTO",R[R.MANUAL=1]="MANUAL",R[R.AUTO_DEFERRED=2]="AUTO_DEFERRED",ot;var R})(),it=(()=>{return(R=it||(it={}))[R.NONE=0]="NONE",R[R.COOKIE=1]="COOKIE",R[R.TRACKING=2]="TRACKING",it;var R})();function nt(R){return null!=R.siteId&&null!=R.trackerUrl}function N(R){return Array.isArray(R.trackers)}function g(){window._paq=window._paq||[]}function T(R){const B=[...R];for(;B.length>0&&void 0===B[B.length-1];)B.pop();return B}let w=(()=>{class R{trackPageView(Q){this.push(["trackPageView",Q])}trackEvent(Q,J,rt,ut){this.push(["trackEvent",Q,J,rt,ut])}trackSiteSearch(Q,J,rt){this.push(["trackSiteSearch",Q,J,rt])}trackGoal(Q,J){this.push(["trackGoal",Q,J])}trackLink(Q,J){this.push(["trackLink",Q,J])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Q,J){this.push(["trackVisibleContentImpressions",Q,J])}trackContentImpressionsWithinNode(Q){this.push(["trackContentImpressionsWithinNode",Q])}trackContentInteractionNode(Q,J){this.push(["trackContentInteractionNode",Q,J])}trackContentImpression(Q,J,rt){this.push(["trackContentImpression",Q,J,rt])}trackContentInteraction(Q,J,rt,ut){this.push(["trackContentInteraction",Q,J,rt,ut])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Q){this.push(["enableHeartBeatTimer",Q])}enableLinkTracking(Q=!1){this.push(["enableLinkTracking",Q])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Q){this.push(["setCrossDomainLinkingTimeout",Q])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Q){this.push(["setDocumentTitle",Q])}setDomains(Q){this.push(["setDomains",Q])}setCustomUrl(Q){this.push(["setCustomUrl",Q])}setReferrerUrl(Q){this.push(["setReferrerUrl",Q])}setSiteId(Q){this.push(["setSiteId",Q])}setApiUrl(Q){this.push(["setApiUrl",Q])}setTrackerUrl(Q){this.push(["setTrackerUrl",Q])}addTracker(Q,J){this.push(["addTracker",Q,J])}getMatomoUrl(){return this.get("getMatomoUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Q){this.push(["setDownloadClasses",Q])}setDownloadExtensions(Q){this.push(["setDownloadExtensions",Q])}addDownloadExtensions(Q){this.push(["addDownloadExtensions",Q])}removeDownloadExtensions(Q){this.push(["removeDownloadExtensions",Q])}setIgnoreClasses(Q){this.push(["setIgnoreClasses",Q])}setLinkClasses(Q){this.push(["setLinkClasses",Q])}setLinkTrackingTimer(Q){this.push(["setLinkTrackingTimer",Q])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Q){this.push(["discardHashTag",Q])}setGenerationTimeMs(Q){this.push(["setGenerationTimeMs",Q])}setPagePerformanceTiming(Q,J,rt,ut,vt,gt){let Lt;"object"==typeof Q&&Q?(Lt=Q.networkTimeInMs,J=Q.serverTimeInMs,rt=Q.transferTimeInMs,ut=Q.domProcessingTimeInMs,vt=Q.domCompletionTimeInMs,gt=Q.onloadTimeInMs):Lt=Q,this.push(["setPagePerformanceTiming",Lt,J,rt,ut,vt,gt])}appendToTrackingUrl(Q){this.push(["appendToTrackingUrl",Q])}setDoNotTrack(Q){this.push(["setDoNotTrack",Q])}killFrame(){this.push(["killFrame"])}redirectFile(Q){this.push(["redirectFile",Q])}setHeartBeatTimer(Q,J){this.push(["setHeartBeatTimer",Q,J])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Q){this.push(["setVisitorId",Q])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Q){this.push(["setUserId",Q])}resetUserId(){this.push(["resetUserId"])}setCustomVariable(Q,J,rt,ut){this.push(["setCustomVariable",Q,J,rt,ut])}deleteCustomVariable(Q,J){this.push(["deleteCustomVariable",Q,J])}deleteCustomVariables(Q){this.push(["deleteCustomVariables",Q])}getCustomVariable(Q,J){return this.pushFn(rt=>rt.getCustomVariable(Q,J))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Q,J){this.push(["setCustomDimension",Q,J])}deleteCustomDimension(Q){this.push(["deleteCustomDimension",Q])}getCustomDimension(Q){return this.pushFn(J=>J.getCustomDimension(Q))}setCampaignNameKey(Q){this.push(["setCampaignNameKey",Q])}setCampaignKeywordKey(Q){this.push(["setCampaignKeywordKey",Q])}setConversionAttributionFirstReferrer(Q){this.push(["setConversionAttributionFirstReferrer",Q])}setEcommerceView(Q,J,rt,ut){!function y(R){return"object"==typeof R&&1===Object.keys(R).length&&null!=R.productCategory}(Q)?function C(R){return"object"==typeof R&&"productSKU"in R}(Q)?this.push(["setEcommerceView",Q.productSKU,Q.productName,Q.productCategory,Q.price]):this.push(["setEcommerceView",Q,J,rt,ut]):this.push(["setEcommerceView",!1,!1,Q.productCategory])}addEcommerceItem(Q,J,rt,ut,vt){this.push("string"==typeof Q?["addEcommerceItem",Q,J,rt,ut,vt]:["addEcommerceItem",Q.productSKU,Q.productName,Q.productCategory,Q.price,Q.quantity])}removeEcommerceItem(Q){this.push(["removeEcommerceItem",Q])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Q){this.push(["trackEcommerceCartUpdate",Q])}trackEcommerceOrder(Q,J,rt,ut,vt,gt){this.push(["trackEcommerceOrder",Q,J,rt,ut,vt,gt])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Q){this.push(["rememberConsentGiven",Q])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Q){this.push(["rememberCookieConsentGiven",Q])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Q){this.push(["setCookieNamePrefix",Q])}setCookieDomain(Q){this.push(["setCookieDomain",Q])}setCookiePath(Q){this.push(["setCookiePath",Q])}setSecureCookie(Q){this.push(["setSecureCookie",Q])}setCookieSameSite(Q){this.push(["setCookieSameSite",Q])}setVisitorCookieTimeout(Q){this.push(["setVisitorCookieTimeout",Q])}setReferralCookieTimeout(Q){this.push(["setReferralCookieTimeout",Q])}setSessionCookieTimeout(Q){this.push(["setSessionCookieTimeout",Q])}addListener(Q){this.push(["addListener",Q])}setRequestMethod(Q){this.push(["setRequestMethod",Q])}setCustomRequestProcessing(Q){this.push(["setCustomRequestProcessing",Q])}setRequestContentType(Q){this.push(["setRequestContentType",Q])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Q){this.push(["setRequestQueueInterval",Q])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}get(Q){return this.pushFn(J=>J[Q]())}}return R.\u0275fac=function(Q){return new(Q||R)},R.\u0275prov=t.Yz7({token:R,factory:function(Q){let J=null;return J=Q?new Q:function x(R,B,Q){return R.disabled||!(0,A.NF)(B)?new z:new E(Q,R)}(t.LFG(K),t.LFG(t.Lbi),t.LFG(t.R0b)),J},providedIn:"root"}),R})();class E extends w{constructor(B,Q){super(),this.ngZone=B,this.config=Q,g()}pushFn(B){return new Promise(Q=>{this.push([function(){Q(B(this))}])})}push(B){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(T(B))}):window._paq.push(T(B))}}class z extends w{push(B){}pushFn(B){return Promise.reject("MatomoTracker is disabled")}}const o=(R,B)=>{const Q=B.createElement("script");return Q.type="text/javascript",Q.defer=!0,Q.async=!0,Q.src=R,Q},p=new t.OlP("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>o});function P(R){return`${R}`}function X(R){return R.endsWith("/")?R:`${R}/`}function j(R,B){return null==B?X(R)+c:R+B}const c="matomo.php";class U{initialize(){}initializeTracker(B){}}let H=(()=>{class R{constructor(Q,J,rt,ut){this.config=Q,this.tracker=J,this.scriptFactory=rt,this.document=ut,this.initialized=!1,this.injected=!1,g()}init(){this.initialize()}initialize(){if(this.runPreInitTasks(),this.initialized)throw new Error("Matomo has already been initialized");(function et(R){return null==R.mode||R.mode===ot.AUTO})(this.config)&&this.injectMatomoScript(this.config),this.initialized=!0}initializeTracker(Q){this.injectMatomoScript(Q)}injectMatomoScript(Q){if(this.injected)throw new Error("Matomo trackers have already been initialized");if(function G(R){return nt(R)||N(R)}(Q)){const{scriptUrl:J}=Q,[rt,...ut]=function b(R){return N(R)?R.trackers:[{trackerUrl:R.trackerUrl,siteId:R.siteId,trackerUrlSuffix:R.trackerUrlSuffix}]}(Q),vt=J??X(rt.trackerUrl)+"matomo.js";this.registerMainTracker(rt),this.registerAdditionalTrackers(ut),this.injectDOMScript(vt)}else if(function W(R){return null!=R.scriptUrl&&!nt(R)}(Q)){const{scriptUrl:J,trackers:rt}={trackers:[],...Q};this.registerAdditionalTrackers(rt),this.injectDOMScript(J)}this.injected=!0}registerMainTracker(Q){const J=j(Q.trackerUrl,Q.trackerUrlSuffix),rt=P(Q.siteId);this.tracker.setTrackerUrl(J),this.tracker.setSiteId(rt)}registerAdditionalTrackers(Q){Q.forEach(({trackerUrl:J,siteId:rt,trackerUrlSuffix:ut})=>{const vt=j(J,ut),gt=P(rt);this.tracker.addTracker(vt,gt)})}injectDOMScript(Q){const J=this.scriptFactory(Q,this.document),rt=Rt(this.document.getElementsByTagName("script")[0],"no existing script found");Rt(rt.parentNode,"no script's parent node found").insertBefore(J,rt)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===it.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===it.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking()}}return R.\u0275fac=function(Q){t.$Z()},R.\u0275prov=t.Yz7({token:R,factory:function(Q){let J=null;return J=Q?new Q:function I(R,B,Q,J,rt){return R.disabled||!(0,A.NF)(rt)?new U:new H(R,B,Q,J)}(t.LFG(K),t.LFG(w),t.LFG(p),t.LFG(A.K0),t.LFG(t.Lbi)),J},providedIn:"root"}),R})(),v=(()=>{class R{constructor(Q,J){this.initializer=Q,J||this.initializer.initialize()}static forRoot(Q,J){const rt=[{provide:Y,useValue:Q}];return J&&rt.push({provide:p,useValue:J}),{ngModule:R,providers:rt}}}return R.\u0275fac=function(Q){return new(Q||R)(t.LFG(H),t.LFG(R,12))},R.\u0275mod=t.oAB({type:R}),R.\u0275inj=t.cJS({}),R})()},54463:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{Pi:()=>k,aw:()=>X,X$:()=>P,sK:()=>h});var A=Bt(94650),t=Bt(39646),Rt=Bt(69751),$=Bt(30576);function V(j){return!!j&&(j instanceof Rt.y||(0,$.m)(j.lift)&&(0,$.m)(j.subscribe))}var Y=Bt(4128),K=Bt(97272),ot=Bt(49770),it=Bt(95698),et=Bt(77579),nt=Bt(26063);class W extends et.x{constructor(c=1/0,d=1/0,I=nt.l){super(),this._bufferSize=c,this._windowTime=d,this._timestampProvider=I,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=d===1/0,this._bufferSize=Math.max(1,c),this._windowTime=Math.max(1,d)}next(c){const{isStopped:d,_buffer:I,_infiniteTimeWindow:U,_timestampProvider:H,_windowTime:v}=this;d||(I.push(c),!U&&I.push(H.now()+v)),this._trimBuffer(),super.next(c)}_subscribe(c){this._throwIfClosed(),this._trimBuffer();const d=this._innerSubscribe(c),{_infiniteTimeWindow:I,_buffer:U}=this,H=U.slice();for(let v=0;vnew W(I,c,d),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:U})}var b=Bt(54004),g=Bt(24351),T=Bt(63900);class y{}let C=(()=>{class j extends y{getTranslation(d){return(0,t.of)({})}}return j.\u0275fac=function(){let c;return function(I){return(c||(c=A.n5z(j)))(I||j)}}(),j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac}),j})();class x{}let w=(()=>{class j{handle(d){return d.key}}return j.\u0275fac=function(d){return new(d||j)},j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac}),j})();function E(j,c){if(j===c)return!0;if(null===j||null===c)return!1;if(j!=j&&c!=c)return!0;let U,H,v,d=typeof j;if(d==typeof c&&"object"==d){if(!Array.isArray(j)){if(Array.isArray(c))return!1;for(H in v=Object.create(null),j){if(!E(j[H],c[H]))return!1;v[H]=!0}for(H in c)if(!(H in v)&&typeof c[H]<"u")return!1;return!0}if(!Array.isArray(c))return!1;if((U=j.length)==c.length){for(H=0;H{L(c[I])?I in j?d[I]=_(j[I],c[I]):Object.assign(d,{[I]:c[I]}):Object.assign(d,{[I]:c[I]})}),d}class l{}let m=(()=>{class j extends l{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(d,I){let U;return U="string"==typeof d?this.interpolateString(d,I):"function"==typeof d?this.interpolateFunction(d,I):d,U}getValue(d,I){let U="string"==typeof I?I.split("."):[I];I="";do{I+=U.shift(),!z(d)||!z(d[I])||"object"!=typeof d[I]&&U.length?U.length?I+=".":d=void 0:(d=d[I],I="")}while(U.length);return d}interpolateFunction(d,I){return d(I)}interpolateString(d,I){return I?d.replace(this.templateMatcher,(U,H)=>{let v=this.getValue(I,H);return z(v)?v:U}):d}}return j.\u0275fac=function(){let c;return function(I){return(c||(c=A.n5z(j)))(I||j)}}(),j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac}),j})();class s{}let a=(()=>{class j extends s{compile(d,I){return d}compileTranslations(d,I){return d}}return j.\u0275fac=function(){let c;return function(I){return(c||(c=A.n5z(j)))(I||j)}}(),j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac}),j})();class n{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new A.vpe,this.onLangChange=new A.vpe,this.onDefaultLangChange=new A.vpe}}const r=new A.OlP("USE_STORE"),e=new A.OlP("USE_DEFAULT_LANG"),o=new A.OlP("DEFAULT_LANGUAGE"),p=new A.OlP("USE_EXTEND");let h=(()=>{class j{constructor(d,I,U,H,v,R=!0,B=!1,Q=!1,J){this.store=d,this.currentLoader=I,this.compiler=U,this.parser=H,this.missingTranslationHandler=v,this.useDefaultLang=R,this.isolate=B,this.extend=Q,this.pending=!1,this._onTranslationChange=new A.vpe,this._onLangChange=new A.vpe,this._onDefaultLangChange=new A.vpe,this._langs=[],this._translations={},this._translationRequests={},J&&this.setDefaultLang(J)}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(d){this.isolate?this._defaultLang=d:this.store.defaultLang=d}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(d){this.isolate?this._currentLang=d:this.store.currentLang=d}get langs(){return this.isolate?this._langs:this.store.langs}set langs(d){this.isolate?this._langs=d:this.store.langs=d}get translations(){return this.isolate?this._translations:this.store.translations}set translations(d){this.isolate?this._translations=d:this.store.translations=d}setDefaultLang(d){if(d===this.defaultLang)return;let I=this.retrieveTranslations(d);typeof I<"u"?(null==this.defaultLang&&(this.defaultLang=d),I.pipe((0,it.q)(1)).subscribe(U=>{this.changeDefaultLang(d)})):this.changeDefaultLang(d)}getDefaultLang(){return this.defaultLang}use(d){if(d===this.currentLang)return(0,t.of)(this.translations[d]);let I=this.retrieveTranslations(d);return typeof I<"u"?(this.currentLang||(this.currentLang=d),I.pipe((0,it.q)(1)).subscribe(U=>{this.changeLang(d)}),I):(this.changeLang(d),(0,t.of)(this.translations[d]))}retrieveTranslations(d){let I;return(typeof this.translations[d]>"u"||this.extend)&&(this._translationRequests[d]=this._translationRequests[d]||this.getTranslation(d),I=this._translationRequests[d]),I}getTranslation(d){this.pending=!0;const I=this.currentLoader.getTranslation(d).pipe(N(1),(0,it.q)(1));return this.loadingTranslations=I.pipe((0,b.U)(U=>this.compiler.compileTranslations(U,d)),N(1),(0,it.q)(1)),this.loadingTranslations.subscribe({next:U=>{this.translations[d]=this.extend&&this.translations[d]?{...U,...this.translations[d]}:U,this.updateLangs(),this.pending=!1},error:U=>{this.pending=!1}}),I}setTranslation(d,I,U=!1){I=this.compiler.compileTranslations(I,d),this.translations[d]=(U||this.extend)&&this.translations[d]?_(this.translations[d],I):I,this.updateLangs(),this.onTranslationChange.emit({lang:d,translations:this.translations[d]})}getLangs(){return this.langs}addLangs(d){d.forEach(I=>{-1===this.langs.indexOf(I)&&this.langs.push(I)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(d,I,U){let H;if(I instanceof Array){let v={},R=!1;for(let B of I)v[B]=this.getParsedResult(d,B,U),V(v[B])&&(R=!0);if(R){const B=I.map(Q=>V(v[Q])?v[Q]:(0,t.of)(v[Q]));return(0,Y.D)(B).pipe((0,b.U)(Q=>{let J={};return Q.forEach((rt,ut)=>{J[I[ut]]=rt}),J}))}return v}if(d&&(H=this.parser.interpolate(this.parser.getValue(d,I),U)),typeof H>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(H=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],I),U)),typeof H>"u"){let v={key:I,translateService:this};typeof U<"u"&&(v.interpolateParams=U),H=this.missingTranslationHandler.handle(v)}return typeof H<"u"?H:I}get(d,I){if(!z(d)||!d.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,g.b)(U=>V(U=this.getParsedResult(U,d,I))?U:(0,t.of)(U)));{let U=this.getParsedResult(this.translations[this.currentLang],d,I);return V(U)?U:(0,t.of)(U)}}getStreamOnTranslationChange(d,I){if(!z(d)||!d.length)throw new Error('Parameter "key" required');return(0,K.z)((0,ot.P)(()=>this.get(d,I)),this.onTranslationChange.pipe((0,T.w)(U=>{const H=this.getParsedResult(U.translations,d,I);return"function"==typeof H.subscribe?H:(0,t.of)(H)})))}stream(d,I){if(!z(d)||!d.length)throw new Error('Parameter "key" required');return(0,K.z)((0,ot.P)(()=>this.get(d,I)),this.onLangChange.pipe((0,T.w)(U=>{const H=this.getParsedResult(U.translations,d,I);return V(H)?H:(0,t.of)(H)})))}instant(d,I){if(!z(d)||!d.length)throw new Error('Parameter "key" required');let U=this.getParsedResult(this.translations[this.currentLang],d,I);if(V(U)){if(d instanceof Array){let H={};return d.forEach((v,R)=>{H[d[R]]=d[R]}),H}return d}return U}set(d,I,U=this.currentLang){this.translations[U][d]=this.compiler.compile(I,U),this.updateLangs(),this.onTranslationChange.emit({lang:U,translations:this.translations[U]})}changeLang(d){this.currentLang=d,this.onLangChange.emit({lang:d,translations:this.translations[d]}),null==this.defaultLang&&this.changeDefaultLang(d)}changeDefaultLang(d){this.defaultLang=d,this.onDefaultLangChange.emit({lang:d,translations:this.translations[d]})}reloadLang(d){return this.resetLang(d),this.getTranslation(d)}resetLang(d){this._translationRequests[d]=void 0,this.translations[d]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let d=window.navigator.languages?window.navigator.languages[0]:null;return d=d||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof d>"u"?void 0:(-1!==d.indexOf("-")&&(d=d.split("-")[0]),-1!==d.indexOf("_")&&(d=d.split("_")[0]),d)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let d=window.navigator.languages?window.navigator.languages[0]:null;return d=d||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,d}}return j.\u0275fac=function(d){return new(d||j)(A.LFG(n),A.LFG(y),A.LFG(s),A.LFG(l),A.LFG(x),A.LFG(e),A.LFG(r),A.LFG(p),A.LFG(o))},j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac}),j})(),k=(()=>{class j{constructor(d,I,U){this.translateService=d,this.element=I,this._ref=U,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(H=>{H.lang===this.translateService.currentLang&&this.checkNodes(!0,H.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(H=>{this.checkNodes(!0,H.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(H=>{this.checkNodes(!0)}))}set translate(d){d&&(this.key=d,this.checkNodes())}set translateParams(d){E(this.currentParams,d)||(this.currentParams=d,this.checkNodes(!0))}ngAfterViewChecked(){this.checkNodes()}checkNodes(d=!1,I){let U=this.element.nativeElement.childNodes;U.length||(this.setContent(this.element.nativeElement,this.key),U=this.element.nativeElement.childNodes);for(let H=0;H{v!==d&&(I.lastKey=d),I.originalContent||(I.originalContent=this.getContent(I)),I.currentValue=z(v)?v:I.originalContent||d,this.setContent(I,this.key?I.currentValue:I.originalContent.replace(d,I.currentValue)),this._ref.markForCheck()};if(z(U)){let v=this.translateService.getParsedResult(U,d,this.currentParams);V(v)?v.subscribe({next:H}):H(v)}else this.translateService.get(d,this.currentParams).subscribe(H)}}getContent(d){return z(d.textContent)?d.textContent:d.data}setContent(d,I){z(d.textContent)?d.textContent=I:d.data=I}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}}return j.\u0275fac=function(d){return new(d||j)(A.Y36(h),A.Y36(A.SBq),A.Y36(A.sBO))},j.\u0275dir=A.lG2({type:j,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}}),j})(),P=(()=>{class j{constructor(d,I){this.translate=d,this._ref=I,this.value="",this.lastKey=null,this.lastParams=[]}updateValue(d,I,U){let H=v=>{this.value=void 0!==v?v:d,this.lastKey=d,this._ref.markForCheck()};if(U){let v=this.translate.getParsedResult(U,d,I);V(v.subscribe)?v.subscribe(H):H(v)}this.translate.get(d,I).subscribe(H)}transform(d,...I){if(!d||!d.length)return d;if(E(d,this.lastKey)&&E(I,this.lastParams))return this.value;let U;if(z(I[0])&&I.length)if("string"==typeof I[0]&&I[0].length){let H=I[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{U=JSON.parse(H)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${I[0]}`)}}else"object"==typeof I[0]&&!Array.isArray(I[0])&&(U=I[0]);return this.lastKey=d,this.lastParams=I,this.updateValue(d,U),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(H=>{this.lastKey&&H.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(d,U,H.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(H=>{this.lastKey&&(this.lastKey=null,this.updateValue(d,U,H.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(d,U))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return j.\u0275fac=function(d){return new(d||j)(A.Y36(h,16),A.Y36(A.sBO,16))},j.\u0275pipe=A.Yjl({name:"translate",type:j,pure:!1}),j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac}),j})(),X=(()=>{class j{static forRoot(d={}){return{ngModule:j,providers:[d.loader||{provide:y,useClass:C},d.compiler||{provide:s,useClass:a},d.parser||{provide:l,useClass:m},d.missingTranslationHandler||{provide:x,useClass:w},n,{provide:r,useValue:d.isolate},{provide:e,useValue:d.useDefaultLang},{provide:p,useValue:d.extend},{provide:o,useValue:d.defaultLanguage},h]}}static forChild(d={}){return{ngModule:j,providers:[d.loader||{provide:y,useClass:C},d.compiler||{provide:s,useClass:a},d.parser||{provide:l,useClass:m},d.missingTranslationHandler||{provide:x,useClass:w},{provide:r,useValue:d.isolate},{provide:e,useValue:d.useDefaultLang},{provide:p,useValue:d.extend},{provide:o,useValue:d.defaultLanguage},h]}}}return j.\u0275fac=function(d){return new(d||j)},j.\u0275mod=A.oAB({type:j}),j.\u0275inj=A.cJS({}),j})()},37020:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{kL:()=>W,Dm:()=>g,SD:()=>C,mA:()=>T});var A=Bt(93470),t=Bt.t(A,2),Rt=Bt(77579);class $ extends Rt.x{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(w){const{hasError:E,_hasValue:z,_value:L,thrownError:_,isStopped:l,_isComplete:m}=this;E?w.error(_):(l||m)&&(z&&w.next(L),w.complete())}next(w){this.isStopped||(this._value=w,this._hasValue=!0)}complete(){const{_hasValue:w,_value:E,_isComplete:z}=this;z||(this._isComplete=!0,w&&super.next(E),super.complete())}}var V=Bt(94650),Y=Bt(81220),K=Bt.t(Y,2),ot=Bt(16150),it=Bt.t(ot,2),et=Bt(21700),nt=Bt.t(et,2);class W{constructor(w={series:[]}){this.options=w,this.refSubject=new $,this.ref$=this.refSubject.asObservable()}addPoint(w,E=0,z=!0,L=!1){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].addPoint(w,z,L)})}addSeries(w,E=!0,z){this.ref$.subscribe(L=>{L.addSeries(w,E,z)})}removePoint(w,E=0){this.ref$.subscribe(z=>{z.series.length>E&&z.series[E].data.length>w&&z.series[E].removePoint(w,!0)})}removeSeries(w){this.ref$.subscribe(E=>{E.series.length>w&&E.series[w].remove(!0)})}init(w){this.ref||A.chart(w.nativeElement,this.options,E=>{this.ref||(this.refSubject.next(E),this.ref=E,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new $,this.ref$=this.refSubject.asObservable())}}class G{constructor(w={series:[]}){this.options=w,this.refSubject=new $,this.ref$=this.refSubject.asObservable()}init(w){this.ref||Y.mapChart(w.nativeElement,this.options,E=>{this.ref||(this.refSubject.next(E),this.ref=E,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new $,this.ref$=this.refSubject.asObservable())}}class N{constructor(w={series:[]}){this.options=w,this.refSubject=new $,this.ref$=this.refSubject.asObservable()}init(w){this.ref||ot.stockChart(w.nativeElement,this.options,E=>{this.ref||(this.refSubject.next(E),this.ref=E,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new $,this.ref$=this.refSubject.asObservable())}}class b{constructor(w={series:[]}){this.options=w,this.refSubject=new $,this.ref$=this.refSubject.asObservable()}init(w){this.ref||et.ganttChart(w.nativeElement,this.options,E=>{this.ref||(this.refSubject.next(E),this.ref=E,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new $,this.ref$=this.refSubject.asObservable())}}let g=(()=>{class x{constructor(E){this.el=E}ngOnChanges(E){E.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof W||this.chart instanceof N||this.chart instanceof G||this.chart instanceof b)&&this.chart.init(this.el)}destroy(){(this.chart instanceof W||this.chart instanceof N||this.chart instanceof G||this.chart instanceof b)&&this.chart.destroy()}}return x.\u0275fac=function(E){return new(E||x)(V.Y36(V.SBq))},x.\u0275dir=V.lG2({type:x,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[V.TTD]}),x})(),T=new V.OlP("HighchartsModules"),y=(()=>{class x{constructor(E){this.chartModules=E}initModules(){this.chartModules.forEach(E=>{[t,it,K,nt].forEach(E)})}}return x.\u0275fac=function(E){return new(E||x)(V.LFG(T))},x.\u0275prov=V.Yz7({token:x,factory:x.\u0275fac}),x})(),C=(()=>{class x{constructor(E){this.cs=E,this.cs.initModules()}}return x.\u0275fac=function(E){return new(E||x)(V.LFG(y))},x.\u0275mod=V.oAB({type:x}),x.\u0275inj=V.cJS({providers:[{provide:T,useValue:[]},y]}),x})()},68423:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{Ro:()=>E,ef:()=>z,t2:()=>C});var A=Bt(94650),t=Bt(61135),Rt=Bt(77579),$=Bt(39300),V=Bt(82722),Y=Bt(37340),K=Bt(36895),ot=Bt(11481);const it=["overlay"];function et(L,_){1&L&&A._UZ(0,"div")}function nt(L,_){if(1&L&&(A.TgZ(0,"div"),A.YNc(1,et,1,0,"div",6),A.qZA()),2&L){const l=A.oxw(2);A.Tol(l.spinner.class),A.Udp("color",l.spinner.color),A.xp6(1),A.Q6J("ngForOf",l.spinner.divArray)}}function W(L,_){if(1&L&&(A._UZ(0,"div",7),A.ALo(1,"safeHtml")),2&L){const l=A.oxw(2);A.Q6J("innerHTML",A.lcZ(1,1,l.template),A.oJD)}}function G(L,_){if(1&L&&(A.TgZ(0,"div",1,2),A.YNc(2,nt,2,5,"div",3),A.YNc(3,W,2,3,"div",4),A.TgZ(4,"div",5),A.Hsn(5),A.qZA()()),2&L){const l=A.oxw();A.Udp("background-color",l.spinner.bdColor)("z-index",l.spinner.zIndex)("position",l.spinner.fullScreen?"fixed":"absolute"),A.Q6J("@.disabled",l.disableAnimation)("@fadeIn","in"),A.xp6(2),A.Q6J("ngIf",!l.template),A.xp6(1),A.Q6J("ngIf",l.template),A.xp6(1),A.Udp("z-index",l.spinner.zIndex)}}const N=["*"],b={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},T="primary";class y{constructor(_){Object.assign(this,_)}static create(_){return!_?.template&&(null==_?.type||0===_.type.length)&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new y(_)}}let C=(()=>{class L{constructor(){this.spinnerObservable=new t.X(null)}getSpinner(l){return this.spinnerObservable.asObservable().pipe((0,$.h)(m=>m&&m.name===l))}show(l=T,m){return new Promise((s,a)=>{setTimeout(()=>{m&&Object.keys(m).length?(m.name=l,this.spinnerObservable.next(new y({...m,show:!0})),s(!0)):(this.spinnerObservable.next(new y({name:l,show:!0})),s(!0))},10)})}hide(l=T,m=10){return new Promise((s,a)=>{setTimeout(()=>{this.spinnerObservable.next(new y({name:l,show:!1})),s(!0)},m)})}}return L.\u0275fac=function(l){return new(l||L)},L.\u0275prov=A.Yz7({token:L,factory:L.\u0275fac,providedIn:"root"}),L})();const x=new A.OlP("NGX_SPINNER_CONFIG");let w=(()=>{class L{constructor(l){this._sanitizer=l}transform(l){if(l)return this._sanitizer.bypassSecurityTrustHtml(l)}}return L.\u0275fac=function(l){return new(l||L)(A.Y36(ot.H7,16))},L.\u0275pipe=A.Yjl({name:"safeHtml",type:L,pure:!0}),L})(),E=(()=>{class L{constructor(l,m,s,a){this.spinnerService=l,this.changeDetector=m,this.elementRef=s,this.globalConfig=a,this.disableAnimation=!1,this.spinner=new y,this.ngUnsubscribe=new Rt.x,this.setDefaultOptions=()=>{const{type:n}=this.globalConfig??{};this.spinner=y.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??n,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=T,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}handleKeyboardEvent(l){this.spinnerDOM&&this.spinnerDOM.nativeElement&&(this.fullScreen||!this.fullScreen&&this.isSpinnerZone(l.target))&&(l.returnValue=!1,l.preventDefault())}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,V.R)(this.ngUnsubscribe)).subscribe(l=>{this.setDefaultOptions(),Object.assign(this.spinner,l),l.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(l){return l===this.elementRef.nativeElement.parentElement||l.parentNode&&this.isSpinnerZone(l.parentNode)}ngOnChanges(l){for(const m in l)if(m){const s=l[m];if(s.isFirstChange())return;typeof s.currentValue<"u"&&s.currentValue!==s.previousValue&&""!==s.currentValue&&(this.spinner[m]=s.currentValue,"showSpinner"===m&&(s.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===m&&this.initObservable())}}getClass(l,m){this.spinner.divCount=b[l],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((a,n)=>n);let s="";switch(m.toLowerCase()){case"small":s="la-sm";break;case"medium":s="la-2x";break;case"large":s="la-3x"}return"la-"+l+" "+s}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}}return L.\u0275fac=function(l){return new(l||L)(A.Y36(C),A.Y36(A.sBO),A.Y36(A.SBq),A.Y36(x,8))},L.\u0275cmp=A.Xpm({type:L,selectors:[["ngx-spinner"]],viewQuery:function(l,m){if(1&l&&A.Gf(it,5),2&l){let s;A.iGM(s=A.CRH())&&(m.spinnerDOM=s.first)}},hostBindings:function(l,m){1&l&&A.NdJ("keydown",function(a){return m.handleKeyboardEvent(a)},!1,A.evT)},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[A.TTD],ngContentSelectors:N,decls:1,vars:1,consts:[["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],["overlay",""],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(l,m){1&l&&(A.F$t(),A.YNc(0,G,6,12,"div",0)),2&l&&A.Q6J("ngIf",m.spinner.show)},dependencies:[K.sg,K.O5,w],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,Y.X$)("fadeIn",[(0,Y.SB)("in",(0,Y.oB)({opacity:1})),(0,Y.eR)(":enter",[(0,Y.oB)({opacity:0}),(0,Y.jt)(300)]),(0,Y.eR)(":leave",(0,Y.jt)(200,(0,Y.oB)({opacity:0})))])]},changeDetection:0}),L})(),z=(()=>{class L{static forRoot(l){return{ngModule:L,providers:[{provide:x,useValue:l}]}}}return L.\u0275fac=function(l){return new(l||L)},L.\u0275mod=A.oAB({type:L}),L.\u0275inj=A.cJS({imports:[K.ez]}),L})()},97185:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{Rh:()=>p,_W:()=>r});var A=Bt(94650),t=Bt(37340),Rt=Bt(77579),$=Bt(36895),V=Bt(11481);const Y=["toast-component",""];function K(j,c){if(1&j){const d=A.EpF();A.TgZ(0,"button",5),A.NdJ("click",function(){A.CHM(d);const U=A.oxw();return A.KtG(U.remove())}),A.TgZ(1,"span",6),A._uU(2,"\xd7"),A.qZA()()}}function ot(j,c){if(1&j&&(A.ynx(0),A._uU(1),A.BQk()),2&j){const d=A.oxw(2);A.xp6(1),A.hij("[",d.duplicatesCount+1,"]")}}function it(j,c){if(1&j&&(A.TgZ(0,"div"),A._uU(1),A.YNc(2,ot,2,1,"ng-container",4),A.qZA()),2&j){const d=A.oxw();A.Tol(d.options.titleClass),A.uIk("aria-label",d.title),A.xp6(1),A.hij(" ",d.title," "),A.xp6(1),A.Q6J("ngIf",d.duplicatesCount)}}function et(j,c){if(1&j&&A._UZ(0,"div",7),2&j){const d=A.oxw();A.Tol(d.options.messageClass),A.Q6J("innerHTML",d.message,A.oJD)}}function nt(j,c){if(1&j&&(A.TgZ(0,"div",8),A._uU(1),A.qZA()),2&j){const d=A.oxw();A.Tol(d.options.messageClass),A.uIk("aria-label",d.message),A.xp6(1),A.hij(" ",d.message," ")}}function W(j,c){if(1&j&&(A.TgZ(0,"div"),A._UZ(1,"div",9),A.qZA()),2&j){const d=A.oxw();A.xp6(1),A.Udp("width",d.width+"%")}}class w{constructor(c,d){this.component=c,this.injector=d}attach(c,d){return this._attachedHost=c,c.attach(this,d)}detach(){const c=this._attachedHost;if(c)return this._attachedHost=void 0,c.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(c){this._attachedHost=c}}class E{attach(c,d){return this._attachedPortal=c,this.attachComponentPortal(c,d)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(c){this._disposeFn=c}}class z{constructor(c){this._overlayRef=c,this.duplicatesCount=0,this._afterClosed=new Rt.x,this._activate=new Rt.x,this._manualClose=new Rt.x,this._resetTimeout=new Rt.x,this._countDuplicate=new Rt.x}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(c,d){c&&this._resetTimeout.next(),d&&this._countDuplicate.next(++this.duplicatesCount)}}class L{constructor(c,d,I,U,H,v){this.toastId=c,this.config=d,this.message=I,this.title=U,this.toastType=H,this.toastRef=v,this._onTap=new Rt.x,this._onAction=new Rt.x,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(c){this._onAction.next(c)}onAction(){return this._onAction.asObservable()}}const l=new A.OlP("ToastConfig");class m extends E{constructor(c,d,I){super(),this._hostDomElement=c,this._componentFactoryResolver=d,this._appRef=I}attachComponentPortal(c,d){const I=this._componentFactoryResolver.resolveComponentFactory(c.component);let U;return U=I.create(c.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),d?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(c){return c.hostView.rootNodes[0]}}class s{constructor(c){this._portalHost=c}attach(c,d=!0){return this._portalHost.attach(c,d)}detach(){return this._portalHost.detach()}}let a=(()=>{class j{constructor(d){this._document=d}ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const d=this._document.createElement("div");d.classList.add("overlay-container"),d.setAttribute("aria-live","polite"),this._document.body.appendChild(d),this._containerElement=d}}return j.\u0275fac=function(d){return new(d||j)(A.LFG($.K0))},j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac,providedIn:"root"}),j})(),n=(()=>{class j{constructor(d,I,U,H){this._overlayContainer=d,this._componentFactoryResolver=I,this._appRef=U,this._document=H,this._paneElements=new Map}create(d,I){return this._createOverlayRef(this.getPaneElement(d,I))}getPaneElement(d="",I){return this._paneElements.get(I)||this._paneElements.set(I,{}),this._paneElements.get(I)[d]||(this._paneElements.get(I)[d]=this._createPaneElement(d,I)),this._paneElements.get(I)[d]}_createPaneElement(d,I){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(d),U.classList.add("toast-container"),I?I.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(d){return new m(d,this._componentFactoryResolver,this._appRef)}_createOverlayRef(d){return new s(this._createPortalHost(d))}}return j.\u0275fac=function(d){return new(d||j)(A.LFG(a),A.LFG(A._Vd),A.LFG(A.z2F),A.LFG($.K0))},j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac,providedIn:"root"}),j})(),r=(()=>{class j{constructor(d,I,U,H,v){this.overlay=I,this._injector=U,this.sanitizer=H,this.ngZone=v,this.currentlyActive=0,this.toasts=[],this.index=0,this.toastrConfig={...d.default,...d.config},d.config.iconClasses&&(this.toastrConfig.iconClasses={...d.default.iconClasses,...d.config.iconClasses})}show(d,I,U={},H=""){return this._preBuildNotification(H,d,I,this.applyConfig(U))}success(d,I,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",d,I,this.applyConfig(U))}error(d,I,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",d,I,this.applyConfig(U))}info(d,I,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",d,I,this.applyConfig(U))}warning(d,I,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",d,I,this.applyConfig(U))}clear(d){for(const I of this.toasts)if(void 0!==d){if(I.toastId===d)return void I.toastRef.manualClose()}else I.toastRef.manualClose()}remove(d){const I=this._findToast(d);if(!I||(I.activeToast.toastRef.close(),this.toasts.splice(I.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(d,I,U,H)):this._buildNotification(d,I,U,H)}_buildNotification(d,I,U,H){if(!H.toastComponent)throw new Error("toastComponent required");const v=this.findDuplicate(U,I,this.toastrConfig.resetTimeoutOnDuplicate&&H.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||I)&&this.toastrConfig.preventDuplicates&&null!==v)return v;this.previousToastMessage=I;let R=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(R=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const B=this.overlay.create(H.positionClass,this.overlayContainer);this.index=this.index+1;let Q=I;I&&H.enableHtml&&(Q=this.sanitizer.sanitize(A.q3G.HTML,I));const J=new z(B),rt=new L(this.index,H,Q,U,d,J),vt=A.zs3.create({providers:[{provide:L,useValue:rt}],parent:this._injector}),gt=new w(H.toastComponent,vt),Lt=B.attach(gt,H.newestOnTop);J.componentInstance=Lt.instance;const Ft={toastId:this.index,title:U||"",message:I||"",toastRef:J,onShown:J.afterActivate(),onHidden:J.afterClosed(),onTap:rt.onTap(),onAction:rt.onAction(),portal:Lt};return R||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ft.toastRef.activate()})),this.toasts.push(Ft),Ft}}return j.\u0275fac=function(d){return new(d||j)(A.LFG(l),A.LFG(n),A.LFG(A.zs3),A.LFG(V.H7),A.LFG(A.R0b))},j.\u0275prov=A.Yz7({token:j,factory:j.\u0275fac,providedIn:"root"}),j})();const o={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",payload:null,toastComponent:(()=>{class j{constructor(d,I,U){this.toastrService=d,this.toastPackage=I,this.ngZone=U,this.width=-1,this.toastClasses="",this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}},this.message=I.message,this.title=I.title,this.options=I.config,this.originalTimeout=I.config.timeOut,this.toastClasses=`${I.toastType} ${I.config.toastClass}`,this.sub=I.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=I.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=I.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=I.toastRef.countDuplicate().subscribe(H=>{this.duplicatesCount=H})}get displayStyle(){if("inactive"===this.state.value)return"none"}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const d=(new Date).getTime();this.width=(this.hideTime-d)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(d,I){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(d),I)):this.timeout=setTimeout(()=>d(),I)}outsideInterval(d,I){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(d),I)):this.intervalId=setInterval(()=>d(),I)}runInsideAngular(d){this.ngZone?this.ngZone.run(()=>d()):d()}}return j.\u0275fac=function(d){return new(d||j)(A.Y36(r),A.Y36(L),A.Y36(A.R0b))},j.\u0275cmp=A.Xpm({type:j,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(d,I){1&d&&A.NdJ("click",function(){return I.tapToast()})("mouseenter",function(){return I.stickAround()})("mouseleave",function(){return I.delayedHideToast()}),2&d&&(A.d8E("@flyInOut",I.state),A.Tol(I.toastClasses),A.Udp("display",I.displayStyle))},attrs:Y,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(d,I){1&d&&(A.YNc(0,K,3,0,"button",0),A.YNc(1,it,3,5,"div",1),A.YNc(2,et,1,3,"div",2),A.YNc(3,nt,2,4,"div",3),A.YNc(4,W,2,2,"div",4)),2&d&&(A.Q6J("ngIf",I.options.closeButton),A.xp6(1),A.Q6J("ngIf",I.title),A.xp6(1),A.Q6J("ngIf",I.message&&I.options.enableHtml),A.xp6(1),A.Q6J("ngIf",I.message&&!I.options.enableHtml),A.xp6(1),A.Q6J("ngIf",I.options.progressBar))},dependencies:[$.O5],encapsulation:2,data:{animation:[(0,t.X$)("flyInOut",[(0,t.SB)("inactive",(0,t.oB)({opacity:0})),(0,t.SB)("active",(0,t.oB)({opacity:1})),(0,t.SB)("removed",(0,t.oB)({opacity:0})),(0,t.eR)("inactive => active",(0,t.jt)("{{ easeTime }}ms {{ easing }}")),(0,t.eR)("active => removed",(0,t.jt)("{{ easeTime }}ms {{ easing }}"))])]}}),j})()};let p=(()=>{class j{static forRoot(d={}){return{ngModule:j,providers:[{provide:l,useValue:{default:o,config:d}}]}}}return j.\u0275fac=function(d){return new(d||j)},j.\u0275mod=A.oAB({type:j}),j.\u0275inj=A.cJS({imports:[$.ez]}),j})()},10805:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{F0:()=>G,a6:()=>it,b4:()=>b,iZ:()=>nt,jx:()=>y,m8:()=>C,pg:()=>et,ws:()=>x});var A=Bt(94650),t=Bt(77579),Rt=Bt(60982),$=Bt(36895);let it=(()=>{class E{}return E.STARTS_WITH="startsWith",E.CONTAINS="contains",E.NOT_CONTAINS="notContains",E.ENDS_WITH="endsWith",E.EQUALS="equals",E.NOT_EQUALS="notEquals",E.IN="in",E.LESS_THAN="lt",E.LESS_THAN_OR_EQUAL_TO="lte",E.GREATER_THAN="gt",E.GREATER_THAN_OR_EQUAL_TO="gte",E.BETWEEN="between",E.IS="is",E.IS_NOT="isNot",E.BEFORE="before",E.AFTER="after",E.DATE_IS="dateIs",E.DATE_IS_NOT="dateIsNot",E.DATE_BEFORE="dateBefore",E.DATE_AFTER="dateAfter",E})(),et=(()=>{class E{}return E.AND="and",E.OR="or",E})(),nt=(()=>{class E{constructor(){this.filters={startsWith:(L,_,l)=>{if(null==_||""===_.trim())return!0;if(null==L)return!1;let m=Rt.gb.removeAccents(_.toString()).toLocaleLowerCase(l);return Rt.gb.removeAccents(L.toString()).toLocaleLowerCase(l).slice(0,m.length)===m},contains:(L,_,l)=>{if(null==_||"string"==typeof _&&""===_.trim())return!0;if(null==L)return!1;let m=Rt.gb.removeAccents(_.toString()).toLocaleLowerCase(l);return-1!==Rt.gb.removeAccents(L.toString()).toLocaleLowerCase(l).indexOf(m)},notContains:(L,_,l)=>{if(null==_||"string"==typeof _&&""===_.trim())return!0;if(null==L)return!1;let m=Rt.gb.removeAccents(_.toString()).toLocaleLowerCase(l);return-1===Rt.gb.removeAccents(L.toString()).toLocaleLowerCase(l).indexOf(m)},endsWith:(L,_,l)=>{if(null==_||""===_.trim())return!0;if(null==L)return!1;let m=Rt.gb.removeAccents(_.toString()).toLocaleLowerCase(l),s=Rt.gb.removeAccents(L.toString()).toLocaleLowerCase(l);return-1!==s.indexOf(m,s.length-m.length)},equals:(L,_,l)=>null==_||"string"==typeof _&&""===_.trim()||null!=L&&(L.getTime&&_.getTime?L.getTime()===_.getTime():Rt.gb.removeAccents(L.toString()).toLocaleLowerCase(l)==Rt.gb.removeAccents(_.toString()).toLocaleLowerCase(l)),notEquals:(L,_,l)=>!(null==_||"string"==typeof _&&""===_.trim()||null!=L&&(L.getTime&&_.getTime?L.getTime()===_.getTime():Rt.gb.removeAccents(L.toString()).toLocaleLowerCase(l)==Rt.gb.removeAccents(_.toString()).toLocaleLowerCase(l))),in:(L,_)=>{if(null==_||0===_.length)return!0;for(let l=0;l<_.length;l++)if(Rt.gb.equals(L,_[l]))return!0;return!1},between:(L,_)=>null==_||null==_[0]||null==_[1]||null!=L&&(L.getTime?_[0].getTime()<=L.getTime()&&L.getTime()<=_[1].getTime():_[0]<=L&&L<=_[1]),lt:(L,_,l)=>null==_||null!=L&&(L.getTime&&_.getTime?L.getTime()<_.getTime():L<_),lte:(L,_,l)=>null==_||null!=L&&(L.getTime&&_.getTime?L.getTime()<=_.getTime():L<=_),gt:(L,_,l)=>null==_||null!=L&&(L.getTime&&_.getTime?L.getTime()>_.getTime():L>_),gte:(L,_,l)=>null==_||null!=L&&(L.getTime&&_.getTime?L.getTime()>=_.getTime():L>=_),is:(L,_,l)=>this.filters.equals(L,_,l),isNot:(L,_,l)=>this.filters.notEquals(L,_,l),before:(L,_,l)=>this.filters.lt(L,_,l),after:(L,_,l)=>this.filters.gt(L,_,l),dateIs:(L,_)=>null==_||null!=L&&L.toDateString()===_.toDateString(),dateIsNot:(L,_)=>null==_||null!=L&&L.toDateString()!==_.toDateString(),dateBefore:(L,_)=>null==_||null!=L&&L.getTime()<_.getTime(),dateAfter:(L,_)=>null==_||null!=L&&L.getTime()>_.getTime()}}filter(L,_,l,m,s){let a=[];if(L)for(let n of L)for(let r of _){let e=Rt.gb.resolveFieldData(n,r);if(this.filters[m](e,l,s)){a.push(n);break}}return a}register(L,_){this.filters[L]=_}}return E.\u0275fac=function(L){return new(L||E)},E.\u0275prov=A.Yz7({token:E,factory:E.\u0275fac,providedIn:"root"}),E})(),G=(()=>{class E{constructor(){this.clickSource=new t.x,this.clickObservable=this.clickSource.asObservable()}add(L){L&&this.clickSource.next(L)}}return E.\u0275fac=function(L){return new(L||E)},E.\u0275prov=A.Yz7({token:E,factory:E.\u0275fac,providedIn:"root"}),E})(),b=(()=>{class E{constructor(){this.ripple=!1,this.overlayOptions={},this.filterMatchModeOptions={text:[it.STARTS_WITH,it.CONTAINS,it.NOT_CONTAINS,it.ENDS_WITH,it.EQUALS,it.NOT_EQUALS],numeric:[it.EQUALS,it.NOT_EQUALS,it.LESS_THAN,it.LESS_THAN_OR_EQUAL_TO,it.GREATER_THAN,it.GREATER_THAN_OR_EQUAL_TO],date:[it.DATE_IS,it.DATE_IS_NOT,it.DATE_BEFORE,it.DATE_AFTER]},this.translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",emptyFilterMessage:"No results found"},this.zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100},this.translationSource=new t.x,this.translationObserver=this.translationSource.asObservable()}getTranslation(L){return this.translation[L]}setTranslation(L){this.translation={...this.translation,...L},this.translationSource.next(this.translation)}}return E.\u0275fac=function(L){return new(L||E)},E.\u0275prov=A.Yz7({token:E,factory:E.\u0275fac,providedIn:"root"}),E})(),y=(()=>{class E{constructor(L){this.template=L}getType(){return this.name}}return E.\u0275fac=function(L){return new(L||E)(A.Y36(A.Rgc))},E.\u0275dir=A.lG2({type:E,selectors:[["","pTemplate",""]],inputs:{type:"type",name:["pTemplate","name"]}}),E})(),C=(()=>{class E{}return E.\u0275fac=function(L){return new(L||E)},E.\u0275mod=A.oAB({type:E}),E.\u0275inj=A.cJS({imports:[$.ez]}),E})(),x=(()=>{class E{}return E.STARTS_WITH="startsWith",E.CONTAINS="contains",E.NOT_CONTAINS="notContains",E.ENDS_WITH="endsWith",E.EQUALS="equals",E.NOT_EQUALS="notEquals",E.NO_FILTER="noFilter",E.LT="lt",E.LTE="lte",E.GT="gt",E.GTE="gte",E.IS="is",E.IS_NOT="isNot",E.BEFORE="before",E.AFTER="after",E.CLEAR="clear",E.APPLY="apply",E.MATCH_ALL="matchAll",E.MATCH_ANY="matchAny",E.ADD_RULE="addRule",E.REMOVE_RULE="removeRule",E.ACCEPT="accept",E.REJECT="reject",E.CHOOSE="choose",E.UPLOAD="upload",E.CANCEL="cancel",E.DAY_NAMES="dayNames",E.DAY_NAMES_SHORT="dayNamesShort",E.DAY_NAMES_MIN="dayNamesMin",E.MONTH_NAMES="monthNames",E.MONTH_NAMES_SHORT="monthNamesShort",E.FIRST_DAY_OF_WEEK="firstDayOfWeek",E.TODAY="today",E.WEEK_HEADER="weekHeader",E.WEAK="weak",E.MEDIUM="medium",E.STRONG="strong",E.PASSWORD_PROMPT="passwordPrompt",E.EMPTY_MESSAGE="emptyMessage",E.EMPTY_FILTER_MESSAGE="emptyFilterMessage",E})()},35593:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{Hq:()=>G,hJ:()=>b});var A=Bt(36895),t=Bt(94650),Rt=Bt(19592),$=Bt(91795),V=Bt(60982);let G=(()=>{class g{constructor(y){this.el=y,this.iconPos="left",this.loadingIcon="pi pi-spinner pi-spin",this._loading=!1}get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}ngAfterViewInit(){this._initialStyleClass=this.el.nativeElement.className,Rt.p.addMultipleClasses(this.el.nativeElement,this.getStyleClass()),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){let y="p-button p-component";return this.icon&&!this.label&&V.gb.isEmpty(this.el.nativeElement.textContent)&&(y+=" p-button-icon-only"),this.loading&&(y+=" p-disabled p-button-loading",!this.icon&&this.label&&(y+=" p-button-loading-label-only")),y}setStyleClass(){let y=this.getStyleClass();this._initialStyleClass=this.el.nativeElement.className,this.el.nativeElement.className=y+" "+this._initialStyleClass}createLabel(){if(this.label){let y=document.createElement("span");this.icon&&!this.label&&y.setAttribute("aria-hidden","true"),y.className="p-button-label",y.appendChild(document.createTextNode(this.label)),this.el.nativeElement.appendChild(y)}}createIcon(){if(this.icon||this.loading){let y=document.createElement("span");y.className="p-button-icon",y.setAttribute("aria-hidden","true");let C=this.label?"p-button-icon-"+this.iconPos:null;C&&Rt.p.addClass(y,C);let x=this.getIconClass();x&&Rt.p.addMultipleClasses(y,x),this.el.nativeElement.insertBefore(y,this.el.nativeElement.firstChild)}}updateLabel(){let y=Rt.p.findSingle(this.el.nativeElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.el.nativeElement.removeChild(y)}updateIcon(){let y=Rt.p.findSingle(this.el.nativeElement,".p-button-icon");this.icon||this.loading?y?y.className=this.iconPos?"p-button-icon p-button-icon-"+this.iconPos+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon():y&&this.el.nativeElement.removeChild(y)}getIconClass(){return this.loading?"p-button-loading-icon "+this.loadingIcon:this._icon}ngOnDestroy(){this.initialized=!1}}return g.\u0275fac=function(y){return new(y||g)(t.Y36(t.SBq))},g.\u0275dir=t.lG2({type:g,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}}),g})(),b=(()=>{class g{}return g.\u0275fac=function(y){return new(y||g)},g.\u0275mod=t.oAB({type:g}),g.\u0275inj=t.cJS({imports:[A.ez,$.T]}),g})()},19592:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{V:()=>t,p:()=>A});let A=(()=>{class Rt{static addClass(V,Y){V&&Y&&(V.classList?V.classList.add(Y):V.className+=" "+Y)}static addMultipleClasses(V,Y){if(V&&Y)if(V.classList){let K=Y.trim().split(" ");for(let ot=0;ot{if(y)return"relative"===getComputedStyle(y).getPropertyValue("position")?y:K(y.parentElement)},ot=V.offsetParent?{width:V.offsetWidth,height:V.offsetHeight}:this.getHiddenElementDimensions(V),it=Y.offsetHeight,et=Y.getBoundingClientRect(),nt=this.getWindowScrollTop(),W=this.getWindowScrollLeft(),G=this.getViewport(),b=K(V)?.getBoundingClientRect()||{top:-1*nt,left:-1*W};let g,T;et.top+it+ot.height>G.height?(g=et.top-b.top-ot.height,V.style.transformOrigin="bottom",et.top+g<0&&(g=-1*et.top)):(g=it+et.top-b.top,V.style.transformOrigin="top"),T=ot.width>G.width?-1*(et.left-b.left):et.left-b.left+ot.width>G.width?-1*(et.left-b.left+ot.width-G.width):et.left-b.left,V.style.top=g+"px",V.style.left=T+"px"}static absolutePosition(V,Y){const K=V.offsetParent?{width:V.offsetWidth,height:V.offsetHeight}:this.getHiddenElementDimensions(V),ot=K.height,it=K.width,et=Y.offsetHeight,nt=Y.offsetWidth,W=Y.getBoundingClientRect(),G=this.getWindowScrollTop(),N=this.getWindowScrollLeft(),b=this.getViewport();let g,T;W.top+et+ot>b.height?(g=W.top+G-ot,V.style.transformOrigin="bottom",g<0&&(g=G)):(g=et+W.top+G,V.style.transformOrigin="top"),T=W.left+it>b.width?Math.max(0,W.left+N+nt-it):W.left+N,V.style.top=g+"px",V.style.left=T+"px"}static getParents(V,Y=[]){return null===V.parentNode?Y:this.getParents(V.parentNode,Y.concat([V.parentNode]))}static getScrollableParents(V){let Y=[];if(V){let K=this.getParents(V);const ot=/(auto|scroll)/,it=et=>{let nt=window.getComputedStyle(et,null);return ot.test(nt.getPropertyValue("overflow"))||ot.test(nt.getPropertyValue("overflowX"))||ot.test(nt.getPropertyValue("overflowY"))};for(let et of K){let nt=1===et.nodeType&&et.dataset.scrollselectors;if(nt){let W=nt.split(",");for(let G of W){let N=this.findSingle(et,G);N&&it(N)&&Y.push(N)}}9!==et.nodeType&&it(et)&&Y.push(et)}}return Y}static getHiddenElementOuterHeight(V){V.style.visibility="hidden",V.style.display="block";let Y=V.offsetHeight;return V.style.display="none",V.style.visibility="visible",Y}static getHiddenElementOuterWidth(V){V.style.visibility="hidden",V.style.display="block";let Y=V.offsetWidth;return V.style.display="none",V.style.visibility="visible",Y}static getHiddenElementDimensions(V){let Y={};return V.style.visibility="hidden",V.style.display="block",Y.width=V.offsetWidth,Y.height=V.offsetHeight,V.style.display="none",V.style.visibility="visible",Y}static scrollInView(V,Y){let K=getComputedStyle(V).getPropertyValue("borderTopWidth"),ot=K?parseFloat(K):0,it=getComputedStyle(V).getPropertyValue("paddingTop"),et=it?parseFloat(it):0,nt=V.getBoundingClientRect(),G=Y.getBoundingClientRect().top+document.body.scrollTop-(nt.top+document.body.scrollTop)-ot-et,N=V.scrollTop,b=V.clientHeight,g=this.getOuterHeight(Y);G<0?V.scrollTop=N+G:G+g>b&&(V.scrollTop=N+G-b+g)}static fadeIn(V,Y){V.style.opacity=0;let K=+new Date,ot=0,it=function(){ot=+V.style.opacity.replace(",",".")+((new Date).getTime()-K)/Y,V.style.opacity=ot,K=+new Date,+ot<1&&(window.requestAnimationFrame&&requestAnimationFrame(it)||setTimeout(it,16))};it()}static fadeOut(V,Y){var K=1,et=50/Y;let nt=setInterval(()=>{(K-=et)<=0&&(K=0,clearInterval(nt)),V.style.opacity=K},50)}static getWindowScrollTop(){let V=document.documentElement;return(window.pageYOffset||V.scrollTop)-(V.clientTop||0)}static getWindowScrollLeft(){let V=document.documentElement;return(window.pageXOffset||V.scrollLeft)-(V.clientLeft||0)}static matches(V,Y){var K=Element.prototype;return(K.matches||K.webkitMatchesSelector||K.mozMatchesSelector||K.msMatchesSelector||function(it){return-1!==[].indexOf.call(document.querySelectorAll(it),this)}).call(V,Y)}static getOuterWidth(V,Y){let K=V.offsetWidth;if(Y){let ot=getComputedStyle(V);K+=parseFloat(ot.marginLeft)+parseFloat(ot.marginRight)}return K}static getHorizontalPadding(V){let Y=getComputedStyle(V);return parseFloat(Y.paddingLeft)+parseFloat(Y.paddingRight)}static getHorizontalMargin(V){let Y=getComputedStyle(V);return parseFloat(Y.marginLeft)+parseFloat(Y.marginRight)}static innerWidth(V){let Y=V.offsetWidth,K=getComputedStyle(V);return Y+=parseFloat(K.paddingLeft)+parseFloat(K.paddingRight),Y}static width(V){let Y=V.offsetWidth,K=getComputedStyle(V);return Y-=parseFloat(K.paddingLeft)+parseFloat(K.paddingRight),Y}static getInnerHeight(V){let Y=V.offsetHeight,K=getComputedStyle(V);return Y+=parseFloat(K.paddingTop)+parseFloat(K.paddingBottom),Y}static getOuterHeight(V,Y){let K=V.offsetHeight;if(Y){let ot=getComputedStyle(V);K+=parseFloat(ot.marginTop)+parseFloat(ot.marginBottom)}return K}static getHeight(V){let Y=V.offsetHeight,K=getComputedStyle(V);return Y-=parseFloat(K.paddingTop)+parseFloat(K.paddingBottom)+parseFloat(K.borderTopWidth)+parseFloat(K.borderBottomWidth),Y}static getWidth(V){let Y=V.offsetWidth,K=getComputedStyle(V);return Y-=parseFloat(K.paddingLeft)+parseFloat(K.paddingRight)+parseFloat(K.borderLeftWidth)+parseFloat(K.borderRightWidth),Y}static getViewport(){let V=window,Y=document,K=Y.documentElement,ot=Y.getElementsByTagName("body")[0];return{width:V.innerWidth||K.clientWidth||ot.clientWidth,height:V.innerHeight||K.clientHeight||ot.clientHeight}}static getOffset(V){var Y=V.getBoundingClientRect();return{top:Y.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:Y.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(V,Y){let K=V.parentNode;if(!K)throw"Can't replace element";return K.replaceChild(Y,V)}static getUserAgent(){return navigator.userAgent}static isIE(){var V=window.navigator.userAgent;return V.indexOf("MSIE ")>0||(V.indexOf("Trident/")>0?(V.indexOf("rv:"),!0):V.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(V,Y){if(this.isElement(Y))Y.appendChild(V);else{if(!Y.el||!Y.el.nativeElement)throw"Cannot append "+Y+" to "+V;Y.el.nativeElement.appendChild(V)}}static removeChild(V,Y){if(this.isElement(Y))Y.removeChild(V);else{if(!Y.el||!Y.el.nativeElement)throw"Cannot remove "+V+" from "+Y;Y.el.nativeElement.removeChild(V)}}static removeElement(V){"remove"in Element.prototype?V.remove():V.parentNode.removeChild(V)}static isElement(V){return"object"==typeof HTMLElement?V instanceof HTMLElement:V&&"object"==typeof V&&null!==V&&1===V.nodeType&&"string"==typeof V.nodeName}static calculateScrollbarWidth(V){if(V){let Y=getComputedStyle(V);return V.offsetWidth-V.clientWidth-parseFloat(Y.borderLeftWidth)-parseFloat(Y.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let Y=document.createElement("div");Y.className="p-scrollbar-measure",document.body.appendChild(Y);let K=Y.offsetWidth-Y.clientWidth;return document.body.removeChild(Y),this.calculatedScrollbarWidth=K,K}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let V=document.createElement("div");V.className="p-scrollbar-measure",document.body.appendChild(V);let Y=V.offsetHeight-V.clientHeight;return document.body.removeChild(V),this.calculatedScrollbarWidth=Y,Y}static invokeElementMethod(V,Y,K){V[Y].apply(V,K)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let V=this.resolveUserAgent();this.browser={},V.browser&&(this.browser[V.browser]=!0,this.browser.version=V.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let V=navigator.userAgent.toLowerCase(),Y=/(chrome)[ \/]([\w.]+)/.exec(V)||/(webkit)[ \/]([\w.]+)/.exec(V)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(V)||/(msie) ([\w.]+)/.exec(V)||V.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(V)||[];return{browser:Y[1]||"",version:Y[2]||"0"}}static isInteger(V){return Number.isInteger?Number.isInteger(V):"number"==typeof V&&isFinite(V)&&Math.floor(V)===V}static isHidden(V){return!V||null===V.offsetParent}static isVisible(V){return V&&null!=V.offsetParent}static isExist(V){return null!==V&&typeof V<"u"&&V.nodeName&&V.parentNode}static focus(V,Y){V&&document.activeElement!==V&&V.focus(Y)}static getFocusableElements(V){let Y=Rt.find(V,'button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]),\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]),\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]), select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]),\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]), [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]),\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden]):not(.p-disabled)'),K=[];for(let ot of Y)"none"!=getComputedStyle(ot).display&&"hidden"!=getComputedStyle(ot).visibility&&K.push(ot);return K}static getNextFocusableElement(V,Y=!1){const K=Rt.getFocusableElements(V);let ot=0;if(K&&K.length>0){const it=K.indexOf(K[0].ownerDocument.activeElement);Y?ot=-1==it||0===it?K.length-1:it-1:-1!=it&&it!==K.length-1&&(ot=it+1)}return K[ot]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(V,Y){if(!V)return null;switch(V){case"document":return document;case"window":return window;case"@next":return Y?.nextElementSibling;case"@prev":return Y?.previousElementSibling;case"@parent":return Y?.parentElement;case"@grandparent":return Y?.parentElement.parentElement;default:const K=typeof V;if("string"===K)return document.querySelector(V);if("object"===K&&V.hasOwnProperty("nativeElement"))return this.isExist(V.nativeElement)?V.nativeElement:void 0;const it=(et=V)&&et.constructor&&et.call&&et.apply?V():V;return it&&9===it.nodeType||this.isExist(it)?it:null}var et}}return Rt.zindex=1e3,Rt.calculatedScrollbarWidth=null,Rt.calculatedScrollbarHeight=null,Rt})();class t{constructor($,V=(()=>{})){this.element=$,this.listener=V}bindScrollListener(){this.scrollableParents=A.getScrollableParents(this.element);for(let $=0;${"use strict";Bt.d(Oe,{j:()=>V,o:()=>$});var A=Bt(94650),t=Bt(36895),Rt=Bt(24006);let $=(()=>{class Y{constructor(ot,it,et){this.el=ot,this.ngModel=it,this.cd=et}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(ot){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}}return Y.\u0275fac=function(ot){return new(ot||Y)(A.Y36(A.SBq),A.Y36(Rt.On,8),A.Y36(A.sBO))},Y.\u0275dir=A.lG2({type:Y,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(ot,it){1&ot&&A.NdJ("input",function(nt){return it.onInput(nt)}),2&ot&&A.ekj("p-filled",it.filled)}}),Y})(),V=(()=>{class Y{}return Y.\u0275fac=function(ot){return new(ot||Y)},Y.\u0275mod=A.oAB({type:Y}),Y.\u0275inj=A.cJS({imports:[t.ez]}),Y})()},91795:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{H:()=>V,T:()=>Y});var A=Bt(94650),t=Bt(36895),Rt=Bt(19592),$=Bt(10805);let V=(()=>{class K{constructor(it,et,nt){this.el=it,this.zone=et,this.config=nt}ngAfterViewInit(){this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.onMouseDown.bind(this),this.el.nativeElement.addEventListener("mousedown",this.mouseDownListener)})}onMouseDown(it){let et=this.getInk();if(!et||"none"===getComputedStyle(et,null).display)return;if(Rt.p.removeClass(et,"p-ink-active"),!Rt.p.getHeight(et)&&!Rt.p.getWidth(et)){let N=Math.max(Rt.p.getOuterWidth(this.el.nativeElement),Rt.p.getOuterHeight(this.el.nativeElement));et.style.height=N+"px",et.style.width=N+"px"}let nt=Rt.p.getOffset(this.el.nativeElement),W=it.pageX-nt.left+document.body.scrollTop-Rt.p.getWidth(et)/2,G=it.pageY-nt.top+document.body.scrollLeft-Rt.p.getHeight(et)/2;et.style.top=G+"px",et.style.left=W+"px",Rt.p.addClass(et,"p-ink-active"),this.timeout=setTimeout(()=>{let N=this.getInk();N&&Rt.p.removeClass(N,"p-ink-active")},401)}getInk(){const it=this.el.nativeElement.children;for(let et=0;et{class K{}return K.\u0275fac=function(it){return new(it||K)},K.\u0275mod=A.oAB({type:K}),K.\u0275inj=A.cJS({imports:[t.ez]}),K})()},55017:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{YL:()=>zh,Wq:()=>$l,jB:()=>Fh,fz:()=>ys,lQ:()=>vs,iA:()=>Si,U$:()=>Hh});var A=Bt(36895),t=Bt(94650),Rt=Bt(24006),$=Bt(10805),V=Bt(35593),Y=Bt(37340),K=Bt(19592),ot=Bt(91795),it=Bt(60982);const et=["container"],nt=["inputfield"],W=["contentWrapper"];function G(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"i",8),t.NdJ("click",function(){t.CHM(O);const mt=t.oxw(2);return t.KtG(mt.clear())}),t.qZA()}}function N(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(mt){t.CHM(O),t.oxw();const Mt=t.MAs(1),le=t.oxw();return t.KtG(le.onButtonClick(mt,Mt))}),t.qZA()}if(2&kt){const O=t.oxw(2);t.Q6J("icon",O.icon)("disabled",O.disabled),t.uIk("aria-label",O.iconAriaLabel)}}function b(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"input",4,5),t.NdJ("focus",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onInputFocus(mt))})("keydown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onInputKeydown(mt))})("click",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onInputClick())})("blur",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onInputBlur(mt))})("input",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onUserInput(mt))}),t.qZA(),t.YNc(2,G,1,0,"i",6),t.YNc(3,N,1,3,"button",7)}if(2&kt){const O=t.oxw();t.Tol(O.inputStyleClass),t.Q6J("value",O.inputFieldValue)("readonly",O.readonlyInput)("ngStyle",O.inputStyle)("placeholder",O.placeholder||"")("disabled",O.disabled)("ngClass","p-inputtext p-component"),t.uIk("id",O.inputId)("name",O.name)("required",O.required)("aria-required",O.required)("tabindex",O.tabindex)("inputmode",O.touchUI?"off":null)("aria-labelledby",O.ariaLabelledBy),t.xp6(2),t.Q6J("ngIf",O.showClear&&!O.disabled&&null!=O.value),t.xp6(1),t.Q6J("ngIf",O.showIcon)}}function g(kt,ie){1&kt&&t.GkF(0)}function T(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",30),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.onContainerButtonKeydown(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.onPrevButtonClick(mt))}),t._UZ(1,"span",31),t.qZA()}}function y(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",32),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.switchToMonthView(mt))})("keydown",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.onContainerButtonKeydown(mt))}),t._uU(1),t.qZA()}if(2&kt){const O=t.oxw().$implicit,lt=t.oxw(3);t.Q6J("disabled",lt.switchViewButtonDisabled()),t.xp6(1),t.hij(" ",lt.getMonthName(O.month)," ")}}function C(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",33),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.switchToYearView(mt))})("keydown",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.onContainerButtonKeydown(mt))}),t._uU(1),t.qZA()}if(2&kt){const O=t.oxw().$implicit,lt=t.oxw(3);t.Q6J("disabled",lt.switchViewButtonDisabled()),t.xp6(1),t.hij(" ",lt.getYear(O)," ")}}function x(kt,ie){if(1&kt&&(t.ynx(0),t._uU(1),t.BQk()),2&kt){const O=t.oxw(5);t.xp6(1),t.AsE("",O.yearPickerValues()[0]," - ",O.yearPickerValues()[O.yearPickerValues().length-1],"")}}function w(kt,ie){1&kt&&t.GkF(0)}const E=function(kt){return{$implicit:kt}};function z(kt,ie){if(1&kt&&(t.TgZ(0,"span",34),t.YNc(1,x,2,2,"ng-container",13),t.YNc(2,w,1,0,"ng-container",35),t.qZA()),2&kt){const O=t.oxw(4);t.xp6(1),t.Q6J("ngIf",!O.decadeTemplate),t.xp6(1),t.Q6J("ngTemplateOutlet",O.decadeTemplate)("ngTemplateOutletContext",t.VKq(3,E,O.yearPickerValues))}}function L(kt,ie){if(1&kt&&(t.TgZ(0,"th",41)(1,"span"),t._uU(2),t.qZA()()),2&kt){const O=t.oxw(5);t.xp6(2),t.Oqu(O.getTranslation("weekHeader"))}}function _(kt,ie){if(1&kt&&(t.TgZ(0,"th",42)(1,"span"),t._uU(2),t.qZA()()),2&kt){const O=ie.$implicit;t.xp6(2),t.Oqu(O)}}function l(kt,ie){if(1&kt&&(t.TgZ(0,"td",45)(1,"span",46),t._uU(2),t.qZA()()),2&kt){const O=t.oxw().index,lt=t.oxw(2).$implicit;t.xp6(2),t.hij(" ",lt.weekNumbers[O]," ")}}function m(kt,ie){if(1&kt&&(t.ynx(0),t._uU(1),t.BQk()),2&kt){const O=t.oxw(2).$implicit;t.xp6(1),t.Oqu(O.day)}}function s(kt,ie){1&kt&&t.GkF(0)}const a=function(kt,ie){return{"p-highlight":kt,"p-disabled":ie}};function n(kt,ie){if(1&kt){const O=t.EpF();t.ynx(0),t.TgZ(1,"span",48),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw().$implicit,le=t.oxw(6);return t.KtG(le.onDateSelect(mt,Mt))})("keydown",function(mt){t.CHM(O);const Mt=t.oxw().$implicit,le=t.oxw(3).index,we=t.oxw(3);return t.KtG(we.onDateCellKeydown(mt,Mt,le))}),t.YNc(2,m,2,1,"ng-container",13),t.YNc(3,s,1,0,"ng-container",35),t.qZA(),t.BQk()}if(2&kt){const O=t.oxw().$implicit,lt=t.oxw(6);t.xp6(1),t.Q6J("ngClass",t.WLB(4,a,lt.isSelected(O),!O.selectable)),t.xp6(1),t.Q6J("ngIf",!lt.dateTemplate),t.xp6(1),t.Q6J("ngTemplateOutlet",lt.dateTemplate)("ngTemplateOutletContext",t.VKq(7,E,O))}}const r=function(kt,ie){return{"p-datepicker-other-month":kt,"p-datepicker-today":ie}};function e(kt,ie){if(1&kt&&(t.TgZ(0,"td",47),t.YNc(1,n,4,9,"ng-container",13),t.qZA()),2&kt){const O=ie.$implicit,lt=t.oxw(6);t.Q6J("ngClass",t.WLB(2,r,O.otherMonth,O.today)),t.xp6(1),t.Q6J("ngIf",!O.otherMonth||lt.showOtherMonths)}}function o(kt,ie){if(1&kt&&(t.TgZ(0,"tr"),t.YNc(1,l,3,1,"td",43),t.YNc(2,e,2,5,"td",44),t.qZA()),2&kt){const O=ie.$implicit,lt=t.oxw(5);t.xp6(1),t.Q6J("ngIf",lt.showWeek),t.xp6(1),t.Q6J("ngForOf",O)}}function p(kt,ie){if(1&kt&&(t.TgZ(0,"div",36)(1,"table",37)(2,"thead")(3,"tr"),t.YNc(4,L,3,1,"th",38),t.YNc(5,_,3,1,"th",39),t.qZA()(),t.TgZ(6,"tbody"),t.YNc(7,o,3,2,"tr",40),t.qZA()()()),2&kt){const O=t.oxw().$implicit,lt=t.oxw(3);t.xp6(4),t.Q6J("ngIf",lt.showWeek),t.xp6(1),t.Q6J("ngForOf",lt.weekDays),t.xp6(2),t.Q6J("ngForOf",O.dates)}}function h(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",20)(1,"div",21),t.YNc(2,T,2,0,"button",22),t.TgZ(3,"div",23),t.YNc(4,y,2,2,"button",24),t.YNc(5,C,2,2,"button",25),t.YNc(6,z,3,5,"span",26),t.qZA(),t.TgZ(7,"button",27),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onContainerButtonKeydown(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onNextButtonClick(mt))}),t._UZ(8,"span",28),t.qZA()(),t.YNc(9,p,8,3,"div",29),t.qZA()}if(2&kt){const O=ie.index,lt=t.oxw(3);t.xp6(2),t.Q6J("ngIf",0===O),t.xp6(2),t.Q6J("ngIf","date"===lt.currentView),t.xp6(1),t.Q6J("ngIf","year"!==lt.currentView),t.xp6(1),t.Q6J("ngIf","year"===lt.currentView),t.xp6(1),t.Udp("display",1===lt.numberOfMonths||O===lt.numberOfMonths-1?"inline-flex":"none"),t.xp6(2),t.Q6J("ngIf","date"===lt.currentView)}}function k(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"span",51),t.NdJ("click",function(mt){const le=t.CHM(O).index,we=t.oxw(4);return t.KtG(we.onMonthSelect(mt,le))})("keydown",function(mt){const le=t.CHM(O).index,we=t.oxw(4);return t.KtG(we.onMonthCellKeydown(mt,le))}),t._uU(1),t.qZA()}if(2&kt){const O=ie.$implicit,lt=ie.index,mt=t.oxw(4);t.Q6J("ngClass",t.WLB(2,a,mt.isMonthSelected(lt),mt.isMonthDisabled(lt))),t.xp6(1),t.hij(" ",O," ")}}function P(kt,ie){if(1&kt&&(t.TgZ(0,"div",49),t.YNc(1,k,2,5,"span",50),t.qZA()),2&kt){const O=t.oxw(3);t.xp6(1),t.Q6J("ngForOf",O.monthPickerValues())}}const X=function(kt){return{"p-highlight":kt}};function j(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"span",54),t.NdJ("click",function(mt){const le=t.CHM(O).$implicit,we=t.oxw(4);return t.KtG(we.onYearSelect(mt,le))})("keydown",function(mt){const le=t.CHM(O).$implicit,we=t.oxw(4);return t.KtG(we.onYearCellKeydown(mt,le))}),t._uU(1),t.qZA()}if(2&kt){const O=ie.$implicit,lt=t.oxw(4);t.Q6J("ngClass",t.VKq(2,X,lt.isYearSelected(O))),t.xp6(1),t.hij(" ",O," ")}}function c(kt,ie){if(1&kt&&(t.TgZ(0,"div",52),t.YNc(1,j,2,4,"span",53),t.qZA()),2&kt){const O=t.oxw(3);t.xp6(1),t.Q6J("ngForOf",O.yearPickerValues())}}function d(kt,ie){if(1&kt&&(t.ynx(0),t.TgZ(1,"div",16),t.YNc(2,h,10,7,"div",17),t.qZA(),t.YNc(3,P,2,1,"div",18),t.YNc(4,c,2,1,"div",19),t.BQk()),2&kt){const O=t.oxw(2);t.xp6(2),t.Q6J("ngForOf",O.months),t.xp6(1),t.Q6J("ngIf","month"===O.currentView),t.xp6(1),t.Q6J("ngIf","year"===O.currentView)}}function I(kt,ie){1&kt&&(t.ynx(0),t._uU(1,"0"),t.BQk())}function U(kt,ie){1&kt&&(t.ynx(0),t._uU(1,"0"),t.BQk())}function H(kt,ie){if(1&kt&&(t.TgZ(0,"div",60)(1,"span"),t._uU(2),t.qZA()()),2&kt){const O=t.oxw(3);t.xp6(2),t.Oqu(O.timeSeparator)}}function v(kt,ie){1&kt&&(t.ynx(0),t._uU(1,"0"),t.BQk())}function R(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",65)(1,"button",57),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onContainerButtonKeydown(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.incrementSecond(mt))})("keydown.space",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.incrementSecond(mt))})("mousedown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseDown(mt,2,1))})("mouseup",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.enter",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.space",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("mouseleave",function(){t.CHM(O);const mt=t.oxw(3);return t.KtG(mt.onTimePickerElementMouseLeave())}),t._UZ(2,"span",58),t.qZA(),t.TgZ(3,"span"),t.YNc(4,v,2,0,"ng-container",13),t._uU(5),t.qZA(),t.TgZ(6,"button",57),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onContainerButtonKeydown(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.decrementSecond(mt))})("keydown.space",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.decrementSecond(mt))})("mousedown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseDown(mt,2,-1))})("mouseup",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.enter",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.space",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("mouseleave",function(){t.CHM(O);const mt=t.oxw(3);return t.KtG(mt.onTimePickerElementMouseLeave())}),t._UZ(7,"span",59),t.qZA()()}if(2&kt){const O=t.oxw(3);t.xp6(4),t.Q6J("ngIf",O.currentSecond<10),t.xp6(1),t.Oqu(O.currentSecond)}}function B(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",66)(1,"button",67),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onContainerButtonKeydown(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.toggleAMPM(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.toggleAMPM(mt))}),t._UZ(2,"span",58),t.qZA(),t.TgZ(3,"span"),t._uU(4),t.qZA(),t.TgZ(5,"button",67),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onContainerButtonKeydown(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.toggleAMPM(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.toggleAMPM(mt))}),t._UZ(6,"span",59),t.qZA()()}if(2&kt){const O=t.oxw(3);t.xp6(4),t.Oqu(O.pm?"PM":"AM")}}function Q(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",55)(1,"div",56)(2,"button",57),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onContainerButtonKeydown(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.incrementHour(mt))})("keydown.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.incrementHour(mt))})("mousedown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseDown(mt,0,1))})("mouseup",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("mouseleave",function(){t.CHM(O);const mt=t.oxw(2);return t.KtG(mt.onTimePickerElementMouseLeave())}),t._UZ(3,"span",58),t.qZA(),t.TgZ(4,"span"),t.YNc(5,I,2,0,"ng-container",13),t._uU(6),t.qZA(),t.TgZ(7,"button",57),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onContainerButtonKeydown(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.decrementHour(mt))})("keydown.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.decrementHour(mt))})("mousedown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseDown(mt,0,-1))})("mouseup",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("mouseleave",function(){t.CHM(O);const mt=t.oxw(2);return t.KtG(mt.onTimePickerElementMouseLeave())}),t._UZ(8,"span",59),t.qZA()(),t.TgZ(9,"div",60)(10,"span"),t._uU(11),t.qZA()(),t.TgZ(12,"div",61)(13,"button",57),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onContainerButtonKeydown(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.incrementMinute(mt))})("keydown.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.incrementMinute(mt))})("mousedown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseDown(mt,1,1))})("mouseup",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("mouseleave",function(){t.CHM(O);const mt=t.oxw(2);return t.KtG(mt.onTimePickerElementMouseLeave())}),t._UZ(14,"span",58),t.qZA(),t.TgZ(15,"span"),t.YNc(16,U,2,0,"ng-container",13),t._uU(17),t.qZA(),t.TgZ(18,"button",57),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onContainerButtonKeydown(mt))})("keydown.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.decrementMinute(mt))})("keydown.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.decrementMinute(mt))})("mousedown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseDown(mt,1,-1))})("mouseup",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.enter",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("keyup.space",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTimePickerElementMouseUp(mt))})("mouseleave",function(){t.CHM(O);const mt=t.oxw(2);return t.KtG(mt.onTimePickerElementMouseLeave())}),t._UZ(19,"span",59),t.qZA()(),t.YNc(20,H,3,1,"div",62),t.YNc(21,R,8,2,"div",63),t.YNc(22,B,7,1,"div",64),t.qZA()}if(2&kt){const O=t.oxw(2);t.xp6(5),t.Q6J("ngIf",O.currentHour<10),t.xp6(1),t.Oqu(O.currentHour),t.xp6(5),t.Oqu(O.timeSeparator),t.xp6(5),t.Q6J("ngIf",O.currentMinute<10),t.xp6(1),t.Oqu(O.currentMinute),t.xp6(3),t.Q6J("ngIf",O.showSeconds),t.xp6(1),t.Q6J("ngIf",O.showSeconds),t.xp6(1),t.Q6J("ngIf","12"==O.hourFormat)}}const J=function(kt){return[kt]};function rt(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",68)(1,"button",69),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onContainerButtonKeydown(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onTodayButtonClick(mt))}),t.qZA(),t.TgZ(2,"button",69),t.NdJ("keydown",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onContainerButtonKeydown(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onClearButtonClick(mt))}),t.qZA()()}if(2&kt){const O=t.oxw(2);t.xp6(1),t.Q6J("label",O.getTranslation("today"))("ngClass",t.VKq(4,J,O.todayButtonStyleClass)),t.xp6(1),t.Q6J("label",O.getTranslation("clear"))("ngClass",t.VKq(6,J,O.clearButtonStyleClass))}}function ut(kt,ie){1&kt&&t.GkF(0)}const vt=function(kt,ie,O,lt,mt,Mt){return{"p-datepicker p-component":!0,"p-datepicker-inline":kt,"p-disabled":ie,"p-datepicker-timeonly":O,"p-datepicker-multiple-month":lt,"p-datepicker-monthpicker":mt,"p-datepicker-touch-ui":Mt}},gt=function(kt,ie){return{showTransitionParams:kt,hideTransitionParams:ie}},Lt=function(kt){return{value:"visibleTouchUI",params:kt}},Ft=function(kt){return{value:"visible",params:kt}};function At(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",10,11),t.NdJ("@overlayAnimation.start",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onOverlayAnimationStart(mt))})("@overlayAnimation.done",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onOverlayAnimationDone(mt))})("click",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onOverlayClick(mt))}),t.Hsn(2),t.YNc(3,g,1,0,"ng-container",12),t.YNc(4,d,5,3,"ng-container",13),t.YNc(5,Q,23,8,"div",14),t.YNc(6,rt,3,8,"div",15),t.Hsn(7,1),t.YNc(8,ut,1,0,"ng-container",12),t.qZA()}if(2&kt){const O=t.oxw();t.Tol(O.panelStyleClass),t.Q6J("ngStyle",O.panelStyle)("ngClass",t.HTZ(11,vt,O.inline,O.disabled,O.timeOnly,O.numberOfMonths>1,"month"===O.view,O.touchUI))("@overlayAnimation",O.touchUI?t.VKq(21,Lt,t.WLB(18,gt,O.showTransitionOptions,O.hideTransitionOptions)):t.VKq(26,Ft,t.WLB(23,gt,O.showTransitionOptions,O.hideTransitionOptions)))("@.disabled",!0===O.inline),t.xp6(3),t.Q6J("ngTemplateOutlet",O.headerTemplate),t.xp6(1),t.Q6J("ngIf",!O.timeOnly),t.xp6(1),t.Q6J("ngIf",(O.showTime||O.timeOnly)&&"date"===O.currentView),t.xp6(1),t.Q6J("ngIf",O.showButtonBar),t.xp6(2),t.Q6J("ngTemplateOutlet",O.footerTemplate)}}const Pt=[[["p-header"]],[["p-footer"]]],Ht=function(kt,ie,O,lt){return{"p-calendar":!0,"p-calendar-w-btn":kt,"p-calendar-timeonly":ie,"p-calendar-disabled":O,"p-focus":lt}},Ct=["p-header","p-footer"],ht={provide:Rt.JU,useExisting:(0,t.Gpc)(()=>dt),multi:!0};let dt=(()=>{class kt{constructor(O,lt,mt,Mt,le,we){this.el=O,this.renderer=lt,this.cd=mt,this.zone=Mt,this.config=le,this.overlayService=we,this.multipleSeparator=",",this.rangeSeparator="-",this.inline=!1,this.showOtherMonths=!0,this.icon="pi pi-calendar",this.shortYearCutoff="+10",this.hourFormat="24",this.stepHour=1,this.stepMinute=1,this.stepSecond=1,this.showSeconds=!1,this.showOnFocus=!0,this.showWeek=!1,this.showClear=!1,this.dataType="date",this.selectionMode="single",this.todayButtonStyleClass="p-button-text",this.clearButtonStyleClass="p-button-text",this.autoZIndex=!0,this.baseZIndex=0,this.keepInvalid=!1,this.hideOnDateTimeSelect=!0,this.timeSeparator=":",this.focusTrap=!0,this.showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)",this.hideTransitionOptions=".1s linear",this.onFocus=new t.vpe,this.onBlur=new t.vpe,this.onClose=new t.vpe,this.onSelect=new t.vpe,this.onClear=new t.vpe,this.onInput=new t.vpe,this.onTodayClick=new t.vpe,this.onClearClick=new t.vpe,this.onMonthChange=new t.vpe,this.onYearChange=new t.vpe,this.onClickOutside=new t.vpe,this.onShow=new t.vpe,this.onModelChange=()=>{},this.onModelTouched=()=>{},this.inputFieldValue=null,this.navigationState=null,this._numberOfMonths=1,this._view="date",this.convertTo24Hour=function(He,ci){return"12"==this.hourFormat?12===He?ci?12:0:ci?He+12:He:He}}set content(O){this.contentViewChild=O,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):this.focus||this.initFocusableCell())}get view(){return this._view}set view(O){this._view=O,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(O){if(this._defaultDate=O,this.initialized){const lt=O||new Date;this.currentMonth=lt.getMonth(),this.currentYear=lt.getFullYear(),this.initTime(lt),this.createMonths(this.currentMonth,this.currentYear)}}get minDate(){return this._minDate}set minDate(O){this._minDate=O,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(O){this._maxDate=O,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(O){this._disabledDates=O,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(O){this._disabledDays=O,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(O){if(this._yearRange=O,O){const lt=O.split(":"),mt=parseInt(lt[0]),Mt=parseInt(lt[1]);this.populateYearOptions(mt,Mt)}}get showTime(){return this._showTime}set showTime(O){this._showTime=O,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get locale(){return this._locale}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(O){this._responsiveOptions=O,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(O){this._numberOfMonths=O,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(O){this._firstDayOfWeek=O,this.createWeekDays()}set locale(O){console.warn("Locale property has no effect, use new i18n API instead.")}ngOnInit(){this.attributeSelector=(0,it.Th)();const O=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=O.getMonth(),this.currentYear=O.getFullYear(),this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(O),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(O=>{switch(O.getType()){case"date":default:this.dateTemplate=O.template;break;case"decade":this.decadeTemplate=O.template;break;case"disabledDate":this.disabledDateTemplate=O.template;break;case"header":this.headerTemplate=O.template;break;case"footer":this.footerTemplate=O.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),this.disabled||(this.initFocusableCell(),1===this.numberOfMonths&&(this.contentViewChild.nativeElement.style.width=K.p.getOuterWidth(this.containerViewChild.nativeElement)+"px")))}getTranslation(O){return this.config.getTranslation(O)}populateYearOptions(O,lt){this.yearOptions=[];for(let mt=O;mt<=lt;mt++)this.yearOptions.push(mt)}createWeekDays(){this.weekDays=[];let O=this.getFirstDateOfWeek(),lt=this.getTranslation($.ws.DAY_NAMES_MIN);for(let mt=0;mt<7;mt++)this.weekDays.push(lt[O]),O=6==O?0:++O}monthPickerValues(){let O=[];for(let lt=0;lt<=11;lt++)O.push(this.config.getTranslation("monthNamesShort")[lt]);return O}yearPickerValues(){let O=[],lt=this.currentYear-this.currentYear%10;for(let mt=0;mt<10;mt++)O.push(lt+mt);return O}createMonths(O,lt){this.months=this.months=[];for(let mt=0;mt11&&(Mt=Mt%11-1,le=lt+1),this.months.push(this.createMonth(Mt,le))}}getWeekNumber(O){let lt=new Date(O.getTime());lt.setDate(lt.getDate()+4-(lt.getDay()||7));let mt=lt.getTime();return lt.setMonth(0),lt.setDate(1),Math.floor(Math.round((mt-lt.getTime())/864e5)/7)+1}createMonth(O,lt){let mt=[],Mt=this.getFirstDayOfMonthIndex(O,lt),le=this.getDaysCountInMonth(O,lt),we=this.getDaysCountInPrevMonth(O,lt),He=1,ci=new Date,ai=[],ji=Math.ceil((le+Mt)/7);for(let nn=0;nnle){let Pn=this.getNextMonthAndYear(O,lt);qi.push({day:He-le,month:Pn.month,year:Pn.year,otherMonth:!0,today:this.isToday(ci,He-le,Pn.month,Pn.year),selectable:this.isSelectable(He-le,Pn.month,Pn.year,!0)})}else qi.push({day:He,month:O,year:lt,today:this.isToday(ci,He,O,lt),selectable:this.isSelectable(He,O,lt,!1)});He++}this.showWeek&&ai.push(this.getWeekNumber(new Date(qi[0].year,qi[0].month,qi[0].day))),mt.push(qi)}return{month:O,year:lt,dates:mt,weekNumbers:ai}}initTime(O){this.pm=O.getHours()>11,this.showTime?(this.currentMinute=O.getMinutes(),this.currentSecond=O.getSeconds(),this.setCurrentHourPM(O.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(O){this.disabled?O.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(O){this.disabled?O.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){if(this.currentYear--,this.yearNavigator&&this.currentYearthis.yearOptions[this.yearOptions.length-1]){let O=this.yearOptions[this.yearOptions.length-1]-this.yearOptions[0];this.populateYearOptions(this.yearOptions[0]+O,this.yearOptions[this.yearOptions.length-1]+O)}}switchToMonthView(O){this.setCurrentView("month"),O.preventDefault()}switchToYearView(O){this.setCurrentView("year"),O.preventDefault()}onDateSelect(O,lt){!this.disabled&<.selectable?(this.isMultipleSelection()&&this.isSelected(lt)?(this.value=this.value.filter((mt,Mt)=>!this.isDateEquals(mt,lt)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(lt)&&this.selectDate(lt),this.isSingleSelection()&&this.hideOnDateTimeSelect&&setTimeout(()=>{O.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),O.preventDefault()):O.preventDefault()}shouldSelectDate(O){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(O,lt){"month"===this.view?this.onDateSelect(O,{year:this.currentYear,month:lt,day:1,selectable:!0}):(this.currentMonth=lt,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(O,lt){"year"===this.view?this.onDateSelect(O,{year:lt,month:0,day:1,selectable:!0}):(this.currentYear=lt,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let O="";if(this.value)if(this.isSingleSelection())O=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let lt=0;lt11,this.currentHour=O>=12?12==O?12:O-12:0==O?12:O):this.currentHour=O}setCurrentView(O){this.currentView=O,this.cd.detectChanges(),this.alignOverlay()}selectDate(O){let lt=new Date(O.year,O.month,O.day);if(this.showTime&&(lt.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),lt.setMinutes(this.currentMinute),lt.setSeconds(this.currentSecond)),this.minDate&&this.minDate>lt&&(lt=this.minDate,this.setCurrentHourPM(lt.getHours()),this.currentMinute=lt.getMinutes(),this.currentSecond=lt.getSeconds()),this.maxDate&&this.maxDate=mt.getTime()?Mt=lt:(mt=lt,Mt=null),this.updateModel([mt,Mt])}else this.updateModel([lt,null]);this.onSelect.emit(lt)}updateModel(O){if(this.value=O,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let lt=null;this.value&&(lt=this.value.map(mt=>this.formatDateTime(mt))),this.onModelChange(lt)}}getFirstDayOfMonthIndex(O,lt){let mt=new Date;mt.setDate(1),mt.setMonth(O),mt.setFullYear(lt);let Mt=mt.getDay()+this.getSundayIndex();return Mt>=7?Mt-7:Mt}getDaysCountInMonth(O,lt){return 32-this.daylightSavingAdjust(new Date(lt,O,32)).getDate()}getDaysCountInPrevMonth(O,lt){let mt=this.getPreviousMonthAndYear(O,lt);return this.getDaysCountInMonth(mt.month,mt.year)}getPreviousMonthAndYear(O,lt){let mt,Mt;return 0===O?(mt=11,Mt=lt-1):(mt=O-1,Mt=lt),{month:mt,year:Mt}}getNextMonthAndYear(O,lt){let mt,Mt;return 11===O?(mt=0,Mt=lt+1):(mt=O+1,Mt=lt),{month:mt,year:Mt}}getSundayIndex(){let O=this.getFirstDateOfWeek();return O>0?7-O:0}isSelected(O){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,O);if(this.isMultipleSelection()){let lt=!1;for(let mt of this.value)if(lt=this.isDateEquals(mt,O),lt)break;return lt}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],O)||this.isDateEquals(this.value[1],O)||this.isDateBetween(this.value[0],this.value[1],O):this.isDateEquals(this.value[0],O):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(O){if(this.isComparable()&&!this.isMultipleSelection()){const[lt,mt]=this.isRangeSelection()?this.value:[this.value,this.value],Mt=new Date(this.currentYear,O,1);return Mt>=lt&&Mt<=(mt??lt)}return!1}isMonthDisabled(O){for(let lt=1;lt=le.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(O,lt,mt,Mt){return O.getDate()===lt&&O.getMonth()===mt&&O.getFullYear()===Mt}isSelectable(O,lt,mt,Mt){let le=!0,we=!0,He=!0,ci=!0;return!(Mt&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>mt||this.minDate.getFullYear()===mt&&(this.minDate.getMonth()>lt||this.minDate.getMonth()===lt&&this.minDate.getDate()>O))&&(le=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(O){this.navigationState={backward:!0,button:!0},this.navBackward(O)}onNextButtonClick(O){this.navigationState={backward:!1,button:!0},this.navForward(O)}onContainerButtonKeydown(O){switch(O.which){case 9:this.inline||this.trapFocus(O);break;case 27:this.overlayVisible=!1,O.preventDefault()}}onInputKeydown(O){this.isKeydown=!0,40===O.keyCode&&this.contentViewChild?this.trapFocus(O):27===O.keyCode||13===O.keyCode?this.overlayVisible&&(this.overlayVisible=!1,O.preventDefault()):9===O.keyCode&&this.contentViewChild&&(K.p.getFocusableElements(this.contentViewChild.nativeElement).forEach(lt=>lt.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(O,lt,mt){const Mt=O.currentTarget,le=Mt.parentElement;switch(O.which){case 40:{Mt.tabIndex="-1";let we=K.p.index(le),He=le.parentElement.nextElementSibling;He?K.p.hasClass(He.children[we].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(O)):(He.children[we].children[0].tabIndex="0",He.children[we].children[0].focus()):(this.navigationState={backward:!1},this.navForward(O)),O.preventDefault();break}case 38:{Mt.tabIndex="-1";let we=K.p.index(le),He=le.parentElement.previousElementSibling;if(He){let ci=He.children[we].children[0];K.p.hasClass(ci,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(O)):(ci.tabIndex="0",ci.focus())}else this.navigationState={backward:!0},this.navBackward(O);O.preventDefault();break}case 37:{Mt.tabIndex="-1";let we=le.previousElementSibling;if(we){let He=we.children[0];K.p.hasClass(He,"p-disabled")||K.p.hasClass(He.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,mt):(He.tabIndex="0",He.focus())}else this.navigateToMonth(!0,mt);O.preventDefault();break}case 39:{Mt.tabIndex="-1";let we=le.nextElementSibling;if(we){let He=we.children[0];K.p.hasClass(He,"p-disabled")?this.navigateToMonth(!1,mt):(He.tabIndex="0",He.focus())}else this.navigateToMonth(!1,mt);O.preventDefault();break}case 13:case 32:this.onDateSelect(O,lt),O.preventDefault();break;case 27:this.overlayVisible=!1,O.preventDefault();break;case 9:this.inline||this.trapFocus(O)}}onMonthCellKeydown(O,lt){const mt=O.currentTarget;switch(O.which){case 38:case 40:{mt.tabIndex="-1";var Mt=mt.parentElement.children,le=K.p.index(mt);let we=Mt[40===O.which?le+3:le-3];we&&(we.tabIndex="0",we.focus()),O.preventDefault();break}case 37:{mt.tabIndex="-1";let we=mt.previousElementSibling;we?(we.tabIndex="0",we.focus()):(this.navigationState={backward:!0},this.navBackward(O)),O.preventDefault();break}case 39:{mt.tabIndex="-1";let we=mt.nextElementSibling;we?(we.tabIndex="0",we.focus()):(this.navigationState={backward:!1},this.navForward(O)),O.preventDefault();break}case 13:this.onMonthSelect(O,lt),O.preventDefault();break;case 13:case 32:case 27:this.overlayVisible=!1,O.preventDefault();break;case 9:this.inline||this.trapFocus(O)}}onYearCellKeydown(O,lt){const mt=O.currentTarget;switch(O.which){case 38:case 40:{mt.tabIndex="-1";var Mt=mt.parentElement.children,le=K.p.index(mt);let we=Mt[40===O.which?le+2:le-2];we&&(we.tabIndex="0",we.focus()),O.preventDefault();break}case 37:{mt.tabIndex="-1";let we=mt.previousElementSibling;we?(we.tabIndex="0",we.focus()):(this.navigationState={backward:!0},this.navBackward(O)),O.preventDefault();break}case 39:{mt.tabIndex="-1";let we=mt.nextElementSibling;we?(we.tabIndex="0",we.focus()):(this.navigationState={backward:!1},this.navForward(O)),O.preventDefault();break}case 13:case 32:this.onYearSelect(O,lt),O.preventDefault();break;case 27:this.overlayVisible=!1,O.preventDefault();break;case 9:this.trapFocus(O)}}navigateToMonth(O,lt){if(O)if(1===this.numberOfMonths||0===lt)this.navigationState={backward:!0},this.navBackward(event);else{let Mt=K.p.find(this.contentViewChild.nativeElement.children[lt-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),le=Mt[Mt.length-1];le.tabIndex="0",le.focus()}else if(1===this.numberOfMonths||lt===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Mt=K.p.findSingle(this.contentViewChild.nativeElement.children[lt+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Mt.tabIndex="0",Mt.focus()}}updateFocus(){let O;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?K.p.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():K.p.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let lt;lt=K.p.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),lt&<.length>0&&(O=lt[lt.length-1])}else O=K.p.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");O&&(O.tabIndex="0",O.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const O=this.contentViewChild?.nativeElement;let lt;if("month"===this.currentView){let mt=K.p.find(O,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Mt=K.p.findSingle(O,".p-monthpicker .p-monthpicker-month.p-highlight");mt.forEach(le=>le.tabIndex=-1),lt=Mt||mt[0],0===mt.length&&K.p.find(O,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(we=>we.tabIndex=-1)}else if("year"===this.currentView){let mt=K.p.find(O,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Mt=K.p.findSingle(O,".p-yearpicker .p-yearpicker-year.p-highlight");mt.forEach(le=>le.tabIndex=-1),lt=Mt||mt[0],0===mt.length&&K.p.find(O,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(we=>we.tabIndex=-1)}else if(lt=K.p.findSingle(O,"span.p-highlight"),!lt){let mt=K.p.findSingle(O,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");lt=mt||K.p.findSingle(O,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}lt&&(lt.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||lt.focus()},1),this.preventFocus=!1)}trapFocus(O){let lt=K.p.getFocusableElements(this.contentViewChild.nativeElement);if(lt&<.length>0)if(lt[0].ownerDocument.activeElement){let mt=lt.indexOf(lt[0].ownerDocument.activeElement);if(O.shiftKey)if(-1==mt||0===mt)if(this.focusTrap)lt[lt.length-1].focus();else{if(-1===mt)return this.hideOverlay();if(0===mt)return}else lt[mt-1].focus();else if(-1==mt||mt===lt.length-1){if(!this.focusTrap&&-1!=mt)return this.hideOverlay();lt[0].focus()}else lt[mt+1].focus()}else lt[0].focus();O.preventDefault()}onMonthDropdownChange(O){this.currentMonth=parseInt(O),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)}onYearDropdownChange(O){this.currentYear=parseInt(O),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)}validateTime(O,lt,mt,Mt){let le=this.value;const we=this.convertTo24Hour(O,Mt);this.isRangeSelection()&&(le=this.value[1]||this.value[0]),this.isMultipleSelection()&&(le=this.value[this.value.length-1]);const He=le?le.toDateString():null;return!(this.minDate&&He&&this.minDate.toDateString()===He&&(this.minDate.getHours()>we||this.minDate.getHours()===we&&(this.minDate.getMinutes()>lt||this.minDate.getMinutes()===lt&&this.minDate.getSeconds()>mt))||this.maxDate&&He&&this.maxDate.toDateString()===He&&(this.maxDate.getHours()=24?mt-24:mt:"12"==this.hourFormat&&(this.currentHour<12&&mt>11&&(Mt=!this.pm),mt=mt>=13?mt-12:mt),this.validateTime(mt,this.currentMinute,this.currentSecond,Mt)&&(this.currentHour=mt,this.pm=Mt),O.preventDefault()}onTimePickerElementMouseDown(O,lt,mt){this.disabled||(this.repeat(O,null,lt,mt),O.preventDefault())}onTimePickerElementMouseUp(O){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(O,lt,mt,Mt){let le=lt||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(O,100,mt,Mt),this.cd.markForCheck()},le),mt){case 0:1===Mt?this.incrementHour(O):this.decrementHour(O);break;case 1:1===Mt?this.incrementMinute(O):this.decrementMinute(O);break;case 2:1===Mt?this.incrementSecond(O):this.decrementSecond(O)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(O){let lt=this.currentHour-this.stepHour,mt=this.pm;"24"==this.hourFormat?lt=lt<0?24+lt:lt:"12"==this.hourFormat&&(12===this.currentHour&&(mt=!this.pm),lt=lt<=0?12+lt:lt),this.validateTime(lt,this.currentMinute,this.currentSecond,mt)&&(this.currentHour=lt,this.pm=mt),O.preventDefault()}incrementMinute(O){let lt=this.currentMinute+this.stepMinute;lt=lt>59?lt-60:lt,this.validateTime(this.currentHour,lt,this.currentSecond,this.pm)&&(this.currentMinute=lt),O.preventDefault()}decrementMinute(O){let lt=this.currentMinute-this.stepMinute;lt=lt<0?60+lt:lt,this.validateTime(this.currentHour,lt,this.currentSecond,this.pm)&&(this.currentMinute=lt),O.preventDefault()}incrementSecond(O){let lt=this.currentSecond+this.stepSecond;lt=lt>59?lt-60:lt,this.validateTime(this.currentHour,this.currentMinute,lt,this.pm)&&(this.currentSecond=lt),O.preventDefault()}decrementSecond(O){let lt=this.currentSecond-this.stepSecond;lt=lt<0?60+lt:lt,this.validateTime(this.currentHour,this.currentMinute,lt,this.pm)&&(this.currentSecond=lt),O.preventDefault()}updateTime(){let O=this.value;this.isRangeSelection()&&(O=this.value[1]||this.value[0]),this.isMultipleSelection()&&(O=this.value[this.value.length-1]),O=O?new Date(O.getTime()):new Date,O.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),O.setMinutes(this.currentMinute),O.setSeconds(this.currentSecond),this.isRangeSelection()&&(O=this.value[1]?[this.value[0],O]:[O,null]),this.isMultipleSelection()&&(O=[...this.value.slice(0,-1),O]),this.updateModel(O),this.onSelect.emit(O),this.updateInputfield()}toggleAMPM(O){const lt=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,lt)&&(this.pm=lt,this.updateTime()),O.preventDefault()}onUserInput(O){if(!this.isKeydown)return;this.isKeydown=!1;let lt=O.target.value;try{let mt=this.parseValueFromString(lt);this.isValidSelection(mt)&&(this.updateModel(mt),this.updateUI())}catch{this.updateModel(this.keepInvalid?lt:null)}this.filled=null!=lt&<.length,this.onInput.emit(O)}isValidSelection(O){let lt=!0;return this.isSingleSelection()?this.isSelectable(O.getDate(),O.getMonth(),O.getFullYear(),!1)||(lt=!1):O.every(mt=>this.isSelectable(mt.getDate(),mt.getMonth(),mt.getFullYear(),!1))&&this.isRangeSelection()&&(lt=O.length>1&&O[1]>O[0]),lt}parseValueFromString(O){if(!O||0===O.trim().length)return null;let lt;if(this.isSingleSelection())lt=this.parseDateTime(O);else if(this.isMultipleSelection()){let mt=O.split(this.multipleSeparator);lt=[];for(let Mt of mt)lt.push(this.parseDateTime(Mt.trim()))}else if(this.isRangeSelection()){let mt=O.split(" "+this.rangeSeparator+" ");lt=[];for(let Mt=0;Mt{this.disableModality()}),document.body.appendChild(this.mask),K.p.addClass(document.body,"p-overflow-hidden"))}disableModality(){this.mask&&(K.p.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener=this.destroyMask.bind(this),this.mask.addEventListener("animationend",this.animationEndListener))}destroyMask(){if(!this.mask)return;document.body.removeChild(this.mask);let lt,O=document.body.children;for(let mt=0;mt{const ji=mt+1{let qi=""+ji;if(Mt(ai))for(;qi.lengthMt(ai)?qi[ji]:nn[ji];let He="",ci=!1;if(O)for(mt=0;mt11&&12!=mt&&(mt-=12),lt+="12"==this.hourFormat&&0===mt?12:mt<10?"0"+mt:mt,lt+=":",lt+=Mt<10?"0"+Mt:Mt,this.showSeconds&&(lt+=":",lt+=le<10?"0"+le:le),"12"==this.hourFormat&&(lt+=O.getHours()>11?" PM":" AM"),lt}parseTime(O){let lt=O.split(":");if(lt.length!==(this.showSeconds?3:2))throw"Invalid time";let Mt=parseInt(lt[0]),le=parseInt(lt[1]),we=this.showSeconds?parseInt(lt[2]):null;if(isNaN(Mt)||isNaN(le)||Mt>23||le>59||"12"==this.hourFormat&&Mt>12||this.showSeconds&&(isNaN(we)||we>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Mt&&this.pm?Mt+=12:!this.pm&&12===Mt&&(Mt-=12)),{hour:Mt,minute:le,second:we}}parseDate(O,lt){if(null==lt||null==O)throw"Invalid arguments";if(""===(O="object"==typeof O?O.toString():O+""))return null;let mt,Mt,le,zn,we=0,He="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ci=-1,ai=-1,ji=-1,nn=-1,qi=!1,Pn=Ro=>{let Lr=mt+1{let Lr=Pn(Ro),xs="@"===Ro?14:"!"===Ro?20:"y"===Ro&&Lr?4:"o"===Ro?3:2,Gh=new RegExp("^\\d{"+("y"===Ro?xs:1)+","+xs+"}"),el=O.substring(we).match(Gh);if(!el)throw"Missing number at position "+we;return we+=el[0].length,parseInt(el[0],10)},bo=(Ro,Lr,xs)=>{let La=-1,Gh=Pn(Ro)?xs:Lr,el=[];for(let Ns=0;Ns-(Ns[1].length-ql[1].length));for(let Ns=0;Ns{if(O.charAt(we)!==lt.charAt(mt))throw"Unexpected literal at position "+we;we++};for("month"===this.view&&(ji=1),mt=0;mt-1)for(ai=1,ji=nn;Mt=this.getDaysCountInMonth(ci,ai-1),!(ji<=Mt);)ai++,ji-=Mt;if("year"===this.view&&(ai=-1===ai?1:ai,ji=-1===ji?1:ji),zn=this.daylightSavingAdjust(new Date(ci,ai-1,ji)),zn.getFullYear()!==ci||zn.getMonth()+1!==ai||zn.getDate()!==ji)throw"Invalid date";return zn}daylightSavingAdjust(O){return O?(O.setHours(O.getHours()>12?O.getHours()+2:0),O):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(O){let lt=new Date,mt={day:lt.getDate(),month:lt.getMonth(),year:lt.getFullYear(),otherMonth:lt.getMonth()!==this.currentMonth||lt.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.onDateSelect(O,mt),this.onTodayClick.emit(O)}onClearButtonClick(O){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(O)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=document.createElement("style"),this.responsiveStyleElement.type="text/css",document.body.appendChild(this.responsiveStyleElement));let O="";if(this.responsiveOptions){let lt=[...this.responsiveOptions].filter(mt=>!(!mt.breakpoint||!mt.numMonths)).sort((mt,Mt)=>-1*mt.breakpoint.localeCompare(Mt.breakpoint,void 0,{numeric:!0}));for(let mt=0;mt{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","mousedown",lt=>{this.isOutsideClicked(lt)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(lt),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.documentResizeListener))}unbindDocumentResizeListener(){this.documentResizeListener&&(window.removeEventListener("resize",this.documentResizeListener),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new K.V(this.containerViewChild.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(O){return!(this.el.nativeElement.isSameNode(O.target)||this.isNavIconClicked(O)||this.el.nativeElement.contains(O.target)||this.overlay&&this.overlay.contains(O.target))}isNavIconClicked(O){return K.p.hasClass(O.target,"p-datepicker-prev")||K.p.hasClass(O.target,"p-datepicker-prev-icon")||K.p.hasClass(O.target,"p-datepicker-next")||K.p.hasClass(O.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!K.p.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&it.P9.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36(t.sBO),t.Y36(t.R0b),t.Y36($.b4),t.Y36($.F0))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-calendar"]],contentQueries:function(O,lt,mt){if(1&O&&t.Suo(mt,$.jx,4),2&O){let Mt;t.iGM(Mt=t.CRH())&&(lt.templates=Mt)}},viewQuery:function(O,lt){if(1&O&&(t.Gf(et,5),t.Gf(nt,5),t.Gf(W,5)),2&O){let mt;t.iGM(mt=t.CRH())&&(lt.containerViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.inputfieldViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.content=mt.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(O,lt){2&O&&t.ekj("p-inputwrapper-filled",lt.filled)("p-inputwrapper-focus",lt.focus)("p-calendar-clearable",lt.showClear&&!lt.disabled)},inputs:{style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",view:"view",defaultDate:"defaultDate",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[t._Bn([ht])],ngContentSelectors:Ct,decls:4,vars:11,consts:[[3,"ngClass","ngStyle"],["container",""],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","autocomplete","off",3,"value","readonly","ngStyle","placeholder","disabled","ngClass","focus","keydown","click","blur","input"],["inputfield",""],["class","p-calendar-clear-icon pi pi-times",3,"click",4,"ngIf"],["type","button","pButton","","pRipple","","class","p-datepicker-trigger","tabindex","0",3,"icon","disabled","click",4,"ngIf"],[1,"p-calendar-clear-icon","pi","pi-times",3,"click"],["type","button","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger",3,"icon","disabled","click"],[3,"ngStyle","ngClass","click"],["contentWrapper",""],[4,"ngTemplateOutlet"],[4,"ngIf"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[1,"p-datepicker-next-icon","pi","pi-chevron-right"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],[1,"p-datepicker-prev-icon","pi","pi-chevron-left"],["type","button",1,"p-datepicker-month","p-link",3,"disabled","click","keydown"],["type","button",1,"p-datepicker-year","p-link",3,"disabled","click","keydown"],[1,"p-datepicker-decade"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-datepicker-calendar-container"],[1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],[3,"ngClass"],["draggable","false","pRipple","",3,"ngClass","click","keydown"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"ngClass","click","keydown"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"ngClass","click","keydown"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"pi","pi-chevron-up"],[1,"pi","pi-chevron-down"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"label","ngClass","keydown","click"]],template:function(O,lt){1&O&&(t.F$t(Pt),t.TgZ(0,"span",0,1),t.YNc(2,b,4,17,"ng-template",2),t.YNc(3,At,9,28,"div",3),t.qZA()),2&O&&(t.Tol(lt.styleClass),t.Q6J("ngClass",t.l5B(6,Ht,lt.showIcon,lt.timeOnly,lt.disabled,lt.focus))("ngStyle",lt.style),t.xp6(2),t.Q6J("ngIf",!lt.inline),t.xp6(1),t.Q6J("ngIf",lt.inline||lt.overlayVisible))},dependencies:[A.mk,A.sg,A.O5,A.tP,A.PC,V.Hq,ot.H],styles:[".p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-calendar-clearable{position:relative}\n"],encapsulation:2,data:{animation:[(0,Y.X$)("overlayAnimation",[(0,Y.SB)("visibleTouchUI",(0,Y.oB)({transform:"translate(-50%,-50%)",opacity:1})),(0,Y.eR)("void => visible",[(0,Y.oB)({opacity:0,transform:"scaleY(0.8)"}),(0,Y.jt)("{{showTransitionParams}}",(0,Y.oB)({opacity:1,transform:"*"}))]),(0,Y.eR)("visible => void",[(0,Y.jt)("{{hideTransitionParams}}",(0,Y.oB)({opacity:0}))]),(0,Y.eR)("void => visibleTouchUI",[(0,Y.oB)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,Y.jt)("{{showTransitionParams}}")]),(0,Y.eR)("visibleTouchUI => void",[(0,Y.jt)("{{hideTransitionParams}}",(0,Y.oB)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0}),kt})(),xt=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,V.hJ,$.m8,ot.T,V.hJ,$.m8]}),kt})(),bt=(()=>{class kt{constructor(O){this.host=O,this.focused=!1}ngAfterViewChecked(){if(!this.focused&&this.autofocus){const O=K.p.getFocusableElements(this.host.nativeElement);0===O.length&&this.host.nativeElement.focus(),O.length>0&&O[0].focus(),this.focused=!0}}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.SBq))},kt.\u0275dir=t.lG2({type:kt,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}}),kt})(),Dt=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez]}),kt})();const Gt=["overlay"],Qt=["content"];function ne(kt,ie){1&kt&&t.GkF(0)}const pe=function(kt,ie,O){return{showTransitionParams:kt,hideTransitionParams:ie,transform:O}},se=function(kt){return{value:"visible",params:kt}},fe=function(kt){return{mode:kt}},Ee=function(kt){return{$implicit:kt}};function Me(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",1,3),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onOverlayContentClick(mt))})("@overlayContentAnimation.start",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onOverlayContentAnimationStart(mt))})("@overlayContentAnimation.done",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onOverlayContentAnimationDone(mt))}),t.Hsn(2),t.YNc(3,ne,1,0,"ng-container",4),t.qZA()}if(2&kt){const O=t.oxw(2);t.Tol(O.contentStyleClass),t.Q6J("ngStyle",O.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",t.VKq(11,se,t.kEZ(7,pe,O.showTransitionOptions,O.hideTransitionOptions,O.transformOptions[O.modal?O.overlayResponsiveDirection:"default"]))),t.xp6(3),t.Q6J("ngTemplateOutlet",O.contentTemplate)("ngTemplateOutletContext",t.VKq(15,Ee,t.VKq(13,fe,O.overlayMode)))}}const Ae=function(kt,ie,O,lt,mt,Mt,le,we,He,ci,ai,ji,nn,qi){return{"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":kt,"p-overlay-center":ie,"p-overlay-top":O,"p-overlay-top-start":lt,"p-overlay-top-end":mt,"p-overlay-bottom":Mt,"p-overlay-bottom-start":le,"p-overlay-bottom-end":we,"p-overlay-left":He,"p-overlay-left-start":ci,"p-overlay-left-end":ai,"p-overlay-right":ji,"p-overlay-right-start":nn,"p-overlay-right-end":qi}};function me(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",1,2),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onOverlayClick(mt))}),t.YNc(2,Me,4,17,"div",0),t.qZA()}if(2&kt){const O=t.oxw();t.Tol(O.styleClass),t.Q6J("ngStyle",O.style)("ngClass",t.rFY(5,Ae,[O.modal,O.modal&&"center"===O.overlayResponsiveDirection,O.modal&&"top"===O.overlayResponsiveDirection,O.modal&&"top-start"===O.overlayResponsiveDirection,O.modal&&"top-end"===O.overlayResponsiveDirection,O.modal&&"bottom"===O.overlayResponsiveDirection,O.modal&&"bottom-start"===O.overlayResponsiveDirection,O.modal&&"bottom-end"===O.overlayResponsiveDirection,O.modal&&"left"===O.overlayResponsiveDirection,O.modal&&"left-start"===O.overlayResponsiveDirection,O.modal&&"left-end"===O.overlayResponsiveDirection,O.modal&&"right"===O.overlayResponsiveDirection,O.modal&&"right-start"===O.overlayResponsiveDirection,O.modal&&"right-end"===O.overlayResponsiveDirection])),t.xp6(2),t.Q6J("ngIf",O.visible)}}const qe=["*"],Ue={provide:Rt.JU,useExisting:(0,t.Gpc)(()=>ue),multi:!0},Ze=(0,Y.oQ)([(0,Y.oB)({transform:"{{transform}}",opacity:0}),(0,Y.jt)("{{showTransitionParams}}")]),Ne=(0,Y.oQ)([(0,Y.jt)("{{hideTransitionParams}}",(0,Y.oB)({transform:"{{transform}}",opacity:0}))]);let ue=(()=>{class kt{constructor(O,lt,mt,Mt,le,we){this.document=O,this.el=lt,this.renderer=mt,this.config=Mt,this.overlayService=le,this.cd=we,this.visibleChange=new t.vpe,this.onBeforeShow=new t.vpe,this.onShow=new t.vpe,this.onBeforeHide=new t.vpe,this.onHide=new t.vpe,this.onAnimationStart=new t.vpe,this.onAnimationDone=new t.vpe,this._visible=!1,this.modalVisible=!1,this.isOverlayClicked=!1,this.isOverlayContentClicked=!1,this.transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"},this.window=this.document.defaultView}get visible(){return this._visible}set visible(O){this._visible=O,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(O){this._mode=O}get style(){return it.gb.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(O){this._style=O}get styleClass(){return it.gb.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(O){this._styleClass=O}get contentStyle(){return it.gb.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(O){this._contentStyle=O}get contentStyleClass(){return it.gb.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(O){this._contentStyleClass=O}get target(){const O=this._target||this.overlayOptions?.target;return void 0===O?"@prev":O}set target(O){this._target=O}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(O){this._appendTo=O}get autoZIndex(){const O=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===O||O}set autoZIndex(O){this._autoZIndex=O}get baseZIndex(){const O=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===O?0:O}set baseZIndex(O){this._baseZIndex=O}get showTransitionOptions(){const O=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===O?".12s cubic-bezier(0, 0, 0.2, 1)":O}set showTransitionOptions(O){this._showTransitionOptions=O}get hideTransitionOptions(){const O=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===O?".1s linear":O}set hideTransitionOptions(O){this._hideTransitionOptions=O}get listener(){return this._listener||this.overlayOptions?.listener}set listener(O){this._listener=O}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(O){this._responsive=O}get options(){return this._options}set options(O){this._options=O}get modal(){return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return K.p.getTargetElement(this.target,this.el?.nativeElement)}ngAfterContentInit(){this.templates?.forEach(O=>{O.getType(),this.contentTemplate=O.template})}show(O,lt=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:O||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),lt&&K.p.focus(this.targetEl),this.modal&&K.p.addClass(this.document?.body,"p-overflow-hidden")}hide(O,lt=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:O||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),lt&&K.p.focus(this.targetEl),this.modal&&K.p.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&K.p.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(O){this._visible=O,this.visibleChange.emit(O)}onOverlayClick(O){this.isOverlayClicked=!0}onOverlayContentClick(O){this.overlayService.add({originalEvent:O,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(O){switch(O.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&it.P9.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),K.p.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&K.p.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",O)}onOverlayContentAnimationDone(O){const lt=this.overlayEl||O.element.parentElement;switch(O.toState){case"visible":this.show(lt,!0),this.bindListeners();break;case"void":this.hide(lt,!0),this.unbindListeners(),K.p.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),it.P9.clear(lt),this.modalVisible=!1}this.handleEvents("onAnimationDone",O)}handleEvents(O,lt){this[O].emit(lt),this.options&&this.options[O]&&this.options[O](lt),this.config?.overlayOptions&&this.config?.overlayOptions[O]&&this.config?.overlayOptions[O](lt)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new K.V(this.targetEl,O=>{(!this.listener||this.listener(O,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(O,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",O=>{const mt=!(this.targetEl&&(this.targetEl.isSameNode(O.target)||!this.isOverlayClicked&&this.targetEl.contains(O.target))||this.isOverlayContentClicked);(this.listener?this.listener(O,{type:"outside",mode:this.overlayMode,valid:3!==O.which&&mt}):mt)&&this.hide(O),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen("window","resize",O=>{(this.listener?this.listener(O,{type:"resize",mode:this.overlayMode,valid:!K.p.isTouchDevice()}):!K.p.isTouchDevice())&&this.hide(O,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(K.p.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),it.P9.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(A.K0),t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36($.b4),t.Y36($.F0),t.Y36(t.sBO))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-overlay"]],contentQueries:function(O,lt,mt){if(1&O&&t.Suo(mt,$.jx,4),2&O){let Mt;t.iGM(Mt=t.CRH())&&(lt.templates=Mt)}},viewQuery:function(O,lt){if(1&O&&(t.Gf(Gt,5),t.Gf(Qt,5)),2&O){let mt;t.iGM(mt=t.CRH())&&(lt.overlayViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.contentViewChild=mt.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[t._Bn([Ue])],ngContentSelectors:qe,decls:1,vars:1,consts:[[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"ngStyle","ngClass","click"],["overlay",""],["content",""],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(O,lt){1&O&&(t.F$t(),t.YNc(0,me,3,20,"div",0)),2&O&&t.Q6J("ngIf",lt.modalVisible)},dependencies:[A.mk,A.O5,A.tP,A.PC],styles:[".p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}\n"],encapsulation:2,data:{animation:[(0,Y.X$)("overlayContentAnimation",[(0,Y.eR)(":enter",[(0,Y._7)(Ze)]),(0,Y.eR)(":leave",[(0,Y._7)(Ne)])])]},changeDetection:0}),kt})(),_e=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,$.m8,$.m8]}),kt})();const Ve=["element"],ni=["content"];function Ui(kt,ie){1&kt&&t.GkF(0)}const Ji=function(kt,ie){return{$implicit:kt,options:ie}};function pn(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Ui,1,0,"ng-container",7),t.BQk()),2&kt){const O=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",O.contentTemplate)("ngTemplateOutletContext",t.WLB(2,Ji,O.loadedItems,O.getContentOptions()))}}function Ei(kt,ie){1&kt&&t.GkF(0)}function $n(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Ei,1,0,"ng-container",7),t.BQk()),2&kt){const O=ie.$implicit,lt=ie.index,mt=t.oxw(3);t.xp6(1),t.Q6J("ngTemplateOutlet",mt.itemTemplate)("ngTemplateOutletContext",t.WLB(2,Ji,O,mt.getOptions(lt)))}}const wo=function(kt){return{"p-scroller-loading":kt}};function hn(kt,ie){if(1&kt&&(t.TgZ(0,"div",8,9),t.YNc(2,$n,2,5,"ng-container",10),t.qZA()),2&kt){const O=t.oxw(2);t.Q6J("ngClass",t.VKq(4,wo,O.d_loading))("ngStyle",O.contentStyle),t.xp6(2),t.Q6J("ngForOf",O.loadedItems)("ngForTrackBy",O._trackBy||O.index)}}function fn(kt,ie){if(1&kt&&t._UZ(0,"div",11),2&kt){const O=t.oxw(2);t.Q6J("ngStyle",O.spacerStyle)}}function Ci(kt,ie){1&kt&&t.GkF(0)}const Le=function(kt){return{numCols:kt}},Pe=function(kt){return{options:kt}};function xe(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Ci,1,0,"ng-container",7),t.BQk()),2&kt){const O=ie.index,lt=t.oxw(4);t.xp6(1),t.Q6J("ngTemplateOutlet",lt.loaderTemplate)("ngTemplateOutletContext",t.VKq(4,Pe,lt.getLoaderOptions(O,lt.both&&t.VKq(2,Le,lt._numItemsInViewport.cols))))}}function Be(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,xe,2,6,"ng-container",14),t.BQk()),2&kt){const O=t.oxw(3);t.xp6(1),t.Q6J("ngForOf",O.loaderArr)}}function oi(kt,ie){1&kt&&t.GkF(0)}const Li=function(){return{styleClass:"p-scroller-loading-icon"}};function Yi(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,oi,1,0,"ng-container",7),t.BQk()),2&kt){const O=t.oxw(4);t.xp6(1),t.Q6J("ngTemplateOutlet",O.loaderIconTemplate)("ngTemplateOutletContext",t.VKq(3,Pe,t.DdM(2,Li)))}}function Hn(kt,ie){1&kt&&t._UZ(0,"i",16)}function To(kt,ie){if(1&kt&&(t.YNc(0,Yi,2,5,"ng-container",0),t.YNc(1,Hn,1,0,"ng-template",null,15,t.W1O)),2&kt){const O=t.MAs(2),lt=t.oxw(3);t.Q6J("ngIf",lt.loaderIconTemplate)("ngIfElse",O)}}const Zo=function(kt){return{"p-component-overlay":kt}};function Qn(kt,ie){if(1&kt&&(t.TgZ(0,"div",12),t.YNc(1,Be,2,1,"ng-container",0),t.YNc(2,To,3,2,"ng-template",null,13,t.W1O),t.qZA()),2&kt){const O=t.MAs(3),lt=t.oxw(2);t.Q6J("ngClass",t.VKq(3,Zo,!lt.loaderTemplate)),t.xp6(1),t.Q6J("ngIf",lt.loaderTemplate)("ngIfElse",O)}}const Go=function(kt,ie,O){return{"p-scroller":!0,"p-scroller-inline":kt,"p-both-scroll":ie,"p-horizontal-scroll":O}};function Te(kt,ie){if(1&kt){const O=t.EpF();t.ynx(0),t.TgZ(1,"div",2,3),t.NdJ("scroll",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onContainerScroll(mt))}),t.YNc(3,pn,2,5,"ng-container",0),t.YNc(4,hn,3,6,"ng-template",null,4,t.W1O),t.YNc(6,fn,1,1,"div",5),t.YNc(7,Qn,4,5,"div",6),t.qZA(),t.BQk()}if(2&kt){const O=t.MAs(5),lt=t.oxw();t.xp6(1),t.Tol(lt._styleClass),t.Q6J("ngStyle",lt._style)("ngClass",t.kEZ(10,Go,lt.inline,lt.both,lt.horizontal)),t.uIk("id",lt._id)("tabindex",lt.tabindex),t.xp6(2),t.Q6J("ngIf",lt.contentTemplate)("ngIfElse",O),t.xp6(3),t.Q6J("ngIf",lt._showSpacer),t.xp6(1),t.Q6J("ngIf",!lt.loaderDisabled&<._showLoader&<.d_loading)}}function Ce(kt,ie){1&kt&&t.GkF(0)}const $t=function(kt,ie){return{rows:kt,columns:ie}};function ve(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Ce,1,0,"ng-container",7),t.BQk()),2&kt){const O=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",O.contentTemplate)("ngTemplateOutletContext",t.WLB(5,Ji,O.items,t.WLB(2,$t,O._items,O.loadedColumns)))}}function Re(kt,ie){if(1&kt&&(t.Hsn(0),t.YNc(1,ve,2,8,"ng-container",17)),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngIf",O.contentTemplate)}}const ti=["*"];let fi=(()=>{class kt{constructor(O,lt){this.cd=O,this.zone=lt,this.onLazyLoad=new t.vpe,this.onScroll=new t.vpe,this.onScrollIndexChange=new t.vpe,this._tabindex=0,this._itemSize=0,this._orientation="vertical",this._step=0,this._delay=0,this._resizeDelay=10,this._appendOnly=!1,this._inline=!1,this._lazy=!1,this._disabled=!1,this._loaderDisabled=!1,this._showSpacer=!0,this._showLoader=!1,this._autoSize=!1,this.d_loading=!1,this.first=0,this.last=0,this.page=0,this.numItemsInViewport=0,this.lastScrollPos=0,this.lazyLoadState={},this.loaderArr=[],this.spacerStyle={},this.contentStyle={},this.initialized=!1}get id(){return this._id}set id(O){this._id=O}get style(){return this._style}set style(O){this._style=O}get styleClass(){return this._styleClass}set styleClass(O){this._styleClass=O}get tabindex(){return this._tabindex}set tabindex(O){this._tabindex=O}get items(){return this._items}set items(O){this._items=O}get itemSize(){return this._itemSize}set itemSize(O){this._itemSize=O}get scrollHeight(){return this._scrollHeight}set scrollHeight(O){this._scrollHeight=O}get scrollWidth(){return this._scrollWidth}set scrollWidth(O){this._scrollWidth=O}get orientation(){return this._orientation}set orientation(O){this._orientation=O}get step(){return this._step}set step(O){this._step=O}get delay(){return this._delay}set delay(O){this._delay=O}get resizeDelay(){return this._resizeDelay}set resizeDelay(O){this._resizeDelay=O}get appendOnly(){return this._appendOnly}set appendOnly(O){this._appendOnly=O}get inline(){return this._inline}set inline(O){this._inline=O}get lazy(){return this._lazy}set lazy(O){this._lazy=O}get disabled(){return this._disabled}set disabled(O){this._disabled=O}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(O){this._loaderDisabled=O}get columns(){return this._columns}set columns(O){this._columns=O}get showSpacer(){return this._showSpacer}set showSpacer(O){this._showSpacer=O}get showLoader(){return this._showLoader}set showLoader(O){this._showLoader=O}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(O){this._numToleratedItems=O}get loading(){return this._loading}set loading(O){this._loading=O}get autoSize(){return this._autoSize}set autoSize(O){this._autoSize=O}get trackBy(){return this._trackBy}set trackBy(O){this._trackBy=O}get options(){return this._options}set options(O){this._options=O,O&&"object"==typeof O&&Object.entries(O).forEach(([lt,mt])=>this[`_${lt}`]!==mt&&(this[`_${lt}`]=mt))}get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(O=>this._columns?O:O.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}get isPageChanged(){return!this._step||this.page!==this.getPageByFirst()}ngOnInit(){this.setInitialState()}ngOnChanges(O){let lt=!1;if(O.loading){const{previousValue:mt,currentValue:Mt}=O.loading;this.lazy&&mt!==Mt&&Mt!==this.d_loading&&(this.d_loading=Mt,lt=!0)}if(O.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),O.numToleratedItems){const{previousValue:mt,currentValue:Mt}=O.numToleratedItems;mt!==Mt&&Mt!==this.d_numToleratedItems&&(this.d_numToleratedItems=Mt)}if(O.options){const{previousValue:mt,currentValue:Mt}=O.options;this.lazy&&mt?.loading!==Mt?.loading&&Mt?.loading!==this.d_loading&&(this.d_loading=Mt.loading,lt=!0),mt?.numToleratedItems!==Mt?.numToleratedItems&&Mt?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Mt.numToleratedItems)}this.initialized&&!lt&&(O.items?.previousValue?.length!==O.items?.currentValue?.length||O.itemSize||O.scrollHeight||O.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(O=>{switch(O.getType()){case"content":this.contentTemplate=O.template;break;case"item":default:this.itemTemplate=O.template;break;case"loader":this.loaderTemplate=O.template;break;case"loadericon":this.loaderIconTemplate=O.template}})}ngAfterViewInit(){this.viewInit()}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){K.p.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=K.p.getWidth(this.elementViewChild.nativeElement),this.defaultHeight=K.p.getHeight(this.elementViewChild.nativeElement),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(O){this.contentEl=O||this.contentViewChild?.nativeElement||K.p.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(){return Math.floor((this.first+4*this.d_numToleratedItems)/(this._step||1))}scrollTo(O){this.lastScrollPos=this.both?{top:0,left:0}:0,this.elementViewChild?.nativeElement?.scrollTo(O)}scrollToIndex(O,lt="auto"){const{numToleratedItems:mt}=this.calculateNumItems(),Mt=this.getContentPosition(),le=(ci=0,ai)=>ci<=ai?0:ci,we=(ci,ai,ji)=>ci*ai+ji,He=(ci=0,ai=0)=>this.scrollTo({left:ci,top:ai,behavior:lt});this.both?(this.first={rows:le(O[0],mt[0]),cols:le(O[1],mt[1])},He(we(this.first.cols,this._itemSize[1],Mt.left),we(this.first.rows,this._itemSize[0],Mt.top))):(this.first=le(O,mt),this.horizontal?He(we(this.first,this._itemSize,Mt.left),0):He(0,we(this.first,this._itemSize,Mt.top)))}scrollInView(O,lt,mt="auto"){if(lt){const{first:Mt,viewport:le}=this.getRenderedRange(),we=(ai=0,ji=0)=>this.scrollTo({left:ai,top:ji,behavior:mt}),ci="to-end"===lt;if("to-start"===lt){if(this.both)le.first.rows-Mt.rows>O[0]?we(le.first.cols*this._itemSize[1],(le.first.rows-1)*this._itemSize[0]):le.first.cols-Mt.cols>O[1]&&we((le.first.cols-1)*this._itemSize[1],le.first.rows*this._itemSize[0]);else if(le.first-Mt>O){const ai=(le.first-1)*this._itemSize;this.horizontal?we(ai,0):we(0,ai)}}else if(ci)if(this.both)le.last.rows-Mt.rows<=O[0]+1?we(le.first.cols*this._itemSize[1],(le.first.rows+1)*this._itemSize[0]):le.last.cols-Mt.cols<=O[1]+1&&we((le.first.cols+1)*this._itemSize[1],le.first.rows*this._itemSize[0]);else if(le.last-Mt<=O+1){const ai=(le.first+1)*this._itemSize;this.horizontal?we(ai,0):we(0,ai)}}else this.scrollToIndex(O,mt)}getRenderedRange(){const O=(Mt,le)=>Math.floor(Mt/(le||Mt));let lt=this.first,mt=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Mt,scrollLeft:le}=this.elementViewChild.nativeElement;this.both?(lt={rows:O(Mt,this._itemSize[0]),cols:O(le,this._itemSize[1])},mt={rows:lt.rows+this.numItemsInViewport.rows,cols:lt.cols+this.numItemsInViewport.cols}):(lt=O(this.horizontal?le:Mt,this._itemSize),mt=lt+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:lt,last:mt}}}calculateNumItems(){const O=this.getContentPosition(),lt=this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-O.left:0,mt=this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-O.top:0,Mt=(ci,ai)=>Math.ceil(ci/(ai||ci)),le=ci=>Math.ceil(ci/2),we=this.both?{rows:Mt(mt,this._itemSize[0]),cols:Mt(lt,this._itemSize[1])}:Mt(this.horizontal?lt:mt,this._itemSize);return{numItemsInViewport:we,numToleratedItems:this.d_numToleratedItems||(this.both?[le(we.rows),le(we.cols)]:le(we))}}calculateOptions(){const{numItemsInViewport:O,numToleratedItems:lt}=this.calculateNumItems(),mt=(we,He,ci,ai=!1)=>this.getLast(we+He+(weArray.from({length:O.cols})):Array.from({length:O})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Mt.cols}:0:Mt,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto";const{offsetWidth:O,offsetHeight:lt}=this.contentEl;(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=(Othis.elementViewChild.nativeElement.style[le]=we;this.both||this.horizontal?(Mt("height",mt),Mt("width",lt)):Mt("height",mt)}}setSpacerSize(){if(this._items){const O=this.getContentPosition(),lt=(mt,Mt,le,we=0)=>this.spacerStyle={...this.spacerStyle,[`${mt}`]:(Mt||[]).length*le+we+"px"};this.both?(lt("height",this._items,this._itemSize[0],O.y),lt("width",this._columns||this._items[1],this._itemSize[1],O.x)):this.horizontal?lt("width",this._columns||this._items,this._itemSize,O.x):lt("height",this._items,this._itemSize,O.y)}}setContentPosition(O){if(this.contentEl&&!this._appendOnly){const lt=O?O.first:this.first,mt=(le,we)=>le*we,Mt=(le=0,we=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${le}px, ${we}px, 0)`};if(this.both)Mt(mt(lt.cols,this._itemSize[1]),mt(lt.rows,this._itemSize[0]));else{const le=mt(lt,this._itemSize);this.horizontal?Mt(le,0):Mt(0,le)}}}onScrollPositionChange(O){const lt=O.target,mt=this.getContentPosition(),Mt=(sn,bo)=>sn?sn>bo?sn-bo:sn:0,le=(sn,bo)=>Math.floor(sn/(bo||sn)),we=(sn,bo,qo,Ro,Lr,xs)=>sn<=Lr?Lr:xs?qo-Ro-Lr:bo+Lr-1,He=(sn,bo,qo,Ro,Lr,xs,La)=>sn<=xs?0:Math.max(0,La?snbo?qo:sn-2*xs),ci=(sn,bo,qo,Ro,Lr,xs=!1)=>{let La=bo+Ro+2*Lr;return sn>=Lr&&(La+=Lr+1),this.getLast(La,xs)},ai=Mt(lt.scrollTop,mt.top),ji=Mt(lt.scrollLeft,mt.left);let nn=this.both?{rows:0,cols:0}:0,qi=this.last,zn=!1,Pn=this.lastScrollPos;if(this.both){const sn=this.lastScrollPos.top<=ai,bo=this.lastScrollPos.left<=ji;if(!this._appendOnly||this._appendOnly&&(sn||bo)){const qo={rows:le(ai,this._itemSize[0]),cols:le(ji,this._itemSize[1])},Ro={rows:we(qo.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],sn),cols:we(qo.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],bo)};nn={rows:He(qo.rows,Ro.rows,this.first.rows,0,0,this.d_numToleratedItems[0],sn),cols:He(qo.cols,Ro.cols,this.first.cols,0,0,this.d_numToleratedItems[1],bo)},qi={rows:ci(qo.rows,nn.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ci(qo.cols,nn.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},zn=nn.rows!==this.first.rows||qi.rows!==this.last.rows||nn.cols!==this.first.cols||qi.cols!==this.last.cols,Pn={top:ai,left:ji}}}else{const sn=this.horizontal?ji:ai,bo=this.lastScrollPos<=sn;if(!this._appendOnly||this._appendOnly&&bo){const qo=le(sn,this._itemSize);nn=He(qo,we(qo,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,bo),this.first,0,0,this.d_numToleratedItems,bo),qi=ci(qo,nn,0,this.numItemsInViewport,this.d_numToleratedItems),zn=nn!==this.first||qi!==this.last,Pn=sn}}return{first:nn,last:qi,isRangeChanged:zn,scrollPos:Pn}}onScrollChange(O){const{first:lt,last:mt,isRangeChanged:Mt,scrollPos:le}=this.onScrollPositionChange(O);if(Mt){const we={first:lt,last:mt};if(this.setContentPosition(we),this.first=lt,this.last=mt,this.lastScrollPos=le,this.handleEvents("onScrollIndexChange",we),this._lazy&&this.isPageChanged){const He={first:this._step?Math.min(this.getPageByFirst()*this._step,this.items.length-this._step):lt,last:Math.min(this._step?(this.getPageByFirst()+1)*this._step:mt,this.items.length)};(this.lazyLoadState.first!==He.first||this.lazyLoadState.last!==He.last)&&this.handleEvents("onLazyLoad",He),this.lazyLoadState=He}}}onContainerScroll(O){if(this.handleEvents("onScroll",{originalEvent:O}),this._delay&&this.isPageChanged){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:lt}=this.onScrollPositionChange(O);(lt||this._step&&this.isPageChanged)&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(O),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(O)}bindResizeListener(){this.windowResizeListener||this.zone.runOutsideAngular(()=>{this.windowResizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.windowResizeListener),window.addEventListener("orientationchange",this.windowResizeListener)})}unbindResizeListener(){this.windowResizeListener&&(window.removeEventListener("resize",this.windowResizeListener),window.removeEventListener("orientationchange",this.windowResizeListener),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(K.p.isVisible(this.elementViewChild?.nativeElement)){const[O,lt]=[K.p.getWidth(this.elementViewChild.nativeElement),K.p.getHeight(this.elementViewChild.nativeElement)],[mt,Mt]=[O!==this.defaultWidth,lt!==this.defaultHeight];(this.both?mt||Mt:this.horizontal?mt:this.vertical&&Mt)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=O,this.defaultHeight=lt,this.init()})}},this._resizeDelay)}handleEvents(O,lt){return this.options&&this.options[O]?this.options[O](lt):this[O].emit(lt)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:O=>this.getOptions(O),loading:this.d_loading,getLoaderOptions:(O,lt)=>this.getLoaderOptions(O,lt),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(O){const lt=(this._items||[]).length,mt=this.both?this.first.rows+O:this.first+O;return{index:mt,count:lt,first:0===mt,last:mt===lt-1,even:mt%2==0,odd:mt%2!=0}}getLoaderOptions(O,lt){const mt=this.loaderArr.length;return{index:O,count:mt,first:0===O,last:O===mt-1,even:O%2==0,odd:O%2!=0,...lt}}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.sBO),t.Y36(t.R0b))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-scroller"]],contentQueries:function(O,lt,mt){if(1&O&&t.Suo(mt,$.jx,4),2&O){let Mt;t.iGM(Mt=t.CRH())&&(lt.templates=Mt)}},viewQuery:function(O,lt){if(1&O&&(t.Gf(Ve,5),t.Gf(ni,5)),2&O){let mt;t.iGM(mt=t.CRH())&&(lt.elementViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.contentViewChild=mt.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[t.TTD],ngContentSelectors:ti,decls:3,vars:2,consts:[[4,"ngIf","ngIfElse"],["disabledContainer",""],[3,"ngStyle","ngClass","scroll"],["element",""],["buildInContent",""],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],["content",""],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],["buildInLoader",""],[4,"ngFor","ngForOf"],["buildInLoaderIcon",""],[1,"p-scroller-loading-icon","pi","pi-spinner","pi-spin"],[4,"ngIf"]],template:function(O,lt){if(1&O&&(t.F$t(),t.YNc(0,Te,8,14,"ng-container",0),t.YNc(1,Re,2,1,"ng-template",null,1,t.W1O)),2&O){const mt=t.MAs(2);t.Q6J("ngIf",!lt._disabled)("ngIfElse",mt)}},dependencies:[A.mk,A.sg,A.O5,A.tP,A.PC],styles:["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{font-size:2rem}.p-scroller-inline .p-scroller-content{position:static}\n"],encapsulation:2}),kt})(),Qi=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez]}),kt})(),kn=(()=>{class kt{constructor(O,lt,mt){this.el=O,this.zone=lt,this.config=mt,this.escape=!0,this.fitContent=!0,this._tooltipOptions={tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",tooltipZIndex:"auto",escape:!0,positionTop:0,positionLeft:0}}get disabled(){return this._disabled}set disabled(O){this._disabled=O,this.deactivate()}ngAfterViewInit(){this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.addEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let O=this.getTarget(this.el.nativeElement);O.addEventListener("focus",this.focusListener),O.addEventListener("blur",this.blurListener)}})}ngOnChanges(O){O.tooltipPosition&&this.setOption({tooltipPosition:O.tooltipPosition.currentValue}),O.tooltipEvent&&this.setOption({tooltipEvent:O.tooltipEvent.currentValue}),O.appendTo&&this.setOption({appendTo:O.appendTo.currentValue}),O.positionStyle&&this.setOption({positionStyle:O.positionStyle.currentValue}),O.tooltipStyleClass&&this.setOption({tooltipStyleClass:O.tooltipStyleClass.currentValue}),O.tooltipZIndex&&this.setOption({tooltipZIndex:O.tooltipZIndex.currentValue}),O.escape&&this.setOption({escape:O.escape.currentValue}),O.showDelay&&this.setOption({showDelay:O.showDelay.currentValue}),O.hideDelay&&this.setOption({hideDelay:O.hideDelay.currentValue}),O.life&&this.setOption({life:O.life.currentValue}),O.positionTop&&this.setOption({positionTop:O.positionTop.currentValue}),O.positionLeft&&this.setOption({positionLeft:O.positionLeft.currentValue}),O.disabled&&this.setOption({disabled:O.disabled.currentValue}),O.text&&(this.setOption({tooltipLabel:O.text.currentValue}),this.active&&(O.text.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),O.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...O.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}onMouseEnter(O){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(O){this.deactivate()}onFocus(O){this.activate()}onBlur(O){this.deactivate()}onClick(O){this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let O=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},O)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div");let O=document.createElement("div");O.className="p-tooltip-arrow",this.container.appendChild(O),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?K.p.appendChild(this.container,this.el.nativeElement):K.p.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content")}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),K.p.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?it.P9.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&it.P9.clear(this.container),this.remove()}updateText(){this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(this.getOption("tooltipLabel")))):this.tooltipText.innerHTML=this.getOption("tooltipLabel")}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let O=this.el.nativeElement.getBoundingClientRect();return{left:O.left+K.p.getWindowScrollLeft(),top:O.top+K.p.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let O=this.getHostOffset(),lt=O.left+K.p.getOuterWidth(this.el.nativeElement),mt=O.top+(K.p.getOuterHeight(this.el.nativeElement)-K.p.getOuterHeight(this.container))/2;this.container.style.left=lt+this.getOption("positionLeft")+"px",this.container.style.top=mt+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let O=this.getHostOffset(),lt=O.left-K.p.getOuterWidth(this.container),mt=O.top+(K.p.getOuterHeight(this.el.nativeElement)-K.p.getOuterHeight(this.container))/2;this.container.style.left=lt+this.getOption("positionLeft")+"px",this.container.style.top=mt+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let O=this.getHostOffset(),lt=O.left+(K.p.getOuterWidth(this.el.nativeElement)-K.p.getOuterWidth(this.container))/2,mt=O.top-K.p.getOuterHeight(this.container);this.container.style.left=lt+this.getOption("positionLeft")+"px",this.container.style.top=mt+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let O=this.getHostOffset(),lt=O.left+(K.p.getOuterWidth(this.el.nativeElement)-K.p.getOuterWidth(this.container))/2,mt=O.top+K.p.getOuterHeight(this.el.nativeElement);this.container.style.left=lt+this.getOption("positionLeft")+"px",this.container.style.top=mt+this.getOption("positionTop")+"px"}setOption(O){this._tooltipOptions={...this._tooltipOptions,...O}}getOption(O){return this._tooltipOptions[O]}getTarget(O){return K.p.hasClass(O,"p-inputwrapper")?K.p.findSingle(O,"input"):O}preAlign(O){this.container.style.left="-999px",this.container.style.top="-999px";let lt="p-tooltip p-component p-tooltip-"+O;this.container.className=this.getOption("tooltipStyleClass")?lt+" "+this.getOption("tooltipStyleClass"):lt}isOutOfBounds(){let O=this.container.getBoundingClientRect(),lt=O.top,mt=O.left,Mt=K.p.getOuterWidth(this.container),le=K.p.getOuterHeight(this.container),we=K.p.getViewport();return mt+Mt>we.width||mt<0||lt<0||lt+le>we.height}onWindowResize(O){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new K.V(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let O=this.getTarget(this.el.nativeElement);O.removeEventListener("focus",this.focusListener),O.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):K.p.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&it.P9.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.SBq),t.Y36(t.R0b),t.Y36($.b4))},kt.\u0275dir=t.lG2({type:kt,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",fitContent:"fitContent",text:["pTooltip","text"],disabled:["tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[t.TTD]}),kt})(),bn=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez]}),kt})();function mi(kt,ie){if(1&kt&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&kt){const O=t.oxw();t.xp6(1),t.Oqu(O.label||"empty")}}function Ii(kt,ie){1&kt&&t.GkF(0)}const en=function(kt){return{height:kt}},lo=function(kt,ie){return{"p-dropdown-item":!0,"p-highlight":kt,"p-disabled":ie}},So=function(kt){return{$implicit:kt}},so=["container"],ar=["filter"],wn=["in"],lr=["editableInput"],Qo=["items"],Ki=["scroller"],Sr=["overlay"];function ls(kt,ie){if(1&kt&&(t.ynx(0),t._uU(1),t.BQk()),2&kt){const O=t.oxw(2);t.xp6(1),t.Oqu(O.label||"empty")}}function ma(kt,ie){1&kt&&t.GkF(0)}const cr=function(kt){return{"p-dropdown-label p-inputtext":!0,"p-dropdown-label-empty":kt}};function uo(kt,ie){if(1&kt&&(t.TgZ(0,"span",14),t.YNc(1,ls,2,1,"ng-container",15),t.YNc(2,ma,1,0,"ng-container",16),t.qZA()),2&kt){const O=t.oxw();t.Q6J("ngClass",t.VKq(9,cr,null==O.label||0===O.label.length))("pTooltip",O.tooltip)("tooltipPosition",O.tooltipPosition)("positionStyle",O.tooltipPositionStyle)("tooltipStyleClass",O.tooltipStyleClass),t.uIk("id",O.labelId),t.xp6(1),t.Q6J("ngIf",!O.selectedItemTemplate),t.xp6(1),t.Q6J("ngTemplateOutlet",O.selectedItemTemplate)("ngTemplateOutletContext",t.VKq(11,So,O.selectedOption))}}const Xr=function(kt){return{"p-dropdown-label p-inputtext p-placeholder":!0,"p-dropdown-label-empty":kt}};function hr(kt,ie){if(1&kt&&(t.TgZ(0,"span",17),t._uU(1),t.qZA()),2&kt){const O=t.oxw();t.Q6J("ngClass",t.VKq(2,Xr,null==O.placeholder||0===O.placeholder.length)),t.xp6(1),t.Oqu(O.placeholder||"empty")}}function $o(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"input",18,19),t.NdJ("input",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onEditableInputChange(mt))})("focus",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onEditableInputFocus(mt))})("blur",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onInputBlur(mt))}),t.qZA()}if(2&kt){const O=t.oxw();t.Q6J("disabled",O.disabled),t.uIk("maxlength",O.maxlength)("placeholder",O.placeholder)("aria-expanded",O.overlayVisible)}}function Zr(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"i",20),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.clear(mt))}),t.qZA()}}function No(kt,ie){1&kt&&t.GkF(0)}function Gn(kt,ie){1&kt&&t.GkF(0)}const Ts=function(kt){return{options:kt}};function Mr(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Gn,1,0,"ng-container",16),t.BQk()),2&kt){const O=t.oxw(3);t.xp6(1),t.Q6J("ngTemplateOutlet",O.filterTemplate)("ngTemplateOutletContext",t.VKq(2,Ts,O.filterOptions))}}function va(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",30)(1,"input",31,32),t.NdJ("keydown.enter",function(mt){return mt.preventDefault()})("keydown",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onKeydown(mt,!1))})("input",function(mt){t.CHM(O);const Mt=t.oxw(3);return t.KtG(Mt.onFilterInputChange(mt))}),t.qZA(),t._UZ(3,"span",33),t.qZA()}if(2&kt){const O=t.oxw(3);t.xp6(1),t.Q6J("value",O.filterValue||""),t.uIk("placeholder",O.filterPlaceholder)("aria-label",O.ariaFilterLabel)("aria-activedescendant",O.overlayVisible?"p-highlighted-option":O.labelId)}}function $r(kt,ie){if(1&kt&&(t.TgZ(0,"div",27),t.NdJ("click",function(lt){return lt.stopPropagation()}),t.YNc(1,Mr,2,4,"ng-container",28),t.YNc(2,va,4,4,"ng-template",null,29,t.W1O),t.qZA()),2&kt){const O=t.MAs(3),lt=t.oxw(2);t.xp6(1),t.Q6J("ngIf",lt.filterTemplate)("ngIfElse",O)}}function Br(kt,ie){1&kt&&t.GkF(0)}const yr=function(kt,ie){return{$implicit:kt,options:ie}};function Mo(kt,ie){if(1&kt&&t.YNc(0,Br,1,0,"ng-container",16),2&kt){const O=ie.$implicit,lt=ie.options;t.oxw(2);const mt=t.MAs(7);t.Q6J("ngTemplateOutlet",mt)("ngTemplateOutletContext",t.WLB(2,yr,O,lt))}}function Gs(kt,ie){1&kt&&t.GkF(0)}function ko(kt,ie){if(1&kt&&t.YNc(0,Gs,1,0,"ng-container",16),2&kt){const O=ie.options,lt=t.oxw(4);t.Q6J("ngTemplateOutlet",lt.loaderTemplate)("ngTemplateOutletContext",t.VKq(2,Ts,O))}}function Fo(kt,ie){1&kt&&(t.ynx(0),t.YNc(1,ko,1,4,"ng-template",36),t.BQk())}function Vo(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-scroller",34,35),t.NdJ("onLazyLoad",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onLazyLoad.emit(mt))}),t.YNc(2,Mo,1,5,"ng-template",13),t.YNc(3,Fo,2,0,"ng-container",15),t.qZA()}if(2&kt){const O=t.oxw(2);t.Akn(t.VKq(8,en,O.scrollHeight)),t.Q6J("items",O.optionsToDisplay)("itemSize",O.virtualScrollItemSize||O._itemSize)("autoSize",!0)("lazy",O.lazy)("options",O.virtualScrollOptions),t.xp6(3),t.Q6J("ngIf",O.loaderTemplate)}}function tr(kt,ie){1&kt&&t.GkF(0)}const Ss=function(){return{}};function Io(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,tr,1,0,"ng-container",16),t.BQk()),2&kt){t.oxw();const O=t.MAs(7),lt=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O)("ngTemplateOutletContext",t.WLB(3,yr,lt.optionsToDisplay,t.DdM(2,Ss)))}}function ya(kt,ie){if(1&kt&&(t.TgZ(0,"span"),t._uU(1),t.qZA()),2&kt){const O=t.oxw().$implicit,lt=t.oxw(4);t.xp6(1),t.Oqu(lt.getOptionGroupLabel(O)||"empty")}}function er(kt,ie){1&kt&&t.GkF(0)}function Vs(kt,ie){1&kt&&t.GkF(0)}const Ms=function(kt,ie){return{$implicit:kt,selectedOption:ie}};function cs(kt,ie){if(1&kt&&(t.TgZ(0,"li",42),t.YNc(1,ya,2,1,"span",15),t.YNc(2,er,1,0,"ng-container",16),t.qZA(),t.YNc(3,Vs,1,0,"ng-container",16)),2&kt){const O=ie.$implicit,lt=t.oxw(2).options,mt=t.MAs(5),Mt=t.oxw(2);t.Q6J("ngStyle",t.VKq(6,en,lt.itemSize+"px")),t.xp6(1),t.Q6J("ngIf",!Mt.groupTemplate),t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.groupTemplate)("ngTemplateOutletContext",t.VKq(8,So,O)),t.xp6(1),t.Q6J("ngTemplateOutlet",mt)("ngTemplateOutletContext",t.WLB(10,Ms,Mt.getOptionGroupChildren(O),Mt.selectedOption))}}function Ua(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,cs,4,13,"ng-template",41),t.BQk()),2&kt){const O=t.oxw().$implicit;t.xp6(1),t.Q6J("ngForOf",O)}}function hs(kt,ie){1&kt&&t.GkF(0)}function Wa(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,hs,1,0,"ng-container",16),t.BQk()),2&kt){const O=t.oxw().$implicit,lt=t.MAs(5),mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",lt)("ngTemplateOutletContext",t.WLB(2,Ms,O,mt.selectedOption))}}function ds(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-dropdownItem",43),t.NdJ("onClick",function(mt){t.CHM(O);const Mt=t.oxw(4);return t.KtG(Mt.onItemClick(mt))}),t.qZA()}if(2&kt){const O=ie.$implicit,lt=t.oxw().selectedOption,mt=t.oxw(3);t.Q6J("option",O)("selected",lt==O)("label",mt.getOptionLabel(O))("disabled",mt.isOptionDisabled(O))("template",mt.itemTemplate)}}function ks(kt,ie){1&kt&&t.YNc(0,ds,1,5,"ng-template",41),2&kt&&t.Q6J("ngForOf",ie.$implicit)}function Us(kt,ie){if(1&kt&&(t.ynx(0),t._uU(1),t.BQk()),2&kt){const O=t.oxw(4);t.xp6(1),t.hij(" ",O.emptyFilterMessageLabel," ")}}function Ws(kt,ie){1&kt&&t.GkF(0,null,45)}function Ds(kt,ie){if(1&kt&&(t.TgZ(0,"li",44),t.YNc(1,Us,2,1,"ng-container",28),t.YNc(2,Ws,2,0,"ng-container",22),t.qZA()),2&kt){const O=t.oxw().options,lt=t.oxw(2);t.Q6J("ngStyle",t.VKq(4,en,O.itemSize+"px")),t.xp6(1),t.Q6J("ngIf",!lt.emptyFilterTemplate&&!lt.emptyTemplate)("ngIfElse",lt.emptyFilter),t.xp6(1),t.Q6J("ngTemplateOutlet",lt.emptyFilterTemplate||lt.emptyTemplate)}}function Ys(kt,ie){if(1&kt&&(t.ynx(0),t._uU(1),t.BQk()),2&kt){const O=t.oxw(4);t.xp6(1),t.hij(" ",O.emptyMessageLabel," ")}}function xa(kt,ie){1&kt&&t.GkF(0,null,46)}function _a(kt,ie){if(1&kt&&(t.TgZ(0,"li",44),t.YNc(1,Ys,2,1,"ng-container",28),t.YNc(2,xa,2,0,"ng-container",22),t.qZA()),2&kt){const O=t.oxw().options,lt=t.oxw(2);t.Q6J("ngStyle",t.VKq(4,en,O.itemSize+"px")),t.xp6(1),t.Q6J("ngIf",!lt.emptyTemplate)("ngIfElse",lt.empty),t.xp6(1),t.Q6J("ngTemplateOutlet",lt.emptyTemplate)}}function us(kt,ie){if(1&kt&&(t.TgZ(0,"ul",37,38),t.YNc(2,Ua,2,1,"ng-container",15),t.YNc(3,Wa,2,5,"ng-container",15),t.YNc(4,ks,1,1,"ng-template",null,39,t.W1O),t.YNc(6,Ds,3,6,"li",40),t.YNc(7,_a,3,6,"li",40),t.qZA()),2&kt){const O=ie.options,lt=t.oxw(2);t.Akn(O.contentStyle),t.Q6J("ngClass",O.contentStyleClass),t.uIk("id",lt.listId),t.xp6(2),t.Q6J("ngIf",lt.group),t.xp6(1),t.Q6J("ngIf",!lt.group),t.xp6(3),t.Q6J("ngIf",lt.filterValue&<.isEmpty()),t.xp6(1),t.Q6J("ngIf",!lt.filterValue&<.isEmpty())}}function Xs(kt,ie){1&kt&&t.GkF(0)}function ba(kt,ie){if(1&kt&&(t.TgZ(0,"div",21),t.YNc(1,No,1,0,"ng-container",22),t.YNc(2,$r,4,2,"div",23),t.TgZ(3,"div",24),t.YNc(4,Vo,4,10,"p-scroller",25),t.YNc(5,Io,2,6,"ng-container",15),t.YNc(6,us,8,8,"ng-template",null,26,t.W1O),t.qZA(),t.YNc(8,Xs,1,0,"ng-container",22),t.qZA()),2&kt){const O=t.oxw();t.Tol(O.panelStyleClass),t.Q6J("ngClass","p-dropdown-panel p-component")("ngStyle",O.panelStyle),t.xp6(1),t.Q6J("ngTemplateOutlet",O.headerTemplate),t.xp6(1),t.Q6J("ngIf",O.filter),t.xp6(1),t.Udp("max-height",O.virtualScroll?"auto":O.scrollHeight||"auto"),t.xp6(1),t.Q6J("ngIf",O.virtualScroll),t.xp6(1),t.Q6J("ngIf",!O.virtualScroll),t.xp6(3),t.Q6J("ngTemplateOutlet",O.footerTemplate)}}const ml=function(kt,ie,O,lt){return{"p-dropdown p-component":!0,"p-disabled":kt,"p-dropdown-open":ie,"p-focus":O,"p-dropdown-clearable":lt}},dr={provide:Rt.JU,useExisting:(0,t.Gpc)(()=>Do),multi:!0};let xr=(()=>{class kt{constructor(){this.onClick=new t.vpe}onOptionClick(O){this.onClick.emit({originalEvent:O,option:this.option})}}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{option:"option",selected:"selected",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",template:"template"},outputs:{onClick:"onClick"},decls:3,vars:15,consts:[["role","option","pRipple","",3,"ngStyle","id","ngClass","click"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(O,lt){1&O&&(t.TgZ(0,"li",0),t.NdJ("click",function(Mt){return lt.onOptionClick(Mt)}),t.YNc(1,mi,2,1,"span",1),t.YNc(2,Ii,1,0,"ng-container",2),t.qZA()),2&O&&(t.Q6J("ngStyle",t.VKq(8,en,lt.itemSize+"px"))("id",lt.selected?"p-highlighted-option":"")("ngClass",t.WLB(10,lo,lt.selected,lt.disabled)),t.uIk("aria-label",lt.label)("aria-selected",lt.selected),t.xp6(1),t.Q6J("ngIf",!lt.template),t.xp6(1),t.Q6J("ngTemplateOutlet",lt.template)("ngTemplateOutletContext",t.VKq(13,So,lt.option)))},dependencies:[A.mk,A.O5,A.tP,A.PC,ot.H],encapsulation:2}),kt})(),Do=(()=>{class kt{constructor(O,lt,mt,Mt,le,we){this.el=O,this.renderer=lt,this.cd=mt,this.zone=Mt,this.filterService=le,this.config=we,this.scrollHeight="200px",this.resetFilterOnHide=!1,this.dropdownIcon="pi pi-chevron-down",this.optionGroupChildren="items",this.autoDisplayFirst=!0,this.emptyFilterMessage="",this.emptyMessage="",this.lazy=!1,this.filterMatchMode="contains",this.tooltip="",this.tooltipPosition="right",this.tooltipPositionStyle="absolute",this.autofocusFilter=!0,this.overlayDirection="end",this.onChange=new t.vpe,this.onFilter=new t.vpe,this.onFocus=new t.vpe,this.onBlur=new t.vpe,this.onClick=new t.vpe,this.onShow=new t.vpe,this.onHide=new t.vpe,this.onClear=new t.vpe,this.onLazyLoad=new t.vpe,this.onModelChange=()=>{},this.onModelTouched=()=>{},this.id=(0,it.Th)()}get disabled(){return this._disabled}set disabled(O){O&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=O,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(O){this._itemSize=O,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}get autoZIndex(){return this._autoZIndex}set autoZIndex(O){this._autoZIndex=O,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}get baseZIndex(){return this._baseZIndex}set baseZIndex(O){this._baseZIndex=O,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(O){this._showTransitionOptions=O,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(O){this._hideTransitionOptions=O,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}ngAfterContentInit(){this.templates.forEach(O=>{switch(O.getType()){case"item":default:this.itemTemplate=O.template;break;case"selectedItem":this.selectedItemTemplate=O.template;break;case"header":this.headerTemplate=O.template;break;case"filter":this.filterTemplate=O.template;break;case"footer":this.footerTemplate=O.template;break;case"emptyfilter":this.emptyFilterTemplate=O.template;break;case"empty":this.emptyTemplate=O.template;break;case"group":this.groupTemplate=O.template;break;case"loader":this.loaderTemplate=O.template}})}ngOnInit(){this.optionsToDisplay=this.options,this.updateSelectedOption(null),this.labelId=this.id+"_label",this.listId=this.id+"_list",this.filterBy&&(this.filterOptions={filter:O=>this.onFilterInputChange(O),reset:()=>this.resetFilter()})}get options(){return this._options}set options(O){this._options=O,this.optionsToDisplay=this._options,this.updateSelectedOption(this.value),this.selectedOption=this.findOption(this.value,this.optionsToDisplay),!this.selectedOption&&it.gb.isNotEmpty(this.value)&&!this.editable&&(this.value=null,this.onModelChange(this.value)),this.optionsChanged=!0,this._filterValue&&this._filterValue.length&&this.activateFilter()}get filterValue(){return this._filterValue}set filterValue(O){this._filterValue=O,this.activateFilter()}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}get label(){return this.selectedOption?this.getOptionLabel(this.selectedOption):null}get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation($.ws.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation($.ws.EMPTY_FILTER_MESSAGE)}get filled(){return"string"==typeof this.value?!!this.value:this.value||null!=this.value||null!=this.value}get isVisibleClearIcon(){return null!=this.value&&""!==this.value&&this.showClear&&!this.disabled}updateEditableLabel(){this.editableInputViewChild&&this.editableInputViewChild.nativeElement&&(this.editableInputViewChild.nativeElement.value=this.selectedOption?this.getOptionLabel(this.selectedOption):this.value||"")}getOptionLabel(O){return this.optionLabel?it.gb.resolveFieldData(O,this.optionLabel):O&&void 0!==O.label?O.label:O}getOptionValue(O){return this.optionValue?it.gb.resolveFieldData(O,this.optionValue):!this.optionLabel&&O&&void 0!==O.value?O.value:O}isOptionDisabled(O){return this.optionDisabled?it.gb.resolveFieldData(O,this.optionDisabled):!(!O||void 0===O.disabled)&&O.disabled}getOptionGroupLabel(O){return this.optionGroupLabel?it.gb.resolveFieldData(O,this.optionGroupLabel):O&&void 0!==O.label?O.label:O}getOptionGroupChildren(O){return this.optionGroupChildren?it.gb.resolveFieldData(O,this.optionGroupChildren):O.items}onItemClick(O){const lt=O.option;this.isOptionDisabled(lt)||(this.selectItem(O.originalEvent,lt),this.accessibleViewChild.nativeElement.focus({preventScroll:!0})),setTimeout(()=>{this.hide()},1)}selectItem(O,lt){this.selectedOption!=lt&&(this.selectedOption=lt,this.value=this.getOptionValue(lt),this.onModelChange(this.value),this.updateEditableLabel(),this.onChange.emit({originalEvent:O,value:this.value}))}ngAfterViewChecked(){this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper&&(K.p.findSingle(this.overlayViewChild.el.nativeElement,"li.p-highlight")&&K.p.scrollInView(this.itemsWrapper,K.p.findSingle(this.overlayViewChild.el.nativeElement,"li.p-highlight")),this.selectedOptionUpdated=!1)}writeValue(O){this.filter&&this.resetFilter(),this.value=O,this.updateSelectedOption(O),this.updateEditableLabel(),this.cd.markForCheck()}resetFilter(){this._filterValue=null,this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value=""),this.optionsToDisplay=this.options}updateSelectedOption(O){this.selectedOption=this.findOption(O,this.optionsToDisplay),this.autoDisplayFirst&&!this.placeholder&&!this.selectedOption&&this.optionsToDisplay&&this.optionsToDisplay.length&&!this.editable&&(this.selectedOption=this.group?this.optionsToDisplay[0].items[0]:this.optionsToDisplay[0],this.value=this.getOptionValue(this.selectedOption),this.onModelChange(this.value)),this.selectedOptionUpdated=!0}registerOnChange(O){this.onModelChange=O}registerOnTouched(O){this.onModelTouched=O}setDisabledState(O){this.disabled=O,this.cd.markForCheck()}onMouseclick(O){this.disabled||this.readonly||this.isInputClick(O)||(this.onClick.emit(O),this.accessibleViewChild.nativeElement.focus({preventScroll:!0}),this.overlayVisible?this.hide():this.show(),this.cd.detectChanges())}isInputClick(O){return K.p.hasClass(O.target,"p-dropdown-clear-icon")||O.target.isSameNode(this.accessibleViewChild.nativeElement)||this.editableInputViewChild&&O.target.isSameNode(this.editableInputViewChild.nativeElement)}isEmpty(){return!this.optionsToDisplay||this.optionsToDisplay&&0===this.optionsToDisplay.length}onEditableInputFocus(O){this.focused=!0,this.hide(),this.onFocus.emit(O)}onEditableInputChange(O){this.value=O.target.value,this.updateSelectedOption(this.value),this.onModelChange(this.value),this.onChange.emit({originalEvent:O,value:this.value})}show(){this.overlayVisible=!0,this.cd.markForCheck()}onOverlayAnimationStart(O){if("visible"===O.toState){if(this.itemsWrapper=K.p.findSingle(this.overlayViewChild.el.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller.setContentEl(this.itemsViewChild.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const lt=this.selectedOption?this.findOptionIndex(this.getOptionValue(this.selectedOption),this.optionsToDisplay):-1;-1!==lt&&this.scroller.scrollToIndex(lt)}else{let lt=K.p.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");lt&<.scrollIntoView({block:"nearest",inline:"center"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(O)}"void"===O.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(O))}hide(){this.overlayVisible=!1,this.filter&&this.resetFilterOnHide&&this.resetFilter(),this.cd.markForCheck()}onInputFocus(O){this.focused=!0,this.onFocus.emit(O)}onInputBlur(O){this.focused=!1,this.onBlur.emit(O),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}findPrevEnabledOption(O){let lt;if(this.optionsToDisplay&&this.optionsToDisplay.length){for(let mt=O-1;0<=mt;mt--){let Mt=this.optionsToDisplay[mt];if(!this.isOptionDisabled(Mt)){lt=Mt;break}}if(!lt)for(let mt=this.optionsToDisplay.length-1;mt>=O;mt--){let Mt=this.optionsToDisplay[mt];if(!this.isOptionDisabled(Mt)){lt=Mt;break}}}return lt}findNextEnabledOption(O){let lt;if(this.optionsToDisplay&&this.optionsToDisplay.length){for(let mt=O+1;mt0&&this.selectItem(O,this.getOptionGroupChildren(this.optionsToDisplay[0])[0])}else{let mt=this.selectedOption?this.findOptionIndex(this.getOptionValue(this.selectedOption),this.optionsToDisplay):-1,Mt=this.findNextEnabledOption(mt);Mt&&(this.selectItem(O,Mt),this.selectedOptionUpdated=!0)}O.preventDefault();break;case 38:if(this.group){let mt=this.selectedOption?this.findOptionGroupIndex(this.getOptionValue(this.selectedOption),this.optionsToDisplay):-1;if(-1!==mt){let Mt=mt.itemIndex-1;if(Mt>=0)this.selectItem(O,this.getOptionGroupChildren(this.optionsToDisplay[mt.groupIndex])[Mt]),this.selectedOptionUpdated=!0;else if(Mt<0){let le=this.optionsToDisplay[mt.groupIndex-1];le&&(this.selectItem(O,this.getOptionGroupChildren(le)[this.getOptionGroupChildren(le).length-1]),this.selectedOptionUpdated=!0)}}}else{let mt=this.selectedOption?this.findOptionIndex(this.getOptionValue(this.selectedOption),this.optionsToDisplay):-1,Mt=this.findPrevEnabledOption(mt);Mt&&(this.selectItem(O,Mt),this.selectedOptionUpdated=!0)}O.preventDefault();break;case 32:lt&&(this.overlayVisible?this.hide():this.show(),O.preventDefault());break;case 13:this.overlayVisible&&(!this.filter||this.optionsToDisplay&&this.optionsToDisplay.length>0)?this.hide():this.overlayVisible||this.show(),O.preventDefault();break;case 27:case 9:this.hide();break;default:lt&&!O.metaKey&&17!==O.which&&this.search(O)}}search(O){this.searchTimeout&&clearTimeout(this.searchTimeout);const lt=O.key;let mt;if(this.previousSearchChar=this.currentSearchChar,this.currentSearchChar=lt,this.searchValue=this.previousSearchChar===this.currentSearchChar?this.currentSearchChar:this.searchValue?this.searchValue+lt:lt,this.group){let Mt=this.selectedOption?this.findOptionGroupIndex(this.getOptionValue(this.selectedOption),this.optionsToDisplay):{groupIndex:0,itemIndex:0};mt=this.searchOptionWithinGroup(Mt)}else{let Mt=this.selectedOption?this.findOptionIndex(this.getOptionValue(this.selectedOption),this.optionsToDisplay):-1;mt=this.searchOption(++Mt)}mt&&!this.isOptionDisabled(mt)&&(this.selectItem(O,mt),this.selectedOptionUpdated=!0),this.searchTimeout=setTimeout(()=>{this.searchValue=null},250)}searchOption(O){let lt;return this.searchValue&&(lt=this.searchOptionInRange(O,this.optionsToDisplay.length),lt||(lt=this.searchOptionInRange(0,O))),lt}searchOptionInRange(O,lt){for(let mt=O;mt{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,_e,$.m8,bn,ot.T,Qi,Dt,_e,$.m8,Qi]}),kt})();var ir=Bt(51740);const ps=["input"];function Ya(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"i",6),t.NdJ("click",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.clear())}),t.qZA()}}const Es=function(){return{"p-inputnumber-button p-inputnumber-button-up":!0}},As=function(){return{"p-inputnumber-button p-inputnumber-button-down":!0}};function Ca(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"span",7)(1,"button",8),t.NdJ("mousedown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onUpButtonMouseDown(mt))})("mouseup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onUpButtonMouseUp())})("mouseleave",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onUpButtonMouseLeave())})("keydown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onUpButtonKeyDown(mt))})("keyup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onUpButtonKeyUp())}),t.qZA(),t.TgZ(2,"button",8),t.NdJ("mousedown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onDownButtonMouseDown(mt))})("mouseup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onDownButtonMouseUp())})("mouseleave",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onDownButtonMouseLeave())})("keydown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onDownButtonKeyDown(mt))})("keyup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onDownButtonKeyUp())}),t.qZA()()}if(2&kt){const O=t.oxw();t.xp6(1),t.Tol(O.incrementButtonClass),t.Q6J("ngClass",t.DdM(10,Es))("icon",O.incrementButtonIcon)("disabled",O.disabled),t.xp6(1),t.Tol(O.decrementButtonClass),t.Q6J("ngClass",t.DdM(11,As))("icon",O.decrementButtonIcon)("disabled",O.disabled)}}function wa(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",8),t.NdJ("mousedown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onUpButtonMouseDown(mt))})("mouseup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onUpButtonMouseUp())})("mouseleave",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onUpButtonMouseLeave())})("keydown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onUpButtonKeyDown(mt))})("keyup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onUpButtonKeyUp())}),t.qZA()}if(2&kt){const O=t.oxw();t.Tol(O.incrementButtonClass),t.Q6J("ngClass",t.DdM(5,Es))("icon",O.incrementButtonIcon)("disabled",O.disabled)}}function Kr(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",8),t.NdJ("mousedown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onDownButtonMouseDown(mt))})("mouseup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onDownButtonMouseUp())})("mouseleave",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onDownButtonMouseLeave())})("keydown",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onDownButtonKeyDown(mt))})("keyup",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onDownButtonKeyUp())}),t.qZA()}if(2&kt){const O=t.oxw();t.Tol(O.decrementButtonClass),t.Q6J("ngClass",t.DdM(5,As))("icon",O.decrementButtonIcon)("disabled",O.disabled)}}const Uo=function(kt,ie,O){return{"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":kt,"p-inputnumber-buttons-horizontal":ie,"p-inputnumber-buttons-vertical":O}},Zs={provide:Rt.JU,useExisting:(0,t.Gpc)(()=>qr),multi:!0};let qr=(()=>{class kt{constructor(O,lt){this.el=O,this.cd=lt,this.showButtons=!1,this.format=!0,this.buttonLayout="stacked",this.incrementButtonIcon="pi pi-angle-up",this.decrementButtonIcon="pi pi-angle-down",this.readonly=!1,this.step=1,this.allowEmpty=!0,this.mode="decimal",this.useGrouping=!0,this.showClear=!1,this.onInput=new t.vpe,this.onFocus=new t.vpe,this.onBlur=new t.vpe,this.onKeyDown=new t.vpe,this.onClear=new t.vpe,this.onModelChange=()=>{},this.onModelTouched=()=>{},this.groupChar="",this.prefixChar="",this.suffixChar=""}get disabled(){return this._disabled}set disabled(O){O&&(this.focused=!1),this._disabled=O,this.timer&&this.clearTimer()}ngOnChanges(O){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(mt=>!!O[mt])&&this.updateConstructParser()}ngOnInit(){this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const O=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),lt=new Map(O.map((mt,Mt)=>[mt,Mt]));this._numeral=new RegExp(`[${O.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=mt=>lt.get(mt)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(O){return O.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const O=new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1});return new RegExp(`[${O.format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}]`,"g")}getGroupingExpression(){const O=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=O.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const O=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${O.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const O=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${O.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const O=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=O.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const O=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=O.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(O){if(null!=O){if("-"===O)return O;if(this.format){let mt=new Intl.NumberFormat(this.locale,this.getOptions()).format(O);return this.prefix&&(mt=this.prefix+mt),this.suffix&&(mt+=this.suffix),mt}return O.toString()}return""}parseValue(O){let lt=O.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(lt){if("-"===lt)return lt;let mt=+lt;return isNaN(mt)?null:mt}return null}repeat(O,lt,mt){if(this.readonly)return;let Mt=lt||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(O,40,mt)},Mt),this.spin(O,mt)}spin(O,lt){let mt=this.step*lt,Mt=this.parseValue(this.input.nativeElement.value)||0,le=this.validateValue(Mt+mt);this.maxlength&&this.maxlength0&<>He){const ji=this.isDecimalMode()&&(this.minFractionDigits||0)0?le:""):le=Mt.slice(0,lt-1)+Mt.slice(lt)}this.updateValue(O,le,null,"delete-single")}else le=this.deleteRange(Mt,lt,mt),this.updateValue(O,le,null,"delete-range");break;case 46:if(O.preventDefault(),lt===mt){const we=Mt.charAt(lt),{decimalCharIndex:He,decimalCharIndexWithoutPrefix:ci}=this.getDecimalCharIndexes(Mt);if(this.isNumeralChar(we)){const ai=this.getDecimalLength(Mt);if(this._group.test(we))this._group.lastIndex=0,le=Mt.slice(0,lt)+Mt.slice(lt+2);else if(this._decimal.test(we))this._decimal.lastIndex=0,ai?this.input.nativeElement.setSelectionRange(lt+1,lt+1):le=Mt.slice(0,lt)+Mt.slice(lt+1);else if(He>0&<>He){const ji=this.isDecimalMode()&&(this.minFractionDigits||0)0?le:""):le=Mt.slice(0,lt)+Mt.slice(lt+1)}this.updateValue(O,le,null,"delete-back-single")}else le=this.deleteRange(Mt,lt,mt),this.updateValue(O,le,null,"delete-range")}this.onKeyDown.emit(O)}onInputKeyPress(O){if(this.readonly)return;let lt=O.which||O.keyCode,mt=String.fromCharCode(lt);const Mt=this.isDecimalSign(mt),le=this.isMinusSign(mt);13!=lt&&O.preventDefault(),(48<=lt&<<=57||le||Mt)&&this.insert(O,mt,{isDecimalSign:Mt,isMinusSign:le})}onPaste(O){if(!this.disabled&&!this.readonly){O.preventDefault();let lt=(O.clipboardData||window.clipboardData).getData("Text");if(lt){let mt=this.parseValue(lt);null!=mt&&this.insert(O,mt.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(O){return!(!this._minusSign.test(O)&&"-"!==O||(this._minusSign.lastIndex=0,0))}isDecimalSign(O){return!!this._decimal.test(O)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(O){let lt=O.search(this._decimal);this._decimal.lastIndex=0;const Mt=O.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:lt,decimalCharIndexWithoutPrefix:Mt}}getCharIndexes(O){const lt=O.search(this._decimal);this._decimal.lastIndex=0;const mt=O.search(this._minusSign);this._minusSign.lastIndex=0;const Mt=O.search(this._suffix);this._suffix.lastIndex=0;const le=O.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:lt,minusCharIndex:mt,suffixCharIndex:Mt,currencyCharIndex:le}}insert(O,lt,mt={isDecimalSign:!1,isMinusSign:!1}){const Mt=lt.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Mt)return;let le=this.input.nativeElement.selectionStart,we=this.input.nativeElement.selectionEnd,He=this.input.nativeElement.value.trim();const{decimalCharIndex:ci,minusCharIndex:ai,suffixCharIndex:ji,currencyCharIndex:nn}=this.getCharIndexes(He);let qi;if(mt.isMinusSign)0===le&&(qi=He,(-1===ai||0!==we)&&(qi=this.insertText(He,lt,0,we)),this.updateValue(O,qi,lt,"insert"));else if(mt.isDecimalSign)ci>0&&le===ci?this.updateValue(O,He,lt,"insert"):(ci>le&&ci0&&le>ci){if(le+lt.length-(ci+1)<=zn){const sn=nn>=le?nn-1:ji>=le?ji:He.length;qi=He.slice(0,le)+lt+He.slice(le+lt.length,sn)+He.slice(sn),this.updateValue(O,qi,lt,Pn)}}else qi=this.insertText(He,lt,le,we),this.updateValue(O,qi,lt,Pn)}}insertText(O,lt,mt,Mt){if(2===("."===lt?lt:lt.split(".")).length){const we=O.slice(mt,Mt).search(this._decimal);return this._decimal.lastIndex=0,we>0?O.slice(0,mt)+this.formatValue(lt)+O.slice(Mt):O||this.formatValue(lt)}return Mt-mt===O.length?this.formatValue(lt):0===mt?lt+O.slice(Mt):Mt===O.length?O.slice(0,mt)+lt:O.slice(0,mt)+lt+O.slice(Mt)}deleteRange(O,lt,mt){let Mt;return Mt=mt-lt===O.length?"":0===lt?O.slice(mt):mt===O.length?O.slice(0,lt):O.slice(0,lt)+O.slice(mt),Mt}initCursor(){let O=this.input.nativeElement.selectionStart,lt=this.input.nativeElement.value,mt=lt.length,Mt=null,le=(this.prefixChar||"").length;lt=lt.replace(this._prefix,""),O-=le;let we=lt.charAt(O);if(this.isNumeralChar(we))return O+le;let He=O-1;for(;He>=0;){if(we=lt.charAt(He),this.isNumeralChar(we)){Mt=He+le;break}He--}if(null!==Mt)this.input.nativeElement.setSelectionRange(Mt+1,Mt+1);else{for(He=O;Hethis.max?this.max:O}updateInput(O,lt,mt,Mt){lt=lt||"";let le=this.input.nativeElement.value,we=this.formatValue(O),He=le.length;if(we!==Mt&&(we=this.concatValues(we,Mt)),0===He){this.input.nativeElement.value=we,this.input.nativeElement.setSelectionRange(0,0);const ai=this.initCursor()+lt.length;this.input.nativeElement.setSelectionRange(ai,ai)}else{let ci=this.input.nativeElement.selectionStart,ai=this.input.nativeElement.selectionEnd;if(this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}getFormatter(){return this.numberFormat}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.SBq),t.Y36(t.sBO))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-inputNumber"]],viewQuery:function(O,lt){if(1&O&&t.Gf(ps,5),2&O){let mt;t.iGM(mt=t.CRH())&&(lt.input=mt.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(O,lt){2&O&&t.ekj("p-inputwrapper-filled",lt.filled)("p-inputwrapper-focus",lt.focused)("p-inputnumber-clearable",lt.showClear&&"vertical"!=lt.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[t._Bn([Zs]),t.TTD],decls:7,vars:32,consts:[[3,"ngClass","ngStyle"],["pInputText","","inputmode","decimal",3,"ngClass","ngStyle","value","disabled","readonly","input","keydown","keypress","paste","click","focus","blur"],["input",""],["class","p-inputnumber-clear-icon pi pi-times",3,"click",4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","tabindex","-1",3,"ngClass","class","icon","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[1,"p-inputnumber-clear-icon","pi","pi-times",3,"click"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",3,"ngClass","icon","disabled","mousedown","mouseup","mouseleave","keydown","keyup"]],template:function(O,lt){1&O&&(t.TgZ(0,"span",0)(1,"input",1,2),t.NdJ("input",function(Mt){return lt.onUserInput(Mt)})("keydown",function(Mt){return lt.onInputKeyDown(Mt)})("keypress",function(Mt){return lt.onInputKeyPress(Mt)})("paste",function(Mt){return lt.onPaste(Mt)})("click",function(){return lt.onInputClick()})("focus",function(Mt){return lt.onInputFocus(Mt)})("blur",function(Mt){return lt.onInputBlur(Mt)}),t.qZA(),t.YNc(3,Ya,1,0,"i",3),t.YNc(4,Ca,3,12,"span",4),t.YNc(5,wa,1,6,"button",5),t.YNc(6,Kr,1,6,"button",5),t.qZA()),2&O&&(t.Tol(lt.styleClass),t.Q6J("ngClass",t.kEZ(28,Uo,lt.showButtons&&"stacked"===lt.buttonLayout,lt.showButtons&&"horizontal"===lt.buttonLayout,lt.showButtons&&"vertical"===lt.buttonLayout))("ngStyle",lt.style),t.xp6(1),t.Tol(lt.inputStyleClass),t.Q6J("ngClass","p-inputnumber-input")("ngStyle",lt.inputStyle)("value",lt.formattedValue())("disabled",lt.disabled)("readonly",lt.readonly),t.uIk("placeholder",lt.placeholder)("title",lt.title)("id",lt.inputId)("size",lt.size)("name",lt.name)("autocomplete",lt.autocomplete)("maxlength",lt.maxlength)("tabindex",lt.tabindex)("aria-label",lt.ariaLabel)("aria-required",lt.ariaRequired)("required",lt.required)("min",lt.min)("max",lt.max),t.xp6(2),t.Q6J("ngIf","vertical"!=lt.buttonLayout&<.showClear&<.value),t.xp6(1),t.Q6J("ngIf",lt.showButtons&&"stacked"===lt.buttonLayout),t.xp6(1),t.Q6J("ngIf",lt.showButtons&&"stacked"!==lt.buttonLayout),t.xp6(1),t.Q6J("ngIf",lt.showButtons&&"stacked"!==lt.buttonLayout))},dependencies:[A.mk,A.O5,A.PC,ir.o,V.Hq],styles:["p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}\n"],encapsulation:2,changeDetection:0}),kt})(),to=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,ir.j,V.hJ]}),kt})();function Nn(kt,ie){1&kt&&t.GkF(0)}const nr=function(kt){return{$implicit:kt}};function Eo(kt,ie){if(1&kt&&(t.TgZ(0,"div",15),t.YNc(1,Nn,1,0,"ng-container",16),t.qZA()),2&kt){const O=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",O.templateLeft)("ngTemplateOutletContext",t.VKq(2,nr,O.paginatorState))}}function Hl(kt,ie){if(1&kt&&(t.TgZ(0,"span",17),t._uU(1),t.qZA()),2&kt){const O=t.oxw(2);t.xp6(1),t.Oqu(O.currentPageReport)}}const jr=function(kt){return{"p-disabled":kt}};function Hr(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",18),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.changePageToFirst(mt))}),t._UZ(1,"span",19),t.qZA()}if(2&kt){const O=t.oxw(2);t.Q6J("disabled",O.isFirstPage()||O.empty())("ngClass",t.VKq(2,jr,O.isFirstPage()||O.empty()))}}const po=function(kt){return{"p-highlight":kt}};function fs(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",22),t.NdJ("click",function(mt){const le=t.CHM(O).$implicit,we=t.oxw(3);return t.KtG(we.onPageLinkClick(mt,le-1))}),t._uU(1),t.qZA()}if(2&kt){const O=ie.$implicit,lt=t.oxw(3);t.Q6J("ngClass",t.VKq(2,po,O-1==lt.getPage())),t.xp6(1),t.hij(" ",O," ")}}function Ta(kt,ie){if(1&kt&&(t.TgZ(0,"span",20),t.YNc(1,fs,2,4,"button",21),t.qZA()),2&kt){const O=t.oxw(2);t.xp6(1),t.Q6J("ngForOf",O.pageLinks)}}function gs(kt,ie){if(1&kt&&t._uU(0),2&kt){const O=t.oxw(3);t.Oqu(O.currentPageReport)}}function Lo(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-dropdown",23),t.NdJ("onChange",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onPageDropdownChange(mt))}),t.YNc(1,gs,1,1,"ng-template",24),t.qZA()}if(2&kt){const O=t.oxw(2);t.Q6J("options",O.pageItems)("ngModel",O.getPage())("disabled",O.empty())("appendTo",O.dropdownAppendTo)("scrollHeight",O.dropdownScrollHeight)}}function Sa(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"button",25),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.changePageToLast(mt))}),t._UZ(1,"span",26),t.qZA()}if(2&kt){const O=t.oxw(2);t.Q6J("disabled",O.isLastPage()||O.empty())("ngClass",t.VKq(2,jr,O.isLastPage()||O.empty()))}}function $s(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-inputNumber",27),t.NdJ("ngModelChange",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.changePage(mt-1))}),t.qZA()}if(2&kt){const O=t.oxw(2);t.Q6J("ngModel",O.currentPage())("disabled",O.empty())}}function Zi(kt,ie){1&kt&&t.GkF(0)}function Wi(kt,ie){if(1&kt&&t.YNc(0,Zi,1,0,"ng-container",16),2&kt){const O=ie.$implicit,lt=t.oxw(4);t.Q6J("ngTemplateOutlet",lt.dropdownItemTemplate)("ngTemplateOutletContext",t.VKq(2,nr,O))}}function qt(kt,ie){1&kt&&(t.ynx(0),t.YNc(1,Wi,1,4,"ng-template",30),t.BQk())}function Xt(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-dropdown",28),t.NdJ("ngModelChange",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.rows=mt)})("onChange",function(mt){t.CHM(O);const Mt=t.oxw(2);return t.KtG(Mt.onRppChange(mt))}),t.YNc(1,qt,2,0,"ng-container",29),t.qZA()}if(2&kt){const O=t.oxw(2);t.Q6J("options",O.rowsPerPageItems)("ngModel",O.rows)("disabled",O.empty())("appendTo",O.dropdownAppendTo)("scrollHeight",O.dropdownScrollHeight),t.xp6(1),t.Q6J("ngIf",O.dropdownItemTemplate)}}function Ut(kt,ie){1&kt&&t.GkF(0)}function ce(kt,ie){if(1&kt&&(t.TgZ(0,"div",31),t.YNc(1,Ut,1,0,"ng-container",16),t.qZA()),2&kt){const O=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",O.templateRight)("ngTemplateOutletContext",t.VKq(2,nr,O.paginatorState))}}function $e(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",1),t.YNc(1,Eo,2,4,"div",2),t.YNc(2,Hl,2,1,"span",3),t.YNc(3,Hr,2,4,"button",4),t.TgZ(4,"button",5),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.changePageToPrev(mt))}),t._UZ(5,"span",6),t.qZA(),t.YNc(6,Ta,2,1,"span",7),t.YNc(7,Lo,2,5,"p-dropdown",8),t.TgZ(8,"button",9),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.changePageToNext(mt))}),t._UZ(9,"span",10),t.qZA(),t.YNc(10,Sa,2,4,"button",11),t.YNc(11,$s,1,2,"p-inputNumber",12),t.YNc(12,Xt,2,6,"p-dropdown",13),t.YNc(13,ce,2,4,"div",14),t.qZA()}if(2&kt){const O=t.oxw();t.Tol(O.styleClass),t.Q6J("ngStyle",O.style)("ngClass","p-paginator p-component"),t.xp6(1),t.Q6J("ngIf",O.templateLeft),t.xp6(1),t.Q6J("ngIf",O.showCurrentPageReport),t.xp6(1),t.Q6J("ngIf",O.showFirstLastIcon),t.xp6(1),t.Q6J("disabled",O.isFirstPage()||O.empty())("ngClass",t.VKq(17,jr,O.isFirstPage()||O.empty())),t.xp6(2),t.Q6J("ngIf",O.showPageLinks),t.xp6(1),t.Q6J("ngIf",O.showJumpToPageDropdown),t.xp6(1),t.Q6J("disabled",O.isLastPage()||O.empty())("ngClass",t.VKq(19,jr,O.isLastPage()||O.empty())),t.xp6(2),t.Q6J("ngIf",O.showFirstLastIcon),t.xp6(1),t.Q6J("ngIf",O.showJumpToPageInput),t.xp6(1),t.Q6J("ngIf",O.rowsPerPageOptions),t.xp6(1),t.Q6J("ngIf",O.templateRight)}}let vi=(()=>{class kt{constructor(O){this.cd=O,this.pageLinkSize=5,this.onPageChange=new t.vpe,this.alwaysShow=!0,this.dropdownScrollHeight="200px",this.currentPageReportTemplate="{currentPage} of {totalPages}",this.showFirstLastIcon=!0,this.totalRecords=0,this.rows=0,this.showPageLinks=!0,this._first=0,this._page=0}ngOnInit(){this.updatePaginatorState()}ngOnChanges(O){O.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),O.first&&(this._first=O.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),O.rows&&(this.updatePageLinks(),this.updatePaginatorState()),O.rowsPerPageOptions&&this.updateRowsPerPageOptions()}get first(){return this._first}set first(O){this._first=O}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let O of this.rowsPerPageOptions)"object"==typeof O&&O.showAll?this.rowsPerPageItems.unshift({label:O.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(O),value:O})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let O=this.getPageCount(),lt=Math.min(this.pageLinkSize,O),mt=Math.max(0,Math.ceil(this.getPage()-lt/2)),Mt=Math.min(O-1,mt+lt-1);return mt=Math.max(0,mt-(this.pageLinkSize-(Mt-mt+1))),[mt,Mt]}updatePageLinks(){this.pageLinks=[];let O=this.calculatePageLinkBoundaries(),mt=O[1];for(let Mt=O[0];Mt<=mt;Mt++)this.pageLinks.push(Mt+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Mt=0;Mt=0&&O0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(O-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(O){this.isFirstPage()||this.changePage(0),O.preventDefault()}changePageToPrev(O){this.changePage(this.getPage()-1),O.preventDefault()}changePageToNext(O){this.changePage(this.getPage()+1),O.preventDefault()}changePageToLast(O){this.isLastPage()||this.changePage(this.getPageCount()-1),O.preventDefault()}onPageLinkClick(O,lt){this.changePage(lt),O.preventDefault()}onRppChange(O){this.changePage(this.getPage())}onPageDropdownChange(O){this.changePage(O.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.sBO))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-paginator"]],hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",templateLeft:"templateLeft",templateRight:"templateRight",dropdownAppendTo:"dropdownAppendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[t.TTD],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"disabled","ngClass","click"],[1,"p-paginator-icon","pi","pi-angle-left"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"disabled","ngClass","click"],[1,"p-paginator-icon","pi","pi-angle-right"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"disabled","ngClass","click"],[1,"p-paginator-icon","pi","pi-angle-double-left"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"ngClass","click"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange"],["pTemplate","selectedItem"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"disabled","ngClass","click"],[1,"p-paginator-icon","pi","pi-angle-double-right"],[1,"p-paginator-page-input",3,"ngModel","disabled","ngModelChange"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ngModelChange","onChange"],[4,"ngIf"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(O,lt){1&O&&t.YNc(0,$e,14,21,"div",0),2&O&&t.Q6J("ngIf",!!lt.alwaysShow||lt.pageLinks&<.pageLinks.length>1)},dependencies:[A.mk,A.sg,A.O5,A.tP,A.PC,Do,$.jx,qr,Rt.JJ,Rt.On,ot.H],styles:[".p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}\n"],encapsulation:2,changeDetection:0}),kt})(),yo=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,zr,to,Rt.u5,$.m8,ot.T,zr,to,Rt.u5,$.m8]}),kt})();function ri(kt,ie){if(1&kt&&t._UZ(0,"span",8),2&kt){const O=t.oxw(2).$implicit;t.Tol(O.icon),t.Q6J("ngClass","p-button-icon p-button-icon-left")}}function an(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,ri,1,3,"span",6),t.TgZ(2,"span",7),t._uU(3),t.qZA(),t.BQk()),2&kt){const O=t.oxw().$implicit,lt=t.oxw();t.xp6(1),t.Q6J("ngIf",O.icon),t.xp6(2),t.Oqu(lt.getOptionLabel(O))}}function Jr(kt,ie){1&kt&&t.GkF(0)}const Os=function(kt,ie){return{$implicit:kt,index:ie}};function Bo(kt,ie){if(1&kt&&t.YNc(0,Jr,1,0,"ng-container",9),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw();t.Q6J("ngTemplateOutlet",Mt.itemTemplate)("ngTemplateOutletContext",t.WLB(2,Os,lt,mt))}}const vl=function(kt,ie,O){return{"p-highlight":kt,"p-disabled":ie,"p-button-icon-only":O}};function Ma(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"div",2,3),t.NdJ("click",function(mt){const Mt=t.CHM(O),le=Mt.$implicit,we=Mt.index,He=t.oxw();return t.KtG(He.onItemClick(mt,le,we))})("keydown.enter",function(mt){const Mt=t.CHM(O),le=Mt.$implicit,we=Mt.index,He=t.oxw();return t.KtG(He.onItemClick(mt,le,we))})("blur",function(){t.CHM(O);const mt=t.oxw();return t.KtG(mt.onBlur())}),t.YNc(2,an,4,2,"ng-container",4),t.YNc(3,Bo,1,5,"ng-template",null,5,t.W1O),t.qZA()}if(2&kt){const O=ie.$implicit,lt=t.MAs(4),mt=t.oxw();t.Tol(O.styleClass),t.Q6J("ngClass",t.kEZ(10,vl,mt.isSelected(O),mt.disabled||mt.isOptionDisabled(O),O.icon&&!mt.getOptionLabel(O))),t.uIk("aria-pressed",mt.isSelected(O))("title",O.title)("aria-label",O.label)("tabindex",mt.disabled?null:mt.tabindex)("aria-labelledby",mt.getOptionLabel(O)),t.xp6(2),t.Q6J("ngIf",!mt.itemTemplate)("ngIfElse",lt)}}const kr={provide:Rt.JU,useExisting:(0,t.Gpc)(()=>ka),multi:!0};let ka=(()=>{class kt{constructor(O){this.cd=O,this.tabindex=0,this.onOptionClick=new t.vpe,this.onChange=new t.vpe,this.onModelChange=()=>{},this.onModelTouched=()=>{}}getOptionLabel(O){return this.optionLabel?it.gb.resolveFieldData(O,this.optionLabel):null!=O.label?O.label:O}getOptionValue(O){return this.optionValue?it.gb.resolveFieldData(O,this.optionValue):this.optionLabel||void 0===O.value?O:O.value}isOptionDisabled(O){return this.optionDisabled?it.gb.resolveFieldData(O,this.optionDisabled):void 0!==O.disabled&&O.disabled}writeValue(O){this.value=O,this.cd.markForCheck()}registerOnChange(O){this.onModelChange=O}registerOnTouched(O){this.onModelTouched=O}setDisabledState(O){this.disabled=O,this.cd.markForCheck()}onItemClick(O,lt,mt){if(!this.disabled&&!this.isOptionDisabled(lt)){if(this.multiple)this.isSelected(lt)?this.removeOption(lt):this.value=[...this.value||[],this.getOptionValue(lt)],this.onModelChange(this.value),this.onChange.emit({originalEvent:O,value:this.value});else{let Mt=this.getOptionValue(lt);this.value!==Mt&&(this.value=this.getOptionValue(lt),this.onModelChange(this.value),this.onChange.emit({originalEvent:O,value:this.value}))}this.onOptionClick.emit({originalEvent:O,option:lt,index:mt})}}onBlur(){this.onModelTouched()}removeOption(O){this.value=this.value.filter(lt=>!it.gb.equals(lt,this.getOptionValue(O),this.dataKey))}isSelected(O){let lt=!1,mt=this.getOptionValue(O);if(this.multiple){if(this.value&&this.value instanceof Array)for(let Mt of this.value)if(it.gb.equals(Mt,mt,this.dataKey)){lt=!0;break}}else lt=it.gb.equals(this.getOptionValue(O),this.value,this.dataKey);return lt}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.sBO))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-selectButton"]],contentQueries:function(O,lt,mt){if(1&O&&t.Suo(mt,t.Rgc,5),2&O){let Mt;t.iGM(Mt=t.CRH())&&(lt.itemTemplate=Mt.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",tabindex:"tabindex",multiple:"multiple",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[t._Bn([kr])],decls:2,vars:5,consts:[["role","group",3,"ngClass","ngStyle"],["class","p-button p-component","role","button","pRipple","",3,"class","ngClass","click","keydown.enter","blur",4,"ngFor","ngForOf"],["role","button","pRipple","",1,"p-button","p-component",3,"ngClass","click","keydown.enter","blur"],["btn",""],[4,"ngIf","ngIfElse"],["customcontent",""],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(O,lt){1&O&&(t.TgZ(0,"div",0),t.YNc(1,Ma,5,14,"div",1),t.qZA()),2&O&&(t.Tol(lt.styleClass),t.Q6J("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",lt.style),t.xp6(1),t.Q6J("ngForOf",lt.options))},dependencies:[A.mk,A.sg,A.O5,A.tP,A.PC,ot.H],styles:['.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-buttonset .p-button{margin:0}.p-buttonset .p-button:not(:last-child){border-right:0 none}.p-buttonset .p-button:not(:first-of-type):not(:last-of-type){border-radius:0}.p-buttonset .p-button:first-of-type{border-top-right-radius:0;border-bottom-right-radius:0}.p-buttonset .p-button:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0}.p-buttonset .p-button:focus{position:relative;z-index:1}\n'],encapsulation:2,changeDetection:0}),kt})(),Ks=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,ot.T]}),kt})();const Da=function(kt,ie,O){return{"p-checkbox-label-active":kt,"p-disabled":ie,"p-checkbox-label-focus":O}};function Jc(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"label",7),t.NdJ("click",function(mt){t.CHM(O);const Mt=t.oxw(),le=t.MAs(3);return t.KtG(Mt.onClick(mt,le))}),t._uU(1),t.qZA()}if(2&kt){const O=t.oxw();t.Q6J("ngClass",t.kEZ(3,Da,null!=O.value,O.disabled,O.focused)),t.uIk("for",O.inputId),t.xp6(1),t.Oqu(O.label)}}const Xa=function(kt,ie){return{"p-checkbox p-component":!0,"p-checkbox-disabled":kt,"p-checkbox-focused":ie}},xo=function(kt,ie,O){return{"p-highlight":kt,"p-disabled":ie,"p-focus":O}},zo={provide:Rt.JU,useExisting:(0,t.Gpc)(()=>Ea),multi:!0};let Ea=(()=>{class kt{constructor(O){this.cd=O,this.checkboxTrueIcon="pi pi-check",this.checkboxFalseIcon="pi pi-times",this.onChange=new t.vpe,this.onModelChange=()=>{},this.onModelTouched=()=>{}}onClick(O,lt){!this.disabled&&!this.readonly&&(this.toggle(O),this.focused=!0,lt.focus())}onKeydown(O){32==O.keyCode&&O.preventDefault()}onKeyup(O){32==O.keyCode&&!this.readonly&&(this.toggle(O),O.preventDefault())}toggle(O){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:O,value:this.value})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(O){this.onModelChange=O}registerOnTouched(O){this.onModelTouched=O}writeValue(O){this.value=O,this.cd.markForCheck()}setDisabledState(O){this.disabled=O,this.cd.markForCheck()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.sBO))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-triStateCheckbox"]],hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[t._Bn([zo])],decls:7,vars:21,consts:[[3,"ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","text","inputmode","none",3,"name","readonly","disabled","keyup","keydown","focus","blur"],["input",""],["role","checkbox",1,"p-checkbox-box",3,"ngClass","click"],[1,"p-checkbox-icon",3,"ngClass"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],[1,"p-checkbox-label",3,"ngClass","click"]],template:function(O,lt){if(1&O){const mt=t.EpF();t.TgZ(0,"div",0)(1,"div",1)(2,"input",2,3),t.NdJ("keyup",function(le){return lt.onKeyup(le)})("keydown",function(le){return lt.onKeydown(le)})("focus",function(){return lt.onFocus()})("blur",function(){return lt.onBlur()}),t.qZA()(),t.TgZ(4,"div",4),t.NdJ("click",function(le){t.CHM(mt);const we=t.MAs(3);return t.KtG(lt.onClick(le,we))}),t._UZ(5,"span",5),t.qZA()(),t.YNc(6,Jc,2,7,"label",6)}2&O&&(t.Tol(lt.styleClass),t.Q6J("ngStyle",lt.style)("ngClass",t.WLB(14,Xa,lt.disabled,lt.focused)),t.xp6(2),t.Q6J("name",lt.name)("readonly",lt.readonly)("disabled",lt.disabled),t.uIk("id",lt.inputId)("tabindex",lt.tabindex)("aria-labelledby",lt.ariaLabelledBy),t.xp6(2),t.Q6J("ngClass",t.kEZ(17,xo,null!=lt.value,lt.disabled,lt.focused)),t.uIk("aria-checked",!0===lt.value),t.xp6(1),t.Q6J("ngClass",!0===lt.value?lt.checkboxTrueIcon:!1===lt.value?lt.checkboxFalseIcon:""),t.xp6(1),t.Q6J("ngIf",lt.label))},dependencies:[A.mk,A.O5,A.PC],encapsulation:2,changeDetection:0}),kt})(),Ao=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez]}),kt})();var Vn=Bt(77579);const Qr=["container"],Wo=["resizeHelper"],qs=["reorderIndicatorUp"],Za=["reorderIndicatorDown"],Js=["wrapper"],Qs=["table"],yl=["thead"],$a=["tfoot"],ur=["scroller"];function ta(kt,ie){if(1&kt&&(t.TgZ(0,"div",15),t._UZ(1,"i"),t.qZA()),2&kt){const O=t.oxw();t.xp6(1),t.Tol("p-datatable-loading-icon pi-spin "+O.loadingIcon)}}function Ka(kt,ie){1&kt&&t.GkF(0)}function ts(kt,ie){if(1&kt&&(t.TgZ(0,"div",16),t.YNc(1,Ka,1,0,"ng-container",17),t.qZA()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O.captionTemplate)}}function Dr(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-paginator",18),t.NdJ("onPageChange",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onPageChange(mt))}),t.qZA()}if(2&kt){const O=t.oxw();t.Q6J("rows",O.rows)("first",O.first)("totalRecords",O.totalRecords)("pageLinkSize",O.pageLinks)("alwaysShow",O.alwaysShowPaginator)("rowsPerPageOptions",O.rowsPerPageOptions)("templateLeft",O.paginatorLeftTemplate)("templateRight",O.paginatorRightTemplate)("dropdownAppendTo",O.paginatorDropdownAppendTo)("dropdownScrollHeight",O.paginatorDropdownScrollHeight)("currentPageReportTemplate",O.currentPageReportTemplate)("showFirstLastIcon",O.showFirstLastIcon)("dropdownItemTemplate",O.paginatorDropdownItemTemplate)("showCurrentPageReport",O.showCurrentPageReport)("showJumpToPageDropdown",O.showJumpToPageDropdown)("showJumpToPageInput",O.showJumpToPageInput)("showPageLinks",O.showPageLinks)}}function Gl(kt,ie){1&kt&&t.GkF(0)}const Er=function(kt,ie){return{$implicit:kt,options:ie}};function xl(kt,ie){if(1&kt&&t.YNc(0,Gl,1,0,"ng-container",22),2&kt){const O=ie.$implicit,lt=ie.options;t.oxw(2);const mt=t.MAs(10);t.Q6J("ngTemplateOutlet",mt)("ngTemplateOutletContext",t.WLB(2,Er,O,lt))}}const _l=function(kt){return{height:kt}};function Vl(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-scroller",19,20),t.NdJ("onLazyLoad",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onLazyItemLoad(mt))}),t.YNc(2,xl,1,5,"ng-template",21),t.qZA()}if(2&kt){const O=t.oxw();t.Akn(t.VKq(15,_l,"flex"!==O.scrollHeight?O.scrollHeight:void 0)),t.Q6J("items",O.processedData)("columns",O.columns)("scrollHeight","flex"!==O.scrollHeight?void 0:"100%")("itemSize",O.virtualScrollItemSize||O._virtualRowHeight)("step",O.rows)("delay",O.lazy?O.virtualScrollDelay:0)("inline",!0)("lazy",O.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",O.loadingBodyTemplate)("options",O.virtualScrollOptions)("autoSize",!0)}}function fo(kt,ie){1&kt&&t.GkF(0)}const ms=function(kt){return{columns:kt}};function ao(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,fo,1,0,"ng-container",22),t.BQk()),2&kt){const O=t.oxw(),lt=t.MAs(10);t.xp6(1),t.Q6J("ngTemplateOutlet",lt)("ngTemplateOutletContext",t.WLB(4,Er,O.processedData,t.VKq(2,ms,O.columns)))}}function qa(kt,ie){1&kt&&t.GkF(0)}function Ul(kt,ie){1&kt&&t.GkF(0)}function Wl(kt,ie){if(1&kt&&t._UZ(0,"tbody",31),2&kt){const O=t.oxw().options,lt=t.oxw();t.Q6J("value",lt.frozenValue)("frozenRows",!0)("pTableBody",O.columns)("pTableBodyTemplate",lt.frozenBodyTemplate)("frozen",!0)}}function wc(kt,ie){if(1&kt&&t._UZ(0,"tbody",32),2&kt){const O=t.oxw().options;t.Akn("height: calc("+O.spacerStyle.height+" - "+O.rows.length*O.itemSize+"px);")}}function Tc(kt,ie){1&kt&&t.GkF(0)}const zt=function(kt){return{$implicit:kt}};function ee(kt,ie){if(1&kt&&(t.TgZ(0,"tfoot",33,34),t.YNc(2,Tc,1,0,"ng-container",22),t.qZA()),2&kt){const O=t.oxw().options,lt=t.oxw();t.xp6(2),t.Q6J("ngTemplateOutlet",lt.footerGroupedTemplate||lt.footerTemplate)("ngTemplateOutletContext",t.VKq(2,zt,O.columns))}}const Wt=function(kt,ie,O){return{"p-datatable-table":!0,"p-datatable-scrollable-table":kt,"p-datatable-resizable-table":ie,"p-datatable-resizable-table-fit":O}};function oe(kt,ie){if(1&kt&&(t.TgZ(0,"table",23,24),t.YNc(2,qa,1,0,"ng-container",22),t.TgZ(3,"thead",25,26),t.YNc(5,Ul,1,0,"ng-container",22),t.qZA(),t.YNc(6,Wl,1,5,"tbody",27),t._UZ(7,"tbody",28),t.YNc(8,wc,1,2,"tbody",29),t.YNc(9,ee,3,4,"tfoot",30),t.qZA()),2&kt){const O=ie.options,lt=t.oxw();t.Akn(lt.tableStyle),t.Tol(lt.tableStyleClass),t.Q6J("ngClass",t.kEZ(20,Wt,lt.scrollable,lt.resizableColumns,lt.resizableColumns&&"fit"===lt.columnResizeMode)),t.uIk("id",lt.id+"-table"),t.xp6(2),t.Q6J("ngTemplateOutlet",lt.colGroupTemplate)("ngTemplateOutletContext",t.VKq(24,zt,O.columns)),t.xp6(3),t.Q6J("ngTemplateOutlet",lt.headerGroupedTemplate||lt.headerTemplate)("ngTemplateOutletContext",t.VKq(26,zt,O.columns)),t.xp6(1),t.Q6J("ngIf",lt.frozenValue||lt.frozenBodyTemplate),t.xp6(1),t.Akn(O.contentStyle),t.Q6J("ngClass",O.contentStyleClass)("value",lt.dataToRender(O.rows))("pTableBody",O.columns)("pTableBodyTemplate",lt.bodyTemplate)("scrollerOptions",O),t.xp6(1),t.Q6J("ngIf",O.spacerStyle),t.xp6(1),t.Q6J("ngIf",lt.footerGroupedTemplate||lt.footerTemplate)}}function De(kt,ie){if(1&kt){const O=t.EpF();t.TgZ(0,"p-paginator",35),t.NdJ("onPageChange",function(mt){t.CHM(O);const Mt=t.oxw();return t.KtG(Mt.onPageChange(mt))}),t.qZA()}if(2&kt){const O=t.oxw();t.Q6J("rows",O.rows)("first",O.first)("totalRecords",O.totalRecords)("pageLinkSize",O.pageLinks)("alwaysShow",O.alwaysShowPaginator)("rowsPerPageOptions",O.rowsPerPageOptions)("templateLeft",O.paginatorLeftTemplate)("templateRight",O.paginatorRightTemplate)("dropdownAppendTo",O.paginatorDropdownAppendTo)("dropdownScrollHeight",O.paginatorDropdownScrollHeight)("currentPageReportTemplate",O.currentPageReportTemplate)("showFirstLastIcon",O.showFirstLastIcon)("dropdownItemTemplate",O.paginatorDropdownItemTemplate)("showCurrentPageReport",O.showCurrentPageReport)("showJumpToPageDropdown",O.showJumpToPageDropdown)("showJumpToPageInput",O.showJumpToPageInput)("showPageLinks",O.showPageLinks)}}function Je(kt,ie){1&kt&&t.GkF(0)}function ii(kt,ie){if(1&kt&&(t.TgZ(0,"div",36),t.YNc(1,Je,1,0,"ng-container",17),t.qZA()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O.summaryTemplate)}}function Oi(kt,ie){1&kt&&t._UZ(0,"div",37,38)}function gn(kt,ie){1&kt&&t._UZ(0,"span",39,40)}function Cn(kt,ie){1&kt&&t._UZ(0,"span",41,42)}const Xi=function(kt,ie,O){return{"p-datatable p-component":!0,"p-datatable-hoverable-rows":kt,"p-datatable-scrollable":ie,"p-datatable-flex-scrollable":O}},Fi=function(kt){return{maxHeight:kt}},Kn=["pTableBody",""];function Un(kt,ie){1&kt&&t.GkF(0)}const qn=function(kt,ie,O,lt,mt){return{$implicit:kt,rowIndex:ie,columns:O,editing:lt,frozen:mt}};function ea(kt,ie){if(1&kt&&(t.ynx(0,3),t.YNc(1,Un,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.dt.groupHeaderTemplate)("ngTemplateOutletContext",t.qbA(2,qn,lt,Mt.getRowIndex(mt),Mt.columns,"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen))}}function eo(kt,ie){1&kt&&t.GkF(0)}function Ko(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,eo,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",lt?Mt.template:Mt.dt.loadingBodyTemplate)("ngTemplateOutletContext",t.qbA(2,qn,lt,Mt.getRowIndex(mt),Mt.columns,"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen))}}function go(kt,ie){1&kt&&t.GkF(0)}const ia=function(kt,ie,O,lt,mt,Mt,le){return{$implicit:kt,rowIndex:ie,columns:O,editing:lt,frozen:mt,rowgroup:Mt,rowspan:le}};function _r(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,go,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",lt?Mt.template:Mt.dt.loadingBodyTemplate)("ngTemplateOutletContext",t.Hh0(2,ia,lt,Mt.getRowIndex(mt),Mt.columns,"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen,Mt.shouldRenderRowspan(Mt.value,lt,mt),Mt.calculateRowGroupSize(Mt.value,lt,mt)))}}function es(kt,ie){1&kt&&t.GkF(0)}function Aa(kt,ie){if(1&kt&&(t.ynx(0,3),t.YNc(1,es,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.dt.groupFooterTemplate)("ngTemplateOutletContext",t.qbA(2,qn,lt,Mt.getRowIndex(mt),Mt.columns,"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen))}}function Oa(kt,ie){if(1&kt&&(t.YNc(0,ea,2,8,"ng-container",2),t.YNc(1,Ko,2,8,"ng-container",0),t.YNc(2,_r,2,10,"ng-container",0),t.YNc(3,Aa,2,8,"ng-container",2)),2&kt){const O=ie.$implicit,lt=ie.index,mt=t.oxw(2);t.Q6J("ngIf",mt.dt.groupHeaderTemplate&&!mt.dt.virtualScroll&&"subheader"===mt.dt.rowGroupMode&&mt.shouldRenderRowGroupHeader(mt.value,O,lt)),t.xp6(1),t.Q6J("ngIf","rowspan"!==mt.dt.rowGroupMode),t.xp6(1),t.Q6J("ngIf","rowspan"===mt.dt.rowGroupMode),t.xp6(1),t.Q6J("ngIf",mt.dt.groupFooterTemplate&&!mt.dt.virtualScroll&&"subheader"===mt.dt.rowGroupMode&&mt.shouldRenderRowGroupFooter(mt.value,O,lt))}}function Sc(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Oa,4,4,"ng-template",1),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngForOf",O.value)("ngForTrackBy",O.dt.rowTrackBy)}}function Ar(kt,ie){1&kt&&t.GkF(0)}const io=function(kt,ie,O,lt,mt,Mt){return{$implicit:kt,rowIndex:ie,columns:O,expanded:lt,editing:mt,frozen:Mt}};function Ja(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Ar,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.template)("ngTemplateOutletContext",t.HTZ(2,io,lt,Mt.getRowIndex(mt),Mt.columns,Mt.dt.isRowExpanded(lt),"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen))}}function Mc(kt,ie){1&kt&&t.GkF(0)}function Yl(kt,ie){if(1&kt&&(t.ynx(0,3),t.YNc(1,Mc,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.dt.groupHeaderTemplate)("ngTemplateOutletContext",t.HTZ(2,io,lt,Mt.getRowIndex(mt),Mt.columns,Mt.dt.isRowExpanded(lt),"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen))}}function Or(kt,ie){1&kt&&t.GkF(0)}function kc(kt,ie){1&kt&&t.GkF(0)}function Pr(kt,ie){if(1&kt&&(t.ynx(0,3),t.YNc(1,kc,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(2),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.dt.groupFooterTemplate)("ngTemplateOutletContext",t.HTZ(2,io,lt,Mt.getRowIndex(mt),Mt.columns,Mt.dt.isRowExpanded(lt),"row"===Mt.dt.editMode&&Mt.dt.isRowEditing(lt),Mt.frozen))}}const na=function(kt,ie,O,lt){return{$implicit:kt,rowIndex:ie,columns:O,frozen:lt}};function Gr(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Or,1,0,"ng-container",4),t.YNc(2,Pr,2,9,"ng-container",2),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.dt.expandedRowTemplate)("ngTemplateOutletContext",t.l5B(3,na,lt,Mt.getRowIndex(mt),Mt.columns,Mt.frozen)),t.xp6(1),t.Q6J("ngIf",Mt.dt.groupFooterTemplate&&"subheader"===Mt.dt.rowGroupMode&&Mt.shouldRenderRowGroupFooter(Mt.value,lt,Mt.getRowIndex(mt)))}}function oa(kt,ie){if(1&kt&&(t.YNc(0,Ja,2,9,"ng-container",0),t.YNc(1,Yl,2,9,"ng-container",2),t.YNc(2,Gr,3,8,"ng-container",0)),2&kt){const O=ie.$implicit,lt=ie.index,mt=t.oxw(2);t.Q6J("ngIf",!mt.dt.groupHeaderTemplate),t.xp6(1),t.Q6J("ngIf",mt.dt.groupHeaderTemplate&&"subheader"===mt.dt.rowGroupMode&&mt.shouldRenderRowGroupHeader(mt.value,O,mt.getRowIndex(lt))),t.xp6(1),t.Q6J("ngIf",mt.dt.isRowExpanded(O))}}function ra(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,oa,3,3,"ng-template",1),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngForOf",O.value)("ngForTrackBy",O.dt.rowTrackBy)}}function Pa(kt,ie){1&kt&&t.GkF(0)}function co(kt,ie){1&kt&&t.GkF(0)}function Xl(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,co,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw(),lt=O.$implicit,mt=O.index,Mt=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",Mt.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",t.l5B(2,na,lt,Mt.getRowIndex(mt),Mt.columns,Mt.frozen))}}function bl(kt,ie){if(1&kt&&(t.YNc(0,Pa,1,0,"ng-container",4),t.YNc(1,Xl,2,7,"ng-container",0)),2&kt){const O=ie.$implicit,lt=ie.index,mt=t.oxw(2);t.Q6J("ngTemplateOutlet",mt.template)("ngTemplateOutletContext",t.HTZ(3,io,O,mt.getRowIndex(lt),mt.columns,mt.dt.isRowExpanded(O),"row"===mt.dt.editMode&&mt.dt.isRowEditing(O),mt.frozen)),t.xp6(1),t.Q6J("ngIf",mt.dt.isRowExpanded(O))}}function Cl(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,bl,2,10,"ng-template",1),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngForOf",O.value)("ngForTrackBy",O.dt.rowTrackBy)}}function Dc(kt,ie){1&kt&&t.GkF(0)}const Ps=function(kt,ie){return{$implicit:kt,frozen:ie}};function Ec(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Dc,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O.dt.loadingBodyTemplate)("ngTemplateOutletContext",t.WLB(2,Ps,O.columns,O.frozen))}}function wl(kt,ie){1&kt&&t.GkF(0)}function pr(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,wl,1,0,"ng-container",4),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O.dt.emptyMessageTemplate)("ngTemplateOutletContext",t.WLB(2,Ps,O.columns,O.frozen))}}function Tl(kt,ie){if(1&kt&&(t.TgZ(0,"span",2),t._uU(1),t.qZA()),2&kt){const O=t.oxw();t.xp6(1),t.Oqu(O.getBadgeValue())}}const sa=function(kt,ie,O){return{"pi-sort-amount-up-alt":kt,"pi-sort-amount-down":ie,"pi-sort-alt":O}};function is(kt,ie){1&kt&&t.GkF(0)}function Qa(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,is,1,0,"ng-container",1),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O.inputTemplate)}}function Ac(kt,ie){1&kt&&t.GkF(0)}function aa(kt,ie){if(1&kt&&(t.ynx(0),t.YNc(1,Ac,1,0,"ng-container",1),t.BQk()),2&kt){const O=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",O.outputTemplate)}}let bi=(()=>{class kt{constructor(){this.sortSource=new Vn.x,this.selectionSource=new Vn.x,this.contextMenuSource=new Vn.x,this.valueSource=new Vn.x,this.totalRecordsSource=new Vn.x,this.columnsSource=new Vn.x,this.resetSource=new Vn.x,this.sortSource$=this.sortSource.asObservable(),this.selectionSource$=this.selectionSource.asObservable(),this.contextMenuSource$=this.contextMenuSource.asObservable(),this.valueSource$=this.valueSource.asObservable(),this.totalRecordsSource$=this.totalRecordsSource.asObservable(),this.columnsSource$=this.columnsSource.asObservable(),this.resetSource$=this.resetSource.asObservable()}onSort(O){this.sortSource.next(O)}onSelectionChange(){this.selectionSource.next(null)}onResetChange(){this.resetSource.next(null)}onContextMenu(O){this.contextMenuSource.next(O)}onValueChange(O){this.valueSource.next(O)}onTotalRecordsChange(O){this.totalRecordsSource.next(O)}onColumnsChange(O){this.columnsSource.next(O)}}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275prov=t.Yz7({token:kt,factory:kt.\u0275fac}),kt})(),Si=(()=>{class kt{constructor(O,lt,mt,Mt,le,we){this.el=O,this.zone=lt,this.tableService=mt,this.cd=Mt,this.filterService=le,this.overlayService=we,this.pageLinks=5,this.alwaysShowPaginator=!0,this.paginatorPosition="bottom",this.paginatorDropdownScrollHeight="200px",this.currentPageReportTemplate="{currentPage} of {totalPages}",this.showFirstLastIcon=!0,this.showPageLinks=!0,this.defaultSortOrder=1,this.sortMode="single",this.resetPageOnSort=!0,this.selectAllChange=new t.vpe,this.selectionChange=new t.vpe,this.contextMenuSelectionChange=new t.vpe,this.contextMenuSelectionMode="separate",this.rowTrackBy=(He,ci)=>ci,this.lazy=!1,this.lazyLoadOnInit=!0,this.compareSelectionBy="deepEquals",this.csvSeparator=",",this.exportFilename="download",this.filters={},this.filterDelay=300,this.expandedRowKeys={},this.editingRowKeys={},this.rowExpandMode="multiple",this.scrollDirection="vertical",this.virtualScrollDelay=250,this.columnResizeMode="fit",this.loadingIcon="pi pi-spinner",this.showLoader=!0,this.showInitialSortBadge=!0,this.stateStorage="session",this.editMode="cell",this.groupRowsByOrder=1,this.responsiveLayout="scroll",this.breakpoint="960px",this.onRowSelect=new t.vpe,this.onRowUnselect=new t.vpe,this.onPage=new t.vpe,this.onSort=new t.vpe,this.onFilter=new t.vpe,this.onLazyLoad=new t.vpe,this.onRowExpand=new t.vpe,this.onRowCollapse=new t.vpe,this.onContextMenuSelect=new t.vpe,this.onColResize=new t.vpe,this.onColReorder=new t.vpe,this.onRowReorder=new t.vpe,this.onEditInit=new t.vpe,this.onEditComplete=new t.vpe,this.onEditCancel=new t.vpe,this.onHeaderCheckboxToggle=new t.vpe,this.sortFunction=new t.vpe,this.firstChange=new t.vpe,this.rowsChange=new t.vpe,this.onStateSave=new t.vpe,this.onStateRestore=new t.vpe,this._virtualRowHeight=28,this._value=[],this._totalRecords=0,this._first=0,this.selectionKeys={},this._sortOrder=1,this._selectAll=null,this.columnResizing=!1,this.rowGroupHeaderStyleObject={},this.id=(0,it.Th)()}get responsive(){return this._responsive}set responsive(O){this._responsive=O,console.warn("responsive propery is deprecated as table is always responsive with scrollable behavior.")}get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(O){this._virtualRowHeight=O,console.warn("The virtualRowHeight property is deprecated, use virtualScrollItemSize property instead.")}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&!this.scrollable&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(O=>{switch(O.getType()){case"caption":this.captionTemplate=O.template;break;case"header":this.headerTemplate=O.template;break;case"headergrouped":this.headerGroupedTemplate=O.template;break;case"body":this.bodyTemplate=O.template;break;case"loadingbody":this.loadingBodyTemplate=O.template;break;case"footer":this.footerTemplate=O.template;break;case"footergrouped":this.footerGroupedTemplate=O.template;break;case"summary":this.summaryTemplate=O.template;break;case"colgroup":this.colGroupTemplate=O.template;break;case"rowexpansion":this.expandedRowTemplate=O.template;break;case"groupheader":this.groupHeaderTemplate=O.template;break;case"rowspan":this.rowspanTemplate=O.template;break;case"groupfooter":this.groupFooterTemplate=O.template;break;case"frozenrows":this.frozenRowsTemplate=O.template;break;case"frozenheader":this.frozenHeaderTemplate=O.template;break;case"frozenbody":this.frozenBodyTemplate=O.template;break;case"frozenfooter":this.frozenFooterTemplate=O.template;break;case"frozencolgroup":this.frozenColGroupTemplate=O.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=O.template;break;case"emptymessage":this.emptyMessageTemplate=O.template;break;case"paginatorleft":this.paginatorLeftTemplate=O.template;break;case"paginatorright":this.paginatorRightTemplate=O.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=O.template}})}ngAfterViewInit(){this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(O){O.value&&(this.isStateful()&&!this.stateRestored&&this.restoreState(),this._value=O.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(O.value.currentValue)),O.columns&&(this._columns=O.columns.currentValue,this.tableService.onColumnsChange(O.columns.currentValue),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&this.restoreColumnOrder()),O.sortField&&(this._sortField=O.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),O.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),O.sortOrder&&(this._sortOrder=O.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),O.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),O.multiSortMeta&&(this._multiSortMeta=O.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),O.selection&&(this._selection=O.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),O.selectAll&&(this._selectAll=O.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get value(){return this._value}set value(O){this._value=O}get columns(){return this._columns}set columns(O){this._columns=O}get first(){return this._first}set first(O){this._first=O}get rows(){return this._rows}set rows(O){this._rows=O}get totalRecords(){return this._totalRecords}set totalRecords(O){this._totalRecords=O,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(O){this._sortField=O}get sortOrder(){return this._sortOrder}set sortOrder(O){this._sortOrder=O}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(O){this._multiSortMeta=O}get selection(){return this._selection}set selection(O){this._selection=O}get selectAll(){return this._selection}set selectAll(O){this._selection=O}get processedData(){return this.filteredValue||this.value||[]}dataToRender(O){const lt=O||this.processedData;if(lt&&this.paginator){const mt=this.lazy?0:this.first;return lt.slice(mt,mt+this.rows)}return lt}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let O of this._selection)this.selectionKeys[String(it.gb.resolveFieldData(O,this.dataKey))]=1;else this.selectionKeys[String(it.gb.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(O){this.first=O.first,this.rows=O.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(O){let lt=O.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===O.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=O.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let mt=lt.metaKey||lt.ctrlKey,Mt=this.getSortMeta(O.field);Mt?mt?Mt.order=-1*Mt.order:(this._multiSortMeta=[{field:O.field,order:-1*Mt.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!mt||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:O.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let O=this.sortField||this.groupRowsBy,lt=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(O&<){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:O,order:lt}):(this.value.sort((Mt,le)=>{let we=it.gb.resolveFieldData(Mt,O),He=it.gb.resolveFieldData(le,O),ci=null;return ci=null==we&&null!=He?-1:null!=we&&null==He?1:null==we&&null==He?0:"string"==typeof we&&"string"==typeof He?we.localeCompare(He):weHe?1:0,lt*ci}),this._value=[...this.value]),this.hasFilter()&&this._filter());let mt={field:O,order:lt};this.onSort.emit(mt),this.tableService.onSort(mt)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((O,lt)=>this.multisortField(O,lt,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(O,lt,mt,Mt){const le=it.gb.resolveFieldData(O,mt[Mt].field),we=it.gb.resolveFieldData(lt,mt[Mt].field);return 0===it.gb.compare(le,we,this.filterLocale)?mt.length-1>Mt?this.multisortField(O,lt,mt,Mt+1):0:this.compareValuesOnSort(le,we,mt[Mt].order)}compareValuesOnSort(O,lt,mt){return it.gb.sort(O,lt,mt,this.filterLocale,this.sortOrder)}getSortMeta(O){if(this.multiSortMeta&&this.multiSortMeta.length)for(let lt=0;ltzn!=nn),this.selectionChange.emit(this.selection),ai&&delete this.selectionKeys[ai]}this.onRowUnselect.emit({originalEvent:O.originalEvent,data:le,type:"row"})}else this.isSingleSelectionMode()?(this._selection=le,this.selectionChange.emit(le),ai&&(this.selectionKeys={},this.selectionKeys[ai]=1)):this.isMultipleSelectionMode()&&(ji?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,le],this.selectionChange.emit(this.selection),ai&&(this.selectionKeys[ai]=1)),this.onRowSelect.emit({originalEvent:O.originalEvent,data:le,type:"row",index:we})}else if("single"===this.selectionMode)He?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:O.originalEvent,data:le,type:"row",index:we})):(this._selection=le,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:O.originalEvent,data:le,type:"row",index:we}),ai&&(this.selectionKeys={},this.selectionKeys[ai]=1));else if("multiple"===this.selectionMode)if(He){let ji=this.findIndexInSelection(le);this._selection=this.selection.filter((nn,qi)=>qi!=ji),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:O.originalEvent,data:le,type:"row",index:we}),ai&&delete this.selectionKeys[ai]}else this._selection=this.selection?[...this.selection,le]:[le],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:O.originalEvent,data:le,type:"row",index:we}),ai&&(this.selectionKeys[ai]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(O){this.rowTouched=!0}handleRowRightClick(O){if(this.contextMenu){const lt=O.rowData,mt=O.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=lt,this.contextMenuSelectionChange.emit(lt),this.onContextMenuSelect.emit({originalEvent:O.originalEvent,data:lt,index:O.rowIndex}),this.contextMenu.show(O.originalEvent),this.tableService.onContextMenu(lt);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Mt=this.isSelected(lt),le=this.dataKey?String(it.gb.resolveFieldData(lt,this.dataKey)):null;if(!Mt){if(!this.isRowSelectable(lt,mt))return;this.isSingleSelectionMode()?(this.selection=lt,this.selectionChange.emit(lt),le&&(this.selectionKeys={},this.selectionKeys[le]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,lt]:[lt],this.selectionChange.emit(this.selection),le&&(this.selectionKeys[le]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(O.originalEvent),this.onContextMenuSelect.emit({originalEvent:O,data:lt,index:O.rowIndex})}}}selectRange(O,lt){let mt,Mt;this.anchorRowIndex>lt?(mt=lt,Mt=this.anchorRowIndex):this.anchorRowIndexthis.anchorRowIndex?(lt=this.anchorRowIndex,mt=this.rangeRowIndex):this.rangeRowIndexai!=we);let He=this.dataKey?String(it.gb.resolveFieldData(le,this.dataKey)):null;He&&delete this.selectionKeys[He],this.onRowUnselect.emit({originalEvent:O,data:le,type:"row"})}}isSelected(O){return!(!O||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[it.gb.resolveFieldData(O,this.dataKey)]:this.selection instanceof Array?this.findIndexInSelection(O)>-1:this.equals(O,this.selection))}findIndexInSelection(O){let lt=-1;if(this.selection&&this.selection.length)for(let mt=0;mtHe!=le),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:O.originalEvent,index:O.rowIndex,data:lt,type:"checkbox"}),Mt&&delete this.selectionKeys[Mt]}else{if(!this.isRowSelectable(lt,O.rowIndex))return;this._selection=this.selection?[...this.selection,lt]:[lt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:O.originalEvent,index:O.rowIndex,data:lt,type:"checkbox"}),Mt&&(this.selectionKeys[Mt]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(O,lt){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:O,checked:lt});else{const mt=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Mt=this.selectionPageOnly&&this._selection?this._selection.filter(le=>!mt.some(we=>this.equals(le,we))):[];lt&&(Mt=this.frozenValue?[...Mt,...this.frozenValue,...mt]:[...Mt,...mt],Mt=this.rowSelectable?Mt.filter((le,we)=>this.rowSelectable({data:le,index:we})):Mt),this._selection=Mt,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:O,checked:lt}),this.isStateful()&&this.saveState()}}equals(O,lt){return"equals"===this.compareSelectionBy?O===lt:it.gb.equals(O,lt,this.dataKey)}filter(O,lt,mt){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(O)?this.filters[lt]&&delete this.filters[lt]:this.filters[lt]={value:O,matchMode:mt},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(O,lt){this.filter(O,"global",lt)}isFilterBlank(O){return null==O||"string"==typeof O&&0==O.trim().length||O instanceof Array&&0==O.length}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let O;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");O=this.globalFilterFields||this.columns}this.filteredValue=[];for(let lt=0;ltthis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.filters.global&&(this.filters.global.value=null),this.filteredValue=null,this.tableService.onResetChange(),this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}reset(){this.clear()}getExportHeader(O){return O[this.exportHeader]||O.header||O.field}exportCSV(O){let lt,mt="",Mt=this.columns;O&&O.selectionOnly?lt=this.selection||[]:(lt=this.filteredValue||this.value,this.frozenValue&&(lt=lt?[...this.frozenValue,...lt]:this.frozenValue));for(let He=0;He{mt+="\n";for(let ai=0;ai{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(K.p.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:O,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1},document.addEventListener("click",this.documentEditListener))}unbindDocumentEditListener(){this.documentEditListener&&(document.removeEventListener("click",this.documentEditListener),this.documentEditListener=null)}initRowEdit(O){let lt=String(it.gb.resolveFieldData(O,this.dataKey));this.editingRowKeys[lt]=!0}saveRowEdit(O,lt){if(0===K.p.find(lt,".ng-invalid.ng-dirty").length){let mt=String(it.gb.resolveFieldData(O,this.dataKey));delete this.editingRowKeys[mt]}}cancelRowEdit(O){let lt=String(it.gb.resolveFieldData(O,this.dataKey));delete this.editingRowKeys[lt]}toggleRow(O,lt){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let mt=String(it.gb.resolveFieldData(O,this.dataKey));null!=this.expandedRowKeys[mt]?(delete this.expandedRowKeys[mt],this.onRowCollapse.emit({originalEvent:lt,data:O})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[mt]=!0,this.onRowExpand.emit({originalEvent:lt,data:O})),lt&<.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(O){return!0===this.expandedRowKeys[String(it.gb.resolveFieldData(O,this.dataKey))]}isRowEditing(O){return!0===this.editingRowKeys[String(it.gb.resolveFieldData(O,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(O){let lt=K.p.getOffset(this.containerViewChild.nativeElement).left;this.resizeColumnElement=O.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=O.pageX-lt+this.containerViewChild.nativeElement.scrollLeft,this.onColumnResize(O),O.preventDefault()}onColumnResize(O){let lt=K.p.getOffset(this.containerViewChild.nativeElement).left;K.p.addClass(this.containerViewChild.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=O.pageX-lt+this.containerViewChild.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let O=this.resizeHelperViewChild.nativeElement.offsetLeft-this.lastResizerHelperX,mt=this.resizeColumnElement.offsetWidth+O;if(mt>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let we=this.resizeColumnElement.nextElementSibling.offsetWidth-O;mt>15&&we>15&&this.resizeTableCells(mt,we)}else"expand"===this.columnResizeMode&&(this.setResizeTableWidth(this.tableViewChild.nativeElement.offsetWidth+O+"px"),this.resizeTableCells(mt,null));this.onColResize.emit({element:this.resizeColumnElement,delta:O}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",K.p.removeClass(this.containerViewChild.nativeElement,"p-unselectable-text")}resizeTableCells(O,lt){let mt=K.p.index(this.resizeColumnElement),Mt=[];const le=K.p.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");K.p.find(le,"tr > th").forEach(ci=>Mt.push(K.p.getOuterWidth(ci))),this.destroyStyleElement(),this.createStyleElement();let He="";Mt.forEach((ci,ai)=>{let ji=ai===mt?O:lt&&ai===mt+1?lt:ci;He+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${ai+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${ai+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${ai+1}) {\n width: ${ji}px !important; max-width: ${ji}px !important;\n }\n `}),this.styleElement.innerHTML=He}onColumnDragStart(O,lt){this.reorderIconWidth=K.p.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild.nativeElement),this.reorderIconHeight=K.p.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild.nativeElement),this.draggedColumn=lt,O.dataTransfer.setData("text","b")}onColumnDragEnter(O,lt){if(this.reorderableColumns&&this.draggedColumn&<){O.preventDefault();let mt=K.p.getOffset(this.containerViewChild.nativeElement),Mt=K.p.getOffset(lt);if(this.draggedColumn!=lt){K.p.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),K.p.indexWithinGroup(lt,"preorderablecolumn");let He=Mt.left-mt.left,ai=Mt.left+lt.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Mt.top-mt.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Mt.top-mt.top+lt.offsetHeight+"px",O.pageX>ai?(this.reorderIndicatorUpViewChild.nativeElement.style.left=He+lt.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=He+lt.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=He-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=He-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else O.dataTransfer.dropEffect="none"}}onColumnDragLeave(O){this.reorderableColumns&&this.draggedColumn&&O.preventDefault()}onColumnDrop(O,lt){if(O.preventDefault(),this.draggedColumn){let mt=K.p.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Mt=K.p.indexWithinGroup(lt,"preorderablecolumn"),le=mt!=Mt;le&&(Mt-mt==1&&-1===this.dropPosition||mt-Mt==1&&1===this.dropPosition)&&(le=!1),le&&Mtmt&&-1===this.dropPosition&&(Mt-=1),le&&(it.gb.reorderArray(this.columns,mt,Mt),this.onColReorder.emit({dragIndex:mt,dropIndex:Mt,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}onRowDragStart(O,lt){this.rowDragging=!0,this.draggedRowIndex=lt,O.dataTransfer.setData("text","b")}onRowDragOver(O,lt,mt){if(this.rowDragging&&this.draggedRowIndex!==lt){let Mt=K.p.getOffset(mt).top+K.p.getWindowScrollTop(),le=O.pageY,we=Mt+K.p.getOuterHeight(mt)/2,He=mt.previousElementSibling;lethis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;it.gb.reorderArray(this.value,this.draggedRowIndex,mt),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:mt})}this.onRowDragLeave(O,lt),this.onRowDragEnd(O)}isEmpty(){let O=this.filteredValue||this.value;return null==O||0==O.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const O=this.getStorage();let lt={};this.paginator&&(lt.first=this.first,lt.rows=this.rows),this.sortField&&(lt.sortField=this.sortField,lt.sortOrder=this.sortOrder),this.multiSortMeta&&(lt.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(lt.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(lt),this.reorderableColumns&&this.saveColumnOrder(lt),this.selection&&(lt.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(lt.expandedRowKeys=this.expandedRowKeys),O.setItem(this.stateKey,JSON.stringify(lt)),this.onStateSave.emit(lt)}clearState(){const O=this.getStorage();this.stateKey&&O.removeItem(this.stateKey)}restoreState(){const lt=this.getStorage().getItem(this.stateKey),mt=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(lt){let le=JSON.parse(lt,function(le,we){return"string"==typeof we&&mt.test(we)?new Date(we):we});this.paginator&&(void 0!==this.first&&(this.first=le.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=le.rows,this.rowsChange.emit(this.rows))),le.sortField&&(this.restoringSort=!0,this._sortField=le.sortField,this._sortOrder=le.sortOrder),le.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=le.multiSortMeta),le.filters&&(this.restoringFilter=!0,this.filters=le.filters),this.resizableColumns&&(this.columnWidthsState=le.columnWidths,this.tableWidthState=le.tableWidth),le.expandedRowKeys&&(this.expandedRowKeys=le.expandedRowKeys),le.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(le.selection)),this.stateRestored=!0,this.onStateRestore.emit(le)}}saveColumnWidths(O){let lt=[];K.p.find(this.containerViewChild.nativeElement,".p-datatable-thead > tr > th").forEach(Mt=>lt.push(K.p.getOuterWidth(Mt))),O.columnWidths=lt.join(","),"expand"===this.columnResizeMode&&(O.tableWidth=K.p.getOuterWidth(this.tableViewChild.nativeElement))}setResizeTableWidth(O){this.tableViewChild.nativeElement.style.width=O,this.tableViewChild.nativeElement.style.minWidth=O}restoreColumnWidths(){if(this.columnWidthsState){let O=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),it.gb.isNotEmpty(O)){this.createStyleElement();let lt="";O.forEach((mt,Mt)=>{lt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Mt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Mt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Mt+1}) {\n width: ${mt}px !important; max-width: ${mt}px !important\n }\n `}),this.styleElement.innerHTML=lt}}}saveColumnOrder(O){if(this.columns){let lt=[];this.columns.map(mt=>{lt.push(mt.field||mt.key)}),O.columnOrder=lt}}restoreColumnOrder(){const lt=this.getStorage().getItem(this.stateKey);if(lt){let Mt=JSON.parse(lt).columnOrder;if(Mt){let le=[];Mt.map(we=>{let He=this.findColumnByKey(we);He&&le.push(He)}),this.columnOrderStateRestored=!0,this.columns=le}}}findColumnByKey(O){if(!this.columns)return null;for(let lt of this.columns)if(lt.key===O||lt.field===O)return lt}createStyleElement(){this.styleElement=document.createElement("style"),this.styleElement.type="text/css",document.head.appendChild(this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){this.responsiveStyleElement||(this.responsiveStyleElement=document.createElement("style"),this.responsiveStyleElement.type="text/css",document.head.appendChild(this.responsiveStyleElement),this.responsiveStyleElement.innerHTML=`\n@media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n}\n`)}destroyResponsiveStyle(){this.responsiveStyleElement&&(document.head.removeChild(this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.SBq),t.Y36(t.R0b),t.Y36(bi),t.Y36(t.sBO),t.Y36($.iZ),t.Y36($.F0))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-table"]],contentQueries:function(O,lt,mt){if(1&O&&t.Suo(mt,$.jx,4),2&O){let Mt;t.iGM(Mt=t.CRH())&&(lt.templates=Mt)}},viewQuery:function(O,lt){if(1&O&&(t.Gf(Qr,5),t.Gf(Wo,5),t.Gf(qs,5),t.Gf(Za,5),t.Gf(Js,5),t.Gf(Qs,5),t.Gf(yl,5),t.Gf($a,5),t.Gf(ur,5)),2&O){let mt;t.iGM(mt=t.CRH())&&(lt.containerViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.resizeHelperViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.reorderIndicatorUpViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.reorderIndicatorDownViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.wrapperViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.tableViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.tableHeaderViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.tableFooterViewChild=mt.first),t.iGM(mt=t.CRH())&&(lt.scroller=mt.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",virtualRowHeight:"virtualRowHeight",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll"},outputs:{selectAllChange:"selectAllChange",selectionChange:"selectionChange",contextMenuSelectionChange:"contextMenuSelectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[t._Bn([bi]),t.TTD],decls:16,vars:22,consts:[[3,"ngStyle","ngClass"],["container",""],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],["styleClass","p-paginator-top",3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],["wrapper",""],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["buildInTable",""],["styleClass","p-paginator-bottom",3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","onPageChange",4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","pi pi-arrow-down p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","pi pi-arrow-up p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[1,"p-datatable-header"],[4,"ngTemplateOutlet"],["styleClass","p-paginator-top",3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","onPageChange"],[3,"items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad"],["scroller",""],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["table",""],[1,"p-datatable-thead"],["thead",""],["class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],[1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["class","p-datatable-tfoot",4,"ngIf"],[1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],[1,"p-datatable-scroller-spacer"],[1,"p-datatable-tfoot"],["tfoot",""],["styleClass","p-paginator-bottom",3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","onPageChange"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],["resizeHelper",""],[1,"pi","pi-arrow-down","p-datatable-reorder-indicator-up",2,"display","none"],["reorderIndicatorUp",""],[1,"pi","pi-arrow-up","p-datatable-reorder-indicator-down",2,"display","none"],["reorderIndicatorDown",""]],template:function(O,lt){1&O&&(t.TgZ(0,"div",0,1),t.YNc(2,ta,2,2,"div",2),t.YNc(3,ts,2,1,"div",3),t.YNc(4,Dr,1,17,"p-paginator",4),t.TgZ(5,"div",5,6),t.YNc(7,Vl,3,17,"p-scroller",7),t.YNc(8,ao,2,7,"ng-container",8),t.YNc(9,oe,10,28,"ng-template",null,9,t.W1O),t.qZA(),t.YNc(11,De,1,17,"p-paginator",10),t.YNc(12,ii,2,1,"div",11),t.YNc(13,Oi,2,0,"div",12),t.YNc(14,gn,2,0,"span",13),t.YNc(15,Cn,2,0,"span",14),t.qZA()),2&O&&(t.Tol(lt.styleClass),t.Q6J("ngStyle",lt.style)("ngClass",t.kEZ(16,Xi,lt.rowHover||lt.selectionMode,lt.scrollable,lt.scrollable&&"flex"===lt.scrollHeight)),t.uIk("id",lt.id),t.xp6(2),t.Q6J("ngIf",lt.loading&<.showLoader),t.xp6(1),t.Q6J("ngIf",lt.captionTemplate),t.xp6(1),t.Q6J("ngIf",lt.paginator&&("top"===lt.paginatorPosition||"both"==lt.paginatorPosition)),t.xp6(1),t.Q6J("ngStyle",t.VKq(20,Fi,lt.virtualScroll?"":lt.scrollHeight)),t.xp6(2),t.Q6J("ngIf",lt.virtualScroll),t.xp6(1),t.Q6J("ngIf",!lt.virtualScroll),t.xp6(3),t.Q6J("ngIf",lt.paginator&&("bottom"===lt.paginatorPosition||"both"==lt.paginatorPosition)),t.xp6(1),t.Q6J("ngIf",lt.summaryTemplate),t.xp6(1),t.Q6J("ngIf",lt.resizableColumns),t.xp6(1),t.Q6J("ngIf",lt.reorderableColumns),t.xp6(1),t.Q6J("ngIf",lt.reorderableColumns))},dependencies:function(){return[A.mk,A.O5,A.tP,A.PC,vi,$.jx,fi,Dn]},styles:[".p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:1}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}\n"],encapsulation:2}),kt})(),Dn=(()=>{class kt{constructor(O,lt,mt,Mt){this.dt=O,this.tableService=lt,this.cd=mt,this.el=Mt,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}get value(){return this._value}set value(O){this._value=O,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}shouldRenderRowGroupHeader(O,lt,mt){let Mt=it.gb.resolveFieldData(lt,this.dt.groupRowsBy),le=O[mt-1];return!le||Mt!==it.gb.resolveFieldData(le,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(O,lt,mt){let Mt=it.gb.resolveFieldData(lt,this.dt.groupRowsBy),le=O[mt+1];return!le||Mt!==it.gb.resolveFieldData(le,this.dt.groupRowsBy)}shouldRenderRowspan(O,lt,mt){let Mt=it.gb.resolveFieldData(lt,this.dt.groupRowsBy),le=O[mt-1];return!le||Mt!==it.gb.resolveFieldData(le,this.dt.groupRowsBy)}calculateRowGroupSize(O,lt,mt){let Mt=it.gb.resolveFieldData(lt,this.dt.groupRowsBy),le=Mt,we=0;for(;Mt===le;){we++;let He=O[++mt];if(!He)break;le=it.gb.resolveFieldData(He,this.dt.groupRowsBy)}return 1===we?null:we}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=K.p.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let O=K.p.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=O+"px"}}getScrollerOption(O,lt){return this.dt.virtualScroll&&(lt=lt||this.scrollerOptions)?lt[O]:null}getRowIndex(O){const lt=this.dt.paginator?this.dt.first+O:O,mt=this.getScrollerOption("getItemOptions");return mt?mt(lt).index:lt}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(Si),t.Y36(bi),t.Y36(t.sBO),t.Y36(t.SBq))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:["pTableBody","columns"],template:["pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kn,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(O,lt){1&O&&(t.YNc(0,Sc,2,2,"ng-container",0),t.YNc(1,ra,2,2,"ng-container",0),t.YNc(2,Cl,2,2,"ng-container",0),t.YNc(3,Ec,2,5,"ng-container",0),t.YNc(4,pr,2,5,"ng-container",0)),2&O&&(t.Q6J("ngIf",!lt.dt.expandedRowTemplate),t.xp6(1),t.Q6J("ngIf",lt.dt.expandedRowTemplate&&!(lt.frozen&<.dt.frozenExpandedRowTemplate)),t.xp6(1),t.Q6J("ngIf",lt.dt.frozenExpandedRowTemplate&<.frozen),t.xp6(1),t.Q6J("ngIf",lt.dt.loading),t.xp6(1),t.Q6J("ngIf",lt.dt.isEmpty()&&!lt.dt.loading))},dependencies:[A.sg,A.O5,A.tP],encapsulation:2}),kt})(),vs=(()=>{class kt{constructor(O){this.dt=O,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(lt=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(O){this.isEnabled()&&!this.isFilterElement(O.target)&&(this.updateSortState(),this.dt.sort({originalEvent:O,field:this.field}),K.p.clearSelection())}onEnterKey(O){this.onClick(O)}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(O){return K.p.hasClass(O,"pi-filter-icon")||K.p.hasClass(O,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(Si))},kt.\u0275dir=t.lG2({type:kt,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(O,lt){1&O&&t.NdJ("click",function(Mt){return lt.onClick(Mt)})("keydown.enter",function(Mt){return lt.onEnterKey(Mt)}),2&O&&(t.uIk("tabindex",lt.isEnabled()?"0":null)("role","columnheader")("aria-sort",lt.sortOrder),t.ekj("p-sortable-column",lt.isEnabled())("p-highlight",lt.sorted))},inputs:{field:["pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}}),kt})(),ys=(()=>{class kt{constructor(O,lt){this.dt=O,this.cd=lt,this.subscription=this.dt.tableService.sortSource$.subscribe(mt=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(O){O.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let O=this.dt.getSortMeta(this.field);this.sortOrder=O?O.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let O=this.dt._multiSortMeta,lt=-1;if(O&&"multiple"===this.dt.sortMode&&(this.dt.showInitialSortBadge||O.length>1))for(let mt=0;mt-1?O:O+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(Si),t.Y36(t.sBO))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:2,vars:6,consts:[[1,"p-sortable-column-icon","pi","pi-fw",3,"ngClass"],["class","p-sortable-column-badge",4,"ngIf"],[1,"p-sortable-column-badge"]],template:function(O,lt){1&O&&(t._UZ(0,"i",0),t.YNc(1,Tl,2,1,"span",1)),2&O&&(t.Q6J("ngClass",t.kEZ(2,sa,1===lt.sortOrder,-1===lt.sortOrder,0===lt.sortOrder)),t.xp6(1),t.Q6J("ngIf",lt.isMultiSorted()))},dependencies:[A.mk,A.O5],encapsulation:2,changeDetection:0}),kt})(),Fh=(()=>{class kt{constructor(O){this.dt=O}onClick(O){this.isEnabled()&&(this.dt.toggleRow(this.data,O),O.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(Si))},kt.\u0275dir=t.lG2({type:kt,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(O,lt){1&O&&t.NdJ("click",function(Mt){return lt.onClick(Mt)})},inputs:{data:["pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}}),kt})(),$l=(()=>{class kt{constructor(O,lt,mt){this.dt=O,this.el=lt,this.zone=mt}ngAfterViewInit(){this.isEnabled()&&K.p.addClass(this.el.nativeElement,"p-editable-column")}onClick(O){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,O),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),K.p.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let lt=K.p.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");lt&<.focus()},50)}),this.overlayEventListener=O=>{this.el&&this.el.nativeElement.contains(O.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(O,lt){O?this.dt.onEditComplete.emit({field:this.dt.editingCellField,data:this.data,originalEvent:lt,index:this.dt.editingCellRowIndex}):(this.dt.onEditCancel.emit({field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:lt,index:this.dt.editingCellRowIndex}),this.dt.value.forEach(mt=>{mt[this.dt.editingCellField]===this.data&&(mt[this.dt.editingCellField]=this.dt.editingCellData)})),K.p.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(O){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,O),O.preventDefault())}onTabKeyDown(O){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,O),O.preventDefault())}onEscapeKeyDown(O){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,O),O.preventDefault())}onShiftKeyDown(O){this.isEnabled()&&(O.shiftKey?this.moveToPreviousCell(O):this.moveToNextCell(O))}onArrowDown(O){if(this.isEnabled()){let lt=this.findCell(O.target);if(lt){let mt=K.p.index(lt),Mt=this.findNextEditableColumnByIndex(lt,mt);Mt&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,O),K.p.invokeElementMethod(O.target,"blur"),K.p.invokeElementMethod(Mt,"click")),O.preventDefault()}}}onArrowUp(O){if(this.isEnabled()){let lt=this.findCell(O.target);if(lt){let mt=K.p.index(lt),Mt=this.findPrevEditableColumnByIndex(lt,mt);Mt&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,O),K.p.invokeElementMethod(O.target,"blur"),K.p.invokeElementMethod(Mt,"click")),O.preventDefault()}}}onArrowLeft(O){this.isEnabled()&&this.moveToPreviousCell(O)}onArrowRight(O){this.isEnabled()&&this.moveToNextCell(O)}findCell(O){if(O){let lt=O;for(;lt&&!K.p.hasClass(lt,"p-cell-editing");)lt=lt.parentElement;return lt}return null}moveToPreviousCell(O){let lt=this.findCell(O.target);if(lt){let mt=this.findPreviousEditableColumn(lt);mt&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,O),K.p.invokeElementMethod(O.target,"blur"),K.p.invokeElementMethod(mt,"click"),O.preventDefault())}}moveToNextCell(O){let lt=this.findCell(O.target);if(lt){let mt=this.findNextEditableColumn(lt);mt&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,O),K.p.invokeElementMethod(O.target,"blur"),K.p.invokeElementMethod(mt,"click"),O.preventDefault())}}findPreviousEditableColumn(O){let lt=O.previousElementSibling;if(!lt){let mt=O.parentElement.previousElementSibling;mt&&(lt=mt.lastElementChild)}return lt?K.p.hasClass(lt,"p-editable-column")?lt:this.findPreviousEditableColumn(lt):null}findNextEditableColumn(O){let lt=O.nextElementSibling;if(!lt){let mt=O.parentElement.nextElementSibling;mt&&(lt=mt.firstElementChild)}return lt?K.p.hasClass(lt,"p-editable-column")?lt:this.findNextEditableColumn(lt):null}findNextEditableColumnByIndex(O,lt){let mt=O.parentElement.nextElementSibling;if(mt){let Mt=mt.children[lt];return Mt&&K.p.hasClass(Mt,"p-editable-column")?Mt:null}return null}findPrevEditableColumnByIndex(O,lt){let mt=O.parentElement.previousElementSibling;if(mt){let Mt=mt.children[lt];return Mt&&K.p.hasClass(Mt,"p-editable-column")?Mt:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(Si),t.Y36(t.SBq),t.Y36(t.R0b))},kt.\u0275dir=t.lG2({type:kt,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(O,lt){1&O&&t.NdJ("click",function(Mt){return lt.onClick(Mt)})("keydown.enter",function(Mt){return lt.onEnterKeyDown(Mt)})("keydown.tab",function(Mt){return lt.onShiftKeyDown(Mt)})("keydown.escape",function(Mt){return lt.onEscapeKeyDown(Mt)})("keydown.shift.tab",function(Mt){return lt.onShiftKeyDown(Mt)})("keydown.meta.tab",function(Mt){return lt.onShiftKeyDown(Mt)})("keydown.arrowdown",function(Mt){return lt.onArrowDown(Mt)})("keydown.arrowup",function(Mt){return lt.onArrowUp(Mt)})("keydown.arrowleft",function(Mt){return lt.onArrowLeft(Mt)})("keydown.arrowright",function(Mt){return lt.onArrowRight(Mt)})},inputs:{data:["pEditableColumn","data"],field:["pEditableColumnField","field"],rowIndex:["pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"}}),kt})(),Rs=(()=>{class kt{constructor(O){this.el=O}isEnabled(){return!0!==this.pEditableRowDisabled}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(t.SBq))},kt.\u0275dir=t.lG2({type:kt,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:["pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}}),kt})(),zh=(()=>{class kt{constructor(O,lt,mt){this.dt=O,this.editableColumn=lt,this.editableRow=mt}ngAfterContentInit(){this.templates.forEach(O=>{switch(O.getType()){case"input":this.inputTemplate=O.template;break;case"output":this.outputTemplate=O.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}}return kt.\u0275fac=function(O){return new(O||kt)(t.Y36(Si),t.Y36($l,8),t.Y36(Rs,8))},kt.\u0275cmp=t.Xpm({type:kt,selectors:[["p-cellEditor"]],contentQueries:function(O,lt,mt){if(1&O&&t.Suo(mt,$.jx,4),2&O){let Mt;t.iGM(Mt=t.CRH())&&(lt.templates=Mt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(O,lt){1&O&&(t.YNc(0,Qa,2,1,"ng-container",0),t.YNc(1,aa,2,1,"ng-container",0)),2&O&&(t.Q6J("ngIf",lt.editing),t.xp6(1),t.Q6J("ngIf",!lt.editing))},dependencies:[A.O5,A.tP],encapsulation:2}),kt})(),Hh=(()=>{class kt{}return kt.\u0275fac=function(O){return new(O||kt)},kt.\u0275mod=t.oAB({type:kt}),kt.\u0275inj=t.cJS({imports:[A.ez,yo,ir.j,zr,Rt.u5,V.hJ,Ks,xt,to,Ao,Qi,$.m8,Qi]}),kt})()},60982:(ei,Oe,Bt)=>{"use strict";Bt.d(Oe,{P9:()=>V,Th:()=>Rt,gb:()=>A});class A{static equals(K,ot,it){return it?this.resolveFieldData(K,it)===this.resolveFieldData(ot,it):this.equalsByValue(K,ot)}static equalsByValue(K,ot){if(K===ot)return!0;if(K&&ot&&"object"==typeof K&&"object"==typeof ot){var nt,W,G,it=Array.isArray(K),et=Array.isArray(ot);if(it&&et){if((W=K.length)!=ot.length)return!1;for(nt=W;0!=nt--;)if(!this.equalsByValue(K[nt],ot[nt]))return!1;return!0}if(it!=et)return!1;var N=K instanceof Date,b=ot instanceof Date;if(N!=b)return!1;if(N&&b)return K.getTime()==ot.getTime();var g=K instanceof RegExp,T=ot instanceof RegExp;if(g!=T)return!1;if(g&&T)return K.toString()==ot.toString();var y=Object.keys(K);if((W=y.length)!==Object.keys(ot).length)return!1;for(nt=W;0!=nt--;)if(!Object.prototype.hasOwnProperty.call(ot,y[nt]))return!1;for(nt=W;0!=nt--;)if(!this.equalsByValue(K[G=y[nt]],ot[G]))return!1;return!0}return K!=K&&ot!=ot}static resolveFieldData(K,ot){if(K&&ot){if(this.isFunction(ot))return ot(K);if(-1==ot.indexOf("."))return K[ot];{let it=ot.split("."),et=K;for(let nt=0,W=it.length;nt=K.length&&(it%=K.length,ot%=K.length),K.splice(it,0,K.splice(ot,1)[0]))}static insertIntoOrderedArray(K,ot,it,et){if(it.length>0){let nt=!1;for(let W=0;Wot){it.splice(W,0,K),nt=!0;break}nt||it.push(K)}else it.push(K)}static findIndexInList(K,ot){let it=-1;if(ot)for(let et=0;et-1&&(K=K.replace(/[\xC0-\xC5]/g,"A").replace(/[\xC6]/g,"AE").replace(/[\xC7]/g,"C").replace(/[\xC8-\xCB]/g,"E").replace(/[\xCC-\xCF]/g,"I").replace(/[\xD0]/g,"D").replace(/[\xD1]/g,"N").replace(/[\xD2-\xD6\xD8]/g,"O").replace(/[\xD9-\xDC]/g,"U").replace(/[\xDD]/g,"Y").replace(/[\xDE]/g,"P").replace(/[\xE0-\xE5]/g,"a").replace(/[\xE6]/g,"ae").replace(/[\xE7]/g,"c").replace(/[\xE8-\xEB]/g,"e").replace(/[\xEC-\xEF]/g,"i").replace(/[\xF1]/g,"n").replace(/[\xF2-\xF6\xF8]/g,"o").replace(/[\xF9-\xFC]/g,"u").replace(/[\xFE]/g,"p").replace(/[\xFD\xFF]/g,"y")),K}static isEmpty(K){return null==K||""===K||Array.isArray(K)&&0===K.length||!(K instanceof Date)&&"object"==typeof K&&0===Object.keys(K).length}static isNotEmpty(K){return!this.isEmpty(K)}static compare(K,ot,it,et=1){let nt=-1;const W=this.isEmpty(K),G=this.isEmpty(ot);return nt=W&&G?0:W?et:G?-et:"string"==typeof K&&"string"==typeof ot?K.localeCompare(ot,it,{numeric:!0}):Kot?1:0,nt}static sort(K,ot,it=1,et,nt=1){return(1===nt?it:nt)*A.compare(K,ot,et,it)}static merge(K,ot){return null!=K&&"object"!=typeof K||null!=ot&&"object"!=typeof ot?null!=K&&"string"!=typeof K||null!=ot&&"string"!=typeof ot?ot||K:[K||"",ot||""].join(" "):{...K||{},...ot||{}}}}var t=0;function Rt(){return"pr_id_"+ ++t}var V=function $(){let Y=[];const et=nt=>nt&&parseInt(nt.style.zIndex,10)||0;return{get:et,set:(nt,W,G)=>{W&&(W.style.zIndex=String(((nt,W)=>{let G=Y.length>0?Y[Y.length-1]:{key:nt,value:W},N=G.value+(G.key===nt?0:W)+1;return Y.push({key:nt,value:N}),N})(nt,G)))},clear:nt=>{nt&&((nt=>{Y=Y.filter(W=>W.value!==nt)})(et(nt)),nt.style.zIndex="")},getCurrent:()=>Y.length>0?Y[Y.length-1].value:0}}()}},ei=>{ei(ei.s=9831)}]); \ No newline at end of file diff --git a/www/z4d/main.ed02e8e4f42d3a49.js b/www/z4d/main.ed02e8e4f42d3a49.js new file mode 100644 index 000000000..70113717e --- /dev/null +++ b/www/z4d/main.ed02e8e4f42d3a49.js @@ -0,0 +1 @@ +(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:"alt.z",refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Dt=gt&&Ve||new Map;qe.forEach((Pt,Ut)=>{let Zt=Ut,hi=Pt;if("offset"!==Ut)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Ut);break;case Z.kp:hi=m.get(Ut);break;default:hi=c.normalizeStyleValue(Ut,Zt,hi,W)}Dt.set(Zt,hi)}),gt||ce.push(Dt),Ve=Dt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=_s(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=_s(m);c.style[W]=""})}function Jt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function _s(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function zn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Di=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class Cs extends Te{normalizePropertyName(v,i){return _s(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Di.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const kn="*";const ir=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=ir.has(c)||St.has(c),m=ir.has(v)||St.has(v);return(W,ce)=>{let De=c==kn||c==W,Ve=v==kn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?ir.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?ir.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),zn(this,Jt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=zn(this,Jt(v.animation),i),W=function jr(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function fo(c,v,i){if(":"==c[0]){const qe=function qr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=kn||De!=kn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>zn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=zn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return rs(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=rs(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return rs(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Dt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Dt=!1),ce=gt.startTime),Dt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function ui(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(di=>{const wi=this._makeStyleAst(di,i);let gi=null!=wi.offset?wi.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(wi.styles),ki=0;return null!=gi&&(ce++,ki=wi.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?wi==Ut?1:Pt*wi:De[wi],ki=gi*Yt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(di,i),di.offset=gi,m.styles.push(di)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:zn(this,Jt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=zn(this,Jt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:zn(this,Jt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function rs(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const Js=new RegExp(":enter","g"),Qr=new RegExp(":leave","g");function nr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Dt=new Ki(v,i,et,W,ce,gt,[]);Dt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Dt.currentTimeline.delayNextStep(Pt),Dt.currentTimeline.setStyles([De],null,Dt.errors,qe),zn(this,m,Dt);const Ut=Dt.timelines.filter(Zt=>Zt.containsAnimation());if(Ut.length&&Ve.size){let Zt;for(let hi=Ut.length-1;hi>=0;hi--){const Yt=Ut[hi];if(Yt.element===i){Zt=Yt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Dt.errors,qe)}return Ut.length?Ut.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),zn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=Vr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>zn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),zn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=Vr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Dt=i.createSubContext(v.options,et);ce&&Dt.delayNextStep(ce),et===i.element&&(qe=Dt.currentTimeline),zn(this,v.animation,Dt),Dt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Dt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Dt=gt.currentTime;zn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Dt+(W.startTime-m.currentTimeline.startTime)}}const Vr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Vr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=Vr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new Jl(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(Js,"."+this._enterClassName)).replace(Qr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Dt)=>{gt===Z.FX?v.add(Dt):gt===Z.kp&&i.add(Dt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class Jl extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",pr(Ve)),ce.push(et);const gt=v.length-1;for(let Dt=1;Dt<=gt;Dt++){let Pt=new Map(v[Dt]);const Ut=Pt.get("offset");Pt.set("offset",pr((i+Ut*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function pr(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Dt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Dt,errors:Pt}}const La={};class Jr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Ko(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Dt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Dt),hi=qe&&qe.params||La,Yt=this.buildStyles(W,hi,Dt),di=new Set,wi=new Map,gi=new Map,ki="void"===W,Bi={params:nl(hi,Pt),delay:this.ast.options?.delay},Mi=gt?[]:nr(v,i,this.ast.animation,ce,De,Zt,Yt,Bi,et,Dt);let an=0;return Mi.forEach(ln=>{an=Math.max(ln.duration+ln.delay,an)}),Dt.length?Pa(i,this._triggerName,m,W,ki,Zt,Yt,[],[],wi,gi,an,Dt):(Mi.forEach(ln=>{const ps=ln.element,Ln=N(wi,ps,new Set);ln.preStyleProps.forEach(Un=>Ln.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&di.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Yt,Mi,[...di.values()],wi,gi,an))}}function nl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=nl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class sl{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new Jr(v,W,this.states))}),this.fallbackTransition=function rl(c,v,i){return new Jr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=nr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Dt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Dt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Dt)=>{gt.forEach((Pt,Ut)=>{gt.set(Ut,this._driver.computeStyle(Dt,Ut,Z.kp))})});const et=se(De.map(gt=>{const Dt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Dt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ol="ng-animate-queued",Ra="ng-animate-disabled",Dr=[],fa={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class Qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Eo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const zr="void",Do=new Qi(zr);class ga{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,sr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function ll(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(sr(v,Qe),sr(v,Qe+"-"+i),Ve.set(i,Do)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ma(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(sr(v,Qe),sr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new Qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Do),et.value!==zr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Yt),_t(v,di)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Ut=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Ut){if(!W)return;Ut=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Ut,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(sr(v,ol),De.onStart(()=>{cs(v,ol)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Yt=this._engine.playersByElement.get(v);if(Yt){let di=Yt.indexOf(De);di>=0&&Yt.splice(di,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,zr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Do,gt=new Qi(zr),Dt=new ma(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Dt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===fa)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){sr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class mo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ga(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(er(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!er(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),sr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(er(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return er(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=fa,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))});const Yt=[],di=new Set,wi=new Set;for(let yi=0;yidi.add(Wi)):wi.add(Ei))}const gi=new Map,ki=Er(Pt,Array.from(di));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))}),v.push(()=>{Ut.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Yt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Mi=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Nn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const is=Nn[Us];if(is&&is.setForMove){if(is.previousTriggersValues&&is.previousTriggersValues.has(ji.triggerName)){const Zr=is.previousTriggersValues.get(ji.triggerName),Ii=this.statesByElement.get(ji.element);if(Ii&&Ii.has(ji.triggerName)){const gn=Ii.get(ji.triggerName);gn.value=Zr,Ii.set(ji.triggerName,gn)}}return void Wi.destroy()}}const ts=!Dt||!this.driver.containsElement(Dt,Nn),Wn=gi.get(Nn),Yr=Zt.get(Nn),ds=this._buildInstruction(ji,m,Yr,Wn,ts);if(ds.errors&&ds.errors.length)return void Mi.push(ds);if(ts)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);const Kr=[];ds.timelines.forEach(is=>{is.stretchStartingKeyframe=!0,this.disabledNodes.has(is.element)||Kr.push(is)}),ds.timelines=Kr,m.append(Nn,ds.timelines),De.push({instruction:ds,player:Wi,element:Nn}),ds.queriedElements.forEach(is=>N(Ve,is,[]).push(Wi)),ds.preStyleProps.forEach((is,Zr)=>{if(is.size){let Ii=qe.get(Zr);Ii||qe.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))}}),ds.postStyleProps.forEach((is,Zr)=>{let Ii=et.get(Zr);Ii||et.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))})});if(Mi.length){const yi=[];Mi.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const an=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,an))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(an,Ei,[]).push(Wi),Wi.destroy()})});const ps=Yt.filter(yi=>Ao(yi,qe,et)),Ln=new Map;cl(Ln,this.driver,wi,et,Z.kp).forEach(yi=>{Ao(yi,qe,et)&&ps.push(yi)});const Un=new Map;Ut.forEach((yi,Ei)=>{cl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Ln.get(yi),ji=Un.get(yi);Ln.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Qs={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Nn=Qs;if(ln.size>1){let Wn=Ei;const Yr=[];for(;Wn=Wn.parentNode;){const ds=ln.get(Wn);if(ds){Nn=ds;break}Yr.push(Wn)}Yr.forEach(ds=>ln.set(ds,Nn))}const ts=this._buildAnimation(ji.namespaceId,Wi,an,ce,Un,Ln);if(ji.setRealPlayer(ts),Nn===Qs)Ri.push(ji);else{const Wn=this.playersByElement.get(Nn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!ts.destroyed);Nn.length?Ar(this,Ei,Nn):this.processLeaveNode(Ei)}return Yt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==zr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Dt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Ut=>{const Zt=Ut.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Ut.destroy(),Dt.push(Ut)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Dt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Yt=hi[Us];if(Yt&&Yt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const di=hi!==qe,wi=function Zo(c){const v=[];return ba(c,v),v}((m.get(hi)||Dr).map(an=>an.getRealPlayer())).filter(an=>!!an.element&&an.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Mi=this._buildPlayer(Zt,Bi,wi);if(Zt.subTimeline&&W&&Dt.add(hi),di){const an=new ma(v,Ve,hi);an.setRealPlayer(Mi),et.push(an)}return Mi});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function al(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>sr(Zt,kt));const Ut=se(Pt);return Ut.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Dt.forEach(Zt=>{N(W,Zt,[]).push(Ut)}),Ut}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ma{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function er(c){return c&&1===c.nodeType}function Gr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function cl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(Gr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Dt=>{const Pt=v.computeStyle(et,Dt,W);gt.set(Dt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>Gr(qe,ce[Ve++])),De}function Er(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function sr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Ar(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function ba(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new mo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function eo(c,v,i){return new sl(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class va{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=va.initialStylesByElement.get(v);W||va.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(va.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Xs(c){let v=null;return c.forEach((i,m)=>{(function to(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Hr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class io{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Ut=>Ut instanceof Hr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Ut=>{Ut.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Dt=function Mt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Ut=>new Map(Ut));Dt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Dt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Xs(v[0]),v.length>1&&(m=Xs(v[v.length-1]))):v instanceof Map&&(i=Xs(v)),i||m?new va(c,i,m):null}(v,Dt);return new Hr(v,Dt,qe,Pt)}}const Io="@.disabled";class ya{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Io?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class qo extends ya{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Io?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function bo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function hl(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Oo{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new ya("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Zi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new Cs}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Zi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Oo(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new io},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Ir=He(38117),Ks=He(93887),Or=He(20546),rr=He(88652),Pr=He(19664),Bn=He(37542),fr=He(93331),Jo=He(7673),tc=He(33669),Nl=He(27468),Xh=He(86648),Yh=He(84572),Ac=He(91986),so=He(5964),Kh=He(23294),Va=He(25558),Lr=He(96354),Ic=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),vo=He(73703);const Zs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),dl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},ul=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Bn.PI),i=(0,e.WQX)(Zs,{optional:!0})||{};return{...dl,...i,enableLinkTracking:v,disabled:c}}}),pl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Oc(c){return{provide:pl,multi:!0,useClass:c}}function ic(c){return c?c.map(Oc):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const jl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new tr((0,e.WQX)(M.hE))});class tr{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,Jo.of)(this.title.getTitle())}}const Nc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new xa((0,e.WQX)(ul),(0,e.WQX)(Zi.kB,{optional:!0}),(0,e.WQX)(Zi.hb))});class xa{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,Jo.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Lo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Ns(c){return c instanceof fr.wF}function Fs(c){return"string"==typeof c?new RegExp(c):c}let yo=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Bn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?tc.D:(0,Ac.c)(this.config.delay);this.router.events.pipe((0,so.p)(Ns),(0,so.p)(function gl(c){const v=function ea(c){return c?Array.isArray(c)?c.map(Fs):[Fs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Fl(c,v){return(0,Kh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Lr.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ic.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Rc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Nl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,Jo.of)(void 0):(0,Xh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,vo.u)(void 0),(0,Ss.U)(void 0)):(0,Jo.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,Jo.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Yh.z)([m,W]).pipe((0,Lr.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(fr.Ix),e.KVO(ul),e.KVO(jl),e.KVO(Nc),e.KVO(Bn.kA),e.KVO(pl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Vl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Fc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})(),Fc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(Vl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})();var ml=He(45794),_r=He(41584),Ga=He(39974),ta=He(54360),Ur=He(58750);function ia(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?tc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ta._)(De,Dt=>{W&&(Ve=0),De.next(Dt)},void 0,Dt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Ut="number"==typeof m?(0,_r.O)(m):(0,Ur.Tg)(m(Dt,Ve)),Zt=(0,ta._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Ut.subscribe(Zt)}else Pt()}else De.error(Dt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),na=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Oi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),es=()=>["/admin/firmware"],as=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ss(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function Bs(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ss,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Rr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Gn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,as)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function pi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Lr.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(ml.tw),e.rXU(Ir.W4),e.rXU(Ke.G),e.rXU(Pr.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,Bs,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Rr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Gn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,pi,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Oi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,es)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Zi.Sq,Zi.bT,Pr.Mm,rr.$G,rr.tg,rr.do,rr.U0,rr.ZM,at.Zm,at.BC,at.vS,fr.Wk,fr.wQ,Pr.D9],styles:[".toast-center-center[_ngcontent-%COMP%]{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center[_ngcontent-%COMP%]{top:0;right:0;width:100%}.toast-bottom-center[_ngcontent-%COMP%]{bottom:0;right:0;width:100%}.toast-top-full-width[_ngcontent-%COMP%]{top:0;right:0;width:100%}.toast-bottom-full-width[_ngcontent-%COMP%]{bottom:0;right:0;width:100%}.toast-top-left[_ngcontent-%COMP%]{top:12px;left:12px}.toast-top-right[_ngcontent-%COMP%]{top:12px;right:12px}.toast-bottom-right[_ngcontent-%COMP%]{right:12px;bottom:12px}.toast-bottom-left[_ngcontent-%COMP%]{bottom:12px;left:12px}.toast-container.toast-top-center[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%], .toast-container.toast-bottom-center[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%], .toast-container.toast-bottom-full-width[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]{width:96%;margin-left:auto;margin-right:auto}.toast-container[_ngcontent-%COMP%]{pointer-events:none;position:fixed;z-index:999999}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]{border-radius:var(--bs-border-radius);position:relative;overflow:hidden;margin:0 0 6px;padding:.75rem 1.25rem .75rem 50px;width:300px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 10px #00000008;pointer-events:auto}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-title[_ngcontent-%COMP%]{font-weight:700}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-message[_ngcontent-%COMP%]{word-wrap:break-word}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-progress[_ngcontent-%COMP%]{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.3}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]:hover, .toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.75}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]:hover{box-shadow:0 0 10px #00000026;opacity:1;cursor:pointer}.toast-success[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E\");color:#155724!important;background-color:#d4edda;border:1px solid #c3e6cb}.toast-success[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#08210e!important}.toast-success[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#020703!important}.toast-error[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E\");color:#721c24!important;background-color:#f8d7da;border:1px solid #f5c6cb}.toast-error[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#2c0b0e!important}.toast-error[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#090203!important}.toast-info[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E\");color:#0c5460!important;background-color:#d1ecf1;border:1px solid #bee5eb}.toast-info[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#052025!important}.toast-info[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#010607!important}.toast-warning[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E\");color:#856404!important;background-color:#fff3cd;border:1px solid #ffeeba}.toast-warning[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#332701!important}.toast-warning[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#0a0800!important}@media all and (max-width: 240px){.toast-container[_ngcontent-%COMP%] .ngx-toastr.div[_ngcontent-%COMP%]{padding:8px 8px 8px 50px;width:11em}.toast-container[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container[_ngcontent-%COMP%] .ngx-toastr.div[_ngcontent-%COMP%]{padding:8px 8px 8px 50px;width:18em}.toast-container[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container[_ngcontent-%COMP%] .ngx-toastr.div[_ngcontent-%COMP%]{padding:15px 15px 15px 50px;width:25em}}.navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function or(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function wa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function gr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function _o(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,gr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Ro(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function sc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,sc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function zl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Ta,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Co(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function rc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,or,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,wa,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,_o,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Ro,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,zl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,Co,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function Sa(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function No(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let bl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Nl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Lr.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.fork$),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,rc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,Sa,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,No,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Zi.YU,Zi.bT,Pr.Mm,rr.ZM,Zi.vh,Pr.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[fr.n3,Yn,bl]})}return c})();class sn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const oc=[sn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let vl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forRoot(oc,{preloadingStrategy:fr.Kp}),fr.iI]})}return c})();var Fo=He(57786),ac=He(73028),yl=He(5779),js=He(21413),lc=He(33726),mr=He(983),Vs=He(71985),Gl=He(70152),sa=He(70980);function Qn(){return["Mac","iPhone","iPad","iPhone"].some(v=>navigator.platform.includes(v))?"apple":"pc"}function _l(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new js.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=_l(W.keys,Qn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,lc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,Gl.B)(this.sequenceDebounce),(0,ac.Z)(()=>{const gt=et;et="";const Dt=this.sequenceMaps.get(Ve);if(Dt.hotkeyMap.has(gt)){const Pt=Dt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,Jo.of)(Pt.hotkey)}return mr.w}))},W={...this.defaults,...i};let ce=_l(W.keys,Qn());return(()=>{const Ve={subject:new js.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,Jo.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Dt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Dt)}return Ve.subject.asObservable()})().pipe((0,na.Q)(this.dispose.pipe((0,so.p)(Ve=>Ve===ce))),(0,so.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,sa.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=_l(m.keys,Qn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,Jo.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new Vs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,na.Q)(this.dispose.pipe((0,so.p)(De=>De===W))))}removeShortcuts(i){(function Zh(c){return Array.isArray(c)?c:[c]})(i).map(W=>_l(W,Qn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Zi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Re=(()=>{class c{static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({imports:[Zi.MD]})}return c})();const Ue=new Ir.Vy("App");let Be=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Or.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Or.c.production&&Ir.Vy.enableProductionMode(),Ue.debug("init"),this.i18nService.init(Or.c.defaultLanguage,Or.c.supportedLanguages),this.subs.sink=(0,Nl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.subs.add(this.hotkeys.addShortcut({keys:this.keysBoundActive}).subscribe(i=>{console.log("ben"+i),this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))}setTitle(){const i=this.router.events.pipe((0,so.p)(m=>m instanceof fr.wF));(0,Fo.h)(this.translateService.onLangChange,i).pipe((0,Lr.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,so.p)(m=>"primary"===m.outlet),(0,ac.Z)(m=>m.data),(0,Ir.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(fr.Ix),e.rXU(fr.nX),e.rXU(M.hE),e.rXU(Pr.c$),e.rXU(Ke.G),e.rXU(Ir.W4),e.rXU(ut.d),e.rXU(yl.r1),e.rXU(qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[fr.n3]})}return c})();var We=He(31635);class pn{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class Dn extends pn{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class qs extends pn{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Hl extends pn{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Cl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof Dn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof qs?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Hl?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class cc extends Cl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Bo(){}function yh(c){return null==c?Bo:function(){return this.querySelector(c)}}function Vf(){return[]}function zf(c){return null==c?Vf:function(){return this.querySelectorAll(c)}}function jc(c){return function(){return this.matches(c)}}function $r(c){return function(v){return v.matches(c)}}var Gf=Array.prototype.find;function Vc(){return this.firstElementChild}var zc=Array.prototype.filter;function td(){return Array.from(this.children)}function lp(c){return new Array(c.length)}function Gc(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function Ch(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}Gc.prototype={constructor:Gc,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var ni="http://www.w3.org/1999/xhtml";const xn={svg:"http://www.w3.org/2000/svg",xhtml:ni,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ka(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),xn.hasOwnProperty(v)?{space:xn[v],local:c}:c}function Hc(c){return function(){this.removeAttribute(c)}}function hs(c){return function(){this.removeAttributeNS(c.space,c.local)}}function Uc(c,v){return function(){this.setAttribute(c,v)}}function ra(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function Bd(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function fp(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function fm(c){return function(){this.style.removeProperty(c)}}function gp(c,v,i){return function(){this.style.setProperty(c,v,i)}}function oo(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function dc(c,v){return c.style.getPropertyValue(v)||fp(c).getComputedStyle(c,null).getPropertyValue(v)}function ka(c){return function(){delete this[c]}}function kl(c,v){return function(){this[c]=v}}function $f(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function bp(c){return c.trim().split(/^|\s+/)}function Th(c){return c.classList||new Sh(c)}function Sh(c){this._node=c,this._names=bp(c.getAttribute("class")||"")}function kh(c,v){for(var i=Th(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var qc=[null];function br(c,v){this._groups=c,this._parents=v}function Xd(){return new br([[document.documentElement]],qc)}br.prototype=Xd.prototype={constructor:br,select:function rp(c){"function"!=typeof c&&(c=yh(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=wi+1);!(Bi=Yt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function Wf(c){function v(Dt,Pt){return Dt&&Pt?c(Dt.__data__,Pt.__data__):!Dt-!Pt}c||(c=hc);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?fm:"function"==typeof v?oo:gp)(c,v,i??"")):dc(this.node(),c)},property:function mp(c,v){return arguments.length>1?this.each((null==v?ka:"function"==typeof v?$f:kl)(c,v)):this.node()[c]},classed:function Vd(c,v){var i=bp(c+"");if(arguments.length<2){for(var m=Th(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?Ah:Kc,W=0;W{}};function Qc(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?hd(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?hd(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=Xl.exec(c))?new ao(v[1],v[2],v[3],1):(v=vc.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=ar.exec(c))?hd(v[1],v[2],v[3],v[4]):(v=wp.exec(c))?hd(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=Jd.exec(c))?Tp(v[1],v[2]/100,v[3]/100,1):(v=ld.exec(c))?Tp(v[1],v[2]/100,v[3]/100,v[4]):eu.hasOwnProperty(c)?ih(eu[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function ih(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function hd(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function Rh(c,v,i,m){return 1===arguments.length?function gm(c){return c instanceof $l||(c=Yl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}`}function nu(){const c=su(this.opacity);return`${1===c?"rgb(":"rgba("}${nh(this.r)}, ${nh(this.g)}, ${nh(this.b)}${1===c?")":`, ${c})`}`}function su(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function nh(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function sh(c){return((c=nh(c))<16?"0":"")+c.toString(16)}function Tp(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ea(c,v,i,m)}function ru(c){if(c instanceof Ea)return new Ea(c.h,c.s,c.l,c.opacity);if(c instanceof $l||(c=Yl(c)),!c)return new Ea;if(c instanceof Ea)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ea(De,Ve,qe,c.opacity)}function Ea(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function Sp(c){return(c=(c||0)%360)<0?c+360:c}function kp(c){return Math.max(0,Math.min(1,c||0))}function dd(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function Za(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}eh($l,Yl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:cd,formatHex:cd,formatHex8:function th(){return this.rgb().formatHex8()},formatHsl:function Jf(){return ru(this).formatHsl()},formatRgb:tu,toString:tu}),eh(ao,Rh,Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(nh(this.r),nh(this.g),nh(this.b),su(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function eg(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}${sh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nu,toString:nu})),eh(Ea,function zo(c,v,i,m){return 1===arguments.length?ru(c):new Ea(c,v,i,m??1)},Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new Ea(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ea(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(dd(c>=240?c-240:c+120,W,m),dd(c,W,m),dd(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ea(Sp(this.h),kp(this.s),kp(this.l),su(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=su(this.opacity);return`${1===c?"hsl(":"hsla("}${Sp(this.h)}, ${100*kp(this.s)}%, ${100*kp(this.l)}%${1===c?")":`, ${c})`}`}}));const au=c=>()=>c;function lu(c,v){var i=v-c;return i?function tg(c,v){return function(i){return c+i*v}}(c,i):au(isNaN(c)?v:c)}const cu=function c(v){var i=function mm(c){return 1==(c=+c)?lu:function(v,i){return i-v?function Mp(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):au(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=Rh(W)).r,(ce=Rh(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=lu(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function Dp(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return Za((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Go(m,W)})),i=Nh.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--Ho}()}finally{Ho=0,function Wt(){for(var c,i,v=jh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:jh=i);pd=c,Qt(m)}(),Kl=0}}function Vt(){var c=ah.now(),v=c-fd;v>fu&&(Vh-=v,fd=c)}function Qt(c){Ho||(rh&&(rh=clearTimeout(rh)),c-Kl>24?(c<1/0&&(rh=setTimeout(ft,c-ah.now()-Vh)),oh&&(oh=clearInterval(oh))):(oh||(fd=ah.now(),oh=setInterval(Vt,fu)),Ho=1,be(ft)))}function ii(c,v,i){var m=new we;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}we.prototype=Ne.prototype={constructor:we,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?je():+i)+(null==v?0:+v),!this._next&&pd!==this&&(pd?pd._next=this:jh=this,pd=this),this._call=c,this._time=i,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var Ci=Jc("start","end","cancel","interrupt"),_i=[],Ai=0,fn=3;function En(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Dt,Pt,Ut;if(1!==i.state)return qe();for(gt in m)if((Ut=m[gt]).name===i.name){if(Ut.state===fn)return ii(De);4===Ut.state?(Ut.state=6,Ut.timer.stop(),Ut.on.call("interrupt",c,c.__data__,Ut.index,Ut.group),delete m[gt]):+gtAi)throw new Error("too late; already scheduled");return i}function An(c,v){var i=qn(c,v);if(i.state>fn)throw new Error("too late; already running");return i}function qn(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var xe,wr=180/Math.PI,lo={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Dt.push(W(Dt)+"rotate(",null,m)-2,x:Go(et,gt)})):gt&&Dt.push(W(Dt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Dt,Pt),function Ve(et,gt,Dt,Pt){et!==gt?Pt.push({i:Dt.push(W(Dt)+"skewX(",null,m)-2,x:Go(et,gt)}):gt&&Dt.push(W(Dt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Dt,Pt),function qe(et,gt,Dt,Pt,Ut,Zt){if(et!==Dt||gt!==Pt){var hi=Ut.push(W(Ut)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Go(et,Dt)},{i:hi-2,x:Go(gt,Pt)})}else(1!==Dt||1!==Pt)&&Ut.push(W(Ut)+"scale("+Dt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Dt,Pt),et=gt=null,function(Ut){for(var Yt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Zn:An;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function Jn(c,v){var i=Ka(c),m="transform"===i?Ie:oi;return this.attrTween(c,"function"==typeof v?(i.local?nn:Cn)(i,m,ai(this,"attr."+c,v)):null==v?(i.local?qi:Pi)(i):(i.local?tn:Yi)(i,m,v))},attrTween:function Uo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=Ka(c);return this.tween(i,(m.local?cr:co)(m,v))},style:function rb(c,v,i){var m="transform"==(c+="")?ue:oi;return null==v?this.styleTween(c,function cg(c,v){var i,m,W;return function(){var ce=dc(this,c),De=(this.style.removeProperty(c),dc(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Cc(c)):"function"==typeof v?this.styleTween(c,function nb(c,v,i){var m,W,ce;return function(){var De=dc(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=dc(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,ai(this,"style."+c,v))).each(function sb(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=An(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Cc(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function Op(c,v,i){var m,ce,W=i+"";return function(){var De=dc(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Ew(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Dw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function Mw(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function Aw(c){return this.tween("text","function"==typeof c?function ym(c){return function(){var v=c(this);this.textContent=v??""}}(ai(this,"text",c)):function vm(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function hx(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function ob(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Iw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function ib(){return this.on("end.remove",function rx(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function zt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=qn(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Wl.prototype.transition=function gx(c){var v,i;c instanceof ch?(v=c._id,c=c._name):(v=xm(),(i=lb).time=je(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function Rp(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function gg(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<0?et=Dt+1:gt=Dt}while(etNr(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===Nr||c===Rp?c:fb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Dt=W(Ve,qe,et,gt-1);return Dt>et&&m(Ve[Dt-1],qe)>-m(Ve[Dt],qe)?Dt-1:Dt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<=0?et=Dt+1:gt=Dt}while(et=kx?10:ce>=gb?5:ce>=Mx?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etho(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(bb.setTime(+ce),vb.setTime(+De),c(bb),c(vb),Math.floor(i(bb,vb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Tm=ho(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Tm.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?ho(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Tm:null);const vu=ho(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*uh)},(c,v)=>(v-c)/uh,c=>c.getUTCSeconds()),yu=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getMinutes()),km=ho(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getUTCMinutes()),bg=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh-c.getMinutes()*Il)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getHours()),Mm=ho(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getUTCHours()),ha=ho(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Il)/Zl,c=>c.getDate()-1),xb=(ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>c.getUTCDate()-1),ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>Math.floor(c/Zl)));function xu(c){return ho(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Il)/mb)}const vg=xu(0);function zh(c){return ho(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/mb)}xu(1),xu(2),xu(3),xu(4),xu(5),xu(6);const Tb=zh(0),Om=(zh(1),zh(2),zh(3),zh(4),zh(5),zh(6),ho(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),zp=ho(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),Gp=ho(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());Gp.every=c=>isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const _g=ho(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function Pm(c,v,i,m,W,ce){const De=[[vu,1,uh],[vu,5,5e3],[vu,15,15e3],[vu,30,3e4],[ce,1,Il],[ce,5,5*Il],[ce,15,15*Il],[ce,30,30*Il],[W,1,ph],[W,3,3*ph],[W,6,6*ph],[W,12,12*ph],[m,1,Zl],[m,2,2*Zl],[i,1,mb],[v,1,Ex],[v,3,3*Ex],[c,1,Fp]];function qe(et,gt,Dt){const Pt=Math.abs(gt-et)/Dt,Ut=gg(([,,Yt])=>Yt).right(De,Pt);if(Ut===De.length)return c.every(wm(et/Fp,gt/Fp,Dt));if(0===Ut)return Tm.every(Math.max(wm(et,gt,Dt),1));const[Zt,hi]=De[Pt/De[Ut-1][2]isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Lm,Cg]=Pm(_g,zp,Tb,xb,Mm,km),[Db,Rm]=Pm(Gp,Om,vg,ha,bg,yu);var vd=new Date,wg=new Date;function ql(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return vd.setTime(+ce),wg.setTime(+De),c(vd),c(wg),Math.floor(i(vd,wg))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const Hp=864e5,Eb=7*Hp;function Gh(c){return ql(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/Eb})}var In=Gh(0),Up=Gh(1),yd=(Gh(2),Gh(3),Gh(4));const jm=(Gh(5),Gh(6),ql(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/Hp},function(c){return c.getUTCDate()-1}));function xd(c){return ql(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/Eb})}var Nb=xd(0),kg=xd(1),wu=(xd(2),xd(3),xd(4));const Mg=(xd(5),xd(6),ql(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/Hp,c=>c.getDate()-1));var Vm=ql(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});Vm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const $p=Vm;var Dg=ql(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});Dg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const Xp=Dg;function Yp(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function zm(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function Kp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Bb={"-":"",_:" ",0:"0"},uo=/^\s*\d+/,Tc=/^%/,Gm=/[\\^$*+?|[\]().{}]/g;function ys(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Eg(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Xw(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function Vb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=uo.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Zp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Wm(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function fh(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function e_(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function zb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function $m(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function Gb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function qp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function Hb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function ku(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Qp(c,v,i){var m=uo.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Xm(c,v,i){var m=Tc.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Jp(c,v,i){var m=uo.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Ub(c,v,i){var m=uo.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ys(c.getDate(),v,2)}function t_(c,v){return ys(c.getHours(),v,2)}function i_(c,v){return ys(c.getHours()%12||12,v,2)}function n_(c,v){return ys(1+Mg.count($p(c),c),v,3)}function Wb(c,v){return ys(c.getMilliseconds(),v,3)}function s_(c,v){return Wb(c,v)+"000"}function r_(c,v){return ys(c.getMonth()+1,v,2)}function $b(c,v){return ys(c.getMinutes(),v,2)}function Xb(c,v){return ys(c.getSeconds(),v,2)}function Yb(c){var v=c.getDay();return 0===v?7:v}function Kb(c,v){return ys(Nb.count($p(c)-1,c),v,2)}function ef(c){var v=c.getDay();return v>=4||0===v?wu(c):wu.ceil(c)}function o_(c,v){return c=ef(c),ys(wu.count($p(c),c)+(4===$p(c).getDay()),v,2)}function Yw(c){return c.getDay()}function a_(c,v){return ys(kg.count($p(c)-1,c),v,2)}function l_(c,v){return ys(c.getFullYear()%100,v,2)}function Zb(c,v){return ys((c=ef(c)).getFullYear()%100,v,2)}function c_(c,v){return ys(c.getFullYear()%1e4,v,4)}function h_(c,v){var i=c.getDay();return ys((c=i>=4||0===i?wu(c):wu.ceil(c)).getFullYear()%1e4,v,4)}function qb(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ys(v/60|0,"0",2)+ys(v%60,"0",2)}function Ag(c,v){return ys(c.getUTCDate(),v,2)}function Qb(c,v){return ys(c.getUTCHours(),v,2)}function tf(c,v){return ys(c.getUTCHours()%12||12,v,2)}function nf(c,v){return ys(1+jm.count(Xp(c),c),v,3)}function Mu(c,v){return ys(c.getUTCMilliseconds(),v,3)}function d_(c,v){return Mu(c,v)+"000"}function u_(c,v){return ys(c.getUTCMonth()+1,v,2)}function p_(c,v){return ys(c.getUTCMinutes(),v,2)}function Ig(c,v){return ys(c.getUTCSeconds(),v,2)}function Km(c){var v=c.getUTCDay();return 0===v?7:v}function f_(c,v){return ys(In.count(Xp(c)-1,c),v,2)}function g_(c){var v=c.getUTCDay();return v>=4||0===v?yd(c):yd.ceil(c)}function Kw(c,v){return c=g_(c),ys(yd.count(Xp(c),c)+(4===Xp(c).getUTCDay()),v,2)}function m_(c){return c.getUTCDay()}function b_(c,v){return ys(Up.count(Xp(c)-1,c),v,2)}function Zw(c,v){return ys(c.getUTCFullYear()%100,v,2)}function v_(c,v){return ys((c=g_(c)).getUTCFullYear()%100,v,2)}function qw(c,v){return ys(c.getUTCFullYear()%1e4,v,4)}function y_(c,v){var i=c.getUTCDay();return ys((c=i>=4||0===i?yd(c):yd.ceil(c)).getUTCFullYear()%1e4,v,4)}function x_(){return"+0000"}function Jb(){return"%"}function Og(c){return+c}function Du(c){return Math.floor(+c/1e3)}function Eu(c){return null===c?NaN:+c}!function __(c){(function Qx(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Tu(W),gt=Su(W),Dt=Tu(ce),Pt=Su(ce),Ut=Tu(De),Zt=Su(De),hi=Tu(Ve),Yt=Su(Ve),di=Tu(qe),wi=Su(qe),gi={a:function Ei(Ii){return De[Ii.getDay()]},A:function ji(Ii){return ce[Ii.getDay()]},b:function Wi(Ii){return qe[Ii.getMonth()]},B:function Nn(Ii){return Ve[Ii.getMonth()]},c:null,d:Ym,e:Ym,f:s_,g:Zb,G:h_,H:t_,I:i_,j:n_,L:Wb,m:r_,M:$b,p:function ts(Ii){return W[+(Ii.getHours()>=12)]},q:function Wn(Ii){return 1+~~(Ii.getMonth()/3)},Q:Og,s:Du,S:Xb,u:Yb,U:Kb,V:o_,w:Yw,W:a_,x:null,X:null,y:l_,Y:c_,Z:qb,"%":Jb},ki={a:function Yr(Ii){return De[Ii.getUTCDay()]},A:function ds(Ii){return ce[Ii.getUTCDay()]},b:function Kr(Ii){return qe[Ii.getUTCMonth()]},B:function Ll(Ii){return Ve[Ii.getUTCMonth()]},c:null,d:Ag,e:Ag,f:d_,g:v_,G:y_,H:Qb,I:tf,j:nf,L:Mu,m:u_,M:p_,p:function is(Ii){return W[+(Ii.getUTCHours()>=12)]},q:function Zr(Ii){return 1+~~(Ii.getUTCMonth()/3)},Q:Og,s:Du,S:Ig,u:Km,U:f_,V:Kw,w:m_,W:b_,x:null,X:null,y:Zw,Y:qw,Z:x_,"%":Jb},Bi={a:function Ln(Ii,gn,Vn){var xi=Ut.exec(gn.slice(Vn));return xi?(Ii.w=Zt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},A:function Ui(Ii,gn,Vn){var xi=Dt.exec(gn.slice(Vn));return xi?(Ii.w=Pt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},b:function Un(Ii,gn,Vn){var xi=di.exec(gn.slice(Vn));return xi?(Ii.m=wi.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},B:function Ri(Ii,gn,Vn){var xi=hi.exec(gn.slice(Vn));return xi?(Ii.m=Yt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},c:function Ji(Ii,gn,Vn){return ln(Ii,v,gn,Vn)},d:zb,e:zb,f:Qp,g:Zp,G:Um,H:Gb,I:Gb,j:$m,L:ku,m:e_,M:qp,p:function ps(Ii,gn,Vn){var xi=et.exec(gn.slice(Vn));return xi?(Ii.p=gt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},q:fh,Q:Jp,s:Ub,S:Hb,u:Hm,U:Xw,V:jb,w:Eg,W:Vb,x:function Qs(Ii,gn,Vn){return ln(Ii,i,gn,Vn)},X:function yi(Ii,gn,Vn){return ln(Ii,m,gn,Vn)},y:Zp,Y:Um,Z:Wm,"%":Xm};function Mi(Ii,gn){return function(Vn){var Yo,mn,ur,xi=[],dr=-1,Es=0,Xo=Ii.length;for(Vn instanceof Date||(Vn=new Date(+Vn));++dr53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Xo=(Es=zm(Kp(xi.y,0,1))).getUTCDay(),Es=Xo>4||0===Xo?Up.ceil(Es):Up(Es),Es=jm.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Xo=(Es=Yp(Kp(xi.y,0,1))).getDay(),Es=Xo>4||0===Xo?kg.ceil(Es):kg(Es),Es=Mg.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Xo="Z"in xi?zm(Kp(xi.y,0,1)).getUTCDay():Yp(Kp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Xo+5)%7:xi.w+7*xi.U-(Xo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,zm(xi)):Yp(xi)}}function ln(Ii,gn,Vn,xi){for(var Yo,mn,dr=0,Es=gn.length,Xo=Vn.length;dr=Xo)return-1;if(37===(Yo=gn.charCodeAt(dr++))){if(Yo=gn.charAt(dr++),!(mn=Bi[Yo in Bb?gn.charAt(dr++):Yo])||(xi=mn(Ii,Vn,xi))<0)return-1}else if(Yo!=Vn.charCodeAt(xi++))return-1}return xi}return gi.x=Mi(i,gi),gi.X=Mi(m,gi),gi.c=Mi(v,gi),ki.x=Mi(i,ki),ki.X=Mi(m,ki),ki.c=Mi(v,ki),{format:function(Ii){var gn=Mi(Ii+="",gi);return gn.toString=function(){return Ii},gn},parse:function(Ii){var gn=an(Ii+="",!1);return gn.toString=function(){return Ii},gn},utcFormat:function(Ii){var gn=Mi(Ii+="",ki);return gn.toString=function(){return Ii},gn},utcParse:function(Ii){var gn=an(Ii+="",!0);return gn.toString=function(){return Ii},gn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const nv=gg(Nr).right,sv=(gg(Eu),nv);function w_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function S_(c){return+c}var rv=[0,1];function Uh(c){return c}function _d(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function T_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function Pg(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Lg:Pg,qe=et=null,Dt}function Dt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Dt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Go)))(Pt)))},Dt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,S_),gt()):c.slice()},Dt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Dt.rangeRound=function(Pt){return v=Array.from(Pt),i=w_,gt()},Dt.clamp=function(Pt){return arguments.length?(De=!!Pt||Uh,gt()):De!==Uh},Dt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Dt.unknown=function(Pt){return arguments.length?(ce=Pt,Dt):ce},function(Pt,Ut){return m=Pt,W=Ut,gt()}}()(Uh,Uh)}function Cd(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Qm,O_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function gh(c){if(!(v=O_.exec(c)))throw new Error("invalid format: "+c);var v;return new Au({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function Au(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function af(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Iu(c){return(c=af(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}gh.prototype=Au.prototype,Au.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function P_(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function R_(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Qm=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+af(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function Rg(c){return c}var cf,uv,N_,dv=Array.prototype.map,Jm=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function j_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function Dx(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=mg(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function wd(){var c=ov();return c.copy=function(){return function M_(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,wd())},Cd.apply(c,arguments),j_(c)}function t0(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(dv.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?Rg:function L_(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(dv.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Dt){var Pt=(Dt=gh(Dt)).fill,Ut=Dt.align,Zt=Dt.sign,hi=Dt.symbol,Yt=Dt.zero,di=Dt.width,wi=Dt.comma,gi=Dt.precision,ki=Dt.trim,Bi=Dt.type;"n"===Bi?(wi=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Yt||"0"===Pt&&"="===Ut)&&(Yt=!0,Pt="0",Ut="=");var Mi="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",an="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Ln(Ui){var Ji,Qs,yi,Un=Mi,Ri=an;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function lf(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?Jm[8+Qm/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Qs=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}wi&&!Yt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Ln.toString=function(){return Dt+""},Ln}return{format:et,formatPrefix:function gt(Dt,Pt){var Ut=et(((Dt=gh(Dt)).type="f",Dt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Iu(Pt)/3))),hi=Math.pow(10,-Zt),Yt=Jm[8+Zt/3];return function(di){return Ut(hi*di)+Yt}}}}(c),uv=cf.format,N_=cf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=r0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(s0(this,v))}has(v){return super.has(s0(this,v))}set(v,i){return super.set(function pv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function Wh({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function s0({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function r0(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const Ng=Symbol("implicit");function o0(){var c=new n0,v=[],i=[],m=Ng;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==Ng)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return o0(v,i).unknown(m)},Cd.apply(W,arguments),W}function Fg(){var ce,De,c=o0().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Dt(){var Pt=v().length,Ut=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function hf(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?df:c<=-1?-df:Math.asin(c)}const kd=Math.PI,h0=2*kd,Md=1e-6,G_=h0-Md;function mv(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return mv;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;WMd)if(Math.abs(Dt*qe-et*gt)>Md&&ce){let Ut=m-De,Zt=W-Ve,hi=qe*qe+et*et,Yt=Ut*Ut+Zt*Zt,di=Math.sqrt(hi),wi=Math.sqrt(Pt),gi=ce*Math.tan((kd-Math.acos((hi+Pt-Yt)/(2*di*wi)))/2),ki=gi/wi,Bi=gi/di;Math.abs(ki-1)>Md&&this._append`L${v+ki*gt},${i+ki*Dt}`,this._append`A${ce},${ce},0,0,${+(Dt*Ut>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Dt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>Md||Math.abs(this._y1-gt)>Md)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%h0+h0),Pt>G_?this._append`A${m},${m},0,1,${Dt},${v-Ve},${i-qe}A${m},${m},0,1,${Dt},${this._x1=et},${this._y1=gt}`:Pt>Md&&this._append`A${m},${m},0,${+(Pt>=kd)},${Dt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function W_(c){return c.innerRadius}function $_(c){return c.outerRadius}function bv(c){return c.startAngle}function vv(c){return c.endAngle}function d0(c){return c&&c.padAngle}function Gg(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/kc(Ve*Ve+qe*qe),gt=et*qe,Dt=-et*Ve,Pt=c+gt,Ut=v+Dt,Zt=i+gt,hi=m+Dt,Yt=(Pt+Zt)/2,di=(Ut+hi)/2,wi=Zt-Pt,gi=hi-Ut,ki=wi*wi+gi*gi,Bi=W-ce,Mi=Pt*hi-Zt*Ut,an=(gi<0?-1:1)*kc(c0(0,Bi*Bi*ki-Mi*Mi)),ln=(Mi*gi-wi*an)/ki,ps=(-Mi*wi-gi*an)/ki,Ln=(Mi*gi+wi*an)/ki,Ui=(-Mi*wi+gi*an)/ki,Un=ln-Yt,Ri=ps-di,Ji=Ln-Yt,Qs=Ui-di;return Un*Un+Ri*Ri>Ji*Ji+Qs*Qs&&(ln=Ln,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Dt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function Hg(){var c=W_,v=$_,i=Wo(0),m=null,W=bv,ce=vv,De=d0,Ve=null,qe=function zg(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Vg(v)}(et);function et(){var gt,Dt,Pt=+c.apply(this,arguments),Ut=+v.apply(this,arguments),Zt=W.apply(this,arguments)-df,hi=ce.apply(this,arguments)-df,Yt=Ou(hi-Zt),di=hi>Zt;if(Ve||(Ve=gt=qe()),UtJa)if(Yt>uf-Ja)Ve.moveTo(Ut*Sd(Zt),Ut*So(Zt)),Ve.arc(0,0,Ut,Zt,hi,!di),Pt>Ja&&(Ve.moveTo(Pt*Sd(hi),Pt*So(hi)),Ve.arc(0,0,Pt,hi,Zt,di));else{var Ri,Ji,wi=Zt,gi=hi,ki=Zt,Bi=hi,Mi=Yt,an=Yt,ln=De.apply(this,arguments)/2,ps=ln>Ja&&(m?+m.apply(this,arguments):kc(Pt*Pt+Ut*Ut)),Ln=jg(Ou(Ut-Pt)/2,+i.apply(this,arguments)),Ui=Ln,Un=Ln;if(ps>Ja){var Qs=gv(ps/Pt*So(ln)),yi=gv(ps/Ut*So(ln));(Mi-=2*Qs)>Ja?(ki+=Qs*=di?1:-1,Bi-=Qs):(Mi=0,ki=Bi=(Zt+hi)/2),(an-=2*yi)>Ja?(wi+=yi*=di?1:-1,gi-=yi):(an=0,wi=gi=(Zt+hi)/2)}var Ei=Ut*Sd(wi),ji=Ut*So(wi),Wi=Pt*Sd(Bi),Nn=Pt*So(Bi);if(Ln>Ja){var Kr,ts=Ut*Sd(gi),Wn=Ut*So(gi),Yr=Pt*Sd(ki),ds=Pt*So(ki);if(Yt<$h)if(Kr=function yv(c,v,i,m,W,ce,De,Ve){var qe=i-c,et=m-v,gt=De-W,Dt=Ve-ce,Pt=Dt*qe-gt*et;if(!(Pt*Pt1?0:c<-1?$h:Math.acos(c)}((Ll*Zr+is*Ii)/(kc(Ll*Ll+is*is)*kc(Zr*Zr+Ii*Ii)))/2),Vn=kc(Kr[0]*Kr[0]+Kr[1]*Kr[1]);Ui=jg(Ln,(Pt-Vn)/(gn-1)),Un=jg(Ln,(Ut-Vn)/(gn+1))}else Ui=Un=0}an>Ja?Un>Ja?(Ri=Gg(Yr,ds,Ei,ji,Ut,Un,di),Ji=Gg(ts,Wn,Wi,Nn,Ut,Un,di),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),UnJa&&Mi>Ja?Ui>Ja?(Ri=Gg(Wi,Nn,ts,Wn,Pt,-Ui,di),Ji=Gg(Ei,ji,Yr,ds,Pt,-Ui,di),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function X_(c){return c}var u0=He(76021);const p0=["caretElm"],wv=c=>({model:c});function f0(c,v){}function g0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,f0,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,wv,i.context))}}function Z_(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function q_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function Q_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Tv=["*"];function Sv(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function m0(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const d1=["ngx-charts-svg-radial-gradient",""];function fT(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const f1=["ngx-charts-count-up",""];function Vv(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function mT(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function m1(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function zv(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function v0(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function b1(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function v1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,m1,1,2,"div",11)(3,zv,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,v0,1,2,"div",14)(7,b1,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const y1=["tooltipTemplate"],ff=(c,v)=>[c,v],sy=["ngx-charts-pie-label",""],Bu=["ngx-charts-pie-arc",""];function ju(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Vu=["ngx-charts-pie-series",""];function zu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Gu(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,zu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function my(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function dS(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:my(ce.value,c,v)}),this[W]}}}}var Hn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Hn||{});function qg(c,v,i){return i===Hn.Top?c.top-7:i===Hn.Bottom?c.top+c.height-v.height+7:i===Hn.Center?c.top+c.height/2-v.height/2:void 0}function Qg(c,v,i){return i===Hn.Left?c.left-7:i===Hn.Right?c.left+c.width-v.width+7:i===Hn.Center?c.left+c.width/2-v.width/2:void 0}class hr{static calculateVerticalAlignment(v,i,m){let W=qg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Hn.Top&&(ce=v.height/2-m.height/2+7),W===Hn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Hn.Center&&(ce=i.height/2-m.height/2);const De=qg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Qg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Hn.Left&&(ce=v.width/2-m.width/2+7),W===Hn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Hn.Center&&(ce=i.width/2-m.width/2);const De=Qg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Hn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Hn.Left&&v.left-i.width-W<0&&(ce=!0),m===Hn.Top&&v.top-i.height-W<0&&(ce=!0),m===Hn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=-7,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Left?(Ve=i.width,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Top?(De=i.height,Ve=hr.calculateHorizontalCaret(m,i,W,ce)):v===Hn.Bottom&&(De=-7,Ve=hr.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=m.left+m.width+W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Left?(Ve=m.left-i.width-W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Top?(De=m.top-i.height-W,Ve=hr.calculateHorizontalAlignment(m,i,ce)):v===Hn.Bottom&&(De=m.top+m.height+W,Ve=hr.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(hr.shouldFlip(m,i,v,W)){if(v===Hn.Right)return Hn.Left;if(v===Hn.Left)return Hn.Right;if(v===Hn.Top)return Hn.Bottom;if(v===Hn.Bottom)return Hn.Top}return v}}let rC=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Zi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=hr.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=hr.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=hr.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(p0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,g0,2,4,"span",3)(5,Z_,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Zi.bT,Zi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,We.Cg)([dS(100)],c.prototype,"onWindowResize",null),c})();class by{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let Pl=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function Dc(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new cc(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new Dn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),el=(()=>{class c extends by{constructor(i){super(i),this.type=rC}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(Pl))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Od=function(c){return c.Right="right",c.Below="below",c}(Od||{}),Uu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Uu||{}),wn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(wn||{});let vy=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function Df(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Jg=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Wu=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=Df(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,q_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,Q_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Jg,Zi.bT,Zi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),yy=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Od,this.LegendType=Uu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Od.Right)&&(i=this.legendType===Uu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Od.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===wn.Linear?Uu.ScaleLegend:Uu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([el]),e.OA$],ngContentSelectors:Tv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Sv,1,5,"ngx-charts-scale-legend",2)(4,m0,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[vy,Wu,Zi.bT],encapsulation:2,changeDetection:0}),c})(),xy=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function _y(c){return"[object Date]"===toString.call(c)}let I0=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=wn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Zi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new xy(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Zi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function wy(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var P0=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(P0||{});let Ty=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD]]}),c})();var Ef=function(c){return c.popover="popover",c.tooltip="tooltip",c}(Ef||{}),$u=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}($u||{});let L0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Hn.Top,this.tooltipAlignment=Hn.Center,this.tooltipType=Ef.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=$u.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.focus}get listensForHover(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(el),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),em=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[Pl,el],imports:[[Zi.MD]]}),c})();const Sy={};function Pd(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,Sy[c]?Pd():(Sy[c]=!0,c)}var Ec=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(Ec||{});let N0=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:d1,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,fT,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Zi.Sq],encapsulation:2,changeDetection:0}),c})();function F0(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function B0(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Dt;function Pt(Ut){let Zt;const hi=Ut-Dt;Zt=Ve?ce-F0(hi,0,ce-De,gt):F0(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Yt=hiPt(di))}return requestAnimationFrame(Ut=>(Dt=Ut,Pt(Ut)))}let Of,My=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function dC(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=B0(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:f1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?Of=window:typeof global<"u"&&(Of=global);let V0=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=Df(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:wy(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,Vv,1,2,"div",1)(2,mT,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,v1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[My,Zi.bT,Zi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),tl=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD,Ty,em],Zi.MD,Ty,em]}),c})();const Pf=[{name:"vivid",selectable:!0,group:wn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:wn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:wn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:wn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:wn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:wn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:wn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:wn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:wn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:wn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:wn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:wn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:wn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:wn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:wn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class nm{constructor(v,i,m,W){"string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),i){case wn.Quantile:W=hf().range(v.domain).domain(m);break;case wn.Ordinal:W=o0().range(v.domain).domain(m);break;case wn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=t0(0,1,1/ce.length);W=wd().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===wn.Linear){const i=wd().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=wd().domain(this.domain).range([0,1]),W=Fg().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Dt=[];for(Dt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Dt.push({color:Pt,offset:Ut,opacity:1}),gt=Ut,et++}}if(Dt[Dt.length-1].offset<100&&Dt.push({color:ce,offset:qe,opacity:1}),qe===De)Dt[0].offset=0,Dt[1].offset=100;else if(100!==Dt[Dt.length-1].offset)for(const Pt of Dt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Dt}}let Ku=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),da=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})();u0();let Py=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),CC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),W0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),SC=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=wy}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Zi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=Hg().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=Ec,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Pd().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),Hg().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=qa(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Bu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,ju,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[N0,Zi.bT],encapsulation:2,changeDetection:0}),c})(),Ly=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Hn,this.styleTypes=Ef}ngOnChanges(i){this.update()}update(){const m=function Y_(){var c=X_,v=Cv,i=null,m=Wo(0),W=Wo(uf),ce=Wo(0);function De(Ve){var qe,gt,Dt,di,ki,et=(Ve=function _v(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Ut=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Yt=Math.min(uf,Math.max(-uf,W.apply(this,arguments)-hi)),wi=Math.min(Math.abs(Yt)/et,ce.apply(this,arguments)),gi=wi*(Yt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Ut.sort(function(Bi,Mi){return v(Zt[Bi],Zt[Mi])}):null!=i&&Ut.sort(function(Bi,Mi){return i(Ve[Bi],Ve[Mi])}),qe=0,Dt=Pt?(Yt-et*gi)/Pt:0;qe0?ki*Dt:0)+gi,padAngle:wi};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:Wo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:Wo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:Wo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:Wo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function K_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return Hg().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return Df(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=Df(i.data.value);return`\n ${function A0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Vu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Gu,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[SC,kC,Zi.Sq,Zi.bT,L0],encapsulation:2,changeDetection:0}),c})(),Nf=(()=>{class c extends I0{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function uC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=wn.Ordinal,legendPosition:Dt=Od.Right,columns:Pt=12}){let Ut=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Dt===Od.Right&&(Pt-=gt===wn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Ut+=De,Ut+=10,qe&&(Zt-=30,Ut+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Ut)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new nm(this.scheme,wn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,y1,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,ff,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[yy,Ly,V0],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),$0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Ny=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,W0]]}),c})(),IC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),PC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Fy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,da]]}),c})(),Ff=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),NC=(()=>{class c{constructor(){!function RC(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[tl,Ku,da,Py,_C,CC,Ff,W0,Ny,IC,$0,PC,Fy]}),c})();var lm=He(91346),By=He(12168),BC=He(38833),cm=He(46247),jC=He(41570);const Y0=()=>({width:"75vw"}),VC=()=>[10,25,50];function jy(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Vy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function zC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function GC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function HC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function K0(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function UC(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const WC=[sn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getStats()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Dt=et._TS;return gt>Dt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new lm.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Nl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Lr.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Pr.c$),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,jy,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Vy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,zC,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,GC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,HC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,K0,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,UC,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,Y0)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,VC))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Zi.bT,Nf,Pr.Mm,lm.S6,cm.XI,yl.Ei,cm.Tg,cm.yc,jC.l,Pr.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Ir.o6)("dashboard")}}])];let $C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forChild(WC),fr.iI]})}return c})(),XC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:lm.SV,useFactory:()=>[By,BC]}],imports:[Bt,NC,$C,Zi.MD,at.X1,Pr.h,lm.Fr,Ks.G]})}return c})(),YC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Zi.MD,Pr.h,rr.UN,at.YN,fr.iI]})}return c})(),KC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Be]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Pr.h.forRoot(),Re,rr.UN,Ir.Ui,Ks.G,YC,XC,ml._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Bn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Bn.JV.TRACKING,trackerUrl:Or.c.trackerUrl,siteId:Or.c.siteId}),Vl,vl]})}return c})();Or.c.production&&(0,e.SmG)(),M.sG().bootstrapModule(KC,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Mt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Mt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Mt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>mo,B3:()=>Ki,Jj:()=>bn,MD:()=>ga,N0:()=>ba,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>er,VF:()=>Z,Vy:()=>ll,XO:()=>r,Xr:()=>sr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>Js,fG:()=>ns,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>os,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Oi=>+Oi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Oi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),es=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Oi,Xn,es),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Oi,ci=[];for(;ut;){if(Oi=Fe.exec(ut),!Oi){ci.push(ut);break}{ci=ci.concat(Oi.slice(1));const as=ci.pop();if(!as)break;ut=as}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function ui(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Jt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let es="";return ci.forEach(as=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Mt(1);break;case"YY":ut=Mt(2,!0);break;case"YYY":ut=Mt(3);break;case"YYYY":ut=Mt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(as);es+=Sn?Sn(Et,Ke,Xn):"''"===as?"'":as.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),es}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Oi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Oi]);break;case"long":const Xn=_e(Ge,"longTime"),es=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,es]);break;case"full":const as=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[as,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Oi>-Ke)&&(Oi+=Ke),Ge===ee.Hours)0===Oi&&-12===Ke&&(Oi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Oi,ut);const Xn=H(ci,g.MinusSign);return Ee(Oi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Oi=Ge.getMinutes();if(qt){const es=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),as=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=es.findIndex(us=>{if(Array.isArray(us)){const[ss,Bs]=us,Rr=ci>=ss.hours&&Oi>=ss.minutes,Gn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Oi=qt.getTime()-ci.getTime();Et=1+Math.round(Oi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Mt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Oi=at.get(qt);at.move(Oi,ci),Ti(Oi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new rs,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class rs{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let os=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),Js=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),ns=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function pr(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,Jr=new Oa;let bn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return Jr;throw pr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const rl=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw pr()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(rl,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=pa}transform(Ke,at=pa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function go(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function pa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const mo="browser",ma="server";function er(Ge){return Ge===mo}function ll(Ge){return Ge===ma}let sr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>er((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new Zo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Ar(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class Zo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class ba{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),os=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:os}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:os,url:Js}=si(),ns=null;cn!==C.NoContent&&(ns=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=ns?C.Ok:0);let Qr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof ns){const nr=ns;ns=ns.replace(Xe,"");try{ns=""!==ns?JSON.parse(ns):null}catch(Ls){ns=nr,Qr&&(Qr=!1,ns={error:Ls,text:ns})}}Qr?($e.next(new l({body:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0})),$e.complete()):$e.error(new d({error:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0}))},Si=Xi=>{const{url:cn}=si(),os=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(os)};let Hi=!1;const rs=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const ui=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:ui,useFactory:he},{provide:R,useExisting:ui,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>fd,iLQ:()=>gw,sZ2:()=>rh,hnV:()=>Jk,Hbi:()=>uA,o8S:()=>qu,BIS:()=>Kl,gRc:()=>uM,Ql9:()=>BE,OM3:()=>lf,Ocv:()=>$E,abz:()=>yc,Z63:()=>Io,aKT:()=>hu,uvJ:()=>xo,zcH:()=>Za,bkB:()=>aa,$GK:()=>bn,nKC:()=>$e,zZn:()=>zo,_q3:()=>ww,MKu:()=>Tw,xe9:()=>Yy,Co$:()=>w1,Vns:()=>Dd,SKi:()=>kr,Xx1:()=>er,Agw:()=>jh,PLl:()=>fu,sFG:()=>R_,_9s:()=>Qm,czy:()=>yg,WPN:()=>dh,kdw:()=>Gr,C4Q:()=>Mu,NYb:()=>IE,giA:()=>qk,RxE:()=>Hk,c1b:()=>zg,gXe:()=>Oo,mal:()=>Fg,Af3:()=>Ge,tdH:()=>dv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>_0,w6W:()=>T1,oH4:()=>lM,QZP:()=>HM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>Qi,hFB:()=>Dp,QuC:()=>vo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>r1,O8t:()=>WA,An2:()=>Au,H3F:()=>Uk,H8p:()=>Ns,KH2:()=>Lf,TgB:()=>gf,wOt:()=>me,WHO:()=>Kk,e01:()=>Zk,lNU:()=>he,h9k:()=>lb,$MX:()=>cg,ZF7:()=>lh,Kcf:()=>lg,e5t:()=>rx,UyX:()=>nx,cWb:()=>ix,osQ:()=>sx,H5H:()=>z0,Zy3:()=>Ce,mq5:()=>fC,JZv:()=>Ze,LfX:()=>fo,plB:()=>Td,jNT:()=>pw,zjR:()=>Qk,TL$:()=>Ap,Tbb:()=>pt,rcV:()=>Al,nM4:()=>Gv,Vt3:()=>v0,Mj6:()=>Zi,GFd:()=>C1,OA$:()=>wl,Jv_:()=>ek,aNF:()=>tk,R7$:()=>Up,BMQ:()=>ay,HbH:()=>by,ZvI:()=>aC,AVh:()=>Qg,vxM:()=>Af,wni:()=>Qs,VBU:()=>Ac,FsC:()=>Lr,jDH:()=>$i,G2t:()=>kn,$C:()=>Fl,EJ8:()=>Ic,rXU:()=>Cu,nrm:()=>j0,eu8:()=>Ey,bVm:()=>nm,qex:()=>Pf,k0s:()=>im,j41:()=>Xu,RV6:()=>pC,xGo:()=>Jd,Mr5:()=>Iy,pXf:()=>ce,KVO:()=>Is,kS0:()=>th,QTQ:()=>yd,bIt:()=>gt,lsd:()=>ji,joV:()=>xp,qSk:()=>yp,XpG:()=>di,nI1:()=>Tk,bMT:()=>Sk,i5U:()=>kk,SdG:()=>ki,NAR:()=>gi,Y8G:()=>Hn,FS9:()=>Bi,Mz_:()=>Mi,lJ4:()=>hk,eq3:()=>dk,l_i:()=>uk,sMw:()=>pk,ziG:()=>fk,s1E:()=>gk,l4e:()=>mk,sGs:()=>bk,zJS:()=>vk,mGM:()=>Ei,sdS:()=>Yr,Dyx:()=>F0,Z7z:()=>N0,fX1:()=>If,Njj:()=>Hc,EBC:()=>Ix,tSv:()=>bg,eBV:()=>Ka,npT:()=>cb,f$h:()=>dg,B4B:()=>Pp,n$t:()=>To,Aen:()=>hr,xc7:()=>qg,zvX:()=>Oy,DNE:()=>bf,C5r:()=>Mk,EFF:()=>WS,JRh:()=>ZC,SpI:()=>Gy,Lme:()=>qC,E5c:()=>QC,LHq:()=>JC,DH7:()=>QS,mxI:()=>tw,R50:()=>ew,GBs:()=>yi}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Mt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Di(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function kn(t){return{providers:t.providers||[],imports:t.imports||[]}}function jr(t){return qr(t,Rt)||qr(t,bt)}function fo(t){return null!==jr(t)}function qr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const os=st({\u0275cmp:st}),Js=st({\u0275dir:st}),ns=st({\u0275pipe:st}),Qr=st({\u0275mod:st}),nr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),Vr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function Jr(t,s){throw new me(-201,!1)}var bn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bn||{});let Ko;function nl(){return Ko}function Gs(t){const s=Ko;return Ko=t,s}function eo(t,s,h){const P=jr(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&bn.Optional?null:void 0!==s?s:void Jr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",ua=/\n/gm,go="__source";let xr;function Dr(t){const s=xr;return xr=t,s}function fa(t,s=bn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?eo(t,void 0,s):xr.get(t,s&bn.Optional?null:void 0,s)}function Is(t,s=bn.Default){return(nl()||fa)(Mt(t),s)}function Qi(t,s=bn.Default){return Is(t,zr(s))}function zr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Do(t){const s=[];for(let h=0;hArray.isArray(h)?Ar(h,s):s(h))}function Zo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function ba(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Xs(t,s,h){let P=Hr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function to(t,s){const h=Hr(t,s);if(h>=0)return t[1|h]}function Hr(t,s){return function ec(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Ks(P))return!1;ke=!0}}}}else{if(!ke&&!Ks(P)&&!Ks(ze))return!1;if(ke&&Ks(ze))continue;ke=!1,P=ze|1&P}}return Ks(P)||ke}function Ks(t){return!(1&t)}function Or(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Ks(ke)&&(s+=tc(ge,Q),Q=""),P=ke,ge=ge||!Ks(P);h++}return""!==Q&&(s+=tc(ge,Q)),s}function Ac(t){return ee(()=>{const s=dl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===hl.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Oo.Emulated,styles:t.styles||Mn,_:null,schemas:t.schemas||null,tView:null,id:""};ul(h);const P=t.dependencies;return h.directiveDefs=pl(P,!1),h.pipeDefs=pl(P,!0),h.id=function ic(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function so(t){return hn(t)||Rs(t)}function Kh(t){return null!==t}function Fl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Mn,declarations:t.declarations||Mn,imports:t.imports||Mn,exports:t.exports||Mn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ys;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Zi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Zi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Lr(t){return ee(()=>{const s=dl(t);return ul(s),s})}function Ic(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[os]||null}function Rs(t){return t[Js]||null}function Ss(t){return t[ns]||null}function vo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function Zs(t,s){const h=t[Qr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function dl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ys,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Mn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function ul(t){t.features?.forEach(s=>s(t))}function pl(t,s){if(!t)return null;const h=s?Ss:so;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Kh)}function za(t){return{\u0275providers:t}}function Bl(...t){return{\u0275providers:fl(0,t),\u0275fromNgModule:!0}}function fl(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Ar(s,ke=>{const Le=ke;nc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Pc(Q,ge),h}function Pc(t,s){for(let h=0;h{s(ge,P)})}}function nc(t,s,h,P){if(!(t=Mt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)nc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Ar(ge.imports,dt=>{nc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Pc(Je,s)}if(!Le){const Je=Er(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Mn},Q),s({provide:qo,useValue:Q,multi:!0},Q),s({provide:Io,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;Po(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function Po(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?Po(h,s):s(h)}const Rc=st({provide:String,useValue:st});function jl(t){return null!==t&&"object"==typeof t&&Rc in t}function Lo(t){return"function"==typeof t}const Ns=new $e(""),Fs={},ea={};let gl;function yo(){return void 0===gl&&(gl=new bo),gl}class xo{}class _a extends xo{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ia(s,ke=>this.processProvider(ke)),this.records.set(ya,_r(void 0,this)),Q.has("environment")&&this.records.set(xo,_r(void 0,this));const ge=this.records.get(Ns);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(qo,Mn,bn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=Dr(this),P=Gs(void 0);try{return s()}finally{Dr(h),Gs(P)}}get(s,h=vr,P=bn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(Vr))return s[Vr](this);P=zr(P);const ge=Dr(this),ke=Gs(void 0);try{if(!(P&bn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Ur(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&jr(s);ze=Je&&this.injectableDefInScope(Je)?_r(Ca(s),Fs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&bn.Self?yo():this.parent).get(s,h=P&bn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ma(t,s,h,P){const Q=t[yr];throw s[go]&&Q.unshift(s[go]),t.message=function al(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(ua,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),Dr(ge)}}resolveInjectorInitializers(){const s=re(null),h=Dr(this),P=Gs(void 0);try{const ge=this.get(Io,Mn,bn.Self);for(const ke of ge)ke()}finally{Dr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Lo(s=Mt(s))?s:Mt(s&&s.provide);const P=function Fc(t){return jl(t)?_r(void 0,t.useValue):_r(ml(t),Fs)}(s);if(!Lo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Fs,!0),Q.factory=()=>Do(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Fs&&(h.value=ea,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ta(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Mt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function Ca(t){const s=jr(t),h=null!==s?s.factory:Er(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function Vl(t){if(t.length>0)throw new me(204,!1);const h=function ir(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function ml(t,s,h){let P;if(Lo(t)){const Q=Mt(t);return Er(Q)||Ca(Q)}if(jl(t))P=()=>Mt(t.useValue);else if(function Nc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Do(t.deps||[]));else if(function tr(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Mt(t.useExisting));else{const Q=Mt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Er(Q)||Ca(Q);P=()=>new Q(...Do(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function ia(t,s){for(const h of t)Array.isArray(h)?ia(h,s):h&&cn(h)?ia(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof _a&&t.assertNotDestroyed();const P=Dr(t),Q=Gs(void 0);try{return s()}finally{Dr(P),Gs(Q)}}function na(){return void 0!==nl()||null!=function pa(){return xr}()}function Ge(t){if(!na())throw new me(-203,!1)}const Gn=0,pi=1,zi=2,Yn=3,gs=4,ks=5,or=6,wa=7,ms=8,gr=9,_o=10,en=11,Ro=12,sc=13,bs=14,Kn=15,Ta=16,zl=17,Co=18,rc=19,Sa=20,No=21,bl=22,Ua=23,sn=25,oc=1,Fo=7,yl=9,js=10;var lc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(lc||{});function mr(t){return Array.isArray(t)&&"object"==typeof t[oc]}function Vs(t){return Array.isArray(t)&&!0===t[oc]}function Gl(t){return!!(4&t.flags)}function sa(t){return t.componentOffset>-1}function xl(t){return!(1&~t.flags)}function Wr(t){return!!t.template}function Bc(t){return!!(512&t[zi])}class Hl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Cl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function wl(){return cc}function cc(t){return t.type.prototype.ngOnChanges&&(t.setInput=tp),Wa}function Wa(){const t=ip(this),s=t?.current;if(s){const h=t.previous;if(h===Ys)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function tp(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=ip(t)||function np(t,s){return t[ed]=s}(t,{previous:Ys,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Hl(Je&&Je.currentValue,h,ze===Ys),Cl(t,s,Q,h)}wl.ngInherit=!0;const ed="__ngSimpleChanges__";function ip(t){return t[ed]||null}const Bo=function(t,s,h){},yh="svg";let op=!1;function Ts(t){for(;Array.isArray(t);)t=t[Gn];return t}function jc(t,s){return Ts(s[t])}function $r(t,s){return Ts(s[t.index])}function xh(t,s){return t.data[s]}function Vc(t,s){return t[s]}function jo(t,s){const h=s[t];return mr(h)?h:h[Gn]}function td(t){return!(128&~t[zi])}function $a(t,s){return null==s?null:t[s]}function ap(t){t[zl]=0}function lp(t){1024&t[zi]||(t[zi]|=1024,td(t)&&Ch(t))}function Gc(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function _h(t){t[_o].changeDetectionScheduler?.notify(1),Gc(t)?Ch(t):64&t[zi]&&(function Vf(){return op}()?(t[zi]|=1024,Ch(t)):t[_o].changeDetectionScheduler?.notify())}function Ch(t){t[_o].changeDetectionScheduler?.notify();let s=Xa(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,td(s));)s=Xa(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[No]&&(t[No]=[]),t[No].push(s)}function Xa(t){const s=t[Yn];return Vs(s)?s[Yn]:s}const on={lFrame:sd(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function hc(){return on.bindingsEnabled}function Ya(){return null!==on.skipHydrationRootTNode}function ni(){return on.lFrame.lView}function xn(){return on.lFrame.tView}function Ka(t){return on.lFrame.contextLView=t,t[ms]}function Hc(t){return on.lFrame.contextLView=null,t}function hs(){let t=Uc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Uc(){return on.lFrame.currentTNode}function ra(){const t=on.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function oa(t,s){const h=on.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return on.lFrame.isParent}function jd(){on.lFrame.isParent=!1}function oo(){const t=on.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function Sl(){return on.lFrame.bindingIndex}function ka(){return on.lFrame.bindingIndex++}function kl(t){const s=on.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function mp(t){on.lFrame.inI18n=t}function bp(t,s){const h=on.lFrame;h.bindingIndex=h.bindingRootIndex=t,Sh(s)}function Sh(t){on.lFrame.currentDirectiveIndex=t}function kh(t){const s=on.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function nd(){return on.lFrame.currentQueryIndex}function Wc(t){on.lFrame.currentQueryIndex=t}function Xf(t){const s=t[pi];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Mh(t,s,h){if(h&bn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&bn.Host||(Q=Xf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=on.lFrame=vp();return P.currentTNode=s,P.lView=t,!0}function Vd(t){const s=vp(),h=t[pi];on.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function vp(){const t=on.lFrame,s=null===t?null:t.child;return null===s?sd(t):s}function sd(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function zd(){const t=on.lFrame;return on.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Gd=zd;function rd(){const t=zd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Xr(){return on.lFrame.selectedIndex}function uc(t){on.lFrame.selectedIndex=t}function Os(){const t=on.lFrame;return xh(t.tView,t.selectedIndex)}function yp(){on.lFrame.currentNamespace=yh}function xp(){!function Hd(){on.lFrame.currentNamespace=null}()}let $c=!0;function Xc(){return $c}function Vo(t){$c=t}function Yc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[zl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,Ml(Le,ge)):Ml(Le,ge)}const pc=-1;class Kc{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function qc(t){return t!==pc}function br(t){return 32767&t}function fc(t,s){let h=function Xd(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let Wl=!0;function Cr(t){const s=Wl;return Wl=t,s}const Qc=255,Dl=5;let Oh=0;const Ma={};function Jc(t,s){const h=gc(t,s);if(-1!==h)return h;const P=s[pi];P.firstCreatePass&&(t.injectorIndex=s.length,Kd(P.data,t),Kd(s,null),Kd(P.blueprint,null));const Q=Zd(t,s),ge=t.injectorIndex;if(qc(Q)){const ke=br(Q),Le=fc(Q,s),ze=Le[pi].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kd(t,s){t.push(0,0,0,0,0,0,0,0,s)}function gc(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zd(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=cd(Q),null===P)return pc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return pc}function Ph(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Oh++);const Q=P&Qc;s.data[t+(Q>>Dl)]|=1<=0?s&Qc:wp:s}(h);if("function"==typeof ge){if(!Mh(s,t,P))return P&bn.Host?Qd(Q,0,P):eh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&bn.Optional)return ke;Jr()}finally{Gd()}}else if("number"==typeof ge){let ke=null,Le=gc(t,s),ze=pc,Je=P&bn.Host?s[Kn][ks]:null;for((-1===Le||P&bn.SkipSelf)&&(ze=-1===Le?Zd(t,s):s[Le+8],ze!==pc&&Cp(P,!1)?(ke=s[pi],Le=br(ze),s=fc(ze,s)):Le=-1);-1!==Le;){const dt=s[pi];if(Da(ge,Le,dt.data)){const Ct=mc(Le,s,h,ke,P,Je);if(Ct!==Ma)return Ct}ze=s[Le+8],ze!==pc&&Cp(P,s[pi].data[Le+8]===Je)&&Da(ge,Le,s)?(ke=dt,Le=br(ze),s=fc(ze,s)):Le=-1}}return Q}function mc(t,s,h,P,Q,ge){const ke=s[pi],Le=ke.data[t+8],dt=El(Le,ke,h,null==P?sa(Le)&&Wl:P!=ke&&!!(3&Le.type),Q&bn.Host&&ge===Le);return null!==dt?wo(s,ke,dt,Le):Ma}function El(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Wr(Ht)&&Ht.type===h)return ze}return null}function wo(t,s,h,P){let Q=t[h];const ge=s.data;if(function Ah(t){return t instanceof Kc}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Cr(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Mh(t,P,bn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Dh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=cc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Cr(Le),ke.resolving=!1,Gd()}}return Q}function Da(t,s,h){return!!(h[s+(t>>Dl)]&1<{const s=t.prototype.constructor,h=s[nr]||ld(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[nr]||ld(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function ld(t){return At(t)?()=>{const s=ld(Mt(t));return s&&s()}:Er(t)}function cd(t){const s=t[pi],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function th(t){return function qd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new bo;static create(h,P){if(Array.isArray(h))return Tp({name:""},P,h,"");{const Q=h.name??"";return Tp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(ya)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function dd(t){return t.ngOriginalError}class Za{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&dd(s);for(;h&&dd(h);)h=dd(h);return h||null}}const ou=new $e("",{providedIn:"root",factory:()=>Qi(Za).handleError.bind(void 0)});let yc=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=tg;static#t=this.__NG_ENV_ID__=h=>h}return t})();class au extends yc{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[No])return;const h=t[No].indexOf(s);-1!==h&&t[No].splice(h,1)}(this._lView,s)}}function tg(){return new au(ni())}function lu(t,s){return oe(t,s)}const Dp=(lu.required=function cu(t){return oe(Se,t)},lu);function bm(){return xc(hs(),ni())}function xc(t,s){return new hu($r(t,s))}let hu=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=bm}return t})();function du(t){return t instanceof hu?t.nativeElement:t}function Go(t){return s=>{setTimeout(t,void 0,s)}}const aa=class ng extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,na()&&(this.destroyRef=Qi(yc,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=Go(ge),Q&&(Q=Go(Q)),ke&&(ke=Go(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function uu(){return this._results[Symbol.iterator]()}class Nh{static#e=Symbol.iterator;get changes(){return this._changes??=new aa}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=Nh.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=uu)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function sr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Poh}),oh="ng",fu=new $e(""),jh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),fd=new $e(""),Kl=new $e("",{providedIn:"root",factory:()=>Ho().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const qi=new $e("",{providedIn:"root",factory:()=>!1});let tn,cr;function nn(t){return function Cn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function co(){if(void 0===cr&&(cr=null,Ze.trustedTypes))try{cr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return cr}function Uo(t){return co()?.createHTML(t)||t}function Aa(t){return co()?.createScriptURL(t)||t}class Sr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class la extends Sr{getTypeName(){return"HTML"}}class gu extends Sr{getTypeName(){return"Style"}}class rg extends Sr{getTypeName(){return"Script"}}class og extends Sr{getTypeName(){return"URL"}}class Ip extends Sr{getTypeName(){return"ResourceURL"}}function Al(t){return t instanceof Sr?t.changingThisBreaksApplicationSecurity:t}function lh(t,s){const h=function ag(t){return t instanceof Sr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function lg(t){return new la(t)}function ix(t){return new gu(t)}function nx(t){return new rg(t)}function sx(t){return new og(t)}function rx(t){return new Ip(t)}function ib(t){const s=new ax(t);return function lx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new ox(s):s}class ox{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class ax{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const cx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function cg(t){return(t=String(t)).match(cx)?t:"unsafe:"+t}function Cc(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function Op(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const nb=Cc("area,br,col,hr,img,wbr"),sb=Cc("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rb=Cc("rp,rt"),vm=Op(nb,Op(sb,Cc("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Op(rb,Cc("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Op(rb,sb)),ym=Cc("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),ob=Op(ym,Cc("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Cc("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),hx=Cc("script,style,template");class dx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=ch(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=px(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=ab(s).toLowerCase();if(!vm.hasOwnProperty(h))return this.sanitizedSomething=!0,!hx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=ab(s).toLowerCase();vm.hasOwnProperty(h)&&!nb.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(fx(s))}}function px(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw xm(s);return s}function ch(t){const s=t.firstChild;if(s&&function ux(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw xm(s);return s}function ab(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function xm(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const hh=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ow=/([^\#-~ |!])/g;function fx(t){return t.replace(/&/g,"&").replace(hh,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Ow,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let hg;function lb(t,s){let h=null;try{hg=hg||ib(t);let P=s?String(s):"";h=hg.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=hg.getInertBodyElement(P)}while(P!==ge);return nn((new dx).sanitizeChildren(_m(h)||h))}finally{if(h){const P=_m(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function _m(t){return"content"in t&&function gx(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var dh=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(dh||{});function cb(t){const s=gd();return s?Uo(s.sanitize(dh.HTML,t)||""):lh(t,"HTML")?Uo(Al(t)):lb(Ho(),Ki(t))}function Pp(t){const s=gd();return s?s.sanitize(dh.URL,t)||"":lh(t,"URL")?Al(t):cg(Ki(t))}function dg(t){const s=gd();if(s)return Aa(s.sanitize(dh.RESOURCE_URL,t)||"");if(lh(t,"ResourceURL"))return Aa(Al(t));throw new me(904,!1)}function To(t,s,h){return function hb(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?dg:Pp}(s,h)(t)}function gd(){const t=ni();return t&&t[_o].sanitizer}const ug=/^>|^->||--!>|)/g,vx="\u200b$1\u200b";const md=new Map;let _x=0;const Lp="__ngContext__";function Nr(t,s){mr(s)?(t[Lp]=s[rc],function wx(t){md.set(t[rc],t)}(s)):t[Lp]=s}function bg(t){return t.ownerDocument.defaultView}function Ix(t){return t.ownerDocument}function ha(t){return t instanceof Function?t():t}var yg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(yg||{});let Dm;function Em(t,s){return Dm(t,s)}function jp(t,s,h,P,Q){if(null!=P){let ge,ke=!1;Vs(P)?ge=P:mr(P)&&(ke=!0,P=P[Gn]);const Le=Ts(P);0===t&&null!==h?null==Q?Bx(s,h,Le):_u(s,h,Le,Q||null,!0):1===t&&null!==h?_u(s,h,Le,Q||null,!0):2===t?function vd(t,s,h){const P=zp(t,s);P&&function Om(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function Hp(t,s,h,P,Q){const ge=h[Fo];ge!==Ts(h)&&jp(s,t,P,ge,Q);for(let Le=js;Les.replace(pg,vx))}(s))}function Am(t,s,h){return t.createElement(s,h)}function zh(t,s){s[_o].changeDetectionScheduler?.notify(1),Nm(t,s,s[en],2,null,null)}function Sb(t,s){const h=t[yl],P=h.indexOf(s);h.splice(P,1)}function Vp(t,s){if(t.length<=js)return;const h=js+s,P=t[h];if(P){const Q=P[Ta];null!==Q&&Q!==t&&Sb(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=ba(t,js+s);!function Rw(t,s){zh(t,s),s[Gn]=null,s[ks]=null}(P[pi],P);const ke=ge[Co];null!==ke&&ke.detachView(ge[pi]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function xg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&Nm(t,s,h,3,null,null),function Tb(t){let s=t[Ro];if(!s)return Im(t[pi],t);for(;s;){let h=null;if(mr(s))h=s[Ro];else{const P=s[js];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)mr(s)&&Im(s[pi],s),s=s[Yn];null===s&&(s=t),mr(s)&&Im(s[pi],s),h=s&&s[gs]}s=h}}(s)}}function Im(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[wa]=null);const Q=s[No];if(null!==Q){s[No]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Oo.None||ge===Oo.Emulated)return null}return $r(P,h)}}function _u(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function Bx(t,s,h){t.appendChild(s,h)}function jx(t,s,h,P,Q){null!==P?_u(t,s,h,P,Q):Bx(t,s,h)}function zp(t,s){return t.parentNode(s)}function Gp(t,s,h){return _g(t,s,h)}function Vx(t,s,h){return 40&t.type?$r(t,h):null}let Mb,_g=Vx;function Pm(t,s){_g=t,Mb=s}function Lm(t,s,h,P){const Q=kb(t,P,s),ge=s[en],Le=Gp(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zesn&&Ab(t,s,sn,!1),Bo(ke?2:0,Q),h(P,Q)}finally{uc(ge),Bo(ke?3:1,Q)}}function Pb(t,s,h){if(Gl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function Yx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Zi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Kx(P,h,Je,Le,ze):Kx(P,h,Je,Le)}return P}function Kx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=$r(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?(Wm(t,h,dt,P,Q),sa(s)&&function Hw(t,s){const h=jo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function Gw(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Mg(t,s,h,P){if(hc()){const Q=null===P?null:{"":-1},ge=function $w(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,Tg(t,h,Q.hostVars,In),Q)}function Tc(t,s,h,P,Q,ge){const ke=$r(t,s);!function Gm(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function ys(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{Ch(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function $b(t){return Yb(t[Ro])}function Xb(t){return Yb(t[gs])}function Yb(t){for(;null!==t&&!Vs(t);)t=t[gs];return t}const Kb=100;function ef(t,s=!0,h=0){const P=t[_o],Q=P.rendererFactory;Q.begin?.();try{!function o_(t,s){Ag(t,s);let h=0;for(;Gc(t);){if(h===Kb)throw new me(103,!1);h++,Ag(t,1)}}(t,h)}catch(ke){throw s&&Zp(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function a_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[_o].inlineEffectRunner?.flush(),Vd(s);let ke=null,Le=null;(function l_(t){return 2!==t.type})(t)&&(Le=function t_(t){return t[Ua]??function i_(t){const s=Ym.pop()??Object.create(Wb);return s.lView=t,s}(t)}(s),ke=L(Le));try{ap(s),function dc(t){return on.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&Ux(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&od(s,Ct,0,null),Eh(s,0)}if(function c_(t){for(let s=$b(t);null!==s;s=Xb(s)){if(!(s[zi]&lc.HasTransplantedViews))continue;const h=s[yl];for(let P=0;P-1&&(Vp(s,P),ba(h,P))}this._attachedToViewContainer=!1}xg(this._lView[pi],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){tf(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){_h(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,ef(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,zh(this._lView[pi],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,_h(this._lView)}}let Mu=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=p_}return t})();const d_=Mu,u_=class extends d_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=qp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new nf(Q)}};function p_(){return Ig(hs(),ni())}function Ig(t,s){return 4&t.type?new u_(s,t,xc(t,s)):null}let qm=()=>null;function gh(t,s){return qm(t,s)}class Au{}class P_{}class af{}class L_{resolveComponentFactory(s){throw function Iu(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let lf=(()=>{class t{static#e=this.NULL=new L_}return t})();class Qm{}let R_=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function cv(){const t=ni(),h=jo(hs().index,t);return(mr(h)?h:t)[en]}()}return t})(),hv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Rg={};function dv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const Jm=new Set;function Sc(t){Jm.has(t)||(Jm.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function cf(...t){}class kr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new aa(!1),this.onMicrotaskEmpty=new aa(!1),this.onStable=new aa(!1),this.onError=new aa(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function uv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function j_(t){const s=()=>{!function B_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,wd(t),t.isCheckStableRunning=!0,e0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),wd(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function s0(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return t0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),n0(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return t0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),n0(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,wd(t),e0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(kr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,F_,cf,cf);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const F_={};function e0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function wd(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function t0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function n0(t){t._nesting--,e0(t)}class V_{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new aa,this.onMicrotaskEmpty=new aa,this.onStable=new aa,this.onError=new aa}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Wh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Wh||{});const r0={destroy(){}};function Fg(t,s){!s&&Ge();const h=s?.injector??Qi(zo);if(!function bd(t){return"browser"===(t??Qi(zo)).get(jh)}(h))return r0;Sc("NgAfterNextRender");const P=h.get(Bg),Q=P.handler??=new fv,ge=s?.phase??Wh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(yc).onDestroy(ke),ze=Ha(h,()=>new a0(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class a0{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=Qi(kr),this.errorHandler=Qi(Za,{optional:!0}),Qi(Au,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class fv{constructor(){this.executingCallbacks=!1,this.buckets={[Wh.EarlyRead]:new Set,[Wh.Write]:new Set,[Wh.MixedReadWrite]:new Set,[Wh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let Bg=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function Td(t){return!!Zs(t)}function $h(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Gx(t,h,ge.join(" "))}}(Ht,Mo,li,P),void 0!==h&&function U_(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=W_}return t})();function W_(){return yv(hs(),ni())}const $_=zg,bv=class extends $_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return xc(this._hostTNode,this._hostLView)}get injector(){return new ar(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zd(this._hostTNode,this._hostLView);if(qc(s)){const h=fc(s,this._hostLView),P=br(s);return new ar(h[pi].data[P+8],h)}return new ar(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=vv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-js}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=gh(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,ku(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Oi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new kd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(xo,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=gh(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,ku(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Hf(t){return Vs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new bv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Qp(ke,Q,ge,P),s.attachToViewContainerRef(),Zo(d0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=vv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);P&&(ba(d0(this._lContainer),h),xg(P[pi],P))}detach(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);return P&&null!=ba(d0(this._lContainer),h)?new nf(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function vv(t){return t[8]}function d0(t){return t[8]||(t[8]=[])}function yv(t,s){let h;const P=s[t.index];return Vs(P)?h=P:(h=Tu(P,s,null,t),s[t.index]=h,Eg(s,h)),Hg(h,s,t,P),new bv(h,t,s)}let Hg=function Cv(t,s,h,P){if(t[Fo])return;let Q;Q=8&h.type?Ts(P):function Gg(t,s){const h=t[en],P=h.createComment(""),Q=$r(s,t);return _u(h,zp(h,Q),P,function jw(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Fo]=Q},xv=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=js;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=o1.bind(h),h}function o1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function a1(t){return function s1(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function zv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Wr(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=y0(t.inputs),ke.inputTransforms=y0(t.inputTransforms),ke.declaredInputs=y0(t.declaredInputs),ke.outputs=y0(t.outputs);const Le=Q.hostBindings;Le&&ff(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&y1(t,ze),Je&&bT(t,Je),b1(t,Q),kt(t.outputs,Q.outputs),Wr(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function b1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function y0(t){return t===Ys?{}:t===Mn?[]:t}function y1(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function bT(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function ff(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function Gv(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Mt(Q),inputs:Ys,outputs:Ys}:{directive:Mt(Q.directive),inputs:Hv(Q.inputs),outputs:Hv(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=x1,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function x1(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);_T(Q.declaredInputs,P.inputs),x1(Q,s,h),h.set(Q,P),s.push(Q)}}function Hv(t){if(void 0===t||0===t.length)return Ys;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Uv extends w1{constructor(s){super(),this.moduleType=s}create(s){return new x0(this.moduleType,s,[])}}class S1 extends Dd{constructor(s){super(),this.componentFactoryResolver=new df(this),this.instance=null;const h=new _a([...s.providers,{provide:Dd,useValue:this},{provide:lf,useValue:this.componentFactoryResolver}],s.parent||yo(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function _0(t,s,h=null){return new S1({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let gf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $g(t){return!!Wv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Wv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function mh(t,s,h){return t[s]=h}function mf(t,s){return t[s]}function Fr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Ed(t,s,h,P){const Q=Fr(t,s,h);return Fr(t,s+1,P)||Q}function C0(t,s,h,P,Q){const ge=Ed(t,s,h,P);return Fr(t,s+2,Q)||ge}function Ql(t,s,h,P,Q,ge){const ke=Ed(t,s,h,P);return Ed(t,s+2,Q,ge)||ke}function bf(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=xn(),dt=t+sn,Ct=Je.firstCreatePass?function k1(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Wp(s,t,4,ke||null,$a(Je,Le));Mg(s,h,dt,$a(Je,ze)),Yc(s,dt);const Ct=dt.tView=Rb(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];oa(Ct,!1);const jt=$v(Je,ze,Ct,t);Xc()&&Lm(Je,ze,jt,Ct),Nr(jt,ze);const Ht=Tu(jt,ze,jt,Ct);return ze[dt]=Ht,Eg(ze,Ht),function _v(t,s,h){return xv(t,s,h)}(Ht,Ct,ze),xl(Ct)&&Lb(Je,ze,Ct),null!=ke&&Sg(ze,Ct,Le),bf}let $v=function M1(t,s,h,P){return Vo(!0),s[en].createComment("")};function ay(t,s,h,P){const Q=ni();return Fr(Q,ka(),s)&&(xn(),Tc(Os(),Q,t,s,h,P)),ay}function Tf(t,s,h,P){return Fr(t,ka(),h)?s+Ki(h)+P:In}function D0(t,s){return t<<17|s<<2}function Id(t){return t>>17&32767}function py(t){return 2|t}function Hu(t){return(131068&t)>>2}function E0(t,s){return-131069&t|s<<2}function fy(t){return 1|t}function eC(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Id(Q):Hu(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];sS(t[ke],s)&&(Le=!0,t[ke+1]=P?fy(Je):py(Je)),ke=P?Id(Je):Hu(Je)}Le&&(t[h+1]=P?py(Q):fy(Q))}function sS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Hr(t,s)>=0}const po={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function tC(t){return t.substring(po.key,po.keyEnd)}function rS(t){return t.substring(po.value,po.valueEnd)}function iC(t,s){const h=po.textEnd;return h===s?-1:(s=po.keyEnd=function lS(t,s,h){for(;s32;)s++;return s}(t,po.key=s,h),Mf(t,s,h))}function nC(t,s){const h=po.textEnd;let P=po.key=Mf(t,s,h);return h===P?-1:(P=po.keyEnd=function cS(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=gy(t,P,h),P=po.value=Mf(t,P,h),P=po.valueEnd=function hS(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),gy(t,P,h))}function sC(t){po.key=0,po.keyEnd=0,po.value=0,po.valueEnd=0,po.textEnd=t.length}function Mf(t,s,h){for(;s=0;h=nC(s,h))xy(t,tC(s),rS(s))}function by(t){el(_y,Dc,t,!0)}function Dc(t,s){for(let h=function oS(t){return sC(t),iC(t,Mf(t,0,po.textEnd))}(s);h>=0;h=iC(s,h))Xs(t,tC(s),!0)}function Pl(t,s,h,P){const Q=ni(),ge=xn(),ke=kl(2);ge.firstUpdatePass&&Uu(ge,t,ke,P),s!==In&&Fr(Q,ke,s)&&I0(ge,ge.data[Xr()],Q,Q[en],t,Q[ke+1]=function wy(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(Al(t)))),t}(s,h),P,ke)}function el(t,s,h,P){const Q=xn(),ge=kl(2);Q.firstUpdatePass&&Uu(Q,null,ge,P);const ke=ni();if(h!==In&&Fr(ke,ge,h)){const Le=Q.data[Xr()];if(oC(Le,P)&&!Od(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Mc(Q,Le,ke,h,P)}else!function uS(t,s,h,P,Q,ge,ke,Le){Q===In&&(Q=Mn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function Uu(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Xr()],ke=Od(t,h);oC(ge,P)&&null===s&&!ke&&(s=!1),s=function wn(t,s,h,P){const Q=kh(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Wu(h=Jg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Jg(Q,t,s,h,P),null===ge){let ze=function vy(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Hu(P))return t[Id(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Jg(null,t,s,ze[1],P),ze=Wu(ze,s.attrs,P),function Df(t,s,h,P){t[Id(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function A0(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Id(t[Le+1]);t[P+1]=D0(jt,Le),0!==jt&&(t[jt+1]=E0(t[jt+1],P)),t[Le+1]=function tS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=D0(Le,0),0!==Le&&(t[Le+1]=E0(t[Le+1],P)),Le=P;else t[P+1]=D0(ze,0),0===Le?Le=P:t[ze+1]=E0(t[ze+1],P),ze=P;Je&&(t[P+1]=py(t[P+1])),eC(t,dt,P,!0),eC(t,dt,P,!1),function nS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Hr(ge,s)>=0&&(h[P+1]=fy(h[P+1]))}(s,dt,t,P,ge),ke=D0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Jg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===In&&(jt=Ct?Mn:void 0);let Ht=Ct?to(jt,P):dt===P?jt:void 0;if(Je&&!O0(Ht)&&(Ht=to(ze,P)),O0(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Id(Kt):Hu(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=to(ze,P))}return Le}function O0(t){return void 0!==t}function oC(t,s){return!!(t.flags&(s?8:16))}function aC(t,s,h){el(Xs,Dc,Tf(ni(),t,s,h),!0)}class L0{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function em(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function Pd(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Ec(t,s,h,P,Q){if(Pd(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function tm(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class R0{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Af(t,s,h){Sc("NgControlFlow");const P=ni(),Q=ka(),ge=B0(P,sn+t);if(Fr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=Of(P[pi],sn+s),Je=gh(ge,ze.tView.ssrId);Qp(ge,qp(P,ze,h,{dehydratedView:Je}),0,ku(ze,Je))}}finally{re(Le)}}else{const Le=Hb(ge,0);void 0!==Le&&(Le[ms]=h)}}class lC{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-js}}function If(t,s){return s}class cC{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function N0(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Sc("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new cC(Ht,li);Kt[sn+t]=bi,bf(t+1,s,h,P,Q,ge),Ht&&bf(t+2,ze,Je,dt,Ct,jt)}class hC extends L0{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-js}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[or];this.needsIndexUpdate||=s!==this.length,Qp(this.lContainer,h,s,ku(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function dC(t,s){return Vp(t,s)}(this.lContainer,s)}create(s,h){const P=gh(this.lContainer,this.templateTNode.tView.ssrId);return qp(this.hostLView,this.templateTNode,new lC(this.lContainer,h,s),{dehydratedView:P})}destroy(s){xg(s[pi],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=ka(),ze=0===ke.length;if(Fr(P,Le,ze)){const Je=h+2,dt=B0(P,Je);if(ze){const Ct=Of(Q,Je),jt=gh(dt,Ct.tView.ssrId);Qp(dt,qp(P,Ct,void 0,{dehydratedView:jt}),0,ku(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function B0(t,s){return t[s]}function Of(t,s){return xh(t,s)}function Xu(t,s,h,P){const Q=ni(),ge=xn(),ke=sn+t,Le=Q[en],ze=ge.firstCreatePass?function Dy(t,s,h,P,Q,ge){const ke=s.consts,ze=Wp(s,t,2,P,$a(ke,Q));return Mg(s,h,ze,$a(ke,ge)),null!==ze.attrs&&$h(ze,ze.attrs,!1),null!==ze.mergedAttrs&&$h(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=V0(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=xl(ze);return oa(ze,!0),Gh(Le,Je,ze),!function Xg(t){return!(32&~t.flags)}(ze)&&Xc()&&Lm(ge,Q,Je,ze),0===function Tl(){return on.lFrame.elementDepthCount}()&&Nr(Je,Q),function id(){on.lFrame.elementDepthCount++}(),dt&&(Lb(ge,Q,ze),Pb(ge,ze,Q)),null!==P&&Sg(Q,ze),Xu}function im(){let t=hs();Bd()?jd():(t=t.parent,oa(t,!1));const s=t;(function Fd(t){return on.skipHydrationRootTNode===t})(s)&&function pp(){on.skipHydrationRootTNode=null}(),function Wf(){on.lFrame.elementDepthCount--}();const h=xn();return h.firstCreatePass&&(Yc(h,t),Gl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function $d(t){return!!(8&t.flags)}(s)&&Mc(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Ih(t){return!!(16&t.flags)}(s)&&Mc(h,s,ni(),s.stylesWithoutHost,!1),im}function j0(t,s,h,P){return Xu(t,s,h,P),im(),j0}let V0=(t,s,h,P,Q,ge)=>(Vo(!0),Am(P,Q,function Ud(){return on.lFrame.currentNamespace}()));function Pf(t,s,h){const P=ni(),Q=xn(),ge=t+sn,ke=Q.firstCreatePass?function uC(t,s,h,P,Q){const ge=s.consts,ke=$a(ge,P),Le=Wp(s,t,8,"ng-container",ke);return null!==ke&&$h(Le,ke,!0),Mg(s,h,Le,$a(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];oa(ke,!0);const Le=Ay(Q,P,ke,t);return P[ge]=Le,Xc()&&Lm(Q,P,Le,ke),Nr(Le,P),xl(ke)&&(Lb(Q,P,ke),Pb(Q,ke,P)),null!=h&&Sg(P,ke),Pf}function nm(){let t=hs();const s=xn();return Bd()?jd():(t=t.parent,oa(t,!1)),s.firstCreatePass&&(Yc(s,t),Gl(t)&&s.queries.elementEnd(t)),nm}function Ey(t,s,h){return Pf(t,s,h),nm(),Ey}let Ay=(t,s,h,P)=>(Vo(!0),wb(s[en],""));function pC(){return ni()}function Iy(t,s,h){const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!0),Iy}function Oy(t,s,h){const P=ni();if(Fr(P,ka(),s)){const ge=xn(),ke=Os();Qa(ge,ke,P,t,s,Um(kh(ge.data),ke,P),h,!0)}return Oy}const Yu=void 0;var CS=["en",[["a","p"],["AM","PM"],Yu],[["AM","PM"],Yu,Yu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yu,"{1} 'at' {0}",Yu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function _S(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let Ku={};function z0(t){const s=function TS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=gC(s);if(h)return h;const P=s.split("-")[0];if(h=gC(P),h)return h;if("en"===P)return CS;throw new me(701,!1)}function fC(t){return z0(t)[Lf.PluralCase]}function gC(t){return t in Ku||(Ku[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),Ku[t]}var Lf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Lf||{});const Rf="en-US",G0={marker:"element"},H0={marker:"ICU"};var da=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(da||{});let mC=Rf;function vC(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?Vx(t,0,h):Ts(h[Q])}function Py(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];xC(P)||ES(P,s)&&null===AS(P)&&_C(P,s.index)}}function xC(t){return!(64&t.type)}function ES(t,s){return xC(s)||t.index>s.index}function AS(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function _C(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Pm(vC,Py),t.insertBeforeIndex=s)}function CC(t,s,h){const P=Ob(t,h,64,null,null);return yC(s,P),P}let Nf=(t,s,h,P)=>(Vo(!0),function Ly(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return wb(P,s);case Node.TEXT_NODE:return Cb(P,s);case Node.ELEMENT_NODE:return Am(P,s,null)}}(t,h,P));function FS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function U0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Mn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[pi].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const X0=/\ufffd(\d+):?\d*\ufffd/gi,jS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,am="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,LC=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,VS=/\uE500/g;function Fy(t,s,h,P,Q,ge,ke){const Le=Tg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function Y0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(jC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function VC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=ib(Ho()).getInertBodyElement(Le),Kt=_m(Ht)||Ht;return Kt?jy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function jy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=Tg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(vm.hasOwnProperty(bi)){K0(ge,G0,bi,Je,Kt),s.data[Kt]=bi;const xs=li.attributes;for(let Mo=0;Mo>>da.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=Nf(t,dt,s[ge],(ke&da.COMMENT)===da.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Xc()),Je&&null!==h&&jt&&_u(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),mp(!0)}function ce(t,s,h){m(t,s,h),function W(){mp(!1)}()}function gt(t,s,h,P){const Q=ni(),ge=xn(),ke=hs();return Ut(ge,Q,Q[en],ke,t,s,P),gt}function Ut(t,s,h,P,Q,ge,ke){const Le=xl(P),Je=t.firstCreatePass&&Vb(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=$r(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?xs=>ke(Ts(xs[P.index])):P.index;let yn=null;if(!ke&&Le&&(yn=function Pt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==yn)(yn.__ngLastListenerFn__||yn).__ngNextListenerFn__=ge,yn.__ngLastListenerFn__=ge,jt=!1;else{ge=hi(P,s,dt,ge,!1);const xs=h.listen(bi,Q,ge);Ct.push(ge,xs),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=hi(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?jo(t.index,s):s);let ze=Zt(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=Zt(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function di(t=1){return function Yf(t){return(on.lFrame.contextLView=function cp(t,s){for(;t>0;)s=s[bs],t--;return s}(t,on.lFrame.contextLView))[ms]}(t)}function wi(t,s){let h=null;const P=function Pr(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Vo(!0),Cb(s[en],P));function ZC(t){return Gy("",t,""),ZC}function Gy(t,s,h){const P=ni(),Q=Tf(P,t,s,h);return Q!==In&&fh(P,Xr(),Q),Gy}function qC(t,s,h,P,Q){const ge=ni(),ke=function Bu(t,s,h,P,Q,ge){const Le=Ed(t,Sl(),h,Q);return kl(2),Le?s+Ki(h)+P+Ki(Q)+ge:In}(ge,t,s,h,P,Q);return ke!==In&&fh(ge,Xr(),ke),qC}function QC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function ju(t,s,h,P,Q,ge,ke,Le){const Je=C0(t,Sl(),h,Q,ke);return kl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:In}(Le,t,s,h,P,Q,ge,ke);return ze!==In&&fh(Le,Xr(),ze),QC}function JC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Vu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=Ql(t,Sl(),h,Q,ke,ze);return kl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:In}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==In&&fh(Je,Xr(),dt),JC}function ew(t,s,h){a1(s)&&(s=s());const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!1),ew}function QS(t,s){const h=a1(t);return h&&t.set(s),h}function tw(t,s){const h=ni(),P=xn(),Q=hs();return Ut(P,h,h[en],Q,t,s),tw}function iw(t,s,h,P,Q){if(t=Mt(t),Array.isArray(t))for(let ge=0;ge>20;if(Lo(t)||!t.multi){const Ht=new Kc(Je,Q,Cu),Kt=sw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Ph(Jc(Le,ke),ge,ze),nw(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=sw(ze,s,dt+jt,Ct),Kt=sw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Ph(Jc(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new Kc(t,h,Cu);return ge.multi=[],ge.index=s,ge.componentProviders=0,JS(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),nw(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else nw(ge,t,Ht>-1?Ht:Kt,JS(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function nw(t,s,h,P){const Q=Lo(s),ge=function xa(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Mt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function JS(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function sw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=xn();if(P.firstCreatePass){const Q=Wr(t);iw(h,P.data,P.blueprint,Q,!0),iw(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=fl(0,h.type),Q=P.length>0?_0([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(xo))})}return t})();function tk(t){Sc("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function hk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===In?mh(Q,P,h?s.call(h):s()):mf(Q,P)}function dk(t,s,h,P){return yk(ni(),oo(),t,s,h,P)}function uk(t,s,h,P,Q){return xk(ni(),oo(),t,s,h,P,Q)}function pk(t,s,h,P,Q,ge){return function _k(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return C0(t,ze,Q,ge,ke)?mh(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):Z0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function fk(t,s,h,P,Q,ge,ke){return function Ck(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return Ql(t,Je,Q,ge,ke,Le)?mh(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):Z0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function gk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=Ql(Je,ze,h,P,Q,ge);return Fr(Je,ze+4,ke)||dt?mh(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):mf(Je,ze+5)}function mk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=Ql(dt,Je,h,P,Q,ge);return Ed(dt,Je+4,ke,Le)||Ct?mh(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):mf(dt,Je+6)}function bk(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=Ql(Ct,dt,h,P,Q,ge);return C0(Ct,dt+4,ke,Le,ze)||jt?mh(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):mf(Ct,dt+7)}function vk(t,s,h,P){return function wk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Er(P.type)),Le=Gs(Cu);try{const ze=Cr(!1),Je=ge();return Cr(ze),function Wn(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Sk(t,s,h){const P=t+sn,Q=ni(),ge=Vc(Q,P);return q0(Q,P)?yk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function kk(t,s,h,P){const Q=t+sn,ge=ni(),ke=Vc(ge,Q);return q0(ge,Q)?xk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function q0(t,s){return t[pi].data[s].pure}function Mk(t,s){return Ig(t,s)}class Hk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Uk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Kk=new $e(""),Zk=new $e("");let uw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,uw||(function OE(t){uw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(kr),Is(qk),Is(Zk))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),qk=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return uw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pw(t){return!!t&&"function"==typeof t.then}function Qk(t){return!!t&&"function"==typeof t.subscribe}const Jk=new $e("");let fw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=Qi(Jk,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(pw(ge))h.push(ge);else if(Qk(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const gw=new $e("");function iM(t,s){return Array.isArray(s)?s.reduce(iM,t):{...t,...s}}let qu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qi(ou),this.afterRenderEffectManager=Qi(Bg),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=Qi(gf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=Qi(xo)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof af;if(!this._injector.get(fw).done)throw!Q&&vo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(lf).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Dd),Je=ke.create(zo.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Kk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),$y(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Kb)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;$y(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(gw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>$y(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $y(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!mw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,ef(t,s,P)}(t,h,s)}function mw(t){return Gc(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Uv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=ha(Zs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new kd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=Qi(kr),this.applicationRef=Qi(qu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=Qi(kr),s=Qi(Za);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=Qi(kr),this.pendingTasks=Qi(gf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yy=new $e("",{providedIn:"root",factory:()=>Qi(Yy,bn.Optional|bn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Rf}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),bw=new $e("");let oM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function pv(t="zone.js",s){return"noop"===t?new V_:"zone.js"===t?new kr(s):t}(P?.ngZone,function rM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function CT(t,s,h){return new x0(t,s,h)}(h.moduleType,this.injector,function sM(t){return[{provide:kr,useFactory:t},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(UE);return()=>{s.initialize()}}},{provide:ou,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Za,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{$y(this._modules,ge),Le.unsubscribe()})}),function tM(t,s,h){try{const P=h();return pw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(fw);return Le.runInitializers(),Le.donePromise.then(()=>(function bC(t){"string"==typeof t&&(mC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(Yy,Rf)||Rf),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=iM({},P);return function VE(t,s,h){const P=new Uv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(qu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(bw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zo))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Qu=null;const aM=new $e("");function lM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=vw();if(!ke||ke.injector.get(aM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Qu&&!Qu.get(aM,!1))throw new me(400,!1);(function eM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Qu=t;const s=t.get(oM);(function hM(t){t.get(fu,null)?.forEach(h=>h())})(t)}(function cM(t=[],s){return zo.create({name:s,providers:[{provide:Ns,useValue:"platform"},{provide:bw,useValue:new Set([()=>Qu=null])},...t]})}(Le,P))}return function KE(t){const s=vw();if(!s)throw new me(401,!1);return s}()}}function vw(){return Qu?.get(oM)??null}function qE(){}let uM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(sa(t)&&!h){const P=jo(t.index,s);return new nf(P,P)}return 47&t.type?new nf(s[Kn],s):null}(hs(),ni(),!(16&~t))}class mM{constructor(){}supports(s){return $g(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new bM),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new bM),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class bM{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function vM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function xM(){return new ww([new mM])}let ww=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:xM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||xM()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function _M(){return new Tw([new yM])}let Tw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:_M});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||_M()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=lM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(qu))};static#t=this.\u0275mod=Fl({type:t});static#i=this.\u0275inj=kn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Sc("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>Qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qi(gf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Za,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function HM(t,s){Sc("NgSignals"),!s?.injector&&Ge();const h=s?.injector??Qi(zo),P=!0!==s?.manualCleanup?h.get(yc):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(uM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[bl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||yo();return new kd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new kd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Er,X1:()=>ja,YN:()=>Qo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>bo,qT:()=>Jl,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(vn){return Bt.onChange(vn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt._handleInput(vn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(vn){return Bt._compositionEnd(vn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Jt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Mt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class ui extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends ui{}const Fn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function zn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function ws(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function Cs(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Di(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Di(ct._rawValidators,Bt),Di(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Di(ct._rawValidators,vt),Di(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const rs=class extends Jt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const Vr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,vn,no){super(),this._changeDetectorRef=vn,this.callSetDisabledState=no,this.control=new rs,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){zn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([Vr]),M.Vt3,M.OA$]})}return ot})(),Jl=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const pr={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt.onChange(vn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([pr]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),rl={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return zn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof rs)(Bt)&&(zn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function kn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function jr(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(vn){return Bt.onSubmit(vn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([rl]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ol={provide:x,useExisting:(0,M.Rfq)(()=>ua)};let ua=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ol]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof ua)}const go={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,vn){super(),this._ngModelWarningConfig=vn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([go]),M.Vt3,M.OA$]})}return ot})();let er=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const cl={provide:F,useExisting:(0,M.Rfq)(()=>Er),multi:!0};let Er=(()=>{class ot extends er{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Eo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([cl]),M.Vt3]})}return ot})(),Ys=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Mn extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let bo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new ui(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new rs(Ye,{...Vi,nonNullable:!0})):new rs(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(vn=>this._createControl(vn));return new Mn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof rs||Ye instanceof Jt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Qo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Mt){return new URL(Mt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Mt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const fe=new M.nKC("");let pe=(()=>{class Mt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Jt=>{Jt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Jt){return this._findPluginFor(wt).addEventListener(_t,wt,Jt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(ui=>ui.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Mt{constructor(_t,wt,Jt,ui={}){this.doc=_t,this.appId=wt,this.nonce=Jt,this.platformId=ui,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(ui),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Jt=>Jt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Jt=>{null!=Jt.textContent&&wt.set(Jt.textContent,Jt)}),wt}return null}changeUsageCount(_t,wt){const Jt=this.styleRef;if(Jt.has(_t)){const ui=Jt.get(_t);return ui.usage+=wt,ui.usage}return Jt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Jt=this.styleNodesInDOM,ui=Jt?.get(wt);if(ui?.parentNode===_t)return Jt.delete(wt),ui.removeAttribute(te),ui;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Jt=this.getStyleElement(_t,wt),ui=this.styleRef,Fi=ui.get(wt)?.elements;Fi?Fi.push(Jt):ui.set(wt,{elements:[Jt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Mt,At){return At.map(_t=>_t.replace(B,Mt))}let z=(()=>{class Mt{constructor(_t,wt,Jt,ui,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Jt,this.removeStylesOnCompDestroy=ui,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Jt=this.getOrCreateRenderer(_t,wt);return Jt instanceof n?Jt.applyToHost(_t):Jt instanceof o&&Jt.applyStyles(),Jt}getOrCreateRenderer(_t,wt){const Jt=this.rendererByCompId;let ui=Jt.get(wt.id);if(!ui){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,_s=this.removeStylesOnCompDestroy,Fn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:ui=new n(vi,Gi,wt,this.appId,_s,Fi,mi,Fn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,Fn);default:ui=new o(vi,Gi,wt,_s,Fi,mi,Fn)}Jt.set(wt.id,ui)}return ui}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class O{constructor(At,_t,wt,Jt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Jt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Jt){if(Jt){_t=Jt+":"+_t;const ui=A[Jt];ui?At.setAttributeNS(ui,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Jt=A[wt];Jt?At.removeAttributeNS(Jt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Jt){Jt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Jt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Mt){return"TEMPLATE"===Mt.tagName&&void 0!==Mt.content}class y extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Jt.id,Jt.styles);for(const _s of Gi){const Fn=document.createElement("style");mi&&Fn.setAttribute("nonce",mi),Fn.textContent=_s,this.shadowRoot.appendChild(Fn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Jt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){const Gi=Jt+"-"+wt.id;super(At,_t,wt,ui,Fi,mi,vi,Gi),this.contentAttr=function _(Mt){return D.replace(B,Mt)}(Gi),this.hostAttr=function b(Mt){return L.replace(B,Mt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Jt){return _t.addEventListener(wt,Jt,!1),()=>this.removeEventListener(_t,wt,Jt)}removeEventListener(_t,wt,Jt){return _t.removeEventListener(wt,Jt)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Mt=>Mt.altKey,control:Mt=>Mt.ctrlKey,meta:Mt=>Mt.metaKey,shift:Mt=>Mt.shiftKey};let k=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return null!=Mt.parseEventName(_t)}addEventListener(_t,wt,Jt){const ui=Mt.parseEventName(wt),Fi=Mt.eventCallback(ui.fullKey,Jt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,ui.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Jt=wt.shift();if(0===wt.length||"keydown"!==Jt&&"keyup"!==Jt)return null;const ui=Mt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const _s=wt.indexOf(Gi);_s>-1&&(wt.splice(_s,1),Fi+=Gi+".")}),Fi+=ui,0!=wt.length||0===ui.length)return null;const vi={};return vi.domEventName=Jt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Jt=d[_t.key]||_t.key,ui="";return wt.indexOf("code.")>-1&&(Jt=_t.code,ui="code."),!(null==Jt||!Jt)&&(Jt=Jt.toLowerCase()," "===Jt?Jt="space":"."===Jt&&(Jt="dot"),l.forEach(Fi=>{Fi!==Jt&&(0,C[Fi])(_t)&&(ui+=Fi+".")}),ui+=Jt,ui===wt)}static eventCallback(_t,wt,Jt){return ui=>{Mt.matchEventFullKeyCode(ui,_t)&&Jt.runGuarded(()=>wt(ui))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Jt=!0)=>{const ui=At.findTestabilityInTree(wt,Jt);if(null==ui)throw new M.wOt(5103,!1);return ui},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Jt=M.JZv.getAllAngularTestabilities();let ui=Jt.length;const Fi=function(){ui--,0==ui&&wt()};Jt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Mt{constructor(_t){}static withServerTransition(_t){return{ngModule:Mt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Mt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Mt})(),he=(()=>{class Mt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})(),Xe=(()=>{class Mt{static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:function(wt){let Jt=null;return Jt=wt?new(wt||Mt):M.KVO(Ze),Jt},providedIn:"root"})}return Mt})(),Ze=(()=>{class Mt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>go,wF:()=>un,Kp:()=>ms,b:()=>Oi,Ix:()=>pi,Wk:()=>gs,wQ:()=>ks,iI:()=>xl,n3:()=>Do});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new zn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function ui(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Mt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Mt(Re.path)}${function Jt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Mt(Ue)}=${Mt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,_s=/^[^=?&#]+/,ls=/^[^&#]+/;class zn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function Fn(Re){const Ue=Re.match(_s);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Di(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Di(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,ei]of Object.entries(mt.children))Ue[Ot]=ei;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function Cs(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Xt of mt.children){const Li=Be(Xt);Ot[Xt.outlet]=Li}const ei=new Me(mt.url,Ot);return mt===Re&&(Ue=ei),ei}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return kn(rt,rt,rt,Be,We);const mt=function qr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new fo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const ei={};return Object.entries(mt.outlets).forEach(([Xt,Li])=>{ei[Xt]="string"==typeof Li?Li.split("/"):Li}),[...rt,{outlets:ei}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((ei,Xt)=>{0==Xt&&"."===ei||(0==Xt&&""===ei?Be=!0:".."===ei?Ue++:""!=ei&&rt.push(ei))}),rt):[...rt,mt]},[]);return new fo(Be,Ue,We)}(Ue);if(mt.toRoot())return kn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new ir(Ue,!0,0);if(!Be)return new ir(Ue,!1,NaN);if(null===Be.parent)return new ir(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new ir(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),ei=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return kn(rt,Ot.segmentGroup,ei,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function ws(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function kn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Xt,Li])=>{mt[Xt]=Array.isArray(Li)?Li.map(pn=>`${pn}`):`${Li}`}),Ot=Re===Ue?Be:jr(Re,Ue,Be);const ei=dn(Di(Ot));return new _e(ei,mt,rt)}function jr(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:jr(mt,Ue,Be)}),new Me(Re.segments,We)}class fo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(ws);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ir{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],ei=Be[We];if(ws(ei))break;const Xt=`${ei}`,Li=We0&&void 0===Xt)break;if(Xt&&Li&&"object"==typeof Li&&void 0===Li.outlets){if(!si(Xt,Li,Ot))return mt;We+=2}else{if(!si(Xt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class rs extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class os extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Js extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class ns extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Qr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Vr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Jl{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class pr{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Jr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class bn{}class Ko{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new eo,this.attachRef=null}}let eo=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class sl{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=rl(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=rl(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function rl(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=rl(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ol extends sl{constructor(Ue,Be){super(Ue),this.snapshot=Be,fa(this,Ue)}toString(){return this.snapshot.toString()}}function ua(Re){const Ue=function Ra(Re){const mt=new pa([],{},{},"",{},w,Re,null,{});return new Dr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),ei=new go(Be,We,mt,Ot,rt,w,Re,Ue.root);return ei.snapshot=Ue.root,new ol(new Hs(ei,[]),Ue)}class go{constructor(Ue,Be,We,rt,mt,Ot,ei,Xt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=ei,this._futureSnapshot=Xt,this.title=this.dataSubject?.pipe((0,_.T)(Li=>Li[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&zr(rt)&&(We.resolve[X]=rt.title),We}class pa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,ei,Xt,Li){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=ei,this.routeConfig=Xt,this._resolve=Li}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Dr extends sl{constructor(Ue,Be){super(Be),this.url=Ue,fa(this,Be)}toString(){return Is(this._root)}}function fa(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>fa(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||Qi(Re.parent,Ue.parent))}function zr(Re){return"string"==typeof Re.title||null===Re.title}let Do=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(mo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,ei=this.parentContexts.getOrCreateContext(this.name).children,Xt=new ga(Be,ei,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Xt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ga{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===go?this.route:Ue===eo?this.childContexts:this.parent.get(Ue,Be)}}const mo=new M.nKC("");let ma=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,ei],Xt)=>(ei={...mt,...Ot,...ei},0===Xt?(0,Pe.of)(ei):Promise.resolve(ei)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:ei}of Ot.inputs)Be.activatedComponentRef.setInput(ei,mt[ei]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Eo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function er(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Eo(Re,We,rt);return Eo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(ei=>Eo(Re,ei)),Ot}}const We=function ll(Re){return new go(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Eo(Re,mt));return new Hs(We,rt)}}const Gr="ngNavigationCancelingError";function cl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Er(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Er(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[Gr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[Gr]}let Ar=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Do],encapsulation:2})}return Re})();function Hr(Re){const Ue=Re.children&&Re.children.map(Hr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Ar),Be}function io(Re){return Re.outlet||w}function Ys(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class ya{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),ei=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:ei})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const ei=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(ei.contexts),Ot.attachRef=ei.componentRef,Ot.route=ei.route.value,Ot.outlet&&Ot.outlet.attach(ei.componentRef,ei.route.value),Us(ei.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const ei=Ys(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=ei,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class bo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function hl(Re,Ue,Be){const We=Re._root;return Qo(We,Ue?Ue._root:null,Be,[We.value])}function Zi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Qo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,ei=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Xt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!Qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Xt?rt.canActivateChecks.push(new qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Qo(Re,Ue,mt.component?ei?ei.children:null:Be,We,rt),Xt&&ei&&ei.outlet&&ei.outlet.isActivated&&rt.canDeactivateChecks.push(new bo(ei.outlet.component,Ot))}else Ot&&ct(Ue,ei,rt),rt.canActivateChecks.push(new qo(We)),Qo(Re,null,mt.component?ei?ei.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,ei])=>ct(ei,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new bo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Ks(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Or=Symbol("INITIAL_VALUE");function rr(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Or)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Or)return Or;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Or),(0,T.s)(1)))}function so(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw cl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Fl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Lr(Re){return(0,J.$)(new Fl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const ei=mt.substring(1);We[rt]=Be[ei]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([ei,Xt])=>{Ot[ei]=this.createSegmentGroup(Ue,Xt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const vo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zs(Re,Ue,Be,We,rt){const mt=dl(Re,Ue,Be);return mt.matched?(We=function Zo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Kh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Ir(Re){return Re&&Ye(Re.canMatch)}(ei)?ei.canMatch(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...vo}))):(0,Pe.of)(mt)}function dl(Re,Ue,Be){if("**"===Ue.path)return function ul(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...vo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...vo};const mt={};Object.entries(rt.posParams??{}).forEach(([ei,Xt])=>{mt[ei]=Xt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function pl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We)&&io(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ic(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Bl(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Oc(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Oc(Re,Ue,Be,We){const rt={};for(const mt of Be)if(fl(Re,Ue,mt)&&!We[io(mt)]){const Ot=new Me([],{});rt[io(mt)]=Ot}return{...We,...rt}}function ic(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&io(We)!==w){const rt=new Me([],{});Be[io(We)]=rt}return Be}function fl(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Lc{}class jl{constructor(Ue,Be,We,rt,mt,Ot,ei){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=ei,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=pl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new pa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new Dr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Fl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],ei=function ec(Re,Ue){const Be=Re.filter(We=>io(We)===Ue);return Be.push(...Re.filter(We=>io(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,ei,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let ei=Be,Xt=Ue,Li=0;mt.subscribe((0,F._)(Ot,pn=>{const Dn=Li++;Xt=ei?Re(Xt,pn,Dn):(ei=!0,pn),We&&Ot.next(Xt)},rt&&(()=>{ei&&Ot.next(Xt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Lr(We);const Ot=Lo(mt);return function tr(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(ei=>this.processSegmentAgainstRoute(ei._injector??Ue,Be,ei,We,rt,mt,Ot).pipe((0,d.W)(Xt=>{if(Xt instanceof Fl)return(0,Pe.of)(null);throw Xt}))),n(ei=>!!ei),(0,d.W)(ei=>{if(Ks(ei))return function nc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Lc):Lr(We);throw ei}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,ei){return function Pc(Re,Ue,Be,We){return!!(io(Re)===We||We!==w&&fl(Ue,Be,Re))&&dl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&ei?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Lr(rt):Lr(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:ei,consumedSegments:Xt,positionalParamSegments:Li,remainingSegments:pn}=dl(Be,rt,mt);if(!ei)return Lr(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const Dn=this.applyRedirects.applyRedirectCommands(Xt,rt.redirectTo,Li);return this.applyRedirects.lineralizeSegments(rt,Dn).pipe((0,f.Z)(qs=>this.processSegment(Ue,We,Be,qs.concat(pn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=Zs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(ei=>ei.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Xt})=>{const Li=We._loadedInjector??Ue,{consumedSegments:pn,remainingSegments:Dn,parameters:qs}=ei,Hl=new pa(pn,qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ns(Re){return Re.data||{}}(We),io(We),We.component??We._loadedComponent??null,We,function Fs(Re){return Re.resolve||{}}(We)),{segmentGroup:Cl,slicedSegments:wl}=pl(Be,pn,Dn,Xt);if(0===wl.length&&Cl.hasChildren())return this.processChildren(Li,Xt,Cl).pipe((0,_.T)(Wa=>null===Wa?null:new Hs(Hl,Wa)));if(0===Xt.length&&0===wl.length)return(0,Pe.of)(new Hs(Hl,[]));const cc=io(We)===mt;return this.processSegment(Li,Xt,Cl,wl,cc?w:mt,!0).pipe((0,_.T)(Wa=>new Hs(Hl,Wa instanceof Hs?[Wa]:[])))})):Lr(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Ac(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(ei)?ei.canLoad(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Er(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Nc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Lo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Nc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Lo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function yo(Re){const Ue=Re.children.map(Be=>yo(Be)).flat();return[Re,...Ue]}function Vl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Fc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(ml),providedIn:"root"})}return Re})(),ml=(()=>{class Re extends Fc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ta=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Ur(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,ei=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Hr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function ia(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let na=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Li=>{mt=Li}),ei=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Xt}=We;return Xt&&(0,M.N4e)(Re,()=>Xt({transition:ei,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ta),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(mo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Fc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(na),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new Jl(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,ei=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Xt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Xt.id,initialUrl:Xt.rawUrl,extractedUrl:Xt.extractedUrl,trigger:Xt.source,extras:Xt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Li=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Li&&"reload"!==(Xt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.rawUrl),Dn,cn.IgnoredSameUrlNavigation)),Xt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Xt.rawUrl))return(0,Pe.of)(Xt).pipe((0,b.n)(Dn=>{const qs=this.transitions?.getValue();return this.events.next(new rs(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),Dn.source,Dn.restoredState)),qs!==this.transitions?.getValue()?te.w:Promise.resolve(Dn)}),function ea(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function Po(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new jl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:ei,tree:Xt})=>({...Ot,targetSnapshot:ei,urlAfterRedirects:Xt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(Dn=>{mt.targetSnapshot=Dn.targetSnapshot,mt.urlAfterRedirects=Dn.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:Dn.urlAfterRedirects};const qs=new Qr(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),this.urlSerializer.serialize(Dn.urlAfterRedirects),Dn.targetSnapshot);this.events.next(qs)}));if(Li&&this.urlHandlingStrategy.shouldProcessUrl(Xt.currentRawUrl)){const{id:Dn,extractedUrl:qs,source:Hl,restoredState:Cl,extras:wl}=Xt,cc=new rs(Dn,this.urlSerializer.serialize(qs),Hl,Cl);this.events.next(cc);const Wa=ua(this.rootComponentType).snapshot;return this.currentTransition=mt={...Xt,targetSnapshot:Wa,urlAfterRedirects:qs,extras:{...wl,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=qs,(0,Pe.of)(mt)}{const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),Dn,cn.IgnoredByUrlHandlingStrategy)),Xt.resolve(null),te.w}}),(0,l.M)(Xt=>{const Li=new nr(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot);this.events.next(Li)}),(0,_.T)(Xt=>(this.currentTransition=mt={...Xt,guards:hl(Xt.targetSnapshot,Xt.currentSnapshot,this.rootContexts)},mt)),function Pr(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Bn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Yh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(ei=>{const Xt=Ys(Ue)??rt,Li=Zi(ei,Xt);return Ce(function no(Re){return Re&&Ye(Re.canDeactivate)}(Li)?Li.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Xt,()=>Li(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(rr())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(ei=>ei&&function vt(Re){return"boolean"==typeof Re}(ei)?function fr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function tc(Re,Ue){return null!==Re&&Ue&&Ue(new pr(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function Jo(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Xh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Oo(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const ei=Ot.guards.map(Xt=>{const Li=Ys(Ot.node)??Be,pn=Zi(Xt,Li);return Ce(function vn(Re){return Re&&Ye(Re.canActivateChild)}(pn)?pn.canActivateChild(We,Re):(0,M.N4e)(Li,()=>pn(We,Re))).pipe(n())});return(0,Pe.of)(ei).pipe(rr())}));return(0,Pe.of)(mt).pipe(rr())}(Re,rt.path,Be),function Nl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ys(Ue)??Be,ei=Zi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(ei)?ei.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>ei(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(rr())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(ei)),(0,_.T)(ei=>({...Be,guardsResult:ei})))})}(this.environmentInjector,Xt=>this.events.next(Xt)),(0,l.M)(Xt=>{if(mt.guardsResult=Xt.guardsResult,On(Xt.guardsResult))throw cl(0,Xt.guardsResult);const Li=new Ls(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot,!!Xt.guardsResult);this.events.next(Li)}),(0,O.p)(Xt=>!!Xt.guardsResult||(this.cancelNavigationTransition(Xt,"",Xi.GuardRejected),!1)),Vl(Xt=>{if(Xt.guards.canActivateChecks.length)return(0,Pe.of)(Xt).pipe((0,l.M)(Li=>{const pn=new Vr(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}),(0,b.n)(Li=>{let pn=!1;return(0,Pe.of)(Li).pipe(function gl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Xt=>Xt.route)),Ot=new Set;for(const Xt of mt)if(!Ot.has(Xt))for(const Li of yo(Xt))Ot.add(Li);let ei=0;return(0,V.H)(Ot).pipe((0,r.H)(Xt=>mt.has(Xt)?function xo(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!zr(rt)&&(mt[X]=rt.title),function _a(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function Ca(Re,Ue,Be,We){const rt=Ys(Ue)??We,mt=Zi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(ei=>{mt[Ot]=ei}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Ks(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Xt,We,Re,Ue):(Xt.data=xr(Xt,Xt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>ei++),p(1),(0,f.Z)(Xt=>ei===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>pn=!0,complete:()=>{pn||this.cancelNavigationTransition(Li,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Li=>{const pn=new Ki(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}))}),Vl(Xt=>{const Li=pn=>{const Dn=[];pn.routeConfig?.loadComponent&&!pn.routeConfig._loadedComponent&&Dn.push(this.configLoader.loadComponent(pn.routeConfig).pipe((0,l.M)(qs=>{pn.component=qs}),(0,_.T)(()=>{})));for(const qs of pn.children)Dn.push(...Li(qs));return Dn};return(0,ie.z)(Li(Xt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),Vl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Xt,targetSnapshot:Li}=mt,pn=this.createViewTransition?.(this.environmentInjector,Xt.root,Li.root);return pn?(0,V.H)(pn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Xt=>{const Li=function al(Re,Ue,Be){const We=Eo(Re,Ue._root,Be?Be._root:void 0);return new ol(We,Ue)}(Be.routeReuseStrategy,Xt.targetSnapshot,Xt.currentRouterState);return this.currentTransition=mt={...Xt,targetRouterState:Li},this.currentNavigation.targetRouterState=Li,mt}),(0,l.M)(()=>{this.events.next(new bn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new ya(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Xt=>this.events.next(Xt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Xt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Xt.targetRouterState.snapshot),Xt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Xt=>{throw Xt}))),(0,H.j)(()=>{!Ot&&!ei&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Xt=>{if(ei=!0,cs(Xt))this.events.next(new os(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt.message,Xt.cancellationCode)),function sr(Re){return cs(Re)&&On(Re.url)}(Xt)?this.events.next(new Ko(Xt.url)):mt.resolve(!1);else{this.events.next(new ns(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Xt))}catch(Li){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Li)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new os(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Oi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(es),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let es=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),as=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends as{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(na),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=ua(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof rs)this.stateMemento=this.createStateMemento();else if(Be instanceof Js)this.rawUrlTree=We.initialUrl;else if(Be instanceof Qr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof bn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof os&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof ns?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ss(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof os||Be instanceof ns||Be instanceof Js),(0,_.T)(Be=>Be instanceof un||Be instanceof Js?us.COMPLETE:Be instanceof os&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function Bs(Re){throw Re}const Rr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Gn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(as),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(na),this._events=new I.B,this.errorHandler=this.options.errorHandler||Bs,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Oi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(mo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof os&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Ko){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),ei={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,ei,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof bn||Re instanceof Ko)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Xt={...rt};delete Xt.navigationId,delete Xt.\u0275routerPageId,0!==Object.keys(Xt).length&&(mt.state=Xt)}const ei=this.parseUrl(Be);this.scheduleNavigation(ei,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Hr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:ei,preserveFragment:Xt}=We,Li=Xt?this.currentUrlTree.fragment:Ot;let Dn,pn=null;switch(ei){case"merge":pn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":pn=this.currentUrlTree.queryParams;break;default:pn=mt||null}null!==pn&&(pn=this.removeEmptyProps(pn));try{Dn=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),Dn=this.currentUrlTree.root}return $n(Dn,Be,pn,Li??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let ei,Xt,Li;Ot?(ei=Ot.resolve,Xt=Ot.reject,Li=Ot.promise):Li=new Promise((Dn,qs)=>{ei=Dn,Xt=qs});const pn=this.pendingTasks.add();return ss(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(pn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:ei,reject:Xt,promise:Li,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Li.catch(Dn=>Promise.reject(Dn))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,ei){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=ei,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Xt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Xt||"area"===Xt,this.isAnchorElement?this.subscription=Be.events.subscribe(Li=>{Li instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const ei=this.urlTree;return!!(null===ei||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(ei,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(go),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(ei=>{ei instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function or(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class wa{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),_o=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,ei=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(ei,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(pi),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(wa),M.KVO(ta))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Ro=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof rs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof Js&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof Jr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Jr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function Sa(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(pi),rt=Re.get(No);1===Re.get(bl)&&We.initialNavigation(),Re.get(vl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const No=new M.nKC("",{factory:()=>new I.B}),bl=new M.nKC("",{providedIn:"root",factory:()=>1}),vl=new M.nKC("");function Fo(Re){return Kn(0,[{provide:vl,useExisting:_o},{provide:wa,useExisting:Re}])}function mr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const Gl=new M.nKC("ROUTER_FORROOT_GUARD"),sa=[E.aZ,{provide:Qe,useClass:st},pi,eo,{provide:go,useFactory:function bs(Re){return Re.routerState.root},deps:[pi]},ta,[]];let xl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[sa,[],{provide:Ga,multi:!0,useValue:Be},{provide:Gl,useFactory:Zh,deps:[[pi,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Ro(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Fo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Qn(We):[],We?.bindToComponentInputs?Kn(8,[ma,{provide:mo,useExisting:ma}]).\u0275providers:[],We?.enableViewTransitions?mr().\u0275providers:[],[{provide:_l,useFactory:Sa},{provide:M.iLQ,multi:!0,useExisting:_l}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(Gl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function Zh(Re){return"guarded"}function Qn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(pi);return()=>{Ue.setUpLocationChangeListener()}}},{provide:bl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:bl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(pi),mt=Ue.get(No);ss(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const _l=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Vo,do:()=>Yc,Bq:()=>qc,UN:()=>ah,ZM:()=>cd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Wt=>Wt.length)){const Wt=Ne.map(Qt=>Qt.shift());we.next(je?je(...Wt):Wt),Ne.some((Qt,ii)=>!Qt.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Wt=0;Wt{it[Wt]=Qt,!Vt&&!ft[Wt]&&(ft[Wt]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Wt=>{if(Vt){const Qt=[Wt,...it];we.next(je?je(...Qt):Qt)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Wt=!ht()&&ae,Qt=(we.left+(Wt&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Wt&&Vt?Vt.offsetTop:0))/it,Ci=we.width/Ne,_i=we.height/it;return{width:Ci,height:_i,top:ii,right:Qt+Ci,bottom:ii+_i,left:Qt,x:Qt,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Jt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function ui(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&ui(be)?be:Fi(Jt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],ui(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Jt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function Fn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function _s(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Jt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Mt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Wt=0;if(Ne){it=Ne.width,ft=Ne.height;var Qt=ht();(Qt||!Qt&&"fixed"===je)&&(Vt=Ne.offsetLeft,Wt=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Wt}}(be,ae)):Ee(je)?function zn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Wt=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Wt}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Wt,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Wt={x:ft,y:je.y-ae.height};break;case U:Wt={x:ft,y:je.y+je.height};break;case se:Wt={x:je.x+je.width,y:Vt};break;case w:Wt={x:je.x-ae.width,y:Vt};break;default:Wt={x:je.x,y:je.y}}var Qt=Ne?Pn(Ne):null;if(null!=Qt){var ii="y"===Qt?"height":"width";switch(it){case x:Wt[Qt]=Wt[Qt]-(je[ii]/2-ae[ii]/2);break;case N:Wt[Qt]=Wt[Qt]+(je[ii]/2-ae[ii]/2)}}return Wt}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function ws(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function kn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Wt=void 0===Vt?"clippingParents":Vt,Qt=je.rootBoundary,ii=void 0===Qt?K:Qt,Ci=je.elementContext,_i=void 0===Ci?q:Ci,Ai=je.altBoundary,_n=void 0!==Ai&&Ai,rn=je.padding,fn=void 0===rn?0:rn,Rn=$i("number"!=typeof fn?fn:ws(fn,G)),vs=be.rects.popper,En=be.elements[_n?_i===q?"reference":q:_i],Zn=function Cs(be,je,ae,we){var Ne="clippingParents"===je?function Di(be){var je=mi(Jt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?Fn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Wt,Qt){var ii=dn(be,Qt,we);return Wt.top=Qe(ii.top,Wt.top),Wt.right=st(ii.right,Wt.right),Wt.bottom=st(ii.bottom,Wt.bottom),Wt.left=Qe(ii.left,Wt.left),Wt},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(En)?En:En.contextElement||lt(be.elements.popper),Wt,ii,ft),An=Lt(be.elements.reference),qn=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ps=fs(Object.assign({},vs,qn)),lr=_i===q?Ps:An,zs={top:Zn.top-lr.top+Rn.top,bottom:lr.bottom-Zn.bottom+Rn.bottom,left:Zn.left-lr.left+Rn.left,right:lr.right-Zn.right+Rn.right},wr=be.modifiersData.offset;if(_i===q&&wr){var lo=wr[Ne];Object.keys(zs).forEach(function(Tr){var xe=[se,U].indexOf(Tr)>=0?1:-1,tt=[Y,U].indexOf(Tr)>=0?"y":"x";zs[Tr]+=lo[tt]*xe})}return zs}const ir={name:"flip",enabled:!0,phase:"main",fn:function qr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Wt=ae.fallbackPlacements,Qt=ae.padding,ii=ae.boundary,Ci=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,_n=void 0===Ai||Ai,rn=ae.allowedAutoPlacements,fn=je.options.placement,Rn=S(fn),vs=Wt||(Rn!==fn&&_n?function fo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(fn):[p(fn)]),En=[fn].concat(vs).reduce(function(oi,Pi){return oi.concat(S(Pi)===X?function jr(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Wt=je.allowedAutoPlacements,Qt=void 0===Wt?Ce:Wt,ii=On(je.placement),Ci=ii?Vt?me:me.filter(function(_n){return On(_n)===ii}):G,_i=Ci.filter(function(_n){return Qt.indexOf(_n)>=0});0===_i.length&&(_i=Ci);var Ai=_i.reduce(function(_n,rn){return _n[rn]=kn(be,{placement:rn,boundary:Ne,rootBoundary:it,padding:ft})[S(rn)],_n},{});return Object.keys(Ai).sort(function(_n,rn){return Ai[_n]-Ai[rn]})}(je,{placement:Pi,boundary:ii,rootBoundary:Ci,padding:Qt,flipVariations:_n,allowedAutoPlacements:rn}):Pi)},[]),Zn=je.rects.reference,An=je.rects.popper,qn=new Map,Ps=!0,lr=En[0],zs=0;zs=0,tt=xe?"width":"height",u=kn(je,{placement:wr,boundary:ii,rootBoundary:Ci,altBoundary:_i,padding:Qt}),ne=xe?Tr?se:w:Tr?U:Y;Zn[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[lo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){lr=wr,Ps=!1;break}qn.set(wr,Ie)}if(Ps)for(var Tt=function(Pi){var qi=En.find(function(Yi){var tn=qn.get(Yi);if(tn)return tn.slice(0,Pi).every(function(Cn){return Cn})});if(qi)return lr=qi,"break"},zt=_n?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==lr&&(je.modifiersData[we]._skip=!0,je.placement=lr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,_n=ae.tetherOffset,rn=void 0===_n?0:_n,fn=kn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Rn=S(je.placement),jn=On(je.placement),vs=!jn,En=Pn(Rn),Zn=function St(be){return"x"===be?"y":"x"}(En),An=je.modifiersData.popperOffsets,qn=je.rects.reference,Ps=je.rects.popper,lr="function"==typeof rn?rn(Object.assign({},je.rects,{placement:je.placement})):rn,zs="number"==typeof lr?{mainAxis:lr,altAxis:lr}:Object.assign({mainAxis:0,altAxis:0},lr),wr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,lo={x:0,y:0};if(An){if(it){var Tr,xe="y"===En?Y:w,tt="y"===En?U:se,u="y"===En?"height":"width",ne=An[En],ue=ne+fn[xe],Ie=ne-fn[tt],nt=Ai?-Ps[u]/2:0,Tt=jn===x?qn[u]:Ps[u],zt=jn===x?-Ps[u]:-qn[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Pi=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},qi=Pi[xe],Yi=Pi[tt],tn=Rt(0,qn[u],oi[u]),Cn=vs?qn[u]/2-nt-tn-qi-zs.mainAxis:Tt-tn-qi-zs.mainAxis,nn=vs?-qn[u]/2+nt+tn+Yi+zs.mainAxis:zt+tn+Yi+zs.mainAxis,Jn=je.elements.arrow&&Fn(je.elements.arrow),Ds=Jn?"y"===En?Jn.clientTop||0:Jn.clientLeft||0:0,Ws=null!=(Tr=wr?.[En])?Tr:0,co=ne+nn-Ws,Uo=Rt(Ai?st(ue,ne+Cn-Ws-Ds):ue,ne,Ai?Qe(Ie,co):Ie);An[En]=Uo,lo[En]=Uo-ne}if(Vt){var _c,la=An[Zn],gu="y"===Zn?"height":"width",rg=la+fn["x"===En?Y:w],og=la-fn["x"===En?U:se],Ip=-1!==[Y,w].indexOf(Rn),Al=null!=(_c=wr?.[Zn])?_c:0,lh=Ip?rg:la-qn[gu]-Ps[gu]-Al+zs.altAxis,ag=Ip?la+qn[gu]+Ps[gu]-Al-zs.altAxis:og,lg=Ai&&Ip?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(lh,la,ag):Rt(Ai?lh:rg,la,Ai?ag:og);An[Zn]=lg,lo[Zn]=lg-la}je.modifiersData[we]=lo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Wt=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var Ci=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:ws(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Wt?Y:w,_n="y"===Wt?U:se,rn=ae.rects.reference[ii]+ae.rects.reference[Wt]-ft[Wt]-ae.rects.popper[ii],fn=ft[Wt]-ae.rects.reference[Wt],Rn=Fn(it),jn=Rn?"y"===Wt?Rn.clientHeight||0:Rn.clientWidth||0:0,An=jn/2-_i[ii]/2+(rn/2-fn/2),qn=Rt(Ci[Ai],An,jn-_i[ii]-Ci[_n]);ae.modifiersData[we]=((je={})[Wt]=qn,je.centerOffset=qn-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function rs(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Wt={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||ui(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Wt=Lt(je,!0)).x+=je.clientLeft,Wt.y+=je.clientTop):it&&(Wt.x=ti(it))),{x:ft.left+Vt.scrollLeft-Wt.x,y:ft.top+Vt.scrollTop-Wt.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Wt=je.get(Vt);Wt&&Ne(Wt)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var Js={placement:"bottom",modifiers:[],strategy:"absolute"};function ns(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(Ci,je.rects,it),ii},{}),Vt=ft[je.placement],Qt=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=Qt),je.modifiersData[we]=ft}},Hs=["*"],Xs=["dialog"];function Jo(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function tc(be,je){}function Nl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,Jo,1,1,"ng-template",null,0,M.C5r)(3,tc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Lc={animation:!0,transitionTimerDelayMs:5};let Po=(()=>{class be{constructor(){this.animation=Lc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function xa(be){return"string"==typeof be}function ea(be){return null!=be}function Ca(be){return(be||document.body).getBoundingClientRect()}function ml(be=document){const je=be?.activeElement;return je?je.shadowRoot?ml(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Lc,ta=new Map,Ur=(be,je,ae,we)=>{let Ne=we.context||{};const it=ta.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ta.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function Vl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Wt=new ie.B,Qt=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ta.set(je,{transition$:Vt,complete:()=>{Wt.next(),Wt.complete()},context:Ne});const ii=function jl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const Ci=(0,re.R)(je,"transitionend").pipe((0,I.Q)(Qt),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(Qt)),Ci,Wt).pipe((0,I.Q)(Qt)).subscribe(()=>{ta.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},na=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),Ca(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Ur(this._zone,this._element.nativeElement,na,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ro=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),sc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Qn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Qn||{});const Jh=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function _a(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const Qt=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Qn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!Jh(Ai,ft)&&("inside"===ae?Jh(Ai,it)&&Re(Ai,Vt):"outside"===ae?!Jh(Ai,it):Re(Ai,Vt)||!Jh(Ai,it))}),(0,I.Q)(Ne)),Ci=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([Qt.pipe((0,T.T)(_i=>0)),Ci.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let ei=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Xt=/\s+/,Li=/ +/gi,pn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},qs=/^left/,Hl=/^right/,Cl=/^start/,wl=/^end/;function Wa({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Xt),it=we.findIndex(Qt=>"auto"===Qt);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(Qt){null==we.find(ii=>-1!==ii.search("^"+Qt))&&we.splice(it++,1,Qt)});const ft=we.map(Qt=>function Dn(be,je){const[ae,we]=pn[be];return je&&we||ae}(Qt,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:Qt}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),Ci=Qt.elements.popper,_i=Qt.placement;let Ai=Ci.className;Ai=Ai.replace(ii,""),Ai+=` ${function cc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(qs,"start").replace(Hl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Cl,"top").replace(wl,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Li," "),Ci.className=Ai}},ir,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function tp(be){return be}function ed(){const be=(0,M.WQX)(ei);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je=eo(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function Bo(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Hd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ud=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Vo=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,$c,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Dh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Yc=(()=>{class be extends Dh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Dh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(Ud),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=ed(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(Bo([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Wt,Qt)=>{Wt.contains(ae.target)&&(ft=Wt),Wt===ml(this._document)&&(it=Qt)}),we!==Qn.Space&&we!==Qn.Enter){if(we!==Qn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Qn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Qn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Qn.Home:it=0;break;case Qn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Wt=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Wt[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Wt[Wt.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Wt})=>{this._nativeElement.contains(Wt)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Vo,5),M.wni(it,Dh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Eh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Wd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class Ml{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class _p{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Ur(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Ur(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new Ml([we.rootNodes],we)}return new Ml([[this._document.createTextNode(`${je}`)]])}return new Ml([])}}let pc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Kc=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Ur(this._zone,this._nativeElement,(ae,we)=>{we&&Ca(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Ur(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Ah{update(je){}close(je){}dismiss(je){}}const ad=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Zc=["animation","backdropClass"];class $d{_applyWindowOptions(je,ae){ad.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Zc.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function gl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Ih=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Ih||{});let Zf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":xa(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Ur(this._zone,ae,()=>ae.classList.remove("show"),we),Ur(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Ur(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&Ca(it),it.classList.add("show")},ae),Ur(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Qn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Ih.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Ih.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Ur(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Xs,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),qf=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(pc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Qn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Wt]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Wt.focus(),it.preventDefault()),ft===Wt&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ea(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Ah,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Wt=this._getContentRef(ae,Vt,we,ft,Ne);let Qt=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Wt.nodes),Ci=new $d(ii,Wt,Qt,Ne.beforeDismiss);return this._registerModalRef(Ci),this._registerWindowCmpt(ii),Ci.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{Ci.close(_i)},ft.dismiss=_i=>{Ci.dismiss(_i)},ft.update=_i=>{Ci.update(_i)},Ci.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),Qt&&Qt.instance&&Qt.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),Ci}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)(Kc,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Zf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):xa(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new Ml([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new Ml([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new Ml([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Ah,useValue:it}],parent:ae}),Wt=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),Qt=Wt.location.nativeElement;return ft.scrollable&&Qt.classList.add("component-host-scrollable"),this._applicationRef.attachView(Wt.hostView),new Ml([[Qt]],Wt.hostView,Wt)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),qc=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(qf),this._config=(0,M.WQX)(Wd)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),br=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[qc]})}return be})(),qd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Xl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let Jd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ld=0,eu=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Nl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),cd=(()=>{class be{constructor(){this._config=(0,M.WQX)(Jd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+ld++,this._popupService=new _p(eu),this._windowRef=null,this._positioning=ed()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(Bo([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function wp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function ar(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Wt=new Set,Qt=[];let ii;function Ci(Ai,_n){be.addEventListener(Ai,_n),Qt.push(()=>be.removeEventListener(Ai,_n))}function _i(Ai,_n){clearTimeout(ii),_n>0?ii=setTimeout(Ai,_n):Ai()}for(const[Ai,_n]of Vt)_n?(Ci(Ai,()=>{Wt.add(Ai),_i(()=>Wt.size>0&&we(),it)}),Ci(_n,()=>{Wt.delete(Ai),_i(()=>0===Wt.size&&Ne(),ft)})):Ci(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>Qt.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(xa(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ih=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ea=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ig=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),xc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),aa=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let Bh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const Vh=[Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh];let ah=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[Vh,Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Jt,vr:()=>ir,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Mt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Jt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),ui=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),_s=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),Fn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),zn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Di={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function Cs(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Di[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=Cs(xt).toLocaleLowerCase(),this.filteredItems.find($e=>Cs($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:Cs(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Mt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return Cs($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Mt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),rs=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=rs,Ti.value=Hi(It,rs.map(un=>un.value)),yt.push(Ti),yt.push(...rs)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let ws=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),kn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),jr=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),fo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const qr=new M.nKC("ng-select-selection-model");let ir=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const rs=this.selectedItems.find(un=>un.value===Hi);this.unselect(rs)},this.trackByOption=(Hi,rs)=>this.trackByFn?this.trackByFn(rs.value):rs,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Mt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Mt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Mt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(jr),M.rXU(qr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(fo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Jt,5,M.C4Q),M.wni($t,ui,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,_s,5,M.C4Q),M.wni($t,Fn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,zn,5,M.C4Q),M.wni($t,kn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(ws,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,ws,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:qr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>Zn,hp:()=>fn,FP:()=>Ai,yc:()=>Qt,Tg:()=>Wt,XI:()=>Ne,bG:()=>Tr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Mt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Jt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Mt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function ui(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function Fn(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function zn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Di(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Cs(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,Cs,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function ws(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function kn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function jr(xe,tt){}function fo(xe,tt){1&xe&&e.DNE(0,jr,0,0,"ng-template")}function qr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,ws,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,kn,1,0,"ChevronDownIcon",7)(9,fo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function ir(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,ir,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,ui,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,Fn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,zn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Di,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,qr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Jt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Pi=Math.ceil((nt+Ie)/7);for(let qi=0;qint){let Cn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:Cn.month,year:Cn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,Cn.month,Cn.year),selectable:this.isSelectable(zt-nt,Cn.month,Cn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Pi&&this.maxDate.toDateString()===Pi&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Pi=ue+1{let Yi=""+Pi;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Pi]:qi[Pi];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Pi=-1,qi=-1,Yi=!1,Cn=Ws=>{let cr=ue+1{let cr=Cn(Ws),co="@"===Ws?14:"!"===Ws?20:"y"===Ws&&cr?4:"o"===Ws?3:2,_c=new RegExp("^\\d{"+("y"===Ws?co:1)+","+co+"}"),Aa=u.substring(Tt).match(_c);if(!Aa)throw"Missing number at position "+Tt;return Tt+=Aa[0].length,parseInt(Aa[0],10)},Jn=(Ws,cr,co)=>{let Uo=-1,_c=Cn(Ws)?co:cr,Aa=[];for(let Sr=0;Sr<_c.length;Sr++)Aa.push([Sr,_c[Sr]]);Aa.sort((Sr,la)=>-(Sr[1].length-la[1].length));for(let Sr=0;Sr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Pi=1),ue=0;ue-1)for(oi=1,Pi=qi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Pi<=Ie);)oi++,Pi-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Pi=-1===Pi?1:Pi),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Pi)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Pi)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),rs=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],os=["*"],Js=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi,qi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Pi,"p-overlay-right-start":qi,"p-overlay-right-end":Yi}),ns=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Qr=xe=>({value:"visible",params:xe}),nr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function Vr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,Vr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Qr,e.sMw(7,ns,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,nr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,Js,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const Jl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},pr=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([Jl])],ngContentSelectors:os,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(pr)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var Jr=He(38757);const bn=["element"],Ko=["content"],nl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),eo=(xe,tt)=>({$implicit:xe,options:tt}),sl=xe=>({"p-scroller-loading":xe}),rl=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ol=(xe,tt)=>({rows:xe,columns:tt});function ua(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ua,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u.loadedItems,u.getContentOptions()))}}function go(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,go,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u,ue.getOptions(ne)))}}function pa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,sl,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function Dr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function fa(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,fa,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function Qi(xe,tt){1&xe&&e.eu8(0)}function zr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Do(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ga(xe,tt){if(1&xe&&e.DNE(0,zr,2,5,"ng-container",6)(1,Do,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function mo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ga,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,rl,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ma(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,pa,3,7,"ng-template",null,2,e.C5r)(6,Dr,1,2,"div",8)(7,mo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function al(xe,tt){1&xe&&e.eu8(0)}function Eo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,al,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,eo,u.items,e.l_i(2,ol,u._items,u.loadedColumns)))}}function er(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Eo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let ll=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Pi=(Jn=0,Ds)=>Jn<=Ds?0:Jn,qi=(Jn,Ds,Ws)=>Jn*Ds+Ws,Yi=(Jn=0,Ds=0)=>this.scrollTo({left:Jn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,Cn=!1,nn=!1;this.both?(tn={rows:Pi(u[0],zt[0]),cols:Pi(u[1],zt[1])},Yi(qi(tn.cols,oi[1],ai.left),qi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,Cn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Pi(u,zt),this.horizontal?Yi(qi(tn,oi,ai.left),nt):Yi(Tt,qi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),Cn=tn!==Ie),this.isRangeChanged=Cn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Pi=0)=>this.scrollTo({left:oi,top:Pi,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,Jn)=>nn?nn>Jn?nn-Jn:nn:0,nt=(nn,Jn)=>Math.floor(nn/(Jn||nn)),Tt=(nn,Jn,Ds,Ws,cr,co)=>nn<=cr?cr:co?Ds-Ws-cr:Jn+cr-1,zt=(nn,Jn,Ds,Ws,cr,co,Uo)=>nn<=co?0:Math.max(0,Uo?nnJn?Ds:nn-2*co),ai=(nn,Jn,Ds,Ws,cr,co=!1)=>{let Uo=Jn+Ws+2*cr;return nn>=cr&&(Uo+=cr+1),this.getLast(Uo,co)},oi=Ie(ne.scrollTop,ue.top),Pi=Ie(ne.scrollLeft,ue.left);let qi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,Cn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,Jn=this.lastScrollPos.left<=Pi;if(!this._appendOnly||this._appendOnly&&(nn||Jn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Pi,this._itemSize[1])},Ws={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],Jn)};qi={rows:zt(Ds.rows,Ws.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,Ws.cols,this.first.cols,0,0,this.d_numToleratedItems[1],Jn)},Yi={rows:ai(Ds.rows,qi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,qi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=qi.rows!==this.first.rows||Yi.rows!==this.last.rows||qi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,Cn={top:oi,left:Pi}}}else{const nn=this.horizontal?Pi:oi,Jn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&Jn){const Ds=nt(nn,this._itemSize);qi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,Jn),this.first,0,0,this.d_numToleratedItems,Jn),Yi=ai(Ds,qi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=qi!==this.first||Yi!==this.last||this.isRangeChanged,Cn=nn}}return{first:qi,last:Yi,isRangeChanged:tn,scrollPos:Cn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(bn,5),e.GBs(Ko,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:nl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ma,8,16,"ng-container",6)(1,er,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Jr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),Gr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Jr.N,Pe.Gg]})}return xe})(),cl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Er=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),sr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Ar=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),Zo=xe=>({$implicit:xe});function ba(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Ao=["container"],Fa=["filter"],Ba=["focusInput"],va=["editableInput"],Xs=["items"],to=["scroller"],Hr=["overlay"],io=["firstHiddenFocusableEl"],ec=["lastHiddenFocusableEl"],Ys=xe=>({options:xe}),Mn=(xe,tt)=>({$implicit:xe,options:tt}),Io=()=>({});function ya(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,Zo,u.selectedOption))}}function bo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function hl(xe,tt){if(1&xe&&e.DNE(0,bo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Oo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,ya,2,1,"ng-container",23)(3,qo,1,4,"ng-container",24)(4,hl,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Zi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Qo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function vn(xe,tt){}function no(xe,tt){1&xe&&e.DNE(0,vn,0,0,"ng-template")}function Ir(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,no,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Ks(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){1&xe&&e.eu8(0)}function rr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Or,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u.filterOptions))}}function Pr(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Bn(xe,tt){}function fr(xe,tt){1&xe&&e.DNE(0,Bn,0,0,"ng-template")}function Jo(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,fr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function tc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Pr,1,1,"SearchIcon",33)(4,Jo,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,rr,2,4,"ng-container",23)(2,tc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Xh(xe,tt){1&xe&&e.eu8(0)}function Yh(xe,tt){if(1&xe&&e.DNE(0,Xh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Mn,u,ne))}}function Ac(xe,tt){1&xe&&e.eu8(0)}function so(xe,tt){if(1&xe&&e.DNE(0,Ac,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u))}}function Kh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,so,1,4,"ng-template",49),e.bVm())}function Fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Yh,1,5,"ng-template",21)(3,Kh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Mn,ne.visibleOptions(),e.lJ4(2,Io)))}}function Ic(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ic,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,Zo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function vo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function Zs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function dl(xe,tt){1&xe&&e.eu8(0,null,12)}function ul(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,Zs,2,1,"ng-container",23)(2,dl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function pl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Oc(xe,tt){1&xe&&e.eu8(0,null,13)}function ic(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,pl,2,1,"ng-container",23)(2,Oc,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,vo,2,2,"ng-template",51)(3,ul,3,6,"li",52)(4,ic,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Bl(xe,tt){1&xe&&e.eu8(0)}function fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Ks,1,0,"ng-container",31)(4,Nl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Fl,4,10,"p-scroller",41)(7,Lr,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Bl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Pc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Lc),multi:!0};let nc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,ba,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Ar,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,Zo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Lc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Ao,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(va,5),e.GBs(Xs,5),e.GBs(to,5),e.GBs(Hr,5),e.GBs(io,5),e.GBs(ec,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Pc])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Oo,6,20,"span",15)(3,Zi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Ir,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,fl,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,cl,ll,rs,A.A,$,sr,nc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Po=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Er,ve.Z,Gr,un,A.A,$,sr,La,Pe.Gg,Gr]})}return xe})(),Rc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),jl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),tr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Nc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Lo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),xa=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Ns=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ea=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),gl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),yo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),xo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var _a=He(22242);const Ca=["input"],Vl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Fc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),ml=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ta(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Ur(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ta,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function ia(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Ur,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function na(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,na,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Oi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Oi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function es(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function as(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ss(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,as,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function Bs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,es,1,2,"span",13)(2,ss,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Rr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Gn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function pi(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,pi,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Gn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Rr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>or),multi:!0};let or=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Pi,currencyCharIndex:qi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=qi>=nt?qi-1:Pi>=nt?Pi:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,Cn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,Cn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ca,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,ia,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,Bs,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,Vl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,_a.S,Z._f,A.A,xo,yo],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),wa=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,_a.u,Z.tm,A.A,xo,yo,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),gr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Ro=xe=>({"p-disabled":xe}),sc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Ta(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function zl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function Co(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rc(xe,tt){}function Sa(xe,tt){1&xe&&e.DNE(0,rc,0,0,"ng-template")}function No(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Sa,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function bl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,Co,1,1,"AngleDoubleLeftIcon",6)(2,No,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sn(xe,tt){}function oc(xe,tt){1&xe&&e.DNE(0,sn,0,0,"ng-template")}function vl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,oc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Fo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function ac(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Fo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function yl(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function js(xe,tt){1&xe&&e.eu8(0)}function lc(xe,tt){if(1&xe&&e.DNE(0,js,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function mr(xe,tt){1&xe&&e.DNE(0,lc,1,1,"ng-template",28)}function Vs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,yl,1,1,"ng-template",26)(2,mr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Gl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sa(xe,tt){}function xl(xe,tt){1&xe&&e.DNE(0,sa,0,0,"ng-template")}function Wr(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,xl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Bc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function vh(xe,tt){}function Zh(xe,tt){1&xe&&e.DNE(0,vh,0,0,"ng-template")}function Qn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Zh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function _l(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Bc,1,1,"AngleDoubleRightIcon",6)(2,Qn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Qh(xe,tt){1&xe&&e.eu8(0)}function jf(xe,tt){if(1&xe&&e.DNE(0,Qh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,sc,u))}}function Ju(xe,tt){1&xe&&(e.qex(0),e.DNE(1,jf,1,4,"ng-template",32),e.bVm())}function ep(xe,tt){1&xe&&e.eu8(0)}function Ld(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Jh(xe,tt){1&xe&&e.DNE(0,Ld,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Ju,2,0,"ng-container",27)(2,Jh,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Ta,2,5,"div",2)(2,zl,2,1,"span",3)(3,bl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,vl,2,1,"span",7),e.k0s(),e.DNE(7,ac,2,1,"span",8)(8,Vs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,Gl,1,1,"AngleRightIcon",6)(11,Wr,2,1,"span",7),e.k0s(),e.DNE(12,_l,3,7,"button",11)(13,qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Lc,Pe.Ei,or,V.BC,V.vS,ve.n,ms,gr,_o,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Po,wa,V.YN,Pe.Gg,ve.Z,ms,gr,_o,en,Po,wa,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],ei=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Xt=(xe,tt)=>({$implicit:xe,index:tt});function Li(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function pn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Li,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function Dn(xe,tt){1&xe&&e.eu8(0)}function qs(xe,tt){if(1&xe&&e.DNE(0,Dn,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Xt,ne,ue))}}function Hl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,pn,4,3,"ng-container",5)(2,qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,ei,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Cl={provide:V.kq,useExisting:(0,e.Rfq)(()=>wl),multi:!0};let wl=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Cl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Hl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),cc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const Wa=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),tp=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),ed=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function ip(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function np(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Rd(xe,tt){}function sp(xe,tt){1&xe&&e.DNE(0,Rd,0,0,"ng-template")}function Bo(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,sp,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function yh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,np,1,2,"CheckIcon",9)(2,Bo,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function rp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ip,1,2,"span",7)(2,yh,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function op(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Vf(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function zf(xe,tt){}function Ts(xe,tt){1&xe&&e.DNE(0,zf,0,0,"ng-template")}function Nd(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Ts,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function jc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Vf,1,2,"TimesIcon",9)(2,Nd,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function $r(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,op,1,2,"span",7)(2,jc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Gf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,ed,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const xh={provide:V.kq,useExisting:(0,e.Rfq)(()=>Vc),multi:!0};let Vc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([xh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,rp,3,2,"ng-container",5)(6,$r,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Gf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,Wa,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,tp,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,tr,A.A],encapsulation:2,changeDetection:0})}return xe})(),jo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,tr,A.A,Pe.Gg]})}return xe})();var zc=He(21413);const td=["container"],Hf=["resizeHelper"],$a=["reorderIndicatorUp"],ap=["reorderIndicatorDown"],lp=["wrapper"],cp=["table"],Gc=["thead"],_h=["tfoot"],Ch=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Xa=xe=>({height:xe}),on=(xe,tt)=>({$implicit:xe,options:tt}),wh=xe=>({columns:xe}),Uf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function id(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function Wf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function hc(xe,tt){}function Ya(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ya,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function hp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Wf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function dp(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,id,1,2,"i",22)(2,hp,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function up(xe,tt){1&xe&&e.eu8(0)}function pp(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,up,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function xn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function Ka(xe,tt){1&xe&&e.DNE(0,xn,1,1,"ng-template",30)}function Hc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,Hc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function ra(xe,tt){1&xe&&e.eu8(0)}function oa(xe,tt){if(1&xe&&e.DNE(0,ra,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,oa,1,1,"ng-template",32)}function jd(xe,tt){1&xe&&e.eu8(0)}function fp(xe,tt){if(1&xe&&e.DNE(0,jd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function fm(xe,tt){1&xe&&e.DNE(0,fp,1,1,"ng-template",33)}function gp(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,gp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Sl(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function dc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,Ka,1,0,null,16)(2,Uc,1,0,null,16)(3,Bd,1,0,null,16)(4,fm,1,0,null,16)(5,Sl,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function ka(xe,tt){1&xe&&e.eu8(0)}function kl(xe,tt){if(1&xe&&e.DNE(0,ka,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,on,u,ne))}}function $f(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,kl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Xa,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function mp(xe,tt){1&xe&&e.eu8(0)}function bp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,mp,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,on,u.processedData,e.eq3(2,wh,u.columns)))}}function Th(xe,tt){1&xe&&e.eu8(0)}function Sh(xe,tt){1&xe&&e.eu8(0)}function kh(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function nd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Wc(xe,tt){1&xe&&e.eu8(0)}function Xf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Wc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Mh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,Th,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,Sh,1,0,"ng-container",37),e.k0s(),e.DNE(6,kh,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,nd,1,2,"tbody",42)(9,Xf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Uf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Vd(xe,tt){1&xe&&e.eu8(0)}function vp(xe,tt){if(1&xe&&e.DNE(0,Vd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function sd(xe,tt){1&xe&&e.DNE(0,vp,1,1,"ng-template",30)}function zd(xe,tt){1&xe&&e.eu8(0)}function Gd(xe,tt){if(1&xe&&e.DNE(0,zd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function rd(xe,tt){1&xe&&e.DNE(0,Gd,1,1,"ng-template",31)}function Yf(xe,tt){1&xe&&e.eu8(0)}function Xr(xe,tt){if(1&xe&&e.DNE(0,Yf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function uc(xe,tt){1&xe&&e.DNE(0,Xr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function yp(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Kf(xe,tt){1&xe&&e.DNE(0,yp,1,1,"ng-template",33)}function xp(xe,tt){1&xe&&e.eu8(0)}function Hd(xe,tt){if(1&xe&&e.DNE(0,xp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Ud(xe,tt){1&xe&&e.DNE(0,Hd,1,1,"ng-template",34)}function $c(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,sd,1,0,null,16)(2,rd,1,0,null,16)(3,uc,1,0,null,16)(4,Kf,1,0,null,16)(5,Ud,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Xc(xe,tt){1&xe&&e.eu8(0)}function Vo(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Xc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Dh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Yc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function od(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Eh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Yc,1,0,"ArrowDownIcon",16)(3,od,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function Wd(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function Ml(xe,tt){}function _p(xe,tt){1&xe&&e.DNE(0,Ml,0,0,"ng-template")}function pc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,Wd,1,0,"ArrowUpIcon",16)(3,_p,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const Kc=["pTableBody",""],Ah=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),ad=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Zc=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),$d=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Ih=(xe,tt)=>({$implicit:xe,frozen:tt});function Zf(xe,tt){1&xe&&e.eu8(0)}function qf(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Zf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function qc(xe,tt){1&xe&&e.eu8(0)}function br(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Xd(xe,tt){1&xe&&e.eu8(0)}function fc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,ad,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function Wl(xe,tt){1&xe&&e.eu8(0)}function Cr(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Qf(xe,tt){if(1&xe&&e.DNE(0,qf,2,8,"ng-container",2)(1,br,2,8,"ng-container",0)(2,fc,2,10,"ng-container",0)(3,Cr,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qf,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Dl(xe,tt){1&xe&&e.eu8(0)}function Oh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Dl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Ma,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Jc(xe,tt){1&xe&&e.eu8(0)}function Kd(xe,tt){1&xe&&e.eu8(0)}function gc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jc,1,0,"ng-container",4)(2,gc,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Ph(xe,tt){if(1&xe&&e.DNE(0,Oh,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zd,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ph,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Qd(xe,tt){1&xe&&e.eu8(0)}function eh(xe,tt){1&xe&&e.eu8(0)}function Lh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,eh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function $l(xe,tt){if(1&xe&&e.DNE(0,Qd,1,0,"ng-container",4)(1,Lh,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Zc,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function mc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$l,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function El(xe,tt){1&xe&&e.eu8(0)}function wo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,El,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function bc(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function Cp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Xl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function ar(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Cp,1,1,"SortAltIcon",3)(2,Xl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function wp(xe,tt){}function Jd(xe,tt){1&xe&&e.DNE(0,wp,0,0,"ng-template")}function ld(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,Jd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function eu(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function cd(xe,tt){1&xe&&e.eu8(0)}function th(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function Jf(xe,tt){1&xe&&e.eu8(0)}function tu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jf,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new zc.B;selectionSource=new zc.B;contextMenuSource=new zc.B;valueSource=new zc.B;totalRecordsSource=new zc.B;columnsSource=new zc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Pi,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=qi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Pi?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Pi=this.findIndexInSelection(nt);this._selection=this.selection.filter((qi,Yi)=>Yi!=Pi),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):Ieqi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Pi=>{let qi=le.BF.resolveFieldData(oi,Pi.field);return qi=null!=qi?this.exportFunction?this.exportFunction({data:qi,field:Pi.field}):String(qi).replace(/"/g,'""'):"",'"'+qi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(td,5),e.GBs(Hf,5),e.GBs($a,5),e.GBs(ap,5),e.GBs(lp,5),e.GBs(cp,5),e.GBs(Gc,5),e.GBs(_h,5),e.GBs(Ch,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,dp,3,2,"div",11)(3,pp,2,1,"div",12)(4,dc,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,$f,3,17,"p-scroller",15)(8,bp,2,7,"ng-container",16)(9,Mh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,$c,6,24,"p-paginator",13)(12,Vo,2,1,"div",17)(13,Dh,2,0,"div",18)(14,Eh,4,2,"span",19)(15,pc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,ll,Rc,jl,Jr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kc,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,2,"ng-container",0)(1,qd,2,2,"ng-container",0)(2,mc,2,2,"ng-container",0)(3,wo,2,5,"ng-container",0)(4,Da,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Wt=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),Qt=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,ar,4,3,"ng-container",0)(1,ld,2,4,"span",1)(2,eu,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Ns,ea,Fs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),fn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Rn=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),Zn=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(fn,8),e.rXU(Rn,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,th,2,1,"ng-container",0)(1,tu,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),Tr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,_a.u,Po,V.YN,Z.tm,cc,Hi,wa,jo,Gr,Rc,jl,Jr.N,Ns,ea,Fs,tr,Nc,Lo,xa,gl,Pe.Gg,Gr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/polyfills.43d8bf88a73d5232.js b/www/z4d/polyfills.43d8bf88a73d5232.js new file mode 100644 index 000000000..e63c36de2 --- /dev/null +++ b/www/z4d/polyfills.43d8bf88a73d5232.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[461],{12523:(a,v,t)=>{const r=":";Error;const Lt=function(m,...P){if(Lt.translate){const H=Lt.translate(m,P);m=H[0],P=H[1]}let j=Ct(m[0],m.raw[0]);for(let H=1;H{!function(T){const D=T.performance;function K(jt){D&&D.mark&&D.mark(jt)}function G(jt,ft){D&&D.measure&&D.measure(jt,ft)}K("Zone");const V=T.__Zone_symbol_prefix||"__zone_symbol__";function m(jt){return V+jt}const P=!0===T[m("forceDuplicateZoneCheck")];if(T.Zone){if(P||"function"!=typeof T.Zone.__symbol__)throw new Error("Zone already loaded.");return T.Zone}let j=(()=>{class jt{static#t=this.__symbol__=m;static assertZonePatched(){if(T.Promise!==sr.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let R=jt.current;for(;R.parent;)R=R.parent;return R}static get current(){return Xt.zone}static get currentTask(){return ar}static __load_patch(R,b,pt=!1){if(sr.hasOwnProperty(R)){if(!pt&&P)throw Error("Already loaded patch: "+R)}else if(!T["__Zone_disable_"+R]){const Tt="Zone:"+R;K(Tt),sr[R]=b(T,jt,kt),G(Tt,Tt)}}get parent(){return this._parent}get name(){return this._name}constructor(R,b){this._parent=R,this._name=b?b.name||"unnamed":"",this._properties=b&&b.properties||{},this._zoneDelegate=new Y(this,this._parent&&this._parent._zoneDelegate,b)}get(R){const b=this.getZoneWith(R);if(b)return b._properties[R]}getZoneWith(R){let b=this;for(;b;){if(b._properties.hasOwnProperty(R))return b;b=b._parent}return null}fork(R){if(!R)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,R)}wrap(R,b){if("function"!=typeof R)throw new Error("Expecting function got: "+R);const pt=this._zoneDelegate.intercept(this,R,b),Tt=this;return function(){return Tt.runGuarded(pt,this,arguments,b)}}run(R,b,pt,Tt){Xt={parent:Xt,zone:this};try{return this._zoneDelegate.invoke(this,R,b,pt,Tt)}finally{Xt=Xt.parent}}runGuarded(R,b=null,pt,Tt){Xt={parent:Xt,zone:this};try{try{return this._zoneDelegate.invoke(this,R,b,pt,Tt)}catch(qt){if(this._zoneDelegate.handleError(this,qt))throw qt}}finally{Xt=Xt.parent}}runTask(R,b,pt){if(R.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(R.zone||Yt).name+"; Execution: "+this.name+")");if(R.state===yt&&(R.type===_t||R.type===xt))return;const Tt=R.state!=lt;Tt&&R._transitionTo(lt,Dt),R.runCount++;const qt=ar;ar=R,Xt={parent:Xt,zone:this};try{R.type==xt&&R.data&&!R.data.isPeriodic&&(R.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,R,b,pt)}catch(tt){if(this._zoneDelegate.handleError(this,tt))throw tt}}finally{R.state!==yt&&R.state!==st&&(R.type==_t||R.data&&R.data.isPeriodic?Tt&&R._transitionTo(Dt,lt):(R.runCount=0,this._updateTaskCount(R,-1),Tt&&R._transitionTo(yt,lt,yt))),Xt=Xt.parent,ar=qt}}scheduleTask(R){if(R.zone&&R.zone!==this){let pt=this;for(;pt;){if(pt===R.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${R.zone.name}`);pt=pt.parent}}R._transitionTo(Ut,yt);const b=[];R._zoneDelegates=b,R._zone=this;try{R=this._zoneDelegate.scheduleTask(this,R)}catch(pt){throw R._transitionTo(st,Ut,yt),this._zoneDelegate.handleError(this,pt),pt}return R._zoneDelegates===b&&this._updateTaskCount(R,1),R.state==Ut&&R._transitionTo(Dt,Ut),R}scheduleMicroTask(R,b,pt,Tt){return this.scheduleTask(new W(Nt,R,b,pt,Tt,void 0))}scheduleMacroTask(R,b,pt,Tt,qt){return this.scheduleTask(new W(xt,R,b,pt,Tt,qt))}scheduleEventTask(R,b,pt,Tt,qt){return this.scheduleTask(new W(_t,R,b,pt,Tt,qt))}cancelTask(R){if(R.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(R.zone||Yt).name+"; Execution: "+this.name+")");if(R.state===Dt||R.state===lt){R._transitionTo($t,Dt,lt);try{this._zoneDelegate.cancelTask(this,R)}catch(b){throw R._transitionTo(st,$t),this._zoneDelegate.handleError(this,b),b}return this._updateTaskCount(R,-1),R._transitionTo(yt,$t),R.runCount=0,R}}_updateTaskCount(R,b){const pt=R._zoneDelegates;-1==b&&(R._zoneDelegates=null);for(let Tt=0;Ttjt.hasTask(R,b),onScheduleTask:(jt,ft,R,b)=>jt.scheduleTask(R,b),onInvokeTask:(jt,ft,R,b,pt,Tt)=>jt.invokeTask(R,b,pt,Tt),onCancelTask:(jt,ft,R,b)=>jt.cancelTask(R,b)};class Y{constructor(ft,R,b){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=ft,this._parentDelegate=R,this._forkZS=b&&(b&&b.onFork?b:R._forkZS),this._forkDlgt=b&&(b.onFork?R:R._forkDlgt),this._forkCurrZone=b&&(b.onFork?this.zone:R._forkCurrZone),this._interceptZS=b&&(b.onIntercept?b:R._interceptZS),this._interceptDlgt=b&&(b.onIntercept?R:R._interceptDlgt),this._interceptCurrZone=b&&(b.onIntercept?this.zone:R._interceptCurrZone),this._invokeZS=b&&(b.onInvoke?b:R._invokeZS),this._invokeDlgt=b&&(b.onInvoke?R:R._invokeDlgt),this._invokeCurrZone=b&&(b.onInvoke?this.zone:R._invokeCurrZone),this._handleErrorZS=b&&(b.onHandleError?b:R._handleErrorZS),this._handleErrorDlgt=b&&(b.onHandleError?R:R._handleErrorDlgt),this._handleErrorCurrZone=b&&(b.onHandleError?this.zone:R._handleErrorCurrZone),this._scheduleTaskZS=b&&(b.onScheduleTask?b:R._scheduleTaskZS),this._scheduleTaskDlgt=b&&(b.onScheduleTask?R:R._scheduleTaskDlgt),this._scheduleTaskCurrZone=b&&(b.onScheduleTask?this.zone:R._scheduleTaskCurrZone),this._invokeTaskZS=b&&(b.onInvokeTask?b:R._invokeTaskZS),this._invokeTaskDlgt=b&&(b.onInvokeTask?R:R._invokeTaskDlgt),this._invokeTaskCurrZone=b&&(b.onInvokeTask?this.zone:R._invokeTaskCurrZone),this._cancelTaskZS=b&&(b.onCancelTask?b:R._cancelTaskZS),this._cancelTaskDlgt=b&&(b.onCancelTask?R:R._cancelTaskDlgt),this._cancelTaskCurrZone=b&&(b.onCancelTask?this.zone:R._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const pt=b&&b.onHasTask;(pt||R&&R._hasTaskZS)&&(this._hasTaskZS=pt?b:H,this._hasTaskDlgt=R,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=ft,b.onScheduleTask||(this._scheduleTaskZS=H,this._scheduleTaskDlgt=R,this._scheduleTaskCurrZone=this.zone),b.onInvokeTask||(this._invokeTaskZS=H,this._invokeTaskDlgt=R,this._invokeTaskCurrZone=this.zone),b.onCancelTask||(this._cancelTaskZS=H,this._cancelTaskDlgt=R,this._cancelTaskCurrZone=this.zone))}fork(ft,R){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,ft,R):new j(ft,R)}intercept(ft,R,b){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,ft,R,b):R}invoke(ft,R,b,pt,Tt){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,ft,R,b,pt,Tt):R.apply(b,pt)}handleError(ft,R){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,ft,R)}scheduleTask(ft,R){let b=R;if(this._scheduleTaskZS)this._hasTaskZS&&b._zoneDelegates.push(this._hasTaskDlgtOwner),b=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,ft,R),b||(b=R);else if(R.scheduleFn)R.scheduleFn(R);else{if(R.type!=Nt)throw new Error("Task is missing scheduleFn.");mt(R)}return b}invokeTask(ft,R,b,pt){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,ft,R,b,pt):R.callback.apply(b,pt)}cancelTask(ft,R){let b;if(this._cancelTaskZS)b=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,ft,R);else{if(!R.cancelFn)throw Error("Task is not cancelable");b=R.cancelFn(R)}return b}hasTask(ft,R){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,ft,R)}catch(b){this.handleError(ft,b)}}_updateTaskCount(ft,R){const b=this._taskCounts,pt=b[ft],Tt=b[ft]=pt+R;if(Tt<0)throw new Error("More tasks executed then were scheduled.");0!=pt&&0!=Tt||this.hasTask(this.zone,{microTask:b.microTask>0,macroTask:b.macroTask>0,eventTask:b.eventTask>0,change:ft})}}class W{constructor(ft,R,b,pt,Tt,qt){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=ft,this.source=R,this.data=pt,this.scheduleFn=Tt,this.cancelFn=qt,!b)throw new Error("callback is not defined");this.callback=b;const tt=this;this.invoke=ft===_t&&pt&&pt.useG?W.invokeTask:function(){return W.invokeTask.call(T,tt,this,arguments)}}static invokeTask(ft,R,b){ft||(ft=this),nr++;try{return ft.runCount++,ft.zone.runTask(ft,R,b)}finally{1==nr&&ot(),nr--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(yt,Ut)}_transitionTo(ft,R,b){if(this._state!==R&&this._state!==b)throw new Error(`${this.type} '${this.source}': can not transition to '${ft}', expecting state '${R}'${b?" or '"+b+"'":""}, was '${this._state}'.`);this._state=ft,ft==yt&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const q=m("setTimeout"),J=m("Promise"),Q=m("then");let Ht,at=[],gt=!1;function Ft(jt){if(Ht||T[J]&&(Ht=T[J].resolve(0)),Ht){let ft=Ht[Q];ft||(ft=Ht.then),ft.call(Ht,jt)}else T[q](jt,0)}function mt(jt){0===nr&&0===at.length&&Ft(ot),jt&&at.push(jt)}function ot(){if(!gt){for(gt=!0;at.length;){const jt=at;at=[];for(let ft=0;ftXt,onUnhandledError:Jt,microtaskDrainDone:Jt,scheduleMicroTask:mt,showUncaughtError:()=>!j[m("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:Jt,patchMethod:()=>Jt,bindArguments:()=>[],patchThen:()=>Jt,patchMacroTask:()=>Jt,patchEventPrototype:()=>Jt,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>Jt,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>Jt,wrapWithCurrentZone:()=>Jt,filterProperties:()=>[],attachOriginToPatched:()=>Jt,_redefineProperty:()=>Jt,patchCallbacks:()=>Jt,nativeScheduleMicroTask:Ft};let Xt={parent:null,zone:new j(null,null)},ar=null,nr=0;function Jt(){}G("Zone","Zone"),T.Zone=j}(globalThis);const a=Object.getOwnPropertyDescriptor,v=Object.defineProperty,t=Object.getPrototypeOf,r=Object.create,n=Array.prototype.slice,e="addEventListener",o="removeEventListener",s=Zone.__symbol__(e),u=Zone.__symbol__(o),i="true",f="false",l=Zone.__symbol__("");function c(T,D){return Zone.current.wrap(T,D)}function g(T,D,K,G,V){return Zone.current.scheduleMacroTask(T,D,K,G,V)}const d=Zone.__symbol__,y=typeof window<"u",p=y?window:void 0,h=y&&p||globalThis,x="removeAttribute";function C(T,D){for(let K=T.length-1;K>=0;K--)"function"==typeof T[K]&&(T[K]=c(T[K],D+"_"+K));return T}function E(T){return!T||!1!==T.writable&&!("function"==typeof T.get&&typeof T.set>"u")}const A=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,S=!("nw"in h)&&typeof h.process<"u"&&"[object process]"==={}.toString.call(h.process),I=!S&&!A&&!(!y||!p.HTMLElement),M=typeof h.process<"u"&&"[object process]"==={}.toString.call(h.process)&&!A&&!(!y||!p.HTMLElement),$={},N=function(T){if(!(T=T||h.event))return;let D=$[T.type];D||(D=$[T.type]=d("ON_PROPERTY"+T.type));const K=this||T.target||h,G=K[D];let V;return I&&K===p&&"error"===T.type?(V=G&&G.call(this,T.message,T.filename,T.lineno,T.colno,T.error),!0===V&&T.preventDefault()):(V=G&&G.apply(this,arguments),null!=V&&!V&&T.preventDefault()),V};function F(T,D,K){let G=a(T,D);if(!G&&K&&a(K,D)&&(G={enumerable:!0,configurable:!0}),!G||!G.configurable)return;const V=d("on"+D+"patched");if(T.hasOwnProperty(V)&&T[V])return;delete G.writable,delete G.value;const m=G.get,P=G.set,j=D.slice(2);let H=$[j];H||(H=$[j]=d("ON_PROPERTY"+j)),G.set=function(Y){let W=this;!W&&T===h&&(W=h),W&&("function"==typeof W[H]&&W.removeEventListener(j,N),P&&P.call(W,null),W[H]=Y,"function"==typeof Y&&W.addEventListener(j,N,!1))},G.get=function(){let Y=this;if(!Y&&T===h&&(Y=h),!Y)return null;const W=Y[H];if(W)return W;if(m){let q=m.call(this);if(q)return G.set.call(this,q),"function"==typeof Y[x]&&Y.removeAttribute(D),q}return null},v(T,D,G),T[V]=!0}function Z(T,D,K){if(D)for(let G=0;Gfunction(P,j){const H=K(P,j);return H.cbIdx>=0&&"function"==typeof j[H.cbIdx]?g(H.name,j[H.cbIdx],H,V):m.apply(P,j)})}function w(T,D){T[d("OriginalDelegate")]=D}let rt=!1,nt=!1;function k(){if(rt)return nt;rt=!0;try{const T=p.navigator.userAgent;(-1!==T.indexOf("MSIE ")||-1!==T.indexOf("Trident/")||-1!==T.indexOf("Edge/"))&&(nt=!0)}catch{}return nt}Zone.__load_patch("ZoneAwarePromise",(T,D,K)=>{const G=Object.getOwnPropertyDescriptor,V=Object.defineProperty,P=K.symbol,j=[],H=!1!==T[P("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],Y=P("Promise"),W=P("then"),q="__creationTrace__";K.onUnhandledError=tt=>{if(K.showUncaughtError()){const _=tt&&tt.rejection;_?console.error("Unhandled Promise rejection:",_ instanceof Error?_.message:_,"; Zone:",tt.zone.name,"; Task:",tt.task&&tt.task.source,"; Value:",_,_ instanceof Error?_.stack:void 0):console.error(tt)}},K.microtaskDrainDone=()=>{for(;j.length;){const tt=j.shift();try{tt.zone.runGuarded(()=>{throw tt.throwOriginal?tt.rejection:tt})}catch(_){Q(_)}}};const J=P("unhandledPromiseRejectionHandler");function Q(tt){K.onUnhandledError(tt);try{const _=D[J];"function"==typeof _&&_.call(this,tt)}catch{}}function at(tt){return tt&&tt.then}function gt(tt){return tt}function Ht(tt){return R.reject(tt)}const Ft=P("state"),mt=P("value"),ot=P("finally"),Yt=P("parentPromiseValue"),yt=P("parentPromiseState"),Ut="Promise.then",Dt=null,lt=!0,$t=!1,st=0;function Nt(tt,_){return z=>{try{kt(tt,_,z)}catch(et){kt(tt,!1,et)}}}const xt=function(){let tt=!1;return function(z){return function(){tt||(tt=!0,z.apply(null,arguments))}}},_t="Promise resolved with itself",sr=P("currentTaskTrace");function kt(tt,_,z){const et=xt();if(tt===z)throw new TypeError(_t);if(tt[Ft]===Dt){let ht=null;try{("object"==typeof z||"function"==typeof z)&&(ht=z&&z.then)}catch(St){return et(()=>{kt(tt,!1,St)})(),tt}if(_!==$t&&z instanceof R&&z.hasOwnProperty(Ft)&&z.hasOwnProperty(mt)&&z[Ft]!==Dt)ar(z),kt(tt,z[Ft],z[mt]);else if(_!==$t&&"function"==typeof ht)try{ht.call(z,et(Nt(tt,_)),et(Nt(tt,!1)))}catch(St){et(()=>{kt(tt,!1,St)})()}else{tt[Ft]=_;const St=tt[mt];if(tt[mt]=z,tt[ot]===ot&&_===lt&&(tt[Ft]=tt[yt],tt[mt]=tt[Yt]),_===$t&&z instanceof Error){const dt=D.currentTask&&D.currentTask.data&&D.currentTask.data[q];dt&&V(z,sr,{configurable:!0,enumerable:!1,writable:!0,value:dt})}for(let dt=0;dt{try{const It=tt[mt],Rt=!!z&&ot===z[ot];Rt&&(z[Yt]=It,z[yt]=St);const Pt=_.run(dt,void 0,Rt&&dt!==Ht&&dt!==gt?[]:[It]);kt(z,!0,Pt)}catch(It){kt(z,!1,It)}},z)}const jt=function(){},ft=T.AggregateError;class R{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(_){return _ instanceof R?_:kt(new this(null),lt,_)}static reject(_){return kt(new this(null),$t,_)}static withResolvers(){const _={};return _.promise=new R((z,et)=>{_.resolve=z,_.reject=et}),_}static any(_){if(!_||"function"!=typeof _[Symbol.iterator])return Promise.reject(new ft([],"All promises were rejected"));const z=[];let et=0;try{for(let dt of _)et++,z.push(R.resolve(dt))}catch{return Promise.reject(new ft([],"All promises were rejected"))}if(0===et)return Promise.reject(new ft([],"All promises were rejected"));let ht=!1;const St=[];return new R((dt,It)=>{for(let Rt=0;Rt{ht||(ht=!0,dt(Pt))},Pt=>{St.push(Pt),et--,0===et&&(ht=!0,It(new ft(St,"All promises were rejected")))})})}static race(_){let z,et,ht=new this((It,Rt)=>{z=It,et=Rt});function St(It){z(It)}function dt(It){et(It)}for(let It of _)at(It)||(It=this.resolve(It)),It.then(St,dt);return ht}static all(_){return R.allWithCallback(_)}static allSettled(_){return(this&&this.prototype instanceof R?this:R).allWithCallback(_,{thenCallback:et=>({status:"fulfilled",value:et}),errorCallback:et=>({status:"rejected",reason:et})})}static allWithCallback(_,z){let et,ht,St=new this((Pt,Bt)=>{et=Pt,ht=Bt}),dt=2,It=0;const Rt=[];for(let Pt of _){at(Pt)||(Pt=this.resolve(Pt));const Bt=It;try{Pt.then(Gt=>{Rt[Bt]=z?z.thenCallback(Gt):Gt,dt--,0===dt&&et(Rt)},Gt=>{z?(Rt[Bt]=z.errorCallback(Gt),dt--,0===dt&&et(Rt)):ht(Gt)})}catch(Gt){ht(Gt)}dt++,It++}return dt-=2,0===dt&&et(Rt),St}constructor(_){const z=this;if(!(z instanceof R))throw new Error("Must be an instanceof Promise.");z[Ft]=Dt,z[mt]=[];try{const et=xt();_&&_(et(Nt(z,lt)),et(Nt(z,$t)))}catch(et){kt(z,!1,et)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return R}then(_,z){let et=this.constructor?.[Symbol.species];(!et||"function"!=typeof et)&&(et=this.constructor||R);const ht=new et(jt),St=D.current;return this[Ft]==Dt?this[mt].push(St,ht,_,z):nr(this,St,ht,_,z),ht}catch(_){return this.then(null,_)}finally(_){let z=this.constructor?.[Symbol.species];(!z||"function"!=typeof z)&&(z=R);const et=new z(jt);et[ot]=ot;const ht=D.current;return this[Ft]==Dt?this[mt].push(ht,et,_,_):nr(this,ht,et,_,_),et}}R.resolve=R.resolve,R.reject=R.reject,R.race=R.race,R.all=R.all;const b=T[Y]=T.Promise;T.Promise=R;const pt=P("thenPatched");function Tt(tt){const _=tt.prototype,z=G(_,"then");if(z&&(!1===z.writable||!z.configurable))return;const et=_.then;_[W]=et,tt.prototype.then=function(ht,St){return new R((It,Rt)=>{et.call(this,It,Rt)}).then(ht,St)},tt[pt]=!0}return K.patchThen=Tt,b&&(Tt(b),B(T,"fetch",tt=>function qt(tt){return function(_,z){let et=tt.apply(_,z);if(et instanceof R)return et;let ht=et.constructor;return ht[pt]||Tt(ht),et}}(tt))),Promise[D.__symbol__("uncaughtPromiseErrors")]=j,R}),Zone.__load_patch("toString",T=>{const D=Function.prototype.toString,K=d("OriginalDelegate"),G=d("Promise"),V=d("Error"),m=function(){if("function"==typeof this){const Y=this[K];if(Y)return"function"==typeof Y?D.call(Y):Object.prototype.toString.call(Y);if(this===Promise){const W=T[G];if(W)return D.call(W)}if(this===Error){const W=T[V];if(W)return D.call(W)}}return D.call(this)};m[K]=D,Function.prototype.toString=m;const P=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":P.call(this)}});let vt=!1;if(typeof window<"u")try{const T=Object.defineProperty({},"passive",{get:function(){vt=!0}});window.addEventListener("test",T,T),window.removeEventListener("test",T,T)}catch{vt=!1}const it={useG:!0},ct={},Et={},Ot=new RegExp("^"+l+"(\\w+)(true|false)$"),bt=d("propagationStopped");function Vt(T,D){const K=(D?D(T):T)+f,G=(D?D(T):T)+i,V=l+K,m=l+G;ct[T]={},ct[T][f]=V,ct[T][i]=m}function Lt(T,D,K,G){const V=G&&G.add||e,m=G&&G.rm||o,P=G&&G.listeners||"eventListeners",j=G&&G.rmAll||"removeAllListeners",H=d(V),Y="."+V+":",W="prependListener",q="."+W+":",J=function(mt,ot,Yt){if(mt.isRemoved)return;const yt=mt.callback;let Ut;"object"==typeof yt&&yt.handleEvent&&(mt.callback=lt=>yt.handleEvent(lt),mt.originalDelegate=yt);try{mt.invoke(mt,ot,[Yt])}catch(lt){Ut=lt}const Dt=mt.options;return Dt&&"object"==typeof Dt&&Dt.once&&ot[m].call(ot,Yt.type,mt.originalDelegate?mt.originalDelegate:mt.callback,Dt),Ut};function Q(mt,ot,Yt){if(!(ot=ot||T.event))return;const yt=mt||ot.target||T,Ut=yt[ct[ot.type][Yt?i:f]];if(Ut){const Dt=[];if(1===Ut.length){const lt=J(Ut[0],yt,ot);lt&&Dt.push(lt)}else{const lt=Ut.slice();for(let $t=0;$t{throw $t})}}}const at=function(mt){return Q(this,mt,!1)},gt=function(mt){return Q(this,mt,!0)};function Ht(mt,ot){if(!mt)return!1;let Yt=!0;ot&&void 0!==ot.useG&&(Yt=ot.useG);const yt=ot&&ot.vh;let Ut=!0;ot&&void 0!==ot.chkDup&&(Ut=ot.chkDup);let Dt=!1;ot&&void 0!==ot.rt&&(Dt=ot.rt);let lt=mt;for(;lt&&!lt.hasOwnProperty(V);)lt=t(lt);if(!lt&&mt[V]&&(lt=mt),!lt||lt[H])return!1;const $t=ot&&ot.eventNameToString,st={},Nt=lt[H]=lt[V],xt=lt[d(m)]=lt[m],_t=lt[d(P)]=lt[P],sr=lt[d(j)]=lt[j];let kt;ot&&ot.prepend&&(kt=lt[d(ot.prepend)]=lt[ot.prepend]);const R=Yt?function(z){if(!st.isExisting)return Nt.call(st.target,st.eventName,st.capture?gt:at,st.options)}:function(z){return Nt.call(st.target,st.eventName,z.invoke,st.options)},b=Yt?function(z){if(!z.isRemoved){const et=ct[z.eventName];let ht;et&&(ht=et[z.capture?i:f]);const St=ht&&z.target[ht];if(St)for(let dt=0;dt{ur.zone.cancelTask(ur)},{once:!0})),st.target=null,dr&&(dr.taskData=null),yr&&(tr.once=!0),!vt&&"boolean"==typeof ur.options||(ur.options=tr),ur.target=Rt,ur.capture=gr,ur.eventName=Pt,Gt&&(ur.originalDelegate=Bt),It?fr.unshift(ur):fr.push(ur),dt?Rt:void 0}};return lt[V]=_(Nt,Y,R,b,Dt),kt&&(lt[W]=_(kt,q,function(z){return kt.call(st.target,st.eventName,z.invoke,st.options)},b,Dt,!0)),lt[m]=function(){const z=this||T;let et=arguments[0];ot&&ot.transferEventName&&(et=ot.transferEventName(et));const ht=arguments[2],St=!!ht&&("boolean"==typeof ht||ht.capture),dt=arguments[1];if(!dt)return xt.apply(this,arguments);if(yt&&!yt(xt,dt,z,arguments))return;const It=ct[et];let Rt;It&&(Rt=It[St?i:f]);const Pt=Rt&&z[Rt];if(Pt)for(let Bt=0;Btfunction(V,m){V[bt]=!0,G&&G.apply(V,m)})}function Qt(T,D,K,G,V){const m=Zone.__symbol__(G);if(D[m])return;const P=D[m]=D[G];D[G]=function(j,H,Y){return H&&H.prototype&&V.forEach(function(W){const q=`${K}.${G}::`+W,J=H.prototype;try{if(J.hasOwnProperty(W)){const Q=T.ObjectGetOwnPropertyDescriptor(J,W);Q&&Q.value?(Q.value=T.wrapWithCurrentZone(Q.value,q),T._redefineProperty(H.prototype,W,Q)):J[W]&&(J[W]=T.wrapWithCurrentZone(J[W],q))}else J[W]&&(J[W]=T.wrapWithCurrentZone(J[W],q))}catch{}}),P.call(D,j,H,Y)},T.attachOriginToPatched(D[G],P)}function Wt(T,D,K){if(!K||0===K.length)return D;const G=K.filter(m=>m.target===T);if(!G||0===G.length)return D;const V=G[0].ignoreProperties;return D.filter(m=>-1===V.indexOf(m))}function zt(T,D,K,G){T&&Z(T,Wt(T,D,K),G)}function Zt(T){return Object.getOwnPropertyNames(T).filter(D=>D.startsWith("on")&&D.length>2).map(D=>D.substring(2))}Zone.__load_patch("util",(T,D,K)=>{const G=Zt(T);K.patchOnProperties=Z,K.patchMethod=B,K.bindArguments=C,K.patchMacroTask=X;const V=D.__symbol__("BLACK_LISTED_EVENTS"),m=D.__symbol__("UNPATCHED_EVENTS");T[m]&&(T[V]=T[m]),T[V]&&(D[V]=D[m]=T[V]),K.patchEventPrototype=Ct,K.patchEventTarget=Lt,K.isIEOrEdge=k,K.ObjectDefineProperty=v,K.ObjectGetOwnPropertyDescriptor=a,K.ObjectCreate=r,K.ArraySlice=n,K.patchClass=U,K.wrapWithCurrentZone=c,K.filterProperties=Wt,K.attachOriginToPatched=w,K._redefineProperty=Object.defineProperty,K.patchCallbacks=Qt,K.getGlobalObjects=()=>({globalSources:Et,zoneSymbolEventNames:ct,eventNames:G,isBrowser:I,isMix:M,isNode:S,TRUE_STR:i,FALSE_STR:f,ZONE_SYMBOL_PREFIX:l,ADD_EVENT_LISTENER_STR:e,REMOVE_EVENT_LISTENER_STR:o})});const Kt=d("zoneTask");function Mt(T,D,K,G){let V=null,m=null;K+=G;const P={};function j(Y){const W=Y.data;return W.args[0]=function(){return Y.invoke.apply(this,arguments)},W.handleId=V.apply(T,W.args),Y}function H(Y){return m.call(T,Y.data.handleId)}V=B(T,D+=G,Y=>function(W,q){if("function"==typeof q[0]){const J={isPeriodic:"Interval"===G,delay:"Timeout"===G||"Interval"===G?q[1]||0:void 0,args:q},Q=q[0];q[0]=function(){try{return Q.apply(this,arguments)}finally{J.isPeriodic||("number"==typeof J.handleId?delete P[J.handleId]:J.handleId&&(J.handleId[Kt]=null))}};const at=g(D,q[0],J,j,H);if(!at)return at;const gt=at.data.handleId;return"number"==typeof gt?P[gt]=at:gt&&(gt[Kt]=at),gt&>.ref&>.unref&&"function"==typeof gt.ref&&"function"==typeof gt.unref&&(at.ref=gt.ref.bind(gt),at.unref=gt.unref.bind(gt)),"number"==typeof gt||gt?gt:at}return Y.apply(T,q)}),m=B(T,K,Y=>function(W,q){const J=q[0];let Q;"number"==typeof J?Q=P[J]:(Q=J&&J[Kt],Q||(Q=J)),Q&&"string"==typeof Q.type?"notScheduled"!==Q.state&&(Q.cancelFn&&Q.data.isPeriodic||0===Q.runCount)&&("number"==typeof J?delete P[J]:J&&(J[Kt]=null),Q.zone.cancelTask(Q)):Y.apply(T,q)})}Zone.__load_patch("legacy",T=>{const D=T[Zone.__symbol__("legacyPatch")];D&&D()}),Zone.__load_patch("timers",T=>{const D="set",K="clear";Mt(T,D,K,"Timeout"),Mt(T,D,K,"Interval"),Mt(T,D,K,"Immediate")}),Zone.__load_patch("requestAnimationFrame",T=>{Mt(T,"request","cancel","AnimationFrame"),Mt(T,"mozRequest","mozCancel","AnimationFrame"),Mt(T,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(T,D)=>{const K=["alert","prompt","confirm"];for(let G=0;Gfunction(H,Y){return D.current.run(m,T,Y,j)})}),Zone.__load_patch("EventTarget",(T,D,K)=>{(function or(T,D){D.patchEventPrototype(T,D)})(T,K),function ir(T,D){if(Zone[D.symbol("patchEventTarget")])return;const{eventNames:K,zoneSymbolEventNames:G,TRUE_STR:V,FALSE_STR:m,ZONE_SYMBOL_PREFIX:P}=D.getGlobalObjects();for(let H=0;H{U("MutationObserver"),U("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(T,D,K)=>{U("IntersectionObserver")}),Zone.__load_patch("FileReader",(T,D,K)=>{U("FileReader")}),Zone.__load_patch("on_property",(T,D,K)=>{!function wt(T,D){if(S&&!M||Zone[T.symbol("patchEvents")])return;const K=D.__Zone_ignore_on_properties;let G=[];if(I){const V=window;G=G.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const m=function ut(){try{const T=p.navigator.userAgent;if(-1!==T.indexOf("MSIE ")||-1!==T.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:V,ignoreProperties:["error"]}]:[];zt(V,Zt(V),K&&K.concat(m),t(V))}G=G.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let V=0;V{!function er(T,D){const{isBrowser:K,isMix:G}=D.getGlobalObjects();(K||G)&&T.customElements&&"customElements"in T&&D.patchCallbacks(D,T.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(T,K)}),Zone.__load_patch("XHR",(T,D)=>{!function H(Y){const W=Y.XMLHttpRequest;if(!W)return;const q=W.prototype;let Q=q[s],at=q[u];if(!Q){const st=Y.XMLHttpRequestEventTarget;if(st){const Nt=st.prototype;Q=Nt[s],at=Nt[u]}}const gt="readystatechange",Ht="scheduled";function Ft(st){const Nt=st.data,xt=Nt.target;xt[m]=!1,xt[j]=!1;const _t=xt[V];Q||(Q=xt[s],at=xt[u]),_t&&at.call(xt,gt,_t);const sr=xt[V]=()=>{if(xt.readyState===xt.DONE)if(!Nt.aborted&&xt[m]&&st.state===Ht){const Xt=xt[D.__symbol__("loadfalse")];if(0!==xt.status&&Xt&&Xt.length>0){const ar=st.invoke;st.invoke=function(){const nr=xt[D.__symbol__("loadfalse")];for(let Jt=0;Jtfunction(st,Nt){return st[G]=0==Nt[2],st[P]=Nt[1],Yt.apply(st,Nt)}),Ut=d("fetchTaskAborting"),Dt=d("fetchTaskScheduling"),lt=B(q,"send",()=>function(st,Nt){if(!0===D.current[Dt]||st[G])return lt.apply(st,Nt);{const xt={target:st,url:st[P],isPeriodic:!1,args:Nt,aborted:!1},_t=g("XMLHttpRequest.send",mt,xt,Ft,ot);st&&!0===st[j]&&!xt.aborted&&_t.state===Ht&&_t.invoke()}}),$t=B(q,"abort",()=>function(st,Nt){const xt=function J(st){return st[K]}(st);if(xt&&"string"==typeof xt.type){if(null==xt.cancelFn||xt.data&&xt.data.aborted)return;xt.zone.cancelTask(xt)}else if(!0===D.current[Ut])return $t.apply(st,Nt)})}(T);const K=d("xhrTask"),G=d("xhrSync"),V=d("xhrListener"),m=d("xhrScheduled"),P=d("xhrURL"),j=d("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",T=>{T.navigator&&T.navigator.geolocation&&function O(T,D){const K=T.constructor.name;for(let G=0;G{const H=function(){return j.apply(this,C(arguments,K+"."+V))};return w(H,j),H})(m)}}}(T.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(T,D)=>{function K(G){return function(V){At(T,G).forEach(P=>{const j=T.PromiseRejectionEvent;if(j){const H=new j(G,{promise:V.promise,reason:V.rejection});P.invoke(H)}})}}T.PromiseRejectionEvent&&(D[d("unhandledPromiseRejectionHandler")]=K("unhandledrejection"),D[d("rejectionHandledHandler")]=K("rejectionhandled"))}),Zone.__load_patch("queueMicrotask",(T,D,K)=>{!function rr(T,D){D.patchMethod(T,"queueMicrotask",K=>function(G,V){Zone.current.scheduleMicroTask("queueMicrotask",V[0])})}(T,K)})},45666:(a,v,t)=>{t(23418),t(64346),t(31051),t(18107),t(28706),t(26835),t(88431),t(33771),t(2008),t(50113),t(48980),t(10838),t(13451),t(46449),t(78350),t(51629),t(74423),t(25276),t(23792),t(48598),t(8921),t(62062),t(44114),t(72712),t(18863),t(94490),t(34782),t(15086),t(26910),t(87478),t(54554),t(9678),t(57145),t(71658),t(93514),t(30237),t(13609),t(11558),t(26099),t(47764);var r=t(19167);a.exports=r.Array},85913:(a,v,t)=>{t(61699),t(59089),t(91191),t(93515),t(1688),t(60739),t(23288),t(89572);var r=t(19167);a.exports=r.Date},38881:(a,v,t)=>{t(94170),t(62010),t(48957);var r=t(19167);a.exports=r.Function},95257:(a,v,t)=>{t(23792),t(36033),t(47072),t(26099),t(47764);var r=t(19167);a.exports=r.Map},29187:(a,v,t)=>{t(93153),t(82326),t(36389),t(64444),t(8085),t(77762),t(65070),t(60605),t(39469),t(72152),t(75376),t(56624),t(11367),t(5914),t(78553),t(98690),t(60479),t(70761);var r=t(19167);a.exports=r.Math},22696:(a,v,t)=>{t(2892),t(45374),t(25428),t(32637),t(40150),t(59149),t(64601),t(44435),t(87220),t(25843),t(62337),t(9868),t(80630);var r=t(19167);a.exports=r.Number},99246:(a,v,t)=>{t(52675),t(69085),t(59904),t(84185),t(67945),t(5506),t(52811),t(53921),t(83851),t(81278),t(1480),t(40875),t(77691),t(78347),t(29908),t(94052),t(94003),t(221),t(79432),t(93967),t(63548),t(93941),t(10287),t(16034),t(26099),t(17427),t(87607),t(9220),t(7904),t(4731),t(60479),t(15472);var r=t(19167);a.exports=r.Object},21308:(a,v,t)=>{t(78459);var r=t(19167);a.exports=r.parseFloat},69339:(a,v,t)=>{t(58940);var r=t(19167);a.exports=r.parseInt},82374:(a,v,t)=>{t(26099),t(39796),t(60825),t(87411),t(21211),t(40888),t(9065),t(86565),t(32812),t(84634),t(71137),t(30985),t(34268),t(34873),t(15472);var r=t(19167);a.exports=r.Reflect},64088:(a,v,t)=>{t(84864),t(38781),t(57465),t(27495),t(69479),t(87745),t(90906),t(71761),t(25440),t(5746),t(90744)},57655:(a,v,t)=>{t(23792),t(26099),t(31415),t(47764);var r=t(19167);a.exports=r.Set},18840:(a,v,t)=>{t(26099),t(27495),t(27337),t(85906),t(23860),t(67357),t(99449),t(21699),t(42043),t(71761),t(28543),t(35701),t(68156),t(42781),t(25440),t(79978),t(5746),t(90744),t(11392),t(50375),t(67438),t(42762),t(43359),t(39202),t(47764),t(89907),t(11898),t(35490),t(5745),t(94298),t(60268),t(69546),t(20781),t(50778),t(89195),t(46276),t(48718),t(16308);var r=t(19167);a.exports=r.String},39281:(a,v,t)=>{t(28706),t(26099),t(52675),t(66412),t(89463),t(60193),t(92168),t(2259),t(86964),t(83142),t(83237),t(61833),t(67947),t(31073),t(45700),t(78125),t(20326),t(4731),t(60479),t(15472);var r=t(19167);a.exports=r.Symbol},81502:(a,v,t)=>{t(23792),t(26099),t(73772);var r=t(19167);a.exports=r.WeakMap},79306:(a,v,t)=>{var r=t(94901),n=t(16823),e=TypeError;a.exports=function(o){if(r(o))return o;throw new e(n(o)+" is not a function")}},35548:(a,v,t)=>{var r=t(33517),n=t(16823),e=TypeError;a.exports=function(o){if(r(o))return o;throw new e(n(o)+" is not a constructor")}},73506:(a,v,t)=>{var r=t(13925),n=String,e=TypeError;a.exports=function(o){if(r(o))return o;throw new e("Can't set "+n(o)+" as a prototype")}},6469:(a,v,t)=>{var r=t(78227),n=t(2360),e=t(24913).f,o=r("unscopables"),s=Array.prototype;void 0===s[o]&&e(s,o,{configurable:!0,value:n(null)}),a.exports=function(u){s[o][u]=!0}},57829:(a,v,t)=>{var r=t(68183).charAt;a.exports=function(n,e,o){return e+(o?r(n,e).length:1)}},90679:(a,v,t)=>{var r=t(1625),n=TypeError;a.exports=function(e,o){if(r(o,e))return e;throw new n("Incorrect invocation")}},28551:(a,v,t)=>{var r=t(20034),n=String,e=TypeError;a.exports=function(o){if(r(o))return o;throw new e(n(o)+" is not an object")}},15652:(a,v,t)=>{var r=t(79039);a.exports=r(function(){if("function"==typeof ArrayBuffer){var n=new ArrayBuffer(8);Object.isExtensible(n)&&Object.defineProperty(n,"a",{value:8})}})},57029:(a,v,t)=>{var r=t(48981),n=t(35610),e=t(26198),o=t(84606),s=Math.min;a.exports=[].copyWithin||function(i,f){var l=r(this),c=e(l),g=n(i,c),d=n(f,c),y=arguments.length>2?arguments[2]:void 0,p=s((void 0===y?c:n(y,c))-d,c-g),h=1;for(d0;)d in l?l[g]=l[d]:o(l,g),g+=h,d+=h;return l}},84373:(a,v,t)=>{var r=t(48981),n=t(35610),e=t(26198);a.exports=function(s){for(var u=r(this),i=e(u),f=arguments.length,l=n(f>1?arguments[1]:void 0,i),c=f>2?arguments[2]:void 0,g=void 0===c?i:n(c,i);g>l;)u[l++]=s;return u}},90235:(a,v,t)=>{var r=t(59213).forEach,e=t(34598)("forEach");a.exports=e?[].forEach:function(s){return r(this,s,arguments.length>1?arguments[1]:void 0)}},35370:(a,v,t)=>{var r=t(26198);a.exports=function(n,e,o){for(var s=0,u=arguments.length>2?o:r(e),i=new n(u);u>s;)i[s]=e[s++];return i}},97916:(a,v,t)=>{var r=t(76080),n=t(69565),e=t(48981),o=t(96319),s=t(44209),u=t(33517),i=t(26198),f=t(97040),l=t(70081),c=t(50851),g=Array;a.exports=function(y){var p=e(y),h=u(this),x=arguments.length,C=x>1?arguments[1]:void 0,O=void 0!==C;O&&(C=r(C,x>2?arguments[2]:void 0));var S,I,M,$,N,F,E=c(p),A=0;if(!E||this===g&&s(E))for(S=i(p),I=h?new this(S):g(S);S>A;A++)F=O?C(p[A],A):p[A],f(I,A,F);else for(N=($=l(p,E)).next,I=h?new this:[];!(M=n(N,$)).done;A++)F=O?o($,C,[M.value,A],!0):M.value,f(I,A,F);return I.length=A,I}},19617:(a,v,t)=>{var r=t(25397),n=t(35610),e=t(26198),o=function(s){return function(u,i,f){var l=r(u),c=e(l);if(0===c)return!s&&-1;var d,g=n(f,c);if(s&&i!=i){for(;c>g;)if((d=l[g++])!=d)return!0}else for(;c>g;g++)if((s||g in l)&&l[g]===i)return s||g||0;return!s&&-1}};a.exports={includes:o(!0),indexOf:o(!1)}},43839:(a,v,t)=>{var r=t(76080),n=t(47055),e=t(48981),o=t(26198),s=function(u){var i=1===u;return function(f,l,c){for(var h,g=e(f),d=n(g),y=o(d),p=r(l,c);y-- >0;)if(p(h=d[y],y,g))switch(u){case 0:return h;case 1:return y}return i?-1:void 0}};a.exports={findLast:s(0),findLastIndex:s(1)}},59213:(a,v,t)=>{var r=t(76080),n=t(79504),e=t(47055),o=t(48981),s=t(26198),u=t(1469),i=n([].push),f=function(l){var c=1===l,g=2===l,d=3===l,y=4===l,p=6===l,h=7===l,x=5===l||p;return function(C,O,E,A){for(var L,U,S=o(C),I=e(S),M=s(I),$=r(O,E),N=0,F=A||u,Z=c?F(C,M):g||h?F(C,0):void 0;M>N;N++)if((x||N in I)&&(U=$(L=I[N],N,S),l))if(c)Z[N]=U;else if(U)switch(l){case 3:return!0;case 5:return L;case 6:return N;case 2:i(Z,L)}else switch(l){case 4:return!1;case 7:i(Z,L)}return p?-1:d||y?y:Z}};a.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},8379:(a,v,t)=>{var r=t(18745),n=t(25397),e=t(91291),o=t(26198),s=t(34598),u=Math.min,i=[].lastIndexOf,f=!!i&&1/[1].lastIndexOf(1,-0)<0,l=s("lastIndexOf");a.exports=f||!l?function(d){if(f)return r(i,this,arguments)||0;var y=n(this),p=o(y);if(0===p)return-1;var h=p-1;for(arguments.length>1&&(h=u(h,e(arguments[1]))),h<0&&(h=p+h);h>=0;h--)if(h in y&&y[h]===d)return h||0;return-1}:i},70597:(a,v,t)=>{var r=t(79039),n=t(78227),e=t(77388),o=n("species");a.exports=function(s){return e>=51||!r(function(){var u=[];return(u.constructor={})[o]=function(){return{foo:1}},1!==u[s](Boolean).foo})}},34598:(a,v,t)=>{var r=t(79039);a.exports=function(n,e){var o=[][n];return!!o&&r(function(){o.call(null,e||function(){return 1},1)})}},80926:(a,v,t)=>{var r=t(79306),n=t(48981),e=t(47055),o=t(26198),s=TypeError,u="Reduce of empty array with no initial value",i=function(f){return function(l,c,g,d){var y=n(l),p=e(y),h=o(y);if(r(c),0===h&&g<2)throw new s(u);var x=f?h-1:0,C=f?-1:1;if(g<2)for(;;){if(x in p){d=p[x],x+=C;break}if(x+=C,f?x<0:h<=x)throw new s(u)}for(;f?x>=0:h>x;x+=C)x in p&&(d=c(d,p[x],x,y));return d}};a.exports={left:i(!1),right:i(!0)}},34527:(a,v,t)=>{var r=t(43724),n=t(34376),e=TypeError,o=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(u){return u instanceof TypeError}}();a.exports=s?function(u,i){if(n(u)&&!o(u,"length").writable)throw new e("Cannot set read only .length");return u.length=i}:function(u,i){return u.length=i}},67680:(a,v,t)=>{var r=t(79504);a.exports=r([].slice)},74488:(a,v,t)=>{var r=t(67680),n=Math.floor,e=function(o,s){var u=o.length;if(u<8)for(var f,l,i=1;i0;)o[l]=o[--l];l!==i++&&(o[l]=f)}else for(var c=n(u/2),g=e(r(o,0,c),s),d=e(r(o,c),s),y=g.length,p=d.length,h=0,x=0;h{var r=t(34376),n=t(33517),e=t(20034),s=t(78227)("species"),u=Array;a.exports=function(i){var f;return r(i)&&(n(f=i.constructor)&&(f===u||r(f.prototype))||e(f)&&null===(f=f[s]))&&(f=void 0),void 0===f?u:f}},1469:(a,v,t)=>{var r=t(87433);a.exports=function(n,e){return new(r(n))(0===e?0:e)}},37628:(a,v,t)=>{var r=t(26198);a.exports=function(n,e){for(var o=r(n),s=new e(o),u=0;u{var r=t(26198),n=t(91291),e=RangeError;a.exports=function(o,s,u,i){var f=r(o),l=n(u),c=l<0?f+l:l;if(c>=f||c<0)throw new e("Incorrect index");for(var g=new s(f),d=0;d{var r=t(28551),n=t(9539);a.exports=function(e,o,s,u){try{return u?o(r(s)[0],s[1]):o(s)}catch(i){n(e,"throw",i)}}},84428:(a,v,t)=>{var n=t(78227)("iterator"),e=!1;try{var o=0,s={next:function(){return{done:!!o++}},return:function(){e=!0}};s[n]=function(){return this},Array.from(s,function(){throw 2})}catch{}a.exports=function(u,i){try{if(!i&&!e)return!1}catch{return!1}var f=!1;try{var l={};l[n]=function(){return{next:function(){return{done:f=!0}}}},u(l)}catch{}return f}},44576:(a,v,t)=>{var r=t(79504),n=r({}.toString),e=r("".slice);a.exports=function(o){return e(n(o),8,-1)}},36955:(a,v,t)=>{var r=t(92140),n=t(94901),e=t(44576),s=t(78227)("toStringTag"),u=Object,i="Arguments"===e(function(){return arguments}());a.exports=r?e:function(l){var c,g,d;return void 0===l?"Undefined":null===l?"Null":"string"==typeof(g=function(l,c){try{return l[c]}catch{}}(c=u(l),s))?g:i?e(c):"Object"===(d=e(c))&&n(c.callee)?"Arguments":d}},86938:(a,v,t)=>{var r=t(2360),n=t(62106),e=t(56279),o=t(76080),s=t(90679),u=t(64117),i=t(72652),f=t(51088),l=t(62529),c=t(87633),g=t(43724),d=t(3451).fastKey,y=t(91181),p=y.set,h=y.getterFor;a.exports={getConstructor:function(x,C,O,E){var A=x(function(N,F){s(N,S),p(N,{type:C,index:r(null),first:void 0,last:void 0,size:0}),g||(N.size=0),u(F)||i(F,N[E],{that:N,AS_ENTRIES:O})}),S=A.prototype,I=h(C),M=function(N,F,Z){var B,X,L=I(N),U=$(N,F);return U?U.value=Z:(L.last=U={index:X=d(F,!0),key:F,value:Z,previous:B=L.last,next:void 0,removed:!1},L.first||(L.first=U),B&&(B.next=U),g?L.size++:N.size++,"F"!==X&&(L.index[X]=U)),N},$=function(N,F){var U,Z=I(N),L=d(F);if("F"!==L)return Z.index[L];for(U=Z.first;U;U=U.next)if(U.key===F)return U};return e(S,{clear:function(){for(var Z=I(this),L=Z.first;L;)L.removed=!0,L.previous&&(L.previous=L.previous.next=void 0),L=L.next;Z.first=Z.last=void 0,Z.index=r(null),g?Z.size=0:this.size=0},delete:function(N){var F=this,Z=I(F),L=$(F,N);if(L){var U=L.next,B=L.previous;delete Z.index[L.index],L.removed=!0,B&&(B.next=U),U&&(U.previous=B),Z.first===L&&(Z.first=U),Z.last===L&&(Z.last=B),g?Z.size--:F.size--}return!!L},forEach:function(F){for(var U,Z=I(this),L=o(F,arguments.length>1?arguments[1]:void 0);U=U?U.next:Z.first;)for(L(U.value,U.key,this);U&&U.removed;)U=U.previous},has:function(F){return!!$(this,F)}}),e(S,O?{get:function(F){var Z=$(this,F);return Z&&Z.value},set:function(F,Z){return M(this,0===F?0:F,Z)}}:{add:function(F){return M(this,F=0===F?0:F,F)}}),g&&n(S,"size",{configurable:!0,get:function(){return I(this).size}}),A},setStrong:function(x,C,O){var E=C+" Iterator",A=h(C),S=h(E);f(x,C,function(I,M){p(this,{type:E,target:I,state:A(I),kind:M,last:void 0})},function(){for(var I=S(this),M=I.kind,$=I.last;$&&$.removed;)$=$.previous;return I.target&&(I.last=$=$?$.next:I.state.first)?l("keys"===M?$.key:"values"===M?$.value:[$.key,$.value],!1):(I.target=void 0,l(void 0,!0))},O?"entries":"values",!O,!0),c(C)}}},91625:(a,v,t)=>{var r=t(79504),n=t(56279),e=t(3451).getWeakData,o=t(90679),s=t(28551),u=t(64117),i=t(20034),f=t(72652),l=t(59213),c=t(39297),g=t(91181),d=g.set,y=g.getterFor,p=l.find,h=l.findIndex,x=r([].splice),C=0,O=function(S){return S.frozen||(S.frozen=new E)},E=function(){this.entries=[]},A=function(S,I){return p(S.entries,function(M){return M[0]===I})};E.prototype={get:function(S){var I=A(this,S);if(I)return I[1]},has:function(S){return!!A(this,S)},set:function(S,I){var M=A(this,S);M?M[1]=I:this.entries.push([S,I])},delete:function(S){var I=h(this.entries,function(M){return M[0]===S});return~I&&x(this.entries,I,1),!!~I}},a.exports={getConstructor:function(S,I,M,$){var N=S(function(U,B){o(U,F),d(U,{type:I,id:C++,frozen:void 0}),u(B)||f(B,U[$],{that:U,AS_ENTRIES:M})}),F=N.prototype,Z=y(I),L=function(U,B,X){var w=Z(U),rt=e(s(B),!0);return!0===rt?O(w).set(B,X):rt[w.id]=X,U};return n(F,{delete:function(U){var B=Z(this);if(!i(U))return!1;var X=e(U);return!0===X?O(B).delete(U):X&&c(X,B.id)&&delete X[B.id]},has:function(B){var X=Z(this);if(!i(B))return!1;var w=e(B);return!0===w?O(X).has(B):w&&c(w,X.id)}}),n(F,M?{get:function(B){var X=Z(this);if(i(B)){var w=e(B);return!0===w?O(X).get(B):w?w[X.id]:void 0}},set:function(B,X){return L(this,B,X)}}:{add:function(B){return L(this,B,!0)}}),N}}},16468:(a,v,t)=>{var r=t(46518),n=t(24475),e=t(79504),o=t(92796),s=t(36840),u=t(3451),i=t(72652),f=t(90679),l=t(94901),c=t(64117),g=t(20034),d=t(79039),y=t(84428),p=t(10687),h=t(23167);a.exports=function(x,C,O){var E=-1!==x.indexOf("Map"),A=-1!==x.indexOf("Weak"),S=E?"set":"add",I=n[x],M=I&&I.prototype,$=I,N={},F=function(rt){var nt=e(M[rt]);s(M,rt,"add"===rt?function(k){return nt(this,0===k?0:k),this}:"delete"===rt?function(ut){return!(A&&!g(ut))&&nt(this,0===ut?0:ut)}:"get"===rt?function(k){return A&&!g(k)?void 0:nt(this,0===k?0:k)}:"has"===rt?function(k){return!(A&&!g(k))&&nt(this,0===k?0:k)}:function(k,vt){return nt(this,0===k?0:k,vt),this})};if(o(x,!l(I)||!(A||M.forEach&&!d(function(){(new I).entries().next()}))))$=O.getConstructor(C,x,E,S),u.enable();else if(o(x,!0)){var L=new $,U=L[S](A?{}:-0,1)!==L,B=d(function(){L.has(1)}),X=y(function(rt){new I(rt)}),w=!A&&d(function(){for(var rt=new I,nt=5;nt--;)rt[S](nt,nt);return!rt.has(-0)});X||(($=C(function(rt,nt){f(rt,M);var ut=h(new I,rt,$);return c(nt)||i(nt,ut[S],{that:ut,AS_ENTRIES:E}),ut})).prototype=M,M.constructor=$),(B||w)&&(F("delete"),F("has"),E&&F("get")),(w||U)&&F(S),A&&M.clear&&delete M.clear}return N[x]=$,r({global:!0,constructor:!0,forced:$!==I},N),p($,x),A||O.setStrong($,x,E),$}},77740:(a,v,t)=>{var r=t(39297),n=t(35031),e=t(77347),o=t(24913);a.exports=function(s,u,i){for(var f=n(u),l=o.f,c=e.f,g=0;g{var n=t(78227)("match");a.exports=function(e){var o=/./;try{"/./"[e](o)}catch{try{return o[n]=!1,"/./"[e](o)}catch{}}return!1}},12211:(a,v,t)=>{var r=t(79039);a.exports=!r(function(){function n(){}return n.prototype.constructor=null,Object.getPrototypeOf(new n)!==n.prototype})},77240:(a,v,t)=>{var r=t(79504),n=t(67750),e=t(655),o=/"/g,s=r("".replace);a.exports=function(u,i,f,l){var c=e(n(u)),g="<"+i;return""!==f&&(g+=" "+f+'="'+s(e(l),o,""")+'"'),g+">"+c+""}},62529:a=>{a.exports=function(v,t){return{value:v,done:t}}},66699:(a,v,t)=>{var r=t(43724),n=t(24913),e=t(6980);a.exports=r?function(o,s,u){return n.f(o,s,e(1,u))}:function(o,s,u){return o[s]=u,o}},6980:a=>{a.exports=function(v,t){return{enumerable:!(1&v),configurable:!(2&v),writable:!(4&v),value:t}}},97040:(a,v,t)=>{var r=t(43724),n=t(24913),e=t(6980);a.exports=function(o,s,u){r?n.f(o,s,e(0,u)):o[s]=u}},70380:(a,v,t)=>{var r=t(79504),n=t(79039),e=t(60533).start,o=RangeError,s=isFinite,u=Math.abs,i=Date.prototype,f=i.toISOString,l=r(i.getTime),c=r(i.getUTCDate),g=r(i.getUTCFullYear),d=r(i.getUTCHours),y=r(i.getUTCMilliseconds),p=r(i.getUTCMinutes),h=r(i.getUTCMonth),x=r(i.getUTCSeconds);a.exports=n(function(){return"0385-07-25T07:06:39.999Z"!==f.call(new Date(-50000000000001))})||!n(function(){f.call(new Date(NaN))})?function(){if(!s(l(this)))throw new o("Invalid time value");var O=this,E=g(O),A=y(O),S=E<0?"-":E>9999?"+":"";return S+e(u(E),S?6:4,0)+"-"+e(h(O)+1,2,0)+"-"+e(c(O),2,0)+"T"+e(d(O),2,0)+":"+e(p(O),2,0)+":"+e(x(O),2,0)+"."+e(A,3,0)+"Z"}:f},53640:(a,v,t)=>{var r=t(28551),n=t(84270),e=TypeError;a.exports=function(o){if(r(this),"string"===o||"default"===o)o="string";else if("number"!==o)throw new e("Incorrect hint");return n(this,o)}},62106:(a,v,t)=>{var r=t(50283),n=t(24913);a.exports=function(e,o,s){return s.get&&r(s.get,o,{getter:!0}),s.set&&r(s.set,o,{setter:!0}),n.f(e,o,s)}},36840:(a,v,t)=>{var r=t(94901),n=t(24913),e=t(50283),o=t(39433);a.exports=function(s,u,i,f){f||(f={});var l=f.enumerable,c=void 0!==f.name?f.name:u;if(r(i)&&e(i,c,f),f.global)l?s[u]=i:o(u,i);else{try{f.unsafe?s[u]&&(l=!0):delete s[u]}catch{}l?s[u]=i:n.f(s,u,{value:i,enumerable:!1,configurable:!f.nonConfigurable,writable:!f.nonWritable})}return s}},56279:(a,v,t)=>{var r=t(36840);a.exports=function(n,e,o){for(var s in e)r(n,s,e[s],o);return n}},39433:(a,v,t)=>{var r=t(24475),n=Object.defineProperty;a.exports=function(e,o){try{n(r,e,{value:o,configurable:!0,writable:!0})}catch{r[e]=o}return o}},84606:(a,v,t)=>{var r=t(16823),n=TypeError;a.exports=function(e,o){if(!delete e[o])throw new n("Cannot delete property "+r(o)+" of "+r(e))}},43724:(a,v,t)=>{var r=t(79039);a.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},4055:(a,v,t)=>{var r=t(24475),n=t(20034),e=r.document,o=n(e)&&n(e.createElement);a.exports=function(s){return o?e.createElement(s):{}}},96837:a=>{var v=TypeError;a.exports=function(r){if(r>9007199254740991)throw v("Maximum allowed index exceeded");return r}},28834:(a,v,t)=>{var n=t(79392).match(/firefox\/(\d+)/i);a.exports=!!n&&+n[1]},63202:(a,v,t)=>{var r=t(79392);a.exports=/MSIE|Trident/.test(r)},19088:(a,v,t)=>{var r=t(24475),n=t(44576);a.exports="process"===n(r.process)},79392:a=>{a.exports=typeof navigator<"u"&&String(navigator.userAgent)||""},77388:(a,v,t)=>{var i,f,r=t(24475),n=t(79392),e=r.process,o=r.Deno,s=e&&e.versions||o&&o.version,u=s&&s.v8;u&&(f=(i=u.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!f&&n&&(!(i=n.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=n.match(/Chrome\/(\d+)/))&&(f=+i[1]),a.exports=f},89160:(a,v,t)=>{var n=t(79392).match(/AppleWebKit\/(\d+)\./);a.exports=!!n&&+n[1]},88727:a=>{a.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},46518:(a,v,t)=>{var r=t(24475),n=t(77347).f,e=t(66699),o=t(36840),s=t(39433),u=t(77740),i=t(92796);a.exports=function(f,l){var p,h,x,C,O,c=f.target,g=f.global,d=f.stat;if(p=g?r:d?r[c]||s(c,{}):r[c]&&r[c].prototype)for(h in l){if(C=l[h],x=f.dontCallGetSet?(O=n(p,h))&&O.value:p[h],!i(g?h:c+(d?".":"#")+h,f.forced)&&void 0!==x){if(typeof C==typeof x)continue;u(C,x)}(f.sham||x&&x.sham)&&e(C,"sham",!0),o(p,h,C,f)}}},79039:a=>{a.exports=function(v){try{return!!v()}catch{return!0}}},89228:(a,v,t)=>{t(27495);var r=t(69565),n=t(36840),e=t(57323),o=t(79039),s=t(78227),u=t(66699),i=s("species"),f=RegExp.prototype;a.exports=function(l,c,g,d){var y=s(l),p=!o(function(){var O={};return O[y]=function(){return 7},7!==""[l](O)}),h=p&&!o(function(){var O=!1,E=/a/;return"split"===l&&((E={}).constructor={},E.constructor[i]=function(){return E},E.flags="",E[y]=/./[y]),E.exec=function(){return O=!0,null},E[y](""),!O});if(!p||!h||g){var x=/./[y],C=c(y,""[l],function(O,E,A,S,I){var M=E.exec;return M===e||M===f.exec?p&&!I?{done:!0,value:r(x,E,A,S)}:{done:!0,value:r(O,A,E,S)}:{done:!1}});n(String.prototype,l,C[0]),n(f,y,C[1])}d&&u(f[y],"sham",!0)}},70259:(a,v,t)=>{var r=t(34376),n=t(26198),e=t(96837),o=t(76080),s=function(u,i,f,l,c,g,d,y){for(var C,O,p=c,h=0,x=!!d&&o(d,y);h0&&r(C)?(O=n(C),p=s(u,i,C,O,p,g-1)-1):(e(p+1),u[p]=C),p++),h++;return p};a.exports=s},92744:(a,v,t)=>{var r=t(79039);a.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},18745:(a,v,t)=>{var r=t(40616),n=Function.prototype,e=n.apply,o=n.call;a.exports="object"==typeof Reflect&&Reflect.apply||(r?o.bind(e):function(){return o.apply(e,arguments)})},76080:(a,v,t)=>{var r=t(27476),n=t(79306),e=t(40616),o=r(r.bind);a.exports=function(s,u){return n(s),void 0===u?s:e?o(s,u):function(){return s.apply(u,arguments)}}},40616:(a,v,t)=>{var r=t(79039);a.exports=!r(function(){var n=function(){}.bind();return"function"!=typeof n||n.hasOwnProperty("prototype")})},30566:(a,v,t)=>{var r=t(79504),n=t(79306),e=t(20034),o=t(39297),s=t(67680),u=t(40616),i=Function,f=r([].concat),l=r([].join),c={};a.exports=u?i.bind:function(y){var p=n(this),h=p.prototype,x=s(arguments,1),C=function(){var E=f(x,s(arguments));return this instanceof C?function(d,y,p){if(!o(c,y)){for(var h=[],x=0;x{var r=t(40616),n=Function.prototype.call;a.exports=r?n.bind(n):function(){return n.apply(n,arguments)}},10350:(a,v,t)=>{var r=t(43724),n=t(39297),e=Function.prototype,o=r&&Object.getOwnPropertyDescriptor,s=n(e,"name"),u=s&&"something"===function(){}.name,i=s&&(!r||r&&o(e,"name").configurable);a.exports={EXISTS:s,PROPER:u,CONFIGURABLE:i}},46706:(a,v,t)=>{var r=t(79504),n=t(79306);a.exports=function(e,o,s){try{return r(n(Object.getOwnPropertyDescriptor(e,o)[s]))}catch{}}},27476:(a,v,t)=>{var r=t(44576),n=t(79504);a.exports=function(e){if("Function"===r(e))return n(e)}},79504:(a,v,t)=>{var r=t(40616),n=Function.prototype,e=n.call,o=r&&n.bind.bind(e,e);a.exports=r?o:function(s){return function(){return e.apply(s,arguments)}}},44124:(a,v,t)=>{var r=t(24475);a.exports=function(n,e){var o=r[n],s=o&&o.prototype;return s&&s[e]}},97751:(a,v,t)=>{var r=t(24475),n=t(94901);a.exports=function(o,s){return arguments.length<2?function(o){return n(o)?o:void 0}(r[o]):r[o]&&r[o][s]}},50851:(a,v,t)=>{var r=t(36955),n=t(55966),e=t(64117),o=t(26269),u=t(78227)("iterator");a.exports=function(i){if(!e(i))return n(i,u)||n(i,"@@iterator")||o[r(i)]}},70081:(a,v,t)=>{var r=t(69565),n=t(79306),e=t(28551),o=t(16823),s=t(50851),u=TypeError;a.exports=function(i,f){var l=arguments.length<2?s(i):f;if(n(l))return e(r(l,i));throw new u(o(i)+" is not iterable")}},66933:(a,v,t)=>{var r=t(79504),n=t(34376),e=t(94901),o=t(44576),s=t(655),u=r([].push);a.exports=function(i){if(e(i))return i;if(n(i)){for(var f=i.length,l=[],c=0;c{var r=t(79306),n=t(64117);a.exports=function(e,o){var s=e[o];return n(s)?void 0:r(s)}},2478:(a,v,t)=>{var r=t(79504),n=t(48981),e=Math.floor,o=r("".charAt),s=r("".replace),u=r("".slice),i=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;a.exports=function(l,c,g,d,y,p){var h=g+l.length,x=d.length,C=f;return void 0!==y&&(y=n(y),C=i),s(p,C,function(O,E){var A;switch(o(E,0)){case"$":return"$";case"&":return l;case"`":return u(c,0,g);case"'":return u(c,h);case"<":A=y[u(E,1,-1)];break;default:var S=+E;if(0===S)return O;if(S>x){var I=e(S/10);return 0===I?O:I<=x?void 0===d[I-1]?o(E,1):d[I-1]+o(E,1):O}A=d[S-1]}return void 0===A?"":A})}},24475:function(a){var v=function(t){return t&&t.Math===Math&&t};a.exports=v("object"==typeof globalThis&&globalThis)||v("object"==typeof window&&window)||v("object"==typeof self&&self)||v("object"==typeof global&&global)||v("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:(a,v,t)=>{var r=t(79504),n=t(48981),e=r({}.hasOwnProperty);a.exports=Object.hasOwn||function(s,u){return e(n(s),u)}},30421:a=>{a.exports={}},20397:(a,v,t)=>{var r=t(97751);a.exports=r("document","documentElement")},35917:(a,v,t)=>{var r=t(43724),n=t(79039),e=t(4055);a.exports=!r&&!n(function(){return 7!==Object.defineProperty(e("div"),"a",{get:function(){return 7}}).a})},47055:(a,v,t)=>{var r=t(79504),n=t(79039),e=t(44576),o=Object,s=r("".split);a.exports=n(function(){return!o("z").propertyIsEnumerable(0)})?function(u){return"String"===e(u)?s(u,""):o(u)}:o},23167:(a,v,t)=>{var r=t(94901),n=t(20034),e=t(52967);a.exports=function(o,s,u){var i,f;return e&&r(i=s.constructor)&&i!==u&&n(f=i.prototype)&&f!==u.prototype&&e(o,f),o}},33706:(a,v,t)=>{var r=t(79504),n=t(94901),e=t(77629),o=r(Function.toString);n(e.inspectSource)||(e.inspectSource=function(s){return o(s)}),a.exports=e.inspectSource},3451:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(30421),o=t(20034),s=t(39297),u=t(24913).f,i=t(38480),f=t(10298),l=t(34124),c=t(33392),g=t(92744),d=!1,y=c("meta"),p=0,h=function(S){u(S,y,{value:{objectID:"O"+p++,weakData:{}}})},A=a.exports={enable:function(){A.enable=function(){},d=!0;var S=i.f,I=n([].splice),M={};M[y]=1,S(M).length&&(i.f=function($){for(var N=S($),F=0,Z=N.length;F{var d,y,p,r=t(58622),n=t(24475),e=t(20034),o=t(66699),s=t(39297),u=t(77629),i=t(66119),f=t(30421),l="Object already initialized",c=n.TypeError;if(r||u.state){var C=u.state||(u.state=new(0,n.WeakMap));C.get=C.get,C.has=C.has,C.set=C.set,d=function(E,A){if(C.has(E))throw new c(l);return A.facade=E,C.set(E,A),A},y=function(E){return C.get(E)||{}},p=function(E){return C.has(E)}}else{var O=i("state");f[O]=!0,d=function(E,A){if(s(E,O))throw new c(l);return A.facade=E,o(E,O,A),A},y=function(E){return s(E,O)?E[O]:{}},p=function(E){return s(E,O)}}a.exports={set:d,get:y,has:p,enforce:function(E){return p(E)?y(E):d(E,{})},getterFor:function(E){return function(A){var S;if(!e(A)||(S=y(A)).type!==E)throw new c("Incompatible receiver, "+E+" required");return S}}}},44209:(a,v,t)=>{var r=t(78227),n=t(26269),e=r("iterator"),o=Array.prototype;a.exports=function(s){return void 0!==s&&(n.Array===s||o[e]===s)}},34376:(a,v,t)=>{var r=t(44576);a.exports=Array.isArray||function(e){return"Array"===r(e)}},94901:a=>{var v="object"==typeof document&&document.all;a.exports=typeof v>"u"&&void 0!==v?function(t){return"function"==typeof t||t===v}:function(t){return"function"==typeof t}},33517:(a,v,t)=>{var r=t(79504),n=t(79039),e=t(94901),o=t(36955),s=t(97751),u=t(33706),i=function(){},f=s("Reflect","construct"),l=/^\s*(?:class|function)\b/,c=r(l.exec),g=!l.test(i),d=function(h){if(!e(h))return!1;try{return f(i,[],h),!0}catch{return!1}},y=function(h){if(!e(h))return!1;switch(o(h)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return g||!!c(l,u(h))}catch{return!0}};y.sham=!0,a.exports=!f||n(function(){var p;return d(d.call)||!d(Object)||!d(function(){p=!0})||p})?y:d},16575:(a,v,t)=>{var r=t(39297);a.exports=function(n){return void 0!==n&&(r(n,"value")||r(n,"writable"))}},92796:(a,v,t)=>{var r=t(79039),n=t(94901),e=/#|\.prototype\./,o=function(l,c){var g=u[s(l)];return g===f||g!==i&&(n(c)?r(c):!!c)},s=o.normalize=function(l){return String(l).replace(e,".").toLowerCase()},u=o.data={},i=o.NATIVE="N",f=o.POLYFILL="P";a.exports=o},2087:(a,v,t)=>{var r=t(20034),n=Math.floor;a.exports=Number.isInteger||function(o){return!r(o)&&isFinite(o)&&n(o)===o}},64117:a=>{a.exports=function(v){return null==v}},20034:(a,v,t)=>{var r=t(94901);a.exports=function(n){return"object"==typeof n?null!==n:r(n)}},13925:(a,v,t)=>{var r=t(20034);a.exports=function(n){return r(n)||null===n}},96395:a=>{a.exports=!1},60788:(a,v,t)=>{var r=t(20034),n=t(44576),o=t(78227)("match");a.exports=function(s){var u;return r(s)&&(void 0!==(u=s[o])?!!u:"RegExp"===n(s))}},10757:(a,v,t)=>{var r=t(97751),n=t(94901),e=t(1625),o=t(7040),s=Object;a.exports=o?function(u){return"symbol"==typeof u}:function(u){var i=r("Symbol");return n(i)&&e(i.prototype,s(u))}},72652:(a,v,t)=>{var r=t(76080),n=t(69565),e=t(28551),o=t(16823),s=t(44209),u=t(26198),i=t(1625),f=t(70081),l=t(50851),c=t(9539),g=TypeError,d=function(p,h){this.stopped=p,this.result=h},y=d.prototype;a.exports=function(p,h,x){var M,$,N,F,Z,L,U,O=!(!x||!x.AS_ENTRIES),E=!(!x||!x.IS_RECORD),A=!(!x||!x.IS_ITERATOR),S=!(!x||!x.INTERRUPTED),I=r(h,x&&x.that),B=function(w){return M&&c(M,"normal",w),new d(!0,w)},X=function(w){return O?(e(w),S?I(w[0],w[1],B):I(w[0],w[1])):S?I(w,B):I(w)};if(E)M=p.iterator;else if(A)M=p;else{if(!($=l(p)))throw new g(o(p)+" is not iterable");if(s($)){for(N=0,F=u(p);F>N;N++)if((Z=X(p[N]))&&i(y,Z))return Z;return new d(!1)}M=f(p,$)}for(L=E?p.next:M.next;!(U=n(L,M)).done;){try{Z=X(U.value)}catch(w){c(M,"throw",w)}if("object"==typeof Z&&Z&&i(y,Z))return Z}return new d(!1)}},9539:(a,v,t)=>{var r=t(69565),n=t(28551),e=t(55966);a.exports=function(o,s,u){var i,f;n(o);try{if(!(i=e(o,"return"))){if("throw"===s)throw u;return u}i=r(i,o)}catch(l){f=!0,i=l}if("throw"===s)throw u;if(f)throw i;return n(i),u}},33994:(a,v,t)=>{var r=t(57657).IteratorPrototype,n=t(2360),e=t(6980),o=t(10687),s=t(26269),u=function(){return this};a.exports=function(i,f,l,c){var g=f+" Iterator";return i.prototype=n(r,{next:e(+!c,l)}),o(i,g,!1,!0),s[g]=u,i}},51088:(a,v,t)=>{var r=t(46518),n=t(69565),e=t(96395),o=t(10350),s=t(94901),u=t(33994),i=t(42787),f=t(52967),l=t(10687),c=t(66699),g=t(36840),d=t(78227),y=t(26269),p=t(57657),h=o.PROPER,x=o.CONFIGURABLE,C=p.IteratorPrototype,O=p.BUGGY_SAFARI_ITERATORS,E=d("iterator"),A="keys",S="values",I="entries",M=function(){return this};a.exports=function($,N,F,Z,L,U,B){u(F,N,Z);var it,ct,Et,X=function(Ot){if(Ot===L&&k)return k;if(!O&&Ot&&Ot in nt)return nt[Ot];switch(Ot){case A:case S:case I:return function(){return new F(this,Ot)}}return function(){return new F(this)}},w=N+" Iterator",rt=!1,nt=$.prototype,ut=nt[E]||nt["@@iterator"]||L&&nt[L],k=!O&&ut||X(L),vt="Array"===N&&nt.entries||ut;if(vt&&(it=i(vt.call(new $)))!==Object.prototype&&it.next&&(!e&&i(it)!==C&&(f?f(it,C):s(it[E])||g(it,E,M)),l(it,w,!0,!0),e&&(y[w]=M)),h&&L===S&&ut&&ut.name!==S&&(!e&&x?c(nt,"name",S):(rt=!0,k=function(){return n(ut,this)})),L)if(ct={values:X(S),keys:U?k:X(A),entries:X(I)},B)for(Et in ct)(O||rt||!(Et in nt))&&g(nt,Et,ct[Et]);else r({target:N,proto:!0,forced:O||rt},ct);return(!e||B)&&nt[E]!==k&&g(nt,E,k,{name:L}),y[N]=k,ct}},57657:(a,v,t)=>{var g,d,y,r=t(79039),n=t(94901),e=t(20034),o=t(2360),s=t(42787),u=t(36840),i=t(78227),f=t(96395),l=i("iterator"),c=!1;[].keys&&("next"in(y=[].keys())?(d=s(s(y)))!==Object.prototype&&(g=d):c=!0),!e(g)||r(function(){var h={};return g[l].call(h)!==h})?g={}:f&&(g=o(g)),n(g[l])||u(g,l,function(){return this}),a.exports={IteratorPrototype:g,BUGGY_SAFARI_ITERATORS:c}},26269:a=>{a.exports={}},26198:(a,v,t)=>{var r=t(18014);a.exports=function(n){return r(n.length)}},50283:(a,v,t)=>{var r=t(79504),n=t(79039),e=t(94901),o=t(39297),s=t(43724),u=t(10350).CONFIGURABLE,i=t(33706),f=t(91181),l=f.enforce,c=f.get,g=String,d=Object.defineProperty,y=r("".slice),p=r("".replace),h=r([].join),x=s&&!n(function(){return 8!==d(function(){},"length",{value:8}).length}),C=String(String).split("String"),O=a.exports=function(E,A,S){"Symbol("===y(g(A),0,7)&&(A="["+p(g(A),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),S&&S.getter&&(A="get "+A),S&&S.setter&&(A="set "+A),(!o(E,"name")||u&&E.name!==A)&&(s?d(E,"name",{value:A,configurable:!0}):E.name=A),x&&S&&o(S,"arity")&&E.length!==S.arity&&d(E,"length",{value:S.arity});try{S&&o(S,"constructor")&&S.constructor?s&&d(E,"prototype",{writable:!1}):E.prototype&&(E.prototype=void 0)}catch{}var I=l(E);return o(I,"source")||(I.source=h(C,"string"==typeof A?A:"")),E};Function.prototype.toString=O(function(){return e(this)&&c(this).source||i(this)},"toString")},72248:(a,v,t)=>{var r=t(79504),n=Map.prototype;a.exports={Map,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete),proto:n}},53250:a=>{var v=Math.expm1,t=Math.exp;a.exports=!v||v(10)>22025.465794806718||v(10)<22025.465794806718||-2e-17!==v(-2e-17)?function(n){var e=+n;return 0===e?e:e>-1e-6&&e<1e-6?e+e*e/2:t(e)-1}:v},33164:(a,v,t)=>{var r=t(77782),n=Math.abs,e=2220446049250313e-31,o=1/e;a.exports=function(u,i,f,l){var c=+u,g=n(c),d=r(c);if(gf||p!=p?d*(1/0):d*p}},15617:(a,v,t)=>{var r=t(33164);a.exports=Math.fround||function(u){return r(u,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},49340:a=>{var v=Math.log,t=Math.LOG10E;a.exports=Math.log10||function(n){return v(n)*t}},7740:a=>{var v=Math.log;a.exports=Math.log1p||function(r){var n=+r;return n>-1e-8&&n<1e-8?n-n*n/2:v(1+n)}},77782:a=>{a.exports=Math.sign||function(t){var r=+t;return 0===r||r!=r?r:r<0?-1:1}},80741:a=>{var v=Math.ceil,t=Math.floor;a.exports=Math.trunc||function(n){var e=+n;return(e>0?t:v)(e)}},60511:(a,v,t)=>{var r=t(60788),n=TypeError;a.exports=function(e){if(r(e))throw new n("The method doesn't accept regular expressions");return e}},50360:(a,v,t)=>{var n=t(24475).isFinite;a.exports=Number.isFinite||function(o){return"number"==typeof o&&n(o)}},33904:(a,v,t)=>{var r=t(24475),n=t(79039),e=t(79504),o=t(655),s=t(43802).trim,u=t(47452),i=e("".charAt),f=r.parseFloat,l=r.Symbol,c=l&&l.iterator,g=1/f(u+"-0")!=-1/0||c&&!n(function(){f(Object(c))});a.exports=g?function(y){var p=s(o(y)),h=f(p);return 0===h&&"-"===i(p,0)?-0:h}:f},52703:(a,v,t)=>{var r=t(24475),n=t(79039),e=t(79504),o=t(655),s=t(43802).trim,u=t(47452),i=r.parseInt,f=r.Symbol,l=f&&f.iterator,c=/^[+-]?0x/i,g=e(c.exec),d=8!==i(u+"08")||22!==i(u+"0x16")||l&&!n(function(){i(Object(l))});a.exports=d?function(p,h){var x=s(o(p));return i(x,h>>>0||(g(c,x)?16:10))}:i},44213:(a,v,t)=>{var r=t(43724),n=t(79504),e=t(69565),o=t(79039),s=t(71072),u=t(33717),i=t(48773),f=t(48981),l=t(47055),c=Object.assign,g=Object.defineProperty,d=n([].concat);a.exports=!c||o(function(){if(r&&1!==c({b:1},c(g({},"a",{enumerable:!0,get:function(){g(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var y={},p={},h=Symbol("assign detection"),x="abcdefghijklmnopqrst";return y[h]=7,x.split("").forEach(function(C){p[C]=C}),7!==c({},y)[h]||s(c({},p)).join("")!==x})?function(p,h){for(var x=f(p),C=arguments.length,O=1,E=u.f,A=i.f;C>O;)for(var N,S=l(arguments[O++]),I=E?d(s(S),E(S)):s(S),M=I.length,$=0;M>$;)N=I[$++],(!r||e(A,S,N))&&(x[N]=S[N]);return x}:c},2360:(a,v,t)=>{var C,r=t(28551),n=t(96801),e=t(88727),o=t(30421),s=t(20397),u=t(4055),i=t(66119),c="prototype",g="script",d=i("IE_PROTO"),y=function(){},p=function(E){return"<"+g+">"+E+""},h=function(E){E.write(p("")),E.close();var A=E.parentWindow.Object;return E=null,A},O=function(){try{C=new ActiveXObject("htmlfile")}catch{}O=typeof document<"u"?document.domain&&C?h(C):function(){var S,E=u("iframe"),A="java"+g+":";return E.style.display="none",s.appendChild(E),E.src=String(A),(S=E.contentWindow.document).open(),S.write(p("document.F=Object")),S.close(),S.F}():h(C);for(var E=e.length;E--;)delete O[c][e[E]];return O()};o[d]=!0,a.exports=Object.create||function(A,S){var I;return null!==A?(y[c]=r(A),I=new y,y[c]=null,I[d]=A):I=O(),void 0===S?I:n.f(I,S)}},96801:(a,v,t)=>{var r=t(43724),n=t(48686),e=t(24913),o=t(28551),s=t(25397),u=t(71072);v.f=r&&!n?Object.defineProperties:function(f,l){o(f);for(var p,c=s(l),g=u(l),d=g.length,y=0;d>y;)e.f(f,p=g[y++],c[p]);return f}},24913:(a,v,t)=>{var r=t(43724),n=t(35917),e=t(48686),o=t(28551),s=t(56969),u=TypeError,i=Object.defineProperty,f=Object.getOwnPropertyDescriptor,l="enumerable",c="configurable",g="writable";v.f=r?e?function(y,p,h){if(o(y),p=s(p),o(h),"function"==typeof y&&"prototype"===p&&"value"in h&&g in h&&!h[g]){var x=f(y,p);x&&x[g]&&(y[p]=h.value,h={configurable:c in h?h[c]:x[c],enumerable:l in h?h[l]:x[l],writable:!1})}return i(y,p,h)}:i:function(y,p,h){if(o(y),p=s(p),o(h),n)try{return i(y,p,h)}catch{}if("get"in h||"set"in h)throw new u("Accessors not supported");return"value"in h&&(y[p]=h.value),y}},77347:(a,v,t)=>{var r=t(43724),n=t(69565),e=t(48773),o=t(6980),s=t(25397),u=t(56969),i=t(39297),f=t(35917),l=Object.getOwnPropertyDescriptor;v.f=r?l:function(g,d){if(g=s(g),d=u(d),f)try{return l(g,d)}catch{}if(i(g,d))return o(!n(e.f,g,d),g[d])}},10298:(a,v,t)=>{var r=t(44576),n=t(25397),e=t(38480).f,o=t(67680),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];a.exports.f=function(f){return s&&"Window"===r(f)?function(i){try{return e(i)}catch{return o(s)}}(f):e(n(f))}},38480:(a,v,t)=>{var r=t(61828),e=t(88727).concat("length","prototype");v.f=Object.getOwnPropertyNames||function(s){return r(s,e)}},33717:(a,v)=>{v.f=Object.getOwnPropertySymbols},42787:(a,v,t)=>{var r=t(39297),n=t(94901),e=t(48981),o=t(66119),s=t(12211),u=o("IE_PROTO"),i=Object,f=i.prototype;a.exports=s?i.getPrototypeOf:function(l){var c=e(l);if(r(c,u))return c[u];var g=c.constructor;return n(g)&&c instanceof g?g.prototype:c instanceof i?f:null}},34124:(a,v,t)=>{var r=t(79039),n=t(20034),e=t(44576),o=t(15652),s=Object.isExtensible,u=r(function(){s(1)});a.exports=u||o?function(f){return!(!n(f)||o&&"ArrayBuffer"===e(f))&&(!s||s(f))}:s},1625:(a,v,t)=>{var r=t(79504);a.exports=r({}.isPrototypeOf)},61828:(a,v,t)=>{var r=t(79504),n=t(39297),e=t(25397),o=t(19617).indexOf,s=t(30421),u=r([].push);a.exports=function(i,f){var d,l=e(i),c=0,g=[];for(d in l)!n(s,d)&&n(l,d)&&u(g,d);for(;f.length>c;)n(l,d=f[c++])&&(~o(g,d)||u(g,d));return g}},71072:(a,v,t)=>{var r=t(61828),n=t(88727);a.exports=Object.keys||function(o){return r(o,n)}},48773:(a,v)=>{var t={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!t.call({1:2},1);v.f=n?function(o){var s=r(this,o);return!!s&&s.enumerable}:t},42551:(a,v,t)=>{var r=t(96395),n=t(24475),e=t(79039),o=t(89160);a.exports=r||!e(function(){if(!(o&&o<535)){var s=Math.random();__defineSetter__.call(null,s,function(){}),delete n[s]}})},52967:(a,v,t)=>{var r=t(46706),n=t(28551),e=t(73506);a.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var u,o=!1,s={};try{(u=r(Object.prototype,"__proto__","set"))(s,[]),o=s instanceof Array}catch{}return function(f,l){return n(f),e(l),o?u(f,l):f.__proto__=l,f}}():void 0)},32357:(a,v,t)=>{var r=t(43724),n=t(79039),e=t(79504),o=t(42787),s=t(71072),u=t(25397),f=e(t(48773).f),l=e([].push),c=r&&n(function(){var d=Object.create(null);return d[2]=2,!f(d,2)}),g=function(d){return function(y){for(var A,p=u(y),h=s(p),x=c&&null===o(p),C=h.length,O=0,E=[];C>O;)A=h[O++],(!r||(x?A in p:f(p,A)))&&l(E,d?[A,p[A]]:p[A]);return E}};a.exports={entries:g(!0),values:g(!1)}},53179:(a,v,t)=>{var r=t(92140),n=t(36955);a.exports=r?{}.toString:function(){return"[object "+n(this)+"]"}},84270:(a,v,t)=>{var r=t(69565),n=t(94901),e=t(20034),o=TypeError;a.exports=function(s,u){var i,f;if("string"===u&&n(i=s.toString)&&!e(f=r(i,s))||n(i=s.valueOf)&&!e(f=r(i,s))||"string"!==u&&n(i=s.toString)&&!e(f=r(i,s)))return f;throw new o("Can't convert object to primitive value")}},35031:(a,v,t)=>{var r=t(97751),n=t(79504),e=t(38480),o=t(33717),s=t(28551),u=n([].concat);a.exports=r("Reflect","ownKeys")||function(f){var l=e.f(s(f)),c=o.f;return c?u(l,c(f)):l}},19167:(a,v,t)=>{var r=t(24475);a.exports=r},11056:(a,v,t)=>{var r=t(24913).f;a.exports=function(n,e,o){o in n||r(n,o,{configurable:!0,get:function(){return e[o]},set:function(s){e[o]=s}})}},56682:(a,v,t)=>{var r=t(69565),n=t(28551),e=t(94901),o=t(44576),s=t(57323),u=TypeError;a.exports=function(i,f){var l=i.exec;if(e(l)){var c=r(l,i,f);return null!==c&&n(c),c}if("RegExp"===o(i))return r(s,i,f);throw new u("RegExp#exec called on incompatible receiver")}},57323:(a,v,t)=>{var I,M,r=t(69565),n=t(79504),e=t(655),o=t(67979),s=t(58429),u=t(25745),i=t(2360),f=t(91181).get,l=t(83635),c=t(18814),g=u("native-string-replace",String.prototype.replace),d=RegExp.prototype.exec,y=d,p=n("".charAt),h=n("".indexOf),x=n("".replace),C=n("".slice),O=(M=/b*/g,r(d,I=/a/,"a"),r(d,M,"a"),0!==I.lastIndex||0!==M.lastIndex),E=s.BROKEN_CARET,A=void 0!==/()??/.exec("")[1];(O||A||E||l||c)&&(y=function(M){var L,U,B,X,w,rt,nt,$=this,N=f($),F=e(M),Z=N.raw;if(Z)return Z.lastIndex=$.lastIndex,L=r(y,Z,F),$.lastIndex=Z.lastIndex,L;var ut=N.groups,k=E&&$.sticky,vt=r(o,$),it=$.source,ct=0,Et=F;if(k&&(vt=x(vt,"y",""),-1===h(vt,"g")&&(vt+="g"),Et=C(F,$.lastIndex),$.lastIndex>0&&(!$.multiline||$.multiline&&"\n"!==p(F,$.lastIndex-1))&&(it="(?: "+it+")",Et=" "+Et,ct++),U=new RegExp("^(?:"+it+")",vt)),A&&(U=new RegExp("^"+it+"$(?!\\s)",vt)),O&&(B=$.lastIndex),X=r(d,k?U:$,Et),k?X?(X.input=C(X.input,ct),X[0]=C(X[0],ct),X.index=$.lastIndex,$.lastIndex+=X[0].length):$.lastIndex=0:O&&X&&($.lastIndex=$.global?X.index+X[0].length:B),A&&X&&X.length>1&&r(g,X[0],U,function(){for(w=1;w{var r=t(28551);a.exports=function(){var n=r(this),e="";return n.hasIndices&&(e+="d"),n.global&&(e+="g"),n.ignoreCase&&(e+="i"),n.multiline&&(e+="m"),n.dotAll&&(e+="s"),n.unicode&&(e+="u"),n.unicodeSets&&(e+="v"),n.sticky&&(e+="y"),e}},61034:(a,v,t)=>{var r=t(69565),n=t(39297),e=t(1625),o=t(67979),s=RegExp.prototype;a.exports=function(u){var i=u.flags;return void 0!==i||"flags"in s||n(u,"flags")||!e(s,u)?i:r(o,u)}},58429:(a,v,t)=>{var r=t(79039),e=t(24475).RegExp,o=r(function(){var i=e("a","y");return i.lastIndex=2,null!==i.exec("abcd")}),s=o||r(function(){return!e("a","y").sticky}),u=o||r(function(){var i=e("^r","gy");return i.lastIndex=2,null!==i.exec("str")});a.exports={BROKEN_CARET:u,MISSED_STICKY:s,UNSUPPORTED_Y:o}},83635:(a,v,t)=>{var r=t(79039),e=t(24475).RegExp;a.exports=r(function(){var o=e(".","s");return!(o.dotAll&&o.test("\n")&&"s"===o.flags)})},18814:(a,v,t)=>{var r=t(79039),e=t(24475).RegExp;a.exports=r(function(){var o=e("(?b)","g");return"b"!==o.exec("b").groups.a||"bc"!=="b".replace(o,"$c")})},67750:(a,v,t)=>{var r=t(64117),n=TypeError;a.exports=function(e){if(r(e))throw new n("Can't call method on "+e);return e}},3470:a=>{a.exports=Object.is||function(t,r){return t===r?0!==t||1/t==1/r:t!=t&&r!=r}},87633:(a,v,t)=>{var r=t(97751),n=t(62106),e=t(78227),o=t(43724),s=e("species");a.exports=function(u){var i=r(u);o&&i&&!i[s]&&n(i,s,{configurable:!0,get:function(){return this}})}},10687:(a,v,t)=>{var r=t(24913).f,n=t(39297),o=t(78227)("toStringTag");a.exports=function(s,u,i){s&&!i&&(s=s.prototype),s&&!n(s,o)&&r(s,o,{configurable:!0,value:u})}},66119:(a,v,t)=>{var r=t(25745),n=t(33392),e=r("keys");a.exports=function(o){return e[o]||(e[o]=n(o))}},77629:(a,v,t)=>{var r=t(96395),n=t(24475),e=t(39433),o="__core-js_shared__",s=a.exports=n[o]||e(o,{});(s.versions||(s.versions=[])).push({version:"3.36.0",mode:r?"pure":"global",copyright:"\xa9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:(a,v,t)=>{var r=t(77629);a.exports=function(n,e){return r[n]||(r[n]=e||{})}},2293:(a,v,t)=>{var r=t(28551),n=t(35548),e=t(64117),s=t(78227)("species");a.exports=function(u,i){var l,f=r(u).constructor;return void 0===f||e(l=r(f)[s])?i:n(l)}},23061:(a,v,t)=>{var r=t(79039);a.exports=function(n){return r(function(){var e=""[n]('"');return e!==e.toLowerCase()||e.split('"').length>3})}},68183:(a,v,t)=>{var r=t(79504),n=t(91291),e=t(655),o=t(67750),s=r("".charAt),u=r("".charCodeAt),i=r("".slice),f=function(l){return function(c,g){var h,x,d=e(o(c)),y=n(g),p=d.length;return y<0||y>=p?l?"":void 0:(h=u(d,y))<55296||h>56319||y+1===p||(x=u(d,y+1))<56320||x>57343?l?s(d,y):h:l?i(d,y,y+2):x-56320+(h-55296<<10)+65536}};a.exports={codeAt:f(!1),charAt:f(!0)}},83063:(a,v,t)=>{var r=t(79392);a.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},60533:(a,v,t)=>{var r=t(79504),n=t(18014),e=t(655),o=t(72333),s=t(67750),u=r(o),i=r("".slice),f=Math.ceil,l=function(c){return function(g,d,y){var O,E,p=e(s(g)),h=n(d),x=p.length,C=void 0===y?" ":e(y);return h<=x||""===C?p:((E=u(C,f((O=h-x)/C.length))).length>O&&(E=i(E,0,O)),c?p+E:E+p)}};a.exports={start:l(!1),end:l(!0)}},72333:(a,v,t)=>{var r=t(91291),n=t(655),e=t(67750),o=RangeError;a.exports=function(u){var i=n(e(this)),f="",l=r(u);if(l<0||l===1/0)throw new o("Wrong number of repetitions");for(;l>0;(l>>>=1)&&(i+=i))1&l&&(f+=i);return f}},18866:(a,v,t)=>{var r=t(43802).end,n=t(60706);a.exports=n("trimEnd")?function(){return r(this)}:"".trimEnd},60706:(a,v,t)=>{var r=t(10350).PROPER,n=t(79039),e=t(47452);a.exports=function(s){return n(function(){return!!e[s]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[s]()||r&&e[s].name!==s})}},53487:(a,v,t)=>{var r=t(43802).start,n=t(60706);a.exports=n("trimStart")?function(){return r(this)}:"".trimStart},43802:(a,v,t)=>{var r=t(79504),n=t(67750),e=t(655),o=t(47452),s=r("".replace),u=RegExp("^["+o+"]+"),i=RegExp("(^|[^"+o+"])["+o+"]+$"),f=function(l){return function(c){var g=e(n(c));return 1&l&&(g=s(g,u,"")),2&l&&(g=s(g,i,"$1")),g}};a.exports={start:f(1),end:f(2),trim:f(3)}},4495:(a,v,t)=>{var r=t(77388),n=t(79039),o=t(24475).String;a.exports=!!Object.getOwnPropertySymbols&&!n(function(){var s=Symbol("symbol detection");return!o(s)||!(Object(s)instanceof Symbol)||!Symbol.sham&&r&&r<41})},58242:(a,v,t)=>{var r=t(69565),n=t(97751),e=t(78227),o=t(36840);a.exports=function(){var s=n("Symbol"),u=s&&s.prototype,i=u&&u.valueOf,f=e("toPrimitive");u&&!u[f]&&o(u,f,function(l){return r(i,this)},{arity:1})}},91296:(a,v,t)=>{var r=t(4495);a.exports=r&&!!Symbol.for&&!!Symbol.keyFor},31240:(a,v,t)=>{var r=t(79504);a.exports=r(1..valueOf)},35610:(a,v,t)=>{var r=t(91291),n=Math.max,e=Math.min;a.exports=function(o,s){var u=r(o);return u<0?n(u+s,0):e(u,s)}},25397:(a,v,t)=>{var r=t(47055),n=t(67750);a.exports=function(e){return r(n(e))}},91291:(a,v,t)=>{var r=t(80741);a.exports=function(n){var e=+n;return e!=e||0===e?0:r(e)}},18014:(a,v,t)=>{var r=t(91291),n=Math.min;a.exports=function(e){var o=r(e);return o>0?n(o,9007199254740991):0}},48981:(a,v,t)=>{var r=t(67750),n=Object;a.exports=function(e){return n(r(e))}},72777:(a,v,t)=>{var r=t(69565),n=t(20034),e=t(10757),o=t(55966),s=t(84270),u=t(78227),i=TypeError,f=u("toPrimitive");a.exports=function(l,c){if(!n(l)||e(l))return l;var d,g=o(l,f);if(g){if(void 0===c&&(c="default"),d=r(g,l,c),!n(d)||e(d))return d;throw new i("Can't convert object to primitive value")}return void 0===c&&(c="number"),s(l,c)}},56969:(a,v,t)=>{var r=t(72777),n=t(10757);a.exports=function(e){var o=r(e,"string");return n(o)?o:o+""}},92140:(a,v,t)=>{var e={};e[t(78227)("toStringTag")]="z",a.exports="[object z]"===String(e)},655:(a,v,t)=>{var r=t(36955),n=String;a.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}},16823:a=>{var v=String;a.exports=function(t){try{return v(t)}catch{return"Object"}}},33392:(a,v,t)=>{var r=t(79504),n=0,e=Math.random(),o=r(1..toString);a.exports=function(s){return"Symbol("+(void 0===s?"":s)+")_"+o(++n+e,36)}},7040:(a,v,t)=>{var r=t(4495);a.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:(a,v,t)=>{var r=t(43724),n=t(79039);a.exports=r&&n(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},58622:(a,v,t)=>{var r=t(24475),n=t(94901),e=r.WeakMap;a.exports=n(e)&&/native code/.test(String(e))},70511:(a,v,t)=>{var r=t(19167),n=t(39297),e=t(1951),o=t(24913).f;a.exports=function(s){var u=r.Symbol||(r.Symbol={});n(u,s)||o(u,s,{value:e.f(s)})}},1951:(a,v,t)=>{var r=t(78227);v.f=r},78227:(a,v,t)=>{var r=t(24475),n=t(25745),e=t(39297),o=t(33392),s=t(4495),u=t(7040),i=r.Symbol,f=n("wks"),l=u?i.for||i:i&&i.withoutSetter||o;a.exports=function(c){return e(f,c)||(f[c]=s&&e(i,c)?i[c]:l("Symbol."+c)),f[c]}},47452:a=>{a.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},18107:(a,v,t)=>{var r=t(46518),n=t(48981),e=t(26198),o=t(91291),s=t(6469);r({target:"Array",proto:!0},{at:function(i){var f=n(this),l=e(f),c=o(i),g=c>=0?c:l+c;return g<0||g>=l?void 0:f[g]}}),s("at")},28706:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(34376),o=t(20034),s=t(48981),u=t(26198),i=t(96837),f=t(97040),l=t(1469),c=t(70597),g=t(78227),d=t(77388),y=g("isConcatSpreadable"),p=d>=51||!n(function(){var C=[];return C[y]=!1,C.concat()[0]!==C}),h=function(C){if(!o(C))return!1;var O=C[y];return void 0!==O?!!O:e(C)};r({target:"Array",proto:!0,arity:1,forced:!p||!c("concat")},{concat:function(O){var I,M,$,N,F,E=s(this),A=l(E,0),S=0;for(I=-1,$=arguments.length;I<$;I++)if(h(F=-1===I?E:arguments[I]))for(N=u(F),i(S+N),M=0;M{var r=t(46518),n=t(57029),e=t(6469);r({target:"Array",proto:!0},{copyWithin:n}),e("copyWithin")},88431:(a,v,t)=>{var r=t(46518),n=t(59213).every;r({target:"Array",proto:!0,forced:!t(34598)("every")},{every:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},33771:(a,v,t)=>{var r=t(46518),n=t(84373),e=t(6469);r({target:"Array",proto:!0},{fill:n}),e("fill")},2008:(a,v,t)=>{var r=t(46518),n=t(59213).filter;r({target:"Array",proto:!0,forced:!t(70597)("filter")},{filter:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},48980:(a,v,t)=>{var r=t(46518),n=t(59213).findIndex,e=t(6469),o="findIndex",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}}),e(o)},13451:(a,v,t)=>{var r=t(46518),n=t(43839).findLastIndex,e=t(6469);r({target:"Array",proto:!0},{findLastIndex:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}}),e("findLastIndex")},10838:(a,v,t)=>{var r=t(46518),n=t(43839).findLast,e=t(6469);r({target:"Array",proto:!0},{findLast:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}}),e("findLast")},50113:(a,v,t)=>{var r=t(46518),n=t(59213).find,e=t(6469),o="find",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}}),e(o)},78350:(a,v,t)=>{var r=t(46518),n=t(70259),e=t(79306),o=t(48981),s=t(26198),u=t(1469);r({target:"Array",proto:!0},{flatMap:function(f){var g,l=o(this),c=s(l);return e(f),(g=u(l,0)).length=n(g,l,l,c,0,1,f,arguments.length>1?arguments[1]:void 0),g}})},46449:(a,v,t)=>{var r=t(46518),n=t(70259),e=t(48981),o=t(26198),s=t(91291),u=t(1469);r({target:"Array",proto:!0},{flat:function(){var f=arguments.length?arguments[0]:void 0,l=e(this),c=o(l),g=u(l,0);return g.length=n(g,l,l,c,0,void 0===f?1:s(f)),g}})},51629:(a,v,t)=>{var r=t(46518),n=t(90235);r({target:"Array",proto:!0,forced:[].forEach!==n},{forEach:n})},23418:(a,v,t)=>{var r=t(46518),n=t(97916);r({target:"Array",stat:!0,forced:!t(84428)(function(s){Array.from(s)})},{from:n})},74423:(a,v,t)=>{var r=t(46518),n=t(19617).includes,e=t(79039),o=t(6469);r({target:"Array",proto:!0,forced:e(function(){return!Array(1).includes()})},{includes:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}}),o("includes")},25276:(a,v,t)=>{var r=t(46518),n=t(27476),e=t(19617).indexOf,o=t(34598),s=n([].indexOf),u=!!s&&1/s([1],1,-0)<0;r({target:"Array",proto:!0,forced:u||!o("indexOf")},{indexOf:function(l){var c=arguments.length>1?arguments[1]:void 0;return u?s(this,l,c)||0:e(this,l,c)}})},64346:(a,v,t)=>{t(46518)({target:"Array",stat:!0},{isArray:t(34376)})},23792:(a,v,t)=>{var r=t(25397),n=t(6469),e=t(26269),o=t(91181),s=t(24913).f,u=t(51088),i=t(62529),f=t(96395),l=t(43724),c="Array Iterator",g=o.set,d=o.getterFor(c);a.exports=u(Array,"Array",function(p,h){g(this,{type:c,target:r(p),index:0,kind:h})},function(){var p=d(this),h=p.target,x=p.index++;if(!h||x>=h.length)return p.target=void 0,i(void 0,!0);switch(p.kind){case"keys":return i(x,!1);case"values":return i(h[x],!1)}return i([x,h[x]],!1)},"values");var y=e.Arguments=e.Array;if(n("keys"),n("values"),n("entries"),!f&&l&&"values"!==y.name)try{s(y,"name",{value:"values"})}catch{}},48598:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(47055),o=t(25397),s=t(34598),u=n([].join);r({target:"Array",proto:!0,forced:e!==Object||!s("join",",")},{join:function(c){return u(o(this),void 0===c?",":c)}})},8921:(a,v,t)=>{var r=t(46518),n=t(8379);r({target:"Array",proto:!0,forced:n!==[].lastIndexOf},{lastIndexOf:n})},62062:(a,v,t)=>{var r=t(46518),n=t(59213).map;r({target:"Array",proto:!0,forced:!t(70597)("map")},{map:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},31051:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(33517),o=t(97040),s=Array;r({target:"Array",stat:!0,forced:n(function(){function i(){}return!(s.of.call(i)instanceof i)})},{of:function(){for(var f=0,l=arguments.length,c=new(e(this)?this:s)(l);l>f;)o(c,f,arguments[f++]);return c.length=l,c}})},44114:(a,v,t)=>{var r=t(46518),n=t(48981),e=t(26198),o=t(34527),s=t(96837);r({target:"Array",proto:!0,arity:1,forced:t(79039)(function(){return 4294967297!==[].push.call({length:4294967296},1)})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(c){return c instanceof TypeError}}()},{push:function(g){var d=n(this),y=e(d),p=arguments.length;s(y+p);for(var h=0;h{var r=t(46518),n=t(80926).right,e=t(34598),o=t(77388);r({target:"Array",proto:!0,forced:!t(19088)&&o>79&&o<83||!e("reduceRight")},{reduceRight:function(l){return n(this,l,arguments.length,arguments.length>1?arguments[1]:void 0)}})},72712:(a,v,t)=>{var r=t(46518),n=t(80926).left,e=t(34598),o=t(77388);r({target:"Array",proto:!0,forced:!t(19088)&&o>79&&o<83||!e("reduce")},{reduce:function(l){var c=arguments.length;return n(this,l,c,c>1?arguments[1]:void 0)}})},94490:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(34376),o=n([].reverse),s=[1,2];r({target:"Array",proto:!0,forced:String(s)===String(s.reverse())},{reverse:function(){return e(this)&&(this.length=this.length),o(this)}})},34782:(a,v,t)=>{var r=t(46518),n=t(34376),e=t(33517),o=t(20034),s=t(35610),u=t(26198),i=t(25397),f=t(97040),l=t(78227),c=t(70597),g=t(67680),d=c("slice"),y=l("species"),p=Array,h=Math.max;r({target:"Array",proto:!0,forced:!d},{slice:function(C,O){var M,$,N,E=i(this),A=u(E),S=s(C,A),I=s(void 0===O?A:O,A);if(n(E)&&((e(M=E.constructor)&&(M===p||n(M.prototype))||o(M)&&null===(M=M[y]))&&(M=void 0),M===p||void 0===M))return g(E,S,I);for($=new(void 0===M?p:M)(h(I-S,0)),N=0;S{var r=t(46518),n=t(59213).some;r({target:"Array",proto:!0,forced:!t(34598)("some")},{some:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},26910:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(79306),o=t(48981),s=t(26198),u=t(84606),i=t(655),f=t(79039),l=t(74488),c=t(34598),g=t(28834),d=t(63202),y=t(77388),p=t(89160),h=[],x=n(h.sort),C=n(h.push),O=f(function(){h.sort(void 0)}),E=f(function(){h.sort(null)}),A=c("sort"),S=!f(function(){if(y)return y<70;if(!(g&&g>3)){if(d)return!0;if(p)return p<603;var N,F,Z,L,$="";for(N=65;N<76;N++){switch(F=String.fromCharCode(N),N){case 66:case 69:case 70:case 72:Z=3;break;case 68:case 71:Z=4;break;default:Z=2}for(L=0;L<47;L++)h.push({k:F+L,v:Z})}for(h.sort(function(U,B){return B.v-U.v}),L=0;Li(F)?1:-1}}(N)),U=s(Z),B=0;B{t(87633)("Array")},54554:(a,v,t)=>{var r=t(46518),n=t(48981),e=t(35610),o=t(91291),s=t(26198),u=t(34527),i=t(96837),f=t(1469),l=t(97040),c=t(84606),d=t(70597)("splice"),y=Math.max,p=Math.min;r({target:"Array",proto:!0,forced:!d},{splice:function(x,C){var I,M,$,N,F,Z,O=n(this),E=s(O),A=e(x,E),S=arguments.length;for(0===S?I=M=0:1===S?(I=0,M=E-A):(I=S-2,M=p(y(o(C),0),E-A)),i(E+I-M),$=f(O,M),N=0;NE-M+I;N--)c(O,N-1)}else if(I>M)for(N=E-M;N>A;N--)Z=N+I-1,(F=N+M-1)in O?O[Z]=O[F]:c(O,Z);for(N=0;N{var r=t(46518),n=t(37628),e=t(25397),o=t(6469),s=Array;r({target:"Array",proto:!0},{toReversed:function(){return n(e(this),s)}}),o("toReversed")},57145:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(79306),o=t(25397),s=t(35370),u=t(44124),i=t(6469),f=Array,l=n(u("Array","sort"));r({target:"Array",proto:!0},{toSorted:function(g){void 0!==g&&e(g);var d=o(this),y=s(f,d);return l(y,g)}}),i("toSorted")},71658:(a,v,t)=>{var r=t(46518),n=t(6469),e=t(96837),o=t(26198),s=t(35610),u=t(25397),i=t(91291),f=Array,l=Math.max,c=Math.min;r({target:"Array",proto:!0},{toSpliced:function(d,y){var E,A,S,I,p=u(this),h=o(p),x=s(d,h),C=arguments.length,O=0;for(0===C?E=A=0:1===C?(E=0,A=h-x):(E=C-2,A=c(l(i(y),0),h-x)),S=e(h+E-A),I=f(S);O{t(6469)("flatMap")},93514:(a,v,t)=>{t(6469)("flat")},13609:(a,v,t)=>{var r=t(46518),n=t(48981),e=t(26198),o=t(34527),s=t(84606),u=t(96837);r({target:"Array",proto:!0,arity:1,forced:1!==[].unshift(0)||!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(c){return c instanceof TypeError}}()},{unshift:function(g){var d=n(this),y=e(d),p=arguments.length;if(p){u(y+p);for(var h=y;h--;){var x=h+p;h in d?d[x]=d[h]:s(d,x)}for(var C=0;C{var r=t(46518),n=t(39928),e=t(25397),o=Array;r({target:"Array",proto:!0},{with:function(s,u){return n(e(this),o,s,u)}})},61699:(a,v,t)=>{var r=t(46518),n=t(79504),o=t(79039)(function(){return 120!==new Date(16e11).getYear()}),s=n(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:o},{getYear:function(){return s(this)-1900}})},59089:(a,v,t)=>{var r=t(46518),n=t(79504),e=Date,o=n(e.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return o(new e)}})},91191:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(91291),o=Date.prototype,s=n(o.getTime),u=n(o.setFullYear);r({target:"Date",proto:!0},{setYear:function(f){s(this);var l=e(f);return u(this,l>=0&&l<=99?l+1900:l)}})},93515:(a,v,t)=>{t(46518)({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},1688:(a,v,t)=>{var r=t(46518),n=t(70380);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==n},{toISOString:n})},60739:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(48981),o=t(72777);r({target:"Date",proto:!0,arity:1,forced:n(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})},{toJSON:function(i){var f=e(this),l=o(f,"number");return"number"!=typeof l||isFinite(l)?f.toISOString():null}})},89572:(a,v,t)=>{var r=t(39297),n=t(36840),e=t(53640),s=t(78227)("toPrimitive"),u=Date.prototype;r(u,s)||n(u,s,e)},23288:(a,v,t)=>{var r=t(79504),n=t(36840),e=Date.prototype,o="Invalid Date",s="toString",u=r(e[s]),i=r(e.getTime);String(new Date(NaN))!==o&&n(e,s,function(){var l=i(this);return l==l?u(this):o})},94170:(a,v,t)=>{var r=t(46518),n=t(30566);r({target:"Function",proto:!0,forced:Function.bind!==n},{bind:n})},48957:(a,v,t)=>{var r=t(94901),n=t(20034),e=t(24913),o=t(1625),s=t(78227),u=t(50283),i=s("hasInstance"),f=Function.prototype;i in f||e.f(f,i,{value:u(function(l){if(!r(this)||!n(l))return!1;var c=this.prototype;return n(c)?o(c,l):l instanceof this},i)})},62010:(a,v,t)=>{var r=t(43724),n=t(10350).EXISTS,e=t(79504),o=t(62106),s=Function.prototype,u=e(s.toString),i=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,f=e(i.exec);r&&!n&&o(s,"name",{configurable:!0,get:function(){try{return f(i,u(this))[1]}catch{return""}}})},33110:(a,v,t)=>{var r=t(46518),n=t(97751),e=t(18745),o=t(69565),s=t(79504),u=t(79039),i=t(94901),f=t(10757),l=t(67680),c=t(66933),g=t(4495),d=String,y=n("JSON","stringify"),p=s(/./.exec),h=s("".charAt),x=s("".charCodeAt),C=s("".replace),O=s(1..toString),E=/[\uD800-\uDFFF]/g,A=/^[\uD800-\uDBFF]$/,S=/^[\uDC00-\uDFFF]$/,I=!g||u(function(){var F=n("Symbol")("stringify detection");return"[null]"!==y([F])||"{}"!==y({a:F})||"{}"!==y(Object(F))}),M=u(function(){return'"\\udf06\\ud834"'!==y("\udf06\ud834")||'"\\udead"'!==y("\udead")}),$=function(F,Z){var L=l(arguments),U=c(Z);if(i(U)||void 0!==F&&!f(F))return L[1]=function(B,X){if(i(U)&&(X=o(U,this,d(B),X)),!f(X))return X},e(y,null,L)},N=function(F,Z,L){var U=h(L,Z-1),B=h(L,Z+1);return p(A,F)&&!p(S,B)||p(S,F)&&!p(A,U)?"\\u"+O(x(F,0),16):F};y&&r({target:"JSON",stat:!0,arity:3,forced:I||M},{stringify:function(Z,L,U){var B=l(arguments),X=e(I?$:y,null,B);return M&&"string"==typeof X?C(X,E,N):X}})},4731:(a,v,t)=>{var r=t(24475);t(10687)(r.JSON,"JSON",!0)},48523:(a,v,t)=>{t(16468)("Map",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},t(86938))},47072:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(79306),o=t(67750),s=t(72652),u=t(72248),i=t(96395),f=u.Map,l=u.has,c=u.get,g=u.set,d=n([].push);r({target:"Map",stat:!0,forced:i},{groupBy:function(p,h){o(p),e(h);var x=new f,C=0;return s(p,function(O){var E=h(O,C++);l(x,E)?d(c(x,E),O):g(x,E,[O])}),x}})},36033:(a,v,t)=>{t(48523)},93153:(a,v,t)=>{var r=t(46518),n=t(7740),e=Math.acosh,o=Math.log,s=Math.sqrt,u=Math.LN2;r({target:"Math",stat:!0,forced:!e||710!==Math.floor(e(Number.MAX_VALUE))||e(1/0)!==1/0},{acosh:function(l){var c=+l;return c<1?NaN:c>94906265.62425156?o(c)+u:n(c-1+s(c-1)*s(c+1))}})},82326:(a,v,t)=>{var r=t(46518),n=Math.asinh,e=Math.log,o=Math.sqrt;r({target:"Math",stat:!0,forced:!(n&&1/n(0)>0)},{asinh:function s(i){var f=+i;return isFinite(f)&&0!==f?f<0?-s(-f):e(f+o(f*f+1)):f}})},36389:(a,v,t)=>{var r=t(46518),n=Math.atanh,e=Math.log;r({target:"Math",stat:!0,forced:!(n&&1/n(-0)<0)},{atanh:function(u){var i=+u;return 0===i?i:e((1+i)/(1-i))/2}})},64444:(a,v,t)=>{var r=t(46518),n=t(77782),e=Math.abs,o=Math.pow;r({target:"Math",stat:!0},{cbrt:function(u){var i=+u;return n(i)*o(e(i),1/3)}})},8085:(a,v,t)=>{var r=t(46518),n=Math.floor,e=Math.log,o=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(u){var i=u>>>0;return i?31-n(e(i+.5)*o):32}})},77762:(a,v,t)=>{var r=t(46518),n=t(53250),e=Math.cosh,o=Math.abs,s=Math.E;r({target:"Math",stat:!0,forced:!e||e(710)===1/0},{cosh:function(f){var l=n(o(f)-1)+1;return(l+1/(l*s*s))*(s/2)}})},65070:(a,v,t)=>{var r=t(46518),n=t(53250);r({target:"Math",stat:!0,forced:n!==Math.expm1},{expm1:n})},60605:(a,v,t)=>{t(46518)({target:"Math",stat:!0},{fround:t(15617)})},39469:(a,v,t)=>{var r=t(46518),n=Math.hypot,e=Math.abs,o=Math.sqrt;r({target:"Math",stat:!0,arity:2,forced:!!n&&n(1/0,NaN)!==1/0},{hypot:function(i,f){for(var y,p,l=0,c=0,g=arguments.length,d=0;c0?(p=y/d)*p:y;return d===1/0?1/0:d*o(l)}})},72152:(a,v,t)=>{var r=t(46518),n=t(79039),e=Math.imul;r({target:"Math",stat:!0,forced:n(function(){return-5!==e(4294967295,5)||2!==e.length})},{imul:function(u,i){var f=65535,l=+u,c=+i,g=f&l,d=f&c;return 0|g*d+((f&l>>>16)*d+g*(f&c>>>16)<<16>>>0)}})},75376:(a,v,t)=>{t(46518)({target:"Math",stat:!0},{log10:t(49340)})},56624:(a,v,t)=>{t(46518)({target:"Math",stat:!0},{log1p:t(7740)})},11367:(a,v,t)=>{var r=t(46518),n=Math.log,e=Math.LN2;r({target:"Math",stat:!0},{log2:function(s){return n(s)/e}})},5914:(a,v,t)=>{t(46518)({target:"Math",stat:!0},{sign:t(77782)})},78553:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(53250),o=Math.abs,s=Math.exp,u=Math.E;r({target:"Math",stat:!0,forced:n(function(){return-2e-17!==Math.sinh(-2e-17)})},{sinh:function(l){var c=+l;return o(c)<1?(e(c)-e(-c))/2:(s(c-1)-s(-c-1))*(u/2)}})},98690:(a,v,t)=>{var r=t(46518),n=t(53250),e=Math.exp;r({target:"Math",stat:!0},{tanh:function(s){var u=+s,i=n(u),f=n(-u);return i===1/0?1:f===1/0?-1:(i-f)/(e(u)+e(-u))}})},60479:(a,v,t)=>{t(10687)(Math,"Math",!0)},70761:(a,v,t)=>{t(46518)({target:"Math",stat:!0},{trunc:t(80741)})},2892:(a,v,t)=>{var r=t(46518),n=t(96395),e=t(43724),o=t(24475),s=t(19167),u=t(79504),i=t(92796),f=t(39297),l=t(23167),c=t(1625),g=t(10757),d=t(72777),y=t(79039),p=t(38480).f,h=t(77347).f,x=t(24913).f,C=t(31240),O=t(43802).trim,E="Number",A=o[E],S=s[E],I=A.prototype,M=o.TypeError,$=u("".slice),N=u("".charCodeAt),L=i(E,!A(" 0o1")||!A("0b1")||A("+0x1")),B=function(rt){var w,nt=arguments.length<1?0:A(function(w){var rt=d(w,"number");return"bigint"==typeof rt?rt:function(w){var nt,ut,k,vt,it,ct,Et,Ot,rt=d(w,"number");if(g(rt))throw new M("Cannot convert a Symbol value to a number");if("string"==typeof rt&&rt.length>2)if(rt=O(rt),43===(nt=N(rt,0))||45===nt){if(88===(ut=N(rt,2))||120===ut)return NaN}else if(48===nt){switch(N(rt,1)){case 66:case 98:k=2,vt=49;break;case 79:case 111:k=8,vt=55;break;default:return+rt}for(ct=(it=$(rt,2)).length,Et=0;Etvt)return NaN;return parseInt(it,k)}return+rt}(rt)}(rt));return c(I,w=this)&&y(function(){C(w)})?l(Object(nt),this,B):nt};B.prototype=I,L&&!n&&(I.constructor=B),r({global:!0,constructor:!0,wrap:!0,forced:L},{Number:B});var X=function(w,rt){for(var k,nt=e?p(rt):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),ut=0;nt.length>ut;ut++)f(rt,k=nt[ut])&&!f(w,k)&&x(w,k,h(rt,k))};n&&S&&X(s[E],S),(L||n)&&X(s[E],A)},45374:(a,v,t)=>{t(46518)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},25428:(a,v,t)=>{t(46518)({target:"Number",stat:!0},{isFinite:t(50360)})},32637:(a,v,t)=>{t(46518)({target:"Number",stat:!0},{isInteger:t(2087)})},40150:(a,v,t)=>{t(46518)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},59149:(a,v,t)=>{var r=t(46518),n=t(2087),e=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(s){return n(s)&&e(s)<=9007199254740991}})},64601:(a,v,t)=>{t(46518)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},44435:(a,v,t)=>{t(46518)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},87220:(a,v,t)=>{var r=t(46518),n=t(33904);r({target:"Number",stat:!0,forced:Number.parseFloat!==n},{parseFloat:n})},25843:(a,v,t)=>{var r=t(46518),n=t(52703);r({target:"Number",stat:!0,forced:Number.parseInt!==n},{parseInt:n})},62337:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(91291),o=t(31240),s=t(72333),u=t(49340),i=t(79039),f=RangeError,l=String,c=isFinite,g=Math.abs,d=Math.floor,y=Math.pow,p=Math.round,h=n(1..toExponential),x=n(s),C=n("".slice),O="-6.9000e-11"===h(-69e-12,4)&&"1.25e+0"===h(1.255,2)&&"1.235e+4"===h(12345,3)&&"3e+1"===h(25,0);r({target:"Number",proto:!0,forced:!O||!(i(function(){h(1,1/0)})&&i(function(){h(1,-1/0)}))||!!i(function(){h(1/0,1/0),h(NaN,1/0)})},{toExponential:function(M){var $=o(this);if(void 0===M)return h($);var N=e(M);if(!c($))return String($);if(N<0||N>20)throw new f("Incorrect fraction digits");if(O)return h($,N);var F="",Z="",L=0,U="",B="";if($<0&&(F="-",$=-$),0===$)L=0,Z=x("0",N+1);else{var X=u($);L=d(X);var w=0,rt=y(10,L-N);2*$>=(2*(w=p($/rt))+1)*rt&&(w+=1),w>=y(10,N+1)&&(w/=10,L+=1),Z=l(w)}return 0!==N&&(Z=C(Z,0,1)+"."+C(Z,1)),0===L?(U="+",B="0"):(U=L>0?"+":"-",B=l(g(L))),F+(Z+"e")+U+B}})},9868:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(91291),o=t(31240),s=t(72333),u=t(79039),i=RangeError,f=String,l=Math.floor,c=n(s),g=n("".slice),d=n(1..toFixed),y=function(E,A,S){return 0===A?S:A%2==1?y(E,A-1,S*E):y(E*E,A/2,S)},h=function(E,A,S){for(var I=-1,M=S;++I<6;)E[I]=(M+=A*E[I])%1e7,M=l(M/1e7)},x=function(E,A){for(var S=6,I=0;--S>=0;)E[S]=l((I+=E[S])/A),I=I%A*1e7},C=function(E){for(var A=6,S="";--A>=0;)if(""!==S||0===A||0!==E[A]){var I=f(E[A]);S=""===S?I:S+c("0",7-I.length)+I}return S};r({target:"Number",proto:!0,forced:u(function(){return"0.000"!==d(8e-5,3)||"1"!==d(.9,0)||"1.25"!==d(1.255,2)||"1000000000000000128"!==d(0xde0b6b3a7640080,0)})||!u(function(){d({})})},{toFixed:function(A){var F,Z,L,U,S=o(this),I=e(A),M=[0,0,0,0,0,0],$="",N="0";if(I<0||I>20)throw new i("Incorrect fraction digits");if(S!=S)return"NaN";if(S<=-1e21||S>=1e21)return f(S);if(S<0&&($="-",S=-S),S>1e-21)if(F=function(E){for(var A=0,S=E;S>=4096;)A+=12,S/=4096;for(;S>=2;)A+=1,S/=2;return A}(S*y(2,69,1))-69,Z=F<0?S*y(2,-F,1):S/y(2,F,1),Z*=4503599627370496,(F=52-F)>0){for(h(M,0,Z),L=I;L>=7;)h(M,1e7,0),L-=7;for(h(M,y(10,L,1),0),L=F-1;L>=23;)x(M,1<<23),L-=23;x(M,1<0?$+((U=N.length)<=I?"0."+c("0",I-U)+N:g(N,0,U-I)+"."+g(N,U-I)):$+N}})},80630:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(79039),o=t(31240),s=n(1..toPrecision);r({target:"Number",proto:!0,forced:e(function(){return"1"!==s(1,void 0)})||!e(function(){s({})})},{toPrecision:function(f){return void 0===f?s(o(this)):s(o(this),f)}})},69085:(a,v,t)=>{var r=t(46518),n=t(44213);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==n},{assign:n})},59904:(a,v,t)=>{t(46518)({target:"Object",stat:!0,sham:!t(43724)},{create:t(2360)})},17427:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(42551),o=t(79306),s=t(48981),u=t(24913);n&&r({target:"Object",proto:!0,forced:e},{__defineGetter__:function(f,l){u.f(s(this),f,{get:o(l),enumerable:!0,configurable:!0})}})},67945:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(96801).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==e,sham:!n},{defineProperties:e})},84185:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(24913).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==e,sham:!n},{defineProperty:e})},87607:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(42551),o=t(79306),s=t(48981),u=t(24913);n&&r({target:"Object",proto:!0,forced:e},{__defineSetter__:function(f,l){u.f(s(this),f,{set:o(l),enumerable:!0,configurable:!0})}})},5506:(a,v,t)=>{var r=t(46518),n=t(32357).entries;r({target:"Object",stat:!0},{entries:function(o){return n(o)}})},52811:(a,v,t)=>{var r=t(46518),n=t(92744),e=t(79039),o=t(20034),s=t(3451).onFreeze,u=Object.freeze;r({target:"Object",stat:!0,forced:e(function(){u(1)}),sham:!n},{freeze:function(l){return u&&o(l)?u(s(l)):l}})},53921:(a,v,t)=>{var r=t(46518),n=t(72652),e=t(97040);r({target:"Object",stat:!0},{fromEntries:function(s){var u={};return n(s,function(i,f){e(u,i,f)},{AS_ENTRIES:!0}),u}})},83851:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(25397),o=t(77347).f,s=t(43724);r({target:"Object",stat:!0,forced:!s||n(function(){o(1)}),sham:!s},{getOwnPropertyDescriptor:function(f,l){return o(e(f),l)}})},81278:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(35031),o=t(25397),s=t(77347),u=t(97040);r({target:"Object",stat:!0,sham:!n},{getOwnPropertyDescriptors:function(f){for(var p,h,l=o(f),c=s.f,g=e(l),d={},y=0;g.length>y;)void 0!==(h=c(l,p=g[y++]))&&u(d,p,h);return d}})},1480:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(10298).f;r({target:"Object",stat:!0,forced:n(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:e})},49773:(a,v,t)=>{var r=t(46518),n=t(4495),e=t(79039),o=t(33717),s=t(48981);r({target:"Object",stat:!0,forced:!n||e(function(){o.f(1)})},{getOwnPropertySymbols:function(f){var l=o.f;return l?l(s(f)):[]}})},40875:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(48981),o=t(42787),s=t(12211);r({target:"Object",stat:!0,forced:n(function(){o(1)}),sham:!s},{getPrototypeOf:function(f){return o(e(f))}})},77691:(a,v,t)=>{var r=t(46518),n=t(97751),e=t(79504),o=t(79306),s=t(67750),u=t(56969),i=t(72652),f=n("Object","create"),l=e([].push);r({target:"Object",stat:!0},{groupBy:function(g,d){s(g),o(d);var y=f(null),p=0;return i(g,function(h){var x=u(d(h,p++));x in y?l(y[x],h):y[x]=[h]}),y}})},78347:(a,v,t)=>{t(46518)({target:"Object",stat:!0},{hasOwn:t(39297)})},94052:(a,v,t)=>{var r=t(46518),n=t(34124);r({target:"Object",stat:!0,forced:Object.isExtensible!==n},{isExtensible:n})},94003:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(20034),o=t(44576),s=t(15652),u=Object.isFrozen;r({target:"Object",stat:!0,forced:s||n(function(){u(1)})},{isFrozen:function(l){return!(e(l)&&(!s||"ArrayBuffer"!==o(l)))||!!u&&u(l)}})},221:(a,v,t)=>{var r=t(46518),n=t(79039),e=t(20034),o=t(44576),s=t(15652),u=Object.isSealed;r({target:"Object",stat:!0,forced:s||n(function(){u(1)})},{isSealed:function(l){return!(e(l)&&(!s||"ArrayBuffer"!==o(l)))||!!u&&u(l)}})},29908:(a,v,t)=>{t(46518)({target:"Object",stat:!0},{is:t(3470)})},79432:(a,v,t)=>{var r=t(46518),n=t(48981),e=t(71072);r({target:"Object",stat:!0,forced:t(79039)(function(){e(1)})},{keys:function(i){return e(n(i))}})},9220:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(42551),o=t(48981),s=t(56969),u=t(42787),i=t(77347).f;n&&r({target:"Object",proto:!0,forced:e},{__lookupGetter__:function(l){var d,c=o(this),g=s(l);do{if(d=i(c,g))return d.get}while(c=u(c))}})},7904:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(42551),o=t(48981),s=t(56969),u=t(42787),i=t(77347).f;n&&r({target:"Object",proto:!0,forced:e},{__lookupSetter__:function(l){var d,c=o(this),g=s(l);do{if(d=i(c,g))return d.set}while(c=u(c))}})},93967:(a,v,t)=>{var r=t(46518),n=t(20034),e=t(3451).onFreeze,o=t(92744),s=t(79039),u=Object.preventExtensions;r({target:"Object",stat:!0,forced:s(function(){u(1)}),sham:!o},{preventExtensions:function(l){return u&&n(l)?u(e(l)):l}})},63548:(a,v,t)=>{var r=t(43724),n=t(62106),e=t(20034),o=t(13925),s=t(48981),u=t(67750),i=Object.getPrototypeOf,f=Object.setPrototypeOf,l=Object.prototype,c="__proto__";if(r&&i&&f&&!(c in l))try{n(l,c,{configurable:!0,get:function(){return i(s(this))},set:function(d){var y=u(this);o(d)&&e(y)&&f(y,d)}})}catch{}},93941:(a,v,t)=>{var r=t(46518),n=t(20034),e=t(3451).onFreeze,o=t(92744),s=t(79039),u=Object.seal;r({target:"Object",stat:!0,forced:s(function(){u(1)}),sham:!o},{seal:function(l){return u&&n(l)?u(e(l)):l}})},10287:(a,v,t)=>{t(46518)({target:"Object",stat:!0},{setPrototypeOf:t(52967)})},26099:(a,v,t)=>{var r=t(92140),n=t(36840),e=t(53179);r||n(Object.prototype,"toString",e,{unsafe:!0})},16034:(a,v,t)=>{var r=t(46518),n=t(32357).values;r({target:"Object",stat:!0},{values:function(o){return n(o)}})},78459:(a,v,t)=>{var r=t(46518),n=t(33904);r({global:!0,forced:parseFloat!==n},{parseFloat:n})},58940:(a,v,t)=>{var r=t(46518),n=t(52703);r({global:!0,forced:parseInt!==n},{parseInt:n})},39796:(a,v,t)=>{var r=t(46518),n=t(18745),e=t(79306),o=t(28551);r({target:"Reflect",stat:!0,forced:!t(79039)(function(){Reflect.apply(function(){})})},{apply:function(f,l,c){return n(e(f),l,o(c))}})},60825:(a,v,t)=>{var r=t(46518),n=t(97751),e=t(18745),o=t(30566),s=t(35548),u=t(28551),i=t(20034),f=t(2360),l=t(79039),c=n("Reflect","construct"),g=Object.prototype,d=[].push,y=l(function(){function x(){}return!(c(function(){},[],x)instanceof x)}),p=!l(function(){c(function(){})}),h=y||p;r({target:"Reflect",stat:!0,forced:h,sham:h},{construct:function(C,O){s(C),u(O);var E=arguments.length<3?C:s(arguments[2]);if(p&&!y)return c(C,O,E);if(C===E){switch(O.length){case 0:return new C;case 1:return new C(O[0]);case 2:return new C(O[0],O[1]);case 3:return new C(O[0],O[1],O[2]);case 4:return new C(O[0],O[1],O[2],O[3])}var A=[null];return e(d,A,O),new(e(o,C,A))}var S=E.prototype,I=f(i(S)?S:g),M=e(C,I,O);return i(M)?M:I}})},87411:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(28551),o=t(56969),s=t(24913);r({target:"Reflect",stat:!0,forced:t(79039)(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})}),sham:!n},{defineProperty:function(l,c,g){e(l);var d=o(c);e(g);try{return s.f(l,d,g),!0}catch{return!1}}})},21211:(a,v,t)=>{var r=t(46518),n=t(28551),e=t(77347).f;r({target:"Reflect",stat:!0},{deleteProperty:function(s,u){var i=e(n(s),u);return!(i&&!i.configurable)&&delete s[u]}})},9065:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(28551),o=t(77347);r({target:"Reflect",stat:!0,sham:!n},{getOwnPropertyDescriptor:function(u,i){return o.f(e(u),i)}})},86565:(a,v,t)=>{var r=t(46518),n=t(28551),e=t(42787);r({target:"Reflect",stat:!0,sham:!t(12211)},{getPrototypeOf:function(u){return e(n(u))}})},40888:(a,v,t)=>{var r=t(46518),n=t(69565),e=t(20034),o=t(28551),s=t(16575),u=t(77347),i=t(42787);r({target:"Reflect",stat:!0},{get:function f(l,c){var d,y,g=arguments.length<3?l:arguments[2];return o(l)===g?l[c]:(d=u.f(l,c))?s(d)?d.value:void 0===d.get?void 0:n(d.get,g):e(y=i(l))?f(y,c,g):void 0}})},32812:(a,v,t)=>{t(46518)({target:"Reflect",stat:!0},{has:function(e,o){return o in e}})},84634:(a,v,t)=>{var r=t(46518),n=t(28551),e=t(34124);r({target:"Reflect",stat:!0},{isExtensible:function(s){return n(s),e(s)}})},71137:(a,v,t)=>{t(46518)({target:"Reflect",stat:!0},{ownKeys:t(35031)})},30985:(a,v,t)=>{var r=t(46518),n=t(97751),e=t(28551);r({target:"Reflect",stat:!0,sham:!t(92744)},{preventExtensions:function(u){e(u);try{var i=n("Object","preventExtensions");return i&&i(u),!0}catch{return!1}}})},34873:(a,v,t)=>{var r=t(46518),n=t(28551),e=t(73506),o=t(52967);o&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(u,i){n(u),e(i);try{return o(u,i),!0}catch{return!1}}})},34268:(a,v,t)=>{var r=t(46518),n=t(69565),e=t(28551),o=t(20034),s=t(16575),u=t(79039),i=t(24913),f=t(77347),l=t(42787),c=t(6980);r({target:"Reflect",stat:!0,forced:u(function(){var y=function(){},p=i.f(new y,"a",{configurable:!0});return!1!==Reflect.set(y.prototype,"a",1,p)})},{set:function g(y,p,h){var O,E,A,x=arguments.length<4?y:arguments[3],C=f.f(e(y),p);if(!C){if(o(E=l(y)))return g(E,p,h,x);C=c(0)}if(s(C)){if(!1===C.writable||!o(x))return!1;if(O=f.f(x,p)){if(O.get||O.set||!1===O.writable)return!1;O.value=h,i.f(x,p,O)}else i.f(x,p,c(0,h))}else{if(void 0===(A=C.set))return!1;n(A,x,h)}return!0}})},15472:(a,v,t)=>{var r=t(46518),n=t(24475),e=t(10687);r({global:!0},{Reflect:{}}),e(n.Reflect,"Reflect",!0)},84864:(a,v,t)=>{var r=t(43724),n=t(24475),e=t(79504),o=t(92796),s=t(23167),u=t(66699),i=t(2360),f=t(38480).f,l=t(1625),c=t(60788),g=t(655),d=t(61034),y=t(58429),p=t(11056),h=t(36840),x=t(79039),C=t(39297),O=t(91181).enforce,E=t(87633),A=t(78227),S=t(83635),I=t(18814),M=A("match"),$=n.RegExp,N=$.prototype,F=n.SyntaxError,Z=e(N.exec),L=e("".charAt),U=e("".replace),B=e("".indexOf),X=e("".slice),w=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,rt=/a/g,nt=/a/g,ut=new $(rt)!==rt,k=y.MISSED_STICKY,vt=y.UNSUPPORTED_Y;if(o("RegExp",r&&(!ut||k||S||I||x(function(){return nt[M]=!1,$(rt)!==rt||$(nt)===nt||"/a/i"!==String($(rt,"i"))})))){for(var Ot=function(At,Ct){var rr,Kt,Mt,er,ir,or,Qt=l(N,this),Wt=c(At),zt=void 0===Ct,Zt=[],wt=At;if(!Qt&&Wt&&zt&&At.constructor===Ot)return At;if((Wt||l(N,At))&&(At=At.source,zt&&(Ct=d(wt))),At=void 0===At?"":g(At),Ct=void 0===Ct?"":g(Ct),wt=At,S&&"dotAll"in rt&&(Kt=!!Ct&&B(Ct,"s")>-1)&&(Ct=U(Ct,/s/g,"")),rr=Ct,k&&"sticky"in rt&&(Mt=!!Ct&&B(Ct,"y")>-1)&&vt&&(Ct=U(Ct,/y/g,"")),I&&(er=function(Lt){for(var Mt,At=Lt.length,Ct=0,Qt="",Wt=[],zt=i(null),Zt=!1,wt=!1,rr=0,Kt="";Ct<=At;Ct++){if("\\"===(Mt=L(Lt,Ct)))Mt+=L(Lt,++Ct);else if("]"===Mt)Zt=!1;else if(!Zt)switch(!0){case"["===Mt:Zt=!0;break;case"("===Mt:Z(w,X(Lt,Ct+1))&&(Ct+=2,wt=!0),Qt+=Mt,rr++;continue;case">"===Mt&&wt:if(""===Kt||C(zt,Kt))throw new F("Invalid capture group name");zt[Kt]=!0,Wt[Wt.length]=[Kt,rr],wt=!1,Kt="";continue}wt?Kt+=Mt:Qt+=Mt}return[Qt,Wt]}(At),At=er[0],Zt=er[1]),ir=s($(At,Ct),Qt?this:N,Ot),(Kt||Mt||Zt.length)&&(or=O(ir),Kt&&(or.dotAll=!0,or.raw=Ot(function(Lt){for(var zt,At=Lt.length,Ct=0,Qt="",Wt=!1;Ct<=At;Ct++)"\\"!==(zt=L(Lt,Ct))?Wt||"."!==zt?("["===zt?Wt=!0:"]"===zt&&(Wt=!1),Qt+=zt):Qt+="[\\s\\S]":Qt+=zt+L(Lt,++Ct);return Qt}(At),rr)),Mt&&(or.sticky=!0),Zt.length&&(or.groups=Zt)),At!==wt)try{u(ir,"source",""===wt?"(?:)":wt)}catch{}return ir},bt=f($),Vt=0;bt.length>Vt;)p(Ot,$,bt[Vt++]);N.constructor=Ot,Ot.prototype=N,h(n,"RegExp",Ot,{constructor:!0})}E("RegExp")},57465:(a,v,t)=>{var r=t(43724),n=t(83635),e=t(44576),o=t(62106),s=t(91181).get,u=RegExp.prototype,i=TypeError;r&&n&&o(u,"dotAll",{configurable:!0,get:function(){if(this!==u){if("RegExp"===e(this))return!!s(this).dotAll;throw new i("Incompatible receiver, RegExp required")}}})},27495:(a,v,t)=>{var r=t(46518),n=t(57323);r({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},69479:(a,v,t)=>{var r=t(24475),n=t(43724),e=t(62106),o=t(67979),s=t(79039),u=r.RegExp,i=u.prototype;n&&s(function(){var l=!0;try{u(".","d")}catch{l=!1}var c={},g="",d=l?"dgimsy":"gimsy",y=function(C,O){Object.defineProperty(c,C,{get:function(){return g+=O,!0}})},p={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var h in l&&(p.hasIndices="d"),p)y(h,p[h]);return Object.getOwnPropertyDescriptor(i,"flags").get.call(c)!==d||g!==d})&&e(i,"flags",{configurable:!0,get:o})},87745:(a,v,t)=>{var r=t(43724),n=t(58429).MISSED_STICKY,e=t(44576),o=t(62106),s=t(91181).get,u=RegExp.prototype,i=TypeError;r&&n&&o(u,"sticky",{configurable:!0,get:function(){if(this!==u){if("RegExp"===e(this))return!!s(this).sticky;throw new i("Incompatible receiver, RegExp required")}}})},90906:(a,v,t)=>{t(27495);var f,l,r=t(46518),n=t(69565),e=t(94901),o=t(28551),s=t(655),u=(f=!1,(l=/[ac]/).exec=function(){return f=!0,/./.exec.apply(this,arguments)},!0===l.test("abc")&&f),i=/./.test;r({target:"RegExp",proto:!0,forced:!u},{test:function(f){var l=o(this),c=s(f),g=l.exec;if(!e(g))return n(i,l,c);var d=n(g,l,c);return null!==d&&(o(d),!0)}})},38781:(a,v,t)=>{var r=t(10350).PROPER,n=t(36840),e=t(28551),o=t(655),s=t(79039),u=t(61034),i="toString",f=RegExp.prototype,l=f[i];(s(function(){return"/a/b"!==l.call({source:"a",flags:"b"})})||r&&l.name!==i)&&n(f,i,function(){var y=e(this);return"/"+o(y.source)+"/"+o(u(y))},{unsafe:!0})},92405:(a,v,t)=>{t(16468)("Set",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},t(86938))},31415:(a,v,t)=>{t(92405)},89907:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("anchor")},{anchor:function(s){return n(this,"a","name",s)}})},67357:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(67750),o=t(91291),s=t(655),u=t(79039),i=n("".charAt);r({target:"String",proto:!0,forced:u(function(){return"\ud842"!=="\u{20bb7}".at(-2)})},{at:function(c){var g=s(e(this)),d=g.length,y=o(c),p=y>=0?y:d+y;return p<0||p>=d?void 0:i(g,p)}})},11898:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("big")},{big:function(){return n(this,"big","","")}})},35490:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("blink")},{blink:function(){return n(this,"blink","","")}})},5745:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("bold")},{bold:function(){return n(this,"b","","")}})},23860:(a,v,t)=>{var r=t(46518),n=t(68183).codeAt;r({target:"String",proto:!0},{codePointAt:function(o){return n(this,o)}})},99449:(a,v,t)=>{var p,r=t(46518),n=t(27476),e=t(77347).f,o=t(18014),s=t(655),u=t(60511),i=t(67750),f=t(41436),l=t(96395),c=n("".slice),g=Math.min,d=f("endsWith");r({target:"String",proto:!0,forced:!(!l&&!d&&(p=e(String.prototype,"endsWith"),p&&!p.writable)||d)},{endsWith:function(h){var x=s(i(this));u(h);var C=arguments.length>1?arguments[1]:void 0,O=x.length,E=void 0===C?O:g(o(C),O),A=s(h);return c(x,E-A.length,E)===A}})},94298:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("fixed")},{fixed:function(){return n(this,"tt","","")}})},60268:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("fontcolor")},{fontcolor:function(s){return n(this,"font","color",s)}})},69546:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("fontsize")},{fontsize:function(s){return n(this,"font","size",s)}})},27337:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(35610),o=RangeError,s=String.fromCharCode,u=String.fromCodePoint,i=n([].join);r({target:"String",stat:!0,arity:1,forced:!!u&&1!==u.length},{fromCodePoint:function(c){for(var p,g=[],d=arguments.length,y=0;d>y;){if(p=+arguments[y++],e(p,1114111)!==p)throw new o(p+" is not a valid code point");g[y]=p<65536?s(p):s(55296+((p-=65536)>>10),p%1024+56320)}return i(g,"")}})},21699:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(60511),o=t(67750),s=t(655),u=t(41436),i=n("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(l){return!!~i(s(o(this)),s(e(l)),arguments.length>1?arguments[1]:void 0)}})},42043:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(67750),o=t(655),s=n("".charCodeAt);r({target:"String",proto:!0},{isWellFormed:function(){for(var i=o(e(this)),f=i.length,l=0;l=56320||++l>=f||56320!=(64512&s(i,l))))return!1}return!0}})},20781:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("italics")},{italics:function(){return n(this,"i","","")}})},47764:(a,v,t)=>{var r=t(68183).charAt,n=t(655),e=t(91181),o=t(51088),s=t(62529),u="String Iterator",i=e.set,f=e.getterFor(u);o(String,"String",function(l){i(this,{type:u,string:n(l),index:0})},function(){var y,c=f(this),g=c.string,d=c.index;return d>=g.length?s(void 0,!0):(y=r(g,d),c.index+=y.length,s(y,!1))})},50778:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("link")},{link:function(s){return n(this,"a","href",s)}})},28543:(a,v,t)=>{var r=t(46518),n=t(69565),e=t(27476),o=t(33994),s=t(62529),u=t(67750),i=t(18014),f=t(655),l=t(28551),c=t(64117),g=t(44576),d=t(60788),y=t(61034),p=t(55966),h=t(36840),x=t(79039),C=t(78227),O=t(2293),E=t(57829),A=t(56682),S=t(91181),I=t(96395),M=C("matchAll"),$="RegExp String",N=$+" Iterator",F=S.set,Z=S.getterFor(N),L=RegExp.prototype,U=TypeError,B=e("".indexOf),X=e("".matchAll),w=!!X&&!x(function(){X("a",/./)}),rt=o(function(k,vt,it,ct){F(this,{type:N,regexp:k,string:vt,global:it,unicode:ct,done:!1})},$,function(){var k=Z(this);if(k.done)return s(void 0,!0);var vt=k.regexp,it=k.string,ct=A(vt,it);return null===ct?(k.done=!0,s(void 0,!0)):k.global?(""===f(ct[0])&&(vt.lastIndex=E(it,i(vt.lastIndex),k.unicode)),s(ct,!1)):(k.done=!0,s(ct,!1))}),nt=function(ut){var Et,Ot,bt,k=l(this),vt=f(ut),it=O(k,RegExp),ct=f(y(k));return Et=new it(it===RegExp?k.source:k,ct),Ot=!!~B(ct,"g"),bt=!!~B(ct,"u"),Et.lastIndex=i(k.lastIndex),new rt(Et,vt,Ot,bt)};r({target:"String",proto:!0,forced:w},{matchAll:function(k){var it,ct,Et,Ot,vt=u(this);if(c(k)){if(w)return X(vt,k)}else{if(d(k)&&(it=f(u(y(k))),!~B(it,"g")))throw new U("`.matchAll` does not allow non-global regexes");if(w)return X(vt,k);if(void 0===(Et=p(k,M))&&I&&"RegExp"===g(k)&&(Et=nt),Et)return n(Et,k,vt)}return ct=f(vt),Ot=new RegExp(k,"g"),I?n(nt,Ot,ct):Ot[M](ct)}}),I||M in L||h(L,M,nt)},71761:(a,v,t)=>{var r=t(69565),n=t(89228),e=t(28551),o=t(64117),s=t(18014),u=t(655),i=t(67750),f=t(55966),l=t(57829),c=t(56682);n("match",function(g,d,y){return[function(h){var x=i(this),C=o(h)?void 0:f(h,g);return C?r(C,h,x):new RegExp(h)[g](u(x))},function(p){var h=e(this),x=u(p),C=y(d,h,x);if(C.done)return C.value;if(!h.global)return c(h,x);var O=h.unicode;h.lastIndex=0;for(var S,E=[],A=0;null!==(S=c(h,x));){var I=u(S[0]);E[A]=I,""===I&&(h.lastIndex=l(x,s(h.lastIndex),O)),A++}return 0===A?null:E}]})},35701:(a,v,t)=>{var r=t(46518),n=t(60533).end;r({target:"String",proto:!0,forced:t(83063)},{padEnd:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}})},68156:(a,v,t)=>{var r=t(46518),n=t(60533).start;r({target:"String",proto:!0,forced:t(83063)},{padStart:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}})},85906:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(25397),o=t(48981),s=t(655),u=t(26198),i=n([].push),f=n([].join);r({target:"String",stat:!0},{raw:function(c){var g=e(o(c).raw),d=u(g);if(!d)return"";for(var y=arguments.length,p=[],h=0;;){if(i(p,s(g[h++])),h===d)return f(p,"");h{t(46518)({target:"String",proto:!0},{repeat:t(72333)})},79978:(a,v,t)=>{var r=t(46518),n=t(69565),e=t(79504),o=t(67750),s=t(94901),u=t(64117),i=t(60788),f=t(655),l=t(55966),c=t(61034),g=t(2478),d=t(78227),y=t(96395),p=d("replace"),h=TypeError,x=e("".indexOf),C=e("".replace),O=e("".slice),E=Math.max;r({target:"String",proto:!0},{replaceAll:function(S,I){var $,N,F,Z,L,U,B,X,w,M=o(this),rt=0,nt=0,ut="";if(!u(S)){if(($=i(S))&&(N=f(o(c(S))),!~x(N,"g")))throw new h("`.replaceAll` does not allow non-global regexes");if(F=l(S,p))return n(F,S,M,I);if(y&&$)return C(f(M),S,I)}for(Z=f(M),L=f(S),(U=s(I))||(I=f(I)),X=E(1,B=L.length),rt=x(Z,L);-1!==rt;)w=U?f(I(L,rt,Z)):g(L,Z,rt,[],void 0,I),ut+=O(Z,nt,rt)+w,nt=rt+B,rt=rt+X>Z.length?-1:x(Z,L,rt+X);return nt{var r=t(18745),n=t(69565),e=t(79504),o=t(89228),s=t(79039),u=t(28551),i=t(94901),f=t(64117),l=t(91291),c=t(18014),g=t(655),d=t(67750),y=t(57829),p=t(55966),h=t(2478),x=t(56682),O=t(78227)("replace"),E=Math.max,A=Math.min,S=e([].concat),I=e([].push),M=e("".indexOf),$=e("".slice),N=function(U){return void 0===U?U:String(U)},F="$0"==="a".replace(/./,"$0"),Z=!!/./[O]&&""===/./[O]("a","$0");o("replace",function(U,B,X){var w=Z?"$":"$0";return[function(nt,ut){var k=d(this),vt=f(nt)?void 0:p(nt,O);return vt?n(vt,nt,k,ut):n(B,g(k),nt,ut)},function(rt,nt){var ut=u(this),k=g(rt);if("string"==typeof nt&&-1===M(nt,w)&&-1===M(nt,"$<")){var vt=X(B,ut,k,nt);if(vt.done)return vt.value}var it=i(nt);it||(nt=g(nt));var Et,ct=ut.global;ct&&(Et=ut.unicode,ut.lastIndex=0);for(var bt,Ot=[];null!==(bt=x(ut,k))&&(I(Ot,bt),ct);)""===g(bt[0])&&(ut.lastIndex=y(k,c(ut.lastIndex),Et));for(var Lt="",At=0,Ct=0;Ct=At&&(Lt+=$(k,At,Wt)+Zt,At=Wt+Qt.length)}return Lt+$(k,At)}]},!!s(function(){var U=/./;return U.exec=function(){var B=[];return B.groups={a:"7"},B},"7"!=="".replace(U,"$")})||!F||Z)},5746:(a,v,t)=>{var r=t(69565),n=t(89228),e=t(28551),o=t(64117),s=t(67750),u=t(3470),i=t(655),f=t(55966),l=t(56682);n("search",function(c,g,d){return[function(p){var h=s(this),x=o(p)?void 0:f(p,c);return x?r(x,p,h):new RegExp(p)[c](i(h))},function(y){var p=e(this),h=i(y),x=d(g,p,h);if(x.done)return x.value;var C=p.lastIndex;u(C,0)||(p.lastIndex=0);var O=l(p,h);return u(p.lastIndex,C)||(p.lastIndex=C),null===O?-1:O.index}]})},89195:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("small")},{small:function(){return n(this,"small","","")}})},90744:(a,v,t)=>{var r=t(69565),n=t(79504),e=t(89228),o=t(28551),s=t(64117),u=t(67750),i=t(2293),f=t(57829),l=t(18014),c=t(655),g=t(55966),d=t(56682),y=t(58429),p=t(79039),h=y.UNSUPPORTED_Y,C=Math.min,O=n([].push),E=n("".slice),A=!p(function(){var I=/(?:)/,M=I.exec;I.exec=function(){return M.apply(this,arguments)};var $="ab".split(I);return 2!==$.length||"a"!==$[0]||"b"!==$[1]}),S="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;e("split",function(I,M,$){var N="0".split(void 0,0).length?function(F,Z){return void 0===F&&0===Z?[]:r(M,this,F,Z)}:M;return[function(Z,L){var U=u(this),B=s(Z)?void 0:g(Z,I);return B?r(B,Z,U,L):r(N,c(U),Z,L)},function(F,Z){var L=o(this),U=c(F);if(!S){var B=$(N,L,U,Z,N!==M);if(B.done)return B.value}var X=i(L,RegExp),w=L.unicode,nt=new X(h?"^(?:"+L.source+")":L,(L.ignoreCase?"i":"")+(L.multiline?"m":"")+(L.unicode?"u":"")+(h?"g":"y")),ut=void 0===Z?4294967295:Z>>>0;if(0===ut)return[];if(0===U.length)return null===d(nt,U)?[U]:[];for(var k=0,vt=0,it=[];vt{var p,r=t(46518),n=t(27476),e=t(77347).f,o=t(18014),s=t(655),u=t(60511),i=t(67750),f=t(41436),l=t(96395),c=n("".slice),g=Math.min,d=f("startsWith");r({target:"String",proto:!0,forced:!(!l&&!d&&(p=e(String.prototype,"startsWith"),p&&!p.writable)||d)},{startsWith:function(h){var x=s(i(this));u(h);var C=o(g(arguments.length>1?arguments[1]:void 0,x.length)),O=s(h);return c(x,C,C+O.length)===O}})},46276:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("strike")},{strike:function(){return n(this,"strike","","")}})},48718:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("sub")},{sub:function(){return n(this,"sub","","")}})},50375:(a,v,t)=>{var r=t(46518),n=t(79504),e=t(67750),o=t(91291),s=t(655),u=n("".slice),i=Math.max,f=Math.min;r({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(g,d){var x,C,y=s(e(this)),p=y.length,h=o(g);return h===1/0&&(h=0),h<0&&(h=i(p+h,0)),(x=void 0===d?p:o(d))<=0||x===1/0||h>=(C=f(h+x,p))?"":u(y,h,C)}})},16308:(a,v,t)=>{var r=t(46518),n=t(77240);r({target:"String",proto:!0,forced:t(23061)("sup")},{sup:function(){return n(this,"sup","","")}})},67438:(a,v,t)=>{var r=t(46518),n=t(69565),e=t(79504),o=t(67750),s=t(655),u=t(79039),i=Array,f=e("".charAt),l=e("".charCodeAt),c=e([].join),g="".toWellFormed,y=g&&u(function(){return"1"!==n(g,1)});r({target:"String",proto:!0,forced:y},{toWellFormed:function(){var h=s(o(this));if(y)return n(g,h);for(var x=h.length,C=i(x),O=0;O=56320||O+1>=x||56320!=(64512&l(h,O+1))?C[O]="\ufffd":(C[O]=f(h,O),C[++O]=f(h,O))}return c(C,"")}})},39202:(a,v,t)=>{t(33313);var r=t(46518),n=t(18866);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==n},{trimEnd:n})},58934:(a,v,t)=>{var r=t(46518),n=t(53487);r({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==n},{trimLeft:n})},33313:(a,v,t)=>{var r=t(46518),n=t(18866);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==n},{trimRight:n})},43359:(a,v,t)=>{t(58934);var r=t(46518),n=t(53487);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==n},{trimStart:n})},42762:(a,v,t)=>{var r=t(46518),n=t(43802).trim;r({target:"String",proto:!0,forced:t(60706)("trim")},{trim:function(){return n(this)}})},66412:(a,v,t)=>{t(70511)("asyncIterator")},6761:(a,v,t)=>{var r=t(46518),n=t(24475),e=t(69565),o=t(79504),s=t(96395),u=t(43724),i=t(4495),f=t(79039),l=t(39297),c=t(1625),g=t(28551),d=t(25397),y=t(56969),p=t(655),h=t(6980),x=t(2360),C=t(71072),O=t(38480),E=t(10298),A=t(33717),S=t(77347),I=t(24913),M=t(96801),$=t(48773),N=t(36840),F=t(62106),Z=t(25745),L=t(66119),U=t(30421),B=t(33392),X=t(78227),w=t(1951),rt=t(70511),nt=t(58242),ut=t(10687),k=t(91181),vt=t(59213).forEach,it=L("hidden"),ct="Symbol",Et="prototype",Ot=k.set,bt=k.getterFor(ct),Vt=Object[Et],Lt=n.Symbol,At=Lt&&Lt[Et],Ct=n.RangeError,Qt=n.TypeError,Wt=n.QObject,zt=S.f,Zt=I.f,wt=E.f,rr=$.f,Kt=o([].push),Mt=Z("symbols"),er=Z("op-symbols"),ir=Z("wks"),or=!Wt||!Wt[Et]||!Wt[Et].findChild,T=function(W,q,J){var Q=zt(Vt,q);Q&&delete Vt[q],Zt(W,q,J),Q&&W!==Vt&&Zt(Vt,q,Q)},D=u&&f(function(){return 7!==x(Zt({},"a",{get:function(){return Zt(this,"a",{value:7}).a}})).a})?T:Zt,K=function(W,q){var J=Mt[W]=x(At);return Ot(J,{type:ct,tag:W,description:q}),u||(J.description=q),J},G=function(q,J,Q){q===Vt&&G(er,J,Q),g(q);var at=y(J);return g(Q),l(Mt,at)?(Q.enumerable?(l(q,it)&&q[it][at]&&(q[it][at]=!1),Q=x(Q,{enumerable:h(0,!1)})):(l(q,it)||Zt(q,it,h(1,x(null))),q[it][at]=!0),D(q,at,Q)):Zt(q,at,Q)},V=function(q,J){g(q);var Q=d(J),at=C(Q).concat(Y(Q));return vt(at,function(gt){(!u||e(P,Q,gt))&&G(q,gt,Q[gt])}),q},P=function(q){var J=y(q),Q=e(rr,this,J);return!(this===Vt&&l(Mt,J)&&!l(er,J))&&(!(Q||!l(this,J)||!l(Mt,J)||l(this,it)&&this[it][J])||Q)},j=function(q,J){var Q=d(q),at=y(J);if(Q!==Vt||!l(Mt,at)||l(er,at)){var gt=zt(Q,at);return gt&&l(Mt,at)&&!(l(Q,it)&&Q[it][at])&&(gt.enumerable=!0),gt}},H=function(q){var J=wt(d(q)),Q=[];return vt(J,function(at){!l(Mt,at)&&!l(U,at)&&Kt(Q,at)}),Q},Y=function(W){var q=W===Vt,J=wt(q?er:d(W)),Q=[];return vt(J,function(at){l(Mt,at)&&(!q||l(Vt,at))&&Kt(Q,Mt[at])}),Q};i||(N(At=(Lt=function(){if(c(At,this))throw new Qt("Symbol is not a constructor");var q=arguments.length&&void 0!==arguments[0]?p(arguments[0]):void 0,J=B(q),Q=function(at){var gt=void 0===this?n:this;gt===Vt&&e(Q,er,at),l(gt,it)&&l(gt[it],J)&&(gt[it][J]=!1);var Ht=h(1,at);try{D(gt,J,Ht)}catch(Ft){if(!(Ft instanceof Ct))throw Ft;T(gt,J,Ht)}};return u&&or&&D(Vt,J,{configurable:!0,set:Q}),K(J,q)})[Et],"toString",function(){return bt(this).tag}),N(Lt,"withoutSetter",function(W){return K(B(W),W)}),$.f=P,I.f=G,M.f=V,S.f=j,O.f=E.f=H,A.f=Y,w.f=function(W){return K(X(W),W)},u&&(F(At,"description",{configurable:!0,get:function(){return bt(this).description}}),s||N(Vt,"propertyIsEnumerable",P,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!i,sham:!i},{Symbol:Lt}),vt(C(ir),function(W){rt(W)}),r({target:ct,stat:!0,forced:!i},{useSetter:function(){or=!0},useSimple:function(){or=!1}}),r({target:"Object",stat:!0,forced:!i,sham:!u},{create:function(q,J){return void 0===J?x(q):V(x(q),J)},defineProperty:G,defineProperties:V,getOwnPropertyDescriptor:j}),r({target:"Object",stat:!0,forced:!i},{getOwnPropertyNames:H}),nt(),ut(Lt,ct),U[it]=!0},89463:(a,v,t)=>{var r=t(46518),n=t(43724),e=t(24475),o=t(79504),s=t(39297),u=t(94901),i=t(1625),f=t(655),l=t(62106),c=t(77740),g=e.Symbol,d=g&&g.prototype;if(n&&u(g)&&(!("description"in d)||void 0!==g().description)){var y={},p=function(){var I=arguments.length<1||void 0===arguments[0]?void 0:f(arguments[0]),M=i(d,this)?new g(I):void 0===I?g():g(I);return""===I&&(y[M]=!0),M};c(p,g),p.prototype=d,d.constructor=p;var h="Symbol(description detection)"===String(g("description detection")),x=o(d.valueOf),C=o(d.toString),O=/^Symbol\((.*)\)[^)]+$/,E=o("".replace),A=o("".slice);l(d,"description",{configurable:!0,get:function(){var I=x(this);if(s(y,I))return"";var M=C(I),$=h?A(M,7,-1):E(M,O,"$1");return""===$?void 0:$}}),r({global:!0,constructor:!0,forced:!0},{Symbol:p})}},81510:(a,v,t)=>{var r=t(46518),n=t(97751),e=t(39297),o=t(655),s=t(25745),u=t(91296),i=s("string-to-symbol-registry"),f=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{for:function(l){var c=o(l);if(e(i,c))return i[c];var g=n("Symbol")(c);return i[c]=g,f[g]=c,g}})},60193:(a,v,t)=>{t(70511)("hasInstance")},92168:(a,v,t)=>{t(70511)("isConcatSpreadable")},2259:(a,v,t)=>{t(70511)("iterator")},52675:(a,v,t)=>{t(6761),t(81510),t(97812),t(33110),t(49773)},97812:(a,v,t)=>{var r=t(46518),n=t(39297),e=t(10757),o=t(16823),s=t(25745),u=t(91296),i=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{keyFor:function(l){if(!e(l))throw new TypeError(o(l)+" is not a symbol");if(n(i,l))return i[l]}})},83142:(a,v,t)=>{t(70511)("matchAll")},86964:(a,v,t)=>{t(70511)("match")},83237:(a,v,t)=>{t(70511)("replace")},61833:(a,v,t)=>{t(70511)("search")},67947:(a,v,t)=>{t(70511)("species")},31073:(a,v,t)=>{t(70511)("split")},45700:(a,v,t)=>{var r=t(70511),n=t(58242);r("toPrimitive"),n()},78125:(a,v,t)=>{var r=t(97751),n=t(70511),e=t(10687);n("toStringTag"),e(r("Symbol"),"Symbol")},20326:(a,v,t)=>{t(70511)("unscopables")},65746:(a,v,t)=>{var A,r=t(92744),n=t(24475),e=t(79504),o=t(56279),s=t(3451),u=t(16468),i=t(91625),f=t(20034),l=t(91181).enforce,c=t(79039),g=t(58622),d=Object,y=Array.isArray,p=d.isExtensible,h=d.isFrozen,x=d.isSealed,C=d.freeze,O=d.seal,E=!n.ActiveXObject&&"ActiveXObject"in n,S=function(U){return function(){return U(this,arguments.length?arguments[0]:void 0)}},I=u("WeakMap",S,i),M=I.prototype,$=e(M.set);if(g)if(E){A=i.getConstructor(S,"WeakMap",!0),s.enable();var F=e(M.delete),Z=e(M.has),L=e(M.get);o(M,{delete:function(U){if(f(U)&&!p(U)){var B=l(this);return B.frozen||(B.frozen=new A),F(this,U)||B.frozen.delete(U)}return F(this,U)},has:function(B){if(f(B)&&!p(B)){var X=l(this);return X.frozen||(X.frozen=new A),Z(this,B)||X.frozen.has(B)}return Z(this,B)},get:function(B){if(f(B)&&!p(B)){var X=l(this);return X.frozen||(X.frozen=new A),Z(this,B)?L(this,B):X.frozen.get(B)}return L(this,B)},set:function(B,X){if(f(B)&&!p(B)){var w=l(this);w.frozen||(w.frozen=new A),Z(this,B)?$(this,B,X):w.frozen.set(B,X)}else $(this,B,X);return this}})}else r&&c(function(){var U=C([]);return $(new I,U,1),!h(U)})&&o(M,{set:function(B,X){var w;return y(B)&&(h(B)?w=C:x(B)&&(w=O)),$(this,B,X),w&&w(B),this}})},73772:(a,v,t)=>{t(65746)}},a=>{a(a.s=12523)}]); \ No newline at end of file diff --git a/www/z4d/polyfills.c10a787808c97975.js b/www/z4d/polyfills.c10a787808c97975.js deleted file mode 100644 index 05b314da0..000000000 --- a/www/z4d/polyfills.c10a787808c97975.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[429],{75565:(h,x,r)=>{"use strict";class Mg extends Error{constructor(t){super(`No translation found for ${Ql(t)}.`),this.parsedMessage=t,this.type="MissingTranslationError"}}const Go=function(s,...t){if(Go.translate){const n=Go.translate(s,t);s=n[0],t=n[1]}let e=Jl(s[0],s.raw[0]);for(let n=1;ntypeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)().$localize=Go,r(19266),r(4790),r(42822),r(94834),r(3885),r(69789),r(73268),r(1111),r(19863),r(87377),r(88460),r(63662),r(39074),r(88188),r(72254),r(88583),window.__Zone_enable_cross_context_check=!0},88583:()=>{"use strict";!function(R){const z=R.performance;function nt(oe){z&&z.mark&&z.mark(oe)}function Z(oe,Lt){z&&z.measure&&z.measure(oe,Lt)}nt("Zone");const _=R.__Zone_symbol_prefix||"__zone_symbol__";function ot(oe){return _+oe}const Ot=!0===R[ot("forceDuplicateZoneCheck")];if(R.Zone){if(Ot||"function"!=typeof R.Zone.__symbol__)throw new Error("Zone already loaded.");return R.Zone}let Rt=(()=>{class oe{constructor(D,k){this._parent=D,this._name=k?k.name||"unnamed":"",this._properties=k&&k.properties||{},this._zoneDelegate=new dt(this,this._parent&&this._parent._zoneDelegate,k)}static assertZonePatched(){if(R.Promise!==Ze.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let D=oe.current;for(;D.parent;)D=D.parent;return D}static get current(){return Ne.zone}static get currentTask(){return Me}static __load_patch(D,k,kt=!1){if(Ze.hasOwnProperty(D)){if(!kt&&Ot)throw Error("Already loaded patch: "+D)}else if(!R["__Zone_disable_"+D]){const Zt="Zone:"+D;nt(Zt),Ze[D]=k(R,oe,Pe),Z(Zt,Zt)}}get parent(){return this._parent}get name(){return this._name}get(D){const k=this.getZoneWith(D);if(k)return k._properties[D]}getZoneWith(D){let k=this;for(;k;){if(k._properties.hasOwnProperty(D))return k;k=k._parent}return null}fork(D){if(!D)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,D)}wrap(D,k){if("function"!=typeof D)throw new Error("Expecting function got: "+D);const kt=this._zoneDelegate.intercept(this,D,k),Zt=this;return function(){return Zt.runGuarded(kt,this,arguments,k)}}run(D,k,kt,Zt){Ne={parent:Ne,zone:this};try{return this._zoneDelegate.invoke(this,D,k,kt,Zt)}finally{Ne=Ne.parent}}runGuarded(D,k=null,kt,Zt){Ne={parent:Ne,zone:this};try{try{return this._zoneDelegate.invoke(this,D,k,kt,Zt)}catch(Nt){if(this._zoneDelegate.handleError(this,Nt))throw Nt}}finally{Ne=Ne.parent}}runTask(D,k,kt){if(D.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(D.zone||Re).name+"; Execution: "+this.name+")");if(D.state===jt&&(D.type===Xe||D.type===Kt))return;const Zt=D.state!=Ft;Zt&&D._transitionTo(Ft,ne),D.runCount++;const Nt=Me;Me=D,Ne={parent:Ne,zone:this};try{D.type==Kt&&D.data&&!D.data.isPeriodic&&(D.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,D,k,kt)}catch(vt){if(this._zoneDelegate.handleError(this,vt))throw vt}}finally{D.state!==jt&&D.state!==St&&(D.type==Xe||D.data&&D.data.isPeriodic?Zt&&D._transitionTo(ne,Ft):(D.runCount=0,this._updateTaskCount(D,-1),Zt&&D._transitionTo(jt,Ft,jt))),Ne=Ne.parent,Me=Nt}}scheduleTask(D){if(D.zone&&D.zone!==this){let kt=this;for(;kt;){if(kt===D.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${D.zone.name}`);kt=kt.parent}}D._transitionTo(me,jt);const k=[];D._zoneDelegates=k,D._zone=this;try{D=this._zoneDelegate.scheduleTask(this,D)}catch(kt){throw D._transitionTo(St,me,jt),this._zoneDelegate.handleError(this,kt),kt}return D._zoneDelegates===k&&this._updateTaskCount(D,1),D.state==me&&D._transitionTo(ne,me),D}scheduleMicroTask(D,k,kt,Zt){return this.scheduleTask(new ft(Wt,D,k,kt,Zt,void 0))}scheduleMacroTask(D,k,kt,Zt,Nt){return this.scheduleTask(new ft(Kt,D,k,kt,Zt,Nt))}scheduleEventTask(D,k,kt,Zt,Nt){return this.scheduleTask(new ft(Xe,D,k,kt,Zt,Nt))}cancelTask(D){if(D.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(D.zone||Re).name+"; Execution: "+this.name+")");if(D.state===ne||D.state===Ft){D._transitionTo(ye,ne,Ft);try{this._zoneDelegate.cancelTask(this,D)}catch(k){throw D._transitionTo(St,ye),this._zoneDelegate.handleError(this,k),k}return this._updateTaskCount(D,-1),D._transitionTo(jt,ye),D.runCount=0,D}}_updateTaskCount(D,k){const kt=D._zoneDelegates;-1==k&&(D._zoneDelegates=null);for(let Zt=0;Ztoe.hasTask(D,k),onScheduleTask:(oe,Lt,D,k)=>oe.scheduleTask(D,k),onInvokeTask:(oe,Lt,D,k,kt,Zt)=>oe.invokeTask(D,k,kt,Zt),onCancelTask:(oe,Lt,D,k)=>oe.cancelTask(D,k)};class dt{constructor(Lt,D,k){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=Lt,this._parentDelegate=D,this._forkZS=k&&(k&&k.onFork?k:D._forkZS),this._forkDlgt=k&&(k.onFork?D:D._forkDlgt),this._forkCurrZone=k&&(k.onFork?this.zone:D._forkCurrZone),this._interceptZS=k&&(k.onIntercept?k:D._interceptZS),this._interceptDlgt=k&&(k.onIntercept?D:D._interceptDlgt),this._interceptCurrZone=k&&(k.onIntercept?this.zone:D._interceptCurrZone),this._invokeZS=k&&(k.onInvoke?k:D._invokeZS),this._invokeDlgt=k&&(k.onInvoke?D:D._invokeDlgt),this._invokeCurrZone=k&&(k.onInvoke?this.zone:D._invokeCurrZone),this._handleErrorZS=k&&(k.onHandleError?k:D._handleErrorZS),this._handleErrorDlgt=k&&(k.onHandleError?D:D._handleErrorDlgt),this._handleErrorCurrZone=k&&(k.onHandleError?this.zone:D._handleErrorCurrZone),this._scheduleTaskZS=k&&(k.onScheduleTask?k:D._scheduleTaskZS),this._scheduleTaskDlgt=k&&(k.onScheduleTask?D:D._scheduleTaskDlgt),this._scheduleTaskCurrZone=k&&(k.onScheduleTask?this.zone:D._scheduleTaskCurrZone),this._invokeTaskZS=k&&(k.onInvokeTask?k:D._invokeTaskZS),this._invokeTaskDlgt=k&&(k.onInvokeTask?D:D._invokeTaskDlgt),this._invokeTaskCurrZone=k&&(k.onInvokeTask?this.zone:D._invokeTaskCurrZone),this._cancelTaskZS=k&&(k.onCancelTask?k:D._cancelTaskZS),this._cancelTaskDlgt=k&&(k.onCancelTask?D:D._cancelTaskDlgt),this._cancelTaskCurrZone=k&&(k.onCancelTask?this.zone:D._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const kt=k&&k.onHasTask;(kt||D&&D._hasTaskZS)&&(this._hasTaskZS=kt?k:pt,this._hasTaskDlgt=D,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=Lt,k.onScheduleTask||(this._scheduleTaskZS=pt,this._scheduleTaskDlgt=D,this._scheduleTaskCurrZone=this.zone),k.onInvokeTask||(this._invokeTaskZS=pt,this._invokeTaskDlgt=D,this._invokeTaskCurrZone=this.zone),k.onCancelTask||(this._cancelTaskZS=pt,this._cancelTaskDlgt=D,this._cancelTaskCurrZone=this.zone))}fork(Lt,D){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,Lt,D):new Rt(Lt,D)}intercept(Lt,D,k){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,Lt,D,k):D}invoke(Lt,D,k,kt,Zt){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,Lt,D,k,kt,Zt):D.apply(k,kt)}handleError(Lt,D){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,Lt,D)}scheduleTask(Lt,D){let k=D;if(this._scheduleTaskZS)this._hasTaskZS&&k._zoneDelegates.push(this._hasTaskDlgtOwner),k=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,Lt,D),k||(k=D);else if(D.scheduleFn)D.scheduleFn(D);else{if(D.type!=Wt)throw new Error("Task is missing scheduleFn.");Jt(D)}return k}invokeTask(Lt,D,k,kt){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,Lt,D,k,kt):D.callback.apply(k,kt)}cancelTask(Lt,D){let k;if(this._cancelTaskZS)k=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,Lt,D);else{if(!D.cancelFn)throw Error("Task is not cancelable");k=D.cancelFn(D)}return k}hasTask(Lt,D){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,Lt,D)}catch(k){this.handleError(Lt,k)}}_updateTaskCount(Lt,D){const k=this._taskCounts,kt=k[Lt],Zt=k[Lt]=kt+D;if(Zt<0)throw new Error("More tasks executed then were scheduled.");0!=kt&&0!=Zt||this.hasTask(this.zone,{microTask:k.microTask>0,macroTask:k.macroTask>0,eventTask:k.eventTask>0,change:Lt})}}class ft{constructor(Lt,D,k,kt,Zt,Nt){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=Lt,this.source=D,this.data=kt,this.scheduleFn=Zt,this.cancelFn=Nt,!k)throw new Error("callback is not defined");this.callback=k;const vt=this;this.invoke=Lt===Xe&&kt&&kt.useG?ft.invokeTask:function(){return ft.invokeTask.call(R,vt,this,arguments)}}static invokeTask(Lt,D,k){Lt||(Lt=this),Te++;try{return Lt.runCount++,Lt.zone.runTask(Lt,D,k)}finally{1==Te&&Ct(),Te--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(jt,me)}_transitionTo(Lt,D,k){if(this._state!==D&&this._state!==k)throw new Error(`${this.type} '${this.source}': can not transition to '${Lt}', expecting state '${D}'${k?" or '"+k+"'":""}, was '${this._state}'.`);this._state=Lt,Lt==jt&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const It=ot("setTimeout"),Pt=ot("Promise"),Gt=ot("then");let He,Ce=[],ge=!1;function be(oe){if(He||R[Pt]&&(He=R[Pt].resolve(0)),He){let Lt=He[Gt];Lt||(Lt=He.then),Lt.call(He,oe)}else R[It](oe,0)}function Jt(oe){0===Te&&0===Ce.length&&be(Ct),oe&&Ce.push(oe)}function Ct(){if(!ge){for(ge=!0;Ce.length;){const oe=Ce;Ce=[];for(let Lt=0;LtNe,onUnhandledError:rt,microtaskDrainDone:rt,scheduleMicroTask:Jt,showUncaughtError:()=>!Rt[ot("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:rt,patchMethod:()=>rt,bindArguments:()=>[],patchThen:()=>rt,patchMacroTask:()=>rt,patchEventPrototype:()=>rt,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>rt,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>rt,wrapWithCurrentZone:()=>rt,filterProperties:()=>[],attachOriginToPatched:()=>rt,_redefineProperty:()=>rt,patchCallbacks:()=>rt,nativeScheduleMicroTask:be};let Ne={parent:null,zone:new Rt(null,null)},Me=null,Te=0;function rt(){}Z("Zone","Zone"),R.Zone=Rt}(typeof window<"u"&&window||typeof self<"u"&&self||global);const h=Object.getOwnPropertyDescriptor,x=Object.defineProperty,r=Object.getPrototypeOf,a=Object.create,l=Array.prototype.slice,c="addEventListener",p="removeEventListener",f=Zone.__symbol__(c),g=Zone.__symbol__(p),v="true",m="false",y=Zone.__symbol__("");function T(R,z){return Zone.current.wrap(R,z)}function I(R,z,nt,Z,_){return Zone.current.scheduleMacroTask(R,z,nt,Z,_)}const C=Zone.__symbol__,P=typeof window<"u",w=P?window:void 0,A=P&&w||"object"==typeof self&&self||global;function V(R,z){for(let nt=R.length-1;nt>=0;nt--)"function"==typeof R[nt]&&(R[nt]=T(R[nt],z+"_"+nt));return R}function O(R){return!R||!1!==R.writable&&!("function"==typeof R.get&&typeof R.set>"u")}const W=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,F=!("nw"in A)&&typeof A.process<"u"&&"[object process]"==={}.toString.call(A.process),$=!F&&!W&&!(!P||!w.HTMLElement),L=typeof A.process<"u"&&"[object process]"==={}.toString.call(A.process)&&!W&&!(!P||!w.HTMLElement),H={},G=function(R){if(!(R=R||A.event))return;let z=H[R.type];z||(z=H[R.type]=C("ON_PROPERTY"+R.type));const nt=this||R.target||A,Z=nt[z];let _;if($&&nt===w&&"error"===R.type){const ot=R;_=Z&&Z.call(this,ot.message,ot.filename,ot.lineno,ot.colno,ot.error),!0===_&&R.preventDefault()}else _=Z&&Z.apply(this,arguments),null!=_&&!_&&R.preventDefault();return _};function X(R,z,nt){let Z=h(R,z);if(!Z&&nt&&h(nt,z)&&(Z={enumerable:!0,configurable:!0}),!Z||!Z.configurable)return;const _=C("on"+z+"patched");if(R.hasOwnProperty(_)&&R[_])return;delete Z.writable,delete Z.value;const ot=Z.get,Ot=Z.set,Rt=z.slice(2);let pt=H[Rt];pt||(pt=H[Rt]=C("ON_PROPERTY"+Rt)),Z.set=function(dt){let ft=this;!ft&&R===A&&(ft=A),ft&&("function"==typeof ft[pt]&&ft.removeEventListener(Rt,G),Ot&&Ot.call(ft,null),ft[pt]=dt,"function"==typeof dt&&ft.addEventListener(Rt,G,!1))},Z.get=function(){let dt=this;if(!dt&&R===A&&(dt=A),!dt)return null;const ft=dt[pt];if(ft)return ft;if(ot){let It=ot.call(this);if(It)return Z.set.call(this,It),"function"==typeof dt.removeAttribute&&dt.removeAttribute(z),It}return null},x(R,z,Z),R[_]=!0}function q(R,z,nt){if(z)for(let Z=0;Zfunction(Ot,Rt){const pt=nt(Ot,Rt);return pt.cbIdx>=0&&"function"==typeof Rt[pt.cbIdx]?I(pt.name,Rt[pt.cbIdx],pt,_):ot.apply(Ot,Rt)})}function J(R,z){R[C("OriginalDelegate")]=z}let ct=!1,at=!1;function ht(){if(ct)return at;ct=!0;try{const R=w.navigator.userAgent;(-1!==R.indexOf("MSIE ")||-1!==R.indexOf("Trident/")||-1!==R.indexOf("Edge/"))&&(at=!0)}catch{}return at}Zone.__load_patch("ZoneAwarePromise",(R,z,nt)=>{const Z=Object.getOwnPropertyDescriptor,_=Object.defineProperty,Ot=nt.symbol,Rt=[],pt=!0===R[Ot("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],dt=Ot("Promise"),ft=Ot("then");nt.onUnhandledError=vt=>{if(nt.showUncaughtError()){const mt=vt&&vt.rejection;mt?console.error("Unhandled Promise rejection:",mt instanceof Error?mt.message:mt,"; Zone:",vt.zone.name,"; Task:",vt.task&&vt.task.source,"; Value:",mt,mt instanceof Error?mt.stack:void 0):console.error(vt)}},nt.microtaskDrainDone=()=>{for(;Rt.length;){const vt=Rt.shift();try{vt.zone.runGuarded(()=>{throw vt.throwOriginal?vt.rejection:vt})}catch(mt){Gt(mt)}}};const Pt=Ot("unhandledPromiseRejectionHandler");function Gt(vt){nt.onUnhandledError(vt);try{const mt=z[Pt];"function"==typeof mt&&mt.call(this,vt)}catch{}}function Ce(vt){return vt&&vt.then}function ge(vt){return vt}function He(vt){return D.reject(vt)}const be=Ot("state"),Jt=Ot("value"),Ct=Ot("finally"),Re=Ot("parentPromiseValue"),jt=Ot("parentPromiseState"),ne=null,ye=!1;function Wt(vt,mt){return et=>{try{Pe(vt,mt,et)}catch(gt){Pe(vt,!1,gt)}}}const Kt=function(){let vt=!1;return function(et){return function(){vt||(vt=!0,et.apply(null,arguments))}}},Ze=Ot("currentTaskTrace");function Pe(vt,mt,et){const gt=Kt();if(vt===et)throw new TypeError("Promise resolved with itself");if(vt[be]===ne){let Bt=null;try{("object"==typeof et||"function"==typeof et)&&(Bt=et&&et.then)}catch(Ut){return gt(()=>{Pe(vt,!1,Ut)})(),vt}if(mt!==ye&&et instanceof D&&et.hasOwnProperty(be)&&et.hasOwnProperty(Jt)&&et[be]!==ne)Me(et),Pe(vt,et[be],et[Jt]);else if(mt!==ye&&"function"==typeof Bt)try{Bt.call(et,gt(Wt(vt,mt)),gt(Wt(vt,!1)))}catch(Ut){gt(()=>{Pe(vt,!1,Ut)})()}else{vt[be]=mt;const Ut=vt[Jt];if(vt[Jt]=et,vt[Ct]===Ct&&!0===mt&&(vt[be]=vt[jt],vt[Jt]=vt[Re]),mt===ye&&et instanceof Error){const Tt=z.currentTask&&z.currentTask.data&&z.currentTask.data.__creationTrace__;Tt&&_(et,Ze,{configurable:!0,enumerable:!1,writable:!0,value:Tt})}for(let Tt=0;Tt{try{const qt=vt[Jt],te=!!et&&Ct===et[Ct];te&&(et[Re]=qt,et[jt]=Ut);const Yt=mt.run(Tt,void 0,te&&Tt!==He&&Tt!==ge?[]:[qt]);Pe(et,!0,Yt)}catch(qt){Pe(et,!1,qt)}},et)}const oe=function(){},Lt=R.AggregateError;class D{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(mt){return Pe(new this(null),!0,mt)}static reject(mt){return Pe(new this(null),ye,mt)}static any(mt){if(!mt||"function"!=typeof mt[Symbol.iterator])return Promise.reject(new Lt([],"All promises were rejected"));const et=[];let gt=0;try{for(let Tt of mt)gt++,et.push(D.resolve(Tt))}catch{return Promise.reject(new Lt([],"All promises were rejected"))}if(0===gt)return Promise.reject(new Lt([],"All promises were rejected"));let Bt=!1;const Ut=[];return new D((Tt,qt)=>{for(let te=0;te{Bt||(Bt=!0,Tt(Yt))},Yt=>{Ut.push(Yt),gt--,0===gt&&(Bt=!0,qt(new Lt(Ut,"All promises were rejected")))})})}static race(mt){let et,gt,Bt=new this((qt,te)=>{et=qt,gt=te});function Ut(qt){et(qt)}function Tt(qt){gt(qt)}for(let qt of mt)Ce(qt)||(qt=this.resolve(qt)),qt.then(Ut,Tt);return Bt}static all(mt){return D.allWithCallback(mt)}static allSettled(mt){return(this&&this.prototype instanceof D?this:D).allWithCallback(mt,{thenCallback:gt=>({status:"fulfilled",value:gt}),errorCallback:gt=>({status:"rejected",reason:gt})})}static allWithCallback(mt,et){let gt,Bt,Ut=new this((Yt,fe)=>{gt=Yt,Bt=fe}),Tt=2,qt=0;const te=[];for(let Yt of mt){Ce(Yt)||(Yt=this.resolve(Yt));const fe=qt;try{Yt.then(xe=>{te[fe]=et?et.thenCallback(xe):xe,Tt--,0===Tt&>(te)},xe=>{et?(te[fe]=et.errorCallback(xe),Tt--,0===Tt&>(te)):Bt(xe)})}catch(xe){Bt(xe)}Tt++,qt++}return Tt-=2,0===Tt&>(te),Ut}constructor(mt){const et=this;if(!(et instanceof D))throw new Error("Must be an instanceof Promise.");et[be]=ne,et[Jt]=[];try{const gt=Kt();mt&&mt(gt(Wt(et,!0)),gt(Wt(et,ye)))}catch(gt){Pe(et,!1,gt)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return D}then(mt,et){var gt;let Bt=null===(gt=this.constructor)||void 0===gt?void 0:gt[Symbol.species];(!Bt||"function"!=typeof Bt)&&(Bt=this.constructor||D);const Ut=new Bt(oe),Tt=z.current;return this[be]==ne?this[Jt].push(Tt,Ut,mt,et):Te(this,Tt,Ut,mt,et),Ut}catch(mt){return this.then(null,mt)}finally(mt){var et;let gt=null===(et=this.constructor)||void 0===et?void 0:et[Symbol.species];(!gt||"function"!=typeof gt)&&(gt=D);const Bt=new gt(oe);Bt[Ct]=Ct;const Ut=z.current;return this[be]==ne?this[Jt].push(Ut,Bt,mt,mt):Te(this,Ut,Bt,mt,mt),Bt}}D.resolve=D.resolve,D.reject=D.reject,D.race=D.race,D.all=D.all;const k=R[dt]=R.Promise;R.Promise=D;const kt=Ot("thenPatched");function Zt(vt){const mt=vt.prototype,et=Z(mt,"then");if(et&&(!1===et.writable||!et.configurable))return;const gt=mt.then;mt[ft]=gt,vt.prototype.then=function(Bt,Ut){return new D((qt,te)=>{gt.call(this,qt,te)}).then(Bt,Ut)},vt[kt]=!0}return nt.patchThen=Zt,k&&(Zt(k),it(R,"fetch",vt=>function Nt(vt){return function(mt,et){let gt=vt.apply(mt,et);if(gt instanceof D)return gt;let Bt=gt.constructor;return Bt[kt]||Zt(Bt),gt}}(vt))),Promise[z.__symbol__("uncaughtPromiseErrors")]=Rt,D}),Zone.__load_patch("toString",R=>{const z=Function.prototype.toString,nt=C("OriginalDelegate"),Z=C("Promise"),_=C("Error"),ot=function(){if("function"==typeof this){const dt=this[nt];if(dt)return"function"==typeof dt?z.call(dt):Object.prototype.toString.call(dt);if(this===Promise){const ft=R[Z];if(ft)return z.call(ft)}if(this===Error){const ft=R[_];if(ft)return z.call(ft)}}return z.call(this)};ot[nt]=z,Function.prototype.toString=ot;const Ot=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":Ot.call(this)}});let wt=!1;if(typeof window<"u")try{const R=Object.defineProperty({},"passive",{get:function(){wt=!0}});window.addEventListener("test",R,R),window.removeEventListener("test",R,R)}catch{wt=!1}const Ht={useG:!0},bt={},zt={},Xt=new RegExp("^"+y+"(\\w+)(true|false)$"),Qt=C("propagationStopped");function de(R,z){const nt=(z?z(R):R)+m,Z=(z?z(R):R)+v,_=y+nt,ot=y+Z;bt[R]={},bt[R][m]=_,bt[R][v]=ot}function ee(R,z,nt,Z){const _=Z&&Z.add||c,ot=Z&&Z.rm||p,Ot=Z&&Z.listeners||"eventListeners",Rt=Z&&Z.rmAll||"removeAllListeners",pt=C(_),dt="."+_+":",Pt=function(Jt,Ct,Re){if(Jt.isRemoved)return;const jt=Jt.callback;let me;"object"==typeof jt&&jt.handleEvent&&(Jt.callback=Ft=>jt.handleEvent(Ft),Jt.originalDelegate=jt);try{Jt.invoke(Jt,Ct,[Re])}catch(Ft){me=Ft}const ne=Jt.options;return ne&&"object"==typeof ne&&ne.once&&Ct[ot].call(Ct,Re.type,Jt.originalDelegate?Jt.originalDelegate:Jt.callback,ne),me};function Gt(Jt,Ct,Re){if(!(Ct=Ct||R.event))return;const jt=Jt||Ct.target||R,me=jt[bt[Ct.type][Re?v:m]];if(me){const ne=[];if(1===me.length){const Ft=Pt(me[0],jt,Ct);Ft&&ne.push(Ft)}else{const Ft=me.slice();for(let ye=0;ye{throw ye})}}}const Ce=function(Jt){return Gt(this,Jt,!1)},ge=function(Jt){return Gt(this,Jt,!0)};function He(Jt,Ct){if(!Jt)return!1;let Re=!0;Ct&&void 0!==Ct.useG&&(Re=Ct.useG);const jt=Ct&&Ct.vh;let me=!0;Ct&&void 0!==Ct.chkDup&&(me=Ct.chkDup);let ne=!1;Ct&&void 0!==Ct.rt&&(ne=Ct.rt);let Ft=Jt;for(;Ft&&!Ft.hasOwnProperty(_);)Ft=r(Ft);if(!Ft&&Jt[_]&&(Ft=Jt),!Ft||Ft[pt])return!1;const ye=Ct&&Ct.eventNameToString,St={},Wt=Ft[pt]=Ft[_],Kt=Ft[C(ot)]=Ft[ot],Xe=Ft[C(Ot)]=Ft[Ot],Ze=Ft[C(Rt)]=Ft[Rt];let Pe;function Ne(et,gt){return!wt&&"object"==typeof et&&et?!!et.capture:wt&>?"boolean"==typeof et?{capture:et,passive:!0}:et?"object"==typeof et&&!1!==et.passive?Object.assign(Object.assign({},et),{passive:!0}):et:{passive:!0}:et}Ct&&Ct.prepend&&(Pe=Ft[C(Ct.prepend)]=Ft[Ct.prepend]);const D=Re?function(et){if(!St.isExisting)return Wt.call(St.target,St.eventName,St.capture?ge:Ce,St.options)}:function(et){return Wt.call(St.target,St.eventName,et.invoke,St.options)},k=Re?function(et){if(!et.isRemoved){const gt=bt[et.eventName];let Bt;gt&&(Bt=gt[et.capture?v:m]);const Ut=Bt&&et.target[Bt];if(Ut)for(let Tt=0;Ttfunction(_,ot){_[Qt]=!0,Z&&Z.apply(_,ot)})}function Fe(R,z,nt,Z,_){const ot=Zone.__symbol__(Z);if(z[ot])return;const Ot=z[ot]=z[Z];z[Z]=function(Rt,pt,dt){return pt&&pt.prototype&&_.forEach(function(ft){const It=`${nt}.${Z}::`+ft,Pt=pt.prototype;try{if(Pt.hasOwnProperty(ft)){const Gt=R.ObjectGetOwnPropertyDescriptor(Pt,ft);Gt&&Gt.value?(Gt.value=R.wrapWithCurrentZone(Gt.value,It),R._redefineProperty(pt.prototype,ft,Gt)):Pt[ft]&&(Pt[ft]=R.wrapWithCurrentZone(Pt[ft],It))}else Pt[ft]&&(Pt[ft]=R.wrapWithCurrentZone(Pt[ft],It))}catch{}}),Ot.call(z,Rt,pt,dt)},R.attachOriginToPatched(z[Z],Ot)}function ce(R,z,nt){if(!nt||0===nt.length)return z;const Z=nt.filter(ot=>ot.target===R);if(!Z||0===Z.length)return z;const _=Z[0].ignoreProperties;return z.filter(ot=>-1===_.indexOf(ot))}function Be(R,z,nt,Z){R&&q(R,ce(R,z,nt),Z)}function Oe(R){return Object.getOwnPropertyNames(R).filter(z=>z.startsWith("on")&&z.length>2).map(z=>z.substring(2))}Zone.__load_patch("util",(R,z,nt)=>{const Z=Oe(R);nt.patchOnProperties=q,nt.patchMethod=it,nt.bindArguments=V,nt.patchMacroTask=st;const _=z.__symbol__("BLACK_LISTED_EVENTS"),ot=z.__symbol__("UNPATCHED_EVENTS");R[ot]&&(R[_]=R[ot]),R[_]&&(z[_]=z[ot]=R[_]),nt.patchEventPrototype=Se,nt.patchEventTarget=ee,nt.isIEOrEdge=ht,nt.ObjectDefineProperty=x,nt.ObjectGetOwnPropertyDescriptor=h,nt.ObjectCreate=a,nt.ArraySlice=l,nt.patchClass=tt,nt.wrapWithCurrentZone=T,nt.filterProperties=ce,nt.attachOriginToPatched=J,nt._redefineProperty=Object.defineProperty,nt.patchCallbacks=Fe,nt.getGlobalObjects=()=>({globalSources:zt,zoneSymbolEventNames:bt,eventNames:Z,isBrowser:$,isMix:L,isNode:F,TRUE_STR:v,FALSE_STR:m,ZONE_SYMBOL_PREFIX:y,ADD_EVENT_LISTENER_STR:c,REMOVE_EVENT_LISTENER_STR:p})});const ve=C("zoneTask");function he(R,z,nt,Z){let _=null,ot=null;nt+=Z;const Ot={};function Rt(dt){const ft=dt.data;return ft.args[0]=function(){return dt.invoke.apply(this,arguments)},ft.handleId=_.apply(R,ft.args),dt}function pt(dt){return ot.call(R,dt.data.handleId)}_=it(R,z+=Z,dt=>function(ft,It){if("function"==typeof It[0]){const Pt={isPeriodic:"Interval"===Z,delay:"Timeout"===Z||"Interval"===Z?It[1]||0:void 0,args:It},Gt=It[0];It[0]=function(){try{return Gt.apply(this,arguments)}finally{Pt.isPeriodic||("number"==typeof Pt.handleId?delete Ot[Pt.handleId]:Pt.handleId&&(Pt.handleId[ve]=null))}};const Ce=I(z,It[0],Pt,Rt,pt);if(!Ce)return Ce;const ge=Ce.data.handleId;return"number"==typeof ge?Ot[ge]=Ce:ge&&(ge[ve]=Ce),ge&&ge.ref&&ge.unref&&"function"==typeof ge.ref&&"function"==typeof ge.unref&&(Ce.ref=ge.ref.bind(ge),Ce.unref=ge.unref.bind(ge)),"number"==typeof ge||ge?ge:Ce}return dt.apply(R,It)}),ot=it(R,nt,dt=>function(ft,It){const Pt=It[0];let Gt;"number"==typeof Pt?Gt=Ot[Pt]:(Gt=Pt&&Pt[ve],Gt||(Gt=Pt)),Gt&&"string"==typeof Gt.type?"notScheduled"!==Gt.state&&(Gt.cancelFn&&Gt.data.isPeriodic||0===Gt.runCount)&&("number"==typeof Pt?delete Ot[Pt]:Pt&&(Pt[ve]=null),Gt.zone.cancelTask(Gt)):dt.apply(R,It)})}Zone.__load_patch("legacy",R=>{const z=R[Zone.__symbol__("legacyPatch")];z&&z()}),Zone.__load_patch("queueMicrotask",(R,z,nt)=>{nt.patchMethod(R,"queueMicrotask",Z=>function(_,ot){z.current.scheduleMicroTask("queueMicrotask",ot[0])})}),Zone.__load_patch("timers",R=>{const z="set",nt="clear";he(R,z,nt,"Timeout"),he(R,z,nt,"Interval"),he(R,z,nt,"Immediate")}),Zone.__load_patch("requestAnimationFrame",R=>{he(R,"request","cancel","AnimationFrame"),he(R,"mozRequest","mozCancel","AnimationFrame"),he(R,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(R,z)=>{const nt=["alert","prompt","confirm"];for(let Z=0;Zfunction(pt,dt){return z.current.run(ot,R,dt,Rt)})}),Zone.__load_patch("EventTarget",(R,z,nt)=>{(function ln(R,z){z.patchEventPrototype(R,z)})(R,nt),function fn(R,z){if(Zone[z.symbol("patchEventTarget")])return;const{eventNames:nt,zoneSymbolEventNames:Z,TRUE_STR:_,FALSE_STR:ot,ZONE_SYMBOL_PREFIX:Ot}=z.getGlobalObjects();for(let pt=0;pt{tt("MutationObserver"),tt("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(R,z,nt)=>{tt("IntersectionObserver")}),Zone.__load_patch("FileReader",(R,z,nt)=>{tt("FileReader")}),Zone.__load_patch("on_property",(R,z,nt)=>{!function Ke(R,z){if(F&&!L||Zone[R.symbol("patchEvents")])return;const nt=z.__Zone_ignore_on_properties;let Z=[];if($){const _=window;Z=Z.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const ot=function xt(){try{const R=w.navigator.userAgent;if(-1!==R.indexOf("MSIE ")||-1!==R.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:_,ignoreProperties:["error"]}]:[];Be(_,Oe(_),nt&&nt.concat(ot),r(_))}Z=Z.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let _=0;_{!function Ln(R,z){const{isBrowser:nt,isMix:Z}=z.getGlobalObjects();(nt||Z)&&R.customElements&&"customElements"in R&&z.patchCallbacks(z,R.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(R,nt)}),Zone.__load_patch("XHR",(R,z)=>{!function pt(dt){const ft=dt.XMLHttpRequest;if(!ft)return;const It=ft.prototype;let Gt=It[f],Ce=It[g];if(!Gt){const St=dt.XMLHttpRequestEventTarget;if(St){const Wt=St.prototype;Gt=Wt[f],Ce=Wt[g]}}const ge="readystatechange",He="scheduled";function be(St){const Wt=St.data,Kt=Wt.target;Kt[ot]=!1,Kt[Rt]=!1;const Xe=Kt[_];Gt||(Gt=Kt[f],Ce=Kt[g]),Xe&&Ce.call(Kt,ge,Xe);const Ze=Kt[_]=()=>{if(Kt.readyState===Kt.DONE)if(!Wt.aborted&&Kt[ot]&&St.state===He){const Ne=Kt[z.__symbol__("loadfalse")];if(0!==Kt.status&&Ne&&Ne.length>0){const Me=St.invoke;St.invoke=function(){const Te=Kt[z.__symbol__("loadfalse")];for(let rt=0;rtfunction(St,Wt){return St[Z]=0==Wt[2],St[Ot]=Wt[1],Re.apply(St,Wt)}),me=C("fetchTaskAborting"),ne=C("fetchTaskScheduling"),Ft=it(It,"send",()=>function(St,Wt){if(!0===z.current[ne]||St[Z])return Ft.apply(St,Wt);{const Kt={target:St,url:St[Ot],isPeriodic:!1,args:Wt,aborted:!1},Xe=I("XMLHttpRequest.send",Jt,Kt,be,Ct);St&&!0===St[Rt]&&!Kt.aborted&&Xe.state===He&&Xe.invoke()}}),ye=it(It,"abort",()=>function(St,Wt){const Kt=function Pt(St){return St[nt]}(St);if(Kt&&"string"==typeof Kt.type){if(null==Kt.cancelFn||Kt.data&&Kt.data.aborted)return;Kt.zone.cancelTask(Kt)}else if(!0===z.current[me])return ye.apply(St,Wt)})}(R);const nt=C("xhrTask"),Z=C("xhrSync"),_=C("xhrListener"),ot=C("xhrScheduled"),Ot=C("xhrURL"),Rt=C("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",R=>{R.navigator&&R.navigator.geolocation&&function B(R,z){const nt=R.constructor.name;for(let Z=0;Z{const pt=function(){return Rt.apply(this,V(arguments,nt+"."+_))};return J(pt,Rt),pt})(ot)}}}(R.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(R,z)=>{function nt(Z){return function(_){_t(R,Z).forEach(Ot=>{const Rt=R.PromiseRejectionEvent;if(Rt){const pt=new Rt(Z,{promise:_.promise,reason:_.rejection});Ot.invoke(pt)}})}}R.PromiseRejectionEvent&&(z[C("unhandledPromiseRejectionHandler")]=nt("unhandledrejection"),z[C("rejectionHandledHandler")]=nt("rejectionhandled"))})},87377:(h,x,r)=>{r(91038),r(79753),r(26572),r(52262),r(92222),r(50545),r(26541),r(43290),r(57327),r(69826),r(34553),r(67635),r(77287),r(84944),r(86535),r(89554),r(26699),r(82772),r(66992),r(69600),r(94986),r(21249),r(57658),r(85827),r(96644),r(65069),r(47042),r(5212),r(2707),r(38706),r(40561),r(33792),r(99244),r(30541),r(41539),r(78783);var a=r(40857);h.exports=a.Array},19863:(h,x,r)=>{r(43016),r(3843),r(81801),r(9550),r(35268),r(5735),r(83710),r(96078);var a=r(40857);h.exports=a.Date},42822:(h,x,r)=>{r(24812),r(68309),r(4855);var a=r(40857);h.exports=a.Function},63662:(h,x,r)=>{r(66992),r(51532),r(41539),r(78783);var a=r(40857);h.exports=a.Map},73268:(h,x,r)=>{r(99752),r(82376),r(73181),r(23484),r(2388),r(88621),r(60403),r(84755),r(25438),r(90332),r(40658),r(40197),r(44914),r(52420),r(60160),r(60970),r(10408),r(73689);var a=r(40857);h.exports=a.Math},69789:(h,x,r)=>{r(9653),r(93299),r(35192),r(33161),r(44048),r(78285),r(44363),r(55994),r(61874),r(9494),r(31354),r(56977),r(55147);var a=r(40857);h.exports=a.Number},4790:(h,x,r)=>{r(82526),r(19601),r(78011),r(69070),r(33321),r(69720),r(43371),r(38559),r(38880),r(49337),r(36210),r(30489),r(46314),r(43304),r(41825),r(98410),r(72200),r(47941),r(57227),r(67987),r(60514),r(68304),r(26833),r(41539),r(59595),r(35500),r(94869),r(33952),r(73706),r(10408),r(81299);var a=r(40857);h.exports=a.Object},3885:(h,x,r)=>{r(54678);var a=r(40857);h.exports=a.parseFloat},94834:(h,x,r)=>{r(91058);var a=r(40857);h.exports=a.parseInt},72254:(h,x,r)=>{r(41539),r(36535),r(12419),r(69596),r(52586),r(74819),r(95683),r(39361),r(51037),r(5898),r(67556),r(14361),r(83593),r(39532),r(81299);var a=r(40857);h.exports=a.Reflect},88460:(h,x,r)=>{r(24603),r(39714),r(28450),r(74916),r(92087),r(88386),r(77601),r(4723),r(15306),r(64765),r(23123)},88188:(h,x,r)=>{r(66992),r(41539),r(70189),r(78783);var a=r(40857);h.exports=a.Set},1111:(h,x,r)=>{r(41539),r(74916),r(94953),r(38992),r(79841),r(24506),r(27852),r(32023),r(4723),r(76373),r(66528),r(83112),r(82481),r(15306),r(68757),r(64765),r(23123),r(23157),r(83650),r(73210),r(55674),r(48702),r(78783),r(15218),r(74475),r(57929),r(50915),r(29253),r(42125),r(78830),r(58734),r(29254),r(37268),r(7397),r(60086),r(80623);var a=r(40857);h.exports=a.String},19266:(h,x,r)=>{r(92222),r(41539),r(82526),r(72443),r(41817),r(92401),r(8722),r(32165),r(69007),r(16066),r(83510),r(41840),r(6982),r(32159),r(96649),r(39341),r(60543),r(73706),r(10408),r(81299);var a=r(40857);h.exports=a.Symbol},39074:(h,x,r)=>{r(66992),r(41539),r(4129);var a=r(40857);h.exports=a.WeakMap},19662:(h,x,r)=>{var a=r(60614),l=r(66330),c=TypeError;h.exports=function(p){if(a(p))return p;throw c(l(p)+" is not a function")}},39483:(h,x,r)=>{var a=r(4411),l=r(66330),c=TypeError;h.exports=function(p){if(a(p))return p;throw c(l(p)+" is not a constructor")}},96077:(h,x,r)=>{var a=r(60614),l=String,c=TypeError;h.exports=function(p){if("object"==typeof p||a(p))return p;throw c("Can't set "+l(p)+" as a prototype")}},51223:(h,x,r)=>{var a=r(5112),l=r(70030),c=r(3070).f,p=a("unscopables"),f=Array.prototype;null==f[p]&&c(f,p,{configurable:!0,value:l(null)}),h.exports=function(g){f[p][g]=!0}},31530:(h,x,r)=>{"use strict";var a=r(28710).charAt;h.exports=function(l,c,p){return c+(p?a(l,c).length:1)}},25787:(h,x,r)=>{var a=r(47976),l=TypeError;h.exports=function(c,p){if(a(p,c))return c;throw l("Incorrect invocation")}},19670:(h,x,r)=>{var a=r(70111),l=String,c=TypeError;h.exports=function(p){if(a(p))return p;throw c(l(p)+" is not an object")}},7556:(h,x,r)=>{var a=r(47293);h.exports=a(function(){if("function"==typeof ArrayBuffer){var l=new ArrayBuffer(8);Object.isExtensible(l)&&Object.defineProperty(l,"a",{value:8})}})},1048:(h,x,r)=>{"use strict";var a=r(47908),l=r(51400),c=r(26244),p=r(85117),f=Math.min;h.exports=[].copyWithin||function(v,m){var y=a(this),T=c(y),I=l(v,T),C=l(m,T),P=arguments.length>2?arguments[2]:void 0,w=f((void 0===P?T:l(P,T))-C,T-I),A=1;for(C0;)C in y?y[I]=y[C]:p(y,I),I+=A,C+=A;return y}},21285:(h,x,r)=>{"use strict";var a=r(47908),l=r(51400),c=r(26244);h.exports=function(f){for(var g=a(this),v=c(g),m=arguments.length,y=l(m>1?arguments[1]:void 0,v),T=m>2?arguments[2]:void 0,I=void 0===T?v:l(T,v);I>y;)g[y++]=f;return g}},18533:(h,x,r)=>{"use strict";var a=r(42092).forEach,c=r(9341)("forEach");h.exports=c?[].forEach:function(f){return a(this,f,arguments.length>1?arguments[1]:void 0)}},48457:(h,x,r)=>{"use strict";var a=r(49974),l=r(46916),c=r(47908),p=r(53411),f=r(97659),g=r(4411),v=r(26244),m=r(86135),y=r(18554),T=r(71246),I=Array;h.exports=function(P){var w=c(P),A=g(this),M=arguments.length,V=M>1?arguments[1]:void 0,B=void 0!==V;B&&(V=a(V,M>2?arguments[2]:void 0));var F,$,L,H,G,X,O=T(w),W=0;if(!O||this===I&&f(O))for(F=v(w),$=A?new this(F):I(F);F>W;W++)X=B?V(w[W],W):w[W],m($,W,X);else for(G=(H=y(w,O)).next,$=A?new this:[];!(L=l(G,H)).done;W++)X=B?p(H,V,[L.value,W],!0):L.value,m($,W,X);return $.length=W,$}},41318:(h,x,r)=>{var a=r(45656),l=r(51400),c=r(26244),p=function(f){return function(g,v,m){var C,y=a(g),T=c(y),I=l(m,T);if(f&&v!=v){for(;T>I;)if((C=y[I++])!=C)return!0}else for(;T>I;I++)if((f||I in y)&&y[I]===v)return f||I||0;return!f&&-1}};h.exports={includes:p(!0),indexOf:p(!1)}},9671:(h,x,r)=>{var a=r(49974),l=r(68361),c=r(47908),p=r(26244),f=function(g){var v=1==g;return function(m,y,T){for(var A,I=c(m),C=l(I),P=a(y,T),w=p(C);w-- >0;)if(P(A=C[w],w,I))switch(g){case 0:return A;case 1:return w}return v?-1:void 0}};h.exports={findLast:f(0),findLastIndex:f(1)}},42092:(h,x,r)=>{var a=r(49974),l=r(1702),c=r(68361),p=r(47908),f=r(26244),g=r(65417),v=l([].push),m=function(y){var T=1==y,I=2==y,C=3==y,P=4==y,w=6==y,A=7==y,M=5==y||w;return function(V,B,O,W){for(var Q,tt,F=p(V),$=c(F),L=a(B,O),H=f($),G=0,X=W||g,q=T?X(V,H):I||A?X(V,0):void 0;H>G;G++)if((M||G in $)&&(tt=L(Q=$[G],G,F),y))if(T)q[G]=tt;else if(tt)switch(y){case 3:return!0;case 5:return Q;case 6:return G;case 2:v(q,Q)}else switch(y){case 4:return!1;case 7:v(q,Q)}return w?-1:C||P?P:q}};h.exports={forEach:m(0),map:m(1),filter:m(2),some:m(3),every:m(4),find:m(5),findIndex:m(6),filterReject:m(7)}},86583:(h,x,r)=>{"use strict";var a=r(22104),l=r(45656),c=r(19303),p=r(26244),f=r(9341),g=Math.min,v=[].lastIndexOf,m=!!v&&1/[1].lastIndexOf(1,-0)<0,y=f("lastIndexOf");h.exports=m||!y?function(C){if(m)return a(v,this,arguments)||0;var P=l(this),w=p(P),A=w-1;for(arguments.length>1&&(A=g(A,c(arguments[1]))),A<0&&(A=w+A);A>=0;A--)if(A in P&&P[A]===C)return A||0;return-1}:v},81194:(h,x,r)=>{var a=r(47293),l=r(5112),c=r(7392),p=l("species");h.exports=function(f){return c>=51||!a(function(){var g=[];return(g.constructor={})[p]=function(){return{foo:1}},1!==g[f](Boolean).foo})}},9341:(h,x,r)=>{"use strict";var a=r(47293);h.exports=function(l,c){var p=[][l];return!!p&&a(function(){p.call(null,c||function(){return 1},1)})}},53671:(h,x,r)=>{var a=r(19662),l=r(47908),c=r(68361),p=r(26244),f=TypeError,g=function(v){return function(m,y,T,I){a(y);var C=l(m),P=c(C),w=p(C),A=v?w-1:0,M=v?-1:1;if(T<2)for(;;){if(A in P){I=P[A],A+=M;break}if(A+=M,v?A<0:w<=A)throw f("Reduce of empty array with no initial value")}for(;v?A>=0:w>A;A+=M)A in P&&(I=y(I,P[A],A,C));return I}};h.exports={left:g(!1),right:g(!0)}},83658:(h,x,r)=>{"use strict";var a=r(19781),l=r(43157),c=TypeError,p=Object.getOwnPropertyDescriptor,f=a&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(g){return g instanceof TypeError}}();h.exports=f?function(g,v){if(l(g)&&!p(g,"length").writable)throw c("Cannot set read only .length");return g.length=v}:function(g,v){return g.length=v}},41589:(h,x,r)=>{var a=r(51400),l=r(26244),c=r(86135),p=Array,f=Math.max;h.exports=function(g,v,m){for(var y=l(g),T=a(v,y),I=a(void 0===m?y:m,y),C=p(f(I-T,0)),P=0;T{var a=r(1702);h.exports=a([].slice)},94362:(h,x,r)=>{var a=r(41589),l=Math.floor,c=function(g,v){var m=g.length,y=l(m/2);return m<8?p(g,v):f(g,c(a(g,0,y),v),c(a(g,y),v),v)},p=function(g,v){for(var T,I,m=g.length,y=1;y0;)g[I]=g[--I];I!==y++&&(g[I]=T)}return g},f=function(g,v,m,y){for(var T=v.length,I=m.length,C=0,P=0;C{var a=r(43157),l=r(4411),c=r(70111),f=r(5112)("species"),g=Array;h.exports=function(v){var m;return a(v)&&(l(m=v.constructor)&&(m===g||a(m.prototype))||c(m)&&null===(m=m[f]))&&(m=void 0),void 0===m?g:m}},65417:(h,x,r)=>{var a=r(77475);h.exports=function(l,c){return new(a(l))(0===c?0:c)}},53411:(h,x,r)=>{var a=r(19670),l=r(99212);h.exports=function(c,p,f,g){try{return g?p(a(f)[0],f[1]):p(f)}catch(v){l(c,"throw",v)}}},17072:(h,x,r)=>{var l=r(5112)("iterator"),c=!1;try{var p=0,f={next:function(){return{done:!!p++}},return:function(){c=!0}};f[l]=function(){return this},Array.from(f,function(){throw 2})}catch{}h.exports=function(g,v){if(!v&&!c)return!1;var m=!1;try{var y={};y[l]=function(){return{next:function(){return{done:m=!0}}}},g(y)}catch{}return m}},84326:(h,x,r)=>{var a=r(1702),l=a({}.toString),c=a("".slice);h.exports=function(p){return c(l(p),8,-1)}},70648:(h,x,r)=>{var a=r(51694),l=r(60614),c=r(84326),f=r(5112)("toStringTag"),g=Object,v="Arguments"==c(function(){return arguments}());h.exports=a?c:function(y){var T,I,C;return void 0===y?"Undefined":null===y?"Null":"string"==typeof(I=function(y,T){try{return y[T]}catch{}}(T=g(y),f))?I:v?c(T):"Object"==(C=c(T))&&l(T.callee)?"Arguments":C}},95631:(h,x,r)=>{"use strict";var a=r(3070).f,l=r(70030),c=r(89190),p=r(49974),f=r(25787),g=r(68554),v=r(20408),m=r(51656),y=r(76178),T=r(96340),I=r(19781),C=r(62423).fastKey,P=r(29909),w=P.set,A=P.getterFor;h.exports={getConstructor:function(M,V,B,O){var W=M(function(G,X){f(G,F),w(G,{type:V,index:l(null),first:void 0,last:void 0,size:0}),I||(G.size=0),g(X)||v(X,G[O],{that:G,AS_ENTRIES:B})}),F=W.prototype,$=A(V),L=function(G,X,q){var it,st,Q=$(G),tt=H(G,X);return tt?tt.value=q:(Q.last=tt={index:st=C(X,!0),key:X,value:q,previous:it=Q.last,next:void 0,removed:!1},Q.first||(Q.first=tt),it&&(it.next=tt),I?Q.size++:G.size++,"F"!==st&&(Q.index[st]=tt)),G},H=function(G,X){var tt,q=$(G),Q=C(X);if("F"!==Q)return q.index[Q];for(tt=q.first;tt;tt=tt.next)if(tt.key==X)return tt};return c(F,{clear:function(){for(var q=$(this),Q=q.index,tt=q.first;tt;)tt.removed=!0,tt.previous&&(tt.previous=tt.previous.next=void 0),delete Q[tt.index],tt=tt.next;q.first=q.last=void 0,I?q.size=0:this.size=0},delete:function(G){var X=this,q=$(X),Q=H(X,G);if(Q){var tt=Q.next,it=Q.previous;delete q.index[Q.index],Q.removed=!0,it&&(it.next=tt),tt&&(tt.previous=it),q.first==Q&&(q.first=tt),q.last==Q&&(q.last=it),I?q.size--:X.size--}return!!Q},forEach:function(X){for(var tt,q=$(this),Q=p(X,arguments.length>1?arguments[1]:void 0);tt=tt?tt.next:q.first;)for(Q(tt.value,tt.key,this);tt&&tt.removed;)tt=tt.previous},has:function(X){return!!H(this,X)}}),c(F,B?{get:function(X){var q=H(this,X);return q&&q.value},set:function(X,q){return L(this,0===X?0:X,q)}}:{add:function(X){return L(this,X=0===X?0:X,X)}}),I&&a(F,"size",{get:function(){return $(this).size}}),W},setStrong:function(M,V,B){var O=V+" Iterator",W=A(V),F=A(O);m(M,V,function($,L){w(this,{type:O,target:$,state:W($),kind:L,last:void 0})},function(){for(var $=F(this),L=$.kind,H=$.last;H&&H.removed;)H=H.previous;return $.target&&($.last=H=H?H.next:$.state.first)?y("keys"==L?H.key:"values"==L?H.value:[H.key,H.value],!1):($.target=void 0,y(void 0,!0))},B?"entries":"values",!B,!0),T(V)}}},29320:(h,x,r)=>{"use strict";var a=r(1702),l=r(89190),c=r(62423).getWeakData,p=r(25787),f=r(19670),g=r(68554),v=r(70111),m=r(20408),y=r(42092),T=r(92597),I=r(29909),C=I.set,P=I.getterFor,w=y.find,A=y.findIndex,M=a([].splice),V=0,B=function(F){return F.frozen||(F.frozen=new O)},O=function(){this.entries=[]},W=function(F,$){return w(F.entries,function(L){return L[0]===$})};O.prototype={get:function(F){var $=W(this,F);if($)return $[1]},has:function(F){return!!W(this,F)},set:function(F,$){var L=W(this,F);L?L[1]=$:this.entries.push([F,$])},delete:function(F){var $=A(this.entries,function(L){return L[0]===F});return~$&&M(this.entries,$,1),!!~$}},h.exports={getConstructor:function(F,$,L,H){var G=F(function(tt,it){p(tt,X),C(tt,{type:$,id:V++,frozen:void 0}),g(it)||m(it,tt[H],{that:tt,AS_ENTRIES:L})}),X=G.prototype,q=P($),Q=function(tt,it,st){var J=q(tt),ct=c(f(it),!0);return!0===ct?B(J).set(it,st):ct[J.id]=st,tt};return l(X,{delete:function(tt){var it=q(this);if(!v(tt))return!1;var st=c(tt);return!0===st?B(it).delete(tt):st&&T(st,it.id)&&delete st[it.id]},has:function(it){var st=q(this);if(!v(it))return!1;var J=c(it);return!0===J?B(st).has(it):J&&T(J,st.id)}}),l(X,L?{get:function(it){var st=q(this);if(v(it)){var J=c(it);return!0===J?B(st).get(it):J?J[st.id]:void 0}},set:function(it,st){return Q(this,it,st)}}:{add:function(it){return Q(this,it,!0)}}),G}}},77710:(h,x,r)=>{"use strict";var a=r(82109),l=r(17854),c=r(1702),p=r(54705),f=r(98052),g=r(62423),v=r(20408),m=r(25787),y=r(60614),T=r(68554),I=r(70111),C=r(47293),P=r(17072),w=r(58003),A=r(79587);h.exports=function(M,V,B){var O=-1!==M.indexOf("Map"),W=-1!==M.indexOf("Weak"),F=O?"set":"add",$=l[M],L=$&&$.prototype,H=$,G={},X=function(ct){var at=c(L[ct]);f(L,ct,"add"==ct?function(ht){return at(this,0===ht?0:ht),this}:"delete"==ct?function(xt){return!(W&&!I(xt))&&at(this,0===xt?0:xt)}:"get"==ct?function(ht){return W&&!I(ht)?void 0:at(this,0===ht?0:ht)}:"has"==ct?function(ht){return!(W&&!I(ht))&&at(this,0===ht?0:ht)}:function(ht,wt){return at(this,0===ht?0:ht,wt),this})};if(p(M,!y($)||!(W||L.forEach&&!C(function(){(new $).entries().next()}))))H=B.getConstructor(V,M,O,F),g.enable();else if(p(M,!0)){var Q=new H,tt=Q[F](W?{}:-0,1)!=Q,it=C(function(){Q.has(1)}),st=P(function(ct){new $(ct)}),J=!W&&C(function(){for(var ct=new $,at=5;at--;)ct[F](at,at);return!ct.has(-0)});st||((H=V(function(ct,at){m(ct,L);var xt=A(new $,ct,H);return T(at)||v(at,xt[F],{that:xt,AS_ENTRIES:O}),xt})).prototype=L,L.constructor=H),(it||J)&&(X("delete"),X("has"),O&&X("get")),(J||tt)&&X(F),W&&L.clear&&delete L.clear}return G[M]=H,a({global:!0,constructor:!0,forced:H!=$},G),w(H,M),W||B.setStrong(H,M,O),H}},99920:(h,x,r)=>{var a=r(92597),l=r(53887),c=r(31236),p=r(3070);h.exports=function(f,g,v){for(var m=l(g),y=p.f,T=c.f,I=0;I{var l=r(5112)("match");h.exports=function(c){var p=/./;try{"/./"[c](p)}catch{try{return p[l]=!1,"/./"[c](p)}catch{}}return!1}},49920:(h,x,r)=>{var a=r(47293);h.exports=!a(function(){function l(){}return l.prototype.constructor=null,Object.getPrototypeOf(new l)!==l.prototype})},14230:(h,x,r)=>{var a=r(1702),l=r(84488),c=r(41340),p=/"/g,f=a("".replace);h.exports=function(g,v,m,y){var T=c(l(g)),I="<"+v;return""!==m&&(I+=" "+m+'="'+f(c(y),p,""")+'"'),I+">"+T+""}},76178:h=>{h.exports=function(x,r){return{value:x,done:r}}},68880:(h,x,r)=>{var a=r(19781),l=r(3070),c=r(79114);h.exports=a?function(p,f,g){return l.f(p,f,c(1,g))}:function(p,f,g){return p[f]=g,p}},79114:h=>{h.exports=function(x,r){return{enumerable:!(1&x),configurable:!(2&x),writable:!(4&x),value:r}}},86135:(h,x,r)=>{"use strict";var a=r(34948),l=r(3070),c=r(79114);h.exports=function(p,f,g){var v=a(f);v in p?l.f(p,v,c(0,g)):p[v]=g}},85573:(h,x,r)=>{"use strict";var a=r(1702),l=r(47293),c=r(76650).start,p=RangeError,f=isFinite,g=Math.abs,v=Date.prototype,m=v.toISOString,y=a(v.getTime),T=a(v.getUTCDate),I=a(v.getUTCFullYear),C=a(v.getUTCHours),P=a(v.getUTCMilliseconds),w=a(v.getUTCMinutes),A=a(v.getUTCMonth),M=a(v.getUTCSeconds);h.exports=l(function(){return"0385-07-25T07:06:39.999Z"!=m.call(new Date(-50000000000001))})||!l(function(){m.call(new Date(NaN))})?function(){if(!f(y(this)))throw p("Invalid time value");var B=this,O=I(B),W=P(B),F=O<0?"-":O>9999?"+":"";return F+c(g(O),F?6:4,0)+"-"+c(A(B)+1,2,0)+"-"+c(T(B),2,0)+"T"+c(C(B),2,0)+":"+c(w(B),2,0)+":"+c(M(B),2,0)+"."+c(W,3,0)+"Z"}:m},38709:(h,x,r)=>{"use strict";var a=r(19670),l=r(92140),c=TypeError;h.exports=function(p){if(a(this),"string"===p||"default"===p)p="string";else if("number"!==p)throw c("Incorrect hint");return l(this,p)}},47045:(h,x,r)=>{var a=r(56339),l=r(3070);h.exports=function(c,p,f){return f.get&&a(f.get,p,{getter:!0}),f.set&&a(f.set,p,{setter:!0}),l.f(c,p,f)}},98052:(h,x,r)=>{var a=r(60614),l=r(3070),c=r(56339),p=r(13072);h.exports=function(f,g,v,m){m||(m={});var y=m.enumerable,T=void 0!==m.name?m.name:g;if(a(v)&&c(v,T,m),m.global)y?f[g]=v:p(g,v);else{try{m.unsafe?f[g]&&(y=!0):delete f[g]}catch{}y?f[g]=v:l.f(f,g,{value:v,enumerable:!1,configurable:!m.nonConfigurable,writable:!m.nonWritable})}return f}},89190:(h,x,r)=>{var a=r(98052);h.exports=function(l,c,p){for(var f in c)a(l,f,c[f],p);return l}},13072:(h,x,r)=>{var a=r(17854),l=Object.defineProperty;h.exports=function(c,p){try{l(a,c,{value:p,configurable:!0,writable:!0})}catch{a[c]=p}return p}},85117:(h,x,r)=>{"use strict";var a=r(66330),l=TypeError;h.exports=function(c,p){if(!delete c[p])throw l("Cannot delete property "+a(p)+" of "+a(c))}},19781:(h,x,r)=>{var a=r(47293);h.exports=!a(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},4154:h=>{var x="object"==typeof document&&document.all;h.exports={all:x,IS_HTMLDDA:typeof x>"u"&&void 0!==x}},80317:(h,x,r)=>{var a=r(17854),l=r(70111),c=a.document,p=l(c)&&l(c.createElement);h.exports=function(f){return p?c.createElement(f):{}}},7207:h=>{var x=TypeError;h.exports=function(a){if(a>9007199254740991)throw x("Maximum allowed index exceeded");return a}},68886:(h,x,r)=>{var l=r(88113).match(/firefox\/(\d+)/i);h.exports=!!l&&+l[1]},30256:(h,x,r)=>{var a=r(88113);h.exports=/MSIE|Trident/.test(a)},92805:(h,x,r)=>{var a=r(84326),l=r(17854);h.exports="process"==a(l.process)},88113:(h,x,r)=>{var a=r(35005);h.exports=a("navigator","userAgent")||""},7392:(h,x,r)=>{var v,m,a=r(17854),l=r(88113),c=a.process,p=a.Deno,f=c&&c.versions||p&&p.version,g=f&&f.v8;g&&(m=(v=g.split("."))[0]>0&&v[0]<4?1:+(v[0]+v[1])),!m&&l&&(!(v=l.match(/Edge\/(\d+)/))||v[1]>=74)&&(v=l.match(/Chrome\/(\d+)/))&&(m=+v[1]),h.exports=m},98008:(h,x,r)=>{var l=r(88113).match(/AppleWebKit\/(\d+)\./);h.exports=!!l&&+l[1]},80748:h=>{h.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},82109:(h,x,r)=>{var a=r(17854),l=r(31236).f,c=r(68880),p=r(98052),f=r(13072),g=r(99920),v=r(54705);h.exports=function(m,y){var w,A,M,V,B,T=m.target,I=m.global,C=m.stat;if(w=I?a:C?a[T]||f(T,{}):(a[T]||{}).prototype)for(A in y){if(V=y[A],M=m.dontCallGetSet?(B=l(w,A))&&B.value:w[A],!v(I?A:T+(C?".":"#")+A,m.forced)&&void 0!==M){if(typeof V==typeof M)continue;g(V,M)}(m.sham||M&&M.sham)&&c(V,"sham",!0),p(w,A,V,m)}}},47293:h=>{h.exports=function(x){try{return!!x()}catch{return!0}}},27007:(h,x,r)=>{"use strict";r(74916);var a=r(21470),l=r(98052),c=r(22261),p=r(47293),f=r(5112),g=r(68880),v=f("species"),m=RegExp.prototype;h.exports=function(y,T,I,C){var P=f(y),w=!p(function(){var B={};return B[P]=function(){return 7},7!=""[y](B)}),A=w&&!p(function(){var B=!1,O=/a/;return"split"===y&&((O={}).constructor={},O.constructor[v]=function(){return O},O.flags="",O[P]=/./[P]),O.exec=function(){return B=!0,null},O[P](""),!B});if(!w||!A||I){var M=a(/./[P]),V=T(P,""[y],function(B,O,W,F,$){var L=a(B),H=O.exec;return H===c||H===m.exec?w&&!$?{done:!0,value:M(O,W,F)}:{done:!0,value:L(W,O,F)}:{done:!1}});l(String.prototype,y,V[0]),l(m,P,V[1])}C&&g(m[P],"sham",!0)}},6790:(h,x,r)=>{"use strict";var a=r(43157),l=r(26244),c=r(7207),p=r(49974),f=function(g,v,m,y,T,I,C,P){for(var V,B,w=T,A=0,M=!!C&&p(C,P);A0&&a(V)?(B=l(V),w=f(g,v,V,B,w,I-1)-1):(c(w+1),g[w]=V),w++),A++;return w};h.exports=f},76677:(h,x,r)=>{var a=r(47293);h.exports=!a(function(){return Object.isExtensible(Object.preventExtensions({}))})},22104:(h,x,r)=>{var a=r(34374),l=Function.prototype,c=l.apply,p=l.call;h.exports="object"==typeof Reflect&&Reflect.apply||(a?p.bind(c):function(){return p.apply(c,arguments)})},49974:(h,x,r)=>{var a=r(21470),l=r(19662),c=r(34374),p=a(a.bind);h.exports=function(f,g){return l(f),void 0===g?f:c?p(f,g):function(){return f.apply(g,arguments)}}},34374:(h,x,r)=>{var a=r(47293);h.exports=!a(function(){var l=function(){}.bind();return"function"!=typeof l||l.hasOwnProperty("prototype")})},27065:(h,x,r)=>{"use strict";var a=r(1702),l=r(19662),c=r(70111),p=r(92597),f=r(50206),g=r(34374),v=Function,m=a([].concat),y=a([].join),T={},I=function(C,P,w){if(!p(T,P)){for(var A=[],M=0;M{var a=r(34374),l=Function.prototype.call;h.exports=a?l.bind(l):function(){return l.apply(l,arguments)}},76530:(h,x,r)=>{var a=r(19781),l=r(92597),c=Function.prototype,p=a&&Object.getOwnPropertyDescriptor,f=l(c,"name"),g=f&&"something"===function(){}.name,v=f&&(!a||a&&p(c,"name").configurable);h.exports={EXISTS:f,PROPER:g,CONFIGURABLE:v}},21470:(h,x,r)=>{var a=r(84326),l=r(1702);h.exports=function(c){if("Function"===a(c))return l(c)}},1702:(h,x,r)=>{var a=r(34374),l=Function.prototype,c=l.call,p=a&&l.bind.bind(c,c);h.exports=a?p:function(f){return function(){return c.apply(f,arguments)}}},35005:(h,x,r)=>{var a=r(17854),l=r(60614),c=function(p){return l(p)?p:void 0};h.exports=function(p,f){return arguments.length<2?c(a[p]):a[p]&&a[p][f]}},71246:(h,x,r)=>{var a=r(70648),l=r(58173),c=r(68554),p=r(97497),g=r(5112)("iterator");h.exports=function(v){if(!c(v))return l(v,g)||l(v,"@@iterator")||p[a(v)]}},18554:(h,x,r)=>{var a=r(46916),l=r(19662),c=r(19670),p=r(66330),f=r(71246),g=TypeError;h.exports=function(v,m){var y=arguments.length<2?f(v):m;if(l(y))return c(a(y,v));throw g(p(v)+" is not iterable")}},58173:(h,x,r)=>{var a=r(19662),l=r(68554);h.exports=function(c,p){var f=c[p];return l(f)?void 0:a(f)}},10647:(h,x,r)=>{var a=r(1702),l=r(47908),c=Math.floor,p=a("".charAt),f=a("".replace),g=a("".slice),v=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,m=/\$([$&'`]|\d{1,2})/g;h.exports=function(y,T,I,C,P,w){var A=I+y.length,M=C.length,V=m;return void 0!==P&&(P=l(P),V=v),f(w,V,function(B,O){var W;switch(p(O,0)){case"$":return"$";case"&":return y;case"`":return g(T,0,I);case"'":return g(T,A);case"<":W=P[g(O,1,-1)];break;default:var F=+O;if(0===F)return B;if(F>M){var $=c(F/10);return 0===$?B:$<=M?void 0===C[$-1]?p(O,1):C[$-1]+p(O,1):B}W=C[F-1]}return void 0===W?"":W})}},17854:h=>{var x=function(r){return r&&r.Math==Math&&r};h.exports=x("object"==typeof globalThis&&globalThis)||x("object"==typeof window&&window)||x("object"==typeof self&&self)||x("object"==typeof global&&global)||function(){return this}()||Function("return this")()},92597:(h,x,r)=>{var a=r(1702),l=r(47908),c=a({}.hasOwnProperty);h.exports=Object.hasOwn||function(f,g){return c(l(f),g)}},3501:h=>{h.exports={}},60490:(h,x,r)=>{var a=r(35005);h.exports=a("document","documentElement")},64664:(h,x,r)=>{var a=r(19781),l=r(47293),c=r(80317);h.exports=!a&&!l(function(){return 7!=Object.defineProperty(c("div"),"a",{get:function(){return 7}}).a})},68361:(h,x,r)=>{var a=r(1702),l=r(47293),c=r(84326),p=Object,f=a("".split);h.exports=l(function(){return!p("z").propertyIsEnumerable(0)})?function(g){return"String"==c(g)?f(g,""):p(g)}:p},79587:(h,x,r)=>{var a=r(60614),l=r(70111),c=r(27674);h.exports=function(p,f,g){var v,m;return c&&a(v=f.constructor)&&v!==g&&l(m=v.prototype)&&m!==g.prototype&&c(p,m),p}},42788:(h,x,r)=>{var a=r(1702),l=r(60614),c=r(5465),p=a(Function.toString);l(c.inspectSource)||(c.inspectSource=function(f){return p(f)}),h.exports=c.inspectSource},62423:(h,x,r)=>{var a=r(82109),l=r(1702),c=r(3501),p=r(70111),f=r(92597),g=r(3070).f,v=r(8006),m=r(1156),y=r(52050),T=r(69711),I=r(76677),C=!1,P=T("meta"),w=0,A=function(F){g(F,P,{value:{objectID:"O"+w++,weakData:{}}})},W=h.exports={enable:function(){W.enable=function(){},C=!0;var F=v.f,$=l([].splice),L={};L[P]=1,F(L).length&&(v.f=function(H){for(var G=F(H),X=0,q=G.length;X{var C,P,w,a=r(94811),l=r(17854),c=r(70111),p=r(68880),f=r(92597),g=r(5465),v=r(6200),m=r(3501),y="Object already initialized",T=l.TypeError;if(a||g.state){var V=g.state||(g.state=new(0,l.WeakMap));V.get=V.get,V.has=V.has,V.set=V.set,C=function(O,W){if(V.has(O))throw T(y);return W.facade=O,V.set(O,W),W},P=function(O){return V.get(O)||{}},w=function(O){return V.has(O)}}else{var B=v("state");m[B]=!0,C=function(O,W){if(f(O,B))throw T(y);return W.facade=O,p(O,B,W),W},P=function(O){return f(O,B)?O[B]:{}},w=function(O){return f(O,B)}}h.exports={set:C,get:P,has:w,enforce:function(O){return w(O)?P(O):C(O,{})},getterFor:function(O){return function(W){var F;if(!c(W)||(F=P(W)).type!==O)throw T("Incompatible receiver, "+O+" required");return F}}}},97659:(h,x,r)=>{var a=r(5112),l=r(97497),c=a("iterator"),p=Array.prototype;h.exports=function(f){return void 0!==f&&(l.Array===f||p[c]===f)}},43157:(h,x,r)=>{var a=r(84326);h.exports=Array.isArray||function(c){return"Array"==a(c)}},60614:(h,x,r)=>{var a=r(4154),l=a.all;h.exports=a.IS_HTMLDDA?function(c){return"function"==typeof c||c===l}:function(c){return"function"==typeof c}},4411:(h,x,r)=>{var a=r(1702),l=r(47293),c=r(60614),p=r(70648),f=r(35005),g=r(42788),v=function(){},m=[],y=f("Reflect","construct"),T=/^\s*(?:class|function)\b/,I=a(T.exec),C=!T.exec(v),P=function(M){if(!c(M))return!1;try{return y(v,m,M),!0}catch{return!1}},w=function(M){if(!c(M))return!1;switch(p(M)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return C||!!I(T,g(M))}catch{return!0}};w.sham=!0,h.exports=!y||l(function(){var A;return P(P.call)||!P(Object)||!P(function(){A=!0})||A})?w:P},45032:(h,x,r)=>{var a=r(92597);h.exports=function(l){return void 0!==l&&(a(l,"value")||a(l,"writable"))}},54705:(h,x,r)=>{var a=r(47293),l=r(60614),c=/#|\.prototype\./,p=function(y,T){var I=g[f(y)];return I==m||I!=v&&(l(T)?a(T):!!T)},f=p.normalize=function(y){return String(y).replace(c,".").toLowerCase()},g=p.data={},v=p.NATIVE="N",m=p.POLYFILL="P";h.exports=p},55988:(h,x,r)=>{var a=r(70111),l=Math.floor;h.exports=Number.isInteger||function(p){return!a(p)&&isFinite(p)&&l(p)===p}},68554:h=>{h.exports=function(x){return null==x}},70111:(h,x,r)=>{var a=r(60614),l=r(4154),c=l.all;h.exports=l.IS_HTMLDDA?function(p){return"object"==typeof p?null!==p:a(p)||p===c}:function(p){return"object"==typeof p?null!==p:a(p)}},31913:h=>{h.exports=!1},47850:(h,x,r)=>{var a=r(70111),l=r(84326),p=r(5112)("match");h.exports=function(f){var g;return a(f)&&(void 0!==(g=f[p])?!!g:"RegExp"==l(f))}},52190:(h,x,r)=>{var a=r(35005),l=r(60614),c=r(47976),p=r(43307),f=Object;h.exports=p?function(g){return"symbol"==typeof g}:function(g){var v=a("Symbol");return l(v)&&c(v.prototype,f(g))}},20408:(h,x,r)=>{var a=r(49974),l=r(46916),c=r(19670),p=r(66330),f=r(97659),g=r(26244),v=r(47976),m=r(18554),y=r(71246),T=r(99212),I=TypeError,C=function(w,A){this.stopped=w,this.result=A},P=C.prototype;h.exports=function(w,A,M){var L,H,G,X,q,Q,tt,B=!(!M||!M.AS_ENTRIES),O=!(!M||!M.IS_RECORD),W=!(!M||!M.IS_ITERATOR),F=!(!M||!M.INTERRUPTED),$=a(A,M&&M.that),it=function(J){return L&&T(L,"normal",J),new C(!0,J)},st=function(J){return B?(c(J),F?$(J[0],J[1],it):$(J[0],J[1])):F?$(J,it):$(J)};if(O)L=w.iterator;else if(W)L=w;else{if(!(H=y(w)))throw I(p(w)+" is not iterable");if(f(H)){for(G=0,X=g(w);X>G;G++)if((q=st(w[G]))&&v(P,q))return q;return new C(!1)}L=m(w,H)}for(Q=O?w.next:L.next;!(tt=l(Q,L)).done;){try{q=st(tt.value)}catch(J){T(L,"throw",J)}if("object"==typeof q&&q&&v(P,q))return q}return new C(!1)}},99212:(h,x,r)=>{var a=r(46916),l=r(19670),c=r(58173);h.exports=function(p,f,g){var v,m;l(p);try{if(!(v=c(p,"return"))){if("throw"===f)throw g;return g}v=a(v,p)}catch(y){m=!0,v=y}if("throw"===f)throw g;if(m)throw v;return l(v),g}},63061:(h,x,r)=>{"use strict";var a=r(13383).IteratorPrototype,l=r(70030),c=r(79114),p=r(58003),f=r(97497),g=function(){return this};h.exports=function(v,m,y,T){var I=m+" Iterator";return v.prototype=l(a,{next:c(+!T,y)}),p(v,I,!1,!0),f[I]=g,v}},51656:(h,x,r)=>{"use strict";var a=r(82109),l=r(46916),c=r(31913),p=r(76530),f=r(60614),g=r(63061),v=r(79518),m=r(27674),y=r(58003),T=r(68880),I=r(98052),C=r(5112),P=r(97497),w=r(13383),A=p.PROPER,M=p.CONFIGURABLE,V=w.IteratorPrototype,B=w.BUGGY_SAFARI_ITERATORS,O=C("iterator"),W="keys",F="values",$="entries",L=function(){return this};h.exports=function(H,G,X,q,Q,tt,it){g(X,G,q);var Ht,bt,zt,st=function(Xt){if(Xt===Q&&ht)return ht;if(!B&&Xt in at)return at[Xt];switch(Xt){case W:case F:case $:return function(){return new X(this,Xt)}}return function(){return new X(this)}},J=G+" Iterator",ct=!1,at=H.prototype,xt=at[O]||at["@@iterator"]||Q&&at[Q],ht=!B&&xt||st(Q),wt="Array"==G&&at.entries||xt;if(wt&&(Ht=v(wt.call(new H)))!==Object.prototype&&Ht.next&&(!c&&v(Ht)!==V&&(m?m(Ht,V):f(Ht[O])||I(Ht,O,L)),y(Ht,J,!0,!0),c&&(P[J]=L)),A&&Q==F&&xt&&xt.name!==F&&(!c&&M?T(at,"name",F):(ct=!0,ht=function(){return l(xt,this)})),Q)if(bt={values:st(F),keys:tt?ht:st(W),entries:st($)},it)for(zt in bt)(B||ct||!(zt in at))&&I(at,zt,bt[zt]);else a({target:G,proto:!0,forced:B||ct},bt);return(!c||it)&&at[O]!==ht&&I(at,O,ht,{name:Q}),P[G]=ht,bt}},13383:(h,x,r)=>{"use strict";var I,C,P,a=r(47293),l=r(60614),c=r(70111),p=r(70030),f=r(79518),g=r(98052),v=r(5112),m=r(31913),y=v("iterator"),T=!1;[].keys&&("next"in(P=[].keys())?(C=f(f(P)))!==Object.prototype&&(I=C):T=!0),!c(I)||a(function(){var A={};return I[y].call(A)!==A})?I={}:m&&(I=p(I)),l(I[y])||g(I,y,function(){return this}),h.exports={IteratorPrototype:I,BUGGY_SAFARI_ITERATORS:T}},97497:h=>{h.exports={}},26244:(h,x,r)=>{var a=r(17466);h.exports=function(l){return a(l.length)}},56339:(h,x,r)=>{var a=r(47293),l=r(60614),c=r(92597),p=r(19781),f=r(76530).CONFIGURABLE,g=r(42788),v=r(29909),m=v.enforce,y=v.get,T=Object.defineProperty,I=p&&!a(function(){return 8!==T(function(){},"length",{value:8}).length}),C=String(String).split("String"),P=h.exports=function(w,A,M){"Symbol("===String(A).slice(0,7)&&(A="["+String(A).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),M&&M.getter&&(A="get "+A),M&&M.setter&&(A="set "+A),(!c(w,"name")||f&&w.name!==A)&&(p?T(w,"name",{value:A,configurable:!0}):w.name=A),I&&M&&c(M,"arity")&&w.length!==M.arity&&T(w,"length",{value:M.arity});try{M&&c(M,"constructor")&&M.constructor?p&&T(w,"prototype",{writable:!1}):w.prototype&&(w.prototype=void 0)}catch{}var V=m(w);return c(V,"source")||(V.source=C.join("string"==typeof A?A:"")),w};Function.prototype.toString=P(function(){return l(this)&&y(this).source||g(this)},"toString")},66736:h=>{var x=Math.expm1,r=Math.exp;h.exports=!x||x(10)>22025.465794806718||x(10)<22025.465794806718||-2e-17!=x(-2e-17)?function(l){var c=+l;return 0==c?c:c>-1e-6&&c<1e-6?c+c*c/2:r(c)-1}:x},26130:(h,x,r)=>{var a=r(64310),l=Math.abs,c=Math.pow,p=c(2,-52),f=c(2,-23),g=c(2,127)*(2-f),v=c(2,-126);h.exports=Math.fround||function(T){var w,A,I=+T,C=l(I),P=a(I);return Cg||A!=A?P*(1/0):P*A}},20403:h=>{var x=Math.log,r=Math.LOG10E;h.exports=Math.log10||function(l){return x(l)*r}},26513:h=>{var x=Math.log;h.exports=Math.log1p||function(a){var l=+a;return l>-1e-8&&l<1e-8?l-l*l/2:x(1+l)}},64310:h=>{h.exports=Math.sign||function(r){var a=+r;return 0==a||a!=a?a:a<0?-1:1}},74758:h=>{var x=Math.ceil,r=Math.floor;h.exports=Math.trunc||function(l){var c=+l;return(c>0?r:x)(c)}},3929:(h,x,r)=>{var a=r(47850),l=TypeError;h.exports=function(c){if(a(c))throw l("The method doesn't accept regular expressions");return c}},77023:(h,x,r)=>{var l=r(17854).isFinite;h.exports=Number.isFinite||function(p){return"number"==typeof p&&l(p)}},2814:(h,x,r)=>{var a=r(17854),l=r(47293),c=r(1702),p=r(41340),f=r(53111).trim,g=r(81361),v=c("".charAt),m=a.parseFloat,y=a.Symbol,T=y&&y.iterator,I=1/m(g+"-0")!=-1/0||T&&!l(function(){m(Object(T))});h.exports=I?function(P){var w=f(p(P)),A=m(w);return 0===A&&"-"==v(w,0)?-0:A}:m},83009:(h,x,r)=>{var a=r(17854),l=r(47293),c=r(1702),p=r(41340),f=r(53111).trim,g=r(81361),v=a.parseInt,m=a.Symbol,y=m&&m.iterator,T=/^[+-]?0x/i,I=c(T.exec),C=8!==v(g+"08")||22!==v(g+"0x16")||y&&!l(function(){v(Object(y))});h.exports=C?function(w,A){var M=f(p(w));return v(M,A>>>0||(I(T,M)?16:10))}:v},21574:(h,x,r)=>{"use strict";var a=r(19781),l=r(1702),c=r(46916),p=r(47293),f=r(81956),g=r(25181),v=r(55296),m=r(47908),y=r(68361),T=Object.assign,I=Object.defineProperty,C=l([].concat);h.exports=!T||p(function(){if(a&&1!==T({b:1},T(I({},"a",{enumerable:!0,get:function(){I(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var P={},w={},A=Symbol(),M="abcdefghijklmnopqrst";return P[A]=7,M.split("").forEach(function(V){w[V]=V}),7!=T({},P)[A]||f(T({},w)).join("")!=M})?function(w,A){for(var M=m(w),V=arguments.length,B=1,O=g.f,W=v.f;V>B;)for(var G,F=y(arguments[B++]),$=O?C(f(F),O(F)):f(F),L=$.length,H=0;L>H;)G=$[H++],(!a||c(W,F,G))&&(M[G]=F[G]);return M}:T},70030:(h,x,r)=>{var V,a=r(19670),l=r(36048),c=r(80748),p=r(3501),f=r(60490),g=r(80317),v=r(6200),T="prototype",I="script",C=v("IE_PROTO"),P=function(){},w=function(O){return"<"+I+">"+O+""},A=function(O){O.write(w("")),O.close();var W=O.parentWindow.Object;return O=null,W},B=function(){try{V=new ActiveXObject("htmlfile")}catch{}B=typeof document<"u"?document.domain&&V?A(V):function(){var F,O=g("iframe");return O.style.display="none",f.appendChild(O),O.src=String("javascript:"),(F=O.contentWindow.document).open(),F.write(w("document.F=Object")),F.close(),F.F}():A(V);for(var O=c.length;O--;)delete B[T][c[O]];return B()};p[C]=!0,h.exports=Object.create||function(W,F){var $;return null!==W?(P[T]=a(W),$=new P,P[T]=null,$[C]=W):$=B(),void 0===F?$:l.f($,F)}},36048:(h,x,r)=>{var a=r(19781),l=r(3353),c=r(3070),p=r(19670),f=r(45656),g=r(81956);x.f=a&&!l?Object.defineProperties:function(m,y){p(m);for(var w,T=f(y),I=g(y),C=I.length,P=0;C>P;)c.f(m,w=I[P++],T[w]);return m}},3070:(h,x,r)=>{var a=r(19781),l=r(64664),c=r(3353),p=r(19670),f=r(34948),g=TypeError,v=Object.defineProperty,m=Object.getOwnPropertyDescriptor,y="enumerable",T="configurable",I="writable";x.f=a?c?function(P,w,A){if(p(P),w=f(w),p(A),"function"==typeof P&&"prototype"===w&&"value"in A&&I in A&&!A[I]){var M=m(P,w);M&&M[I]&&(P[w]=A.value,A={configurable:T in A?A[T]:M[T],enumerable:y in A?A[y]:M[y],writable:!1})}return v(P,w,A)}:v:function(P,w,A){if(p(P),w=f(w),p(A),l)try{return v(P,w,A)}catch{}if("get"in A||"set"in A)throw g("Accessors not supported");return"value"in A&&(P[w]=A.value),P}},31236:(h,x,r)=>{var a=r(19781),l=r(46916),c=r(55296),p=r(79114),f=r(45656),g=r(34948),v=r(92597),m=r(64664),y=Object.getOwnPropertyDescriptor;x.f=a?y:function(I,C){if(I=f(I),C=g(C),m)try{return y(I,C)}catch{}if(v(I,C))return p(!l(c.f,I,C),I[C])}},1156:(h,x,r)=>{var a=r(84326),l=r(45656),c=r(8006).f,p=r(41589),f="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];h.exports.f=function(m){return f&&"Window"==a(m)?function(v){try{return c(v)}catch{return p(f)}}(m):c(l(m))}},8006:(h,x,r)=>{var a=r(16324),c=r(80748).concat("length","prototype");x.f=Object.getOwnPropertyNames||function(f){return a(f,c)}},25181:(h,x)=>{x.f=Object.getOwnPropertySymbols},79518:(h,x,r)=>{var a=r(92597),l=r(60614),c=r(47908),p=r(6200),f=r(49920),g=p("IE_PROTO"),v=Object,m=v.prototype;h.exports=f?v.getPrototypeOf:function(y){var T=c(y);if(a(T,g))return T[g];var I=T.constructor;return l(I)&&T instanceof I?I.prototype:T instanceof v?m:null}},52050:(h,x,r)=>{var a=r(47293),l=r(70111),c=r(84326),p=r(7556),f=Object.isExtensible,g=a(function(){f(1)});h.exports=g||p?function(m){return!(!l(m)||p&&"ArrayBuffer"==c(m))&&(!f||f(m))}:f},47976:(h,x,r)=>{var a=r(1702);h.exports=a({}.isPrototypeOf)},16324:(h,x,r)=>{var a=r(1702),l=r(92597),c=r(45656),p=r(41318).indexOf,f=r(3501),g=a([].push);h.exports=function(v,m){var C,y=c(v),T=0,I=[];for(C in y)!l(f,C)&&l(y,C)&&g(I,C);for(;m.length>T;)l(y,C=m[T++])&&(~p(I,C)||g(I,C));return I}},81956:(h,x,r)=>{var a=r(16324),l=r(80748);h.exports=Object.keys||function(p){return a(p,l)}},55296:(h,x)=>{"use strict";var r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,l=a&&!r.call({1:2},1);x.f=l?function(p){var f=a(this,p);return!!f&&f.enumerable}:r},69026:(h,x,r)=>{"use strict";var a=r(31913),l=r(17854),c=r(47293),p=r(98008);h.exports=a||!c(function(){if(!(p&&p<535)){var f=Math.random();__defineSetter__.call(null,f,function(){}),delete l[f]}})},27674:(h,x,r)=>{var a=r(1702),l=r(19670),c=r(96077);h.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var g,p=!1,f={};try{(g=a(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(f,[]),p=f instanceof Array}catch{}return function(m,y){return l(m),c(y),p?g(m,y):m.__proto__=y,m}}():void 0)},44699:(h,x,r)=>{var a=r(19781),l=r(1702),c=r(81956),p=r(45656),g=l(r(55296).f),v=l([].push),m=function(y){return function(T){for(var M,I=p(T),C=c(I),P=C.length,w=0,A=[];P>w;)M=C[w++],(!a||g(I,M))&&v(A,y?[M,I[M]]:I[M]);return A}};h.exports={entries:m(!0),values:m(!1)}},90288:(h,x,r)=>{"use strict";var a=r(51694),l=r(70648);h.exports=a?{}.toString:function(){return"[object "+l(this)+"]"}},92140:(h,x,r)=>{var a=r(46916),l=r(60614),c=r(70111),p=TypeError;h.exports=function(f,g){var v,m;if("string"===g&&l(v=f.toString)&&!c(m=a(v,f))||l(v=f.valueOf)&&!c(m=a(v,f))||"string"!==g&&l(v=f.toString)&&!c(m=a(v,f)))return m;throw p("Can't convert object to primitive value")}},53887:(h,x,r)=>{var a=r(35005),l=r(1702),c=r(8006),p=r(25181),f=r(19670),g=l([].concat);h.exports=a("Reflect","ownKeys")||function(m){var y=c.f(f(m)),T=p.f;return T?g(y,T(m)):y}},40857:(h,x,r)=>{var a=r(17854);h.exports=a},2626:(h,x,r)=>{var a=r(3070).f;h.exports=function(l,c,p){p in l||a(l,p,{configurable:!0,get:function(){return c[p]},set:function(f){c[p]=f}})}},97651:(h,x,r)=>{var a=r(46916),l=r(19670),c=r(60614),p=r(84326),f=r(22261),g=TypeError;h.exports=function(v,m){var y=v.exec;if(c(y)){var T=a(y,v,m);return null!==T&&l(T),T}if("RegExp"===p(v))return a(f,v,m);throw g("RegExp#exec called on incompatible receiver")}},22261:(h,x,r)=>{"use strict";var $,L,a=r(46916),l=r(1702),c=r(41340),p=r(67066),f=r(52999),g=r(72309),v=r(70030),m=r(29909).get,y=r(9441),T=r(38173),I=g("native-string-replace",String.prototype.replace),C=RegExp.prototype.exec,P=C,w=l("".charAt),A=l("".indexOf),M=l("".replace),V=l("".slice),B=(L=/b*/g,a(C,$=/a/,"a"),a(C,L,"a"),0!==$.lastIndex||0!==L.lastIndex),O=f.BROKEN_CARET,W=void 0!==/()??/.exec("")[1];(B||W||O||y||T)&&(P=function(L){var Q,tt,it,st,J,ct,at,H=this,G=m(H),X=c(L),q=G.raw;if(q)return q.lastIndex=H.lastIndex,Q=a(P,q,X),H.lastIndex=q.lastIndex,Q;var xt=G.groups,ht=O&&H.sticky,wt=a(p,H),Ht=H.source,bt=0,zt=X;if(ht&&(wt=M(wt,"y",""),-1===A(wt,"g")&&(wt+="g"),zt=V(X,H.lastIndex),H.lastIndex>0&&(!H.multiline||H.multiline&&"\n"!==w(X,H.lastIndex-1))&&(Ht="(?: "+Ht+")",zt=" "+zt,bt++),tt=new RegExp("^(?:"+Ht+")",wt)),W&&(tt=new RegExp("^"+Ht+"$(?!\\s)",wt)),B&&(it=H.lastIndex),st=a(C,ht?tt:H,zt),ht?st?(st.input=V(st.input,bt),st[0]=V(st[0],bt),st.index=H.lastIndex,H.lastIndex+=st[0].length):H.lastIndex=0:B&&st&&(H.lastIndex=H.global?st.index+st[0].length:it),W&&st&&st.length>1&&a(I,st[0],tt,function(){for(J=1;J{"use strict";var a=r(19670);h.exports=function(){var l=a(this),c="";return l.hasIndices&&(c+="d"),l.global&&(c+="g"),l.ignoreCase&&(c+="i"),l.multiline&&(c+="m"),l.dotAll&&(c+="s"),l.unicode&&(c+="u"),l.unicodeSets&&(c+="v"),l.sticky&&(c+="y"),c}},34706:(h,x,r)=>{var a=r(46916),l=r(92597),c=r(47976),p=r(67066),f=RegExp.prototype;h.exports=function(g){var v=g.flags;return void 0!==v||"flags"in f||l(g,"flags")||!c(f,g)?v:a(p,g)}},52999:(h,x,r)=>{var a=r(47293),c=r(17854).RegExp,p=a(function(){var v=c("a","y");return v.lastIndex=2,null!=v.exec("abcd")}),f=p||a(function(){return!c("a","y").sticky}),g=p||a(function(){var v=c("^r","gy");return v.lastIndex=2,null!=v.exec("str")});h.exports={BROKEN_CARET:g,MISSED_STICKY:f,UNSUPPORTED_Y:p}},9441:(h,x,r)=>{var a=r(47293),c=r(17854).RegExp;h.exports=a(function(){var p=c(".","s");return!(p.dotAll&&p.exec("\n")&&"s"===p.flags)})},38173:(h,x,r)=>{var a=r(47293),c=r(17854).RegExp;h.exports=a(function(){var p=c("(?b)","g");return"b"!==p.exec("b").groups.a||"bc"!=="b".replace(p,"$c")})},84488:(h,x,r)=>{var a=r(68554),l=TypeError;h.exports=function(c){if(a(c))throw l("Can't call method on "+c);return c}},81150:h=>{h.exports=Object.is||function(r,a){return r===a?0!==r||1/r==1/a:r!=r&&a!=a}},96340:(h,x,r)=>{"use strict";var a=r(35005),l=r(3070),c=r(5112),p=r(19781),f=c("species");h.exports=function(g){var v=a(g);p&&v&&!v[f]&&(0,l.f)(v,f,{configurable:!0,get:function(){return this}})}},58003:(h,x,r)=>{var a=r(3070).f,l=r(92597),p=r(5112)("toStringTag");h.exports=function(f,g,v){f&&!v&&(f=f.prototype),f&&!l(f,p)&&a(f,p,{configurable:!0,value:g})}},6200:(h,x,r)=>{var a=r(72309),l=r(69711),c=a("keys");h.exports=function(p){return c[p]||(c[p]=l(p))}},5465:(h,x,r)=>{var a=r(17854),l=r(13072),c="__core-js_shared__",p=a[c]||l(c,{});h.exports=p},72309:(h,x,r)=>{var a=r(31913),l=r(5465);(h.exports=function(c,p){return l[c]||(l[c]=void 0!==p?p:{})})("versions",[]).push({version:"3.27.1",mode:a?"pure":"global",copyright:"\xa9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.1/LICENSE",source:"https://github.com/zloirock/core-js"})},36707:(h,x,r)=>{var a=r(19670),l=r(39483),c=r(68554),f=r(5112)("species");h.exports=function(g,v){var y,m=a(g).constructor;return void 0===m||c(y=a(m)[f])?v:l(y)}},43429:(h,x,r)=>{var a=r(47293);h.exports=function(l){return a(function(){var c=""[l]('"');return c!==c.toLowerCase()||c.split('"').length>3})}},28710:(h,x,r)=>{var a=r(1702),l=r(19303),c=r(41340),p=r(84488),f=a("".charAt),g=a("".charCodeAt),v=a("".slice),m=function(y){return function(T,I){var A,M,C=c(p(T)),P=l(I),w=C.length;return P<0||P>=w?y?"":void 0:(A=g(C,P))<55296||A>56319||P+1===w||(M=g(C,P+1))<56320||M>57343?y?f(C,P):A:y?v(C,P,P+2):M-56320+(A-55296<<10)+65536}};h.exports={codeAt:m(!1),charAt:m(!0)}},54986:(h,x,r)=>{var a=r(88113);h.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(a)},76650:(h,x,r)=>{var a=r(1702),l=r(17466),c=r(41340),p=r(38415),f=r(84488),g=a(p),v=a("".slice),m=Math.ceil,y=function(T){return function(I,C,P){var B,O,w=c(f(I)),A=l(C),M=w.length,V=void 0===P?" ":c(P);return A<=M||""==V?w:((O=g(V,m((B=A-M)/V.length))).length>B&&(O=v(O,0,B)),T?w+O:O+w)}};h.exports={start:y(!1),end:y(!0)}},38415:(h,x,r)=>{"use strict";var a=r(19303),l=r(41340),c=r(84488),p=RangeError;h.exports=function(g){var v=l(c(this)),m="",y=a(g);if(y<0||y==1/0)throw p("Wrong number of repetitions");for(;y>0;(y>>>=1)&&(v+=v))1&y&&(m+=v);return m}},10365:(h,x,r)=>{"use strict";var a=r(53111).end,l=r(76091);h.exports=l("trimEnd")?function(){return a(this)}:"".trimEnd},76091:(h,x,r)=>{var a=r(76530).PROPER,l=r(47293),c=r(81361);h.exports=function(f){return l(function(){return!!c[f]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[f]()||a&&c[f].name!==f})}},33217:(h,x,r)=>{"use strict";var a=r(53111).start,l=r(76091);h.exports=l("trimStart")?function(){return a(this)}:"".trimStart},53111:(h,x,r)=>{var a=r(1702),l=r(84488),c=r(41340),p=r(81361),f=a("".replace),g="["+p+"]",v=RegExp("^"+g+g+"*"),m=RegExp(g+g+"*$"),y=function(T){return function(I){var C=c(l(I));return 1&T&&(C=f(C,v,"")),2&T&&(C=f(C,m,"")),C}};h.exports={start:y(1),end:y(2),trim:y(3)}},36293:(h,x,r)=>{var a=r(7392),l=r(47293);h.exports=!!Object.getOwnPropertySymbols&&!l(function(){var c=Symbol();return!String(c)||!(Object(c)instanceof Symbol)||!Symbol.sham&&a&&a<41})},56532:(h,x,r)=>{var a=r(46916),l=r(35005),c=r(5112),p=r(98052);h.exports=function(){var f=l("Symbol"),g=f&&f.prototype,v=g&&g.valueOf,m=c("toPrimitive");g&&!g[m]&&p(g,m,function(y){return a(v,this)},{arity:1})}},2015:(h,x,r)=>{var a=r(36293);h.exports=a&&!!Symbol.for&&!!Symbol.keyFor},50863:(h,x,r)=>{var a=r(1702);h.exports=a(1..valueOf)},51400:(h,x,r)=>{var a=r(19303),l=Math.max,c=Math.min;h.exports=function(p,f){var g=a(p);return g<0?l(g+f,0):c(g,f)}},45656:(h,x,r)=>{var a=r(68361),l=r(84488);h.exports=function(c){return a(l(c))}},19303:(h,x,r)=>{var a=r(74758);h.exports=function(l){var c=+l;return c!=c||0===c?0:a(c)}},17466:(h,x,r)=>{var a=r(19303),l=Math.min;h.exports=function(c){return c>0?l(a(c),9007199254740991):0}},47908:(h,x,r)=>{var a=r(84488),l=Object;h.exports=function(c){return l(a(c))}},57593:(h,x,r)=>{var a=r(46916),l=r(70111),c=r(52190),p=r(58173),f=r(92140),g=r(5112),v=TypeError,m=g("toPrimitive");h.exports=function(y,T){if(!l(y)||c(y))return y;var C,I=p(y,m);if(I){if(void 0===T&&(T="default"),C=a(I,y,T),!l(C)||c(C))return C;throw v("Can't convert object to primitive value")}return void 0===T&&(T="number"),f(y,T)}},34948:(h,x,r)=>{var a=r(57593),l=r(52190);h.exports=function(c){var p=a(c,"string");return l(p)?p:p+""}},51694:(h,x,r)=>{var c={};c[r(5112)("toStringTag")]="z",h.exports="[object z]"===String(c)},41340:(h,x,r)=>{var a=r(70648),l=String;h.exports=function(c){if("Symbol"===a(c))throw TypeError("Cannot convert a Symbol value to a string");return l(c)}},66330:h=>{var x=String;h.exports=function(r){try{return x(r)}catch{return"Object"}}},69711:(h,x,r)=>{var a=r(1702),l=0,c=Math.random(),p=a(1..toString);h.exports=function(f){return"Symbol("+(void 0===f?"":f)+")_"+p(++l+c,36)}},43307:(h,x,r)=>{var a=r(36293);h.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:(h,x,r)=>{var a=r(19781),l=r(47293);h.exports=a&&l(function(){return 42!=Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},94811:(h,x,r)=>{var a=r(17854),l=r(60614),c=a.WeakMap;h.exports=l(c)&&/native code/.test(String(c))},26800:(h,x,r)=>{var a=r(40857),l=r(92597),c=r(6061),p=r(3070).f;h.exports=function(f){var g=a.Symbol||(a.Symbol={});l(g,f)||p(g,f,{value:c.f(f)})}},6061:(h,x,r)=>{var a=r(5112);x.f=a},5112:(h,x,r)=>{var a=r(17854),l=r(72309),c=r(92597),p=r(69711),f=r(36293),g=r(43307),v=l("wks"),m=a.Symbol,y=m&&m.for,T=g?m:m&&m.withoutSetter||p;h.exports=function(I){if(!c(v,I)||!f&&"string"!=typeof v[I]){var C="Symbol."+I;v[I]=f&&c(m,I)?m[I]:g&&y?y(C):T(C)}return v[I]}},81361:h=>{h.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},52262:(h,x,r)=>{"use strict";var a=r(82109),l=r(47908),c=r(26244),p=r(19303),f=r(51223);a({target:"Array",proto:!0},{at:function(v){var m=l(this),y=c(m),T=p(v),I=T>=0?T:y+T;return I<0||I>=y?void 0:m[I]}}),f("at")},92222:(h,x,r)=>{"use strict";var a=r(82109),l=r(47293),c=r(43157),p=r(70111),f=r(47908),g=r(26244),v=r(7207),m=r(86135),y=r(65417),T=r(81194),I=r(5112),C=r(7392),P=I("isConcatSpreadable"),w=C>=51||!l(function(){var B=[];return B[P]=!1,B.concat()[0]!==B}),A=T("concat"),M=function(B){if(!p(B))return!1;var O=B[P];return void 0!==O?!!O:c(B)};a({target:"Array",proto:!0,arity:1,forced:!w||!A},{concat:function(O){var L,H,G,X,q,W=f(this),F=y(W,0),$=0;for(L=-1,G=arguments.length;L{var a=r(82109),l=r(1048),c=r(51223);a({target:"Array",proto:!0},{copyWithin:l}),c("copyWithin")},26541:(h,x,r)=>{"use strict";var a=r(82109),l=r(42092).every;a({target:"Array",proto:!0,forced:!r(9341)("every")},{every:function(g){return l(this,g,arguments.length>1?arguments[1]:void 0)}})},43290:(h,x,r)=>{var a=r(82109),l=r(21285),c=r(51223);a({target:"Array",proto:!0},{fill:l}),c("fill")},57327:(h,x,r)=>{"use strict";var a=r(82109),l=r(42092).filter;a({target:"Array",proto:!0,forced:!r(81194)("filter")},{filter:function(g){return l(this,g,arguments.length>1?arguments[1]:void 0)}})},34553:(h,x,r)=>{"use strict";var a=r(82109),l=r(42092).findIndex,c=r(51223),p="findIndex",f=!0;p in[]&&Array(1)[p](function(){f=!1}),a({target:"Array",proto:!0,forced:f},{findIndex:function(v){return l(this,v,arguments.length>1?arguments[1]:void 0)}}),c(p)},77287:(h,x,r)=>{"use strict";var a=r(82109),l=r(9671).findLastIndex,c=r(51223);a({target:"Array",proto:!0},{findLastIndex:function(f){return l(this,f,arguments.length>1?arguments[1]:void 0)}}),c("findLastIndex")},67635:(h,x,r)=>{"use strict";var a=r(82109),l=r(9671).findLast,c=r(51223);a({target:"Array",proto:!0},{findLast:function(f){return l(this,f,arguments.length>1?arguments[1]:void 0)}}),c("findLast")},69826:(h,x,r)=>{"use strict";var a=r(82109),l=r(42092).find,c=r(51223),p="find",f=!0;p in[]&&Array(1)[p](function(){f=!1}),a({target:"Array",proto:!0,forced:f},{find:function(v){return l(this,v,arguments.length>1?arguments[1]:void 0)}}),c(p)},86535:(h,x,r)=>{"use strict";var a=r(82109),l=r(6790),c=r(19662),p=r(47908),f=r(26244),g=r(65417);a({target:"Array",proto:!0},{flatMap:function(m){var I,y=p(this),T=f(y);return c(m),(I=g(y,0)).length=l(I,y,y,T,0,1,m,arguments.length>1?arguments[1]:void 0),I}})},84944:(h,x,r)=>{"use strict";var a=r(82109),l=r(6790),c=r(47908),p=r(26244),f=r(19303),g=r(65417);a({target:"Array",proto:!0},{flat:function(){var m=arguments.length?arguments[0]:void 0,y=c(this),T=p(y),I=g(y,0);return I.length=l(I,y,y,T,0,void 0===m?1:f(m)),I}})},89554:(h,x,r)=>{"use strict";var a=r(82109),l=r(18533);a({target:"Array",proto:!0,forced:[].forEach!=l},{forEach:l})},91038:(h,x,r)=>{var a=r(82109),l=r(48457);a({target:"Array",stat:!0,forced:!r(17072)(function(f){Array.from(f)})},{from:l})},26699:(h,x,r)=>{"use strict";var a=r(82109),l=r(41318).includes,c=r(47293),p=r(51223);a({target:"Array",proto:!0,forced:c(function(){return!Array(1).includes()})},{includes:function(v){return l(this,v,arguments.length>1?arguments[1]:void 0)}}),p("includes")},82772:(h,x,r)=>{"use strict";var a=r(82109),l=r(21470),c=r(41318).indexOf,p=r(9341),f=l([].indexOf),g=!!f&&1/f([1],1,-0)<0,v=p("indexOf");a({target:"Array",proto:!0,forced:g||!v},{indexOf:function(y){var T=arguments.length>1?arguments[1]:void 0;return g?f(this,y,T)||0:c(this,y,T)}})},79753:(h,x,r)=>{r(82109)({target:"Array",stat:!0},{isArray:r(43157)})},66992:(h,x,r)=>{"use strict";var a=r(45656),l=r(51223),c=r(97497),p=r(29909),f=r(3070).f,g=r(51656),v=r(76178),m=r(31913),y=r(19781),T="Array Iterator",I=p.set,C=p.getterFor(T);h.exports=g(Array,"Array",function(w,A){I(this,{type:T,target:a(w),index:0,kind:A})},function(){var w=C(this),A=w.target,M=w.kind,V=w.index++;return!A||V>=A.length?(w.target=void 0,v(void 0,!0)):v("keys"==M?V:"values"==M?A[V]:[V,A[V]],!1)},"values");var P=c.Arguments=c.Array;if(l("keys"),l("values"),l("entries"),!m&&y&&"values"!==P.name)try{f(P,"name",{value:"values"})}catch{}},69600:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(68361),p=r(45656),f=r(9341),g=l([].join),v=c!=Object,m=f("join",",");a({target:"Array",proto:!0,forced:v||!m},{join:function(T){return g(p(this),void 0===T?",":T)}})},94986:(h,x,r)=>{var a=r(82109),l=r(86583);a({target:"Array",proto:!0,forced:l!==[].lastIndexOf},{lastIndexOf:l})},21249:(h,x,r)=>{"use strict";var a=r(82109),l=r(42092).map;a({target:"Array",proto:!0,forced:!r(81194)("map")},{map:function(g){return l(this,g,arguments.length>1?arguments[1]:void 0)}})},26572:(h,x,r)=>{"use strict";var a=r(82109),l=r(47293),c=r(4411),p=r(86135),f=Array;a({target:"Array",stat:!0,forced:l(function(){function v(){}return!(f.of.call(v)instanceof v)})},{of:function(){for(var m=0,y=arguments.length,T=new(c(this)?this:f)(y);y>m;)p(T,m,arguments[m++]);return T.length=y,T}})},57658:(h,x,r)=>{"use strict";var a=r(82109),l=r(47908),c=r(26244),p=r(83658),f=r(7207),v=r(47293)(function(){return 4294967297!==[].push.call({length:4294967296},1)}),m=!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(y){return y instanceof TypeError}}();a({target:"Array",proto:!0,arity:1,forced:v||m},{push:function(T){var I=l(this),C=c(I),P=arguments.length;f(C+P);for(var w=0;w{"use strict";var a=r(82109),l=r(53671).right,c=r(9341),p=r(7392),f=r(92805);a({target:"Array",proto:!0,forced:!c("reduceRight")||!f&&p>79&&p<83},{reduceRight:function(y){return l(this,y,arguments.length,arguments.length>1?arguments[1]:void 0)}})},85827:(h,x,r)=>{"use strict";var a=r(82109),l=r(53671).left,c=r(9341),p=r(7392),f=r(92805);a({target:"Array",proto:!0,forced:!c("reduce")||!f&&p>79&&p<83},{reduce:function(y){var T=arguments.length;return l(this,y,T,T>1?arguments[1]:void 0)}})},65069:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(43157),p=l([].reverse),f=[1,2];a({target:"Array",proto:!0,forced:String(f)===String(f.reverse())},{reverse:function(){return c(this)&&(this.length=this.length),p(this)}})},47042:(h,x,r)=>{"use strict";var a=r(82109),l=r(43157),c=r(4411),p=r(70111),f=r(51400),g=r(26244),v=r(45656),m=r(86135),y=r(5112),T=r(81194),I=r(50206),C=T("slice"),P=y("species"),w=Array,A=Math.max;a({target:"Array",proto:!0,forced:!C},{slice:function(V,B){var L,H,G,O=v(this),W=g(O),F=f(V,W),$=f(void 0===B?W:B,W);if(l(O)&&((c(L=O.constructor)&&(L===w||l(L.prototype))||p(L)&&null===(L=L[P]))&&(L=void 0),L===w||void 0===L))return I(O,F,$);for(H=new(void 0===L?w:L)(A($-F,0)),G=0;F<$;F++,G++)F in O&&m(H,G,O[F]);return H.length=G,H}})},5212:(h,x,r)=>{"use strict";var a=r(82109),l=r(42092).some;a({target:"Array",proto:!0,forced:!r(9341)("some")},{some:function(g){return l(this,g,arguments.length>1?arguments[1]:void 0)}})},2707:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(19662),p=r(47908),f=r(26244),g=r(85117),v=r(41340),m=r(47293),y=r(94362),T=r(9341),I=r(68886),C=r(30256),P=r(7392),w=r(98008),A=[],M=l(A.sort),V=l(A.push),B=m(function(){A.sort(void 0)}),O=m(function(){A.sort(null)}),W=T("sort"),F=!m(function(){if(P)return P<70;if(!(I&&I>3)){if(C)return!0;if(w)return w<603;var G,X,q,Q,H="";for(G=65;G<76;G++){switch(X=String.fromCharCode(G),G){case 66:case 69:case 70:case 72:q=3;break;case 68:case 71:q=4;break;default:q=2}for(Q=0;Q<47;Q++)A.push({k:X+Q,v:q})}for(A.sort(function(tt,it){return it.v-tt.v}),Q=0;Qv(X)?1:-1}}(G)),tt=f(q),it=0;it{r(96340)("Array")},40561:(h,x,r)=>{"use strict";var a=r(82109),l=r(47908),c=r(51400),p=r(19303),f=r(26244),g=r(83658),v=r(7207),m=r(65417),y=r(86135),T=r(85117),C=r(81194)("splice"),P=Math.max,w=Math.min;a({target:"Array",proto:!0,forced:!C},{splice:function(M,V){var $,L,H,G,X,q,B=l(this),O=f(B),W=c(M,O),F=arguments.length;for(0===F?$=L=0:1===F?($=0,L=O-W):($=F-2,L=w(P(p(V),0),O-W)),v(O+$-L),H=m(B,L),G=0;GO-L+$;G--)T(B,G-1)}else if($>L)for(G=O-L;G>W;G--)q=G+$-1,(X=G+L-1)in B?B[q]=B[X]:T(B,q);for(G=0;G<$;G++)B[G+W]=arguments[G+2];return g(B,O-L+$),H}})},99244:(h,x,r)=>{r(51223)("flatMap")},33792:(h,x,r)=>{r(51223)("flat")},30541:(h,x,r)=>{"use strict";var a=r(82109),l=r(47908),c=r(26244),p=r(83658),f=r(85117),g=r(7207),v=1!==[].unshift(0),m=!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(y){return y instanceof TypeError}}();a({target:"Array",proto:!0,arity:1,forced:v||m},{unshift:function(T){var I=l(this),C=c(I),P=arguments.length;if(P){g(C+P);for(var w=C;w--;){var A=w+P;w in I?I[A]=I[w]:f(I,A)}for(var M=0;M{"use strict";var a=r(82109),l=r(1702),p=r(47293)(function(){return 120!==new Date(16e11).getYear()}),f=l(Date.prototype.getFullYear);a({target:"Date",proto:!0,forced:p},{getYear:function(){return f(this)-1900}})},3843:(h,x,r)=>{var a=r(82109),l=r(1702),c=Date,p=l(c.prototype.getTime);a({target:"Date",stat:!0},{now:function(){return p(new c)}})},81801:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(19303),p=Date.prototype,f=l(p.getTime),g=l(p.setFullYear);a({target:"Date",proto:!0},{setYear:function(m){f(this);var y=c(m);return g(this,0<=y&&y<=99?y+1900:y)}})},9550:(h,x,r)=>{r(82109)({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},35268:(h,x,r)=>{var a=r(82109),l=r(85573);a({target:"Date",proto:!0,forced:Date.prototype.toISOString!==l},{toISOString:l})},5735:(h,x,r)=>{"use strict";var a=r(82109),l=r(47293),c=r(47908),p=r(57593);a({target:"Date",proto:!0,arity:1,forced:l(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})},{toJSON:function(v){var m=c(this),y=p(m,"number");return"number"!=typeof y||isFinite(y)?m.toISOString():null}})},96078:(h,x,r)=>{var a=r(92597),l=r(98052),c=r(38709),f=r(5112)("toPrimitive"),g=Date.prototype;a(g,f)||l(g,f,c)},83710:(h,x,r)=>{var a=r(1702),l=r(98052),c=Date.prototype,p="Invalid Date",f="toString",g=a(c[f]),v=a(c.getTime);String(new Date(NaN))!=p&&l(c,f,function(){var y=v(this);return y==y?g(this):p})},24812:(h,x,r)=>{var a=r(82109),l=r(27065);a({target:"Function",proto:!0,forced:Function.bind!==l},{bind:l})},4855:(h,x,r)=>{"use strict";var a=r(60614),l=r(70111),c=r(3070),p=r(79518),f=r(5112),g=r(56339),v=f("hasInstance"),m=Function.prototype;v in m||c.f(m,v,{value:g(function(y){if(!a(this)||!l(y))return!1;var T=this.prototype;if(!l(T))return y instanceof this;for(;y=p(y);)if(T===y)return!0;return!1},v)})},68309:(h,x,r)=>{var a=r(19781),l=r(76530).EXISTS,c=r(1702),p=r(3070).f,f=Function.prototype,g=c(f.toString),v=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,m=c(v.exec);a&&!l&&p(f,"name",{configurable:!0,get:function(){try{return m(v,g(this))[1]}catch{return""}}})},38862:(h,x,r)=>{var a=r(82109),l=r(35005),c=r(22104),p=r(46916),f=r(1702),g=r(47293),v=r(43157),m=r(60614),y=r(70111),T=r(52190),I=r(50206),C=r(36293),P=l("JSON","stringify"),w=f(/./.exec),A=f("".charAt),M=f("".charCodeAt),V=f("".replace),B=f(1..toString),O=/[\uD800-\uDFFF]/g,W=/^[\uD800-\uDBFF]$/,F=/^[\uDC00-\uDFFF]$/,$=!C||g(function(){var X=l("Symbol")();return"[null]"!=P([X])||"{}"!=P({a:X})||"{}"!=P(Object(X))}),L=g(function(){return'"\\udf06\\ud834"'!==P("\udf06\ud834")||'"\\udead"'!==P("\udead")}),H=function(X,q){var Q=I(arguments),tt=q;if((y(q)||void 0!==X)&&!T(X))return v(q)||(q=function(it,st){if(m(tt)&&(st=p(tt,this,it,st)),!T(st))return st}),Q[1]=q,c(P,null,Q)},G=function(X,q,Q){var tt=A(Q,q-1),it=A(Q,q+1);return w(W,X)&&!w(F,it)||w(F,X)&&!w(W,tt)?"\\u"+B(M(X,0),16):X};P&&a({target:"JSON",stat:!0,arity:3,forced:$||L},{stringify:function(q,Q,tt){var it=I(arguments),st=c($?H:P,null,it);return L&&"string"==typeof st?V(st,O,G):st}})},73706:(h,x,r)=>{var a=r(17854);r(58003)(a.JSON,"JSON",!0)},69098:(h,x,r)=>{"use strict";r(77710)("Map",function(c){return function(){return c(this,arguments.length?arguments[0]:void 0)}},r(95631))},51532:(h,x,r)=>{r(69098)},99752:(h,x,r)=>{var a=r(82109),l=r(26513),c=Math.acosh,p=Math.log,f=Math.sqrt,g=Math.LN2;a({target:"Math",stat:!0,forced:!c||710!=Math.floor(c(Number.MAX_VALUE))||c(1/0)!=1/0},{acosh:function(y){var T=+y;return T<1?NaN:T>94906265.62425156?p(T)+g:l(T-1+f(T-1)*f(T+1))}})},82376:(h,x,r)=>{var a=r(82109),l=Math.asinh,c=Math.log,p=Math.sqrt;a({target:"Math",stat:!0,forced:!(l&&1/l(0)>0)},{asinh:function f(g){var v=+g;return isFinite(v)&&0!=v?v<0?-f(-v):c(v+p(v*v+1)):v}})},73181:(h,x,r)=>{var a=r(82109),l=Math.atanh,c=Math.log;a({target:"Math",stat:!0,forced:!(l&&1/l(-0)<0)},{atanh:function(f){var g=+f;return 0==g?g:c((1+g)/(1-g))/2}})},23484:(h,x,r)=>{var a=r(82109),l=r(64310),c=Math.abs,p=Math.pow;a({target:"Math",stat:!0},{cbrt:function(g){var v=+g;return l(v)*p(c(v),1/3)}})},2388:(h,x,r)=>{var a=r(82109),l=Math.floor,c=Math.log,p=Math.LOG2E;a({target:"Math",stat:!0},{clz32:function(g){var v=g>>>0;return v?31-l(c(v+.5)*p):32}})},88621:(h,x,r)=>{var a=r(82109),l=r(66736),c=Math.cosh,p=Math.abs,f=Math.E;a({target:"Math",stat:!0,forced:!c||c(710)===1/0},{cosh:function(v){var m=l(p(v)-1)+1;return(m+1/(m*f*f))*(f/2)}})},60403:(h,x,r)=>{var a=r(82109),l=r(66736);a({target:"Math",stat:!0,forced:l!=Math.expm1},{expm1:l})},84755:(h,x,r)=>{r(82109)({target:"Math",stat:!0},{fround:r(26130)})},25438:(h,x,r)=>{var a=r(82109),l=Math.hypot,c=Math.abs,p=Math.sqrt;a({target:"Math",stat:!0,arity:2,forced:!!l&&l(1/0,NaN)!==1/0},{hypot:function(v,m){for(var P,w,y=0,T=0,I=arguments.length,C=0;T0?(w=P/C)*w:P;return C===1/0?1/0:C*p(y)}})},90332:(h,x,r)=>{var a=r(82109),l=r(47293),c=Math.imul;a({target:"Math",stat:!0,forced:l(function(){return-5!=c(4294967295,5)||2!=c.length})},{imul:function(g,v){var m=65535,y=+g,T=+v,I=m&y,C=m&T;return 0|I*C+((m&y>>>16)*C+I*(m&T>>>16)<<16>>>0)}})},40658:(h,x,r)=>{r(82109)({target:"Math",stat:!0},{log10:r(20403)})},40197:(h,x,r)=>{r(82109)({target:"Math",stat:!0},{log1p:r(26513)})},44914:(h,x,r)=>{var a=r(82109),l=Math.log,c=Math.LN2;a({target:"Math",stat:!0},{log2:function(f){return l(f)/c}})},52420:(h,x,r)=>{r(82109)({target:"Math",stat:!0},{sign:r(64310)})},60160:(h,x,r)=>{var a=r(82109),l=r(47293),c=r(66736),p=Math.abs,f=Math.exp,g=Math.E;a({target:"Math",stat:!0,forced:l(function(){return-2e-17!=Math.sinh(-2e-17)})},{sinh:function(y){var T=+y;return p(T)<1?(c(T)-c(-T))/2:(f(T-1)-f(-T-1))*(g/2)}})},60970:(h,x,r)=>{var a=r(82109),l=r(66736),c=Math.exp;a({target:"Math",stat:!0},{tanh:function(f){var g=+f,v=l(g),m=l(-g);return v==1/0?1:m==1/0?-1:(v-m)/(c(g)+c(-g))}})},10408:(h,x,r)=>{r(58003)(Math,"Math",!0)},73689:(h,x,r)=>{r(82109)({target:"Math",stat:!0},{trunc:r(74758)})},9653:(h,x,r)=>{"use strict";var a=r(82109),l=r(31913),c=r(19781),p=r(17854),f=r(40857),g=r(1702),v=r(54705),m=r(92597),y=r(79587),T=r(47976),I=r(52190),C=r(57593),P=r(47293),w=r(8006).f,A=r(31236).f,M=r(3070).f,V=r(50863),B=r(53111).trim,O="Number",W=p[O],F=f[O],$=W.prototype,L=p.TypeError,H=g("".slice),G=g("".charCodeAt),X=function(J){var ct=C(J,"number");return"bigint"==typeof ct?ct:q(ct)},q=function(J){var at,xt,ht,wt,Ht,bt,zt,Xt,ct=C(J,"number");if(I(ct))throw L("Cannot convert a Symbol value to a number");if("string"==typeof ct&&ct.length>2)if(ct=B(ct),43===(at=G(ct,0))||45===at){if(88===(xt=G(ct,2))||120===xt)return NaN}else if(48===at){switch(G(ct,1)){case 66:case 98:ht=2,wt=49;break;case 79:case 111:ht=8,wt=55;break;default:return+ct}for(bt=(Ht=H(ct,2)).length,zt=0;ztwt)return NaN;return parseInt(Ht,ht)}return+ct},Q=v(O,!W(" 0o1")||!W("0b1")||W("+0x1")),tt=function(J){return T($,J)&&P(function(){V(J)})},it=function(ct){var at=arguments.length<1?0:W(X(ct));return tt(this)?y(Object(at),this,it):at};it.prototype=$,Q&&!l&&($.constructor=it),a({global:!0,constructor:!0,wrap:!0,forced:Q},{Number:it});var st=function(J,ct){for(var ht,at=c?w(ct):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),xt=0;at.length>xt;xt++)m(ct,ht=at[xt])&&!m(J,ht)&&M(J,ht,A(ct,ht))};l&&F&&st(f[O],F),(Q||l)&&st(f[O],W)},93299:(h,x,r)=>{r(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},35192:(h,x,r)=>{r(82109)({target:"Number",stat:!0},{isFinite:r(77023)})},33161:(h,x,r)=>{r(82109)({target:"Number",stat:!0},{isInteger:r(55988)})},44048:(h,x,r)=>{r(82109)({target:"Number",stat:!0},{isNaN:function(c){return c!=c}})},78285:(h,x,r)=>{var a=r(82109),l=r(55988),c=Math.abs;a({target:"Number",stat:!0},{isSafeInteger:function(f){return l(f)&&c(f)<=9007199254740991}})},44363:(h,x,r)=>{r(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},55994:(h,x,r)=>{r(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},61874:(h,x,r)=>{var a=r(82109),l=r(2814);a({target:"Number",stat:!0,forced:Number.parseFloat!=l},{parseFloat:l})},9494:(h,x,r)=>{var a=r(82109),l=r(83009);a({target:"Number",stat:!0,forced:Number.parseInt!=l},{parseInt:l})},31354:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(19303),p=r(50863),f=r(38415),g=r(20403),v=r(47293),m=RangeError,y=String,T=isFinite,I=Math.abs,C=Math.floor,P=Math.pow,w=Math.round,A=l(1..toExponential),M=l(f),V=l("".slice),B="-6.9000e-11"===A(-69e-12,4)&&"1.25e+0"===A(1.255,2)&&"1.235e+4"===A(12345,3)&&"3e+1"===A(25,0),O=v(function(){A(1,1/0)})&&v(function(){A(1,-1/0)}),W=!v(function(){A(1/0,1/0)})&&!v(function(){A(NaN,1/0)});a({target:"Number",proto:!0,forced:!B||!O||!W},{toExponential:function(L){var H=p(this);if(void 0===L)return A(H);var G=c(L);if(!T(H))return String(H);if(G<0||G>20)throw m("Incorrect fraction digits");if(B)return A(H,G);var X="",q="",Q=0,tt="",it="";if(H<0&&(X="-",H=-H),0===H)Q=0,q=M("0",G+1);else{var st=g(H);Q=C(st);var J=0,ct=P(10,Q-G);2*H>=(2*(J=w(H/ct))+1)*ct&&(J+=1),J>=P(10,G+1)&&(J/=10,Q+=1),q=y(J)}return 0!==G&&(q=V(q,0,1)+"."+V(q,1)),0===Q?(tt="+",it="0"):(tt=Q>0?"+":"-",it=y(I(Q))),X+(q+"e")+tt+it}})},56977:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(19303),p=r(50863),f=r(38415),g=r(47293),v=RangeError,m=String,y=Math.floor,T=l(f),I=l("".slice),C=l(1..toFixed),P=function(O,W,F){return 0===W?F:W%2==1?P(O,W-1,F*O):P(O*O,W/2,F)},A=function(O,W,F){for(var $=-1,L=F;++$<6;)O[$]=(L+=W*O[$])%1e7,L=y(L/1e7)},M=function(O,W){for(var F=6,$=0;--F>=0;)O[F]=y(($+=O[F])/W),$=$%W*1e7},V=function(O){for(var W=6,F="";--W>=0;)if(""!==F||0===W||0!==O[W]){var $=m(O[W]);F=""===F?$:F+T("0",7-$.length)+$}return F};a({target:"Number",proto:!0,forced:g(function(){return"0.000"!==C(8e-5,3)||"1"!==C(.9,0)||"1.25"!==C(1.255,2)||"1000000000000000128"!==C(0xde0b6b3a7640080,0)})||!g(function(){C({})})},{toFixed:function(W){var X,q,Q,tt,F=p(this),$=c(W),L=[0,0,0,0,0,0],H="",G="0";if($<0||$>20)throw v("Incorrect fraction digits");if(F!=F)return"NaN";if(F<=-1e21||F>=1e21)return m(F);if(F<0&&(H="-",F=-F),F>1e-21)if(X=function(O){for(var W=0,F=O;F>=4096;)W+=12,F/=4096;for(;F>=2;)W+=1,F/=2;return W}(F*P(2,69,1))-69,q=X<0?F*P(2,-X,1):F/P(2,X,1),q*=4503599627370496,(X=52-X)>0){for(A(L,0,q),Q=$;Q>=7;)A(L,1e7,0),Q-=7;for(A(L,P(10,Q,1),0),Q=X-1;Q>=23;)M(L,1<<23),Q-=23;M(L,1<0?H+((tt=G.length)<=$?"0."+T("0",$-tt)+G:I(G,0,tt-$)+"."+I(G,tt-$)):H+G}})},55147:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(47293),p=r(50863),f=l(1..toPrecision);a({target:"Number",proto:!0,forced:c(function(){return"1"!==f(1,void 0)})||!c(function(){f({})})},{toPrecision:function(m){return void 0===m?f(p(this)):f(p(this),m)}})},19601:(h,x,r)=>{var a=r(82109),l=r(21574);a({target:"Object",stat:!0,arity:2,forced:Object.assign!==l},{assign:l})},78011:(h,x,r)=>{r(82109)({target:"Object",stat:!0,sham:!r(19781)},{create:r(70030)})},59595:(h,x,r)=>{"use strict";var a=r(82109),l=r(19781),c=r(69026),p=r(19662),f=r(47908),g=r(3070);l&&a({target:"Object",proto:!0,forced:c},{__defineGetter__:function(m,y){g.f(f(this),m,{get:p(y),enumerable:!0,configurable:!0})}})},33321:(h,x,r)=>{var a=r(82109),l=r(19781),c=r(36048).f;a({target:"Object",stat:!0,forced:Object.defineProperties!==c,sham:!l},{defineProperties:c})},69070:(h,x,r)=>{var a=r(82109),l=r(19781),c=r(3070).f;a({target:"Object",stat:!0,forced:Object.defineProperty!==c,sham:!l},{defineProperty:c})},35500:(h,x,r)=>{"use strict";var a=r(82109),l=r(19781),c=r(69026),p=r(19662),f=r(47908),g=r(3070);l&&a({target:"Object",proto:!0,forced:c},{__defineSetter__:function(m,y){g.f(f(this),m,{set:p(y),enumerable:!0,configurable:!0})}})},69720:(h,x,r)=>{var a=r(82109),l=r(44699).entries;a({target:"Object",stat:!0},{entries:function(p){return l(p)}})},43371:(h,x,r)=>{var a=r(82109),l=r(76677),c=r(47293),p=r(70111),f=r(62423).onFreeze,g=Object.freeze;a({target:"Object",stat:!0,forced:c(function(){g(1)}),sham:!l},{freeze:function(y){return g&&p(y)?g(f(y)):y}})},38559:(h,x,r)=>{var a=r(82109),l=r(20408),c=r(86135);a({target:"Object",stat:!0},{fromEntries:function(f){var g={};return l(f,function(v,m){c(g,v,m)},{AS_ENTRIES:!0}),g}})},38880:(h,x,r)=>{var a=r(82109),l=r(47293),c=r(45656),p=r(31236).f,f=r(19781),g=l(function(){p(1)});a({target:"Object",stat:!0,forced:!f||g,sham:!f},{getOwnPropertyDescriptor:function(y,T){return p(c(y),T)}})},49337:(h,x,r)=>{var a=r(82109),l=r(19781),c=r(53887),p=r(45656),f=r(31236),g=r(86135);a({target:"Object",stat:!0,sham:!l},{getOwnPropertyDescriptors:function(m){for(var w,A,y=p(m),T=f.f,I=c(y),C={},P=0;I.length>P;)void 0!==(A=T(y,w=I[P++]))&&g(C,w,A);return C}})},36210:(h,x,r)=>{var a=r(82109),l=r(47293),c=r(1156).f;a({target:"Object",stat:!0,forced:l(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:c})},29660:(h,x,r)=>{var a=r(82109),l=r(36293),c=r(47293),p=r(25181),f=r(47908);a({target:"Object",stat:!0,forced:!l||c(function(){p.f(1)})},{getOwnPropertySymbols:function(m){var y=p.f;return y?y(f(m)):[]}})},30489:(h,x,r)=>{var a=r(82109),l=r(47293),c=r(47908),p=r(79518),f=r(49920);a({target:"Object",stat:!0,forced:l(function(){p(1)}),sham:!f},{getPrototypeOf:function(m){return p(c(m))}})},46314:(h,x,r)=>{r(82109)({target:"Object",stat:!0},{hasOwn:r(92597)})},41825:(h,x,r)=>{var a=r(82109),l=r(52050);a({target:"Object",stat:!0,forced:Object.isExtensible!==l},{isExtensible:l})},98410:(h,x,r)=>{var a=r(82109),l=r(47293),c=r(70111),p=r(84326),f=r(7556),g=Object.isFrozen;a({target:"Object",stat:!0,forced:l(function(){g(1)})||f},{isFrozen:function(y){return!(c(y)&&(!f||"ArrayBuffer"!=p(y)))||!!g&&g(y)}})},72200:(h,x,r)=>{var a=r(82109),l=r(47293),c=r(70111),p=r(84326),f=r(7556),g=Object.isSealed;a({target:"Object",stat:!0,forced:l(function(){g(1)})||f},{isSealed:function(y){return!(c(y)&&(!f||"ArrayBuffer"!=p(y)))||!!g&&g(y)}})},43304:(h,x,r)=>{r(82109)({target:"Object",stat:!0},{is:r(81150)})},47941:(h,x,r)=>{var a=r(82109),l=r(47908),c=r(81956);a({target:"Object",stat:!0,forced:r(47293)(function(){c(1)})},{keys:function(v){return c(l(v))}})},94869:(h,x,r)=>{"use strict";var a=r(82109),l=r(19781),c=r(69026),p=r(47908),f=r(34948),g=r(79518),v=r(31236).f;l&&a({target:"Object",proto:!0,forced:c},{__lookupGetter__:function(y){var C,T=p(this),I=f(y);do{if(C=v(T,I))return C.get}while(T=g(T))}})},33952:(h,x,r)=>{"use strict";var a=r(82109),l=r(19781),c=r(69026),p=r(47908),f=r(34948),g=r(79518),v=r(31236).f;l&&a({target:"Object",proto:!0,forced:c},{__lookupSetter__:function(y){var C,T=p(this),I=f(y);do{if(C=v(T,I))return C.set}while(T=g(T))}})},57227:(h,x,r)=>{var a=r(82109),l=r(70111),c=r(62423).onFreeze,p=r(76677),f=r(47293),g=Object.preventExtensions;a({target:"Object",stat:!0,forced:f(function(){g(1)}),sham:!p},{preventExtensions:function(y){return g&&l(y)?g(c(y)):y}})},67987:(h,x,r)=>{"use strict";var a=r(19781),l=r(47045),c=r(70111),p=r(47908),f=r(84488),g=Object.getPrototypeOf,v=Object.setPrototypeOf,m=Object.prototype,y="__proto__";if(a&&g&&v&&!(y in m))try{l(m,y,{configurable:!0,get:function(){return g(p(this))},set:function(I){var C=f(this);!c(I)&&null!==I||!c(C)||v(C,I)}})}catch{}},60514:(h,x,r)=>{var a=r(82109),l=r(70111),c=r(62423).onFreeze,p=r(76677),f=r(47293),g=Object.seal;a({target:"Object",stat:!0,forced:f(function(){g(1)}),sham:!p},{seal:function(y){return g&&l(y)?g(c(y)):y}})},68304:(h,x,r)=>{r(82109)({target:"Object",stat:!0},{setPrototypeOf:r(27674)})},41539:(h,x,r)=>{var a=r(51694),l=r(98052),c=r(90288);a||l(Object.prototype,"toString",c,{unsafe:!0})},26833:(h,x,r)=>{var a=r(82109),l=r(44699).values;a({target:"Object",stat:!0},{values:function(p){return l(p)}})},54678:(h,x,r)=>{var a=r(82109),l=r(2814);a({global:!0,forced:parseFloat!=l},{parseFloat:l})},91058:(h,x,r)=>{var a=r(82109),l=r(83009);a({global:!0,forced:parseInt!=l},{parseInt:l})},36535:(h,x,r)=>{var a=r(82109),l=r(22104),c=r(19662),p=r(19670);a({target:"Reflect",stat:!0,forced:!r(47293)(function(){Reflect.apply(function(){})})},{apply:function(m,y,T){return l(c(m),y,p(T))}})},12419:(h,x,r)=>{var a=r(82109),l=r(35005),c=r(22104),p=r(27065),f=r(39483),g=r(19670),v=r(70111),m=r(70030),y=r(47293),T=l("Reflect","construct"),I=Object.prototype,C=[].push,P=y(function(){function M(){}return!(T(function(){},[],M)instanceof M)}),w=!y(function(){T(function(){})}),A=P||w;a({target:"Reflect",stat:!0,forced:A,sham:A},{construct:function(V,B){f(V),g(B);var O=arguments.length<3?V:f(arguments[2]);if(w&&!P)return T(V,B,O);if(V==O){switch(B.length){case 0:return new V;case 1:return new V(B[0]);case 2:return new V(B[0],B[1]);case 3:return new V(B[0],B[1],B[2]);case 4:return new V(B[0],B[1],B[2],B[3])}var W=[null];return c(C,W,B),new(c(p,V,W))}var F=O.prototype,$=m(v(F)?F:I),L=c(V,$,B);return v(L)?L:$}})},69596:(h,x,r)=>{var a=r(82109),l=r(19781),c=r(19670),p=r(34948),f=r(3070);a({target:"Reflect",stat:!0,forced:r(47293)(function(){Reflect.defineProperty(f.f({},1,{value:1}),1,{value:2})}),sham:!l},{defineProperty:function(y,T,I){c(y);var C=p(T);c(I);try{return f.f(y,C,I),!0}catch{return!1}}})},52586:(h,x,r)=>{var a=r(82109),l=r(19670),c=r(31236).f;a({target:"Reflect",stat:!0},{deleteProperty:function(f,g){var v=c(l(f),g);return!(v&&!v.configurable)&&delete f[g]}})},95683:(h,x,r)=>{var a=r(82109),l=r(19781),c=r(19670),p=r(31236);a({target:"Reflect",stat:!0,sham:!l},{getOwnPropertyDescriptor:function(g,v){return p.f(c(g),v)}})},39361:(h,x,r)=>{var a=r(82109),l=r(19670),c=r(79518);a({target:"Reflect",stat:!0,sham:!r(49920)},{getPrototypeOf:function(g){return c(l(g))}})},74819:(h,x,r)=>{var a=r(82109),l=r(46916),c=r(70111),p=r(19670),f=r(45032),g=r(31236),v=r(79518);a({target:"Reflect",stat:!0},{get:function m(y,T){var C,P,I=arguments.length<3?y:arguments[2];return p(y)===I?y[T]:(C=g.f(y,T))?f(C)?C.value:void 0===C.get?void 0:l(C.get,I):c(P=v(y))?m(P,T,I):void 0}})},51037:(h,x,r)=>{r(82109)({target:"Reflect",stat:!0},{has:function(c,p){return p in c}})},5898:(h,x,r)=>{var a=r(82109),l=r(19670),c=r(52050);a({target:"Reflect",stat:!0},{isExtensible:function(f){return l(f),c(f)}})},67556:(h,x,r)=>{r(82109)({target:"Reflect",stat:!0},{ownKeys:r(53887)})},14361:(h,x,r)=>{var a=r(82109),l=r(35005),c=r(19670);a({target:"Reflect",stat:!0,sham:!r(76677)},{preventExtensions:function(g){c(g);try{var v=l("Object","preventExtensions");return v&&v(g),!0}catch{return!1}}})},39532:(h,x,r)=>{var a=r(82109),l=r(19670),c=r(96077),p=r(27674);p&&a({target:"Reflect",stat:!0},{setPrototypeOf:function(g,v){l(g),c(v);try{return p(g,v),!0}catch{return!1}}})},83593:(h,x,r)=>{var a=r(82109),l=r(46916),c=r(19670),p=r(70111),f=r(45032),g=r(47293),v=r(3070),m=r(31236),y=r(79518),T=r(79114);a({target:"Reflect",stat:!0,forced:g(function(){var P=function(){},w=v.f(new P,"a",{configurable:!0});return!1!==Reflect.set(P.prototype,"a",1,w)})},{set:function I(P,w,A){var B,O,W,M=arguments.length<4?P:arguments[3],V=m.f(c(P),w);if(!V){if(p(O=y(P)))return I(O,w,A,M);V=T(0)}if(f(V)){if(!1===V.writable||!p(M))return!1;if(B=m.f(M,w)){if(B.get||B.set||!1===B.writable)return!1;B.value=A,v.f(M,w,B)}else v.f(M,w,T(0,A))}else{if(void 0===(W=V.set))return!1;l(W,M,A)}return!0}})},81299:(h,x,r)=>{var a=r(82109),l=r(17854),c=r(58003);a({global:!0},{Reflect:{}}),c(l.Reflect,"Reflect",!0)},24603:(h,x,r)=>{var a=r(19781),l=r(17854),c=r(1702),p=r(54705),f=r(79587),g=r(68880),v=r(8006).f,m=r(47976),y=r(47850),T=r(41340),I=r(34706),C=r(52999),P=r(2626),w=r(98052),A=r(47293),M=r(92597),V=r(29909).enforce,B=r(96340),O=r(5112),W=r(9441),F=r(38173),$=O("match"),L=l.RegExp,H=L.prototype,G=l.SyntaxError,X=c(H.exec),q=c("".charAt),Q=c("".replace),tt=c("".indexOf),it=c("".slice),st=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,J=/a/g,ct=/a/g,at=new L(J)!==J,xt=C.MISSED_STICKY,ht=C.UNSUPPORTED_Y;if(p("RegExp",a&&(!at||xt||W||F||A(function(){return ct[$]=!1,L(J)!=J||L(ct)==ct||"/a/i"!=L(J,"i")})))){for(var zt=function(ee,_t){var Ke,ve,he,Ln,fn,ln,Se=m(H,this),Fe=y(ee),ce=void 0===_t,Be=[],Oe=ee;if(!Se&&Fe&&ce&&ee.constructor===zt)return ee;if((Fe||m(H,ee))&&(ee=ee.source,ce&&(_t=I(Oe))),ee=void 0===ee?"":T(ee),_t=void 0===_t?"":T(_t),Oe=ee,W&&"dotAll"in J&&(ve=!!_t&&tt(_t,"s")>-1)&&(_t=Q(_t,/s/g,"")),Ke=_t,xt&&"sticky"in J&&(he=!!_t&&tt(_t,"y")>-1)&&ht&&(_t=Q(_t,/y/g,"")),F&&(Ln=function(de){for(var he,ee=de.length,_t=0,Se="",Fe=[],ce={},Be=!1,Oe=!1,Ke=0,ve="";_t<=ee;_t++){if("\\"===(he=q(de,_t)))he+=q(de,++_t);else if("]"===he)Be=!1;else if(!Be)switch(!0){case"["===he:Be=!0;break;case"("===he:X(st,it(de,_t+1))&&(_t+=2,Oe=!0),Se+=he,Ke++;continue;case">"===he&&Oe:if(""===ve||M(ce,ve))throw new G("Invalid capture group name");ce[ve]=!0,Fe[Fe.length]=[ve,Ke],Oe=!1,ve="";continue}Oe?ve+=he:Se+=he}return[Se,Fe]}(ee),ee=Ln[0],Be=Ln[1]),fn=f(L(ee,_t),Se?this:H,zt),(ve||he||Be.length)&&(ln=V(fn),ve&&(ln.dotAll=!0,ln.raw=zt(function(de){for(var ce,ee=de.length,_t=0,Se="",Fe=!1;_t<=ee;_t++)"\\"!==(ce=q(de,_t))?Fe||"."!==ce?("["===ce?Fe=!0:"]"===ce&&(Fe=!1),Se+=ce):Se+="[\\s\\S]":Se+=ce+q(de,++_t);return Se}(ee),Ke)),he&&(ln.sticky=!0),Be.length&&(ln.groups=Be)),ee!==Oe)try{g(fn,"source",""===Oe?"(?:)":Oe)}catch{}return fn},Xt=v(L),Qt=0;Xt.length>Qt;)P(zt,L,Xt[Qt++]);H.constructor=zt,zt.prototype=H,w(l,"RegExp",zt,{constructor:!0})}B("RegExp")},28450:(h,x,r)=>{var a=r(19781),l=r(9441),c=r(84326),p=r(47045),f=r(29909).get,g=RegExp.prototype,v=TypeError;a&&l&&p(g,"dotAll",{configurable:!0,get:function(){if(this!==g){if("RegExp"===c(this))return!!f(this).dotAll;throw v("Incompatible receiver, RegExp required")}}})},74916:(h,x,r)=>{"use strict";var a=r(82109),l=r(22261);a({target:"RegExp",proto:!0,forced:/./.exec!==l},{exec:l})},92087:(h,x,r)=>{var a=r(17854),l=r(19781),c=r(47045),p=r(67066),f=r(47293),g=a.RegExp,v=g.prototype;l&&f(function(){var y=!0;try{g(".","d")}catch{y=!1}var T={},I="",C=y?"dgimsy":"gimsy",P=function(V,B){Object.defineProperty(T,V,{get:function(){return I+=B,!0}})},w={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var A in y&&(w.hasIndices="d"),w)P(A,w[A]);return Object.getOwnPropertyDescriptor(v,"flags").get.call(T)!==C||I!==C})&&c(v,"flags",{configurable:!0,get:p})},88386:(h,x,r)=>{var a=r(19781),l=r(52999).MISSED_STICKY,c=r(84326),p=r(47045),f=r(29909).get,g=RegExp.prototype,v=TypeError;a&&l&&p(g,"sticky",{configurable:!0,get:function(){if(this!==g){if("RegExp"===c(this))return!!f(this).sticky;throw v("Incompatible receiver, RegExp required")}}})},77601:(h,x,r)=>{"use strict";r(74916);var m,y,a=r(82109),l=r(46916),c=r(60614),p=r(19670),f=r(41340),g=(m=!1,(y=/[ac]/).exec=function(){return m=!0,/./.exec.apply(this,arguments)},!0===y.test("abc")&&m),v=/./.test;a({target:"RegExp",proto:!0,forced:!g},{test:function(m){var y=p(this),T=f(m),I=y.exec;if(!c(I))return l(v,y,T);var C=l(I,y,T);return null!==C&&(p(C),!0)}})},39714:(h,x,r)=>{"use strict";var a=r(76530).PROPER,l=r(98052),c=r(19670),p=r(41340),f=r(47293),g=r(34706),v="toString",y=RegExp.prototype[v];(f(function(){return"/a/b"!=y.call({source:"a",flags:"b"})})||a&&y.name!=v)&&l(RegExp.prototype,v,function(){var P=c(this);return"/"+p(P.source)+"/"+p(g(P))},{unsafe:!0})},37227:(h,x,r)=>{"use strict";r(77710)("Set",function(c){return function(){return c(this,arguments.length?arguments[0]:void 0)}},r(95631))},70189:(h,x,r)=>{r(37227)},15218:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("anchor")},{anchor:function(f){return l(this,"a","name",f)}})},24506:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(84488),p=r(19303),f=r(41340),g=r(47293),v=l("".charAt);a({target:"String",proto:!0,forced:g(function(){return"\ud842"!=="\u{20bb7}".at(-2)})},{at:function(T){var I=f(c(this)),C=I.length,P=p(T),w=P>=0?P:C+P;return w<0||w>=C?void 0:v(I,w)}})},74475:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("big")},{big:function(){return l(this,"big","","")}})},57929:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("blink")},{blink:function(){return l(this,"blink","","")}})},50915:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("bold")},{bold:function(){return l(this,"b","","")}})},79841:(h,x,r)=>{"use strict";var a=r(82109),l=r(28710).codeAt;a({target:"String",proto:!0},{codePointAt:function(p){return l(this,p)}})},27852:(h,x,r)=>{"use strict";var A,a=r(82109),l=r(21470),c=r(31236).f,p=r(17466),f=r(41340),g=r(3929),v=r(84488),m=r(84964),y=r(31913),T=l("".endsWith),I=l("".slice),C=Math.min,P=m("endsWith");a({target:"String",proto:!0,forced:!(!y&&!P&&(A=c(String.prototype,"endsWith"),A&&!A.writable)||P)},{endsWith:function(M){var V=f(v(this));g(M);var B=arguments.length>1?arguments[1]:void 0,O=V.length,W=void 0===B?O:C(p(B),O),F=f(M);return T?T(V,F,W):I(V,W-F.length,W)===F}})},29253:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("fixed")},{fixed:function(){return l(this,"tt","","")}})},42125:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("fontcolor")},{fontcolor:function(f){return l(this,"font","color",f)}})},78830:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("fontsize")},{fontsize:function(f){return l(this,"font","size",f)}})},94953:(h,x,r)=>{var a=r(82109),l=r(1702),c=r(51400),p=RangeError,f=String.fromCharCode,g=String.fromCodePoint,v=l([].join);a({target:"String",stat:!0,arity:1,forced:!!g&&1!=g.length},{fromCodePoint:function(T){for(var w,I=[],C=arguments.length,P=0;C>P;){if(w=+arguments[P++],c(w,1114111)!==w)throw p(w+" is not a valid code point");I[P]=w<65536?f(w):f(55296+((w-=65536)>>10),w%1024+56320)}return v(I,"")}})},32023:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(3929),p=r(84488),f=r(41340),g=r(84964),v=l("".indexOf);a({target:"String",proto:!0,forced:!g("includes")},{includes:function(y){return!!~v(f(p(this)),f(c(y)),arguments.length>1?arguments[1]:void 0)}})},58734:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("italics")},{italics:function(){return l(this,"i","","")}})},78783:(h,x,r)=>{"use strict";var a=r(28710).charAt,l=r(41340),c=r(29909),p=r(51656),f=r(76178),g="String Iterator",v=c.set,m=c.getterFor(g);p(String,"String",function(y){v(this,{type:g,string:l(y),index:0})},function(){var P,T=m(this),I=T.string,C=T.index;return C>=I.length?f(void 0,!0):(P=a(I,C),T.index+=P.length,f(P,!1))})},29254:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("link")},{link:function(f){return l(this,"a","href",f)}})},76373:(h,x,r)=>{"use strict";var a=r(82109),l=r(46916),c=r(21470),p=r(63061),f=r(76178),g=r(84488),v=r(17466),m=r(41340),y=r(19670),T=r(68554),I=r(84326),C=r(47850),P=r(34706),w=r(58173),A=r(98052),M=r(47293),V=r(5112),B=r(36707),O=r(31530),W=r(97651),F=r(29909),$=r(31913),L=V("matchAll"),H="RegExp String",G=H+" Iterator",X=F.set,q=F.getterFor(G),Q=RegExp.prototype,tt=TypeError,it=c("".indexOf),st=c("".matchAll),J=!!st&&!M(function(){st("a",/./)}),ct=p(function(ht,wt,Ht,bt){X(this,{type:G,regexp:ht,string:wt,global:Ht,unicode:bt,done:!1})},H,function(){var ht=q(this);if(ht.done)return f(void 0,!0);var wt=ht.regexp,Ht=ht.string,bt=W(wt,Ht);return null===bt?(ht.done=!0,f(void 0,!0)):ht.global?(""===m(bt[0])&&(wt.lastIndex=O(Ht,v(wt.lastIndex),ht.unicode)),f(bt,!1)):(ht.done=!0,f(bt,!1))}),at=function(xt){var zt,Xt,Qt,ht=y(this),wt=m(xt),Ht=B(ht,RegExp),bt=m(P(ht));return zt=new Ht(Ht===RegExp?ht.source:ht,bt),Xt=!!~it(bt,"g"),Qt=!!~it(bt,"u"),zt.lastIndex=v(ht.lastIndex),new ct(zt,wt,Xt,Qt)};a({target:"String",proto:!0,forced:J},{matchAll:function(ht){var Ht,bt,zt,Xt,wt=g(this);if(T(ht)){if(J)return st(wt,ht)}else{if(C(ht)&&(Ht=m(g(P(ht))),!~it(Ht,"g")))throw tt("`.matchAll` does not allow non-global regexes");if(J)return st(wt,ht);if(void 0===(zt=w(ht,L))&&$&&"RegExp"==I(ht)&&(zt=at),zt)return l(zt,ht,wt)}return bt=m(wt),Xt=new RegExp(ht,"g"),$?l(at,Xt,bt):Xt[L](bt)}}),$||L in Q||A(Q,L,at)},4723:(h,x,r)=>{"use strict";var a=r(46916),l=r(27007),c=r(19670),p=r(68554),f=r(17466),g=r(41340),v=r(84488),m=r(58173),y=r(31530),T=r(97651);l("match",function(I,C,P){return[function(A){var M=v(this),V=p(A)?void 0:m(A,I);return V?a(V,A,M):new RegExp(A)[I](g(M))},function(w){var A=c(this),M=g(w),V=P(C,A,M);if(V.done)return V.value;if(!A.global)return T(A,M);var B=A.unicode;A.lastIndex=0;for(var F,O=[],W=0;null!==(F=T(A,M));){var $=g(F[0]);O[W]=$,""===$&&(A.lastIndex=y(M,f(A.lastIndex),B)),W++}return 0===W?null:O}]})},66528:(h,x,r)=>{"use strict";var a=r(82109),l=r(76650).end;a({target:"String",proto:!0,forced:r(54986)},{padEnd:function(f){return l(this,f,arguments.length>1?arguments[1]:void 0)}})},83112:(h,x,r)=>{"use strict";var a=r(82109),l=r(76650).start;a({target:"String",proto:!0,forced:r(54986)},{padStart:function(f){return l(this,f,arguments.length>1?arguments[1]:void 0)}})},38992:(h,x,r)=>{var a=r(82109),l=r(1702),c=r(45656),p=r(47908),f=r(41340),g=r(26244),v=l([].push),m=l([].join);a({target:"String",stat:!0},{raw:function(T){for(var I=c(p(T).raw),C=g(I),P=arguments.length,w=[],A=0;C>A;){if(v(w,f(I[A++])),A===C)return m(w,"");A{r(82109)({target:"String",proto:!0},{repeat:r(38415)})},68757:(h,x,r)=>{"use strict";var a=r(82109),l=r(46916),c=r(1702),p=r(84488),f=r(60614),g=r(68554),v=r(47850),m=r(41340),y=r(58173),T=r(34706),I=r(10647),C=r(5112),P=r(31913),w=C("replace"),A=TypeError,M=c("".indexOf),V=c("".replace),B=c("".slice),O=Math.max,W=function(F,$,L){return L>F.length?-1:""===$?L:M(F,$,L)};a({target:"String",proto:!0},{replaceAll:function($,L){var G,X,q,Q,tt,it,st,J,ct,H=p(this),at=0,xt=0,ht="";if(!g($)){if((G=v($))&&(X=m(p(T($))),!~M(X,"g")))throw A("`.replaceAll` does not allow non-global regexes");if(q=y($,w))return l(q,$,H,L);if(P&&G)return V(m(H),$,L)}for(Q=m(H),tt=m($),(it=f(L))||(L=m(L)),J=O(1,st=tt.length),at=W(Q,tt,0);-1!==at;)ct=it?m(L(tt,at,Q)):I(tt,Q,at,[],void 0,L),ht+=B(Q,xt,at)+ct,xt=at+st,at=W(Q,tt,at+J);return xt{"use strict";var a=r(22104),l=r(46916),c=r(1702),p=r(27007),f=r(47293),g=r(19670),v=r(60614),m=r(68554),y=r(19303),T=r(17466),I=r(41340),C=r(84488),P=r(31530),w=r(58173),A=r(10647),M=r(97651),B=r(5112)("replace"),O=Math.max,W=Math.min,F=c([].concat),$=c([].push),L=c("".indexOf),H=c("".slice),G=function(tt){return void 0===tt?tt:String(tt)},X="$0"==="a".replace(/./,"$0"),q=!!/./[B]&&""===/./[B]("a","$0");p("replace",function(tt,it,st){var J=q?"$":"$0";return[function(at,xt){var ht=C(this),wt=m(at)?void 0:w(at,B);return wt?l(wt,at,ht,xt):l(it,I(ht),at,xt)},function(ct,at){var xt=g(this),ht=I(ct);if("string"==typeof at&&-1===L(at,J)&&-1===L(at,"$<")){var wt=st(it,xt,ht,at);if(wt.done)return wt.value}var Ht=v(at);Ht||(at=I(at));var bt=xt.global;if(bt){var zt=xt.unicode;xt.lastIndex=0}for(var Xt=[];;){var Qt=M(xt,ht);if(null===Qt||($(Xt,Qt),!bt))break;""===I(Qt[0])&&(xt.lastIndex=P(ht,T(xt.lastIndex),zt))}for(var ee="",_t=0,Se=0;Se=_t&&(ee+=H(ht,_t,ce)+he,_t=ce+Fe.length)}return ee+H(ht,_t)}]},!!f(function(){var tt=/./;return tt.exec=function(){var it=[];return it.groups={a:"7"},it},"7"!=="".replace(tt,"$")})||!X||q)},64765:(h,x,r)=>{"use strict";var a=r(46916),l=r(27007),c=r(19670),p=r(68554),f=r(84488),g=r(81150),v=r(41340),m=r(58173),y=r(97651);l("search",function(T,I,C){return[function(w){var A=f(this),M=p(w)?void 0:m(w,T);return M?a(M,w,A):new RegExp(w)[T](v(A))},function(P){var w=c(this),A=v(P),M=C(I,w,A);if(M.done)return M.value;var V=w.lastIndex;g(V,0)||(w.lastIndex=0);var B=y(w,A);return g(w.lastIndex,V)||(w.lastIndex=V),null===B?-1:B.index}]})},37268:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("small")},{small:function(){return l(this,"small","","")}})},23123:(h,x,r)=>{"use strict";var a=r(22104),l=r(46916),c=r(1702),p=r(27007),f=r(19670),g=r(68554),v=r(47850),m=r(84488),y=r(36707),T=r(31530),I=r(17466),C=r(41340),P=r(58173),w=r(41589),A=r(97651),M=r(22261),V=r(52999),B=r(47293),O=V.UNSUPPORTED_Y,W=4294967295,F=Math.min,$=[].push,L=c(/./.exec),H=c($),G=c("".slice);p("split",function(q,Q,tt){var it;return it="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(st,J){var ct=C(m(this)),at=void 0===J?W:J>>>0;if(0===at)return[];if(void 0===st)return[ct];if(!v(st))return l(Q,ct,st,at);for(var bt,zt,Xt,xt=[],wt=0,Ht=new RegExp(st.source,(st.ignoreCase?"i":"")+(st.multiline?"m":"")+(st.unicode?"u":"")+(st.sticky?"y":"")+"g");(bt=l(M,Ht,ct))&&!((zt=Ht.lastIndex)>wt&&(H(xt,G(ct,wt,bt.index)),bt.length>1&&bt.index=at));)Ht.lastIndex===bt.index&&Ht.lastIndex++;return wt===ct.length?(Xt||!L(Ht,""))&&H(xt,""):H(xt,G(ct,wt)),xt.length>at?w(xt,0,at):xt}:"0".split(void 0,0).length?function(st,J){return void 0===st&&0===J?[]:l(Q,this,st,J)}:Q,[function(J,ct){var at=m(this),xt=g(J)?void 0:P(J,q);return xt?l(xt,J,at,ct):l(it,C(at),J,ct)},function(st,J){var ct=f(this),at=C(st),xt=tt(it,ct,at,J,it!==Q);if(xt.done)return xt.value;var ht=y(ct,RegExp),wt=ct.unicode,bt=new ht(O?"^(?:"+ct.source+")":ct,(ct.ignoreCase?"i":"")+(ct.multiline?"m":"")+(ct.unicode?"u":"")+(O?"g":"y")),zt=void 0===J?W:J>>>0;if(0===zt)return[];if(0===at.length)return null===A(bt,at)?[at]:[];for(var Xt=0,Qt=0,de=[];Qt{"use strict";var A,a=r(82109),l=r(21470),c=r(31236).f,p=r(17466),f=r(41340),g=r(3929),v=r(84488),m=r(84964),y=r(31913),T=l("".startsWith),I=l("".slice),C=Math.min,P=m("startsWith");a({target:"String",proto:!0,forced:!(!y&&!P&&(A=c(String.prototype,"startsWith"),A&&!A.writable)||P)},{startsWith:function(M){var V=f(v(this));g(M);var B=p(C(arguments.length>1?arguments[1]:void 0,V.length)),O=f(M);return T?T(V,O,B):I(V,B,B+O.length)===O}})},7397:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("strike")},{strike:function(){return l(this,"strike","","")}})},60086:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("sub")},{sub:function(){return l(this,"sub","","")}})},83650:(h,x,r)=>{"use strict";var a=r(82109),l=r(1702),c=r(84488),p=r(19303),f=r(41340),g=l("".slice),v=Math.max,m=Math.min;a({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(I,C){var M,V,P=f(c(this)),w=P.length,A=p(I);return A===1/0&&(A=0),A<0&&(A=v(w+A,0)),(M=void 0===C?w:p(C))<=0||M===1/0||A>=(V=m(A+M,w))?"":g(P,A,V)}})},80623:(h,x,r)=>{"use strict";var a=r(82109),l=r(14230);a({target:"String",proto:!0,forced:r(43429)("sup")},{sup:function(){return l(this,"sup","","")}})},48702:(h,x,r)=>{r(83462);var a=r(82109),l=r(10365);a({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==l},{trimEnd:l})},99967:(h,x,r)=>{var a=r(82109),l=r(33217);a({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==l},{trimLeft:l})},83462:(h,x,r)=>{var a=r(82109),l=r(10365);a({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==l},{trimRight:l})},55674:(h,x,r)=>{r(99967);var a=r(82109),l=r(33217);a({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==l},{trimStart:l})},73210:(h,x,r)=>{"use strict";var a=r(82109),l=r(53111).trim;a({target:"String",proto:!0,forced:r(76091)("trim")},{trim:function(){return l(this)}})},72443:(h,x,r)=>{r(26800)("asyncIterator")},4032:(h,x,r)=>{"use strict";var a=r(82109),l=r(17854),c=r(46916),p=r(1702),f=r(31913),g=r(19781),v=r(36293),m=r(47293),y=r(92597),T=r(47976),I=r(19670),C=r(45656),P=r(34948),w=r(41340),A=r(79114),M=r(70030),V=r(81956),B=r(8006),O=r(1156),W=r(25181),F=r(31236),$=r(3070),L=r(36048),H=r(55296),G=r(98052),X=r(72309),q=r(6200),Q=r(3501),tt=r(69711),it=r(5112),st=r(6061),J=r(26800),ct=r(56532),at=r(58003),xt=r(29909),ht=r(42092).forEach,wt=q("hidden"),Ht="Symbol",bt="prototype",zt=xt.set,Xt=xt.getterFor(Ht),Qt=Object[bt],de=l.Symbol,ee=de&&de[bt],_t=l.TypeError,Se=l.QObject,Fe=F.f,ce=$.f,Be=O.f,Oe=H.f,Ke=p([].push),ve=X("symbols"),he=X("op-symbols"),Ln=X("wks"),fn=!Se||!Se[bt]||!Se[bt].findChild,ln=g&&m(function(){return 7!=M(ce({},"a",{get:function(){return ce(this,"a",{value:7}).a}})).a})?function(pt,dt,ft){var It=Fe(Qt,dt);It&&delete Qt[dt],ce(pt,dt,ft),It&&pt!==Qt&&ce(Qt,dt,It)}:ce,R=function(pt,dt){var ft=ve[pt]=M(ee);return zt(ft,{type:Ht,tag:pt,description:dt}),g||(ft.description=dt),ft},z=function(dt,ft,It){dt===Qt&&z(he,ft,It),I(dt);var Pt=P(ft);return I(It),y(ve,Pt)?(It.enumerable?(y(dt,wt)&&dt[wt][Pt]&&(dt[wt][Pt]=!1),It=M(It,{enumerable:A(0,!1)})):(y(dt,wt)||ce(dt,wt,A(1,{})),dt[wt][Pt]=!0),ln(dt,Pt,It)):ce(dt,Pt,It)},nt=function(dt,ft){I(dt);var It=C(ft),Pt=V(It).concat(Rt(It));return ht(Pt,function(Gt){(!g||c(_,It,Gt))&&z(dt,Gt,It[Gt])}),dt},_=function(dt){var ft=P(dt),It=c(Oe,this,ft);return!(this===Qt&&y(ve,ft)&&!y(he,ft))&&(!(It||!y(this,ft)||!y(ve,ft)||y(this,wt)&&this[wt][ft])||It)},ot=function(dt,ft){var It=C(dt),Pt=P(ft);if(It!==Qt||!y(ve,Pt)||y(he,Pt)){var Gt=Fe(It,Pt);return Gt&&y(ve,Pt)&&!(y(It,wt)&&It[wt][Pt])&&(Gt.enumerable=!0),Gt}},Ot=function(dt){var ft=Be(C(dt)),It=[];return ht(ft,function(Pt){!y(ve,Pt)&&!y(Q,Pt)&&Ke(It,Pt)}),It},Rt=function(pt){var dt=pt===Qt,ft=Be(dt?he:C(pt)),It=[];return ht(ft,function(Pt){y(ve,Pt)&&(!dt||y(Qt,Pt))&&Ke(It,ve[Pt])}),It};v||(G(ee=(de=function(){if(T(ee,this))throw _t("Symbol is not a constructor");var dt=arguments.length&&void 0!==arguments[0]?w(arguments[0]):void 0,ft=tt(dt),It=function(Pt){this===Qt&&c(It,he,Pt),y(this,wt)&&y(this[wt],ft)&&(this[wt][ft]=!1),ln(this,ft,A(1,Pt))};return g&&fn&&ln(Qt,ft,{configurable:!0,set:It}),R(ft,dt)})[bt],"toString",function(){return Xt(this).tag}),G(de,"withoutSetter",function(pt){return R(tt(pt),pt)}),H.f=_,$.f=z,L.f=nt,F.f=ot,B.f=O.f=Ot,W.f=Rt,st.f=function(pt){return R(it(pt),pt)},g&&(ce(ee,"description",{configurable:!0,get:function(){return Xt(this).description}}),f||G(Qt,"propertyIsEnumerable",_,{unsafe:!0}))),a({global:!0,constructor:!0,wrap:!0,forced:!v,sham:!v},{Symbol:de}),ht(V(Ln),function(pt){J(pt)}),a({target:Ht,stat:!0,forced:!v},{useSetter:function(){fn=!0},useSimple:function(){fn=!1}}),a({target:"Object",stat:!0,forced:!v,sham:!g},{create:function(dt,ft){return void 0===ft?M(dt):nt(M(dt),ft)},defineProperty:z,defineProperties:nt,getOwnPropertyDescriptor:ot}),a({target:"Object",stat:!0,forced:!v},{getOwnPropertyNames:Ot}),ct(),at(de,Ht),Q[wt]=!0},41817:(h,x,r)=>{"use strict";var a=r(82109),l=r(19781),c=r(17854),p=r(1702),f=r(92597),g=r(60614),v=r(47976),m=r(41340),y=r(3070).f,T=r(99920),I=c.Symbol,C=I&&I.prototype;if(l&&g(I)&&(!("description"in C)||void 0!==I().description)){var P={},w=function(){var $=arguments.length<1||void 0===arguments[0]?void 0:m(arguments[0]),L=v(C,this)?new I($):void 0===$?I():I($);return""===$&&(P[L]=!0),L};T(w,I),w.prototype=C,C.constructor=w;var A="Symbol(test)"==String(I("test")),M=p(C.valueOf),V=p(C.toString),B=/^Symbol\((.*)\)[^)]+$/,O=p("".replace),W=p("".slice);y(C,"description",{configurable:!0,get:function(){var $=M(this);if(f(P,$))return"";var L=V($),H=A?W(L,7,-1):O(L,B,"$1");return""===H?void 0:H}}),a({global:!0,constructor:!0,forced:!0},{Symbol:w})}},40763:(h,x,r)=>{var a=r(82109),l=r(35005),c=r(92597),p=r(41340),f=r(72309),g=r(2015),v=f("string-to-symbol-registry"),m=f("symbol-to-string-registry");a({target:"Symbol",stat:!0,forced:!g},{for:function(y){var T=p(y);if(c(v,T))return v[T];var I=l("Symbol")(T);return v[T]=I,m[I]=T,I}})},92401:(h,x,r)=>{r(26800)("hasInstance")},8722:(h,x,r)=>{r(26800)("isConcatSpreadable")},32165:(h,x,r)=>{r(26800)("iterator")},82526:(h,x,r)=>{r(4032),r(40763),r(26620),r(38862),r(29660)},26620:(h,x,r)=>{var a=r(82109),l=r(92597),c=r(52190),p=r(66330),f=r(72309),g=r(2015),v=f("symbol-to-string-registry");a({target:"Symbol",stat:!0,forced:!g},{keyFor:function(y){if(!c(y))throw TypeError(p(y)+" is not a symbol");if(l(v,y))return v[y]}})},16066:(h,x,r)=>{r(26800)("matchAll")},69007:(h,x,r)=>{r(26800)("match")},83510:(h,x,r)=>{r(26800)("replace")},41840:(h,x,r)=>{r(26800)("search")},6982:(h,x,r)=>{r(26800)("species")},32159:(h,x,r)=>{r(26800)("split")},96649:(h,x,r)=>{var a=r(26800),l=r(56532);a("toPrimitive"),l()},39341:(h,x,r)=>{var a=r(35005),l=r(26800),c=r(58003);l("toStringTag"),c(a("Symbol"),"Symbol")},60543:(h,x,r)=>{r(26800)("unscopables")},41202:(h,x,r)=>{"use strict";var $,a=r(76677),l=r(17854),c=r(1702),p=r(89190),f=r(62423),g=r(77710),v=r(29320),m=r(70111),y=r(29909).enforce,T=r(47293),I=r(94811),C=Object,P=Array.isArray,w=C.isExtensible,A=C.isFrozen,M=C.isSealed,V=C.freeze,B=C.seal,O={},W={},F=!l.ActiveXObject&&"ActiveXObject"in l,L=function(st){return function(){return st(this,arguments.length?arguments[0]:void 0)}},H=g("WeakMap",L,v),G=H.prototype,X=c(G.set);if(I)if(F){$=v.getConstructor(L,"WeakMap",!0),f.enable();var Q=c(G.delete),tt=c(G.has),it=c(G.get);p(G,{delete:function(st){if(m(st)&&!w(st)){var J=y(this);return J.frozen||(J.frozen=new $),Q(this,st)||J.frozen.delete(st)}return Q(this,st)},has:function(J){if(m(J)&&!w(J)){var ct=y(this);return ct.frozen||(ct.frozen=new $),tt(this,J)||ct.frozen.has(J)}return tt(this,J)},get:function(J){if(m(J)&&!w(J)){var ct=y(this);return ct.frozen||(ct.frozen=new $),tt(this,J)?it(this,J):ct.frozen.get(J)}return it(this,J)},set:function(J,ct){if(m(J)&&!w(J)){var at=y(this);at.frozen||(at.frozen=new $),tt(this,J)?X(this,J,ct):at.frozen.set(J,ct)}else X(this,J,ct);return this}})}else a&&T(function(){var st=V([]);return X(new H,st,1),!A(st)})&&p(G,{set:function(J,ct){var at;return P(J)&&(A(J)?at=O:M(J)&&(at=W)),X(this,J,ct),at==O&&V(J),at==W&&B(J),this}})},4129:(h,x,r)=>{r(41202)}},h=>{h(h.s=75565)}]); \ No newline at end of file diff --git a/www/z4d/runtime.48f94f53b806b2fe.js b/www/z4d/runtime.48f94f53b806b2fe.js new file mode 100644 index 000000000..3574e0227 --- /dev/null +++ b/www/z4d/runtime.48f94f53b806b2fe.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,g={},m={};function r(e){var o=m[e];if(void 0!==o)return o.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(o,t,n,i)=>{if(!t){var a=1/0;for(f=0;f=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,i0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},(()=>{var o,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var f={};o=o||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~o.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>f[l]=()=>t[l]);return f.default=()=>t,r.d(i,f),i}})(),r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((o,t)=>(r.f[t](e,o),o),[])),r.u=e=>(76===e?"common":e)+"."+{12:"7c65ce0f2e107a01",76:"481b903deeb9dee7",317:"95ec4836cce099fe",521:"4a2e700ea1ed6d2d",577:"291f6dcdf5a2bbd5",644:"e5bbcc7e1d18b79d",837:"657d2f41ff2a0f41",846:"b75ced3ca2bc41c3",908:"08c26a5f1272a6a5"}[e]+".js",r.miniCssF=e=>{},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={},o="z4d-plugin:";r.l=(t,n,i,f)=>{if(e[t])e[t].push(n);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),u=0;u{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:o=>o},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(n,i)=>{var f=r.o(e,n)?e[n]:void 0;if(0!==f)if(f)i.push(f[2]);else if(121!=n){var a=new Promise((c,s)=>f=e[n]=[c,s]);i.push(f[2]=a);var l=r.p+r.u(n),d=new Error;r.l(l,c=>{if(r.o(e,n)&&(0!==(f=e[n])&&(e[n]=void 0),f)){var s=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,f[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var o=(n,i)=>{var d,u,[f,a,l]=i,c=0;if(f.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var s=l(r)}for(n&&n(i);c{"use strict";var e,g={},m={};function r(e){var f=m[e];if(void 0!==f)return f.exports;var t=m[e]={exports:{}};return g[e].call(t.exports,t,t.exports,r),t.exports}r.m=g,e=[],r.O=(f,t,n,i)=>{if(!t){var a=1/0;for(o=0;o=i)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,i0&&e[o-1][2]>i;o--)e[o]=e[o-1];e[o]=[t,n,i]},(()=>{var f,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,n){if(1&n&&(t=this(t)),8&n||"object"==typeof t&&t&&(4&n&&t.__esModule||16&n&&"function"==typeof t.then))return t;var i=Object.create(null);r.r(i);var o={};f=f||[null,e({}),e([]),e(e)];for(var a=2&n&&t;"object"==typeof a&&!~f.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>o[l]=()=>t[l]);return o.default=()=>t,r.d(i,o),i}})(),r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>(592===e?"common":e)+"."+{165:"9a741377e6b4d9fd",192:"38a6743354cc7f80",506:"7929b1bd86ff980c",508:"fa5a169d0b5d66b9",580:"471384bb1b9a988c",592:"e1b00f88e623886f",829:"982ce78bd826f057",922:"81d21780f2a4312a",977:"1a68b94d282d26ca"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="z4d-plugin:";r.l=(t,n,i,o)=>{if(e[t])e[t].push(n);else{var a,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),u=0;u{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(y=>y(b)),v)return v(b)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={666:0};r.f.j=(n,i)=>{var o=r.o(e,n)?e[n]:void 0;if(0!==o)if(o)i.push(o[2]);else if(666!=n){var a=new Promise((c,s)=>o=e[n]=[c,s]);i.push(o[2]=a);var l=r.p+r.u(n),d=new Error;r.l(l,c=>{if(r.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var s=c&&("load"===c.type?"missing":c.type),p=c&&c.target&&c.target.src;d.message="Loading chunk "+n+" failed.\n("+s+": "+p+")",d.name="ChunkLoadError",d.type=s,d.request=p,o[1](d)}},"chunk-"+n,n)}else e[n]=0},r.O.j=n=>0===e[n];var f=(n,i)=>{var d,u,[o,a,l]=i,c=0;if(o.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var s=l(r)}for(n&&n(i);cdiv{position:relative;box-sizing:border-box}.la-line-spin-clockwise-fade-rotating{display:block;font-size:0;color:#fff}.la-line-spin-clockwise-fade-rotating.la-dark{color:#333}.la-line-spin-clockwise-fade-rotating>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-spin-clockwise-fade-rotating{width:32px;height:32px;animation:line-spin-clockwise-fade-rotating-rotate 6s infinite linear}.la-line-spin-clockwise-fade-rotating>div{position:absolute;width:2px;height:10px;margin:-5px 2px 2px -1px;border-radius:0;animation:line-spin-clockwise-fade-rotating 1s infinite ease-in-out}.la-line-spin-clockwise-fade-rotating>div:nth-child(1){top:15%;left:50%;transform:rotate(0);animation-delay:-.875s}.la-line-spin-clockwise-fade-rotating>div:nth-child(2){top:25.2512626585%;left:74.7487373415%;transform:rotate(45deg);animation-delay:-.75s}.la-line-spin-clockwise-fade-rotating>div:nth-child(3){top:50%;left:85%;transform:rotate(90deg);animation-delay:-.625s}.la-line-spin-clockwise-fade-rotating>div:nth-child(4){top:74.7487373415%;left:74.7487373415%;transform:rotate(135deg);animation-delay:-.5s}.la-line-spin-clockwise-fade-rotating>div:nth-child(5){top:84.9999999974%;left:50.0000000004%;transform:rotate(180deg);animation-delay:-.375s}.la-line-spin-clockwise-fade-rotating>div:nth-child(6){top:74.7487369862%;left:25.2512627193%;transform:rotate(225deg);animation-delay:-.25s}.la-line-spin-clockwise-fade-rotating>div:nth-child(7){top:49.9999806189%;left:15.0000039834%;transform:rotate(270deg);animation-delay:-.125s}.la-line-spin-clockwise-fade-rotating>div:nth-child(8){top:25.2506949798%;left:25.2513989292%;transform:rotate(315deg);animation-delay:0s}.la-line-spin-clockwise-fade-rotating.la-sm{width:16px;height:16px}.la-line-spin-clockwise-fade-rotating.la-sm>div{width:1px;height:4px;margin-top:-2px;margin-left:0}.la-line-spin-clockwise-fade-rotating.la-2x{width:64px;height:64px}.la-line-spin-clockwise-fade-rotating.la-2x>div{width:4px;height:20px;margin-top:-10px;margin-left:-2px}.la-line-spin-clockwise-fade-rotating.la-3x{width:96px;height:96px}.la-line-spin-clockwise-fade-rotating.la-3x>div{width:6px;height:30px;margin-top:-15px;margin-left:-3px}@keyframes line-spin-clockwise-fade-rotating-rotate{to{transform:rotate(-360deg)}}@keyframes line-spin-clockwise-fade-rotating{50%{opacity:.2}to{opacity:1}}/*! + * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) + * Copyright 2015 Daniel Cardoso <@DanielCardoso> + * Licensed under MIT + */.la-line-scale,.la-line-scale>div{position:relative;box-sizing:border-box}.la-line-scale{display:block;font-size:0;color:#fff}.la-line-scale.la-dark{color:#333}.la-line-scale>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-scale{width:40px;height:32px}.la-line-scale>div{width:4px;height:32px;margin:0 2px;border-radius:0;animation:line-scale 1.2s infinite ease}.la-line-scale>div:nth-child(1){animation-delay:-1.2s}.la-line-scale>div:nth-child(2){animation-delay:-1.1s}.la-line-scale>div:nth-child(3){animation-delay:-1s}.la-line-scale>div:nth-child(4){animation-delay:-.9s}.la-line-scale>div:nth-child(5){animation-delay:-.8s}.la-line-scale.la-sm{width:20px;height:16px}.la-line-scale.la-sm>div{width:2px;height:16px;margin:0 1px}.la-line-scale.la-2x{width:80px;height:64px}.la-line-scale.la-2x>div{width:8px;height:64px;margin:0 4px}.la-line-scale.la-3x{width:120px;height:96px}.la-line-scale.la-3x>div{width:12px;height:96px;margin:0 6px}@keyframes line-scale{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}@layer bootstrap{@charset "UTF-8";/*! +* Bootstrap v5.3.3 (https://getbootstrap.com/) +* Copyright 2011-2024 The Bootstrap Authors +* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) +*/:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, .75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, .5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13, 110, 253, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, .75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, .5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, .15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, .15),0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;--bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, .15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:.5rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:.25rem;--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, .55);--bs-navbar-hover-color:rgba(255, 255, 255, .75);--bs-navbar-disabled-color:rgba(255, 255, 255, .25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:.75rem;--bs-pagination-padding-y:.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:.5rem;--bs-pagination-padding-y:.25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:.65em;--bs-badge-padding-y:.35em;--bs-badge-font-size:.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:.75rem;--bs-toast-padding-y:.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:.5rem;--bs-tooltip-padding-y:.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:.9;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform .3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:.1}.border-opacity-25{--bs-border-opacity:.25}.border-opacity-50{--bs-border-opacity:.5}.border-opacity-75{--bs-border-opacity:.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:#00000080!important}.text-white-50{--bs-text-opacity:1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:.25}.text-opacity-50{--bs-text-opacity:.5}.text-opacity-75{--bs-text-opacity:.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:.1}.bg-opacity-25{--bs-bg-opacity:.25}.bg-opacity-50{--bs-bg-opacity:.5}.bg-opacity-75{--bs-bg-opacity:.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}}@font-face{font-family:primeicons;font-display:block;src:url(primeicons.ffecb2549ad1765a.eot);src:url(primeicons.ffecb2549ad1765a.eot?#iefix) format("embedded-opentype"),url(primeicons.ba3f916dfb64be8c.woff2) format("woff2"),url(primeicons.f8b9e8a4e401b603.woff) format("woff"),url(primeicons.0112589c5695a9ed.ttf) format("truetype"),url(primeicons.943ab24c43224d29.svg?#primeicons) format("svg");font-weight:400;font-style:normal}.pi{font-family:primeicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pi:before{--webkit-backface-visibility:hidden;backface-visibility:hidden}.pi-fw{width:1.28571429em;text-align:center}.pi-spin{animation:fa-spin 2s infinite linear}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.pi-eraser:before{content:"\ea04"}.pi-stopwatch:before{content:"\ea01"}.pi-verified:before{content:"\ea02"}.pi-delete-left:before{content:"\ea03"}.pi-hourglass:before{content:"\e9fe"}.pi-truck:before{content:"\ea00"}.pi-wrench:before{content:"\e9ff"}.pi-microphone:before{content:"\e9fa"}.pi-megaphone:before{content:"\e9fb"}.pi-arrow-right-arrow-left:before{content:"\e9fc"}.pi-bitcoin:before{content:"\e9fd"}.pi-file-edit:before{content:"\e9f6"}.pi-language:before{content:"\e9f7"}.pi-file-export:before{content:"\e9f8"}.pi-file-import:before{content:"\e9f9"}.pi-file-word:before{content:"\e9f1"}.pi-gift:before{content:"\e9f2"}.pi-cart-plus:before{content:"\e9f3"}.pi-thumbs-down-fill:before{content:"\e9f4"}.pi-thumbs-up-fill:before{content:"\e9f5"}.pi-arrows-alt:before{content:"\e9f0"}.pi-calculator:before{content:"\e9ef"}.pi-sort-alt-slash:before{content:"\e9ee"}.pi-arrows-h:before{content:"\e9ec"}.pi-arrows-v:before{content:"\e9ed"}.pi-pound:before{content:"\e9eb"}.pi-prime:before{content:"\e9ea"}.pi-chart-pie:before{content:"\e9e9"}.pi-reddit:before{content:"\e9e8"}.pi-code:before{content:"\e9e7"}.pi-sync:before{content:"\e9e6"}.pi-shopping-bag:before{content:"\e9e5"}.pi-server:before{content:"\e9e4"}.pi-database:before{content:"\e9e3"}.pi-hashtag:before{content:"\e9e2"}.pi-bookmark-fill:before{content:"\e9df"}.pi-filter-fill:before{content:"\e9e0"}.pi-heart-fill:before{content:"\e9e1"}.pi-flag-fill:before{content:"\e9de"}.pi-circle:before{content:"\e9dc"}.pi-circle-fill:before{content:"\e9dd"}.pi-bolt:before{content:"\e9db"}.pi-history:before{content:"\e9da"}.pi-box:before{content:"\e9d9"}.pi-at:before{content:"\e9d8"}.pi-arrow-up-right:before{content:"\e9d4"}.pi-arrow-up-left:before{content:"\e9d5"}.pi-arrow-down-left:before{content:"\e9d6"}.pi-arrow-down-right:before{content:"\e9d7"}.pi-telegram:before{content:"\e9d3"}.pi-stop-circle:before{content:"\e9d2"}.pi-stop:before{content:"\e9d1"}.pi-whatsapp:before{content:"\e9d0"}.pi-building:before{content:"\e9cf"}.pi-qrcode:before{content:"\e9ce"}.pi-car:before{content:"\e9cd"}.pi-instagram:before{content:"\e9cc"}.pi-linkedin:before{content:"\e9cb"}.pi-send:before{content:"\e9ca"}.pi-slack:before{content:"\e9c9"}.pi-sun:before{content:"\e9c8"}.pi-moon:before{content:"\e9c7"}.pi-vimeo:before{content:"\e9c6"}.pi-youtube:before{content:"\e9c5"}.pi-flag:before{content:"\e9c4"}.pi-wallet:before{content:"\e9c3"}.pi-map:before{content:"\e9c2"}.pi-link:before{content:"\e9c1"}.pi-credit-card:before{content:"\e9bf"}.pi-discord:before{content:"\e9c0"}.pi-percentage:before{content:"\e9be"}.pi-euro:before{content:"\e9bd"}.pi-book:before{content:"\e9ba"}.pi-shield:before{content:"\e9b9"}.pi-paypal:before{content:"\e9bb"}.pi-amazon:before{content:"\e9bc"}.pi-phone:before{content:"\e9b8"}.pi-filter-slash:before{content:"\e9b7"}.pi-facebook:before{content:"\e9b4"}.pi-github:before{content:"\e9b5"}.pi-twitter:before{content:"\e9b6"}.pi-step-backward-alt:before{content:"\e9ac"}.pi-step-forward-alt:before{content:"\e9ad"}.pi-forward:before{content:"\e9ae"}.pi-backward:before{content:"\e9af"}.pi-fast-backward:before{content:"\e9b0"}.pi-fast-forward:before{content:"\e9b1"}.pi-pause:before{content:"\e9b2"}.pi-play:before{content:"\e9b3"}.pi-compass:before{content:"\e9ab"}.pi-id-card:before{content:"\e9aa"}.pi-ticket:before{content:"\e9a9"}.pi-file-o:before{content:"\e9a8"}.pi-reply:before{content:"\e9a7"}.pi-directions-alt:before{content:"\e9a5"}.pi-directions:before{content:"\e9a6"}.pi-thumbs-up:before{content:"\e9a3"}.pi-thumbs-down:before{content:"\e9a4"}.pi-sort-numeric-down-alt:before{content:"\e996"}.pi-sort-numeric-up-alt:before{content:"\e997"}.pi-sort-alpha-down-alt:before{content:"\e998"}.pi-sort-alpha-up-alt:before{content:"\e999"}.pi-sort-numeric-down:before{content:"\e99a"}.pi-sort-numeric-up:before{content:"\e99b"}.pi-sort-alpha-down:before{content:"\e99c"}.pi-sort-alpha-up:before{content:"\e99d"}.pi-sort-alt:before{content:"\e99e"}.pi-sort-amount-up:before{content:"\e99f"}.pi-sort-amount-down:before{content:"\e9a0"}.pi-sort-amount-down-alt:before{content:"\e9a1"}.pi-sort-amount-up-alt:before{content:"\e9a2"}.pi-palette:before{content:"\e995"}.pi-undo:before{content:"\e994"}.pi-desktop:before{content:"\e993"}.pi-sliders-v:before{content:"\e991"}.pi-sliders-h:before{content:"\e992"}.pi-search-plus:before{content:"\e98f"}.pi-search-minus:before{content:"\e990"}.pi-file-excel:before{content:"\e98e"}.pi-file-pdf:before{content:"\e98d"}.pi-check-square:before{content:"\e98c"}.pi-chart-line:before{content:"\e98b"}.pi-user-edit:before{content:"\e98a"}.pi-exclamation-circle:before{content:"\e989"}.pi-android:before{content:"\e985"}.pi-google:before{content:"\e986"}.pi-apple:before{content:"\e987"}.pi-microsoft:before{content:"\e988"}.pi-heart:before{content:"\e984"}.pi-mobile:before{content:"\e982"}.pi-tablet:before{content:"\e983"}.pi-key:before{content:"\e981"}.pi-shopping-cart:before{content:"\e980"}.pi-comments:before{content:"\e97e"}.pi-comment:before{content:"\e97f"}.pi-briefcase:before{content:"\e97d"}.pi-bell:before{content:"\e97c"}.pi-paperclip:before{content:"\e97b"}.pi-share-alt:before{content:"\e97a"}.pi-envelope:before{content:"\e979"}.pi-volume-down:before{content:"\e976"}.pi-volume-up:before{content:"\e977"}.pi-volume-off:before{content:"\e978"}.pi-eject:before{content:"\e975"}.pi-money-bill:before{content:"\e974"}.pi-images:before{content:"\e973"}.pi-image:before{content:"\e972"}.pi-sign-in:before{content:"\e970"}.pi-sign-out:before{content:"\e971"}.pi-wifi:before{content:"\e96f"}.pi-sitemap:before{content:"\e96e"}.pi-chart-bar:before{content:"\e96d"}.pi-camera:before{content:"\e96c"}.pi-dollar:before{content:"\e96b"}.pi-lock-open:before{content:"\e96a"}.pi-table:before{content:"\e969"}.pi-map-marker:before{content:"\e968"}.pi-list:before{content:"\e967"}.pi-eye-slash:before{content:"\e965"}.pi-eye:before{content:"\e966"}.pi-folder-open:before{content:"\e964"}.pi-folder:before{content:"\e963"}.pi-video:before{content:"\e962"}.pi-inbox:before{content:"\e961"}.pi-lock:before{content:"\e95f"}.pi-unlock:before{content:"\e960"}.pi-tags:before{content:"\e95d"}.pi-tag:before{content:"\e95e"}.pi-power-off:before{content:"\e95c"}.pi-save:before{content:"\e95b"}.pi-question-circle:before{content:"\e959"}.pi-question:before{content:"\e95a"}.pi-copy:before{content:"\e957"}.pi-file:before{content:"\e958"}.pi-clone:before{content:"\e955"}.pi-calendar-times:before{content:"\e952"}.pi-calendar-minus:before{content:"\e953"}.pi-calendar-plus:before{content:"\e954"}.pi-ellipsis-v:before{content:"\e950"}.pi-ellipsis-h:before{content:"\e951"}.pi-bookmark:before{content:"\e94e"}.pi-globe:before{content:"\e94f"}.pi-replay:before{content:"\e94d"}.pi-filter:before{content:"\e94c"}.pi-print:before{content:"\e94b"}.pi-align-right:before{content:"\e946"}.pi-align-left:before{content:"\e947"}.pi-align-center:before{content:"\e948"}.pi-align-justify:before{content:"\e949"}.pi-cog:before{content:"\e94a"}.pi-cloud-download:before{content:"\e943"}.pi-cloud-upload:before{content:"\e944"}.pi-cloud:before{content:"\e945"}.pi-pencil:before{content:"\e942"}.pi-users:before{content:"\e941"}.pi-clock:before{content:"\e940"}.pi-user-minus:before{content:"\e93e"}.pi-user-plus:before{content:"\e93f"}.pi-trash:before{content:"\e93d"}.pi-external-link:before{content:"\e93c"}.pi-window-maximize:before{content:"\e93b"}.pi-window-minimize:before{content:"\e93a"}.pi-refresh:before{content:"\e938"}.pi-user:before{content:"\e939"}.pi-exclamation-triangle:before{content:"\e922"}.pi-calendar:before{content:"\e927"}.pi-chevron-circle-left:before{content:"\e928"}.pi-chevron-circle-down:before{content:"\e929"}.pi-chevron-circle-right:before{content:"\e92a"}.pi-chevron-circle-up:before{content:"\e92b"}.pi-angle-double-down:before{content:"\e92c"}.pi-angle-double-left:before{content:"\e92d"}.pi-angle-double-right:before{content:"\e92e"}.pi-angle-double-up:before{content:"\e92f"}.pi-angle-down:before{content:"\e930"}.pi-angle-left:before{content:"\e931"}.pi-angle-right:before{content:"\e932"}.pi-angle-up:before{content:"\e933"}.pi-upload:before{content:"\e934"}.pi-download:before{content:"\e956"}.pi-ban:before{content:"\e935"}.pi-star-fill:before{content:"\e936"}.pi-star:before{content:"\e937"}.pi-chevron-left:before{content:"\e900"}.pi-chevron-right:before{content:"\e901"}.pi-chevron-down:before{content:"\e902"}.pi-chevron-up:before{content:"\e903"}.pi-caret-left:before{content:"\e904"}.pi-caret-right:before{content:"\e905"}.pi-caret-down:before{content:"\e906"}.pi-caret-up:before{content:"\e907"}.pi-search:before{content:"\e908"}.pi-check:before{content:"\e909"}.pi-check-circle:before{content:"\e90a"}.pi-times:before{content:"\e90b"}.pi-times-circle:before{content:"\e90c"}.pi-plus:before{content:"\e90d"}.pi-plus-circle:before{content:"\e90e"}.pi-minus:before{content:"\e90f"}.pi-minus-circle:before{content:"\e910"}.pi-circle-on:before{content:"\e911"}.pi-circle-off:before{content:"\e912"}.pi-sort-down:before{content:"\e913"}.pi-sort-up:before{content:"\e914"}.pi-sort:before{content:"\e915"}.pi-step-backward:before{content:"\e916"}.pi-step-forward:before{content:"\e917"}.pi-th-large:before{content:"\e918"}.pi-arrow-down:before{content:"\e919"}.pi-arrow-left:before{content:"\e91a"}.pi-arrow-right:before{content:"\e91b"}.pi-arrow-up:before{content:"\e91c"}.pi-bars:before{content:"\e91d"}.pi-arrow-circle-down:before{content:"\e91e"}.pi-arrow-circle-left:before{content:"\e91f"}.pi-arrow-circle-right:before{content:"\e920"}.pi-arrow-circle-up:before{content:"\e921"}.pi-info:before{content:"\e923"}.pi-info-circle:before{content:"\e924"}.pi-home:before{content:"\e925"}.pi-spinner:before{content:"\e926"}:root{font-family:Inter var,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";font-variation-settings:normal;--font-family: "Inter var", sans-serif;--font-feature-settings: "cv02", "cv03", "cv04", "cv11";--surface-a: #ffffff;--surface-b: #f9fafb;--surface-c: #f3f4f6;--surface-d: #e5e7eb;--surface-e: #ffffff;--surface-f: #ffffff;--text-color: #4b5563;--text-color-secondary: #6b7280;--primary-color: #3B82F6;--primary-color-text: #ffffff;--surface-0: #ffffff;--surface-50: #f9fafb;--surface-100: #f3f4f6;--surface-200: #e5e7eb;--surface-300: #d1d5db;--surface-400: #9ca3af;--surface-500: #6b7280;--surface-600: #4b5563;--surface-700: #374151;--surface-800: #1f2937;--surface-900: #111827;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--content-padding: 1.25rem;--inline-spacing: .5rem;--border-radius: 6px;--surface-ground: #f9fafb;--surface-section: #ffffff;--surface-card: #ffffff;--surface-overlay: #ffffff;--surface-border: #dfe7ef;--surface-hover: #f6f9fc;--focus-ring: 0 0 0 .2rem #BFDBFE;--maskbg: rgba(0, 0, 0, .4);--highlight-bg: #EFF6FF;--highlight-text-color: #1D4ED8;color-scheme:light}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(Inter-roman.var.b2129c009ce46d43.woff2?v=3.19) format("woff2")}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(Inter-italic.var.958a0b9742fb3ae8.woff2?v=3.19) format("woff2")}:root{--blue-50:#f5f9ff;--blue-100:#d0e1fd;--blue-200:#abc9fb;--blue-300:#85b2f9;--blue-400:#609af8;--blue-500:#3b82f6;--blue-600:#326fd1;--blue-700:#295bac;--blue-800:#204887;--blue-900:#183462;--green-50:#f4fcf7;--green-100:#caf1d8;--green-200:#a0e6ba;--green-300:#76db9b;--green-400:#4cd07d;--green-500:#22c55e;--green-600:#1da750;--green-700:#188a42;--green-800:#136c34;--green-900:#0e4f26;--yellow-50:#fefbf3;--yellow-100:#faedc4;--yellow-200:#f6de95;--yellow-300:#f2d066;--yellow-400:#eec137;--yellow-500:#eab308;--yellow-600:#c79807;--yellow-700:#a47d06;--yellow-800:#816204;--yellow-900:#5e4803;--cyan-50:#f3fbfd;--cyan-100:#c3edf5;--cyan-200:#94e0ed;--cyan-300:#65d2e4;--cyan-400:#35c4dc;--cyan-500:#06b6d4;--cyan-600:#059bb4;--cyan-700:#047f94;--cyan-800:#036475;--cyan-900:#024955;--pink-50:#fef6fa;--pink-100:#fad3e7;--pink-200:#f7b0d3;--pink-300:#f38ec0;--pink-400:#f06bac;--pink-500:#ec4899;--pink-600:#c93d82;--pink-700:#a5326b;--pink-800:#822854;--pink-900:#5e1d3d;--indigo-50:#f7f7fe;--indigo-100:#dadafc;--indigo-200:#bcbdf9;--indigo-300:#9ea0f6;--indigo-400:#8183f4;--indigo-500:#6366f1;--indigo-600:#5457cd;--indigo-700:#4547a9;--indigo-800:#363885;--indigo-900:#282960;--teal-50:#f3fbfb;--teal-100:#c7eeea;--teal-200:#9ae0d9;--teal-300:#6dd3c8;--teal-400:#41c5b7;--teal-500:#14b8a6;--teal-600:#119c8d;--teal-700:#0e8174;--teal-800:#0b655b;--teal-900:#084a42;--orange-50:#fff8f3;--orange-100:#feddc7;--orange-200:#fcc39b;--orange-300:#fba86f;--orange-400:#fa8e42;--orange-500:#f97316;--orange-600:#d46213;--orange-700:#ae510f;--orange-800:#893f0c;--orange-900:#642e09;--bluegray-50:#f7f8f9;--bluegray-100:#dadee3;--bluegray-200:#bcc3cd;--bluegray-300:#9fa9b7;--bluegray-400:#818ea1;--bluegray-500:#64748b;--bluegray-600:#556376;--bluegray-700:#465161;--bluegray-800:#37404c;--bluegray-900:#282e38;--purple-50:#fbf7ff;--purple-100:#ead6fd;--purple-200:#dab6fc;--purple-300:#c996fa;--purple-400:#b975f9;--purple-500:#a855f7;--purple-600:#8f48d2;--purple-700:#763cad;--purple-800:#5c2f88;--purple-900:#432263;--red-50:#fff5f5;--red-100:#ffd0ce;--red-200:#ffaca7;--red-300:#ff8780;--red-400:#ff6259;--red-500:#ff3d32;--red-600:#d9342b;--red-700:#b32b23;--red-800:#8c221c;--red-900:#661814;--primary-50:#f5f9ff;--primary-100:#d0e1fd;--primary-200:#abc9fb;--primary-300:#85b2f9;--primary-400:#609af8;--primary-500:#3b82f6;--primary-600:#326fd1;--primary-700:#295bac;--primary-800:#204887;--primary-900:#183462}.p-editor-container .p-editor-toolbar{background:#f9fafb;border-top-right-radius:6px;border-top-left-radius:6px}.p-editor-container .p-editor-toolbar.ql-snow{border:1px solid #e5e7eb}.p-editor-container .p-editor-toolbar.ql-snow .ql-stroke{stroke:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-fill{fill:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label{border:0 none;color:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke{stroke:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill{fill:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;padding:.75rem 0}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover{color:#4b5563;background:#f3f4f6}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item{padding:.75rem 1.25rem}.p-editor-container .p-editor-content{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .p-editor-content.ql-snow{border:1px solid #e5e7eb}.p-editor-container .p-editor-content .ql-editor{background:#fff;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .ql-snow.ql-toolbar button:hover,.p-editor-container .ql-snow.ql-toolbar button:focus{color:#4b5563}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-stroke,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-stroke{stroke:#4b5563}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-fill,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-fill{fill:#4b5563}.p-editor-container .ql-snow.ql-toolbar button.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected{color:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke{stroke:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill{fill:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label{color:#3b82f6}@layer primeng{*{box-sizing:border-box}.p-component{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;font-weight:400}.p-component-overlay{background-color:#0006;transition-duration:.2s}.p-disabled,.p-component:disabled{opacity:.6}.p-error{color:#e24c4c}.p-text-secondary{color:#6b7280}.pi{font-size:1rem}.p-icon{width:1rem;height:1rem}.p-link{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;border-radius:6px}.p-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-component-overlay-enter{animation:p-component-overlay-enter-animation .15s forwards}.p-component-overlay-leave{animation:p-component-overlay-leave-animation .15s forwards}@keyframes p-component-overlay-enter-animation{0%{background-color:transparent}to{background-color:var(--maskbg)}}@keyframes p-component-overlay-leave-animation{0%{background-color:var(--maskbg)}to{background-color:transparent}}.p-autocomplete .p-autocomplete-loader{right:.75rem}.p-autocomplete.p-autocomplete-dd .p-autocomplete-loader{right:3.75rem}.p-autocomplete:not(.p-disabled):hover .p-autocomplete-multiple-container{border-color:#3b82f6}.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-multiple-container{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-autocomplete .p-autocomplete-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:.375rem 0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;padding:0;margin:0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token{padding:.375rem .75rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon{margin-left:.5rem}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token.p-focus{background:#d1d5db;color:#4b5563}.p-autocomplete.p-invalid.p-component>.p-inputtext{border-color:#e24c4c}.p-autocomplete-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-autocomplete-panel .p-autocomplete-items{padding:.75rem 0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight.p-focus{background:#3b82f63d}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}p-autocomplete.ng-dirty.ng-invalid>.p-autocomplete>.p-inputtext{border-color:#e24c4c}p-autocomplete.p-autocomplete-clearable .p-inputtext{padding-right:2.5rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-clear-icon{color:#6b7280;right:.75rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-dd .p-autocomplete-clear-icon{color:#6b7280;right:3.75rem}p-calendar.ng-dirty.ng-invalid>.p-calendar>.p-inputtext{border-color:#e24c4c}.p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-datepicker{padding:.5rem;background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px}.p-datepicker:not(.p-datepicker-inline){background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:#fff}.p-datepicker .p-datepicker-header{padding:.5rem;color:#4b5563;background:#fff;font-weight:600;margin:0;border-bottom:1px solid #e5e7eb;border-top-right-radius:6px;border-top-left-radius:6px}.p-datepicker .p-datepicker-header .p-datepicker-prev,.p-datepicker .p-datepicker-header .p-datepicker-next{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-datepicker-header .p-datepicker-prev:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-next:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datepicker .p-datepicker-header .p-datepicker-prev:focus-visible,.p-datepicker .p-datepicker-header .p-datepicker-next:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-datepicker-header .p-datepicker-title{line-height:2rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{color:#4b5563;transition:background-color .2s,color .2s,box-shadow .2s;font-weight:600;padding:.5rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month:enabled:hover{color:#3b82f6}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{margin-right:.5rem}.p-datepicker table{font-size:1rem;margin:.5rem 0}.p-datepicker table th{padding:.5rem}.p-datepicker table th>span{width:2.5rem;height:2.5rem}.p-datepicker table td{padding:.5rem}.p-datepicker table td>span{width:2.5rem;height:2.5rem;border-radius:50%;transition:box-shadow .2s;border:1px solid transparent}.p-datepicker table td>span.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker table td>span:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker table td.p-datepicker-today>span{background:#d1d5db;color:#4b5563;border-color:transparent}.p-datepicker table td.p-datepicker-today>span.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid #e5e7eb}.p-datepicker .p-datepicker-buttonbar .p-button{width:auto}.p-datepicker .p-timepicker{border-top:1px solid #e5e7eb;padding:.5rem}.p-datepicker .p-timepicker button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-timepicker button:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datepicker .p-timepicker button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-timepicker button:last-child{margin-top:.2em}.p-datepicker .p-timepicker span{font-size:1.25rem}.p-datepicker .p-timepicker>div{padding:0 .5rem}.p-datepicker.p-datepicker-timeonly .p-timepicker{border-top:0 none}.p-datepicker .p-monthpicker{margin:.5rem 0}.p-datepicker .p-monthpicker .p-monthpicker-month{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-monthpicker .p-monthpicker-month.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker .p-yearpicker{margin:.5rem 0}.p-datepicker .p-yearpicker .p-yearpicker-year{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-yearpicker .p-yearpicker-year.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group{border-left:1px solid #e5e7eb;padding-right:.5rem;padding-left:.5rem;padding-top:0;padding-bottom:0}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:first-child{padding-left:0;border-left:0 none}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:last-child{padding-right:0}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}p-calendar.p-calendar-clearable .p-inputtext{padding-right:2.5rem}p-calendar.p-calendar-clearable .p-calendar-clear-icon{color:#6b7280;right:.75rem}p-calendar.p-calendar-clearable .p-calendar-w-btn .p-calendar-clear-icon{color:#6b7280;right:3.75rem}@media screen and (max-width: 769px){.p-datepicker table th,.p-datepicker table td{padding:0}}.p-cascadeselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-cascadeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-cascadeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-cascadeselect .p-cascadeselect-label{background:transparent;border:0 none;padding:.75rem}.p-cascadeselect .p-cascadeselect-label.p-placeholder{color:#6b7280}.p-cascadeselect .p-cascadeselect-label:enabled:focus{outline:0 none;box-shadow:none}.p-cascadeselect .p-cascadeselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-cascadeselect.p-invalid.p-component{border-color:#e24c4c}.p-cascadeselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-cascadeselect-panel .p-cascadeselect-items{padding:.75rem 0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item{margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight.p-focus{background:#3b82f63d}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content{padding:.75rem 1.25rem}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon{font-size:.875rem}.p-input-filled .p-cascadeselect{background:#f3f4f6}.p-input-filled .p-cascadeselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-cascadeselect:not(.p-disabled).p-focus{background-color:#fff}p-cascadeselect.ng-dirty.ng-invalid>.p-cascadeselect{border-color:#e24c4c}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-label{padding-right:.75rem}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-clear-icon{color:#6b7280;right:3rem}.p-overlay-modal .p-cascadeselect-sublist .p-cascadeselect-panel{box-shadow:none;border-radius:0;padding:.25rem 0 .25rem .5rem}.p-overlay-modal .p-cascadeselect-item-active>.p-cascadeselect-item-content .p-cascadeselect-group-icon{transform:rotate(90deg)}.p-checkbox{width:22px;height:22px}.p-checkbox .p-checkbox-box{border:2px solid #d1d5db;background:#fff;width:22px;height:22px;color:#4b5563;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}.p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}.p-checkbox .p-checkbox-box.p-highlight{border-color:#3b82f6;background:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}p-checkbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-input-filled .p-checkbox .p-checkbox-box{background-color:#f3f4f6}.p-input-filled .p-checkbox .p-checkbox-box.p-highlight{background:#3b82f6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{background-color:#f3f4f6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{background:#1d4ed8}.p-checkbox-label{margin-left:.5rem}p-tristatecheckbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-chips:not(.p-disabled):hover .p-chips-multiple-container{border-color:#3b82f6}.p-chips:not(.p-disabled).p-focus .p-chips-multiple-container{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-chips .p-chips-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-chips .p-chips-multiple-container .p-chips-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-chips .p-chips-multiple-container .p-chips-token.p-focus{background:#d1d5db;color:#4b5563}.p-chips .p-chips-multiple-container .p-chips-token .p-chips-token-icon{margin-left:.5rem}.p-chips .p-chips-multiple-container .p-chips-input-token{padding:.375rem 0}.p-chips .p-chips-multiple-container .p-chips-input-token input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;padding:0;margin:0}p-chips.ng-dirty.ng-invalid>.p-chips>.p-inputtext{border-color:#e24c4c}p-chips.p-chips-clearable .p-inputtext{padding-right:1.75rem}p-chips.p-chips-clearable .p-chips-clear-icon{color:#6b7280;right:.75rem}.p-colorpicker-preview,.p-fluid .p-colorpicker-preview.p-inputtext{width:2rem;height:2rem}.p-colorpicker-panel{background:#323232;border:1px solid #191919}.p-colorpicker-panel .p-colorpicker-color-handle,.p-colorpicker-panel .p-colorpicker-hue-handle{border-color:#fff}.p-colorpicker-overlay-panel{box-shadow:0 2px 12px #0000001a}.p-dropdown{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-dropdown:not(.p-disabled):hover{border-color:#3b82f6}.p-dropdown:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-dropdown.p-dropdown-clearable .p-dropdown-label{padding-right:1.75rem}.p-dropdown .p-dropdown-label{background:transparent;border:0 none}.p-dropdown .p-dropdown-label.p-placeholder{color:#6b7280}.p-dropdown .p-dropdown-label:focus,.p-dropdown .p-dropdown-label:enabled:focus{outline:0 none;box-shadow:none}.p-dropdown .p-dropdown-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-dropdown .p-dropdown-clear-icon{color:#6b7280;right:3rem}.p-dropdown.p-invalid.p-component{border-color:#e24c4c}.p-dropdown-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-dropdown-panel .p-dropdown-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter{padding-right:1.75rem;margin-right:-1.75rem}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter-icon{right:.75rem;color:#6b7280}.p-dropdown-panel .p-dropdown-items{padding:.75rem 0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight.p-focus{background:#3b82f63d}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-dropdown-panel .p-dropdown-items .p-dropdown-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-dropdown-panel .p-dropdown-items .p-dropdown-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-dropdown{background:#f3f4f6}.p-input-filled .p-dropdown:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-dropdown:not(.p-disabled).p-focus{background-color:#fff}.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext{background-color:transparent}p-dropdown.ng-dirty.ng-invalid>.p-dropdown{border-color:#e24c4c}.p-icon-field .p-input-icon{position:absolute;top:50%;margin-top:-.5rem}.p-inputgroup-addon{background:#f3f4f6;color:#6b7280;border-top:1px solid #d1d5db;border-left:1px solid #d1d5db;border-bottom:1px solid #d1d5db;padding:.75rem;min-width:3rem}.p-inputgroup-addon:last-child{border-right:1px solid #d1d5db}.p-inputgroup>.p-component,.p-inputgroup>.p-inputwrapper>.p-inputtext,.p-inputgroup>.p-float-label>.p-component{border-radius:0;margin:0}.p-inputgroup>.p-component+.p-inputgroup-addon,.p-inputgroup>.p-inputwrapper>.p-inputtext+.p-inputgroup-addon,.p-inputgroup>.p-float-label>.p-component+.p-inputgroup-addon{border-left:0 none}.p-inputgroup>.p-component:focus,.p-inputgroup>.p-inputwrapper>.p-inputtext:focus,.p-inputgroup>.p-float-label>.p-component:focus{z-index:1}.p-inputgroup>.p-component:focus~label,.p-inputgroup>.p-inputwrapper>.p-inputtext:focus~label,.p-inputgroup>.p-float-label>.p-component:focus~label{z-index:1}.p-inputgroup-addon:first-child,.p-inputgroup button:first-child,.p-inputgroup input:first-child,.p-inputgroup>.p-inputwrapper:first-child>.p-component,.p-inputgroup>.p-inputwrapper:first-child>.p-component>.p-inputtext{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup .p-float-label:first-child input{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup-addon:last-child,.p-inputgroup button:last-child,.p-inputgroup input:last-child,.p-inputgroup>.p-inputwrapper:last-child>.p-component,.p-inputgroup>.p-inputwrapper:last-child>.p-component>.p-inputtext{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputgroup .p-float-label:last-child input{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-fluid .p-inputgroup .p-button{width:auto}.p-fluid .p-inputgroup .p-button.p-button-icon-only{width:3rem}.p-icon-field-left .p-input-icon:first-of-type{left:.75rem;color:#6b7280}.p-icon-field-right .p-input-icon:last-of-type{right:.75rem;color:#6b7280}p-inputmask.ng-dirty.ng-invalid>.p-inputtext{border-color:#e24c4c}p-inputmask.p-inputmask-clearable .p-inputtext{padding-right:2.5rem}p-inputmask.p-inputmask-clearable .p-inputmask-clear-icon{color:#6b7280;right:.75rem}p-inputnumber.ng-dirty.ng-invalid>.p-inputnumber>.p-inputtext{border-color:#e24c4c}p-inputnumber.p-inputnumber-clearable .p-inputnumber-input{padding-right:2.5rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-clear-icon{color:#6b7280;right:.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-stacked .p-inputnumber-clear-icon{right:3.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-horizontal .p-inputnumber-clear-icon{right:3.75rem}.p-inputswitch{width:3rem;height:1.75rem}.p-inputswitch .p-inputswitch-slider{background:#d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:30px}.p-inputswitch .p-inputswitch-slider:before{background:#fff;width:1.25rem;height:1.25rem;left:.25rem;margin-top:-.625rem;border-radius:50%;transition-duration:.2s}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{transform:translate(1.25rem)}.p-inputswitch.p-focus .p-inputswitch-slider{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-inputswitch:not(.p-disabled):hover .p-inputswitch-slider{background:#b7bcc5}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider{background:#3b82f6}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{background:#fff}.p-inputswitch.p-inputswitch-checked:not(.p-disabled):hover .p-inputswitch-slider{background:#2563eb}p-inputswitch.ng-dirty.ng-invalid>.p-inputswitch>.p-inputswitch-slider{border-color:#e24c4c}.p-inputtext{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;background:#fff;padding:.75rem;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:6px}.p-inputtext:enabled:hover{border-color:#3b82f6}.p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-inputtext.ng-dirty.ng-invalid{border-color:#e24c4c}.p-inputtext.p-inputtext-sm{font-size:.875rem;padding:.65625rem}.p-inputtext.p-inputtext-lg{font-size:1.25rem;padding:.9375rem}.p-float-label>label{left:.75rem;color:#6b7280;transition-duration:.2s}.p-float-label>.ng-invalid.ng-dirty+label{color:#e24c4c}.p-input-icon-left>.p-icon-wrapper.p-icon,.p-input-icon-left>i:first-of-type{left:.75rem;color:#6b7280}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.p-input-icon-left.p-float-label>label{left:2.5rem}.p-input-icon-right>.p-icon-wrapper,.p-input-icon-right>i:last-of-type{right:.75rem;color:#6b7280}.p-input-icon-right>.p-inputtext{padding-right:2.5rem}.p-icon-field-left>.p-inputtext{padding-left:2.5rem}.p-icon-field-left.p-float-label>label{left:2.5rem}.p-icon-field-right>.p-inputtext{padding-right:2.5rem}::-webkit-input-placeholder{color:#6b7280}:-moz-placeholder{color:#6b7280}::-moz-placeholder{color:#6b7280}:-ms-input-placeholder{color:#6b7280}.p-input-filled .p-inputtext{background-color:#f3f4f6}.p-input-filled .p-inputtext:enabled:hover{background-color:#f3f4f6}.p-input-filled .p-inputtext:enabled:focus{background-color:#fff}.p-inputtext-sm .p-inputtext{font-size:.875rem;padding:.65625rem}.p-inputtext-lg .p-inputtext{font-size:1.25rem;padding:.9375rem}.p-listbox{background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-listbox .p-listbox-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-listbox .p-listbox-header .p-listbox-filter{padding-right:1.75rem}.p-listbox .p-listbox-header .p-listbox-filter-icon{right:.75rem;color:#6b7280}.p-listbox .p-listbox-header .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list{padding:.75rem 0;outline:0 none}.p-listbox .p-listbox-list .p-listbox-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-listbox .p-listbox-list .p-listbox-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-listbox .p-listbox-list .p-listbox-item .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list .p-listbox-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-listbox .p-listbox-list .p-listbox-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-listbox:not(.p-disabled) .p-listbox-item.p-highlight.p-focus{background:#3b82f63d}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-listbox.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}p-listbox.ng-dirty.ng-invalid>.p-listbox{border-color:#e24c4c}.p-multiselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-multiselect:not(.p-disabled):hover{border-color:#3b82f6}.p-multiselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-multiselect .p-multiselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-multiselect .p-multiselect-label.p-placeholder{color:#6b7280}.p-multiselect.p-multiselect-chip .p-multiselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-multiselect.p-multiselect-chip .p-multiselect-token .p-multiselect-token-icon{margin-left:.5rem}.p-multiselect .p-multiselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputwrapper-filled.p-multiselect.p-multiselect-chip .p-multiselect-label{padding:.375rem .75rem}.p-multiselect-clearable .p-multiselect-label-container{padding-right:1.75rem}.p-multiselect-clearable .p-multiselect-clear-icon{color:#6b7280;right:3rem}.p-multiselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-multiselect-panel .p-multiselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext{padding-right:1.75rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon{right:.75rem;color:#6b7280}.p-multiselect-panel .p-multiselect-header .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-close{margin-left:.5rem;width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-multiselect-panel .p-multiselect-items{padding:.75rem 0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus{background:#3b82f63d}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-items .p-multiselect-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-multiselect-panel .p-multiselect-items .p-multiselect-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-multiselect{background:#f3f4f6}.p-input-filled .p-multiselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-multiselect:not(.p-disabled).p-focus{background-color:#fff}p-multiselect.ng-dirty.ng-invalid>.p-multiselect{border-color:#e24c4c}p-password.ng-invalid.ng-dirty>.p-password>.p-inputtext{border-color:#e24c4c}.p-password-panel{padding:1.25rem;background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-password-panel .p-password-meter{margin-bottom:.5rem;background:#e5e7eb}.p-password-panel .p-password-meter .p-password-strength.weak{background:#ea5455}.p-password-panel .p-password-meter .p-password-strength.medium{background:#ff9f42}.p-password-panel .p-password-meter .p-password-strength.strong{background:#29c76f}p-password.p-password-clearable .p-password-input{padding-right:2.5rem}p-password.p-password-clearable .p-password-clear-icon{color:#6b7280;right:.75rem}p-password.p-password-clearable.p-password-mask .p-password-input{padding-right:4.25rem}p-password.p-password-clearable.p-password-mask .p-password-clear-icon{color:#6b7280;right:2.5rem}.p-radiobutton{width:22px;height:22px}.p-radiobutton .p-radiobutton-box{border:2px solid #d1d5db;background:#fff;width:22px;height:22px;color:#4b5563;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-radiobutton .p-radiobutton-box:not(.p-disabled):not(.p-highlight):hover{border-color:#3b82f6}.p-radiobutton .p-radiobutton-box:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-radiobutton .p-radiobutton-box .p-radiobutton-icon{width:12px;height:12px;transition-duration:.2s;background-color:#fff}.p-radiobutton .p-radiobutton-box.p-highlight{border-color:#3b82f6;background:#3b82f6}.p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}p-radiobutton.ng-dirty.ng-invalid>.p-radiobutton>.p-radiobutton-box{border-color:#e24c4c}.p-input-filled .p-radiobutton .p-radiobutton-box{background-color:#f3f4f6}.p-input-filled .p-radiobutton .p-radiobutton-box:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight{background:#3b82f6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{background:#1d4ed8}.p-radiobutton-label{margin-left:.5rem}.p-rating{gap:.5rem}.p-rating .p-rating-item .p-rating-icon{color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;font-size:1.143rem}.p-rating .p-rating-item .p-rating-icon.p-icon{width:1.143rem;height:1.143rem}.p-rating .p-rating-item .p-rating-icon.p-rating-cancel{color:#ea5455}.p-rating .p-rating-item.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-rating .p-rating-item.p-rating-item-active .p-rating-icon{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon.p-rating-cancel{color:#e73d3e}.p-selectbutton .p-button{background:#fff;border:1px solid #d1d5db;color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-selectbutton .p-button .p-button-icon-left,.p-selectbutton .p-button .p-button-icon-right{color:#6b7280}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#374151}.p-selectbutton .p-button.p-highlight{background:#3b82f6;border-color:#3b82f6;color:#fff}.p-selectbutton .p-button.p-highlight .p-button-icon-left,.p-selectbutton .p-button.p-highlight .p-button-icon-right{color:#fff}.p-selectbutton .p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-selectbutton .p-button.p-highlight:hover .p-button-icon-left,.p-selectbutton .p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border-color:#e24c4c}.p-slider{background:#e5e7eb;border:0 none;border-radius:6px}.p-slider.p-slider-horizontal{height:.286rem}.p-slider.p-slider-horizontal .p-slider-handle{margin-top:-.5715rem;margin-left:-.5715rem}.p-slider.p-slider-vertical{width:.286rem}.p-slider.p-slider-vertical .p-slider-handle{margin-left:-.5715rem;margin-bottom:-.5715rem}.p-slider .p-slider-handle{height:1.143rem;width:1.143rem;background:#fff;border:2px solid #3B82F6;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-slider .p-slider-handle:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-slider .p-slider-range{background:#3b82f6}.p-slider:not(.p-disabled) .p-slider-handle:hover{background:#3b82f6;border-color:#3b82f6}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,left .2s}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-range{transition:width .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,bottom .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-range{transition:height .2s}.p-togglebutton.p-button{background:#fff;border:1px solid #d1d5db;color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-togglebutton.p-button .p-button-icon-left,.p-togglebutton.p-button .p-button-icon-right{color:#6b7280}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#374151}.p-togglebutton.p-button.p-highlight{background:#3b82f6;border-color:#3b82f6;color:#fff}.p-togglebutton.p-button.p-highlight .p-button-icon-left,.p-togglebutton.p-button.p-highlight .p-button-icon-right{color:#fff}.p-togglebutton.p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-togglebutton.p-button.p-highlight:hover .p-button-icon-left,.p-togglebutton.p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-togglebutton.ng-dirty.ng-invalid>.p-togglebutton.p-button{border-color:#e24c4c}.p-treeselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-treeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-treeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-treeselect .p-treeselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-treeselect .p-treeselect-label.p-placeholder{color:#6b7280}.p-treeselect.p-treeselect-chip .p-treeselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-treeselect .p-treeselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}p-treeselect.ng-invalid.ng-dirty>.p-treeselect{border-color:#e24c4c}.p-inputwrapper-filled .p-treeselect.p-treeselect-chip .p-treeselect-label{padding:.375rem .75rem}.p-treeselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-treeselect-panel .p-treeselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container{margin-right:.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter{padding-right:1.75rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter-icon{right:.75rem;color:#6b7280}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter{padding-right:3.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter-clear-icon{right:2.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-close{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treeselect-panel .p-treeselect-items-wrapper .p-tree{border:0 none}.p-treeselect-panel .p-treeselect-items-wrapper .p-treeselect-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-treeselect{background:#f3f4f6}.p-input-filled .p-treeselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-treeselect:not(.p-disabled).p-focus{background-color:#fff}p-treeselect.p-treeselect-clearable .p-treeselect-label-container{padding-right:1.75rem}p-treeselect.p-treeselect-clearable .p-treeselect-clear-icon{color:#6b7280;right:3rem}.p-button{color:#fff;background:#3b82f6;border:1px solid #3B82F6;padding:.75rem 1.25rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-button:not(:disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-button:not(:disabled):active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.p-button.p-button-outlined{background-color:transparent;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:not(:disabled):active{background:#3b82f629;color:#3b82f6;border:1px solid}.p-button.p-button-outlined.p-button-plain{color:#6b7280;border-color:#6b7280}.p-button.p-button-outlined.p-button-plain:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-button.p-button-outlined.p-button-plain:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-button.p-button-text{background-color:transparent;color:#3b82f6;border-color:transparent}.p-button.p-button-text:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border-color:transparent}.p-button.p-button-text:not(:disabled):active{background:#3b82f629;color:#3b82f6;border-color:transparent}.p-button.p-button-text.p-button-plain{color:#6b7280}.p-button.p-button-text.p-button-plain:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-button.p-button-text.p-button-plain:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-button .p-button-label{transition-duration:.2s}.p-button .p-button-icon-left{margin-right:.5rem}.p-button .p-button-icon-right{margin-left:.5rem}.p-button .p-button-icon-bottom{margin-top:.5rem}.p-button .p-button-icon-top{margin-bottom:.5rem}.p-button .p-badge{margin-left:.5rem;min-width:1rem;height:1rem;line-height:1rem;color:#3b82f6;background-color:#fff}.p-button.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-button.p-button-rounded{border-radius:2rem}.p-button.p-button-icon-only{width:3rem;padding:.75rem 0}.p-button.p-button-icon-only .p-button-icon-left,.p-button.p-button-icon-only .p-button-icon-right{margin:0}.p-button.p-button-icon-only.p-button-rounded{border-radius:50%;height:3rem}.p-button.p-button-sm{font-size:.875rem;padding:.65625rem 1.09375rem}.p-button.p-button-sm .p-button-icon{font-size:.875rem}.p-button.p-button-lg{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-button.p-button-lg .p-button-icon{font-size:1.25rem}.p-button.p-button-loading-label-only .p-button-label{margin-left:.5rem}.p-button.p-button-loading-label-only .p-button-loading-icon{margin-right:0}.p-fluid .p-button{width:100%}.p-fluid .p-button-icon-only{width:3rem}.p-fluid .p-buttonset{display:flex}.p-fluid .p-buttonset .p-button{flex:1}.p-button.p-button-secondary,.p-buttonset.p-button-secondary>.p-button,.p-splitbutton.p-button-secondary>.p-button{color:#fff;background:#64748b;border:1px solid #64748b}.p-button.p-button-secondary:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):hover{background:#475569;color:#fff;border-color:#475569}.p-button.p-button-secondary:not(:disabled):focus,.p-buttonset.p-button-secondary>.p-button:not(:disabled):focus,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #e2e8f0}.p-button.p-button-secondary:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):active{background:#334155;color:#fff;border-color:#334155}.p-button.p-button-secondary.p-button-outlined,.p-buttonset.p-button-secondary>.p-button.p-button-outlined,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined{background-color:transparent;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:not(:disabled):hover{background:#64748b0a;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:not(:disabled):active{background:#64748b29;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-text,.p-buttonset.p-button-secondary>.p-button.p-button-text,.p-splitbutton.p-button-secondary>.p-button.p-button-text{background-color:transparent;color:#64748b;border-color:transparent}.p-button.p-button-secondary.p-button-text:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button.p-button-text:not(:disabled):hover{background:#64748b0a;border-color:transparent;color:#64748b}.p-button.p-button-secondary.p-button-text:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button.p-button-text:not(:disabled):active{background:#64748b29;border-color:transparent;color:#64748b}.p-button.p-button-info,.p-buttonset.p-button-info>.p-button,.p-splitbutton.p-button-info>.p-button{color:#fff;background:#0ea5e9;border:1px solid #0ea5e9}.p-button.p-button-info:not(:disabled):hover,.p-buttonset.p-button-info>.p-button:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button:not(:disabled):hover{background:#0284c7;color:#fff;border-color:#0284c7}.p-button.p-button-info:not(:disabled):focus,.p-buttonset.p-button-info>.p-button:not(:disabled):focus,.p-splitbutton.p-button-info>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #bfdbfe}.p-button.p-button-info:not(:disabled):active,.p-buttonset.p-button-info>.p-button:not(:disabled):active,.p-splitbutton.p-button-info>.p-button:not(:disabled):active{background:#0369a1;color:#fff;border-color:#0369a1}.p-button.p-button-info.p-button-outlined,.p-buttonset.p-button-info>.p-button.p-button-outlined,.p-splitbutton.p-button-info>.p-button.p-button-outlined{background-color:transparent;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-info>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button.p-button-outlined:not(:disabled):hover{background:#0ea5e90a;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-info>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-info>.p-button.p-button-outlined:not(:disabled):active{background:#0ea5e929;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-text,.p-buttonset.p-button-info>.p-button.p-button-text,.p-splitbutton.p-button-info>.p-button.p-button-text{background-color:transparent;color:#0ea5e9;border-color:transparent}.p-button.p-button-info.p-button-text:not(:disabled):hover,.p-buttonset.p-button-info>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button.p-button-text:not(:disabled):hover{background:#0ea5e90a;border-color:transparent;color:#0ea5e9}.p-button.p-button-info.p-button-text:not(:disabled):active,.p-buttonset.p-button-info>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-info>.p-button.p-button-text:not(:disabled):active{background:#0ea5e929;border-color:transparent;color:#0ea5e9}.p-button.p-button-success,.p-buttonset.p-button-success>.p-button,.p-splitbutton.p-button-success>.p-button{color:#fff;background:#22c55e;border:1px solid #22c55e}.p-button.p-button-success:not(:disabled):hover,.p-buttonset.p-button-success>.p-button:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button:not(:disabled):hover{background:#16a34a;color:#fff;border-color:#16a34a}.p-button.p-button-success:not(:disabled):focus,.p-buttonset.p-button-success>.p-button:not(:disabled):focus,.p-splitbutton.p-button-success>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #bbf7d0}.p-button.p-button-success:not(:disabled):active,.p-buttonset.p-button-success>.p-button:not(:disabled):active,.p-splitbutton.p-button-success>.p-button:not(:disabled):active{background:#15803d;color:#fff;border-color:#15803d}.p-button.p-button-success.p-button-outlined,.p-buttonset.p-button-success>.p-button.p-button-outlined,.p-splitbutton.p-button-success>.p-button.p-button-outlined{background-color:transparent;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-success>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button.p-button-outlined:not(:disabled):hover{background:#22c55e0a;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-success>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-success>.p-button.p-button-outlined:not(:disabled):active{background:#22c55e29;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-text,.p-buttonset.p-button-success>.p-button.p-button-text,.p-splitbutton.p-button-success>.p-button.p-button-text{background-color:transparent;color:#22c55e;border-color:transparent}.p-button.p-button-success.p-button-text:not(:disabled):hover,.p-buttonset.p-button-success>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button.p-button-text:not(:disabled):hover{background:#22c55e0a;border-color:transparent;color:#22c55e}.p-button.p-button-success.p-button-text:not(:disabled):active,.p-buttonset.p-button-success>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-success>.p-button.p-button-text:not(:disabled):active{background:#22c55e29;border-color:transparent;color:#22c55e}.p-button.p-button-warning,.p-buttonset.p-button-warning>.p-button,.p-splitbutton.p-button-warning>.p-button{color:#fff;background:#f97316;border:1px solid #f97316}.p-button.p-button-warning:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button:not(:disabled):hover{background:#ea580c;color:#fff;border-color:#ea580c}.p-button.p-button-warning:not(:disabled):focus,.p-buttonset.p-button-warning>.p-button:not(:disabled):focus,.p-splitbutton.p-button-warning>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #fde68a}.p-button.p-button-warning:not(:disabled):active,.p-buttonset.p-button-warning>.p-button:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button:not(:disabled):active{background:#c2410c;color:#fff;border-color:#c2410c}.p-button.p-button-warning.p-button-outlined,.p-buttonset.p-button-warning>.p-button.p-button-outlined,.p-splitbutton.p-button-warning>.p-button.p-button-outlined{background-color:transparent;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:not(:disabled):hover{background:#f973160a;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-warning>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:not(:disabled):active{background:#f9731629;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-text,.p-buttonset.p-button-warning>.p-button.p-button-text,.p-splitbutton.p-button-warning>.p-button.p-button-text{background-color:transparent;color:#f97316;border-color:transparent}.p-button.p-button-warning.p-button-text:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button.p-button-text:not(:disabled):hover{background:#f973160a;border-color:transparent;color:#f97316}.p-button.p-button-warning.p-button-text:not(:disabled):active,.p-buttonset.p-button-warning>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button.p-button-text:not(:disabled):active{background:#f9731629;border-color:transparent;color:#f97316}.p-button.p-button-help,.p-buttonset.p-button-help>.p-button,.p-splitbutton.p-button-help>.p-button{color:#fff;background:#a855f7;border:1px solid #a855f7}.p-button.p-button-help:not(:disabled):hover,.p-buttonset.p-button-help>.p-button:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button:not(:disabled):hover{background:#9333ea;color:#fff;border-color:#9333ea}.p-button.p-button-help:not(:disabled):focus,.p-buttonset.p-button-help>.p-button:not(:disabled):focus,.p-splitbutton.p-button-help>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #e9d5ff}.p-button.p-button-help:not(:disabled):active,.p-buttonset.p-button-help>.p-button:not(:disabled):active,.p-splitbutton.p-button-help>.p-button:not(:disabled):active{background:#7e22ce;color:#fff;border-color:#7e22ce}.p-button.p-button-help.p-button-outlined,.p-buttonset.p-button-help>.p-button.p-button-outlined,.p-splitbutton.p-button-help>.p-button.p-button-outlined{background-color:transparent;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-help>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button.p-button-outlined:not(:disabled):hover{background:#a855f70a;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-help>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-help>.p-button.p-button-outlined:not(:disabled):active{background:#a855f729;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-text,.p-buttonset.p-button-help>.p-button.p-button-text,.p-splitbutton.p-button-help>.p-button.p-button-text{background-color:transparent;color:#a855f7;border-color:transparent}.p-button.p-button-help.p-button-text:not(:disabled):hover,.p-buttonset.p-button-help>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button.p-button-text:not(:disabled):hover{background:#a855f70a;border-color:transparent;color:#a855f7}.p-button.p-button-help.p-button-text:not(:disabled):active,.p-buttonset.p-button-help>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-help>.p-button.p-button-text:not(:disabled):active{background:#a855f729;border-color:transparent;color:#a855f7}.p-button.p-button-danger,.p-buttonset.p-button-danger>.p-button,.p-splitbutton.p-button-danger>.p-button{color:#fff;background:#ef4444;border:1px solid #ef4444}.p-button.p-button-danger:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button:not(:disabled):hover{background:#dc2626;color:#fff;border-color:#dc2626}.p-button.p-button-danger:not(:disabled):focus,.p-buttonset.p-button-danger>.p-button:not(:disabled):focus,.p-splitbutton.p-button-danger>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #fecaca}.p-button.p-button-danger:not(:disabled):active,.p-buttonset.p-button-danger>.p-button:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button:not(:disabled):active{background:#b91c1c;color:#fff;border-color:#b91c1c}.p-button.p-button-danger.p-button-outlined,.p-buttonset.p-button-danger>.p-button.p-button-outlined,.p-splitbutton.p-button-danger>.p-button.p-button-outlined{background-color:transparent;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:not(:disabled):hover{background:#ef44440a;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-danger>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:not(:disabled):active{background:#ef444429;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-text,.p-buttonset.p-button-danger>.p-button.p-button-text,.p-splitbutton.p-button-danger>.p-button.p-button-text{background-color:transparent;color:#ef4444;border-color:transparent}.p-button.p-button-danger.p-button-text:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button.p-button-text:not(:disabled):hover{background:#ef44440a;border-color:transparent;color:#ef4444}.p-button.p-button-danger.p-button-text:not(:disabled):active,.p-buttonset.p-button-danger>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button.p-button-text:not(:disabled):active{background:#ef444429;border-color:transparent;color:#ef4444}.p-button.p-button-link{color:#1d4ed8;background:transparent;border:transparent}.p-button.p-button-link:not(:disabled):hover{background:transparent;color:#1d4ed8;border-color:transparent}.p-button.p-button-link:not(:disabled):hover .p-button-label{text-decoration:underline}.p-button.p-button-link:not(:disabled):focus{background:transparent;box-shadow:0 0 0 .2rem #bfdbfe;border-color:transparent}.p-button.p-button-link:not(:disabled):active{background:transparent;color:#1d4ed8;border-color:transparent}.p-speeddial-button.p-button.p-button-icon-only{width:4rem;height:4rem}.p-speeddial-button.p-button.p-button-icon-only .p-button-icon{font-size:1.3rem}.p-speeddial-button.p-button.p-button-icon-only .p-icon{width:1.3rem;height:1.3rem}.p-speeddial-list{outline:0 none}.p-speeddial-item.p-focus>.p-speeddial-action{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-speeddial-action{width:3rem;height:3rem;background:#4b5563;color:#fff}.p-speeddial-action:hover{background:#022354;color:#fff}.p-speeddial-direction-up .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-up .p-speeddial-item:first-child{margin-bottom:.5rem}.p-speeddial-direction-down .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-down .p-speeddial-item:first-child{margin-top:.5rem}.p-speeddial-direction-left .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-left .p-speeddial-item:first-child{margin-right:.5rem}.p-speeddial-direction-right .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-right .p-speeddial-item:first-child{margin-left:.5rem}.p-speeddial-circle .p-speeddial-item,.p-speeddial-semi-circle .p-speeddial-item,.p-speeddial-quarter-circle .p-speeddial-item{margin:0}.p-speeddial-circle .p-speeddial-item:first-child,.p-speeddial-circle .p-speeddial-item:last-child,.p-speeddial-semi-circle .p-speeddial-item:first-child,.p-speeddial-semi-circle .p-speeddial-item:last-child,.p-speeddial-quarter-circle .p-speeddial-item:first-child,.p-speeddial-quarter-circle .p-speeddial-item:last-child{margin:0}.p-speeddial-mask{background-color:#0006}.p-splitbutton{border-radius:6px}.p-splitbutton.p-button-outlined>.p-button{background-color:transparent;color:#3b82f6;border:1px solid}.p-splitbutton.p-button-outlined>.p-button:not(:disabled):hover{background:#3b82f60a;color:#3b82f6}.p-splitbutton.p-button-outlined>.p-button:not(:disabled):active{background:#3b82f629;color:#3b82f6}.p-splitbutton.p-button-outlined.p-button-plain>.p-button{color:#6b7280;border-color:#6b7280}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-splitbutton.p-button-text>.p-button{background-color:transparent;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:not(:disabled):active{background:#3b82f629;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text.p-button-plain>.p-button{color:#6b7280}.p-splitbutton.p-button-text.p-button-plain>.p-button:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-splitbutton.p-button-text.p-button-plain>.p-button:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-splitbutton.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-splitbutton.p-button-rounded{border-radius:2rem}.p-splitbutton.p-button-rounded>.p-button{border-radius:2rem}.p-splitbutton.p-button-sm>.p-button{font-size:.875rem;padding:.65625rem 1.09375rem}.p-splitbutton.p-button-sm>.p-button .p-button-icon{font-size:.875rem}.p-splitbutton.p-button-lg>.p-button{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-splitbutton.p-button-lg>.p-button .p-button-icon{font-size:1.25rem}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button{background-color:transparent;color:#64748b;border:1px solid}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(:disabled):hover{background:#64748b0a;color:#64748b}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(:disabled):active{background:#64748b29;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button{background-color:transparent;color:#64748b;border-color:transparent}.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(:disabled):hover{background:#64748b0a;border-color:transparent;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(:disabled):active{background:#64748b29;border-color:transparent;color:#64748b}.p-splitbutton.p-button-info.p-button-outlined>.p-button{background-color:transparent;color:#0ea5e9;border:1px solid}.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(:disabled):hover{background:#0ea5e90a;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(:disabled):active{background:#0ea5e929;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-text>.p-button{background-color:transparent;color:#0ea5e9;border-color:transparent}.p-splitbutton.p-button-info.p-button-text>.p-button:not(:disabled):hover{background:#0ea5e90a;border-color:transparent;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-text>.p-button:not(:disabled):active{background:#0ea5e929;border-color:transparent;color:#0ea5e9}.p-splitbutton.p-button-success.p-button-outlined>.p-button{background-color:transparent;color:#22c55e;border:1px solid}.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(:disabled):hover{background:#22c55e0a;color:#22c55e}.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(:disabled):active{background:#22c55e29;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button{background-color:transparent;color:#22c55e;border-color:transparent}.p-splitbutton.p-button-success.p-button-text>.p-button:not(:disabled):hover{background:#22c55e0a;border-color:transparent;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button:not(:disabled):active{background:#22c55e29;border-color:transparent;color:#22c55e}.p-splitbutton.p-button-warning.p-button-outlined>.p-button{background-color:transparent;color:#f97316;border:1px solid}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(:disabled):hover{background:#f973160a;color:#f97316}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(:disabled):active{background:#f9731629;color:#f97316}.p-splitbutton.p-button-warning.p-button-text>.p-button{background-color:transparent;color:#f97316;border-color:transparent}.p-splitbutton.p-button-warning.p-button-text>.p-button:not(:disabled):hover{background:#f973160a;border-color:transparent;color:#f97316}.p-splitbutton.p-button-warning.p-button-text>.p-button:not(:disabled):active{background:#f9731629;border-color:transparent;color:#f97316}.p-splitbutton.p-button-help.p-button-outlined>.p-button{background-color:transparent;color:#a855f7;border:1px solid}.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(:disabled):hover{background:#a855f70a;color:#a855f7}.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(:disabled):active{background:#a855f729;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button{background-color:transparent;color:#a855f7;border-color:transparent}.p-splitbutton.p-button-help.p-button-text>.p-button:not(:disabled):hover{background:#a855f70a;border-color:transparent;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button:not(:disabled):active{background:#a855f729;border-color:transparent;color:#a855f7}.p-splitbutton.p-button-danger.p-button-outlined>.p-button{background-color:transparent;color:#ef4444;border:1px solid}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(:disabled):hover{background:#ef44440a;color:#ef4444}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(:disabled):active{background:#ef444429;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button{background-color:transparent;color:#ef4444;border-color:transparent}.p-splitbutton.p-button-danger.p-button-text>.p-button:not(:disabled):hover{background:#ef44440a;border-color:transparent;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button:not(:disabled):active{background:#ef444429;border-color:transparent;color:#ef4444}.p-carousel .p-carousel-content .p-carousel-prev,.p-carousel .p-carousel-content .p-carousel-next{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin:.5rem}.p-carousel .p-carousel-content .p-carousel-prev:enabled:hover,.p-carousel .p-carousel-content .p-carousel-next:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-carousel .p-carousel-content .p-carousel-prev:focus-visible,.p-carousel .p-carousel-content .p-carousel-next:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-carousel .p-carousel-indicators{padding:1rem}.p-carousel .p-carousel-indicators .p-carousel-indicator{margin-right:.5rem;margin-bottom:.5rem}.p-carousel .p-carousel-indicators .p-carousel-indicator button{background-color:#d1d5db;width:2rem;height:.5rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:0}.p-carousel .p-carousel-indicators .p-carousel-indicator button:hover{background:#9ca3af}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-datatable .p-paginator-top,.p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-datatable .p-datatable-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb;transition:box-shadow .2s}.p-datatable .p-datatable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb}.p-datatable .p-sortable-column .p-sortable-column-icon{color:#374151;margin-left:.5rem}.p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#eff6ff;margin-left:.5rem}.p-datatable .p-sortable-column:not(.p-highlight):hover{background:#f3f4f6;color:#374151}.p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#374151}.p-datatable .p-sortable-column.p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover{background:#eff6ff;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column:focus-visible{box-shadow:inset 0 0 0 .15rem #bfdbfe;outline:0 none}.p-datatable .p-datatable-tbody>tr{background:#fff;color:#4b5563;transition:box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save{margin-right:.5rem}.p-datatable .p-datatable-tbody>tr:focus-visible{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-datatable .p-datatable-tbody>tr.p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #eff6ff}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #eff6ff}.p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-datatable .p-column-resizer-helper{background:#3b82f6}.p-datatable .p-datatable-scrollable-header,.p-datatable .p-datatable-scrollable-footer{background:#f9fafb}.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#f9fafb}.p-datatable .p-datatable-loading-icon{font-size:2rem}.p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-footer{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-paginator-top{border-width:0 1px 0 1px}.p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-width:1px 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td{border-width:0 0 0 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td:last-child{border-width:0 1px 0 1px}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:#f8f8fa}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight .p-row-toggler{color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight .p-row-toggler:hover{color:#1d4ed8}.p-datatable.p-datatable-sm .p-datatable-header{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-footer{padding:.5rem}.p-datatable.p-datatable-lg .p-datatable-header{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-footer{padding:1.25rem}.p-dataview .p-paginator-top,.p-dataview .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-dataview .p-dataview-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-dataview .p-dataview-content{background:#fff;color:#4b5563;border:0 none;padding:0}.p-dataview .p-dataview-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-dataview .p-dataview-loading-icon{font-size:2rem}.p-dataview .p-dataview-emptymessage{padding:1.25rem}.p-column-filter-row .p-column-filter-menu-button,.p-column-filter-row .p-column-filter-clear-button{margin-left:.5rem}.p-column-filter-menu-button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-menu-button:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-column-filter-menu-button.p-column-filter-menu-button-open,.p-column-filter-menu-button.p-column-filter-menu-button-open:hover{background:#f3f4f6;color:#374151}.p-column-filter-menu-button.p-column-filter-menu-button-active,.p-column-filter-menu-button.p-column-filter-menu-button-active:hover{background:#eff6ff;color:#1d4ed8}.p-column-filter-menu-button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-clear-button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-clear-button:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-column-filter-clear-button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-overlay{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a;min-width:12.5rem}.p-column-filter-overlay .p-column-filter-row-items{padding:.75rem 0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-column-filter-overlay-menu .p-column-filter-operator{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-column-filter-overlay-menu .p-column-filter-constraint{padding:1.25rem;border-bottom:1px solid #e5e7eb}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-matchmode-dropdown{margin-bottom:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-remove-button{margin-top:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint:last-child{border-bottom:0 none}.p-column-filter-overlay-menu .p-column-filter-add-rule{padding:.75rem 1.25rem}.p-column-filter-overlay-menu .p-column-filter-buttonbar,.p-orderlist .p-orderlist-controls{padding:1.25rem}.p-orderlist .p-orderlist-controls .p-button{margin-bottom:.5rem}.p-orderlist .p-orderlist-list-container{background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;outline-color:transparent}.p-orderlist .p-orderlist-list-container.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-orderlist .p-orderlist-header{color:#374151;padding:1.25rem;font-weight:700}.p-orderlist .p-orderlist-header .p-orderlist-title{font-weight:700}.p-orderlist .p-orderlist-filter-container{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-bottom:0 none}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-input{padding-right:1.75rem}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-icon{right:.75rem;color:#6b7280}.p-orderlist .p-orderlist-list{color:#4b5563;padding:.75rem 0;outline:0 none}.p-orderlist .p-orderlist-list:not(:first-child){border-top:1px solid #e5e7eb}.p-orderlist .p-orderlist-list .p-orderlist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s}.p-orderlist .p-orderlist-list .p-orderlist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-orderlist .p-orderlist-list .p-orderlist-item.p-focus{color:#4b5563;background:#e5e7eb}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight.p-focus{background:#3b82f63d}.p-orderlist .p-orderlist-list .p-orderlist-empty-message{padding:.75rem 1.25rem;color:#4b5563}.p-orderlist .p-orderlist-list:not(.cdk-drop-list-dragging) .p-orderlist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(2n){background:#f8f8fa}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(2n):hover{background:#f3f4f6}.p-orderlist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#4b5563;background:#fff;margin:0}.p-organizationchart .p-organizationchart-node-content.p-organizationchart-selectable-node:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-organizationchart .p-organizationchart-node-content.p-highlight{background:#eff6ff;color:#1d4ed8}.p-organizationchart .p-organizationchart-node-content.p-highlight .p-node-toggler i{color:#70aeff}.p-organizationchart .p-organizationchart-line-down{background:#e5e7eb}.p-organizationchart .p-organizationchart-line-left{border-right:1px solid #e5e7eb;border-color:#e5e7eb}.p-organizationchart .p-organizationchart-line-top{border-top:1px solid #e5e7eb;border-color:#e5e7eb}.p-organizationchart .p-organizationchart-node-content{border:1px solid #e5e7eb;background:#fff;color:#4b5563;padding:1.25rem}.p-organizationchart .p-organizationchart-node-content .p-node-toggler{background:inherit;color:inherit;border-radius:50%}.p-organizationchart .p-organizationchart-node-content .p-node-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-paginator{background:#fff;color:#6b7280;border:solid #f3f4f6;border-width:0;padding:.5rem 1rem;border-radius:6px}.p-paginator .p-paginator-first,.p-paginator .p-paginator-prev,.p-paginator .p-paginator-next,.p-paginator .p-paginator-last{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:transparent;color:#374151}.p-paginator .p-paginator-first{border-top-left-radius:50%;border-bottom-left-radius:50%}.p-paginator .p-paginator-last{border-top-right-radius:50%;border-bottom-right-radius:50%}.p-paginator .p-dropdown{margin-left:.5rem;margin-right:.5rem;height:3rem}.p-paginator .p-dropdown .p-dropdown-label{padding-right:0}.p-paginator .p-paginator-page-input{margin-left:.5rem;margin-right:.5rem}.p-paginator .p-paginator-page-input .p-inputtext{max-width:3rem}.p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;padding:0 .5rem}.p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:#eff6ff;border-color:#eff6ff;color:#1d4ed8}.p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f3f4f6;border-color:transparent;color:#374151}.p-picklist .p-picklist-buttons{padding:1.25rem}.p-picklist .p-picklist-buttons .p-button{margin-bottom:.5rem}.p-picklist .p-picklist-list-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;outline-color:transparent}.p-picklist .p-picklist-list-wrapper.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-picklist .p-picklist-header{color:#374151;padding:1.25rem;font-weight:700}.p-picklist .p-picklist-header .p-picklist-title{font-weight:700}.p-picklist .p-picklist-filter-container{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-bottom:0 none}.p-picklist .p-picklist-filter-container .p-picklist-filter-input{padding-right:1.75rem}.p-picklist .p-picklist-filter-container .p-picklist-filter-icon{right:.75rem;color:#6b7280}.p-picklist .p-picklist-list{color:#4b5563;padding:.75rem 0;outline:0 none}.p-picklist .p-picklist-list:not(:first-child){border-top:1px solid #e5e7eb}.p-picklist .p-picklist-list .p-picklist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s}.p-picklist .p-picklist-list .p-picklist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-picklist .p-picklist-list .p-picklist-item.p-focus{color:#4b5563;background:#e5e7eb}.p-picklist .p-picklist-list .p-picklist-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-picklist .p-picklist-list .p-picklist-item.p-highlight.p-focus{background:#3b82f63d}.p-picklist .p-picklist-list .p-picklist-empty-message{padding:.75rem 1.25rem;color:#4b5563}.p-picklist .p-picklist-list:not(.cdk-drop-list-dragging) .p-picklist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(2n){background:#f8f8fa}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(2n):hover{background:#f3f4f6}.p-picklist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#4b5563;background:#fff;margin:0}.p-timeline .p-timeline-event-marker{border:2px solid #3B82F6;border-radius:50%;width:1rem;height:1rem;background-color:#fff}.p-timeline .p-timeline-event-connector{background-color:#e5e7eb}.p-timeline.p-timeline-vertical .p-timeline-event-opposite,.p-timeline.p-timeline-vertical .p-timeline-event-content{padding:0 1rem}.p-timeline.p-timeline-vertical .p-timeline-event-connector{width:2px}.p-timeline.p-timeline-horizontal .p-timeline-event-opposite,.p-timeline.p-timeline-horizontal .p-timeline-event-content{padding:1rem 0}.p-timeline.p-timeline-horizontal .p-timeline-event-connector{height:2px}.p-tree{border:1px solid #e5e7eb;background:#fff;color:#4b5563;padding:1.25rem;border-radius:6px}.p-tree .p-tree-container .p-treenode{padding:.143rem;outline:0 none}.p-tree .p-tree-container .p-treenode:focus>.p-treenode-content{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content{border-radius:6px;transition:box-shadow .2s;padding:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem;width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-treenode-icon{margin-right:.5rem;color:#6b7280}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox .p-indeterminate .p-checkbox-icon{color:#4b5563}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight{background:#eff6ff;color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler:hover,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon:hover{color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-dragover{background:#f3f4f6;color:#4b5563}.p-tree .p-tree-filter-container{margin-bottom:.5rem}.p-tree .p-tree-filter-container .p-tree-filter{width:100%;padding-right:1.75rem}.p-tree .p-tree-filter-container .p-tree-filter-icon{right:.75rem;color:#6b7280}.p-tree .p-treenode-children{padding:0 0 0 1rem}.p-tree .p-tree-loading-icon{font-size:2rem}.p-tree .p-tree-loading-icon.p-icon{width:2rem;height:2rem}.p-tree .p-treenode-droppoint.p-treenode-droppoint-active{background-color:#8cbeff}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content{border-radius:6px;border:1px solid #e5e7eb;background-color:#fff;color:#4b5563;padding:.5rem;transition:box-shadow .2s}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight{background-color:#eff6ff;color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight .p-treenode-icon{color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-icon{color:#6b7280;margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-label:not(.p-highlight):hover{background-color:inherit;color:inherit}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-paginator-top,.p-treetable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-treetable .p-treetable-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb;transition:box-shadow .2s}.p-treetable .p-treetable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb}.p-treetable .p-sortable-column{outline-color:#bfdbfe}.p-treetable .p-sortable-column .p-sortable-column-icon{color:#374151;margin-left:.5rem}.p-treetable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#eff6ff;margin-left:.5rem}.p-treetable .p-sortable-column:not(.p-highlight):hover{background:#f3f4f6;color:#374151}.p-treetable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#374151}.p-treetable .p-sortable-column.p-highlight{background:#eff6ff;color:#1d4ed8}.p-treetable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr{background:#fff;color:#4b5563;transition:box-shadow .2s}.p-treetable .p-treetable-tbody>tr>td{text-align:left;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler.p-icon{width:2rem;height:2rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox{margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon{color:#4b5563}.p-treetable .p-treetable-tbody>tr:focus-visible{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-treetable .p-treetable-tbody>tr.p-highlight{background:#eff6ff;color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler:hover{color:#1d4ed8}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover .p-treetable-toggler{color:#4b5563}.p-treetable .p-column-resizer-helper{background:#3b82f6}.p-treetable .p-treetable-scrollable-header,.p-treetable .p-treetable-scrollable-footer{background:#f9fafb}.p-treetable .p-treetable-loading-icon{font-size:2rem}.p-treetable .p-treetable-loading-icon.p-icon{width:2rem;height:2rem}.p-treetable.p-treetable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-footer{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-top{border-width:0 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-bottom{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td{border-width:1px}.p-treetable.p-treetable-sm .p-treetable-header{padding:.875rem}.p-treetable.p-treetable-sm .p-treetable-thead>tr>th{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-footer{padding:.5rem}.p-treetable.p-treetable-lg .p-treetable-header{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-thead>tr>th{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-footer{padding:1.25rem}.p-virtualscroller .p-virtualscroller-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-virtualscroller .p-virtualscroller-content{background:#fff;color:#4b5563;border:0 none;padding:0}.p-virtualscroller .p-virtualscroller-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem;border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb;font-weight:700;border-radius:6px;transition:box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link .p-accordion-toggle-icon{margin-right:.5rem}.p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-accordion .p-accordion-header:not(.p-highlight):not(.p-disabled):hover .p-accordion-header-link{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link{background:#f9fafb;border-color:#e5e7eb;color:#374151;border-bottom-right-radius:0;border-bottom-left-radius:0}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link{border-color:#e5e7eb;background:#f3f4f6;color:#374151}.p-accordion .p-accordion-content{padding:1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0;border-radius:0 0 6px 6px}.p-accordion p-accordiontab .p-accordion-tab{margin-bottom:4px}.p-card{background:#fff;color:#4b5563;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;border-radius:6px}.p-card .p-card-body{padding:1.25rem}.p-card .p-card-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.p-card .p-card-subtitle{font-weight:400;margin-bottom:.5rem;color:#6b7280}.p-card .p-card-content{padding:1.25rem 0}.p-card .p-card-footer{padding:1.25rem 0 0}.p-divider .p-divider-content{background-color:#fff}.p-divider.p-divider-horizontal{margin:1.25rem 0;padding:0 1.25rem}.p-divider.p-divider-horizontal:before{border-top:1px #e5e7eb}.p-divider.p-divider-horizontal .p-divider-content{padding:0 .5rem}.p-divider.p-divider-vertical{margin:0 1.25rem;padding:1.25rem 0}.p-divider.p-divider-vertical:before{border-left:1px #e5e7eb}.p-divider.p-divider-vertical .p-divider-content{padding:.5rem 0}.p-fieldset{border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-radius:6px}.p-fieldset .p-fieldset-legend{padding:1.25rem;border:1px solid #e5e7eb;color:#374151;background:#f9fafb;font-weight:700;border-radius:6px}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend{padding:0;transition:background-color .2s,color .2s,box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a{padding:1.25rem;color:#374151;border-radius:6px;transition:box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a .p-fieldset-toggler{margin-right:.5rem}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend:hover{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-fieldset .p-fieldset-content{padding:1.25rem}.p-panel .p-panel-header{border:1px solid #e5e7eb;padding:1.25rem;background:#f9fafb;color:#374151;border-top-right-radius:6px;border-top-left-radius:6px}.p-panel .p-panel-header .p-panel-title{font-weight:700}.p-panel .p-panel-header .p-panel-header-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-panel .p-panel-header .p-panel-header-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-panel .p-panel-header .p-panel-header-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-panel.p-panel-toggleable .p-panel-header{padding:.75rem 1.25rem}.p-panel .p-panel-content{padding:1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0 none}.p-panel .p-panel-content:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-panel .p-panel-footer{padding:.75rem 1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px;border-top:0 none}.p-panel .p-panel-icons-end{order:2;margin-left:auto}.p-panel .p-panel-icons-start{order:0;margin-right:.5rem}.p-panel .p-panel-icons-center{order:2;width:100%;text-align:center}.p-scrollpanel .p-scrollpanel-bar{background:#f9fafb;border:0 none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-scrollpanel .p-scrollpanel-bar:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-splitter{border:1px solid #e5e7eb;background:#fff;border-radius:6px;color:#4b5563}.p-splitter .p-splitter-gutter{transition:background-color .2s,color .2s,box-shadow .2s;background:#f9fafb}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle{background:#e5e7eb}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-splitter .p-splitter-gutter-resizing{background:#e5e7eb}.p-tabview .p-tabview-nav-content{scroll-padding-inline:3rem}.p-tabview .p-tabview-nav{background:#fff;border:1px solid #e5e7eb;border-width:0 0 2px 0}.p-tabview .p-tabview-nav li{margin-right:0}.p-tabview .p-tabview-nav li .p-tabview-nav-link{border:solid #e5e7eb;border-width:0 0 2px 0;border-color:transparent transparent #e5e7eb transparent;background:#fff;color:#6b7280;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabview .p-tabview-nav li .p-tabview-nav-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-nav li:not(.p-highlight):not(.p-disabled):hover .p-tabview-nav-link{background:#fff;border-color:#9ca3af;color:#6b7280}.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link{background:#fff;border-color:#3b82f6;color:#3b82f6}.p-tabview .p-tabview-left-icon{margin-right:.5rem}.p-tabview .p-tabview-right-icon,.p-tabview .p-tabview-close{margin-left:.5rem}.p-tabview .p-tabview-nav-btn.p-link{background:#fff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabview .p-tabview-nav-btn.p-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-panels{background:#fff;padding:1.25rem;border:0 none;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-toolbar{background:#f9fafb;border:1px solid #e5e7eb;padding:1.25rem;border-radius:6px;gap:.5rem}.p-toolbar .p-toolbar-separator{margin:0 .5rem}.p-confirm-popup{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-confirm-popup .p-confirm-popup-content{padding:1.25rem}.p-confirm-popup .p-confirm-popup-footer{text-align:right;padding:.75rem 1.25rem}.p-confirm-popup .p-confirm-popup-footer button{margin:0 .5rem 0 0;width:auto}.p-confirm-popup .p-confirm-popup-footer button:last-child{margin:0}.p-confirm-popup:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup:before{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:after{border-top-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:before{border-top-color:#fff}.p-confirm-popup .p-confirm-popup-icon{font-size:1.5rem}.p-confirm-popup .p-confirm-popup-icon.p-icon{width:1.5rem;height:1.5rem}.p-confirm-popup .p-confirm-popup-message{margin-left:1rem}.p-dialog{border-radius:6px;box-shadow:0 1px 3px #0000004d;border:0 none}.p-dialog .p-dialog-header{border-bottom:0 none;background:#fff;color:#374151;padding:1.5rem;border-top-right-radius:6px;border-top-left-radius:6px}.p-dialog .p-dialog-header .p-dialog-title{font-weight:700;font-size:1.25rem}.p-dialog .p-dialog-header .p-dialog-header-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-dialog .p-dialog-header .p-dialog-header-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-dialog .p-dialog-header .p-dialog-header-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-dialog .p-dialog-header .p-dialog-header-icon:last-child{margin-right:0}.p-dialog .p-dialog-content{background:#fff;color:#4b5563;padding:0 1.5rem 2rem}.p-dialog .p-dialog-content:last-of-type{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer{border-top:0 none;background:#fff;color:#4b5563;padding:0 1.5rem 1.5rem;text-align:right;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer button{margin:0 .5rem 0 0;width:auto}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon{font-size:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon.p-icon{width:2rem;height:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-message{margin-left:1rem}.p-overlaypanel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-overlaypanel .p-overlaypanel-content{padding:1.25rem}.p-overlaypanel .p-overlaypanel-close{background:#3b82f6;color:#fff;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%;position:absolute;top:-1rem;right:-1rem}.p-overlaypanel .p-overlaypanel-close:enabled:hover{background:#2563eb;color:#fff}.p-overlaypanel:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-overlaypanel:before{border:solid transparent;border-color:#fff0;border-bottom-color:#f2f2f2}.p-overlaypanel.p-overlaypanel-flipped:after{border-top-color:#fff}.p-overlaypanel.p-overlaypanel-flipped:before{border-top-color:#fff}.p-sidebar{background:#fff;color:#4b5563;border:0 none;box-shadow:0 1px 3px #0000004d}.p-sidebar .p-sidebar-header{padding:1.25rem}.p-sidebar .p-sidebar-header .p-sidebar-close,.p-sidebar .p-sidebar-header .p-sidebar-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-sidebar .p-sidebar-header .p-sidebar-close:enabled:hover,.p-sidebar .p-sidebar-header .p-sidebar-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-sidebar .p-sidebar-header .p-sidebar-close:focus-visible,.p-sidebar .p-sidebar-header .p-sidebar-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-sidebar .p-sidebar-header+.p-sidebar-content{padding-top:0}.p-sidebar .p-sidebar-content,.p-sidebar .p-sidebar-footer{padding:1.25rem}.p-tooltip .p-tooltip-text{background:#4b5563;color:#fff;padding:.75rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-tooltip.p-tooltip-right .p-tooltip-arrow{border-right-color:#4b5563}.p-tooltip.p-tooltip-left .p-tooltip-arrow{border-left-color:#4b5563}.p-tooltip.p-tooltip-top .p-tooltip-arrow{border-top-color:#4b5563}.p-tooltip.p-tooltip-bottom .p-tooltip-arrow{border-bottom-color:#4b5563}.p-fileupload .p-fileupload-buttonbar{background:#f9fafb;padding:1.25rem;border:1px solid #e5e7eb;color:#374151;border-bottom:0 none;border-top-right-radius:6px;border-top-left-radius:6px}.p-fileupload .p-fileupload-buttonbar .p-button{margin-right:.5rem}.p-fileupload .p-fileupload-buttonbar .p-button.p-fileupload-choose.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fileupload .p-fileupload-content{background:#fff;padding:2rem 1rem;border:1px solid #e5e7eb;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-fileupload .p-fileupload-content.p-fileupload-highlight{border-color:1px dashed #3B82F6;border-style:dashed;background-color:#eff6ff}.p-fileupload .p-progressbar{height:.25rem}.p-fileupload .p-fileupload-row>div{padding:1rem}.p-fileupload.p-fileupload-advanced .p-message{margin-top:0}.p-fileupload-choose:not(.p-disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-fileupload-choose:not(.p-disabled):active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.p-breadcrumb{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:1rem}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link{transition:box-shadow .2s;border-radius:6px}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-icon{color:#6b7280}.p-breadcrumb .p-breadcrumb-list li.p-menuitem-separator{margin:0 .5rem;color:#4b5563}.p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-text{color:#4b5563}.p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-icon{color:#6b7280}.p-contextmenu{padding:.5rem 0;background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;width:12.5rem}.p-contextmenu .p-contextmenu-root-list{outline:0 none}.p-contextmenu .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-contextmenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-contextmenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-contextmenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-contextmenu .p-submenu-icon{font-size:.875rem}.p-contextmenu .p-submenu-icon.p-icon{width:.875rem;height:.875rem}.p-dock .p-dock-list-container{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:.5rem;border-radius:.5rem}.p-dock .p-dock-list-container .p-dock-list{outline:0 none}.p-dock .p-dock-item{padding:.5rem;border-radius:6px}.p-dock .p-dock-item.p-focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-dock .p-dock-link{width:4rem;height:4rem}.p-dock.p-dock-top .p-dock-item-second-prev,.p-dock.p-dock-top .p-dock-item-second-next,.p-dock.p-dock-bottom .p-dock-item-second-prev,.p-dock.p-dock-bottom .p-dock-item-second-next{margin:0 .9rem}.p-dock.p-dock-top .p-dock-item-prev,.p-dock.p-dock-top .p-dock-item-next,.p-dock.p-dock-bottom .p-dock-item-prev,.p-dock.p-dock-bottom .p-dock-item-next{margin:0 1.3rem}.p-dock.p-dock-top .p-dock-item-current,.p-dock.p-dock-bottom .p-dock-item-current{margin:0 1.5rem}.p-dock.p-dock-left .p-dock-item-second-prev,.p-dock.p-dock-left .p-dock-item-second-next,.p-dock.p-dock-right .p-dock-item-second-prev,.p-dock.p-dock-right .p-dock-item-second-next{margin:.9rem 0}.p-dock.p-dock-left .p-dock-item-prev,.p-dock.p-dock-left .p-dock-item-next,.p-dock.p-dock-right .p-dock-item-prev,.p-dock.p-dock-right .p-dock-item-next{margin:1.3rem 0}.p-dock.p-dock-left .p-dock-item-current,.p-dock.p-dock-right .p-dock-item-current{margin:1.5rem 0}@media screen and (max-width: 960px){.p-dock.p-dock-top .p-dock-list-container,.p-dock.p-dock-bottom .p-dock-list-container{overflow-x:auto;width:100%}.p-dock.p-dock-top .p-dock-list-container .p-dock-list,.p-dock.p-dock-bottom .p-dock-list-container .p-dock-list{margin:0 auto}.p-dock.p-dock-left .p-dock-list-container,.p-dock.p-dock-right .p-dock-list-container{overflow-y:auto;height:100%}.p-dock.p-dock-left .p-dock-list-container .p-dock-list,.p-dock.p-dock-right .p-dock-list-container .p-dock-list{margin:auto 0}.p-dock .p-dock-list .p-dock-item{transform:none;margin:0}}.p-megamenu{padding:.5rem;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px}.p-megamenu .p-megamenu-root-list{outline:0 none}.p-megamenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-megamenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-megamenu .p-megamenu-panel{background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a}.p-megamenu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px}.p-megamenu .p-submenu-list{padding:.5rem 0;width:12.5rem}.p-megamenu .p-submenu-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-megamenu.p-megamenu-vertical{width:12.5rem;padding:.5rem 0}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:6px}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link{padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280;margin-left:.5rem}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-menu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu.p-menu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-menu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700;border-top-right-radius:0;border-top-left-radius:0}.p-menu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menu .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-menubar{padding:.5rem;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px}.p-menubar .p-menubar-root-list{outline:0 none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:6px}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link{padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280;margin-left:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menubar .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;width:12.5rem}.p-menubar .p-submenu-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menubar .p-submenu-list .p-submenu-icon{font-size:.875rem}@media screen and (max-width: 960px){.p-menubar{position:relative}.p-menubar .p-menubar-button{display:flex;width:2rem;height:2rem;color:#6b7280;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-menubar .p-menubar-button:hover{color:#6b7280;background:#f3f4f6}.p-menubar .p-menubar-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-menubar .p-menubar-root-list{position:absolute;display:none;padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;width:100%}.p-menubar .p-menubar-root-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menubar .p-menubar-root-list .p-submenu-icon{font-size:.875rem}.p-menubar .p-menubar-root-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon{margin-left:auto;transition:transform .2s}.p-menubar .p-menubar-root-list .p-menuitem.p-menuitem-active>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon{transform:rotate(-180deg)}.p-menubar .p-menubar-root-list .p-submenu-list{width:100%;position:static;box-shadow:none;border:0 none}.p-menubar .p-menubar-root-list .p-submenu-list .p-submenu-icon{transition:transform .2s;transform:rotate(90deg)}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem-active>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon{transform:rotate(-90deg)}.p-menubar .p-menubar-root-list .p-menuitem{width:100%;position:static}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:2.25rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:3.75rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:5.25rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:6.75rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:8.25rem}.p-menubar.p-menubar-mobile-active .p-menubar-root-list{display:flex;flex-direction:column;top:100%;left:0;z-index:1}}.p-panelmenu .p-panelmenu-header{outline:0 none}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content{border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb;border-radius:6px;transition:box-shadow .2s}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action{color:#6b7280;padding:1.25rem;font-weight:700}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-submenu-icon,.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-menuitem-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-header:not(.p-disabled):focus-visible .p-panelmenu-header-content{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-panelmenu .p-panelmenu-header:not(.p-highlight):not(.p-disabled):hover .p-panelmenu-header-content{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight .p-panelmenu-header-content{background:#f9fafb;border-color:#e5e7eb;color:#374151;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight:hover .p-panelmenu-header-content{border-color:#e5e7eb;background:#f3f4f6;color:#374151}.p-panelmenu .p-panelmenu-content{padding:.5rem 0;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0;border-radius:0 0 6px 6px}.p-panelmenu .p-panelmenu-content .p-panelmenu-root-list{outline:0 none}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-panelmenu .p-panelmenu-content .p-submenu-list:not(.p-panelmenu-root-list){padding:0 0 0 1rem}.p-panelmenu .p-panelmenu-panel{margin-bottom:4px}.p-slidemenu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-slidemenu .p-slidemenu-root-list,.p-slidemenu .p-submenu-list{outline:0 none}.p-slidemenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-slidemenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-slidemenu.p-slidemenu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-slidemenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-slidemenu .p-slidemenu-icon{font-size:.875rem}.p-slidemenu .p-icon{width:.875rem;height:.875rem}.p-slidemenu .p-slidemenu-backward{padding:.75rem 1.25rem;color:#4b5563}.p-slidemenu .p-slidemenu-backward:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-slidemenu .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-steps .p-steps-item .p-menuitem-link{background:transparent;transition:box-shadow .2s;border-radius:6px;background:#fff}.p-steps .p-steps-item .p-menuitem-link .p-steps-number{color:#4b5563;border:1px solid #f3f4f6;background:#fff;min-width:2rem;height:2rem;line-height:2rem;font-size:1.143rem;z-index:1;border-radius:50%}.p-steps .p-steps-item .p-menuitem-link .p-steps-title{margin-top:.5rem;color:#6b7280}.p-steps .p-steps-item .p-menuitem-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#eff6ff;color:#1d4ed8}.p-steps .p-steps-item.p-highlight .p-steps-title{font-weight:700;color:#4b5563}.p-steps .p-steps-item:before{content:" ";border-top:1px solid #e5e7eb;width:100%;top:50%;left:0;display:block;position:absolute;margin-top:-1rem}.p-tabmenu .p-tabmenu-nav{background:#fff;border:1px solid #e5e7eb;border-width:0 0 2px 0}.p-tabmenu .p-tabmenu-nav .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem{margin-right:0}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{border:solid #e5e7eb;border-width:0 0 2px 0;border-color:transparent transparent #e5e7eb transparent;background:#fff;color:#6b7280;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link .p-menuitem-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link{background:#fff;border-color:#9ca3af;color:#6b7280}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link{background:#fff;border-color:#3b82f6;color:#3b82f6}.p-tabmenu .p-tabmenu-left-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-right-icon{margin-left:.5rem}.p-tabmenu .p-tabmenu-nav-btn.p-link{background:#fff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabmenu .p-tabmenu-nav-btn.p-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tieredmenu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-tieredmenu.p-tieredmenu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-tieredmenu-root-list{outline:0 none}.p-tieredmenu .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-tieredmenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-tieredmenu .p-submenu-icon{font-size:.875rem}.p-tieredmenu .p-submenu-icon.p-icon{width:.875rem;height:.875rem}.p-inline-message{padding:.75rem;margin:0;border-radius:6px}.p-inline-message.p-inline-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0px;color:#3b82f6}.p-inline-message.p-inline-message-info .p-inline-message-icon{color:#3b82f6}.p-inline-message.p-inline-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0px;color:#1ea97c}.p-inline-message.p-inline-message-success .p-inline-message-icon{color:#1ea97c}.p-inline-message.p-inline-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0px;color:#cc8925}.p-inline-message.p-inline-message-warn .p-inline-message-icon{color:#cc8925}.p-inline-message.p-inline-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0px;color:#ff5757}.p-inline-message.p-inline-message-error .p-inline-message-icon{color:#ff5757}.p-inline-message .p-inline-message-icon{font-size:1rem;margin-right:.5rem}.p-inline-message .p-icon{width:1rem;height:1rem}.p-inline-message .p-inline-message-text{font-size:1rem}.p-inline-message.p-inline-message-icon-only .p-inline-message-icon{margin-right:0}.p-message{margin:1rem 0;border-radius:6px}.p-message .p-message-wrapper{padding:1.25rem 1.75rem}.p-message .p-message-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-message .p-message-close:hover{background:#ffffff80}.p-message .p-message-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-message.p-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0 0 0 6px;color:#3b82f6}.p-message.p-message-info .p-message-icon,.p-message.p-message-info .p-message-close{color:#3b82f6}.p-message.p-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-message.p-message-success .p-message-icon,.p-message.p-message-success .p-message-close{color:#1ea97c}.p-message.p-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-message.p-message-warn .p-message-icon,.p-message.p-message-warn .p-message-close{color:#cc8925}.p-message.p-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-message.p-message-error .p-message-icon,.p-message.p-message-error .p-message-close{color:#ff5757}.p-message .p-message-text{font-size:1rem;font-weight:500}.p-message .p-message-icon{font-size:1.5rem;margin-right:.5rem}.p-message .p-icon{width:1.5rem;height:1.5rem}.p-message .p-message-summary{font-weight:700}.p-message .p-message-detail{margin-left:.5rem}.p-toast{opacity:1}.p-toast .p-toast-message{margin:0 0 1rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-toast .p-toast-message .p-toast-message-content{padding:1rem;border-width:0 0 0 6px}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-text{margin:0 0 0 1rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon{font-size:2rem}.p-toast .p-toast-message .p-toast-message-content .p-icon:not(.p-toast-icon-close-icon){width:2rem;height:2rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-summary{font-weight:700}.p-toast .p-toast-message .p-toast-message-content .p-toast-detail{margin:.5rem 0 0}.p-toast .p-toast-message .p-toast-icon-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-toast .p-toast-message .p-toast-icon-close:hover{background:#ffffff80}.p-toast .p-toast-message .p-toast-icon-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-toast .p-toast-message.p-toast-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0 0 0 6px;color:#3b82f6}.p-toast .p-toast-message.p-toast-message-info .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-info .p-toast-icon-close{color:#3b82f6}.p-toast .p-toast-message.p-toast-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-toast .p-toast-message.p-toast-message-success .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-success .p-toast-icon-close{color:#1ea97c}.p-toast .p-toast-message.p-toast-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-toast .p-toast-message.p-toast-message-warn .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-warn .p-toast-icon-close{color:#cc8925}.p-toast .p-toast-message.p-toast-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-toast .p-toast-message.p-toast-message-error .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-error .p-toast-icon-close{color:#ff5757}.p-galleria .p-galleria-close{margin:.5rem;background:transparent;color:#f9fafb;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-close .p-galleria-close-icon{font-size:2rem}.p-galleria .p-galleria-close .p-icon-wrapper .p-icon{width:2rem;height:2rem}.p-galleria .p-galleria-close:hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-item-nav{background:transparent;color:#f9fafb;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:6px;margin:0 .5rem}.p-galleria .p-galleria-item-nav .p-galleria-item-prev-icon,.p-galleria .p-galleria-item-nav .p-galleria-item-next-icon{font-size:2rem}.p-galleria .p-galleria-item-nav .p-icon-wrapper .p-icon{width:2rem;height:2rem}.p-galleria .p-galleria-item-nav:not(.p-disabled):hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-caption{background:#00000080;color:#f9fafb;padding:1rem}.p-galleria .p-galleria-indicators{padding:1rem}.p-galleria .p-galleria-indicators .p-galleria-indicator button{background-color:#d1d5db;width:1rem;height:1rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-indicators .p-galleria-indicator button:hover{background:#9ca3af}.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-galleria.p-galleria-indicators-bottom .p-galleria-indicator,.p-galleria.p-galleria-indicators-top .p-galleria-indicator{margin-right:.5rem}.p-galleria.p-galleria-indicators-left .p-galleria-indicator,.p-galleria.p-galleria-indicators-right .p-galleria-indicator{margin-bottom:.5rem}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators{background:#00000080}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button{background:#fff6}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button:hover{background:#fff9}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-galleria .p-galleria-thumbnail-container{background:#000000e6;padding:1rem .25rem}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next{margin:.5rem;background-color:transparent;color:#f9fafb;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev:hover,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next:hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-galleria-mask,.p-image-mask{--maskbg: rgba(0, 0, 0, .9)}.p-image-preview-indicator{background-color:transparent;color:#f8f9fa;transition:background-color .2s,color .2s,box-shadow .2s}.p-image-preview-container:hover>.p-image-preview-indicator{background-color:#00000080}.p-image-toolbar{padding:1rem}.p-image-action.p-link{color:#f8f9fa;background-color:transparent;width:3rem;height:3rem;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-image-action.p-link:last-child{margin-right:0}.p-image-action.p-link:hover{color:#f8f9fa;background-color:#ffffff1a}.p-image-action.p-link i{font-size:1.5rem}.p-image-action.p-link .p-icon{width:1.5rem;height:1.5rem}.p-avatar{background-color:#e5e7eb;border-radius:6px}.p-avatar.p-avatar-lg{width:3rem;height:3rem;font-size:1.5rem}.p-avatar.p-avatar-lg .p-avatar-icon{font-size:1.5rem}.p-avatar.p-avatar-xl{width:4rem;height:4rem;font-size:2rem}.p-avatar.p-avatar-xl .p-avatar-icon{font-size:2rem}.p-avatar-group .p-avatar{border:2px solid #ffffff}.p-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem}.p-badge.p-badge-secondary{background-color:#64748b;color:#fff}.p-badge.p-badge-success{background-color:#22c55e;color:#fff}.p-badge.p-badge-info{background-color:#0ea5e9;color:#fff}.p-badge.p-badge-warning{background-color:#f97316;color:#fff}.p-badge.p-badge-danger{background-color:#ef4444;color:#fff}.p-badge.p-badge-lg{font-size:1.125rem;min-width:2.25rem;height:2.25rem;line-height:2.25rem}.p-badge.p-badge-xl{font-size:1.5rem;min-width:3rem;height:3rem;line-height:3rem}.p-chip{background-color:#e5e7eb;color:#4b5563;border-radius:16px;padding:0 .75rem}.p-chip .p-chip-text{line-height:1.5;margin-top:.375rem;margin-bottom:.375rem}.p-chip .p-chip-icon{margin-right:.5rem}.p-chip .pi-chip-remove-icon{margin-left:.5rem}.p-chip img{width:2.25rem;height:2.25rem;margin-left:-.75rem;margin-right:.5rem}.p-chip .pi-chip-remove-icon{border-radius:6px;transition:background-color .2s,color .2s,box-shadow .2s}.p-chip .pi-chip-remove-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-chip .pi-chip-remove-icon:focus{outline:0 none}.p-inplace .p-inplace-display{padding:.75rem;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-inplace .p-inplace-display:not(.p-disabled):hover{background:#f3f4f6;color:#4b5563}.p-inplace .p-inplace-display:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-metergroup,.p-metergroup-meters{display:flex}.p-metergroup-vertical{height:100%}.p-metergroup-vertical .p-metergroup-meters{flex-direction:column}.p-metergroup-labels{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style-type:none}.p-metergroup-vertical .p-metergroup-labels{align-items:start}.p-metergroup-labels-vertical{flex-direction:column}.p-metergroup-label{display:inline-flex;align-items:center}.p-metergroup-label-marker{display:inline-flex}.p-metergroup{gap:1rem}.p-metergroup .p-metergroup-meters{background:#e5e7eb;border-radius:6px}.p-metergroup .p-metergroup-meter{border:0 none;background:#3b82f6}.p-metergroup .p-metergroup-labels .p-metergroup-label{gap:.5rem}.p-metergroup .p-metergroup-labels .p-metergroup-label-marker{background:#3b82f6;width:.5rem;height:.5rem;border-radius:100%}.p-metergroup .p-metergroup-labels .p-metergroup-label-icon{width:1rem;height:1rem}.p-metergroup .p-metergroup-labels.p-metergroup-labels-vertical{gap:.5rem}.p-metergroup .p-metergroup-labels.p-metergroup-labels-horizontal{gap:1rem}.p-metergroup.p-metergroup-horizontal{flex-direction:column}.p-metergroup.p-metergroup-horizontal .p-metergroup-meters{height:.5rem}.p-metergroup.p-metergroup-horizontal .p-metergroup-meter:first-of-type{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-metergroup.p-metergroup-horizontal .p-metergroup-meter:last-of-type{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-metergroup.p-metergroup-vertical{flex-direction:row}.p-metergroup.p-metergroup-vertical .p-metergroup-meters{width:.5rem;height:100%}.p-metergroup.p-metergroup-vertical .p-metergroup-meter:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}.p-metergroup.p-metergroup-vertical .p-metergroup-meter:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-progressbar{border:0 none;height:1.5rem;background:#e5e7eb;border-radius:6px}.p-progressbar .p-progressbar-value{border:0 none;margin:0;background:#3b82f6}.p-progressbar .p-progressbar-label{color:#fff;line-height:1.5rem}.p-scrolltop{width:3rem;height:3rem;border-radius:50%;box-shadow:0 2px 12px #0000001a;transition:background-color .2s,color .2s,box-shadow .2s}.p-scrolltop.p-link{background:#000000b3}.p-scrolltop.p-link:hover{background:#000c}.p-scrolltop .p-scrolltop-icon{font-size:1.5rem;color:#f9fafb}.p-scrolltop .p-icon{width:1.5rem;height:1.5rem}.p-skeleton{background-color:#e5e7eb;border-radius:6px}.p-skeleton:after{background:linear-gradient(90deg,#fff0,#fff6,#fff0)}.p-tag{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .4rem;border-radius:6px}.p-tag.p-tag-success{background-color:#22c55e;color:#fff}.p-tag.p-tag-info{background-color:#0ea5e9;color:#fff}.p-tag.p-tag-warning{background-color:#f97316;color:#fff}.p-tag.p-tag-danger{background-color:#ef4444;color:#fff}.p-tag .p-tag-icon{margin-right:.25rem;font-size:.75rem}.p-tag .p-icon{width:.75rem;height:.75rem}.p-terminal{background:#fff;color:#4b5563;border:1px solid #e5e7eb;padding:1.25rem}.p-terminal .p-terminal-input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem}}@layer primeng{.p-button-label{font-weight:700}.p-selectbutton>.p-button,.p-togglebutton.p-button{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link,.p-tabview .p-tabview-nav li .p-tabview-nav-link,.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button,.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background-color:#3b82f6}.p-button:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-button.p-button-secondary:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #b0b9c6,0 1px 2px #000}.p-button.p-button-success:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #88eaac,0 1px 2px #000}.p-button.p-button-info:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #83d3f8,0 1px 2px #000}.p-button.p-button-warning:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #fcb98b,0 1px 2px #000}.p-button.p-button-help:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #d4aafb,0 1px 2px #000}.p-button.p-button-danger:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #f7a2a2,0 1px 2px #000}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #3b82f6}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #3b82f6}.p-speeddial-item.p-focus>.p-speeddial-action{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-toast-message{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.p-inline-message-text{font-weight:500}.p-picklist-buttons .p-button,.p-orderlist-controls .p-button{transition:opacity .2s,background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#3b82f6;color:#fff}}.p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{animation:p-icon-spin 2s infinite linear}}@keyframes p-icon-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url(color.dae87a04d07ca92b.png) no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(hue.8b1818380241e6ac.png) no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}html{font-size:13px}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container .ngx-toastr{border-radius:var(--bs-border-radius);position:relative;overflow:hidden;margin:0 0 6px;padding:.75rem 1.25rem .75rem 50px;width:300px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 10px #00000008;pointer-events:auto}.toast-container .ngx-toastr .toast-title{font-weight:700}.toast-container .ngx-toastr .toast-message{word-wrap:break-word}.toast-container .ngx-toastr .toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}.toast-container .ngx-toastr .toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.3}.toast-container .ngx-toastr .toast-close-button:hover,.toast-container .ngx-toastr .toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.75}.toast-container .ngx-toastr:hover{box-shadow:0 0 10px #00000026;opacity:1;cursor:pointer}.toast-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");color:#155724!important;background-color:#d4edda;border:1px solid #c3e6cb}.toast-success a{text-decoration:underline!important;color:#08210e!important}.toast-success a:hover{color:#020703!important}.toast-error{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E");color:#721c24!important;background-color:#f8d7da;border:1px solid #f5c6cb}.toast-error a{text-decoration:underline!important;color:#2c0b0e!important}.toast-error a:hover{color:#090203!important}.toast-info{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");color:#0c5460!important;background-color:#d1ecf1;border:1px solid #bee5eb}.toast-info a{text-decoration:underline!important;color:#052025!important}.toast-info a:hover{color:#010607!important}.toast-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");color:#856404!important;background-color:#fff3cd;border:1px solid #ffeeba}.toast-warning a{text-decoration:underline!important;color:#332701!important}.toast-warning a:hover{color:#0a0800!important}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-classic,.fa-sharp,.fas,.fa-solid,.far,.fa-regular,.fab,.fa-brands{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fas,.fa-classic,.fa-solid,.far,.fa-regular{font-family:"Font Awesome 6 Free"}.fab,.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .08em);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{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(.28, .84, .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(.4, 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(.4, 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) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .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%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{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:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-right:before{content:"\f138"}.fa-at:before{content:"@"}.fa-trash-can:before{content:"\f2ed"}.fa-trash-alt:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-xmark:before{content:"\f235"}.fa-user-times:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-message:before{content:"\f27a"}.fa-comment-alt:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-compress-alt:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-lines:before{content:"\f15c"}.fa-file-alt:before{content:"\f15c"}.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-days:before{content:"\f073"}.fa-calendar-alt:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball:before{content:"\f45f"}.fa-volleyball-ball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-desc:before{content:"\f0dd"}.fa-circle-minus:before{content:"\f056"}.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before{content:"\f2f5"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-icons:before{content:"\f86d"}.fa-heart-music-camera-bolt:before{content:"\f86d"}.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before{content:"\f689"}.fa-search-location:before{content:"\f689"}.fa-forward-step:before{content:"\f051"}.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before{content:"\f5b8"}.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football:before{content:"\f44e"}.fa-football-ball:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angles-down:before{content:"\f103"}.fa-angle-double-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before{content:"\f0fc"}.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before{content:"\f176"}.fa-long-arrow-up:before{content:"\f176"}.fa-fire-flame-simple:before{content:"\f46a"}.fa-burn:before{content:"\f46a"}.fa-person:before{content:"\f183"}.fa-male:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before{content:"\f587"}.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-pastafarianism:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before{content:"\f2e5"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before{content:"\f674"}.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before{content:"\f47e"}.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before{content:"\f2b9"}.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"K"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil:before{content:"\f303"}.fa-pencil-alt:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-paste:before{content:"\f0ea"}.fa-file-clipboard:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-ramp-box:before{content:"\f4de"}.fa-truck-loading:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before{content:"\f6a0"}.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before{content:"\f458"}.fa-quidditch:before{content:"\f458"}.fa-quidditch-broom-ball:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-box-archive:before{content:"\f187"}.fa-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before{content:"\f886"}.fa-sort-numeric-desc:before{content:"\f886"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"W"}.fa-earth-africa:before{content:"\f57c"}.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablet-alt:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before{content:"\f579"}.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before{content:"\f0e3"}.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before{content:"\f562"}.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before{content:"\f5ae"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows:before{content:"\e068"}.fa-people-arrows-left-right:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-right:before{content:"\f152"}.fa-scissors:before{content:"\f0c4"}.fa-cut:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-tachograph-digital:before{content:"\f566"}.fa-digital-tachograph:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-reply:before{content:"\f3e5"}.fa-mail-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-square-minus:before{content:"\f146"}.fa-minus-square:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-3:before{content:"\f253"}.fa-heart-crack:before{content:"\f7a9"}.fa-heart-broken:before{content:"\f7a9"}.fa-square-up-right:before{content:"\f360"}.fa-external-link-square-alt:before{content:"\f360"}.fa-face-kiss-beam:before{content:"\f597"}.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before{content:"\f06a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before{content:"\f08b"}.fa-sign-out:before{content:"\f08b"}.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-unlock-keyhole:before{content:"\f13e"}.fa-unlock-alt:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-simple:before{content:"\f58f"}.fa-headphones-alt:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before{content:"\f4b9"}.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-low:before{content:"\f027"}.fa-volume-down:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-alt:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"*"}.fa-square-check:before{content:"\f14a"}.fa-check-square:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-heading:before{content:"\f1dc"}.fa-header:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list:before{content:"\f03a"}.fa-list-squares:before{content:"\f03a"}.fa-square-phone-flip:before{content:"\f87b"}.fa-phone-square-alt:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before{content:"\f192"}.fa-dot-circle:before{content:"\f192"}.fa-face-dizzy:before{content:"\f567"}.fa-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol:before{content:"\f1e3"}.fa-futbol-ball:before{content:"\f1e3"}.fa-soccer-ball:before{content:"\f1e3"}.fa-paintbrush:before{content:"\f1fc"}.fa-paint-brush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before{content:"\f593"}.fa-hot-tub:before{content:"\f593"}.fa-map-location:before{content:"\f59f"}.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-pen-to-square:before{content:"\f044"}.fa-edit:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-nodes:before{content:"\f1e0"}.fa-share-alt:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-2:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before{content:"\f290"}.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before{content:"\f881"}.fa-sort-alpha-desc:before{content:"\f881"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand:before{content:"\f256"}.fa-hand-paper:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before{content:"\f596"}.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before{content:"\f589"}.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before{content:"\f58c"}.fa-grin-wink:before{content:"\f58c"}.fa-ear-deaf:before{content:"\f2a4"}.fa-deaf:before{content:"\f2a4"}.fa-deafness:before{content:"\f2a4"}.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-square-rss:before{content:"\f143"}.fa-rss-square:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"I"}.fa-hryvnia-sign:before{content:"\f6f2"}.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before{content:"\f581"}.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"V"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-staff-snake:before{content:"\e579"}.fa-rod-asclepius:before{content:"\e579"}.fa-rod-snake:before{content:"\e579"}.fa-staff-aesculapius:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-truck-medical:before{content:"\f0f9"}.fa-ambulance:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"Q"}.fa-g:before{content:"G"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-half:before{content:"\f2c9"}.fa-temperature-2:before{content:"\f2c9"}.fa-thermometer-2:before{content:"\f2c9"}.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-storm:before{content:"\f75a"}.fa-poo-bolt:before{content:"\f75a"}.fa-face-frown-open:before{content:"\f57a"}.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder:before{content:"\f07b"}.fa-folder-blank:before{content:"\f07b"}.fa-file-waveform:before{content:"\f478"}.fa-file-medical-alt:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-gauge:before{content:"\f624"}.fa-dashboard:before{content:"\f624"}.fa-gauge-med:before{content:"\f624"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-magic-wand-sparkles:before{content:"\e2ca"}.fa-e:before{content:"E"}.fa-pen-clip:before{content:"\f305"}.fa-pen-alt:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-van-shuttle:before{content:"\f5b6"}.fa-shuttle-van:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"C"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-chart-area:before{content:"\f1fe"}.fa-area-chart:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before{content:"\f05e"}.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-air-freshener:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before{content:"\f245"}.fa-mouse-pointer:before{content:"\f245"}.fa-maximize:before{content:"\f31e"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before{content:"\f61f"}.fa-triangle-circle-square:before{content:"\f61f"}.fa-shuffle:before{content:"\f074"}.fa-random:before{content:"\f074"}.fa-person-running:before{content:"\f70c"}.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before{content:"\f8cc"}.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before{content:"\f090"}.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before{content:"\e070"}.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-1:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before{content:"\f21e"}.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before{content:"\f4ce"}.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before{content:"\f496"}.fa-weight:before{content:"\f496"}.fa-user-group:before{content:"\f500"}.fa-user-friends:before{content:"\f500"}.fa-arrow-up-a-z:before{content:"\f15e"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before{content:"\f59b"}.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-circle-arrow-up:before{content:"\f0aa"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before{content:"\f554"}.fa-walking:before{content:"\f554"}.fa-l:before{content:"L"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before{content:"\f487"}.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before{content:"\f197"}.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before{content:"\f599"}.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before{content:"\f22a"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before{content:"\f79f"}.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before{content:"\f574"}.fa-file-upload:before{content:"\f574"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-3:before{content:"\f1eb"}.fa-wifi-strong:before{content:"\f1eb"}.fa-bath:before{content:"\f2cd"}.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-pen:before{content:"\f4ff"}.fa-user-edit:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-top-left:before{content:"\f853"}.fa-border-style:before{content:"\f853"}.fa-map-location-dot:before{content:"\f5a0"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-square-poll-vertical:before{content:"\f681"}.fa-poll:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-car-battery:before{content:"\f5df"}.fa-battery-car:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-hand-back-fist:before{content:"\f255"}.fa-hand-rock:before{content:"\f255"}.fa-square-caret-up:before{content:"\f151"}.fa-caret-square-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-chart-bar:before{content:"\f080"}.fa-bar-chart:before{content:"\f080"}.fa-hands-bubbles:before{content:"\e05e"}.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before{content:"\f2a8"}.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-square-plus:before{content:"\f0fe"}.fa-plus-square:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-martini-glass:before{content:"\f57b"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-rotate-left:before{content:"\f2ea"}.fa-rotate-back:before{content:"\f2ea"}.fa-rotate-backward:before{content:"\f2ea"}.fa-undo-alt:before{content:"\f2ea"}.fa-table-columns:before{content:"\f0db"}.fa-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly:before{content:"\f472"}.fa-dolly-box:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-minimize:before{content:"\f78c"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angles-right:before{content:"\f101"}.fa-angle-double-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before{content:"\f144"}.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-euro-sign:before{content:"\f153"}.fa-eur:before{content:"\f153"}.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-circle-check:before{content:"\f058"}.fa-check-circle:before{content:"\f058"}.fa-circle-stop:before{content:"\f28d"}.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before{content:"\f568"}.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before{content:"\f59a"}.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-circle-chevron-up:before{content:"\f139"}.fa-chevron-circle-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-sterling-sign:before{content:"\f154"}.fa-gbp:before{content:"\f154"}.fa-pound-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before{content:"\f175"}.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before{content:"\f7c5"}.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before{content:"\f662"}.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-file-import:before{content:"\f56f"}.fa-arrow-right-to-file:before{content:"\f56f"}.fa-square-arrow-up-right:before{content:"\f14c"}.fa-external-link-square:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-empty:before{content:"\f2cb"}.fa-temperature-0:before{content:"\f2cb"}.fa-thermometer-0:before{content:"\f2cb"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before{content:"\f2bb"}.fa-contact-card:before{content:"\f2bb"}.fa-vcard:before{content:"\f2bb"}.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-balance-scale-right:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before{content:"\f5eb"}.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before{content:"\e066"}.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before{content:"\f5c8"}.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before{content:"\f0ee"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before{content:"\f4d8"}.fa-sprout:before{content:"\f4d8"}.fa-left-right:before{content:"\f337"}.fa-arrows-alt-h:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before{content:"\f160"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before{content:"\f76c"}.fa-thunderstorm:before{content:"\f76c"}.fa-text-slash:before{content:"\f87d"}.fa-remove-format:before{content:"\f87d"}.fa-face-smile-wink:before{content:"\f4da"}.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-h:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before{content:"\f0ed"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-chalkboard:before{content:"\f51b"}.fa-blackboard:before{content:"\f51b"}.fa-user-large-slash:before{content:"\f4fa"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before{content:"\f021"}.fa-refresh:before{content:"\f021"}.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-halved:before{content:"\f3ed"}.fa-shield-alt:before{content:"\f3ed"}.fa-book-atlas:before{content:"\f558"}.fa-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before{content:"\f6f1"}.fa-house-damage:before{content:"\f6f1"}.fa-file-zipper:before{content:"\f1c6"}.fa-file-archive:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-martini-glass-empty:before{content:"\f000"}.fa-glass-martini:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"Z"}.fa-person-skiing:before{content:"\f7c9"}.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"A"}.fa-temperature-arrow-down:before{content:"\e03f"}.fa-temperature-down:before{content:"\e03f"}.fa-feather-pointed:before{content:"\f56b"}.fa-feather-alt:before{content:"\f56b"}.fa-p:before{content:"P"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-rectangle-ad:before{content:"\f641"}.fa-ad:before{content:"\f641"}.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-list-ol:before{content:"\f0cb"}.fa-list-1-2:before{content:"\f0cb"}.fa-list-numeric:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-dollar:before{content:"\f53d"}.fa-money-check-alt:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before{content:"\f598"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"?"}.fa-file-signature:before{content:"\f573"}.fa-up-down-left-right:before{content:"\f0b2"}.fa-arrows-alt:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-half-alt:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-whiskey-glass:before{content:"\f7a0"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-won-sign:before{content:"\f159"}.fa-krw:before{content:"\f159"}.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"F"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-taxi:before{content:"\f1ba"}.fa-cab:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before{content:"\f200"}.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before{content:"\f582"}.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before{content:"\f041"}.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-helmet-safety:before{content:"\f807"}.fa-hard-hat:before{content:"\f807"}.fa-hat-hard:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before{content:"\f5a5"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before{content:"\f201"}.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-signs-post:before{content:"\f277"}.fa-map-signs:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"H"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before{content:"\f7d9"}.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-house-user:before{content:"\e1b0"}.fa-home-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-martini-glass-citrus:before{content:"\f561"}.fa-cocktail:before{content:"\f561"}.fa-face-surprise:before{content:"\f5c2"}.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before{content:"\f28b"}.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-whole:before{content:"\f5d1"}.fa-apple-alt:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"R"}.fa-temperature-quarter:before{content:"\f2ca"}.fa-temperature-1:before{content:"\f2ca"}.fa-thermometer-1:before{content:"\f2ca"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll-h:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before{content:"\f049"}.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball:before{content:"\f434"}.fa-basketball-ball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-circle-up:before{content:"\f35b"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-mobile-screen-button:before{content:"\f3cd"}.fa-mobile-alt:before{content:"\f3cd"}.fa-volume-high:before{content:"\f028"}.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before{content:"\f805"}.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before{content:"\f156"}.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before{content:"\f059"}.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-flip:before{content:"\f879"}.fa-phone-alt:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-forward-fast:before{content:"\f050"}.fa-fast-forward:before{content:"\f050"}.fa-face-meh-blank:before{content:"\f5a4"}.fa-meh-blank:before{content:"\f5a4"}.fa-square-parking:before{content:"\f540"}.fa-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before{content:"\f828"}.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before{content:"\f474"}.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before{content:"\f54d"}.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before{content:"\f291"}.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-simple:before{content:"\f55e"}.fa-bus-alt:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before{content:"\f5b3"}.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal:before{content:"\f012"}.fa-signal-5:before{content:"\f012"}.fa-signal-perfect:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-house-chimney:before{content:"\e3af"}.fa-home-lg:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before{content:"\f119"}.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before{content:"\f54f"}.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before{content:"\f0c7"}.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-left:before{content:"\f515"}.fa-sort-up:before{content:"\f0de"}.fa-sort-asc:before{content:"\f0de"}.fa-comment-dots:before{content:"\f4ad"}.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before{content:"\f585"}.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before{content:"\f4c0"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before{content:"\f684"}.fa-praying-hands:before{content:"\f684"}.fa-arrow-rotate-right:before{content:"\f01e"}.fa-arrow-right-rotate:before{content:"\f01e"}.fa-arrow-rotate-forward:before{content:"\f01e"}.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before{content:"\f601"}.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before{content:"\f588"}.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-xmark:before{content:"\f273"}.fa-calendar-times:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-gear:before{content:"\f4fe"}.fa-user-cog:before{content:"\f4fe"}.fa-arrow-up-1-9:before{content:"\f163"}.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-person-digging:before{content:"\f85e"}.fa-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple:before{content:"\f629"}.fa-gauge-simple-med:before{content:"\f629"}.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right:before{content:"\f10e"}.fa-quote-right-alt:before{content:"\f10e"}.fa-shirt:before{content:"\f553"}.fa-t-shirt:before{content:"\f553"}.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before{content:"\f7d7"}.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"J"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-up-right-from-square:before{content:"\f35d"}.fa-external-link-alt:before{content:"\f35d"}.fa-table-cells:before{content:"\f00a"}.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-book-bible:before{content:"\f647"}.fa-bible:before{content:"\f647"}.fa-o:before{content:"O"}.fa-suitcase-medical:before{content:"\f0fa"}.fa-medkit:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-person-dress:before{content:"\f182"}.fa-female:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-business-time:before{content:"\f64a"}.fa-briefcase-clock:before{content:"\f64a"}.fa-table-cells-large:before{content:"\f009"}.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before{content:"\f827"}.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before{content:"\f2a0"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-cake-candles:before{content:"\f1fd"}.fa-birthday-cake:before{content:"\f1fd"}.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angles-up:before{content:"\f102"}.fa-angle-double-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before{content:"\f887"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before{content:"\f0f0"}.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before{content:"\f05a"}.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before{content:"\f162"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before{content:"\f4c1"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-medical:before{content:"\f486"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before{content:"\f15d"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-rotate-left:before{content:"\f0e2"}.fa-arrow-left-rotate:before{content:"\f0e2"}.fa-arrow-rotate-back:before{content:"\f0e2"}.fa-arrow-rotate-backward:before{content:"\f0e2"}.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before{content:"\f0a0"}.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before{content:"\f586"}.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-rectangle-list:before{content:"\f022"}.fa-list-alt:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before{content:"\f7ca"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-train-subway:before{content:"\f239"}.fa-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before{content:"\e1bc"}.fa-indian-rupee:before{content:"\e1bc"}.fa-inr:before{content:"\e1bc"}.fa-crop-simple:before{content:"\f565"}.fa-crop-alt:before{content:"\f565"}.fa-money-bill-1:before{content:"\f3d1"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before{content:"\f30a"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before{content:"\f068"}.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before{content:"\f177"}.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-asl-interpreting:before{content:"\f2a3"}.fa-hands-american-sign-language-interpreting:before{content:"\f2a3"}.fa-gear:before{content:"\f013"}.fa-cog:before{content:"\f013"}.fa-droplet-slash:before{content:"\f5c7"}.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before{content:"\f07a"}.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before{content:"\f148"}.fa-level-up:before{content:"\f148"}.fa-u:before{content:"U"}.fa-square-root-variable:before{content:"\f698"}.fa-square-root-alt:before{content:"\f698"}.fa-clock:before{content:"\f017"}.fa-clock-four:before{content:"\f017"}.fa-backward-step:before{content:"\f048"}.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"S"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-house-chimney-medical:before{content:"\f7f2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-temperature-three-quarters:before{content:"\f2c8"}.fa-temperature-3:before{content:"\f2c8"}.fa-thermometer-3:before{content:"\f2c8"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-half:before{content:"\f242"}.fa-battery-3:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders:before{content:"\f1de"}.fa-sliders-h:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-vertical:before{content:"\f142"}.fa-ellipsis-v:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-right-long:before{content:"\f30b"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-tty:before{content:"\f1e4"}.fa-teletype:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-person-hiking:before{content:"\f6ec"}.fa-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"N"}.fa-cable-car:before{content:"\f7da"}.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before{content:"\f580"}.fa-grin:before{content:"\f580"}.fa-delete-left:before{content:"\f55a"}.fa-backspace:before{content:"\f55a"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-dropper-empty:before{content:"\f1fb"}.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile:before{content:"\f3ce"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-phone:before{content:"\f3ce"}.fa-face-meh:before{content:"\f11a"}.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-skull:before{content:"\f6b7"}.fa-book-dead:before{content:"\f6b7"}.fa-id-card:before{content:"\f2c2"}.fa-drivers-license:before{content:"\f2c2"}.fa-outdent:before{content:"\f03b"}.fa-dedent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-house:before{content:"\f015"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f015"}.fa-home-lg-alt:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"B"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before{content:"\f0ec"}.fa-exchange:before{content:"\f0ec"}.fa-rotate-right:before{content:"\f2f9"}.fa-redo-alt:before{content:"\f2f9"}.fa-rotate-forward:before{content:"\f2f9"}.fa-utensils:before{content:"\f2e7"}.fa-cutlery:before{content:"\f2e7"}.fa-arrow-up-wide-short:before{content:"\f161"}.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-tower-broadcast:before{content:"\f519"}.fa-broadcast-tower:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-up-long:before{content:"\f30c"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before{content:"\f56d"}.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before{content:"\f0e7"}.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-yen-sign:before{content:"\f157"}.fa-cny:before{content:"\f157"}.fa-jpy:before{content:"\f157"}.fa-rmb:before{content:"\f157"}.fa-yen:before{content:"\f157"}.fa-ruble-sign:before{content:"\f158"}.fa-rouble:before{content:"\f158"}.fa-rub:before{content:"\f158"}.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before{content:"\f59c"}.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before{content:"\f884"}.fa-sort-amount-desc:before{content:"\f884"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"<"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before{content:"\f178"}.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-h:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-kit-medical:before{content:"\f479"}.fa-first-aid:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-alt:before{content:"\f09d"}.fa-car:before{content:"\f1b9"}.fa-automobile:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before{content:"\f5da"}.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before{content:"\e040"}.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-square-h:before{content:"\f0fd"}.fa-h-square:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-full:before{content:"\f2c7"}.fa-temperature-4:before{content:"\f2c7"}.fa-thermometer-4:before{content:"\f2c7"}.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-handshake-angle:before{content:"\f4c4"}.fa-hands-helping:before{content:"\f4c4"}.fa-location-dot:before{content:"\f3c5"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:">"}.fa-person-swimming:before{content:"\f5c4"}.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before{content:"\f043"}.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-americas:before{content:"\f57d"}.fa-earth:before{content:"\f57d"}.fa-earth-america:before{content:"\f57d"}.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-empty:before{content:"\f244"}.fa-battery-0:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before{content:"\f625"}.fa-tachometer-alt:before{content:"\f625"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f0f8"}.fa-hospital-wide:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before{content:"\f550"}.fa-reorder:before{content:"\f550"}.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-person-walking-with-cane:before{content:"\f29d"}.fa-blind:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before{content:"\f772"}.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-stacked:before{content:"\f468"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f468"}.fa-link:before{content:"\f0c1"}.fa-chain:before{content:"\f0c1"}.fa-ear-listen:before{content:"\f2a2"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before{content:"\f002"}.fa-search:before{content:"\f002"}.fa-table-tennis-paddle-ball:before{content:"\f45d"}.fa-ping-pong-paddle-ball:before{content:"\f45d"}.fa-table-tennis:before{content:"\f45d"}.fa-person-dots-from-line:before{content:"\f470"}.fa-diagnoses:before{content:"\f470"}.fa-trash-can-arrow-up:before{content:"\f82a"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-pen:before{content:"\f31c"}.fa-file-edit:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-square-pen:before{content:"\f14b"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-square:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-full:before{content:"\f240"}.fa-battery:before{content:"\f240"}.fa-battery-5:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-ul:before{content:"\f0ca"}.fa-list-dots:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before{content:"\f309"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-dome:before{content:"\f752"}.fa-landmark-alt:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-tv:before{content:"\f26c"}.fa-television:before{content:"\f26c"}.fa-tv-alt:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before{content:"\f0ae"}.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before{content:"\f2bd"}.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before{content:"\f5e1"}.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"Y"}.fa-person-snowboarding:before{content:"\f7ce"}.fa-snowboarding:before{content:"\f7ce"}.fa-truck-fast:before{content:"\f48b"}.fa-shipping-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-circle-half-stroke:before{content:"\f042"}.fa-adjust:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before{content:"\f7ba"}.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball:before{content:"\f433"}.fa-baseball-ball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before{content:"\f542"}.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-xmark:before{content:"\f6a9"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-times:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip:before{content:"\f58d"}.fa-grip-horizontal:before{content:"\f58d"}.fa-share-from-square:before{content:"\f14d"}.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before{content:"\e4e0"}.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-square-phone:before{content:"\f098"}.fa-phone-square:before{content:"\f098"}.fa-plus:before{content:"+"}.fa-add:before{content:"+"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-xmark:before{content:"\f00d"}.fa-close:before{content:"\f00d"}.fa-multiply:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-arrows-up-down-left-right:before{content:"\f047"}.fa-arrows:before{content:"\f047"}.fa-chalkboard-user:before{content:"\f51c"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left:before{content:"\f10d"}.fa-quote-left-alt:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before{content:"\f829"}.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"="}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-shekel-sign:before{content:"\f20b"}.fa-ils:before{content:"\f20b"}.fa-shekel:before{content:"\f20b"}.fa-sheqel:before{content:"\f20b"}.fa-sheqel-sign:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before{content:"\f87c"}.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before{content:"\f4d9"}.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet:before{content:"\f3fb"}.fa-tablet-android:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-rear:before{content:"\f5de"}.fa-car-alt:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-2:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before{content:"\f77d"}.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before{content:"%"}.fa-percentage:before{content:"%"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before{content:"\f118"}.fa-smile:before{content:"\f118"}.fa-thumbtack:before{content:"\f08d"}.fa-thumb-tack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before{content:"\f683"}.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before{content:"\f2f1"}.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-gears:before{content:"\f085"}.fa-cogs:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before{content:"\f584"}.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender:before{content:"\f225"}.fa-transgender-alt:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before{content:"\f149"}.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-simple:before{content:"\f3ff"}.fa-ticket-alt:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angles-left:before{content:"\f100"}.fa-angle-double-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before{content:"\f1da"}.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before{content:"\f583"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-file-export:before{content:"\f56e"}.fa-arrow-right-from-file:before{content:"\f56e"}.fa-shield:before{content:"\f132"}.fa-shield-blank:before{content:"\f132"}.fa-arrow-up-short-wide:before{content:"\f885"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before{content:"\f450"}.fa-golf-ball:before{content:"\f450"}.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-wand-magic:before{content:"\f0d0"}.fa-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-empty:before{content:"\f5ce"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-person-biking:before{content:"\f84a"}.fa-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before{content:"\e47b"}.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before{content:"\f2d3"}.fa-times-square:before{content:"\f2d3"}.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"#"}.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-expand-alt:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"T"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-up-down:before{content:"\f338"}.fa-arrows-alt-v:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before{content:"\f666"}.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before{content:"\f055"}.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before{content:"\f58b"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-link-slash:before{content:"\f127"}.fa-chain-broken:before{content:"\f127"}.fa-chain-slash:before{content:"\f127"}.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before{content:"\f882"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-flame-curved:before{content:"\f7e4"}.fa-fire-alt:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before{content:"\f687"}.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-face-angry:before{content:"\f556"}.fa-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-rss:before{content:"\f09e"}.fa-feed:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale:before{content:"\f24e"}.fa-gauge-simple-high:before{content:"\f62a"}.fa-tachometer:before{content:"\f62a"}.fa-tachometer-fast:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop:before{content:"\f390"}.fa-desktop-alt:before{content:"\f390"}.fa-m:before{content:"M"}.fa-table-list:before{content:"\f00b"}.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before{content:"\f7cd"}.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-4:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-hand-fist:before{content:"\f6de"}.fa-fist-raised:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before{content:"\f3e0"}.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before{content:"\f7a2"}.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before{content:"\f59d"}.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-xmark:before{content:"\f410"}.fa-rectangle-times:before{content:"\f410"}.fa-times-rectangle:before{content:"\f410"}.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before{content:"\f66a"}.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-triangle-exclamation:before{content:"\f071"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-share:before{content:"\f064"}.fa-mail-forward:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-right-left:before{content:"\f362"}.fa-exchange-alt:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before{content:"\f53b"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before{content:"\f2a7"}.fa-sign-language:before{content:"\f2a7"}.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-water-ladder:before{content:"\f5c5"}.fa-ladder-water:before{content:"\f5c5"}.fa-swimming-pool:before{content:"\f5c5"}.fa-arrows-up-down:before{content:"\f07d"}.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before{content:"\f57f"}.fa-grimace:before{content:"\f57f"}.fa-wheelchair-move:before{content:"\e2ce"}.fa-wheelchair-alt:before{content:"\e2ce"}.fa-turn-down:before{content:"\f3be"}.fa-level-down-alt:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-square-envelope:before{content:"\f199"}.fa-envelope-square:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-bandage:before{content:"\f462"}.fa-band-aid:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before{content:"\f057"}.fa-times-circle:before{content:"\f057"}.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before{content:"\f57e"}.fa-globe-asia:before{content:"\f57e"}.fa-id-card-clip:before{content:"\f47f"}.fa-id-card-alt:before{content:"\f47f"}.fa-magnifying-glass-plus:before{content:"\f00e"}.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-hand-dots:before{content:"\f461"}.fa-allergies:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-mug-saucer:before{content:"\f0f4"}.fa-coffee:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before{content:"\f010"}.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-large:before{content:"\f406"}.fa-user-alt:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before{content:"\f249"}.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before{content:"\f5b4"}.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"!"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-turkish-lira-sign:before{content:"\e2bb"}.fa-try:before{content:"\e2bb"}.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before{content:"$"}.fa-dollar:before{content:"$"}.fa-usd:before{content:"$"}.fa-x:before{content:"X"}.fa-magnifying-glass-dollar:before{content:"\f688"}.fa-search-dollar:before{content:"\f688"}.fa-users-gear:before{content:"\f509"}.fa-users-cog:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-building-columns:before{content:"\f19c"}.fa-bank:before{content:"\f19c"}.fa-institution:before{content:"\f19c"}.fa-museum:before{content:"\f19c"}.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"D"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before{content:"\f630"}.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt:before{content:"\f4c6"}.fa-jet-fighter:before{content:"\f0fb"}.fa-fighter-jet:before{content:"\f0fb"}.fa-square-share-nodes:before{content:"\f1e1"}.fa-share-alt-square:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video:before{content:"\f03d"}.fa-video-camera:before{content:"\f03d"}.fa-graduation-cap:before{content:"\f19d"}.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-turn-up:before{content:"\f3bf"}.fa-level-up-alt:before{content:"\f3bf"}.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}:root,:host{--fa-style-family-brands: "Font Awesome 6 Brands";--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fa-brands-400.e465758e13df1d72.woff2) format("woff2"),url(fa-brands-400.8bf6ccf0176a7567.ttf) format("truetype")}.fab,.fa-brands{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-square-js:before{content:"\f3b9"}.fa-js-square:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-square-reddit:before{content:"\f1a2"}.fa-reddit-square:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-square-instagram:before{content:"\e055"}.fa-instagram-square:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-square-hacker-news:before{content:"\f3af"}.fa-hacker-news-square:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-square-snapchat:before{content:"\f2ad"}.fa-snapchat-square:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before{content:"\f2aa"}.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-square-dribbble:before{content:"\f397"}.fa-dribbble-square:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before{content:"\f081"}.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before{content:"\f431"}.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-wpressr:before{content:"\f3e4"}.fa-rendact:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before{content:"\f1b7"}.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before{content:"\f194"}.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-flag:before{content:"\f2b4"}.fa-font-awesome-logo-full:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-square-github:before{content:"\f092"}.fa-github-square:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-square-gitlab:before{content:"\e5ae"}.fa-gitlab-square:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-square-odnoklassniki:before{content:"\f264"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-square-pinterest:before{content:"\f0d3"}.fa-pinterest-square:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-square-google-plus:before{content:"\f0d4"}.fa-google-plus-square:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before{content:"\f169"}.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before{content:"\e080"}.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-square-pied-piper:before{content:"\e01e"}.fa-pied-piper-square:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-square-facebook:before{content:"\f082"}.fa-facebook-square:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-square-lastfm:before{content:"\f203"}.fa-lastfm-square:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before{content:"\e2d0"}.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-square-behance:before{content:"\f1b5"}.fa-behance-square:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-square-git:before{content:"\f1d2"}.fa-git-square:before{content:"\f1d2"}.fa-square-tumblr:before{content:"\f174"}.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before{content:"\f40c"}.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.f386b6b7c6bf65a5.woff2) format("woff2"),url(fa-regular-400.a937b755f79cb30d.ttf) format("truetype")}.far,.fa-regular{font-weight:400}/*! + * Font Awesome Free 6.5.1 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 2023 Fonticons, Inc. + */:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.ce4938a30389d90a.woff2) format("woff2"),url(fa-solid-900.081655f2111aa667.ttf) format("truetype")}.fas,.fa-solid{font-weight:900}.switch{font-size:1rem;position:relative}.switch input{position:absolute;height:1px;width:1px;background:none;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;padding:0}.switch input+label{position:relative;min-width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2);border-radius:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);height:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);display:inline-block;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;vertical-align:middle;text-indent:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch input+label:before,.switch input+label:after{content:"";position:absolute;top:0;left:0;width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2);bottom:0;display:block}.switch input+label:before{right:0;background-color:#dee2e6;border-radius:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);transition:.2s all}.switch input+label:after{top:2px;left:2px;width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);border-radius:50%;background-color:#fff;transition:.2s all}.switch input:checked+label:before{background-color:#0073dd}.switch input:checked+label:after{margin-left:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8)}.switch input:focus+label:before{outline:none;box-shadow:0 0 0 .25rem #0073dd40}.switch input:disabled+label{color:#868e96;cursor:not-allowed}.switch input:disabled+label:before{background-color:#e9ecef}.switch.switch-sm{font-size:.875rem}.switch.switch-sm input+label{min-width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2);height:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8);text-indent:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch.switch-sm input+label:before{width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2)}.switch.switch-sm input+label:after{width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2)}.switch.switch-sm input:checked+label:after{margin-left:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8)}.switch.switch-lg{font-size:1.25rem}.switch.switch-lg input+label{min-width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2);height:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8);text-indent:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch.switch-lg input+label:before{width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2)}.switch.switch-lg input+label:after{width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2)}.switch.switch-lg input:checked+label:after{margin-left:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8)}.switch+.switch{margin-left:1rem}.blink{color:red;animation:blink 2s steps(5,start) infinite;-webkit-animation:blink 1s steps(5,start) infinite}@keyframes blink{to{visibility:hidden}}button[disabled]{cursor:not-allowed}ng-select .ng-dropdown-panel{width:auto}a{text-decoration:none}.card-footer{padding:2;color:transparent;background-color:transparent;border-top:0}.p-datatable .p-sortable-column .p-sortable-column-icon{margin-left:.2rem}.p-inputtext{padding:.375rem .75rem}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.advanced-pie-legend .total-value{font-size:20px!important}.advanced-pie-legend .total-label{font-size:14px!important;margin-bottom:5px!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:14px!important;margin-left:11px;line-height:1em!important;margin-top:0!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:10px!important;opacity:.7;margin-left:11px;margin-top:0!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:14px!important;opacity:.7;margin-left:11px;line-height:1em!important} diff --git a/www/z4d/styles.6d3ee1d65bd93be8.css b/www/z4d/styles.6d3ee1d65bd93be8.css deleted file mode 100644 index 5a7ad132e..000000000 --- a/www/z4d/styles.6d3ee1d65bd93be8.css +++ /dev/null @@ -1,18 +0,0 @@ -@font-face{font-family:primeicons;font-display:block;src:url(primeicons.ffecb2549ad1765a.eot);src:url(primeicons.ffecb2549ad1765a.eot?#iefix) format("embedded-opentype"),url(primeicons.ba3f916dfb64be8c.woff2) format("woff2"),url(primeicons.f8b9e8a4e401b603.woff) format("woff"),url(primeicons.0112589c5695a9ed.ttf) format("truetype"),url(primeicons.943ab24c43224d29.svg?#primeicons) format("svg");font-weight:400;font-style:normal}.pi{font-family:primeicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pi:before{--webkit-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.pi-fw{width:1.28571429em;text-align:center}.pi-spin{animation:fa-spin 2s infinite linear}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.pi-eraser:before{content:"\ea04"}.pi-stopwatch:before{content:"\ea01"}.pi-verified:before{content:"\ea02"}.pi-delete-left:before{content:"\ea03"}.pi-hourglass:before{content:"\e9fe"}.pi-truck:before{content:"\ea00"}.pi-wrench:before{content:"\e9ff"}.pi-microphone:before{content:"\e9fa"}.pi-megaphone:before{content:"\e9fb"}.pi-arrow-right-arrow-left:before{content:"\e9fc"}.pi-bitcoin:before{content:"\e9fd"}.pi-file-edit:before{content:"\e9f6"}.pi-language:before{content:"\e9f7"}.pi-file-export:before{content:"\e9f8"}.pi-file-import:before{content:"\e9f9"}.pi-file-word:before{content:"\e9f1"}.pi-gift:before{content:"\e9f2"}.pi-cart-plus:before{content:"\e9f3"}.pi-thumbs-down-fill:before{content:"\e9f4"}.pi-thumbs-up-fill:before{content:"\e9f5"}.pi-arrows-alt:before{content:"\e9f0"}.pi-calculator:before{content:"\e9ef"}.pi-sort-alt-slash:before{content:"\e9ee"}.pi-arrows-h:before{content:"\e9ec"}.pi-arrows-v:before{content:"\e9ed"}.pi-pound:before{content:"\e9eb"}.pi-prime:before{content:"\e9ea"}.pi-chart-pie:before{content:"\e9e9"}.pi-reddit:before{content:"\e9e8"}.pi-code:before{content:"\e9e7"}.pi-sync:before{content:"\e9e6"}.pi-shopping-bag:before{content:"\e9e5"}.pi-server:before{content:"\e9e4"}.pi-database:before{content:"\e9e3"}.pi-hashtag:before{content:"\e9e2"}.pi-bookmark-fill:before{content:"\e9df"}.pi-filter-fill:before{content:"\e9e0"}.pi-heart-fill:before{content:"\e9e1"}.pi-flag-fill:before{content:"\e9de"}.pi-circle:before{content:"\e9dc"}.pi-circle-fill:before{content:"\e9dd"}.pi-bolt:before{content:"\e9db"}.pi-history:before{content:"\e9da"}.pi-box:before{content:"\e9d9"}.pi-at:before{content:"\e9d8"}.pi-arrow-up-right:before{content:"\e9d4"}.pi-arrow-up-left:before{content:"\e9d5"}.pi-arrow-down-left:before{content:"\e9d6"}.pi-arrow-down-right:before{content:"\e9d7"}.pi-telegram:before{content:"\e9d3"}.pi-stop-circle:before{content:"\e9d2"}.pi-stop:before{content:"\e9d1"}.pi-whatsapp:before{content:"\e9d0"}.pi-building:before{content:"\e9cf"}.pi-qrcode:before{content:"\e9ce"}.pi-car:before{content:"\e9cd"}.pi-instagram:before{content:"\e9cc"}.pi-linkedin:before{content:"\e9cb"}.pi-send:before{content:"\e9ca"}.pi-slack:before{content:"\e9c9"}.pi-sun:before{content:"\e9c8"}.pi-moon:before{content:"\e9c7"}.pi-vimeo:before{content:"\e9c6"}.pi-youtube:before{content:"\e9c5"}.pi-flag:before{content:"\e9c4"}.pi-wallet:before{content:"\e9c3"}.pi-map:before{content:"\e9c2"}.pi-link:before{content:"\e9c1"}.pi-credit-card:before{content:"\e9bf"}.pi-discord:before{content:"\e9c0"}.pi-percentage:before{content:"\e9be"}.pi-euro:before{content:"\e9bd"}.pi-book:before{content:"\e9ba"}.pi-shield:before{content:"\e9b9"}.pi-paypal:before{content:"\e9bb"}.pi-amazon:before{content:"\e9bc"}.pi-phone:before{content:"\e9b8"}.pi-filter-slash:before{content:"\e9b7"}.pi-facebook:before{content:"\e9b4"}.pi-github:before{content:"\e9b5"}.pi-twitter:before{content:"\e9b6"}.pi-step-backward-alt:before{content:"\e9ac"}.pi-step-forward-alt:before{content:"\e9ad"}.pi-forward:before{content:"\e9ae"}.pi-backward:before{content:"\e9af"}.pi-fast-backward:before{content:"\e9b0"}.pi-fast-forward:before{content:"\e9b1"}.pi-pause:before{content:"\e9b2"}.pi-play:before{content:"\e9b3"}.pi-compass:before{content:"\e9ab"}.pi-id-card:before{content:"\e9aa"}.pi-ticket:before{content:"\e9a9"}.pi-file-o:before{content:"\e9a8"}.pi-reply:before{content:"\e9a7"}.pi-directions-alt:before{content:"\e9a5"}.pi-directions:before{content:"\e9a6"}.pi-thumbs-up:before{content:"\e9a3"}.pi-thumbs-down:before{content:"\e9a4"}.pi-sort-numeric-down-alt:before{content:"\e996"}.pi-sort-numeric-up-alt:before{content:"\e997"}.pi-sort-alpha-down-alt:before{content:"\e998"}.pi-sort-alpha-up-alt:before{content:"\e999"}.pi-sort-numeric-down:before{content:"\e99a"}.pi-sort-numeric-up:before{content:"\e99b"}.pi-sort-alpha-down:before{content:"\e99c"}.pi-sort-alpha-up:before{content:"\e99d"}.pi-sort-alt:before{content:"\e99e"}.pi-sort-amount-up:before{content:"\e99f"}.pi-sort-amount-down:before{content:"\e9a0"}.pi-sort-amount-down-alt:before{content:"\e9a1"}.pi-sort-amount-up-alt:before{content:"\e9a2"}.pi-palette:before{content:"\e995"}.pi-undo:before{content:"\e994"}.pi-desktop:before{content:"\e993"}.pi-sliders-v:before{content:"\e991"}.pi-sliders-h:before{content:"\e992"}.pi-search-plus:before{content:"\e98f"}.pi-search-minus:before{content:"\e990"}.pi-file-excel:before{content:"\e98e"}.pi-file-pdf:before{content:"\e98d"}.pi-check-square:before{content:"\e98c"}.pi-chart-line:before{content:"\e98b"}.pi-user-edit:before{content:"\e98a"}.pi-exclamation-circle:before{content:"\e989"}.pi-android:before{content:"\e985"}.pi-google:before{content:"\e986"}.pi-apple:before{content:"\e987"}.pi-microsoft:before{content:"\e988"}.pi-heart:before{content:"\e984"}.pi-mobile:before{content:"\e982"}.pi-tablet:before{content:"\e983"}.pi-key:before{content:"\e981"}.pi-shopping-cart:before{content:"\e980"}.pi-comments:before{content:"\e97e"}.pi-comment:before{content:"\e97f"}.pi-briefcase:before{content:"\e97d"}.pi-bell:before{content:"\e97c"}.pi-paperclip:before{content:"\e97b"}.pi-share-alt:before{content:"\e97a"}.pi-envelope:before{content:"\e979"}.pi-volume-down:before{content:"\e976"}.pi-volume-up:before{content:"\e977"}.pi-volume-off:before{content:"\e978"}.pi-eject:before{content:"\e975"}.pi-money-bill:before{content:"\e974"}.pi-images:before{content:"\e973"}.pi-image:before{content:"\e972"}.pi-sign-in:before{content:"\e970"}.pi-sign-out:before{content:"\e971"}.pi-wifi:before{content:"\e96f"}.pi-sitemap:before{content:"\e96e"}.pi-chart-bar:before{content:"\e96d"}.pi-camera:before{content:"\e96c"}.pi-dollar:before{content:"\e96b"}.pi-lock-open:before{content:"\e96a"}.pi-table:before{content:"\e969"}.pi-map-marker:before{content:"\e968"}.pi-list:before{content:"\e967"}.pi-eye-slash:before{content:"\e965"}.pi-eye:before{content:"\e966"}.pi-folder-open:before{content:"\e964"}.pi-folder:before{content:"\e963"}.pi-video:before{content:"\e962"}.pi-inbox:before{content:"\e961"}.pi-lock:before{content:"\e95f"}.pi-unlock:before{content:"\e960"}.pi-tags:before{content:"\e95d"}.pi-tag:before{content:"\e95e"}.pi-power-off:before{content:"\e95c"}.pi-save:before{content:"\e95b"}.pi-question-circle:before{content:"\e959"}.pi-question:before{content:"\e95a"}.pi-copy:before{content:"\e957"}.pi-file:before{content:"\e958"}.pi-clone:before{content:"\e955"}.pi-calendar-times:before{content:"\e952"}.pi-calendar-minus:before{content:"\e953"}.pi-calendar-plus:before{content:"\e954"}.pi-ellipsis-v:before{content:"\e950"}.pi-ellipsis-h:before{content:"\e951"}.pi-bookmark:before{content:"\e94e"}.pi-globe:before{content:"\e94f"}.pi-replay:before{content:"\e94d"}.pi-filter:before{content:"\e94c"}.pi-print:before{content:"\e94b"}.pi-align-right:before{content:"\e946"}.pi-align-left:before{content:"\e947"}.pi-align-center:before{content:"\e948"}.pi-align-justify:before{content:"\e949"}.pi-cog:before{content:"\e94a"}.pi-cloud-download:before{content:"\e943"}.pi-cloud-upload:before{content:"\e944"}.pi-cloud:before{content:"\e945"}.pi-pencil:before{content:"\e942"}.pi-users:before{content:"\e941"}.pi-clock:before{content:"\e940"}.pi-user-minus:before{content:"\e93e"}.pi-user-plus:before{content:"\e93f"}.pi-trash:before{content:"\e93d"}.pi-external-link:before{content:"\e93c"}.pi-window-maximize:before{content:"\e93b"}.pi-window-minimize:before{content:"\e93a"}.pi-refresh:before{content:"\e938"}.pi-user:before{content:"\e939"}.pi-exclamation-triangle:before{content:"\e922"}.pi-calendar:before{content:"\e927"}.pi-chevron-circle-left:before{content:"\e928"}.pi-chevron-circle-down:before{content:"\e929"}.pi-chevron-circle-right:before{content:"\e92a"}.pi-chevron-circle-up:before{content:"\e92b"}.pi-angle-double-down:before{content:"\e92c"}.pi-angle-double-left:before{content:"\e92d"}.pi-angle-double-right:before{content:"\e92e"}.pi-angle-double-up:before{content:"\e92f"}.pi-angle-down:before{content:"\e930"}.pi-angle-left:before{content:"\e931"}.pi-angle-right:before{content:"\e932"}.pi-angle-up:before{content:"\e933"}.pi-upload:before{content:"\e934"}.pi-download:before{content:"\e956"}.pi-ban:before{content:"\e935"}.pi-star-fill:before{content:"\e936"}.pi-star:before{content:"\e937"}.pi-chevron-left:before{content:"\e900"}.pi-chevron-right:before{content:"\e901"}.pi-chevron-down:before{content:"\e902"}.pi-chevron-up:before{content:"\e903"}.pi-caret-left:before{content:"\e904"}.pi-caret-right:before{content:"\e905"}.pi-caret-down:before{content:"\e906"}.pi-caret-up:before{content:"\e907"}.pi-search:before{content:"\e908"}.pi-check:before{content:"\e909"}.pi-check-circle:before{content:"\e90a"}.pi-times:before{content:"\e90b"}.pi-times-circle:before{content:"\e90c"}.pi-plus:before{content:"\e90d"}.pi-plus-circle:before{content:"\e90e"}.pi-minus:before{content:"\e90f"}.pi-minus-circle:before{content:"\e910"}.pi-circle-on:before{content:"\e911"}.pi-circle-off:before{content:"\e912"}.pi-sort-down:before{content:"\e913"}.pi-sort-up:before{content:"\e914"}.pi-sort:before{content:"\e915"}.pi-step-backward:before{content:"\e916"}.pi-step-forward:before{content:"\e917"}.pi-th-large:before{content:"\e918"}.pi-arrow-down:before{content:"\e919"}.pi-arrow-left:before{content:"\e91a"}.pi-arrow-right:before{content:"\e91b"}.pi-arrow-up:before{content:"\e91c"}.pi-bars:before{content:"\e91d"}.pi-arrow-circle-down:before{content:"\e91e"}.pi-arrow-circle-left:before{content:"\e91f"}.pi-arrow-circle-right:before{content:"\e920"}.pi-arrow-circle-up:before{content:"\e921"}.pi-info:before{content:"\e923"}.pi-info-circle:before{content:"\e924"}.pi-home:before{content:"\e925"}.pi-spinner:before{content:"\e926"}:root{--surface-a:#ffffff;--surface-b:#f8f9fa;--surface-c:#e9ecef;--surface-d:#dee2e6;--surface-e:#ffffff;--surface-f:#ffffff;--text-color:#495057;--text-color-secondary:#6c757d;--primary-color:#3B82F6;--primary-color-text:#ffffff;--font-family:-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--surface-0: #ffffff;--surface-50: #FAFAFA;--surface-100: #F5F5F5;--surface-200: #EEEEEE;--surface-300: #E0E0E0;--surface-400: #BDBDBD;--surface-500: #9E9E9E;--surface-600: #757575;--surface-700: #616161;--surface-800: #424242;--surface-900: #212121;--gray-50: #FAFAFA;--gray-100: #F5F5F5;--gray-200: #EEEEEE;--gray-300: #E0E0E0;--gray-400: #BDBDBD;--gray-500: #9E9E9E;--gray-600: #757575;--gray-700: #616161;--gray-800: #424242;--gray-900: #212121;--content-padding:1.25rem;--inline-spacing:.5rem;--border-radius:6px;--surface-ground:#eff3f8;--surface-section:#ffffff;--surface-card:#ffffff;--surface-overlay:#ffffff;--surface-border:#dfe7ef;--surface-hover:#f6f9fc;--focus-ring: 0 0 0 .2rem #BFDBFE;--maskbg: rgba(0, 0, 0, .4);color-scheme:light}*{box-sizing:border-box}.p-component{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1rem;font-weight:400}.p-component-overlay{background-color:#0006;transition-duration:.2s}.p-disabled,.p-component:disabled{opacity:.6}.p-error{color:#e24c4c}.p-text-secondary{color:#6c757d}.pi{font-size:1rem}.p-link{font-size:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;border-radius:6px}.p-link:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-component-overlay-enter{animation:p-component-overlay-enter-animation .15s forwards}.p-component-overlay-leave{animation:p-component-overlay-leave-animation .15s forwards}@keyframes p-component-overlay-enter-animation{0%{background-color:transparent}to{background-color:var(--maskbg)}}@keyframes p-component-overlay-leave-animation{0%{background-color:var(--maskbg)}to{background-color:transparent}}:root{--blue-50:#f5f9ff;--blue-100:#d0e1fd;--blue-200:#abc9fb;--blue-300:#85b2f9;--blue-400:#609af8;--blue-500:#3b82f6;--blue-600:#326fd1;--blue-700:#295bac;--blue-800:#204887;--blue-900:#183462;--green-50:#f4fcf7;--green-100:#caf1d8;--green-200:#a0e6ba;--green-300:#76db9b;--green-400:#4cd07d;--green-500:#22c55e;--green-600:#1da750;--green-700:#188a42;--green-800:#136c34;--green-900:#0e4f26;--yellow-50:#fefbf3;--yellow-100:#faedc4;--yellow-200:#f6de95;--yellow-300:#f2d066;--yellow-400:#eec137;--yellow-500:#eab308;--yellow-600:#c79807;--yellow-700:#a47d06;--yellow-800:#816204;--yellow-900:#5e4803;--cyan-50:#f3fbfd;--cyan-100:#c3edf5;--cyan-200:#94e0ed;--cyan-300:#65d2e4;--cyan-400:#35c4dc;--cyan-500:#06b6d4;--cyan-600:#059bb4;--cyan-700:#047f94;--cyan-800:#036475;--cyan-900:#024955;--pink-50:#fef6fa;--pink-100:#fad3e7;--pink-200:#f7b0d3;--pink-300:#f38ec0;--pink-400:#f06bac;--pink-500:#ec4899;--pink-600:#c93d82;--pink-700:#a5326b;--pink-800:#822854;--pink-900:#5e1d3d;--indigo-50:#f7f7fe;--indigo-100:#dadafc;--indigo-200:#bcbdf9;--indigo-300:#9ea0f6;--indigo-400:#8183f4;--indigo-500:#6366f1;--indigo-600:#5457cd;--indigo-700:#4547a9;--indigo-800:#363885;--indigo-900:#282960;--teal-50:#f3fbfb;--teal-100:#c7eeea;--teal-200:#9ae0d9;--teal-300:#6dd3c8;--teal-400:#41c5b7;--teal-500:#14b8a6;--teal-600:#119c8d;--teal-700:#0e8174;--teal-800:#0b655b;--teal-900:#084a42;--orange-50:#fff8f3;--orange-100:#feddc7;--orange-200:#fcc39b;--orange-300:#fba86f;--orange-400:#fa8e42;--orange-500:#f97316;--orange-600:#d46213;--orange-700:#ae510f;--orange-800:#893f0c;--orange-900:#642e09;--bluegray-50:#f7f8f9;--bluegray-100:#dadee3;--bluegray-200:#bcc3cd;--bluegray-300:#9fa9b7;--bluegray-400:#818ea1;--bluegray-500:#64748b;--bluegray-600:#556376;--bluegray-700:#465161;--bluegray-800:#37404c;--bluegray-900:#282e38;--purple-50:#fbf7ff;--purple-100:#ead6fd;--purple-200:#dab6fc;--purple-300:#c996fa;--purple-400:#b975f9;--purple-500:#a855f7;--purple-600:#8f48d2;--purple-700:#763cad;--purple-800:#5c2f88;--purple-900:#432263;--red-50:#fff5f5;--red-100:#ffd0ce;--red-200:#ffaca7;--red-300:#ff8780;--red-400:#ff6259;--red-500:#ff3d32;--red-600:#d9342b;--red-700:#b32b23;--red-800:#8c221c;--red-900:#661814;--primary-50:#f5f9ff;--primary-100:#d0e1fd;--primary-200:#abc9fb;--primary-300:#85b2f9;--primary-400:#609af8;--primary-500:#3b82f6;--primary-600:#326fd1;--primary-700:#295bac;--primary-800:#204887;--primary-900:#183462}.p-autocomplete .p-autocomplete-loader{right:.75rem}.p-autocomplete.p-autocomplete-dd .p-autocomplete-loader{right:3.75rem}.p-autocomplete .p-autocomplete-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-autocomplete .p-autocomplete-multiple-container:not(.p-disabled):hover{border-color:#3b82f6}.p-autocomplete .p-autocomplete-multiple-container:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:.375rem 0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token input{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1rem;color:#495057;padding:0;margin:0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token{padding:.375rem .75rem;background:#EFF6FF;color:#1d4ed8;border-radius:6px}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon{margin-left:.5rem}p-autocomplete.ng-dirty.ng-invalid>.p-autocomplete>.p-inputtext{border-color:#e24c4c}.p-autocomplete-panel{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-autocomplete-panel .p-autocomplete-items{padding:.75rem 0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s;border-radius:0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:hover{color:#495057;background:#e9ecef}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-empty-message{padding:.75rem 1.25rem;color:#495057;background:transparent}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item-group{margin:0;padding:.75rem 1.25rem;color:#343a40;background:#ffffff;font-weight:700}p-autocomplete.p-autocomplete-clearable .p-inputtext{padding-right:2.5rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-clear-icon{color:#6c757d;right:.75rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-dd .p-autocomplete-clear-icon{color:#6c757d;right:3.75rem}p-calendar.ng-dirty.ng-invalid>.p-calendar>.p-inputtext{border-color:#e24c4c}.p-datepicker{padding:.5rem;background:#ffffff;color:#495057;border:1px solid #ced4da;border-radius:6px}.p-datepicker:not(.p-datepicker-inline){background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:#ffffff}.p-datepicker .p-datepicker-header{padding:.5rem;color:#495057;background:#ffffff;font-weight:600;margin:0;border-bottom:1px solid #dee2e6;border-top-right-radius:6px;border-top-left-radius:6px}.p-datepicker .p-datepicker-header .p-datepicker-prev,.p-datepicker .p-datepicker-header .p-datepicker-next{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-datepicker-header .p-datepicker-prev:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-next:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-datepicker .p-datepicker-header .p-datepicker-prev:focus,.p-datepicker .p-datepicker-header .p-datepicker-next:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-datepicker-header .p-datepicker-title{line-height:2rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{color:#495057;transition:background-color .2s,color .2s,box-shadow .2s;font-weight:600;padding:.5rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month:enabled:hover{color:#3b82f6}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{margin-right:.5rem}.p-datepicker table{font-size:1rem;margin:.5rem 0}.p-datepicker table th{padding:.5rem}.p-datepicker table th>span{width:2.5rem;height:2.5rem}.p-datepicker table td{padding:.5rem}.p-datepicker table td>span{width:2.5rem;height:2.5rem;border-radius:50%;transition:box-shadow .2s;border:1px solid transparent}.p-datepicker table td>span.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-datepicker table td>span:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker table td.p-datepicker-today>span{background:#ced4da;color:#495057;border-color:transparent}.p-datepicker table td.p-datepicker-today>span.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid #dee2e6}.p-datepicker .p-datepicker-buttonbar .p-button{width:auto}.p-datepicker .p-timepicker{border-top:1px solid #dee2e6;padding:.5rem}.p-datepicker .p-timepicker button{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-timepicker button:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-datepicker .p-timepicker button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-timepicker button:last-child{margin-top:.2em}.p-datepicker .p-timepicker span{font-size:1.25rem}.p-datepicker .p-timepicker>div{padding:0 .5rem}.p-datepicker.p-datepicker-timeonly .p-timepicker{border-top:0 none}.p-datepicker .p-monthpicker{margin:.5rem 0}.p-datepicker .p-monthpicker .p-monthpicker-month{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-monthpicker .p-monthpicker-month.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-datepicker .p-yearpicker{margin:.5rem 0}.p-datepicker .p-yearpicker .p-yearpicker-year{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-yearpicker .p-yearpicker-year.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group{border-left:1px solid #dee2e6;padding-right:.5rem;padding-left:.5rem;padding-top:0;padding-bottom:0}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:first-child{padding-left:0;border-left:0 none}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:last-child{padding-right:0}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#e9ecef}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover{background:#e9ecef}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover{background:#e9ecef}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}p-calendar.p-calendar-clearable .p-inputtext{padding-right:2.5rem}p-calendar.p-calendar-clearable .p-calendar-clear-icon{color:#6c757d;right:.75rem}p-calendar.p-calendar-clearable.p-calendar-w-btn .p-calendar-clear-icon{color:#6c757d;right:3.75rem}@media screen and (max-width: 769px){.p-datepicker table th,.p-datepicker table td{padding:0}}.p-cascadeselect{background:#ffffff;border:1px solid #ced4da;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-cascadeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-cascadeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-cascadeselect .p-cascadeselect-label{background:transparent;border:0 none;padding:.75rem}.p-cascadeselect .p-cascadeselect-label.p-placeholder{color:#6c757d}.p-cascadeselect .p-cascadeselect-label:enabled:focus{outline:0 none;box-shadow:none}.p-cascadeselect .p-cascadeselect-trigger{background:transparent;color:#6c757d;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-cascadeselect-panel{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-cascadeselect-panel .p-cascadeselect-items{padding:.75rem 0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item{margin:0;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s;border-radius:0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content{padding:.75rem 1.25rem}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled):hover{color:#495057;background:#e9ecef}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon{font-size:.875rem}p-cascadeselect.ng-dirty.ng-invalid>.p-cascadeselect{border-color:#e24c4c}.p-input-filled .p-cascadeselect{background:#e9ecef}.p-input-filled .p-cascadeselect:not(.p-disabled):hover{background-color:#e9ecef}.p-input-filled .p-cascadeselect:not(.p-disabled).p-focus{background-color:#fff}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-label{padding-right:.75rem}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-clear-icon{color:#6c757d;right:3rem}.p-overlay-modal .p-cascadeselect-sublist .p-cascadeselect-panel{box-shadow:none;border-radius:0;padding:.25rem 0 .25rem .5rem}.p-overlay-modal .p-cascadeselect-item-active>.p-cascadeselect-item-content .p-cascadeselect-group-icon{transform:rotate(90deg)}.p-checkbox{width:22px;height:22px}.p-checkbox .p-checkbox-box{border:2px solid #ced4da;background:#ffffff;width:22px;height:22px;color:#495057;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}.p-checkbox .p-checkbox-box.p-highlight{border-color:#3b82f6;background:#3B82F6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:#1d4ed8;background:#1D4ED8;color:#fff}p-checkbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-input-filled .p-checkbox .p-checkbox-box{background-color:#e9ecef}.p-input-filled .p-checkbox .p-checkbox-box.p-highlight{background:#3B82F6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{background-color:#e9ecef}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{background:#1D4ED8}.p-checkbox-label{margin-left:.5rem}.p-chips .p-chips-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-chips .p-chips-multiple-container:not(.p-disabled):hover{border-color:#3b82f6}.p-chips .p-chips-multiple-container:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-chips .p-chips-multiple-container .p-chips-token{padding:.375rem .75rem;background:#EFF6FF;color:#1d4ed8;border-radius:6px}.p-chips .p-chips-multiple-container .p-chips-token .p-chips-token-icon{margin-left:.5rem}.p-chips .p-chips-multiple-container .p-chips-input-token{padding:.375rem 0}.p-chips .p-chips-multiple-container .p-chips-input-token input{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1rem;color:#495057;padding:0;margin:0}p-chips.ng-dirty.ng-invalid>.p-chips>.p-inputtext{border-color:#e24c4c}p-chips.p-chips-clearable .p-inputtext{padding-right:1.75rem}p-chips.p-chips-clearable .p-chips-clear-icon{color:#6c757d;right:.75rem}.p-colorpicker-preview,.p-fluid .p-colorpicker-preview.p-inputtext{width:2rem;height:2rem}.p-colorpicker-panel{background:#323232;border:1px solid #191919}.p-colorpicker-panel .p-colorpicker-color-handle,.p-colorpicker-panel .p-colorpicker-hue-handle{border-color:#fff}.p-colorpicker-overlay-panel{box-shadow:0 2px 12px #0000001a}.p-dropdown{background:#ffffff;border:1px solid #ced4da;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-dropdown:not(.p-disabled):hover{border-color:#3b82f6}.p-dropdown:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-dropdown.p-dropdown-clearable .p-dropdown-label{padding-right:1.75rem}.p-dropdown .p-dropdown-label{background:transparent;border:0 none}.p-dropdown .p-dropdown-label.p-placeholder{color:#6c757d}.p-dropdown .p-dropdown-label:enabled:focus{outline:0 none;box-shadow:none}.p-dropdown .p-dropdown-trigger{background:transparent;color:#6c757d;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-dropdown .p-dropdown-clear-icon{color:#6c757d;right:3rem}.p-dropdown-panel{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-dropdown-panel .p-dropdown-header{padding:.75rem 1.25rem;border-bottom:1px solid #dee2e6;color:#343a40;background:#f8f9fa;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter{padding-right:1.75rem;margin-right:-1.75rem}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter-icon{right:.75rem;color:#6c757d}.p-dropdown-panel .p-dropdown-items{padding:.75rem 0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s;border-radius:0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled):hover{color:#495057;background:#e9ecef}.p-dropdown-panel .p-dropdown-items .p-dropdown-empty-message{padding:.75rem 1.25rem;color:#495057;background:transparent}.p-dropdown-panel .p-dropdown-items .p-dropdown-item-group{margin:0;padding:.75rem 1.25rem;color:#343a40;background:#ffffff;font-weight:700}p-dropdown.ng-dirty.ng-invalid>.p-dropdown{border-color:#e24c4c}.p-input-filled .p-dropdown{background:#e9ecef}.p-input-filled .p-dropdown:not(.p-disabled):hover{background-color:#e9ecef}.p-input-filled .p-dropdown:not(.p-disabled).p-focus{background-color:#fff}.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext{background-color:transparent}.p-editor-container .p-editor-toolbar{background:#f8f9fa;border-top-right-radius:6px;border-top-left-radius:6px}.p-editor-container .p-editor-toolbar.ql-snow{border:1px solid #dee2e6}.p-editor-container .p-editor-toolbar.ql-snow .ql-stroke{stroke:#6c757d}.p-editor-container .p-editor-toolbar.ql-snow .ql-fill{fill:#6c757d}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label{border:0 none;color:#6c757d}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover{color:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke{stroke:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill{fill:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;padding:.75rem 0}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item{color:#495057}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover{color:#495057;background:#e9ecef}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item{padding:.75rem 1.25rem}.p-editor-container .p-editor-content{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .p-editor-content.ql-snow{border:1px solid #dee2e6}.p-editor-container .p-editor-content .ql-editor{background:#ffffff;color:#495057;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .ql-snow.ql-toolbar button:hover,.p-editor-container .ql-snow.ql-toolbar button:focus{color:#495057}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-stroke,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-stroke{stroke:#495057}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-fill,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-fill{fill:#495057}.p-editor-container .ql-snow.ql-toolbar button.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected{color:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke{stroke:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill{fill:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label{color:#3b82f6}.p-inputgroup-addon{background:#e9ecef;color:#6c757d;border-top:1px solid #ced4da;border-left:1px solid #ced4da;border-bottom:1px solid #ced4da;padding:.75rem;min-width:3rem}.p-inputgroup-addon:last-child{border-right:1px solid #ced4da}.p-inputgroup>.p-component,.p-inputgroup>.p-element,.p-inputgroup>.p-inputwrapper>.p-component>.p-inputtext,.p-inputgroup>.p-float-label>.p-component{border-radius:0;margin:0}.p-inputgroup>.p-component+.p-inputgroup-addon,.p-inputgroup>.p-element+.p-inputgroup-addon,.p-inputgroup>.p-inputwrapper>.p-component>.p-inputtext+.p-inputgroup-addon,.p-inputgroup>.p-float-label>.p-component+.p-inputgroup-addon{border-left:0 none}.p-inputgroup>.p-component:focus,.p-inputgroup>.p-element:focus,.p-inputgroup>.p-inputwrapper>.p-component>.p-inputtext:focus,.p-inputgroup>.p-float-label>.p-component:focus{z-index:1}.p-inputgroup>.p-component:focus~label,.p-inputgroup>.p-element:focus~label,.p-inputgroup>.p-inputwrapper>.p-component>.p-inputtext:focus~label,.p-inputgroup>.p-float-label>.p-component:focus~label{z-index:1}.p-inputgroup-addon:first-child,.p-inputgroup button:first-child,.p-inputgroup input:first-child,.p-inputgroup>.p-inputwrapper:first-child>.p-component,.p-inputgroup>.p-inputwrapper:first-child>.p-component>.p-inputtext{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup .p-float-label:first-child input{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup-addon:last-child,.p-inputgroup button:last-child,.p-inputgroup input:last-child,.p-inputgroup>.p-inputwrapper:last-child>.p-component,.p-inputgroup>.p-inputwrapper:last-child>.p-component>.p-inputtext{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputgroup .p-float-label:last-child input{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-fluid .p-inputgroup .p-button{width:auto}.p-fluid .p-inputgroup .p-button.p-button-icon-only{width:3rem}p-inputmask.ng-dirty.ng-invalid>.p-inputtext{border-color:#e24c4c}p-inputmask.p-inputmask-clearable .p-inputtext{padding-right:2.5rem}p-inputmask.p-inputmask-clearable .p-inputmask-clear-icon{color:#6c757d;right:.75rem}p-inputnumber.ng-dirty.ng-invalid>.p-inputnumber>.p-inputtext{border-color:#e24c4c}p-inputnumber.p-inputnumber-clearable .p-inputnumber-input{padding-right:2.5rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-clear-icon{color:#6c757d;right:.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-stacked .p-inputnumber-clear-icon{right:3.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-horizontal .p-inputnumber-clear-icon{right:3.75rem}.p-inputswitch{width:3rem;height:1.75rem}.p-inputswitch .p-inputswitch-slider{background:#ced4da;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:30px}.p-inputswitch .p-inputswitch-slider:before{background:#ffffff;width:1.25rem;height:1.25rem;left:.25rem;margin-top:-.625rem;border-radius:50%;transition-duration:.2s}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{transform:translate(1.25rem)}.p-inputswitch.p-focus .p-inputswitch-slider{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-inputswitch:not(.p-disabled):hover .p-inputswitch-slider{background:#b6bfc8}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider{background:#3B82F6}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{background:#ffffff}.p-inputswitch.p-inputswitch-checked:not(.p-disabled):hover .p-inputswitch-slider{background:#2563eb}p-inputswitch.ng-dirty.ng-invalid>.p-inputswitch{border-color:#e24c4c}.p-inputtext{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1rem;color:#495057;background:#ffffff;padding:.75rem;border:1px solid #ced4da;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none;border-radius:6px}.p-inputtext:enabled:hover{border-color:#3b82f6}.p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-inputtext.ng-dirty.ng-invalid{border-color:#e24c4c}.p-inputtext.p-inputtext-sm{font-size:.875rem;padding:.65625rem}.p-inputtext.p-inputtext-lg{font-size:1.25rem;padding:.9375rem}.p-float-label>label{left:.75rem;color:#6c757d;transition-duration:.2s}.p-float-label>.ng-invalid.ng-dirty+label{color:#e24c4c}.p-input-icon-left>i:first-of-type{left:.75rem;color:#6c757d}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.p-input-icon-left.p-float-label>label{left:2.5rem}.p-input-icon-right>i:last-of-type{right:.75rem;color:#6c757d}.p-input-icon-right>.p-inputtext{padding-right:2.5rem}::-webkit-input-placeholder{color:#6c757d}:-moz-placeholder{color:#6c757d}::-moz-placeholder{color:#6c757d}:-ms-input-placeholder{color:#6c757d}.p-input-filled .p-inputtext{background-color:#e9ecef}.p-input-filled .p-inputtext:enabled:hover{background-color:#e9ecef}.p-input-filled .p-inputtext:enabled:focus{background-color:#fff}.p-inputtext-sm .p-inputtext{font-size:.875rem;padding:.65625rem}.p-inputtext-lg .p-inputtext{font-size:1.25rem;padding:.9375rem}.p-listbox{background:#ffffff;color:#495057;border:1px solid #ced4da;border-radius:6px}.p-listbox .p-listbox-header{padding:.75rem 1.25rem;border-bottom:1px solid #dee2e6;color:#343a40;background:#f8f9fa;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-listbox .p-listbox-header .p-listbox-filter{padding-right:1.75rem}.p-listbox .p-listbox-header .p-listbox-filter-icon{right:.75rem;color:#6c757d}.p-listbox .p-listbox-header .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list{padding:.75rem 0}.p-listbox .p-listbox-list .p-listbox-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#495057;transition:box-shadow .2s;border-radius:0}.p-listbox .p-listbox-list .p-listbox-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-listbox .p-listbox-list .p-listbox-item:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-listbox .p-listbox-list .p-listbox-item .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list .p-listbox-item-group{margin:0;padding:.75rem 1.25rem;color:#343a40;background:#ffffff;font-weight:700}.p-listbox .p-listbox-list .p-listbox-empty-message{padding:.75rem 1.25rem;color:#495057;background:transparent}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover{color:#495057;background:#e9ecef}p-listbox.ng-dirty.ng-invalid>.p-listbox{border-color:#e24c4c}.p-multiselect{background:#ffffff;border:1px solid #ced4da;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-multiselect:not(.p-disabled):hover{border-color:#3b82f6}.p-multiselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-multiselect .p-multiselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-multiselect .p-multiselect-label.p-placeholder{color:#6c757d}.p-multiselect.p-multiselect-chip .p-multiselect-label{gap:.5rem}.p-multiselect.p-multiselect-chip .p-multiselect-token{padding:.375rem .75rem;background:#EFF6FF;color:#1d4ed8;border-radius:6px}.p-multiselect.p-multiselect-chip .p-multiselect-token .p-multiselect-token-icon{margin-left:.5rem}.p-multiselect .p-multiselect-trigger{background:transparent;color:#6c757d;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputwrapper-filled .p-multiselect.p-multiselect-chip .p-multiselect-label{padding:.375rem .75rem}.p-multiselect-panel{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-multiselect-panel .p-multiselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #dee2e6;color:#343a40;background:#f8f9fa;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext{padding-right:1.75rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon{right:.75rem;color:#6c757d}.p-multiselect-panel .p-multiselect-header .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-close{margin-left:.5rem;width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-multiselect-panel .p-multiselect-items{padding:.75rem 0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s;border-radius:0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled):hover{color:#495057;background:#e9ecef}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-items .p-multiselect-item-group{margin:0;padding:.75rem 1.25rem;color:#343a40;background:#ffffff;font-weight:700}.p-multiselect-panel .p-multiselect-items .p-multiselect-empty-message{padding:.75rem 1.25rem;color:#495057;background:transparent}p-multiselect.ng-dirty.ng-invalid>.p-multiselect{border-color:#e24c4c}.p-input-filled .p-multiselect{background:#e9ecef}.p-input-filled .p-multiselect:not(.p-disabled):hover{background-color:#e9ecef}.p-input-filled .p-multiselect:not(.p-disabled).p-focus{background-color:#fff}p-multiselect.p-multiselect-clearable .p-multiselect-label-container{padding-right:1.75rem}p-multiselect.p-multiselect-clearable .p-multiselect-clear-icon{color:#6c757d;right:3rem}p-password.ng-invalid.ng-dirty>.p-password>.p-inputtext{border-color:#e24c4c}.p-password-panel{padding:1.25rem;background:#ffffff;color:#495057;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-password-panel .p-password-meter{margin-bottom:.5rem;background:#dee2e6}.p-password-panel .p-password-meter .p-password-strength.weak{background:#ea5455}.p-password-panel .p-password-meter .p-password-strength.medium{background:#ff9f42}.p-password-panel .p-password-meter .p-password-strength.strong{background:#29c76f}p-password.p-password-clearable .p-password-input{padding-right:2.5rem}p-password.p-password-clearable .p-password-clear-icon{color:#6c757d;right:.75rem}p-password.p-password-clearable.p-password-mask .p-password-input{padding-right:4.25rem}p-password.p-password-clearable.p-password-mask .p-password-clear-icon{color:#6c757d;right:2.5rem}.p-radiobutton{width:22px;height:22px}.p-radiobutton .p-radiobutton-box{border:2px solid #ced4da;background:#ffffff;width:22px;height:22px;color:#495057;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-radiobutton .p-radiobutton-box:not(.p-disabled):not(.p-highlight):hover{border-color:#3b82f6}.p-radiobutton .p-radiobutton-box:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-radiobutton .p-radiobutton-box .p-radiobutton-icon{width:12px;height:12px;transition-duration:.2s;background-color:#fff}.p-radiobutton .p-radiobutton-box.p-highlight{border-color:#3b82f6;background:#3B82F6}.p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{border-color:#1d4ed8;background:#1D4ED8;color:#fff}p-radiobutton.ng-dirty.ng-invalid>.p-radiobutton>.p-radiobutton-box{border-color:#e24c4c}.p-input-filled .p-radiobutton .p-radiobutton-box{background-color:#e9ecef}.p-input-filled .p-radiobutton .p-radiobutton-box:not(.p-disabled):hover{background-color:#e9ecef}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight{background:#3B82F6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{background:#1D4ED8}.p-radiobutton-label{margin-left:.5rem}.p-rating .p-rating-icon{color:#495057;margin-left:.5rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;font-size:1.143rem}.p-rating .p-rating-icon.p-rating-cancel{color:#ea5455}.p-rating .p-rating-icon:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-rating .p-rating-icon:first-child{margin-left:0}.p-rating .p-rating-icon.pi-star-fill{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-icon:hover{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-icon.p-rating-cancel:hover{color:#e73d3e}.p-selectbutton .p-button{background:#ffffff;border:1px solid #ced4da;color:#495057;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-selectbutton .p-button .p-button-icon-left,.p-selectbutton .p-button .p-button-icon-right{color:#6c757d}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover{background:#e9ecef;border-color:#ced4da;color:#495057}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#343a40}.p-selectbutton .p-button.p-highlight{background:#3B82F6;border-color:#3b82f6;color:#fff}.p-selectbutton .p-button.p-highlight .p-button-icon-left,.p-selectbutton .p-button.p-highlight .p-button-icon-right{color:#fff}.p-selectbutton .p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-selectbutton .p-button.p-highlight:hover .p-button-icon-left,.p-selectbutton .p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border-color:#e24c4c}.p-slider{background:#dee2e6;border:0 none;border-radius:6px}.p-slider.p-slider-horizontal{height:.286rem}.p-slider.p-slider-horizontal .p-slider-handle{margin-top:-.5715rem;margin-left:-.5715rem}.p-slider.p-slider-vertical{width:.286rem}.p-slider.p-slider-vertical .p-slider-handle{margin-left:-.5715rem;margin-bottom:-.5715rem}.p-slider .p-slider-handle{height:1.143rem;width:1.143rem;background:#ffffff;border:2px solid #3B82F6;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-slider .p-slider-handle:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-slider .p-slider-range{background:#3B82F6}.p-slider:not(.p-disabled) .p-slider-handle:hover{background:#3B82F6;border-color:#3b82f6}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,left .2s}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-range{transition:width .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,bottom .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-range{transition:height .2s}.p-togglebutton.p-button{background:#ffffff;border:1px solid #ced4da;color:#495057;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-togglebutton.p-button .p-button-icon-left,.p-togglebutton.p-button .p-button-icon-right{color:#6c757d}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover{background:#e9ecef;border-color:#ced4da;color:#495057}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#343a40}.p-togglebutton.p-button.p-highlight{background:#3B82F6;border-color:#3b82f6;color:#fff}.p-togglebutton.p-button.p-highlight .p-button-icon-left,.p-togglebutton.p-button.p-highlight .p-button-icon-right{color:#fff}.p-togglebutton.p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-togglebutton.p-button.p-highlight:hover .p-button-icon-left,.p-togglebutton.p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-togglebutton.ng-dirty.ng-invalid>.p-togglebutton.p-button{border-color:#e24c4c}.p-treeselect{background:#ffffff;border:1px solid #ced4da;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-treeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-treeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-treeselect .p-treeselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-treeselect .p-treeselect-label.p-placeholder{color:#6c757d}.p-treeselect.p-treeselect-chip .p-treeselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#dee2e6;color:#495057;border-radius:16px}.p-treeselect .p-treeselect-trigger{background:transparent;color:#6c757d;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}p-treeselect.ng-invalid.ng-dirty>.p-treeselect{border-color:#e24c4c}.p-inputwrapper-filled .p-treeselect.p-treeselect-chip .p-treeselect-label{padding:.375rem .75rem}.p-treeselect-panel{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-treeselect-panel .p-treeselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #dee2e6;color:#343a40;background:#f8f9fa;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container{margin-right:.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter{padding-right:1.75rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter-icon{right:.75rem;color:#6c757d}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter{padding-right:3.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter-clear-icon{right:2.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-close{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treeselect-panel .p-treeselect-items-wrapper .p-tree{border:0 none}.p-treeselect-panel .p-treeselect-items-wrapper .p-treeselect-empty-message{padding:.75rem 1.25rem;color:#495057;background:transparent}.p-input-filled .p-treeselect{background:#e9ecef}.p-input-filled .p-treeselect:not(.p-disabled):hover{background-color:#e9ecef}.p-input-filled .p-treeselect:not(.p-disabled).p-focus{background-color:#fff}p-treeselect.p-treeselect-clearable .p-treeselect-label-container{padding-right:1.75rem}p-treeselect.p-treeselect-clearable .p-treeselect-clear-icon{color:#6c757d;right:3rem}.p-button{color:#fff;background:#3B82F6;border:1px solid #3B82F6;padding:.75rem 1.25rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-button:enabled:hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-button:enabled:active{background:#1D4ED8;color:#fff;border-color:#1d4ed8}.p-button.p-button-outlined{background-color:transparent;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:enabled:hover{background:rgba(59,130,246,.04);color:#3b82f6;border:1px solid}.p-button.p-button-outlined:enabled:active{background:rgba(59,130,246,.16);color:#3b82f6;border:1px solid}.p-button.p-button-outlined.p-button-plain{color:#6c757d;border-color:#6c757d}.p-button.p-button-outlined.p-button-plain:enabled:hover{background:#e9ecef;color:#6c757d}.p-button.p-button-outlined.p-button-plain:enabled:active{background:#dee2e6;color:#6c757d}.p-button.p-button-text{background-color:transparent;color:#3b82f6;border-color:transparent}.p-button.p-button-text:enabled:hover{background:rgba(59,130,246,.04);color:#3b82f6;border-color:transparent}.p-button.p-button-text:enabled:active{background:rgba(59,130,246,.16);color:#3b82f6;border-color:transparent}.p-button.p-button-text.p-button-plain{color:#6c757d}.p-button.p-button-text.p-button-plain:enabled:hover{background:#e9ecef;color:#6c757d}.p-button.p-button-text.p-button-plain:enabled:active{background:#dee2e6;color:#6c757d}.p-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-button .p-button-label{transition-duration:.2s}.p-button .p-button-icon-left{margin-right:.5rem}.p-button .p-button-icon-right{margin-left:.5rem}.p-button .p-button-icon-bottom{margin-top:.5rem}.p-button .p-button-icon-top{margin-bottom:.5rem}.p-button .p-badge{margin-left:.5rem;min-width:1rem;height:1rem;line-height:1rem;color:#3b82f6;background-color:#fff}.p-button.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-button.p-button-rounded{border-radius:2rem}.p-button.p-button-icon-only{width:3rem;padding:.75rem 0}.p-button.p-button-icon-only .p-button-icon-left,.p-button.p-button-icon-only .p-button-icon-right{margin:0}.p-button.p-button-icon-only.p-button-rounded{border-radius:50%;height:3rem}.p-button.p-button-sm{font-size:.875rem;padding:.65625rem 1.09375rem}.p-button.p-button-sm .p-button-icon{font-size:.875rem}.p-button.p-button-lg{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-button.p-button-lg .p-button-icon{font-size:1.25rem}.p-button.p-button-loading-label-only .p-button-label{margin-left:.5rem}.p-button.p-button-loading-label-only .p-button-loading-icon{margin-right:0}.p-fluid .p-button{width:100%}.p-fluid .p-button-icon-only{width:3rem}.p-fluid .p-buttonset{display:flex}.p-fluid .p-buttonset .p-button{flex:1}.p-button.p-button-secondary,.p-buttonset.p-button-secondary>.p-button,.p-splitbutton.p-button-secondary>.p-button{color:#fff;background:#64748B;border:1px solid #64748B}.p-button.p-button-secondary:enabled:hover,.p-buttonset.p-button-secondary>.p-button:enabled:hover,.p-splitbutton.p-button-secondary>.p-button:enabled:hover{background:#475569;color:#fff;border-color:#475569}.p-button.p-button-secondary:enabled:focus,.p-buttonset.p-button-secondary>.p-button:enabled:focus,.p-splitbutton.p-button-secondary>.p-button:enabled:focus{box-shadow:0 0 0 .2rem #e2e8f0}.p-button.p-button-secondary:enabled:active,.p-buttonset.p-button-secondary>.p-button:enabled:active,.p-splitbutton.p-button-secondary>.p-button:enabled:active{background:#334155;color:#fff;border-color:#334155}.p-button.p-button-secondary.p-button-outlined,.p-buttonset.p-button-secondary>.p-button.p-button-outlined,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined{background-color:transparent;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:enabled:hover,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:enabled:hover,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:enabled:hover{background:rgba(100,116,139,.04);color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:enabled:active,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:enabled:active,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:enabled:active{background:rgba(100,116,139,.16);color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-text,.p-buttonset.p-button-secondary>.p-button.p-button-text,.p-splitbutton.p-button-secondary>.p-button.p-button-text{background-color:transparent;color:#64748b;border-color:transparent}.p-button.p-button-secondary.p-button-text:enabled:hover,.p-buttonset.p-button-secondary>.p-button.p-button-text:enabled:hover,.p-splitbutton.p-button-secondary>.p-button.p-button-text:enabled:hover{background:rgba(100,116,139,.04);border-color:transparent;color:#64748b}.p-button.p-button-secondary.p-button-text:enabled:active,.p-buttonset.p-button-secondary>.p-button.p-button-text:enabled:active,.p-splitbutton.p-button-secondary>.p-button.p-button-text:enabled:active{background:rgba(100,116,139,.16);border-color:transparent;color:#64748b}.p-button.p-button-info,.p-buttonset.p-button-info>.p-button,.p-splitbutton.p-button-info>.p-button{color:#fff;background:#3B82F6;border:1px solid #3B82F6}.p-button.p-button-info:enabled:hover,.p-buttonset.p-button-info>.p-button:enabled:hover,.p-splitbutton.p-button-info>.p-button:enabled:hover{background:#2563EB;color:#fff;border-color:#2563eb}.p-button.p-button-info:enabled:focus,.p-buttonset.p-button-info>.p-button:enabled:focus,.p-splitbutton.p-button-info>.p-button:enabled:focus{box-shadow:0 0 0 .2rem #bfdbfe}.p-button.p-button-info:enabled:active,.p-buttonset.p-button-info>.p-button:enabled:active,.p-splitbutton.p-button-info>.p-button:enabled:active{background:#1D4ED8;color:#fff;border-color:#1d4ed8}.p-button.p-button-info.p-button-outlined,.p-buttonset.p-button-info>.p-button.p-button-outlined,.p-splitbutton.p-button-info>.p-button.p-button-outlined{background-color:transparent;color:#3b82f6;border:1px solid}.p-button.p-button-info.p-button-outlined:enabled:hover,.p-buttonset.p-button-info>.p-button.p-button-outlined:enabled:hover,.p-splitbutton.p-button-info>.p-button.p-button-outlined:enabled:hover{background:rgba(59,130,246,.04);color:#3b82f6;border:1px solid}.p-button.p-button-info.p-button-outlined:enabled:active,.p-buttonset.p-button-info>.p-button.p-button-outlined:enabled:active,.p-splitbutton.p-button-info>.p-button.p-button-outlined:enabled:active{background:rgba(59,130,246,.16);color:#3b82f6;border:1px solid}.p-button.p-button-info.p-button-text,.p-buttonset.p-button-info>.p-button.p-button-text,.p-splitbutton.p-button-info>.p-button.p-button-text{background-color:transparent;color:#3b82f6;border-color:transparent}.p-button.p-button-info.p-button-text:enabled:hover,.p-buttonset.p-button-info>.p-button.p-button-text:enabled:hover,.p-splitbutton.p-button-info>.p-button.p-button-text:enabled:hover{background:rgba(59,130,246,.04);border-color:transparent;color:#3b82f6}.p-button.p-button-info.p-button-text:enabled:active,.p-buttonset.p-button-info>.p-button.p-button-text:enabled:active,.p-splitbutton.p-button-info>.p-button.p-button-text:enabled:active{background:rgba(59,130,246,.16);border-color:transparent;color:#3b82f6}.p-button.p-button-success,.p-buttonset.p-button-success>.p-button,.p-splitbutton.p-button-success>.p-button{color:#fff;background:#22C55E;border:1px solid #22C55E}.p-button.p-button-success:enabled:hover,.p-buttonset.p-button-success>.p-button:enabled:hover,.p-splitbutton.p-button-success>.p-button:enabled:hover{background:#16A34A;color:#fff;border-color:#16a34a}.p-button.p-button-success:enabled:focus,.p-buttonset.p-button-success>.p-button:enabled:focus,.p-splitbutton.p-button-success>.p-button:enabled:focus{box-shadow:0 0 0 .2rem #bbf7d0}.p-button.p-button-success:enabled:active,.p-buttonset.p-button-success>.p-button:enabled:active,.p-splitbutton.p-button-success>.p-button:enabled:active{background:#15803D;color:#fff;border-color:#15803d}.p-button.p-button-success.p-button-outlined,.p-buttonset.p-button-success>.p-button.p-button-outlined,.p-splitbutton.p-button-success>.p-button.p-button-outlined{background-color:transparent;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:enabled:hover,.p-buttonset.p-button-success>.p-button.p-button-outlined:enabled:hover,.p-splitbutton.p-button-success>.p-button.p-button-outlined:enabled:hover{background:rgba(34,197,94,.04);color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:enabled:active,.p-buttonset.p-button-success>.p-button.p-button-outlined:enabled:active,.p-splitbutton.p-button-success>.p-button.p-button-outlined:enabled:active{background:rgba(34,197,94,.16);color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-text,.p-buttonset.p-button-success>.p-button.p-button-text,.p-splitbutton.p-button-success>.p-button.p-button-text{background-color:transparent;color:#22c55e;border-color:transparent}.p-button.p-button-success.p-button-text:enabled:hover,.p-buttonset.p-button-success>.p-button.p-button-text:enabled:hover,.p-splitbutton.p-button-success>.p-button.p-button-text:enabled:hover{background:rgba(34,197,94,.04);border-color:transparent;color:#22c55e}.p-button.p-button-success.p-button-text:enabled:active,.p-buttonset.p-button-success>.p-button.p-button-text:enabled:active,.p-splitbutton.p-button-success>.p-button.p-button-text:enabled:active{background:rgba(34,197,94,.16);border-color:transparent;color:#22c55e}.p-button.p-button-warning,.p-buttonset.p-button-warning>.p-button,.p-splitbutton.p-button-warning>.p-button{color:#fff;background:#F59E0B;border:1px solid #F59E0B}.p-button.p-button-warning:enabled:hover,.p-buttonset.p-button-warning>.p-button:enabled:hover,.p-splitbutton.p-button-warning>.p-button:enabled:hover{background:#D97706;color:#fff;border-color:#d97706}.p-button.p-button-warning:enabled:focus,.p-buttonset.p-button-warning>.p-button:enabled:focus,.p-splitbutton.p-button-warning>.p-button:enabled:focus{box-shadow:0 0 0 .2rem #fde68a}.p-button.p-button-warning:enabled:active,.p-buttonset.p-button-warning>.p-button:enabled:active,.p-splitbutton.p-button-warning>.p-button:enabled:active{background:#B45309;color:#fff;border-color:#b45309}.p-button.p-button-warning.p-button-outlined,.p-buttonset.p-button-warning>.p-button.p-button-outlined,.p-splitbutton.p-button-warning>.p-button.p-button-outlined{background-color:transparent;color:#f59e0b;border:1px solid}.p-button.p-button-warning.p-button-outlined:enabled:hover,.p-buttonset.p-button-warning>.p-button.p-button-outlined:enabled:hover,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:enabled:hover{background:rgba(245,158,11,.04);color:#f59e0b;border:1px solid}.p-button.p-button-warning.p-button-outlined:enabled:active,.p-buttonset.p-button-warning>.p-button.p-button-outlined:enabled:active,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:enabled:active{background:rgba(245,158,11,.16);color:#f59e0b;border:1px solid}.p-button.p-button-warning.p-button-text,.p-buttonset.p-button-warning>.p-button.p-button-text,.p-splitbutton.p-button-warning>.p-button.p-button-text{background-color:transparent;color:#f59e0b;border-color:transparent}.p-button.p-button-warning.p-button-text:enabled:hover,.p-buttonset.p-button-warning>.p-button.p-button-text:enabled:hover,.p-splitbutton.p-button-warning>.p-button.p-button-text:enabled:hover{background:rgba(245,158,11,.04);border-color:transparent;color:#f59e0b}.p-button.p-button-warning.p-button-text:enabled:active,.p-buttonset.p-button-warning>.p-button.p-button-text:enabled:active,.p-splitbutton.p-button-warning>.p-button.p-button-text:enabled:active{background:rgba(245,158,11,.16);border-color:transparent;color:#f59e0b}.p-button.p-button-help,.p-buttonset.p-button-help>.p-button,.p-splitbutton.p-button-help>.p-button{color:#fff;background:#A855F7;border:1px solid #A855F7}.p-button.p-button-help:enabled:hover,.p-buttonset.p-button-help>.p-button:enabled:hover,.p-splitbutton.p-button-help>.p-button:enabled:hover{background:#9333EA;color:#fff;border-color:#9333ea}.p-button.p-button-help:enabled:focus,.p-buttonset.p-button-help>.p-button:enabled:focus,.p-splitbutton.p-button-help>.p-button:enabled:focus{box-shadow:0 0 0 .2rem #e9d5ff}.p-button.p-button-help:enabled:active,.p-buttonset.p-button-help>.p-button:enabled:active,.p-splitbutton.p-button-help>.p-button:enabled:active{background:#7E22CE;color:#fff;border-color:#7e22ce}.p-button.p-button-help.p-button-outlined,.p-buttonset.p-button-help>.p-button.p-button-outlined,.p-splitbutton.p-button-help>.p-button.p-button-outlined{background-color:transparent;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:enabled:hover,.p-buttonset.p-button-help>.p-button.p-button-outlined:enabled:hover,.p-splitbutton.p-button-help>.p-button.p-button-outlined:enabled:hover{background:rgba(168,85,247,.04);color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:enabled:active,.p-buttonset.p-button-help>.p-button.p-button-outlined:enabled:active,.p-splitbutton.p-button-help>.p-button.p-button-outlined:enabled:active{background:rgba(168,85,247,.16);color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-text,.p-buttonset.p-button-help>.p-button.p-button-text,.p-splitbutton.p-button-help>.p-button.p-button-text{background-color:transparent;color:#a855f7;border-color:transparent}.p-button.p-button-help.p-button-text:enabled:hover,.p-buttonset.p-button-help>.p-button.p-button-text:enabled:hover,.p-splitbutton.p-button-help>.p-button.p-button-text:enabled:hover{background:rgba(168,85,247,.04);border-color:transparent;color:#a855f7}.p-button.p-button-help.p-button-text:enabled:active,.p-buttonset.p-button-help>.p-button.p-button-text:enabled:active,.p-splitbutton.p-button-help>.p-button.p-button-text:enabled:active{background:rgba(168,85,247,.16);border-color:transparent;color:#a855f7}.p-button.p-button-danger,.p-buttonset.p-button-danger>.p-button,.p-splitbutton.p-button-danger>.p-button{color:#fff;background:#EF4444;border:1px solid #EF4444}.p-button.p-button-danger:enabled:hover,.p-buttonset.p-button-danger>.p-button:enabled:hover,.p-splitbutton.p-button-danger>.p-button:enabled:hover{background:#DC2626;color:#fff;border-color:#dc2626}.p-button.p-button-danger:enabled:focus,.p-buttonset.p-button-danger>.p-button:enabled:focus,.p-splitbutton.p-button-danger>.p-button:enabled:focus{box-shadow:0 0 0 .2rem #fecaca}.p-button.p-button-danger:enabled:active,.p-buttonset.p-button-danger>.p-button:enabled:active,.p-splitbutton.p-button-danger>.p-button:enabled:active{background:#B91C1C;color:#fff;border-color:#b91c1c}.p-button.p-button-danger.p-button-outlined,.p-buttonset.p-button-danger>.p-button.p-button-outlined,.p-splitbutton.p-button-danger>.p-button.p-button-outlined{background-color:transparent;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:enabled:hover,.p-buttonset.p-button-danger>.p-button.p-button-outlined:enabled:hover,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:enabled:hover{background:rgba(239,68,68,.04);color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:enabled:active,.p-buttonset.p-button-danger>.p-button.p-button-outlined:enabled:active,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:enabled:active{background:rgba(239,68,68,.16);color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-text,.p-buttonset.p-button-danger>.p-button.p-button-text,.p-splitbutton.p-button-danger>.p-button.p-button-text{background-color:transparent;color:#ef4444;border-color:transparent}.p-button.p-button-danger.p-button-text:enabled:hover,.p-buttonset.p-button-danger>.p-button.p-button-text:enabled:hover,.p-splitbutton.p-button-danger>.p-button.p-button-text:enabled:hover{background:rgba(239,68,68,.04);border-color:transparent;color:#ef4444}.p-button.p-button-danger.p-button-text:enabled:active,.p-buttonset.p-button-danger>.p-button.p-button-text:enabled:active,.p-splitbutton.p-button-danger>.p-button.p-button-text:enabled:active{background:rgba(239,68,68,.16);border-color:transparent;color:#ef4444}.p-button.p-button-link{color:#1d4ed8;background:transparent;border:transparent}.p-button.p-button-link:enabled:hover{background:transparent;color:#1d4ed8;border-color:transparent}.p-button.p-button-link:enabled:hover .p-button-label{text-decoration:underline}.p-button.p-button-link:enabled:focus{background:transparent;box-shadow:0 0 0 .2rem #bfdbfe;border-color:transparent}.p-button.p-button-link:enabled:active{background:transparent;color:#1d4ed8;border-color:transparent}.p-speeddial-button.p-button.p-button-icon-only{width:4rem;height:4rem}.p-speeddial-button.p-button.p-button-icon-only .p-button-icon{font-size:1.3rem}.p-speeddial-action{width:3rem;height:3rem;background:#495057;color:#fff}.p-speeddial-action:hover{background:#022354;color:#fff}.p-speeddial-direction-up .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-up .p-speeddial-item:first-child{margin-bottom:.5rem}.p-speeddial-direction-down .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-down .p-speeddial-item:first-child{margin-top:.5rem}.p-speeddial-direction-left .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-left .p-speeddial-item:first-child{margin-right:.5rem}.p-speeddial-direction-right .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-right .p-speeddial-item:first-child{margin-left:.5rem}.p-speeddial-circle .p-speeddial-item,.p-speeddial-semi-circle .p-speeddial-item,.p-speeddial-quarter-circle .p-speeddial-item{margin:0}.p-speeddial-circle .p-speeddial-item:first-child,.p-speeddial-circle .p-speeddial-item:last-child,.p-speeddial-semi-circle .p-speeddial-item:first-child,.p-speeddial-semi-circle .p-speeddial-item:last-child,.p-speeddial-quarter-circle .p-speeddial-item:first-child,.p-speeddial-quarter-circle .p-speeddial-item:last-child{margin:0}.p-speeddial-mask{background-color:#0006}.p-splitbutton{border-radius:6px}.p-splitbutton.p-button-outlined>.p-button{background-color:transparent;color:#3b82f6;border:1px solid}.p-splitbutton.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(59,130,246,.04);color:#3b82f6}.p-splitbutton.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(59,130,246,.16);color:#3b82f6}.p-splitbutton.p-button-outlined.p-button-plain>.p-button{color:#6c757d;border-color:#6c757d}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:enabled:hover,.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(button):not(a):not(.p-disabled):hover{background:#e9ecef;color:#6c757d}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:enabled:active,.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(button):not(a):not(.p-disabled):active{background:#dee2e6;color:#6c757d}.p-splitbutton.p-button-text>.p-button{background-color:transparent;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(59,130,246,.04);color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(59,130,246,.16);color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text.p-button-plain>.p-button{color:#6c757d}.p-splitbutton.p-button-text.p-button-plain>.p-button:enabled:hover,.p-splitbutton.p-button-text.p-button-plain>.p-button:not(button):not(a):not(.p-disabled):hover{background:#e9ecef;color:#6c757d}.p-splitbutton.p-button-text.p-button-plain>.p-button:enabled:active,.p-splitbutton.p-button-text.p-button-plain>.p-button:not(button):not(a):not(.p-disabled):active{background:#dee2e6;color:#6c757d}.p-splitbutton.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-splitbutton.p-button-rounded{border-radius:2rem}.p-splitbutton.p-button-rounded>.p-button{border-radius:2rem}.p-splitbutton.p-button-sm>.p-button{font-size:.875rem;padding:.65625rem 1.09375rem}.p-splitbutton.p-button-sm>.p-button .p-button-icon{font-size:.875rem}.p-splitbutton.p-button-lg>.p-button{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-splitbutton.p-button-lg>.p-button .p-button-icon{font-size:1.25rem}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button{background-color:transparent;color:#64748b;border:1px solid}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(100,116,139,.04);color:#64748b}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(100,116,139,.16);color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button{background-color:transparent;color:#64748b;border-color:transparent}.p-splitbutton.p-button-secondary.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(100,116,139,.04);border-color:transparent;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(100,116,139,.16);border-color:transparent;color:#64748b}.p-splitbutton.p-button-info.p-button-outlined>.p-button{background-color:transparent;color:#3b82f6;border:1px solid}.p-splitbutton.p-button-info.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(59,130,246,.04);color:#3b82f6}.p-splitbutton.p-button-info.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(59,130,246,.16);color:#3b82f6}.p-splitbutton.p-button-info.p-button-text>.p-button{background-color:transparent;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-info.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-info.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(59,130,246,.04);border-color:transparent;color:#3b82f6}.p-splitbutton.p-button-info.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-info.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(59,130,246,.16);border-color:transparent;color:#3b82f6}.p-splitbutton.p-button-success.p-button-outlined>.p-button{background-color:transparent;color:#22c55e;border:1px solid}.p-splitbutton.p-button-success.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(34,197,94,.04);color:#22c55e}.p-splitbutton.p-button-success.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(34,197,94,.16);color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button{background-color:transparent;color:#22c55e;border-color:transparent}.p-splitbutton.p-button-success.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-success.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(34,197,94,.04);border-color:transparent;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-success.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(34,197,94,.16);border-color:transparent;color:#22c55e}.p-splitbutton.p-button-warning.p-button-outlined>.p-button{background-color:transparent;color:#f59e0b;border:1px solid}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(245,158,11,.04);color:#f59e0b}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(245,158,11,.16);color:#f59e0b}.p-splitbutton.p-button-warning.p-button-text>.p-button{background-color:transparent;color:#f59e0b;border-color:transparent}.p-splitbutton.p-button-warning.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-warning.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(245,158,11,.04);border-color:transparent;color:#f59e0b}.p-splitbutton.p-button-warning.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-warning.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(245,158,11,.16);border-color:transparent;color:#f59e0b}.p-splitbutton.p-button-help.p-button-outlined>.p-button{background-color:transparent;color:#a855f7;border:1px solid}.p-splitbutton.p-button-help.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(168,85,247,.04);color:#a855f7}.p-splitbutton.p-button-help.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(168,85,247,.16);color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button{background-color:transparent;color:#a855f7;border-color:transparent}.p-splitbutton.p-button-help.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-help.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(168,85,247,.04);border-color:transparent;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-help.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(168,85,247,.16);border-color:transparent;color:#a855f7}.p-splitbutton.p-button-danger.p-button-outlined>.p-button{background-color:transparent;color:#ef4444;border:1px solid}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:enabled:hover,.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(239,68,68,.04);color:#ef4444}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:enabled:active,.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(239,68,68,.16);color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button{background-color:transparent;color:#ef4444;border-color:transparent}.p-splitbutton.p-button-danger.p-button-text>.p-button:enabled:hover,.p-splitbutton.p-button-danger.p-button-text>.p-button:not(button):not(a):not(.p-disabled):hover{background:rgba(239,68,68,.04);border-color:transparent;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button:enabled:active,.p-splitbutton.p-button-danger.p-button-text>.p-button:not(button):not(a):not(.p-disabled):active{background:rgba(239,68,68,.16);border-color:transparent;color:#ef4444}.p-carousel .p-carousel-content .p-carousel-prev,.p-carousel .p-carousel-content .p-carousel-next{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin:.5rem}.p-carousel .p-carousel-content .p-carousel-prev:enabled:hover,.p-carousel .p-carousel-content .p-carousel-next:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-carousel .p-carousel-content .p-carousel-prev:focus,.p-carousel .p-carousel-content .p-carousel-next:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-carousel .p-carousel-indicators{padding:1rem}.p-carousel .p-carousel-indicators .p-carousel-indicator{margin-right:.5rem;margin-bottom:.5rem}.p-carousel .p-carousel-indicators .p-carousel-indicator button{background-color:#ced4da;width:2rem;height:.5rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:0}.p-carousel .p-carousel-indicators .p-carousel-indicator button:hover{background:#adb5bd}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button{background:#EFF6FF;color:#1d4ed8}.p-datatable .p-paginator-top,.p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-datatable .p-datatable-header{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-footer{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #dee2e6;border-width:0 0 1px 0;font-weight:700;color:#343a40;background:#f8f9fa;transition:box-shadow .2s}.p-datatable .p-datatable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #dee2e6;border-width:0 0 1px 0;font-weight:700;color:#343a40;background:#f8f9fa}.p-datatable .p-sortable-column .p-sortable-column-icon{color:#343a40;margin-left:.5rem}.p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#EFF6FF;margin-left:.5rem}.p-datatable .p-sortable-column:not(.p-highlight):hover{background:#e9ecef;color:#343a40}.p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#343a40}.p-datatable .p-sortable-column.p-highlight{background:#EFF6FF;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover{background:#EFF6FF;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column:focus{box-shadow:inset 0 0 0 .15rem #bfdbfe;outline:0 none}.p-datatable .p-datatable-tbody>tr{background:#ffffff;color:#495057;transition:box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid #dee2e6;border-width:0 0 1px 0;padding:1rem}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:focus,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:focus,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:focus,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save{margin-right:.5rem}.p-datatable .p-datatable-tbody>tr:focus{outline:.15rem solid #BFDBFE;outline-offset:.15rem}.p-datatable .p-datatable-tbody>tr.p-highlight{background:#EFF6FF;color:#1d4ed8}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #eff6ff}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #eff6ff}.p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-datatable .p-column-resizer-helper{background:#3B82F6}.p-datatable .p-datatable-scrollable-header,.p-datatable .p-datatable-scrollable-footer{background:#f8f9fa}.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#f8f9fa}.p-datatable .p-datatable-loading-icon{font-size:2rem}.p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-footer{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-paginator-top{border-width:0 1px 0 1px}.p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-width:1px 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td{border-width:0 0 0 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td:last-child{border-width:0 1px 0 1px}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#fcfcfc}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even).p-highlight{background:#EFF6FF;color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even).p-highlight .p-row-toggler{color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even).p-highlight .p-row-toggler:hover{color:#1d4ed8}.p-datatable.p-datatable-sm .p-datatable-header{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-footer{padding:.5rem}.p-datatable.p-datatable-lg .p-datatable-header{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-footer{padding:1.25rem}.p-dataview .p-paginator-top,.p-dataview .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-dataview .p-dataview-header{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-dataview .p-dataview-content{background:#ffffff;color:#495057;border:0 none;padding:0}.p-dataview.p-dataview-list .p-dataview-content>.p-grid>div{border:solid #dee2e6;border-width:0 0 1px 0}.p-dataview .p-dataview-footer{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-dataview .p-dataview-loading-icon{font-size:2rem}.p-dataview .p-dataview-emptymessage{padding:1.25rem}.p-column-filter-row .p-column-filter-menu-button,.p-column-filter-row .p-column-filter-clear-button{margin-left:.5rem}.p-column-filter-menu-button{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-menu-button:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-column-filter-menu-button.p-column-filter-menu-button-open,.p-column-filter-menu-button.p-column-filter-menu-button-open:hover{background:#e9ecef;color:#343a40}.p-column-filter-menu-button.p-column-filter-menu-button-active,.p-column-filter-menu-button.p-column-filter-menu-button-active:hover{background:#EFF6FF;color:#1d4ed8}.p-column-filter-menu-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-clear-button{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-clear-button:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-column-filter-clear-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-overlay{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a;min-width:12.5rem}.p-column-filter-overlay .p-column-filter-row-items{padding:.75rem 0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s;border-radius:0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover{color:#495057;background:#e9ecef}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-column-filter-overlay-menu .p-column-filter-operator{padding:.75rem 1.25rem;border-bottom:1px solid #dee2e6;color:#343a40;background:#f8f9fa;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-column-filter-overlay-menu .p-column-filter-constraint{padding:1.25rem;border-bottom:1px solid #dee2e6}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-matchmode-dropdown{margin-bottom:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-remove-button{margin-top:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint:last-child{border-bottom:0 none}.p-column-filter-overlay-menu .p-column-filter-add-rule{padding:.75rem 1.25rem}.p-column-filter-overlay-menu .p-column-filter-buttonbar{padding:1.25rem}.fc.fc-unthemed .fc-view-container th{background:#f8f9fa;border:1px solid #dee2e6;color:#343a40}.fc.fc-unthemed .fc-view-container td.fc-widget-content{background:#ffffff;border:1px solid #dee2e6;color:#495057}.fc.fc-unthemed .fc-view-container td.fc-head-container{border:1px solid #dee2e6}.fc.fc-unthemed .fc-view-container .fc-row{border-right:1px solid #dee2e6}.fc.fc-unthemed .fc-view-container .fc-event{background:#2563eb;border:1px solid #2563eb;color:#fff}.fc.fc-unthemed .fc-view-container .fc-divider{background:#f8f9fa;border:1px solid #dee2e6}.fc.fc-unthemed .fc-toolbar .fc-button{color:#fff;background:#3B82F6;border:1px solid #3B82F6;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px;display:flex;align-items:center}.fc.fc-unthemed .fc-toolbar .fc-button:enabled:hover{background:#2563eb;color:#fff;border-color:#2563eb}.fc.fc-unthemed .fc-toolbar .fc-button:enabled:active{background:#1D4ED8;color:#fff;border-color:#1d4ed8}.fc.fc-unthemed .fc-toolbar .fc-button:enabled:active:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.fc.fc-unthemed .fc-toolbar .fc-button .fc-icon-chevron-left{font-family:PrimeIcons!important;text-indent:0;font-size:1rem}.fc.fc-unthemed .fc-toolbar .fc-button .fc-icon-chevron-left:before{content:"\e900"}.fc.fc-unthemed .fc-toolbar .fc-button .fc-icon-chevron-right{font-family:PrimeIcons!important;text-indent:0;font-size:1rem}.fc.fc-unthemed .fc-toolbar .fc-button .fc-icon-chevron-right:before{content:"\e901"}.fc.fc-unthemed .fc-toolbar .fc-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button{background:#ffffff;border:1px solid #ced4da;color:#495057;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button:hover,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button:hover,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button:hover{background:#e9ecef;border-color:#ced4da;color:#495057}.fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active{background:#3B82F6;border-color:#3b82f6;color:#fff}.fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active:hover,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active:hover,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active:hover{background:#2563eb;border-color:#2563eb;color:#fff}.fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button:focus,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button:focus,.fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;z-index:1}.fc.fc-unthemed .fc-toolbar .fc-button-group .fc-button{border-radius:0}.fc.fc-unthemed .fc-toolbar .fc-button-group .fc-button:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.fc.fc-unthemed .fc-toolbar .fc-button-group .fc-button:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.fc.fc-theme-standard .fc-view-harness .fc-scrollgrid{border-color:#dee2e6}.fc.fc-theme-standard .fc-view-harness th{background:#f8f9fa;border-color:#dee2e6;color:#343a40}.fc.fc-theme-standard .fc-view-harness td{color:#495057;border-color:#dee2e6}.fc.fc-theme-standard .fc-view-harness .fc-view{background:#ffffff}.fc.fc-theme-standard .fc-view-harness .fc-popover{background:none;border:0 none}.fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header{border:1px solid #dee2e6;padding:1.25rem;background:#f8f9fa;color:#343a40}.fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close{opacity:1;display:flex;align-items:center;justify-content:center;overflow:hidden;font-family:PrimeIcons!important;font-size:1rem;width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close:before{content:"\e90b"}.fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-body{padding:1.25rem;border:1px solid #dee2e6;background:#ffffff;color:#495057;border-top:0 none}.fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-block-event{color:#fff;background:#2563eb;border-color:#2563eb}.fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-block-event .fc-event-main{color:#fff}.fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-dot-event .fc-daygrid-event-dot{background:#2563eb;border-color:#2563eb}.fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-dot-event:hover{background:#e9ecef;color:#495057}.fc.fc-theme-standard .fc-view-harness .fc-cell-shaded{background:#f8f9fa}.fc.fc-theme-standard .fc-toolbar .fc-button{color:#fff;background:#3B82F6;border:1px solid #3B82F6;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.fc.fc-theme-standard .fc-toolbar .fc-button:enabled:hover{background:#2563eb;color:#fff;border-color:#2563eb}.fc.fc-theme-standard .fc-toolbar .fc-button:enabled:active{background:#1D4ED8;color:#fff;border-color:#1d4ed8}.fc.fc-theme-standard .fc-toolbar .fc-button:enabled:active:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.fc.fc-theme-standard .fc-toolbar .fc-button:disabled{opacity:.6;color:#fff;background:#3B82F6;border:1px solid #3B82F6}.fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-left{font-family:PrimeIcons!important;text-indent:0;font-size:1rem}.fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-left:before{content:"\e900"}.fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-right{font-family:PrimeIcons!important;text-indent:0;font-size:1rem}.fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-right:before{content:"\e901"}.fc.fc-theme-standard .fc-toolbar .fc-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button{background:#ffffff;border:1px solid #ced4da;color:#495057;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button:hover,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button:hover,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button:hover{background:#e9ecef;border-color:#ced4da;color:#495057}.fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active{background:#3B82F6;border-color:#3b82f6;color:#fff}.fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active:hover,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active:hover,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active:hover{background:#2563eb;border-color:#2563eb;color:#fff}.fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button:not(:disabled):focus,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button:not(:disabled):focus,.fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button:not(:disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;z-index:1}.fc.fc-theme-standard .fc-toolbar .fc-button-group .fc-button{border-radius:0}.fc.fc-theme-standard .fc-toolbar .fc-button-group .fc-button:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.fc.fc-theme-standard .fc-toolbar .fc-button-group .fc-button:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.fc.fc-theme-standard a{color:#495057}.fc.fc-theme-standard .fc-highlight{color:#1d4ed8;background:#EFF6FF}.p-orderlist .p-orderlist-controls{padding:1.25rem}.p-orderlist .p-orderlist-controls .p-button{margin-bottom:.5rem}.p-orderlist .p-orderlist-header{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;padding:1.25rem;border-bottom:0 none;border-top-right-radius:6px;border-top-left-radius:6px}.p-orderlist .p-orderlist-header .p-orderlist-title{font-weight:700}.p-orderlist .p-orderlist-filter-container{padding:1.25rem;background:#ffffff;border:1px solid #dee2e6;border-bottom:0 none}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-input{padding-right:1.75rem}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-icon{right:.75rem;color:#6c757d}.p-orderlist .p-orderlist-list{border:1px solid #dee2e6;background:#ffffff;color:#495057;padding:.75rem 0;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-orderlist .p-orderlist-list .p-orderlist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s}.p-orderlist .p-orderlist-list .p-orderlist-item:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-orderlist .p-orderlist-list .p-orderlist-empty-message{padding:.75rem 1.25rem;color:#495057}.p-orderlist .p-orderlist-list:not(.cdk-drop-list-dragging) .p-orderlist-item:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(even){background:#fcfcfc}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(even):hover{background:#e9ecef}.p-orderlist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#495057;background:#ffffff;margin:0}.p-organizationchart .p-organizationchart-node-content.p-organizationchart-selectable-node:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-organizationchart .p-organizationchart-node-content.p-highlight{background:#EFF6FF;color:#1d4ed8}.p-organizationchart .p-organizationchart-node-content.p-highlight .p-node-toggler i{color:#70aeff}.p-organizationchart .p-organizationchart-line-down{background:#dee2e6}.p-organizationchart .p-organizationchart-line-left{border-right:1px solid #dee2e6;border-color:#dee2e6}.p-organizationchart .p-organizationchart-line-top{border-top:1px solid #dee2e6;border-color:#dee2e6}.p-organizationchart .p-organizationchart-node-content{border:1px solid #dee2e6;background:#ffffff;color:#495057;padding:1.25rem}.p-organizationchart .p-organizationchart-node-content .p-node-toggler{background:inherit;color:inherit;border-radius:50%}.p-organizationchart .p-organizationchart-node-content .p-node-toggler:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-paginator{background:#ffffff;color:#6c757d;border:solid #e9ecef;border-width:0;padding:.5rem 1rem;border-radius:6px}.p-paginator .p-paginator-first,.p-paginator .p-paginator-prev,.p-paginator .p-paginator-next,.p-paginator .p-paginator-last{background-color:transparent;border:0 none;color:#6c757d;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#e9ecef;border-color:transparent;color:#343a40}.p-paginator .p-paginator-first{border-top-left-radius:50%;border-bottom-left-radius:50%}.p-paginator .p-paginator-last{border-top-right-radius:50%;border-bottom-right-radius:50%}.p-paginator .p-dropdown{margin-left:.5rem;margin-right:.5rem;height:3rem}.p-paginator .p-dropdown .p-dropdown-label{padding-right:0}.p-paginator .p-paginator-page-input{margin-left:.5rem;margin-right:.5rem}.p-paginator .p-paginator-page-input .p-inputtext{max-width:3rem}.p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:#6c757d;min-width:3rem;height:3rem;margin:.143rem;padding:0 .5rem}.p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:0 none;color:#6c757d;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:#EFF6FF;border-color:#eff6ff;color:#1d4ed8}.p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#e9ecef;border-color:transparent;color:#343a40}.p-picklist .p-picklist-buttons{padding:1.25rem}.p-picklist .p-picklist-buttons .p-button{margin-bottom:.5rem}.p-picklist .p-picklist-header{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;padding:1.25rem;border-bottom:0 none;border-top-right-radius:6px;border-top-left-radius:6px}.p-picklist .p-picklist-header .p-picklist-title{font-weight:700}.p-picklist .p-picklist-filter-container{padding:1.25rem;background:#ffffff;border:1px solid #dee2e6;border-bottom:0 none}.p-picklist .p-picklist-filter-container .p-picklist-filter-input{padding-right:1.75rem}.p-picklist .p-picklist-filter-container .p-picklist-filter-icon{right:.75rem;color:#6c757d}.p-picklist .p-picklist-list{border:1px solid #dee2e6;background:#ffffff;color:#495057;padding:.75rem 0;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-picklist .p-picklist-list .p-picklist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#495057;background:transparent;transition:box-shadow .2s}.p-picklist .p-picklist-list .p-picklist-item:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-picklist .p-picklist-list .p-picklist-item.p-highlight{color:#1d4ed8;background:#EFF6FF}.p-picklist .p-picklist-list .p-picklist-empty-message{padding:.75rem 1.25rem;color:#495057}.p-picklist .p-picklist-list:not(.cdk-drop-list-dragging) .p-picklist-item:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(even){background:#fcfcfc}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(even):hover{background:#e9ecef}.p-picklist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#495057;background:#ffffff;margin:0}.p-timeline .p-timeline-event-marker{border:2px solid #3B82F6;border-radius:50%;width:1rem;height:1rem;background-color:#fff}.p-timeline .p-timeline-event-connector{background-color:#dee2e6}.p-timeline.p-timeline-vertical .p-timeline-event-opposite,.p-timeline.p-timeline-vertical .p-timeline-event-content{padding:0 1rem}.p-timeline.p-timeline-vertical .p-timeline-event-connector{width:2px}.p-timeline.p-timeline-horizontal .p-timeline-event-opposite,.p-timeline.p-timeline-horizontal .p-timeline-event-content{padding:1rem 0}.p-timeline.p-timeline-horizontal .p-timeline-event-connector{height:2px}.p-tree{border:1px solid #dee2e6;background:#ffffff;color:#495057;padding:1.25rem;border-radius:6px}.p-tree .p-tree-container .p-treenode{padding:.143rem}.p-tree .p-tree-container .p-treenode .p-treenode-content{border-radius:6px;transition:box-shadow .2s;padding:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem;width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-treenode-icon{margin-right:.5rem;color:#6c757d}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox .p-indeterminate .p-checkbox-icon{color:#495057}.p-tree .p-tree-container .p-treenode .p-treenode-content:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight{background:#EFF6FF;color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler:hover,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon:hover{color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-dragover{background:#e9ecef;color:#495057}.p-tree .p-tree-filter-container{margin-bottom:.5rem}.p-tree .p-tree-filter-container .p-tree-filter{width:100%;padding-right:1.75rem}.p-tree .p-tree-filter-container .p-tree-filter-icon{right:.75rem;color:#6c757d}.p-tree .p-treenode-children{padding:0 0 0 1rem}.p-tree .p-tree-loading-icon{font-size:2rem}.p-tree .p-treenode-droppoint.p-treenode-droppoint-active{background-color:#8cbeff}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content{border-radius:6px;border:1px solid #dee2e6;background-color:#fff;color:#495057;padding:.5rem;transition:box-shadow .2s}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight{background-color:#eff6ff;color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight .p-treenode-icon{color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-icon{color:#6c757d;margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-label:not(.p-highlight):hover{background-color:inherit;color:inherit}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-paginator-top,.p-treetable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-treetable .p-treetable-header{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-footer{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #dee2e6;border-width:0 0 1px 0;font-weight:700;color:#343a40;background:#f8f9fa;transition:box-shadow .2s}.p-treetable .p-treetable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #dee2e6;border-width:0 0 1px 0;font-weight:700;color:#343a40;background:#f8f9fa}.p-treetable .p-sortable-column{outline-color:#bfdbfe}.p-treetable .p-sortable-column .p-sortable-column-icon{color:#343a40;margin-left:.5rem}.p-treetable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#EFF6FF;margin-left:.5rem}.p-treetable .p-sortable-column:not(.p-highlight):hover{background:#e9ecef;color:#343a40}.p-treetable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#343a40}.p-treetable .p-sortable-column.p-highlight{background:#EFF6FF;color:#1d4ed8}.p-treetable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr{background:#ffffff;color:#495057;transition:box-shadow .2s}.p-treetable .p-treetable-tbody>tr>td{text-align:left;border:1px solid #dee2e6;border-width:0 0 1px 0;padding:1rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox{margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon{color:#495057}.p-treetable .p-treetable-tbody>tr:focus{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-treetable .p-treetable-tbody>tr.p-highlight{background:#EFF6FF;color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler:hover{color:#1d4ed8}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover{background:#e9ecef;color:#495057}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover .p-treetable-toggler{color:#495057}.p-treetable .p-column-resizer-helper{background:#3B82F6}.p-treetable .p-treetable-scrollable-header,.p-treetable .p-treetable-scrollable-footer{background:#f8f9fa}.p-treetable .p-treetable-loading-icon{font-size:2rem}.p-treetable.p-treetable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-footer{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-top{border-width:0 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-bottom{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td{border-width:1px}.p-treetable.p-treetable-sm .p-treetable-header{padding:.875rem}.p-treetable.p-treetable-sm .p-treetable-thead>tr>th{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-footer{padding:.5rem}.p-treetable.p-treetable-lg .p-treetable-header{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-thead>tr>th{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-footer{padding:1.25rem}.p-virtualscroller .p-virtualscroller-header{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-virtualscroller .p-virtualscroller-content{background:#ffffff;color:#495057;border:0 none;padding:0}.p-virtualscroller .p-virtualscroller-footer{background:#f8f9fa;color:#343a40;border:1px solid #dee2e6;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem;border:1px solid #dee2e6;color:#6c757d;background:#f8f9fa;font-weight:700;border-radius:6px;transition:box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link .p-accordion-toggle-icon{margin-right:.5rem}.p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-accordion .p-accordion-header:not(.p-highlight):not(.p-disabled):hover .p-accordion-header-link{background:#e9ecef;border-color:#dee2e6;color:#343a40}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link{background:#f8f9fa;border-color:#dee2e6;color:#343a40;border-bottom-right-radius:0;border-bottom-left-radius:0}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link{border-color:#dee2e6;background:#e9ecef;color:#343a40}.p-accordion .p-accordion-content{padding:1.25rem;border:1px solid #dee2e6;background:#ffffff;color:#495057;border-top:0;border-radius:0 0 6px 6px}.p-accordion p-accordiontab .p-accordion-tab{margin-bottom:4px}.p-card{background:#ffffff;color:#495057;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;border-radius:6px}.p-card .p-card-body{padding:1.25rem}.p-card .p-card-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.p-card .p-card-subtitle{font-weight:400;margin-bottom:.5rem;color:#6c757d}.p-card .p-card-content{padding:1.25rem 0}.p-card .p-card-footer{padding:1.25rem 0 0}.p-divider .p-divider-content{background-color:#fff}.p-divider.p-divider-horizontal{margin:1.25rem 0;padding:0 1.25rem}.p-divider.p-divider-horizontal:before{border-top:1px #dee2e6}.p-divider.p-divider-horizontal .p-divider-content{padding:0 .5rem}.p-divider.p-divider-vertical{margin:0 1.25rem;padding:1.25rem 0}.p-divider.p-divider-vertical:before{border-left:1px #dee2e6}.p-divider.p-divider-vertical .p-divider-content{padding:.5rem 0}.p-fieldset{border:1px solid #dee2e6;background:#ffffff;color:#495057;border-radius:6px}.p-fieldset .p-fieldset-legend{padding:1.25rem;border:1px solid #dee2e6;color:#343a40;background:#f8f9fa;font-weight:700;border-radius:6px}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend{padding:0;transition:background-color .2s,color .2s,box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a{padding:1.25rem;color:#343a40;border-radius:6px;transition:box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a .p-fieldset-toggler{margin-right:.5rem}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend:hover{background:#e9ecef;border-color:#dee2e6;color:#343a40}.p-fieldset .p-fieldset-content{padding:1.25rem}.p-panel .p-panel-header{border:1px solid #dee2e6;padding:1.25rem;background:#f8f9fa;color:#343a40;border-top-right-radius:6px;border-top-left-radius:6px}.p-panel .p-panel-header .p-panel-title{font-weight:700}.p-panel .p-panel-header .p-panel-header-icon{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-panel .p-panel-header .p-panel-header-icon:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-panel .p-panel-header .p-panel-header-icon:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-panel.p-panel-toggleable .p-panel-header{padding:.75rem 1.25rem}.p-panel .p-panel-content{padding:1.25rem;border:1px solid #dee2e6;background:#ffffff;color:#495057;border-bottom-right-radius:6px;border-bottom-left-radius:6px;border-top:0 none}.p-panel .p-panel-footer{padding:.75rem 1.25rem;border:1px solid #dee2e6;background:#ffffff;color:#495057;border-top:0 none}.p-panel .p-panel-icons-end{order:2;margin-left:auto}.p-panel .p-panel-icons-start{order:0;margin-right:.5rem}.p-panel .p-panel-icons-center{order:2;width:100%;text-align:center}.p-scrollpanel .p-scrollpanel-bar{background:#f8f9fa;border:0 none}.p-splitter{border:1px solid #dee2e6;background:#ffffff;border-radius:6px;color:#495057}.p-splitter .p-splitter-gutter{transition:background-color .2s,color .2s,box-shadow .2s;background:#f8f9fa}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle,.p-splitter .p-splitter-gutter-resizing{background:#dee2e6}.p-tabview .p-tabview-nav{background:#ffffff;border:1px solid #dee2e6;border-width:0 0 2px 0}.p-tabview .p-tabview-nav li{margin-right:0}.p-tabview .p-tabview-nav li .p-tabview-nav-link{border:solid #dee2e6;border-width:0 0 2px 0;border-color:transparent transparent #dee2e6 transparent;background:#ffffff;color:#6c757d;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabview .p-tabview-nav li .p-tabview-nav-link:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-nav li:not(.p-highlight):not(.p-disabled):hover .p-tabview-nav-link{background:#ffffff;border-color:#adb5bd;color:#6c757d}.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link{background:#ffffff;border-color:#3b82f6;color:#3b82f6}.p-tabview .p-tabview-left-icon{margin-right:.5rem}.p-tabview .p-tabview-right-icon,.p-tabview .p-tabview-close{margin-left:.5rem}.p-tabview .p-tabview-nav-btn.p-link{background:#ffffff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabview .p-tabview-nav-btn.p-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-panels{background:#ffffff;padding:1.25rem;border:0 none;color:#495057;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-toolbar{background:#f8f9fa;border:1px solid #dee2e6;padding:1.25rem;border-radius:6px;gap:.5rem}.p-toolbar .p-toolbar-separator{margin:0 .5rem}.p-confirm-popup{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-confirm-popup .p-confirm-popup-content{padding:1.25rem}.p-confirm-popup .p-confirm-popup-footer{text-align:right;padding:.75rem 1.25rem}.p-confirm-popup .p-confirm-popup-footer button{margin:0 .5rem 0 0;width:auto}.p-confirm-popup .p-confirm-popup-footer button:last-child{margin:0}.p-confirm-popup:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup:before{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:after{border-top-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:before{border-top-color:#fff}.p-confirm-popup .p-confirm-popup-icon{font-size:1.5rem}.p-confirm-popup .p-confirm-popup-message{margin-left:1rem}.p-dialog{border-radius:6px;box-shadow:0 1px 3px #0000004d;border:0 none}.p-dialog .p-dialog-header{border-bottom:0 none;background:#ffffff;color:#343a40;padding:1.5rem;border-top-right-radius:6px;border-top-left-radius:6px}.p-dialog .p-dialog-header .p-dialog-title{font-weight:700;font-size:1.25rem}.p-dialog .p-dialog-header .p-dialog-header-icon{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-dialog .p-dialog-header .p-dialog-header-icon:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-dialog .p-dialog-header .p-dialog-header-icon:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-dialog .p-dialog-header .p-dialog-header-icon:last-child{margin-right:0}.p-dialog .p-dialog-content{background:#ffffff;color:#495057;padding:0 1.5rem 2rem}.p-dialog .p-dialog-content:last-of-type{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer{border-top:0 none;background:#ffffff;color:#495057;padding:0 1.5rem 1.5rem;text-align:right;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer button{margin:0 .5rem 0 0;width:auto}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon{font-size:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-message{margin-left:1rem}.p-overlaypanel{background:#ffffff;color:#495057;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-overlaypanel .p-overlaypanel-content{padding:1.25rem}.p-overlaypanel .p-overlaypanel-close{background:#3B82F6;color:#fff;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%;position:absolute;top:-1rem;right:-1rem}.p-overlaypanel .p-overlaypanel-close:enabled:hover{background:#2563eb;color:#fff}.p-overlaypanel:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-overlaypanel:before{border:solid transparent;border-color:#fff0;border-bottom-color:#f2f2f2}.p-overlaypanel.p-overlaypanel-flipped:after{border-top-color:#fff}.p-overlaypanel.p-overlaypanel-flipped:before{border-top-color:#fff}.p-sidebar{background:#ffffff;color:#495057;border:0 none;box-shadow:0 1px 3px #0000004d}.p-sidebar .p-sidebar-header{padding:1.25rem}.p-sidebar .p-sidebar-header .p-sidebar-close,.p-sidebar .p-sidebar-header .p-sidebar-icon{width:2rem;height:2rem;color:#6c757d;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-sidebar .p-sidebar-header .p-sidebar-close:enabled:hover,.p-sidebar .p-sidebar-header .p-sidebar-icon:enabled:hover{color:#343a40;border-color:transparent;background:#e9ecef}.p-sidebar .p-sidebar-header .p-sidebar-close:focus,.p-sidebar .p-sidebar-header .p-sidebar-icon:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-sidebar .p-sidebar-header+.p-sidebar-content{padding-top:0}.p-sidebar .p-sidebar-content,.p-sidebar .p-sidebar-footer{padding:1.25rem}.p-tooltip .p-tooltip-text{background:#495057;color:#fff;padding:.75rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-tooltip.p-tooltip-right .p-tooltip-arrow{border-right-color:#495057}.p-tooltip.p-tooltip-left .p-tooltip-arrow{border-left-color:#495057}.p-tooltip.p-tooltip-top .p-tooltip-arrow{border-top-color:#495057}.p-tooltip.p-tooltip-bottom .p-tooltip-arrow{border-bottom-color:#495057}.p-fileupload .p-fileupload-buttonbar{background:#f8f9fa;padding:1.25rem;border:1px solid #dee2e6;color:#343a40;border-bottom:0 none;border-top-right-radius:6px;border-top-left-radius:6px}.p-fileupload .p-fileupload-buttonbar .p-button{margin-right:.5rem}.p-fileupload .p-fileupload-buttonbar .p-button.p-fileupload-choose.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fileupload .p-fileupload-content{background:#ffffff;padding:2rem 1rem;border:1px solid #dee2e6;color:#495057;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-fileupload .p-progressbar{height:.25rem}.p-fileupload .p-fileupload-row>div{padding:1rem}.p-fileupload.p-fileupload-advanced .p-message{margin-top:0}.p-fileupload-choose:not(.p-disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-fileupload-choose:not(.p-disabled):active{background:#1D4ED8;color:#fff;border-color:#1d4ed8}.p-breadcrumb{background:#ffffff;border:1px solid #dee2e6;border-radius:6px;padding:1rem}.p-breadcrumb ul li .p-menuitem-link{transition:box-shadow .2s;border-radius:6px}.p-breadcrumb ul li .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-breadcrumb ul li .p-menuitem-link .p-menuitem-text{color:#495057}.p-breadcrumb ul li .p-menuitem-link .p-menuitem-icon{color:#6c757d}.p-breadcrumb ul li.p-breadcrumb-chevron{margin:0 .5rem;color:#495057}.p-breadcrumb ul li:last-child .p-menuitem-text{color:#495057}.p-breadcrumb ul li:last-child .p-menuitem-icon{color:#6c757d}.p-contextmenu{padding:.25rem 0;background:#ffffff;color:#495057;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;width:12.5rem}.p-contextmenu .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-contextmenu .p-menuitem-link .p-menuitem-text{color:#495057}.p-contextmenu .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-contextmenu .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-contextmenu .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-contextmenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-contextmenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-contextmenu .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-contextmenu .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-contextmenu .p-submenu-list{padding:.25rem 0;background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-contextmenu .p-menuitem{margin:0}.p-contextmenu .p-menuitem:last-child{margin:0}.p-contextmenu .p-menuitem.p-menuitem-active>.p-menuitem-link{background:#EFF6FF}.p-contextmenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-contextmenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-contextmenu .p-menu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-contextmenu .p-submenu-icon{font-size:.875rem}.p-contextmenu .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-dock .p-dock-list{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:.5rem;border-radius:.5rem}.p-dock .p-dock-item{padding:.5rem}.p-dock .p-dock-action{width:4rem;height:4rem}.p-dock.p-dock-top .p-dock-item-second-prev,.p-dock.p-dock-top .p-dock-item-second-next,.p-dock.p-dock-bottom .p-dock-item-second-prev,.p-dock.p-dock-bottom .p-dock-item-second-next{margin:0 .9rem}.p-dock.p-dock-top .p-dock-item-prev,.p-dock.p-dock-top .p-dock-item-next,.p-dock.p-dock-bottom .p-dock-item-prev,.p-dock.p-dock-bottom .p-dock-item-next{margin:0 1.3rem}.p-dock.p-dock-top .p-dock-item-current,.p-dock.p-dock-bottom .p-dock-item-current{margin:0 1.5rem}.p-dock.p-dock-left .p-dock-item-second-prev,.p-dock.p-dock-left .p-dock-item-second-next,.p-dock.p-dock-right .p-dock-item-second-prev,.p-dock.p-dock-right .p-dock-item-second-next{margin:.9rem 0}.p-dock.p-dock-left .p-dock-item-prev,.p-dock.p-dock-left .p-dock-item-next,.p-dock.p-dock-right .p-dock-item-prev,.p-dock.p-dock-right .p-dock-item-next{margin:1.3rem 0}.p-dock.p-dock-left .p-dock-item-current,.p-dock.p-dock-right .p-dock-item-current{margin:1.5rem 0}@media screen and (max-width: 960px){.p-dock.p-dock-top .p-dock-list-container,.p-dock.p-dock-bottom .p-dock-list-container{overflow-x:auto;width:100%}.p-dock.p-dock-top .p-dock-list-container .p-dock-list,.p-dock.p-dock-bottom .p-dock-list-container .p-dock-list{margin:0 auto}.p-dock.p-dock-left .p-dock-list-container,.p-dock.p-dock-right .p-dock-list-container{overflow-y:auto;height:100%}.p-dock.p-dock-left .p-dock-list-container .p-dock-list,.p-dock.p-dock-right .p-dock-list-container .p-dock-list{margin:auto 0}.p-dock .p-dock-list .p-dock-item{transform:none;margin:0}}.p-megamenu{padding:.5rem;background:#f8f9fa;color:#495057;border:1px solid #dee2e6;border-radius:6px}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:6px;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-text{color:#495057}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link .p-submenu-icon{color:#6c757d;margin-left:.5rem}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-megamenu .p-megamenu-root-list>.p-menuitem>.p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link,.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover{background:#EFF6FF}.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-text,.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#1d4ed8}.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-icon,.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#1d4ed8}.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link .p-submenu-icon,.p-megamenu .p-megamenu-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#1d4ed8}.p-megamenu .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-megamenu .p-menuitem-link .p-menuitem-text{color:#495057}.p-megamenu .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-megamenu .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-megamenu .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-megamenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-megamenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-megamenu .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-megamenu .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-megamenu .p-megamenu-panel{background:#ffffff;color:#495057;border:0 none;box-shadow:0 2px 12px #0000001a}.p-megamenu .p-megamenu-submenu-header{margin:0;padding:.75rem 1.25rem;color:#343a40;background:#ffffff;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px}.p-megamenu .p-megamenu-submenu{padding:.25rem 0;width:12.5rem}.p-megamenu .p-megamenu-submenu .p-menu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-megamenu .p-megamenu-submenu .p-menuitem{margin:0}.p-megamenu .p-megamenu-submenu .p-menuitem:last-child{margin:0}.p-megamenu .p-menuitem.p-menuitem-active>.p-menuitem-link{background:#EFF6FF}.p-megamenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-megamenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-megamenu.p-megamenu-vertical{width:12.5rem;padding:.25rem 0}.p-megamenu.p-megamenu-vertical .p-menuitem{margin:0}.p-megamenu.p-megamenu-vertical .p-menuitem:last-child{margin:0}.p-megamenu .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-menu{padding:.25rem 0;background:#ffffff;color:#495057;border:1px solid #dee2e6;border-radius:6px;width:12.5rem}.p-menu .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-menu .p-menuitem-link .p-menuitem-text{color:#495057}.p-menu .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-menu .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-menu .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-menu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-menu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-menu .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-menu .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-menu.p-menu-overlay{background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-menu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#343a40;background:#ffffff;font-weight:700;border-top-right-radius:0;border-top-left-radius:0}.p-menu .p-menu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-menu .p-menuitem{margin:0}.p-menu .p-menuitem:last-child{margin:0}.p-menu .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-menubar{padding:.5rem;background:#f8f9fa;color:#495057;border:1px solid #dee2e6;border-radius:6px}.p-menubar .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-menubar .p-menuitem-link .p-menuitem-text{color:#495057}.p-menubar .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-menubar .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-menubar .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-menubar .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-menubar .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-menubar .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-menubar .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:6px;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-text{color:#495057}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-submenu-icon{color:#6c757d;margin-left:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link,.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover{background:#EFF6FF}.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-text,.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#1d4ed8}.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-icon,.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#1d4ed8}.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link .p-submenu-icon,.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#1d4ed8}.p-menubar .p-submenu-list{padding:.25rem 0;background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a;width:12.5rem}.p-menubar .p-submenu-list .p-menu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-menubar .p-submenu-list .p-submenu-icon{font-size:.875rem}.p-menubar .p-submenu-list .p-menuitem{margin:0}.p-menubar .p-submenu-list .p-menuitem:last-child{margin:0}.p-menubar .p-menuitem.p-menuitem-active>.p-menuitem-link{background:#EFF6FF}.p-menubar .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menubar .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem.p-menuitem-active>.p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menubar .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}@media screen and (max-width: 960px){.p-menubar{position:relative}.p-menubar .p-menubar-button{display:flex;width:2rem;height:2rem;color:#6c757d;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-menubar .p-menubar-button:hover{color:#6c757d;background:#e9ecef}.p-menubar .p-menubar-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-menubar .p-menubar-root-list{position:absolute;display:none;padding:.25rem 0;background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a;width:100%}.p-menubar .p-menubar-root-list .p-menu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-menubar .p-menubar-root-list .p-submenu-icon{font-size:.875rem}.p-menubar .p-menubar-root-list>.p-menuitem{width:100%;position:static}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-text{color:#495057}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-submenu-icon{color:#6c757d}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link>.p-submenu-icon{margin-left:auto;transition:transform .2s}.p-menubar .p-menubar-root-list>.p-menuitem.p-menuitem-active>.p-menuitem-link>.p-submenu-icon{transform:rotate(-180deg)}.p-menubar .p-menubar-root-list .p-submenu-list{width:100%;position:static;box-shadow:none;border:0 none}.p-menubar .p-menubar-root-list .p-submenu-list .p-submenu-icon{transition:transform .2s;transform:rotate(90deg)}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem-active>.p-menuitem-link>.p-submenu-icon{transform:rotate(-90deg)}.p-menubar .p-menubar-root-list .p-menuitem{width:100%;position:static}.p-menubar .p-menubar-root-list ul li a{padding-left:2.25rem}.p-menubar .p-menubar-root-list ul li ul li a{padding-left:3.75rem}.p-menubar .p-menubar-root-list ul li ul li ul li a{padding-left:5.25rem}.p-menubar .p-menubar-root-list ul li ul li ul li ul li a{padding-left:6.75rem}.p-menubar .p-menubar-root-list ul li ul li ul li ul li ul li a{padding-left:8.25rem}.p-menubar.p-menubar-mobile-active .p-menubar-root-list{display:flex;flex-direction:column;top:100%;left:0;z-index:1}}.p-panelmenu .p-panelmenu-header>a{padding:1.25rem;border:1px solid #dee2e6;color:#6c757d;background:#f8f9fa;font-weight:700;border-radius:6px;transition:box-shadow .2s}.p-panelmenu .p-panelmenu-header>a .p-panelmenu-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-header>a .p-menuitem-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-header>a:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-panelmenu .p-panelmenu-header:not(.p-highlight):not(.p-disabled)>a:hover{background:#e9ecef;border-color:#dee2e6;color:#343a40}.p-panelmenu .p-panelmenu-header.p-highlight{margin-bottom:0}.p-panelmenu .p-panelmenu-header.p-highlight>a{background:#f8f9fa;border-color:#dee2e6;color:#343a40;border-bottom-right-radius:0;border-bottom-left-radius:0}.p-panelmenu .p-panelmenu-header.p-highlight:not(.p-disabled)>a:hover{border-color:#dee2e6;background:#e9ecef;color:#343a40}.p-panelmenu .p-panelmenu-content{padding:.25rem 0;border:1px solid #dee2e6;background:#ffffff;color:#495057;margin-bottom:4px;border-top:0;border-radius:0 0 6px 6px}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link .p-menuitem-text{color:#495057}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-link .p-panelmenu-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-submenu-list:not(.p-panelmenu-root-submenu){padding:0 0 0 1rem}.p-panelmenu .p-panelmenu-panel{margin-bottom:4px}.p-panelmenu .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-slidemenu{padding:.25rem 0;background:#ffffff;color:#495057;border:1px solid #dee2e6;border-radius:6px;width:12.5rem}.p-slidemenu .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-slidemenu .p-menuitem-link .p-menuitem-text{color:#495057}.p-slidemenu .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-slidemenu .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-slidemenu .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-slidemenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-slidemenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-slidemenu .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-slidemenu .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-slidemenu.p-slidemenu-overlay{background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-slidemenu-list{padding:.25rem 0;background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-slidemenu.p-slidemenu-active>.p-slidemenu-link{background:#EFF6FF}.p-slidemenu .p-slidemenu.p-slidemenu-active>.p-slidemenu-link .p-slidemenu-text{color:#1d4ed8}.p-slidemenu .p-slidemenu.p-slidemenu-active>.p-slidemenu-link .p-slidemenu-icon,.p-slidemenu .p-slidemenu.p-slidemenu-active>.p-slidemenu-link .p-slidemenu-icon{color:#1d4ed8}.p-slidemenu .p-slidemenu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-slidemenu .p-slidemenu-icon{font-size:.875rem}.p-slidemenu .p-slidemenu-backward{padding:.75rem 1.25rem;color:#495057}.p-slidemenu .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-steps .p-steps-item .p-menuitem-link{background:transparent;transition:box-shadow .2s;border-radius:6px;background:#ffffff}.p-steps .p-steps-item .p-menuitem-link .p-steps-number{color:#495057;border:1px solid #e9ecef;background:#ffffff;min-width:2rem;height:2rem;line-height:2rem;font-size:1.143rem;z-index:1;border-radius:50%}.p-steps .p-steps-item .p-menuitem-link .p-steps-title{margin-top:.5rem;color:#6c757d}.p-steps .p-steps-item .p-menuitem-link:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#EFF6FF;color:#1d4ed8}.p-steps .p-steps-item.p-highlight .p-steps-title{font-weight:700;color:#495057}.p-steps .p-steps-item:before{content:" ";border-top:1px solid #dee2e6;width:100%;top:50%;left:0;display:block;position:absolute;margin-top:-1rem}.p-tabmenu .p-tabmenu-nav{background:#ffffff;border:1px solid #dee2e6;border-width:0 0 2px 0}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem{margin-right:0}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{border:solid #dee2e6;border-width:0 0 2px 0;border-color:transparent transparent #dee2e6 transparent;background:#ffffff;color:#6c757d;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link .p-menuitem-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link{background:#ffffff;border-color:#adb5bd;color:#6c757d}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link{background:#ffffff;border-color:#3b82f6;color:#3b82f6}.p-tabmenu .p-tabmenu-left-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-right-icon{margin-left:.5rem}.p-tabmenu .p-tabmenu-nav-btn.p-link{background:#ffffff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabmenu .p-tabmenu-nav-btn.p-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tieredmenu{padding:.25rem 0;background:#ffffff;color:#495057;border:1px solid #dee2e6;border-radius:6px;width:12.5rem}.p-tieredmenu .p-menuitem-link{padding:.75rem 1.25rem;color:#495057;border-radius:0;transition:box-shadow .2s;-webkit-user-select:none;user-select:none}.p-tieredmenu .p-menuitem-link .p-menuitem-text{color:#495057}.p-tieredmenu .p-menuitem-link .p-menuitem-icon{color:#6c757d;margin-right:.5rem}.p-tieredmenu .p-menuitem-link .p-submenu-icon{color:#6c757d}.p-tieredmenu .p-menuitem-link:not(.p-disabled):hover{background:#e9ecef}.p-tieredmenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:#495057}.p-tieredmenu .p-menuitem-link:not(.p-disabled):hover .p-menuitem-icon{color:#6c757d}.p-tieredmenu .p-menuitem-link:not(.p-disabled):hover .p-submenu-icon{color:#6c757d}.p-tieredmenu .p-menuitem-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-tieredmenu.p-tieredmenu-overlay{background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-submenu-list{padding:.25rem 0;background:#ffffff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-menuitem{margin:0}.p-tieredmenu .p-menuitem:last-child{margin:0}.p-tieredmenu .p-menuitem.p-menuitem-active>.p-menuitem-link{background:#EFF6FF}.p-tieredmenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem.p-menuitem-active>.p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-tieredmenu .p-menu-separator{border-top:1px solid #dee2e6;margin:.25rem 0}.p-tieredmenu .p-submenu-icon{font-size:.875rem}.p-tieredmenu .p-menuitem-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-inline-message{padding:.75rem;margin:0;border-radius:6px}.p-inline-message.p-inline-message-info{background:#e9e9ff;border:solid #696cff;border-width:0px;color:#696cff}.p-inline-message.p-inline-message-info .p-inline-message-icon{color:#696cff}.p-inline-message.p-inline-message-success{background:#e4f8f0;border:solid #1ea97c;border-width:0px;color:#1ea97c}.p-inline-message.p-inline-message-success .p-inline-message-icon{color:#1ea97c}.p-inline-message.p-inline-message-warn{background:#fff2e2;border:solid #cc8925;border-width:0px;color:#cc8925}.p-inline-message.p-inline-message-warn .p-inline-message-icon{color:#cc8925}.p-inline-message.p-inline-message-error{background:#ffe7e6;border:solid #ff5757;border-width:0px;color:#ff5757}.p-inline-message.p-inline-message-error .p-inline-message-icon{color:#ff5757}.p-inline-message .p-inline-message-icon{font-size:1rem;margin-right:.5rem}.p-inline-message .p-inline-message-text{font-size:1rem}.p-inline-message.p-inline-message-icon-only .p-inline-message-icon{margin-right:0}.p-message{margin:1rem 0;border-radius:6px}.p-message .p-message-wrapper{padding:1.25rem 1.75rem}.p-message .p-message-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-message .p-message-close:hover{background:rgba(255,255,255,.3)}.p-message .p-message-close:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-message.p-message-info{background:#e9e9ff;border:solid #696cff;border-width:0 0 0 6px;color:#696cff}.p-message.p-message-info .p-message-icon,.p-message.p-message-info .p-message-close{color:#696cff}.p-message.p-message-success{background:#e4f8f0;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-message.p-message-success .p-message-icon,.p-message.p-message-success .p-message-close{color:#1ea97c}.p-message.p-message-warn{background:#fff2e2;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-message.p-message-warn .p-message-icon,.p-message.p-message-warn .p-message-close{color:#cc8925}.p-message.p-message-error{background:#ffe7e6;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-message.p-message-error .p-message-icon,.p-message.p-message-error .p-message-close{color:#ff5757}.p-message .p-message-text{font-size:1rem;font-weight:400}.p-message .p-message-icon{font-size:1.5rem;margin-right:.5rem}.p-message .p-message-summary{font-weight:700}.p-message .p-message-detail{margin-left:.5rem}.p-toast{opacity:.9}.p-toast .p-toast-message{margin:0 0 1rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-toast .p-toast-message .p-toast-message-content{padding:1rem;border-width:0 0 0 6px}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-text{margin:0 0 0 1rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon{font-size:2rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-summary{font-weight:700}.p-toast .p-toast-message .p-toast-message-content .p-toast-detail{margin:.5rem 0 0}.p-toast .p-toast-message .p-toast-icon-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-toast .p-toast-message .p-toast-icon-close:hover{background:rgba(255,255,255,.3)}.p-toast .p-toast-message .p-toast-icon-close:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-toast .p-toast-message.p-toast-message-info{background:#e9e9ff;border:solid #696cff;border-width:0 0 0 6px;color:#696cff}.p-toast .p-toast-message.p-toast-message-info .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-info .p-toast-icon-close{color:#696cff}.p-toast .p-toast-message.p-toast-message-success{background:#e4f8f0;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-toast .p-toast-message.p-toast-message-success .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-success .p-toast-icon-close{color:#1ea97c}.p-toast .p-toast-message.p-toast-message-warn{background:#fff2e2;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-toast .p-toast-message.p-toast-message-warn .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-warn .p-toast-icon-close{color:#cc8925}.p-toast .p-toast-message.p-toast-message-error{background:#ffe7e6;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-toast .p-toast-message.p-toast-message-error .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-error .p-toast-icon-close{color:#ff5757}.p-galleria .p-galleria-close{margin:.5rem;background:transparent;color:#f8f9fa;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-close .p-galleria-close-icon{font-size:2rem}.p-galleria .p-galleria-close:hover{background:rgba(255,255,255,.1);color:#f8f9fa}.p-galleria .p-galleria-item-nav{background:transparent;color:#f8f9fa;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:6px;margin:0 .5rem}.p-galleria .p-galleria-item-nav .p-galleria-item-prev-icon,.p-galleria .p-galleria-item-nav .p-galleria-item-next-icon{font-size:2rem}.p-galleria .p-galleria-item-nav:not(.p-disabled):hover{background:rgba(255,255,255,.1);color:#f8f9fa}.p-galleria .p-galleria-caption{background:rgba(0,0,0,.5);color:#f8f9fa;padding:1rem}.p-galleria .p-galleria-indicators{padding:1rem}.p-galleria .p-galleria-indicators .p-galleria-indicator button{background-color:#ced4da;width:1rem;height:1rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-indicators .p-galleria-indicator button:hover{background:#adb5bd}.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#EFF6FF;color:#1d4ed8}.p-galleria.p-galleria-indicators-bottom .p-galleria-indicator,.p-galleria.p-galleria-indicators-top .p-galleria-indicator{margin-right:.5rem}.p-galleria.p-galleria-indicators-left .p-galleria-indicator,.p-galleria.p-galleria-indicators-right .p-galleria-indicator{margin-bottom:.5rem}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators{background:rgba(0,0,0,.5)}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button{background:rgba(255,255,255,.4)}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button:hover{background:rgba(255,255,255,.6)}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#EFF6FF;color:#1d4ed8}.p-galleria .p-galleria-thumbnail-container{background:rgba(0,0,0,.9);padding:1rem .25rem}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next{margin:.5rem;background-color:transparent;color:#f8f9fa;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev:hover,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next:hover{background:rgba(255,255,255,.1);color:#f8f9fa}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-galleria-mask,.p-image-mask{--maskbg: rgba(0, 0, 0, .9)}.p-image-preview-indicator{background-color:transparent;color:#f8f9fa;transition:background-color .2s,color .2s,box-shadow .2s}.p-image-preview-container:hover>.p-image-preview-indicator{background-color:#00000080}.p-image-toolbar{padding:1rem}.p-image-action.p-link{color:#f8f9fa;background-color:transparent;width:3rem;height:3rem;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-image-action.p-link:last-child{margin-right:0}.p-image-action.p-link:hover{color:#f8f9fa;background-color:#ffffff1a}.p-image-action.p-link i{font-size:1.5rem}.p-avatar{background-color:#dee2e6;border-radius:6px}.p-avatar.p-avatar-lg{width:3rem;height:3rem;font-size:1.5rem}.p-avatar.p-avatar-lg .p-avatar-icon{font-size:1.5rem}.p-avatar.p-avatar-xl{width:4rem;height:4rem;font-size:2rem}.p-avatar.p-avatar-xl .p-avatar-icon{font-size:2rem}.p-avatar-group .p-avatar{border:2px solid #ffffff}.p-badge{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem}.p-badge.p-badge-secondary{background-color:#64748b;color:#fff}.p-badge.p-badge-success{background-color:#22c55e;color:#fff}.p-badge.p-badge-info{background-color:#3b82f6;color:#fff}.p-badge.p-badge-warning{background-color:#f59e0b;color:#fff}.p-badge.p-badge-danger{background-color:#ef4444;color:#fff}.p-badge.p-badge-lg{font-size:1.125rem;min-width:2.25rem;height:2.25rem;line-height:2.25rem}.p-badge.p-badge-xl{font-size:1.5rem;min-width:3rem;height:3rem;line-height:3rem}.p-chip{background-color:#dee2e6;color:#495057;border-radius:16px;padding:0 .75rem}.p-chip .p-chip-text{line-height:1.5;margin-top:.375rem;margin-bottom:.375rem}.p-chip .p-chip-icon{margin-right:.5rem}.p-chip .pi-chip-remove-icon{margin-left:.5rem}.p-chip img{width:2.25rem;height:2.25rem;margin-left:-.75rem;margin-right:.5rem}.p-chip .pi-chip-remove-icon{border-radius:6px;transition:background-color .2s,color .2s,box-shadow .2s}.p-chip .pi-chip-remove-icon:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-inplace .p-inplace-display{padding:.75rem;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-inplace .p-inplace-display:not(.p-disabled):hover{background:#e9ecef;color:#495057}.p-inplace .p-inplace-display:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-progressbar{border:0 none;height:1.5rem;background:#dee2e6;border-radius:6px}.p-progressbar .p-progressbar-value{border:0 none;margin:0;background:#3B82F6}.p-progressbar .p-progressbar-label{color:#fff;line-height:1.5rem}.p-scrolltop{width:3rem;height:3rem;border-radius:50%;box-shadow:0 2px 12px #0000001a;transition:background-color .2s,color .2s,box-shadow .2s}.p-scrolltop.p-link{background:rgba(0,0,0,.7)}.p-scrolltop.p-link:hover{background:rgba(0,0,0,.8)}.p-scrolltop .p-scrolltop-icon{font-size:1.5rem;color:#f8f9fa}.p-skeleton{background-color:#dee2e6;border-radius:6px}.p-skeleton:after{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4),rgba(255,255,255,0))}.p-tag{background:#3B82F6;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .4rem;border-radius:6px}.p-tag.p-tag-success{background-color:#22c55e;color:#fff}.p-tag.p-tag-info{background-color:#3b82f6;color:#fff}.p-tag.p-tag-warning{background-color:#f59e0b;color:#fff}.p-tag.p-tag-danger{background-color:#ef4444;color:#fff}.p-tag .p-tag-icon{margin-right:.25rem;font-size:.75rem}.p-terminal{background:#ffffff;color:#495057;border:1px solid #dee2e6;padding:1.25rem}.p-terminal .p-terminal-input{font-size:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}.p-button-label{font-weight:700}.p-accordion .p-accordion-header .p-accordion-header-link,.p-tabview .p-tabview-nav li .p-tabview-nav-link{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-tabview .p-tabview-nav .p-tabview-ink-bar{z-index:1;display:block;position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button,.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background-color:#3b82f6}.p-button:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-button.p-button-secondary:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #b0b9c6,0 1px 2px #000}.p-button.p-button-success:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #88eaac,0 1px 2px #000}.p-button.p-button-info:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-button.p-button-warning:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #facf85,0 1px 2px #000}.p-button.p-button-help:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #d4aafb,0 1px 2px #000}.p-button.p-button-danger:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #f7a2a2,0 1px 2px #000}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #3b82f6}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #3b82f6}.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-overflow-hidden{overflow:hidden}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-buttonset .p-button{margin:0}.p-buttonset .p-button:not(:last-child){border-right:0 none}.p-buttonset .p-button:not(:first-of-type):not(:last-of-type){border-radius:0}.p-buttonset .p-button:first-of-type{border-top-right-radius:0;border-bottom-right-radius:0}.p-buttonset .p-button:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0}.p-buttonset .p-button:focus{position:relative;z-index:1}.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}.p-colorpicker-panel .p-colorpicker-color{background:transparent url(color.dae87a04d07ca92b.png) no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(hue.8b1818380241e6ac.png) no-repeat left top}.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-right>i{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password-clearable{position:relative}.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:rgba(255,255,255,.5);border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}/*! - * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) - * Copyright 2015 Daniel Cardoso <@DanielCardoso> - * Licensed under MIT - */.la-line-spin-clockwise-fade-rotating,.la-line-spin-clockwise-fade-rotating>div{position:relative;box-sizing:border-box}.la-line-spin-clockwise-fade-rotating{display:block;font-size:0;color:#fff}.la-line-spin-clockwise-fade-rotating.la-dark{color:#333}.la-line-spin-clockwise-fade-rotating>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-spin-clockwise-fade-rotating{width:32px;height:32px;animation:line-spin-clockwise-fade-rotating-rotate 6s infinite linear}.la-line-spin-clockwise-fade-rotating>div{position:absolute;width:2px;height:10px;margin:-5px 2px 2px -1px;border-radius:0;animation:line-spin-clockwise-fade-rotating 1s infinite ease-in-out}.la-line-spin-clockwise-fade-rotating>div:nth-child(1){top:15%;left:50%;transform:rotate(0);animation-delay:-.875s}.la-line-spin-clockwise-fade-rotating>div:nth-child(2){top:25.2512626585%;left:74.7487373415%;transform:rotate(45deg);animation-delay:-.75s}.la-line-spin-clockwise-fade-rotating>div:nth-child(3){top:50%;left:85%;transform:rotate(90deg);animation-delay:-.625s}.la-line-spin-clockwise-fade-rotating>div:nth-child(4){top:74.7487373415%;left:74.7487373415%;transform:rotate(135deg);animation-delay:-.5s}.la-line-spin-clockwise-fade-rotating>div:nth-child(5){top:84.9999999974%;left:50.0000000004%;transform:rotate(180deg);animation-delay:-.375s}.la-line-spin-clockwise-fade-rotating>div:nth-child(6){top:74.7487369862%;left:25.2512627193%;transform:rotate(225deg);animation-delay:-.25s}.la-line-spin-clockwise-fade-rotating>div:nth-child(7){top:49.9999806189%;left:15.0000039834%;transform:rotate(270deg);animation-delay:-.125s}.la-line-spin-clockwise-fade-rotating>div:nth-child(8){top:25.2506949798%;left:25.2513989292%;transform:rotate(315deg);animation-delay:0s}.la-line-spin-clockwise-fade-rotating.la-sm{width:16px;height:16px}.la-line-spin-clockwise-fade-rotating.la-sm>div{width:1px;height:4px;margin-top:-2px;margin-left:0}.la-line-spin-clockwise-fade-rotating.la-2x{width:64px;height:64px}.la-line-spin-clockwise-fade-rotating.la-2x>div{width:4px;height:20px;margin-top:-10px;margin-left:-2px}.la-line-spin-clockwise-fade-rotating.la-3x{width:96px;height:96px}.la-line-spin-clockwise-fade-rotating.la-3x>div{width:6px;height:30px;margin-top:-15px;margin-left:-3px}@keyframes line-spin-clockwise-fade-rotating-rotate{to{transform:rotate(-360deg)}}@keyframes line-spin-clockwise-fade-rotating{50%{opacity:.2}to{opacity:1}}/*! - * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) - * Copyright 2015 Daniel Cardoso <@DanielCardoso> - * Licensed under MIT - */.la-line-scale,.la-line-scale>div{position:relative;box-sizing:border-box}.la-line-scale{display:block;font-size:0;color:#fff}.la-line-scale.la-dark{color:#333}.la-line-scale>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-scale{width:40px;height:32px}.la-line-scale>div{width:4px;height:32px;margin:0 2px;border-radius:0;animation:line-scale 1.2s infinite ease}.la-line-scale>div:nth-child(1){animation-delay:-1.2s}.la-line-scale>div:nth-child(2){animation-delay:-1.1s}.la-line-scale>div:nth-child(3){animation-delay:-1s}.la-line-scale>div:nth-child(4){animation-delay:-.9s}.la-line-scale>div:nth-child(5){animation-delay:-.8s}.la-line-scale.la-sm{width:20px;height:16px}.la-line-scale.la-sm>div{width:2px;height:16px;margin:0 1px}.la-line-scale.la-2x{width:80px;height:64px}.la-line-scale.la-2x>div{width:8px;height:64px;margin:0 4px}.la-line-scale.la-3x{width:120px;height:96px}.la-line-scale.la-3x>div{width:12px;height:96px;margin:0 6px}@keyframes line-scale{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}@charset "UTF-8";html{font-size:13px}.advanced-pie-legend .total-value{font-size:20px!important}.advanced-pie-legend .total-label{font-size:14px!important;margin-bottom:5px!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:14px!important;margin-left:11px;line-height:1em!important;margin-top:0!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:10px!important;opacity:.7;margin-left:11px;margin-top:0!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:14px!important;opacity:.7;margin-left:11px;line-height:1em!important}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container .ngx-toastr{border-radius:.375rem;position:relative;overflow:hidden;margin:0 0 6px;padding:.75rem 1.25rem .75rem 50px;width:300px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 10px #00000008;pointer-events:auto}.toast-container .ngx-toastr .toast-title{font-weight:700}.toast-container .ngx-toastr .toast-message{word-wrap:break-word}.toast-container .ngx-toastr .toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}.toast-container .ngx-toastr .toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.3}.toast-container .ngx-toastr .toast-close-button:hover,.toast-container .ngx-toastr .toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.75}.toast-container .ngx-toastr:hover{box-shadow:0 0 10px #00000026;opacity:1;cursor:pointer}.toast-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");color:#155724!important;background-color:#d4edda;border:1px solid #c3e6cb}.toast-success a{text-decoration:underline!important;color:#08210e!important}.toast-success a:hover{color:#020703!important}.toast-error{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E");color:#721c24!important;background-color:#f8d7da;border:1px solid #f5c6cb}.toast-error a{text-decoration:underline!important;color:#2c0b0e!important}.toast-error a:hover{color:#090203!important}.toast-info{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");color:#0c5460!important;background-color:#d1ecf1;border:1px solid #bee5eb}.toast-info a{text-decoration:underline!important;color:#052025!important}.toast-info a:hover{color:#010607!important}.toast-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");color:#856404!important;background-color:#fff3cd;border:1px solid #ffeeba}.toast-warning a{text-decoration:underline!important;color:#332701!important}.toast-warning a:hover{color:#0a0800!important}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}/*! - * Bootstrap v5.2.3 (https://getbootstrap.com/) - * Copyright 2011-2022 The Bootstrap Authors - * Copyright 2011-2022 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--bs-blue: #0073dd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #e83e8c;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #28a745;--bs-teal: #20c997;--bs-cyan: #17a2b8;--bs-black: #000;--bs-white: #fff;--bs-gray: #868e96;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #868e96;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0073dd;--bs-secondary: #868e96;--bs-success: #28a745;--bs-info: #17a2b8;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #343a40;--bs-primary-rgb: 0, 115, 221;--bs-secondary-rgb: 134, 142, 150;--bs-success-rgb: 40, 167, 69;--bs-info-rgb: 23, 162, 184;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 52, 58, 64;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg-rgb: 255, 255, 255;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-bg: #fff;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-2xl: 2rem;--bs-border-radius-pill: 50rem;--bs-link-color: #0073dd;--bs-link-hover-color: #005cb1;--bs-code-color: #e83e8c;--bs-highlight-bg: #fff3cd}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-link-color);text-decoration:underline}a:hover{color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#868e96;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#868e96}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid var(--bs-border-color);border-radius:.375rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#868e96}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color: var(--bs-body-color);--bs-table-bg: transparent;--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0, 0, 0, .05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0, 0, 0, .1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0, 0, 0, .075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:2px solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cce3f8;--bs-table-border-color: #b8ccdf;--bs-table-striped-bg: #c2d8ec;--bs-table-striped-color: #000;--bs-table-active-bg: #b8ccdf;--bs-table-active-color: #000;--bs-table-hover-bg: #bdd2e5;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e7e8ea;--bs-table-border-color: #d0d1d3;--bs-table-striped-bg: #dbdcde;--bs-table-striped-color: #000;--bs-table-active-bg: #d0d1d3;--bs-table-active-color: #000;--bs-table-hover-bg: #d6d7d8;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d4edda;--bs-table-border-color: #bfd5c4;--bs-table-striped-bg: #c9e1cf;--bs-table-striped-color: #000;--bs-table-active-bg: #bfd5c4;--bs-table-active-color: #000;--bs-table-hover-bg: #c4dbca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #d1ecf1;--bs-table-border-color: #bcd4d9;--bs-table-striped-bg: #c7e0e5;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd4d9;--bs-table-active-color: #000;--bs-table-hover-bg: #c1dadf;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #e6dbb9;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #dfc2c4;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#868e96}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;appearance:none;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#80b9ee;outline:0;box-shadow:0 0 0 .25rem #0073dd40}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#868e96;opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:calc(1.5em + .75rem + 2px);padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + 2px)}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + 2px)}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80b9ee;outline:0;box-shadow:0 0 0 .25rem #0073dd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#80b9ee;outline:0;box-shadow:0 0 0 .25rem #0073dd40}.form-check-input:checked{background-color:#0073dd;border-color:#0073dd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0073dd;border-color:#0073dd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380b9ee'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0073dd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0073dd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0073dd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3d5f5}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0073dd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3d5f5}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.375rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#000;background-color:#28a745e6;border-radius:.375rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .25rem #28a74540}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#28a745}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .25rem #28a74540}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#28a745}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#28a745}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem #28a74540}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#28a745}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:#dc3545e6;border-radius:.375rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem #dc354540}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc3545}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem #dc354540}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem #dc354540}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: .375rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0073dd;--bs-btn-border-color: #0073dd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0062bc;--bs-btn-hover-border-color: #005cb1;--bs-btn-focus-shadow-rgb: 38, 136, 226;--bs-btn-active-color: #fff;--bs-btn-active-bg: #005cb1;--bs-btn-active-border-color: #0056a6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0073dd;--bs-btn-disabled-border-color: #0073dd}.btn-secondary{--bs-btn-color: #000;--bs-btn-bg: #868e96;--bs-btn-border-color: #868e96;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #989fa6;--bs-btn-hover-border-color: #9299a1;--bs-btn-focus-shadow-rgb: 114, 121, 128;--bs-btn-active-color: #000;--bs-btn-active-bg: #9ea5ab;--bs-btn-active-border-color: #9299a1;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #868e96;--bs-btn-disabled-border-color: #868e96}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #28a745;--bs-btn-border-color: #28a745;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #48b461;--bs-btn-hover-border-color: #3eb058;--bs-btn-focus-shadow-rgb: 34, 142, 59;--bs-btn-active-color: #000;--bs-btn-active-bg: #53b96a;--bs-btn-active-border-color: #3eb058;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #28a745;--bs-btn-disabled-border-color: #28a745}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #17a2b8;--bs-btn-border-color: #17a2b8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #3ab0c3;--bs-btn-hover-border-color: #2eabbf;--bs-btn-focus-shadow-rgb: 20, 138, 156;--bs-btn-active-color: #000;--bs-btn-active-bg: #45b5c6;--bs-btn-active-border-color: #2eabbf;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #17a2b8;--bs-btn-disabled-border-color: #17a2b8}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #52585d;--bs-btn-hover-border-color: #484e53;--bs-btn-focus-shadow-rgb: 82, 88, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5d6166;--bs-btn-active-border-color: #484e53;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343a40;--bs-btn-disabled-border-color: #343a40}.btn-outline-primary{--bs-btn-color: #0073dd;--bs-btn-border-color: #0073dd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0073dd;--bs-btn-hover-border-color: #0073dd;--bs-btn-focus-shadow-rgb: 0, 115, 221;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0073dd;--bs-btn-active-border-color: #0073dd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0073dd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0073dd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #868e96;--bs-btn-border-color: #868e96;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #868e96;--bs-btn-hover-border-color: #868e96;--bs-btn-focus-shadow-rgb: 134, 142, 150;--bs-btn-active-color: #000;--bs-btn-active-bg: #868e96;--bs-btn-active-border-color: #868e96;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #868e96;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #868e96;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #28a745;--bs-btn-border-color: #28a745;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #28a745;--bs-btn-hover-border-color: #28a745;--bs-btn-focus-shadow-rgb: 40, 167, 69;--bs-btn-active-color: #000;--bs-btn-active-bg: #28a745;--bs-btn-active-border-color: #28a745;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #28a745;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #28a745;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #17a2b8;--bs-btn-border-color: #17a2b8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #17a2b8;--bs-btn-hover-border-color: #17a2b8;--bs-btn-focus-shadow-rgb: 23, 162, 184;--bs-btn-active-color: #000;--bs-btn-active-bg: #17a2b8;--bs-btn-active-border-color: #17a2b8;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #17a2b8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #17a2b8;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343a40;--bs-btn-hover-border-color: #343a40;--bs-btn-focus-shadow-rgb: 52, 58, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343a40;--bs-btn-active-border-color: #343a40;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #343a40;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343a40;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #868e96;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: none;--bs-btn-focus-shadow-rgb: 38, 136, 226;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: .5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: .25rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: #212529;--bs-dropdown-bg: #fff;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: .375rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius:calc(.375rem - 1px);--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-dropdown-link-color: #212529;--bs-dropdown-link-hover-color: #1e2125;--bs-dropdown-link-hover-bg: #e9ecef;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0073dd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #868e96;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0073dd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: #868e96;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #dee2e6;--bs-nav-tabs-border-radius: .375rem;--bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6;--bs-nav-tabs-link-active-color: #495057;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:none;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: .375rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0073dd}.nav-pills .nav-link{background:none;border:0;border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(0, 0, 0, .55);--bs-navbar-hover-color: rgba(0, 0, 0, .7);--bs-navbar-disabled-color: rgba(0, 0, 0, .3);--bs-navbar-active-color: rgba(0, 0, 0, .9);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(0, 0, 0, .9);--bs-navbar-brand-hover-color: rgba(0, 0, 0, .9);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(0, 0, 0, .1);--bs-navbar-toggler-border-radius: .375rem;--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .show>.nav-link,.navbar-nav .nav-link.active{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-border-width: 1px;--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: .375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(.375rem - 1px);--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(0, 0, 0, .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: #212529;--bs-accordion-bg: #fff;--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: 1px;--bs-accordion-border-radius: .375rem;--bs-accordion-inner-border-radius:calc(.375rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230068c7'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #80b9ee;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(0, 115, 221, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #0068c7;--bs-accordion-active-bg: #e6f1fc}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: #868e96;--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: #868e96;display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0, 115, 221, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0073dd;--bs-pagination-active-border-color: #0073dd;--bs-pagination-disabled-color: #868e96;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: .5rem}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: .25rem}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: .375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: .375rem;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: #004585;--bs-alert-bg: #cce3f8;--bs-alert-border-color: #b3d5f5}.alert-primary .alert-link{color:#00376a}.alert-secondary{--bs-alert-color: #50555a;--bs-alert-bg: #e7e8ea;--bs-alert-border-color: #dbdde0}.alert-secondary .alert-link{color:#404448}.alert-success{--bs-alert-color: #186429;--bs-alert-bg: #d4edda;--bs-alert-border-color: #bfe5c7}.alert-success .alert-link{color:#135021}.alert-info{--bs-alert-color: #0e616e;--bs-alert-bg: #d1ecf1;--bs-alert-border-color: #b9e3ea}.alert-info .alert-link{color:#0b4e58}.alert-warning{--bs-alert-color: #664d03;--bs-alert-bg: #fff3cd;--bs-alert-border-color: #ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{--bs-alert-color: #842029;--bs-alert-bg: #f8d7da;--bs-alert-border-color: #f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{--bs-alert-color: #636464;--bs-alert-bg: #fefefe;--bs-alert-border-color: #fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{--bs-alert-color: #1f2326;--bs-alert-bg: #d6d8d9;--bs-alert-border-color: #c2c4c6}.alert-dark .alert-link{color:#191c1e}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: #e9ecef;--bs-progress-border-radius: .375rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0073dd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #212529;--bs-list-group-bg: #fff;--bs-list-group-border-color: rgba(0, 0, 0, .125);--bs-list-group-border-width: 1px;--bs-list-group-border-radius: .375rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: #495057;--bs-list-group-action-hover-color: #495057;--bs-list-group-action-hover-bg: #f8f9fa;--bs-list-group-action-active-color: #212529;--bs-list-group-action-active-bg: #e9ecef;--bs-list-group-disabled-color: #868e96;--bs-list-group-disabled-bg: #fff;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0073dd;--bs-list-group-active-border-color: #0073dd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004585;background-color:#cce3f8}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#004585;background-color:#b8ccdf}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004585;border-color:#004585}.list-group-item-secondary{color:#50555a;background-color:#e7e8ea}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#50555a;background-color:#d0d1d3}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#50555a;border-color:#50555a}.list-group-item-success{color:#186429;background-color:#d4edda}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#186429;background-color:#bfd5c4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#186429;border-color:#186429}.list-group-item-info{color:#0e616e;background-color:#d1ecf1}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0e616e;background-color:#bcd4d9}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0e616e;border-color:#0e616e}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#1f2326;background-color:#d6d8d9}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1f2326;background-color:#c1c2c3}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1f2326;border-color:#1f2326}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem #0073dd40;opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(255, 255, 255, .85);--bs-toast-border-width: 1px;--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: .375rem;--bs-toast-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-toast-header-color: #868e96;--bs-toast-header-bg: rgba(255, 255, 255, .85);--bs-toast-header-border-color: rgba(0, 0, 0, .05);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: #fff;--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: 1px;--bs-modal-border-radius: .5rem;--bs-modal-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-modal-inner-border-radius:calc(.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: #fff;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: .375rem;--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;padding:var(--bs-tooltip-arrow-height);margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: #fff;--bs-popover-border-width: 1px;--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: .5rem;--bs-popover-inner-border-radius:calc(.5rem - 1px);--bs-popover-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: ;--bs-popover-header-bg: #f0f0f0;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #212529;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: ;--bs-offcanvas-bg: #fff;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075)}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 575.98px){.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}}@media (max-width: 575.98px){.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 767.98px){.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}}@media (max-width: 767.98px){.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 991.98px){.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}}@media (max-width: 991.98px){.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 1199.98px){.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}}@media (max-width: 1199.98px){.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width: 1399.98px){.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}}@media (max-width: 1399.98px){.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(0,115,221,var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#000!important;background-color:RGBA(134,142,150,var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#000!important;background-color:RGBA(40,167,69,var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(23,162,184,var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(255,193,7,var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(220,53,69,var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(248,249,250,var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(52,58,64,var(--bs-bg-opacity, 1))!important}.link-primary{color:#0073dd!important}.link-primary:hover,.link-primary:focus{color:#005cb1!important}.link-secondary{color:#868e96!important}.link-secondary:hover,.link-secondary:focus{color:#9ea5ab!important}.link-success{color:#28a745!important}.link-success:hover,.link-success:focus{color:#53b96a!important}.link-info{color:#17a2b8!important}.link-info:hover,.link-info:focus{color:#45b5c6!important}.link-warning{color:#ffc107!important}.link-warning:hover,.link-warning:focus{color:#ffcd39!important}.link-danger{color:#dc3545!important}.link-danger:hover,.link-danger:focus{color:#b02a37!important}.link-light{color:#f8f9fa!important}.link-light:hover,.link-light:focus{color:#f9fafb!important}.link-dark{color:#343a40!important}.link-dark:hover,.link-dark:focus{color:#2a2e33!important}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem #00000026!important}.shadow-sm{box-shadow:0 .125rem .25rem #00000013!important}.shadow-lg{box-shadow:0 1rem 3rem #0000002d!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-1{--bs-border-width: 1px}.border-2{--bs-border-width: 2px}.border-3{--bs-border-width: 3px}.border-4{--bs-border-width: 4px}.border-5{--bs-border-width: 5px}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:#868e96!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-classic,.fa-sharp,.fas,.fa-solid,.far,.fa-regular,.fab,.fa-brands{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fas,.fa-classic,.fa-solid,.far,.fa-regular{font-family:"Font Awesome 6 Free"}.fab,.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .08em);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{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(.28, .84, .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(.4, 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(.4, 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) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .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%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{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:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-right:before{content:"\f138"}.fa-at:before{content:"@"}.fa-trash-can:before{content:"\f2ed"}.fa-trash-alt:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-xmark:before{content:"\f235"}.fa-user-times:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-message:before{content:"\f27a"}.fa-comment-alt:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-compress-alt:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-lines:before{content:"\f15c"}.fa-file-alt:before{content:"\f15c"}.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-days:before{content:"\f073"}.fa-calendar-alt:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball:before{content:"\f45f"}.fa-volleyball-ball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-desc:before{content:"\f0dd"}.fa-circle-minus:before{content:"\f056"}.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before{content:"\f2f5"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-icons:before{content:"\f86d"}.fa-heart-music-camera-bolt:before{content:"\f86d"}.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before{content:"\f689"}.fa-search-location:before{content:"\f689"}.fa-forward-step:before{content:"\f051"}.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before{content:"\f5b8"}.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football:before{content:"\f44e"}.fa-football-ball:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angles-down:before{content:"\f103"}.fa-angle-double-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before{content:"\f0fc"}.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before{content:"\f176"}.fa-long-arrow-up:before{content:"\f176"}.fa-fire-flame-simple:before{content:"\f46a"}.fa-burn:before{content:"\f46a"}.fa-person:before{content:"\f183"}.fa-male:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before{content:"\f587"}.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-pastafarianism:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before{content:"\f2e5"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before{content:"\f674"}.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before{content:"\f47e"}.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before{content:"\f2b9"}.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"K"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil:before{content:"\f303"}.fa-pencil-alt:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-paste:before{content:"\f0ea"}.fa-file-clipboard:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-ramp-box:before{content:"\f4de"}.fa-truck-loading:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before{content:"\f6a0"}.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before{content:"\f458"}.fa-quidditch:before{content:"\f458"}.fa-quidditch-broom-ball:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-box-archive:before{content:"\f187"}.fa-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before{content:"\f886"}.fa-sort-numeric-desc:before{content:"\f886"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"W"}.fa-earth-africa:before{content:"\f57c"}.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablet-alt:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before{content:"\f579"}.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before{content:"\f0e3"}.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before{content:"\f562"}.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before{content:"\f5ae"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows:before{content:"\e068"}.fa-people-arrows-left-right:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-right:before{content:"\f152"}.fa-scissors:before{content:"\f0c4"}.fa-cut:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-tachograph-digital:before{content:"\f566"}.fa-digital-tachograph:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-reply:before{content:"\f3e5"}.fa-mail-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-square-minus:before{content:"\f146"}.fa-minus-square:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-3:before{content:"\f253"}.fa-heart-crack:before{content:"\f7a9"}.fa-heart-broken:before{content:"\f7a9"}.fa-square-up-right:before{content:"\f360"}.fa-external-link-square-alt:before{content:"\f360"}.fa-face-kiss-beam:before{content:"\f597"}.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before{content:"\f06a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before{content:"\f08b"}.fa-sign-out:before{content:"\f08b"}.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-unlock-keyhole:before{content:"\f13e"}.fa-unlock-alt:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-simple:before{content:"\f58f"}.fa-headphones-alt:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before{content:"\f4b9"}.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-low:before{content:"\f027"}.fa-volume-down:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-alt:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"*"}.fa-square-check:before{content:"\f14a"}.fa-check-square:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-heading:before{content:"\f1dc"}.fa-header:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list:before{content:"\f03a"}.fa-list-squares:before{content:"\f03a"}.fa-square-phone-flip:before{content:"\f87b"}.fa-phone-square-alt:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before{content:"\f192"}.fa-dot-circle:before{content:"\f192"}.fa-face-dizzy:before{content:"\f567"}.fa-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol:before{content:"\f1e3"}.fa-futbol-ball:before{content:"\f1e3"}.fa-soccer-ball:before{content:"\f1e3"}.fa-paintbrush:before{content:"\f1fc"}.fa-paint-brush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before{content:"\f593"}.fa-hot-tub:before{content:"\f593"}.fa-map-location:before{content:"\f59f"}.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-pen-to-square:before{content:"\f044"}.fa-edit:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-nodes:before{content:"\f1e0"}.fa-share-alt:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-2:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before{content:"\f290"}.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before{content:"\f881"}.fa-sort-alpha-desc:before{content:"\f881"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand:before{content:"\f256"}.fa-hand-paper:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before{content:"\f596"}.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before{content:"\f589"}.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before{content:"\f58c"}.fa-grin-wink:before{content:"\f58c"}.fa-ear-deaf:before{content:"\f2a4"}.fa-deaf:before{content:"\f2a4"}.fa-deafness:before{content:"\f2a4"}.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-square-rss:before{content:"\f143"}.fa-rss-square:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"I"}.fa-hryvnia-sign:before{content:"\f6f2"}.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before{content:"\f581"}.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"V"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-staff-snake:before{content:"\e579"}.fa-rod-asclepius:before{content:"\e579"}.fa-rod-snake:before{content:"\e579"}.fa-staff-aesculapius:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-truck-medical:before{content:"\f0f9"}.fa-ambulance:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"Q"}.fa-g:before{content:"G"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-half:before{content:"\f2c9"}.fa-temperature-2:before{content:"\f2c9"}.fa-thermometer-2:before{content:"\f2c9"}.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-storm:before{content:"\f75a"}.fa-poo-bolt:before{content:"\f75a"}.fa-face-frown-open:before{content:"\f57a"}.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder:before{content:"\f07b"}.fa-folder-blank:before{content:"\f07b"}.fa-file-waveform:before{content:"\f478"}.fa-file-medical-alt:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-gauge:before{content:"\f624"}.fa-dashboard:before{content:"\f624"}.fa-gauge-med:before{content:"\f624"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-magic-wand-sparkles:before{content:"\e2ca"}.fa-e:before{content:"E"}.fa-pen-clip:before{content:"\f305"}.fa-pen-alt:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-van-shuttle:before{content:"\f5b6"}.fa-shuttle-van:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"C"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-chart-area:before{content:"\f1fe"}.fa-area-chart:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before{content:"\f05e"}.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-air-freshener:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before{content:"\f245"}.fa-mouse-pointer:before{content:"\f245"}.fa-maximize:before{content:"\f31e"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before{content:"\f61f"}.fa-triangle-circle-square:before{content:"\f61f"}.fa-shuffle:before{content:"\f074"}.fa-random:before{content:"\f074"}.fa-person-running:before{content:"\f70c"}.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before{content:"\f8cc"}.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before{content:"\f090"}.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before{content:"\e070"}.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-1:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before{content:"\f21e"}.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before{content:"\f4ce"}.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before{content:"\f496"}.fa-weight:before{content:"\f496"}.fa-user-group:before{content:"\f500"}.fa-user-friends:before{content:"\f500"}.fa-arrow-up-a-z:before{content:"\f15e"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before{content:"\f59b"}.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-circle-arrow-up:before{content:"\f0aa"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before{content:"\f554"}.fa-walking:before{content:"\f554"}.fa-l:before{content:"L"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before{content:"\f487"}.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before{content:"\f197"}.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before{content:"\f599"}.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before{content:"\f22a"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before{content:"\f79f"}.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before{content:"\f574"}.fa-file-upload:before{content:"\f574"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-3:before{content:"\f1eb"}.fa-wifi-strong:before{content:"\f1eb"}.fa-bath:before{content:"\f2cd"}.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-pen:before{content:"\f4ff"}.fa-user-edit:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-top-left:before{content:"\f853"}.fa-border-style:before{content:"\f853"}.fa-map-location-dot:before{content:"\f5a0"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-square-poll-vertical:before{content:"\f681"}.fa-poll:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-car-battery:before{content:"\f5df"}.fa-battery-car:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-hand-back-fist:before{content:"\f255"}.fa-hand-rock:before{content:"\f255"}.fa-square-caret-up:before{content:"\f151"}.fa-caret-square-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-chart-bar:before{content:"\f080"}.fa-bar-chart:before{content:"\f080"}.fa-hands-bubbles:before{content:"\e05e"}.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before{content:"\f2a8"}.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-square-plus:before{content:"\f0fe"}.fa-plus-square:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-martini-glass:before{content:"\f57b"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-rotate-left:before{content:"\f2ea"}.fa-rotate-back:before{content:"\f2ea"}.fa-rotate-backward:before{content:"\f2ea"}.fa-undo-alt:before{content:"\f2ea"}.fa-table-columns:before{content:"\f0db"}.fa-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly:before{content:"\f472"}.fa-dolly-box:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-minimize:before{content:"\f78c"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angles-right:before{content:"\f101"}.fa-angle-double-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before{content:"\f144"}.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-euro-sign:before{content:"\f153"}.fa-eur:before{content:"\f153"}.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-circle-check:before{content:"\f058"}.fa-check-circle:before{content:"\f058"}.fa-circle-stop:before{content:"\f28d"}.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before{content:"\f568"}.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before{content:"\f59a"}.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-circle-chevron-up:before{content:"\f139"}.fa-chevron-circle-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-sterling-sign:before{content:"\f154"}.fa-gbp:before{content:"\f154"}.fa-pound-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before{content:"\f175"}.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before{content:"\f7c5"}.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before{content:"\f662"}.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-file-import:before{content:"\f56f"}.fa-arrow-right-to-file:before{content:"\f56f"}.fa-square-arrow-up-right:before{content:"\f14c"}.fa-external-link-square:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-empty:before{content:"\f2cb"}.fa-temperature-0:before{content:"\f2cb"}.fa-thermometer-0:before{content:"\f2cb"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before{content:"\f2bb"}.fa-contact-card:before{content:"\f2bb"}.fa-vcard:before{content:"\f2bb"}.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-balance-scale-right:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before{content:"\f5eb"}.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before{content:"\e066"}.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before{content:"\f5c8"}.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before{content:"\f0ee"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before{content:"\f4d8"}.fa-sprout:before{content:"\f4d8"}.fa-left-right:before{content:"\f337"}.fa-arrows-alt-h:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before{content:"\f160"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before{content:"\f76c"}.fa-thunderstorm:before{content:"\f76c"}.fa-text-slash:before{content:"\f87d"}.fa-remove-format:before{content:"\f87d"}.fa-face-smile-wink:before{content:"\f4da"}.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-h:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before{content:"\f0ed"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-chalkboard:before{content:"\f51b"}.fa-blackboard:before{content:"\f51b"}.fa-user-large-slash:before{content:"\f4fa"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before{content:"\f021"}.fa-refresh:before{content:"\f021"}.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-halved:before{content:"\f3ed"}.fa-shield-alt:before{content:"\f3ed"}.fa-book-atlas:before{content:"\f558"}.fa-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before{content:"\f6f1"}.fa-house-damage:before{content:"\f6f1"}.fa-file-zipper:before{content:"\f1c6"}.fa-file-archive:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-martini-glass-empty:before{content:"\f000"}.fa-glass-martini:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"Z"}.fa-person-skiing:before{content:"\f7c9"}.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"A"}.fa-temperature-arrow-down:before{content:"\e03f"}.fa-temperature-down:before{content:"\e03f"}.fa-feather-pointed:before{content:"\f56b"}.fa-feather-alt:before{content:"\f56b"}.fa-p:before{content:"P"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-rectangle-ad:before{content:"\f641"}.fa-ad:before{content:"\f641"}.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-list-ol:before{content:"\f0cb"}.fa-list-1-2:before{content:"\f0cb"}.fa-list-numeric:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-dollar:before{content:"\f53d"}.fa-money-check-alt:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before{content:"\f598"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"?"}.fa-file-signature:before{content:"\f573"}.fa-up-down-left-right:before{content:"\f0b2"}.fa-arrows-alt:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-half-alt:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-whiskey-glass:before{content:"\f7a0"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-won-sign:before{content:"\f159"}.fa-krw:before{content:"\f159"}.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"F"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-taxi:before{content:"\f1ba"}.fa-cab:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before{content:"\f200"}.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before{content:"\f582"}.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before{content:"\f041"}.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-helmet-safety:before{content:"\f807"}.fa-hard-hat:before{content:"\f807"}.fa-hat-hard:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before{content:"\f5a5"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before{content:"\f201"}.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-signs-post:before{content:"\f277"}.fa-map-signs:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"H"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before{content:"\f7d9"}.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-house-user:before{content:"\e1b0"}.fa-home-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-martini-glass-citrus:before{content:"\f561"}.fa-cocktail:before{content:"\f561"}.fa-face-surprise:before{content:"\f5c2"}.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before{content:"\f28b"}.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-whole:before{content:"\f5d1"}.fa-apple-alt:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"R"}.fa-temperature-quarter:before{content:"\f2ca"}.fa-temperature-1:before{content:"\f2ca"}.fa-thermometer-1:before{content:"\f2ca"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll-h:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before{content:"\f049"}.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball:before{content:"\f434"}.fa-basketball-ball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-circle-up:before{content:"\f35b"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-mobile-screen-button:before{content:"\f3cd"}.fa-mobile-alt:before{content:"\f3cd"}.fa-volume-high:before{content:"\f028"}.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before{content:"\f805"}.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before{content:"\f156"}.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before{content:"\f059"}.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-flip:before{content:"\f879"}.fa-phone-alt:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-forward-fast:before{content:"\f050"}.fa-fast-forward:before{content:"\f050"}.fa-face-meh-blank:before{content:"\f5a4"}.fa-meh-blank:before{content:"\f5a4"}.fa-square-parking:before{content:"\f540"}.fa-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before{content:"\f828"}.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before{content:"\f474"}.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before{content:"\f54d"}.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before{content:"\f291"}.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-simple:before{content:"\f55e"}.fa-bus-alt:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before{content:"\f5b3"}.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal:before{content:"\f012"}.fa-signal-5:before{content:"\f012"}.fa-signal-perfect:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-house-chimney:before{content:"\e3af"}.fa-home-lg:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before{content:"\f119"}.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before{content:"\f54f"}.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before{content:"\f0c7"}.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-left:before{content:"\f515"}.fa-sort-up:before{content:"\f0de"}.fa-sort-asc:before{content:"\f0de"}.fa-comment-dots:before{content:"\f4ad"}.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before{content:"\f585"}.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before{content:"\f4c0"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before{content:"\f684"}.fa-praying-hands:before{content:"\f684"}.fa-arrow-rotate-right:before{content:"\f01e"}.fa-arrow-right-rotate:before{content:"\f01e"}.fa-arrow-rotate-forward:before{content:"\f01e"}.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before{content:"\f601"}.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before{content:"\f588"}.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-xmark:before{content:"\f273"}.fa-calendar-times:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-gear:before{content:"\f4fe"}.fa-user-cog:before{content:"\f4fe"}.fa-arrow-up-1-9:before{content:"\f163"}.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-person-digging:before{content:"\f85e"}.fa-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple:before{content:"\f629"}.fa-gauge-simple-med:before{content:"\f629"}.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right:before{content:"\f10e"}.fa-quote-right-alt:before{content:"\f10e"}.fa-shirt:before{content:"\f553"}.fa-t-shirt:before{content:"\f553"}.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before{content:"\f7d7"}.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"J"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-up-right-from-square:before{content:"\f35d"}.fa-external-link-alt:before{content:"\f35d"}.fa-table-cells:before{content:"\f00a"}.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-book-bible:before{content:"\f647"}.fa-bible:before{content:"\f647"}.fa-o:before{content:"O"}.fa-suitcase-medical:before{content:"\f0fa"}.fa-medkit:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-person-dress:before{content:"\f182"}.fa-female:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-business-time:before{content:"\f64a"}.fa-briefcase-clock:before{content:"\f64a"}.fa-table-cells-large:before{content:"\f009"}.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before{content:"\f827"}.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before{content:"\f2a0"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-cake-candles:before{content:"\f1fd"}.fa-birthday-cake:before{content:"\f1fd"}.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angles-up:before{content:"\f102"}.fa-angle-double-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before{content:"\f887"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before{content:"\f0f0"}.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before{content:"\f05a"}.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before{content:"\f162"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before{content:"\f4c1"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-medical:before{content:"\f486"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before{content:"\f15d"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-rotate-left:before{content:"\f0e2"}.fa-arrow-left-rotate:before{content:"\f0e2"}.fa-arrow-rotate-back:before{content:"\f0e2"}.fa-arrow-rotate-backward:before{content:"\f0e2"}.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before{content:"\f0a0"}.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before{content:"\f586"}.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-rectangle-list:before{content:"\f022"}.fa-list-alt:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before{content:"\f7ca"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-train-subway:before{content:"\f239"}.fa-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before{content:"\e1bc"}.fa-indian-rupee:before{content:"\e1bc"}.fa-inr:before{content:"\e1bc"}.fa-crop-simple:before{content:"\f565"}.fa-crop-alt:before{content:"\f565"}.fa-money-bill-1:before{content:"\f3d1"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before{content:"\f30a"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before{content:"\f068"}.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before{content:"\f177"}.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-asl-interpreting:before{content:"\f2a3"}.fa-hands-american-sign-language-interpreting:before{content:"\f2a3"}.fa-gear:before{content:"\f013"}.fa-cog:before{content:"\f013"}.fa-droplet-slash:before{content:"\f5c7"}.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before{content:"\f07a"}.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before{content:"\f148"}.fa-level-up:before{content:"\f148"}.fa-u:before{content:"U"}.fa-square-root-variable:before{content:"\f698"}.fa-square-root-alt:before{content:"\f698"}.fa-clock:before{content:"\f017"}.fa-clock-four:before{content:"\f017"}.fa-backward-step:before{content:"\f048"}.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"S"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-house-chimney-medical:before{content:"\f7f2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-temperature-three-quarters:before{content:"\f2c8"}.fa-temperature-3:before{content:"\f2c8"}.fa-thermometer-3:before{content:"\f2c8"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-half:before{content:"\f242"}.fa-battery-3:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders:before{content:"\f1de"}.fa-sliders-h:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-vertical:before{content:"\f142"}.fa-ellipsis-v:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-right-long:before{content:"\f30b"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-tty:before{content:"\f1e4"}.fa-teletype:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-person-hiking:before{content:"\f6ec"}.fa-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"N"}.fa-cable-car:before{content:"\f7da"}.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before{content:"\f580"}.fa-grin:before{content:"\f580"}.fa-delete-left:before{content:"\f55a"}.fa-backspace:before{content:"\f55a"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-dropper-empty:before{content:"\f1fb"}.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile:before{content:"\f3ce"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-phone:before{content:"\f3ce"}.fa-face-meh:before{content:"\f11a"}.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-skull:before{content:"\f6b7"}.fa-book-dead:before{content:"\f6b7"}.fa-id-card:before{content:"\f2c2"}.fa-drivers-license:before{content:"\f2c2"}.fa-outdent:before{content:"\f03b"}.fa-dedent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-house:before{content:"\f015"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f015"}.fa-home-lg-alt:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"B"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before{content:"\f0ec"}.fa-exchange:before{content:"\f0ec"}.fa-rotate-right:before{content:"\f2f9"}.fa-redo-alt:before{content:"\f2f9"}.fa-rotate-forward:before{content:"\f2f9"}.fa-utensils:before{content:"\f2e7"}.fa-cutlery:before{content:"\f2e7"}.fa-arrow-up-wide-short:before{content:"\f161"}.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-tower-broadcast:before{content:"\f519"}.fa-broadcast-tower:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-up-long:before{content:"\f30c"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before{content:"\f56d"}.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before{content:"\f0e7"}.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-yen-sign:before{content:"\f157"}.fa-cny:before{content:"\f157"}.fa-jpy:before{content:"\f157"}.fa-rmb:before{content:"\f157"}.fa-yen:before{content:"\f157"}.fa-ruble-sign:before{content:"\f158"}.fa-rouble:before{content:"\f158"}.fa-rub:before{content:"\f158"}.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before{content:"\f59c"}.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before{content:"\f884"}.fa-sort-amount-desc:before{content:"\f884"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"<"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before{content:"\f178"}.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-h:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-kit-medical:before{content:"\f479"}.fa-first-aid:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-alt:before{content:"\f09d"}.fa-car:before{content:"\f1b9"}.fa-automobile:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before{content:"\f5da"}.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before{content:"\e040"}.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-square-h:before{content:"\f0fd"}.fa-h-square:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-full:before{content:"\f2c7"}.fa-temperature-4:before{content:"\f2c7"}.fa-thermometer-4:before{content:"\f2c7"}.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-handshake-angle:before{content:"\f4c4"}.fa-hands-helping:before{content:"\f4c4"}.fa-location-dot:before{content:"\f3c5"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:">"}.fa-person-swimming:before{content:"\f5c4"}.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before{content:"\f043"}.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-americas:before{content:"\f57d"}.fa-earth:before{content:"\f57d"}.fa-earth-america:before{content:"\f57d"}.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-empty:before{content:"\f244"}.fa-battery-0:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before{content:"\f625"}.fa-tachometer-alt:before{content:"\f625"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f0f8"}.fa-hospital-wide:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before{content:"\f550"}.fa-reorder:before{content:"\f550"}.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-person-walking-with-cane:before{content:"\f29d"}.fa-blind:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before{content:"\f772"}.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-stacked:before{content:"\f468"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f468"}.fa-link:before{content:"\f0c1"}.fa-chain:before{content:"\f0c1"}.fa-ear-listen:before{content:"\f2a2"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before{content:"\f002"}.fa-search:before{content:"\f002"}.fa-table-tennis-paddle-ball:before{content:"\f45d"}.fa-ping-pong-paddle-ball:before{content:"\f45d"}.fa-table-tennis:before{content:"\f45d"}.fa-person-dots-from-line:before{content:"\f470"}.fa-diagnoses:before{content:"\f470"}.fa-trash-can-arrow-up:before{content:"\f82a"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-pen:before{content:"\f31c"}.fa-file-edit:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-square-pen:before{content:"\f14b"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-square:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-full:before{content:"\f240"}.fa-battery:before{content:"\f240"}.fa-battery-5:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-ul:before{content:"\f0ca"}.fa-list-dots:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before{content:"\f309"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-dome:before{content:"\f752"}.fa-landmark-alt:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-tv:before{content:"\f26c"}.fa-television:before{content:"\f26c"}.fa-tv-alt:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before{content:"\f0ae"}.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before{content:"\f2bd"}.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before{content:"\f5e1"}.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"Y"}.fa-person-snowboarding:before{content:"\f7ce"}.fa-snowboarding:before{content:"\f7ce"}.fa-truck-fast:before{content:"\f48b"}.fa-shipping-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-circle-half-stroke:before{content:"\f042"}.fa-adjust:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before{content:"\f7ba"}.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball:before{content:"\f433"}.fa-baseball-ball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before{content:"\f542"}.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-xmark:before{content:"\f6a9"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-times:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip:before{content:"\f58d"}.fa-grip-horizontal:before{content:"\f58d"}.fa-share-from-square:before{content:"\f14d"}.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before{content:"\e4e0"}.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-square-phone:before{content:"\f098"}.fa-phone-square:before{content:"\f098"}.fa-plus:before{content:"+"}.fa-add:before{content:"+"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-xmark:before{content:"\f00d"}.fa-close:before{content:"\f00d"}.fa-multiply:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-arrows-up-down-left-right:before{content:"\f047"}.fa-arrows:before{content:"\f047"}.fa-chalkboard-user:before{content:"\f51c"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left:before{content:"\f10d"}.fa-quote-left-alt:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before{content:"\f829"}.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"="}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-shekel-sign:before{content:"\f20b"}.fa-ils:before{content:"\f20b"}.fa-shekel:before{content:"\f20b"}.fa-sheqel:before{content:"\f20b"}.fa-sheqel-sign:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before{content:"\f87c"}.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before{content:"\f4d9"}.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet:before{content:"\f3fb"}.fa-tablet-android:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-rear:before{content:"\f5de"}.fa-car-alt:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-2:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before{content:"\f77d"}.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before{content:"%"}.fa-percentage:before{content:"%"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before{content:"\f118"}.fa-smile:before{content:"\f118"}.fa-thumbtack:before{content:"\f08d"}.fa-thumb-tack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before{content:"\f683"}.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before{content:"\f2f1"}.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-gears:before{content:"\f085"}.fa-cogs:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before{content:"\f584"}.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender:before{content:"\f225"}.fa-transgender-alt:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before{content:"\f149"}.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-simple:before{content:"\f3ff"}.fa-ticket-alt:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angles-left:before{content:"\f100"}.fa-angle-double-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before{content:"\f1da"}.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before{content:"\f583"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-file-export:before{content:"\f56e"}.fa-arrow-right-from-file:before{content:"\f56e"}.fa-shield:before{content:"\f132"}.fa-shield-blank:before{content:"\f132"}.fa-arrow-up-short-wide:before{content:"\f885"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before{content:"\f450"}.fa-golf-ball:before{content:"\f450"}.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-wand-magic:before{content:"\f0d0"}.fa-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-empty:before{content:"\f5ce"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-person-biking:before{content:"\f84a"}.fa-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before{content:"\e47b"}.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before{content:"\f2d3"}.fa-times-square:before{content:"\f2d3"}.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"#"}.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-expand-alt:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"T"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-up-down:before{content:"\f338"}.fa-arrows-alt-v:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before{content:"\f666"}.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before{content:"\f055"}.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before{content:"\f58b"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-link-slash:before{content:"\f127"}.fa-chain-broken:before{content:"\f127"}.fa-chain-slash:before{content:"\f127"}.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before{content:"\f882"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-flame-curved:before{content:"\f7e4"}.fa-fire-alt:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before{content:"\f687"}.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-face-angry:before{content:"\f556"}.fa-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-rss:before{content:"\f09e"}.fa-feed:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale:before{content:"\f24e"}.fa-gauge-simple-high:before{content:"\f62a"}.fa-tachometer:before{content:"\f62a"}.fa-tachometer-fast:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop:before{content:"\f390"}.fa-desktop-alt:before{content:"\f390"}.fa-m:before{content:"M"}.fa-table-list:before{content:"\f00b"}.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before{content:"\f7cd"}.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-4:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-hand-fist:before{content:"\f6de"}.fa-fist-raised:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before{content:"\f3e0"}.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before{content:"\f7a2"}.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before{content:"\f59d"}.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-xmark:before{content:"\f410"}.fa-rectangle-times:before{content:"\f410"}.fa-times-rectangle:before{content:"\f410"}.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before{content:"\f66a"}.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-triangle-exclamation:before{content:"\f071"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-share:before{content:"\f064"}.fa-arrow-turn-right:before{content:"\f064"}.fa-mail-forward:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-right-left:before{content:"\f362"}.fa-exchange-alt:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before{content:"\f53b"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before{content:"\f2a7"}.fa-sign-language:before{content:"\f2a7"}.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-water-ladder:before{content:"\f5c5"}.fa-ladder-water:before{content:"\f5c5"}.fa-swimming-pool:before{content:"\f5c5"}.fa-arrows-up-down:before{content:"\f07d"}.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before{content:"\f57f"}.fa-grimace:before{content:"\f57f"}.fa-wheelchair-move:before{content:"\e2ce"}.fa-wheelchair-alt:before{content:"\e2ce"}.fa-turn-down:before{content:"\f3be"}.fa-level-down-alt:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-square-envelope:before{content:"\f199"}.fa-envelope-square:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-bandage:before{content:"\f462"}.fa-band-aid:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before{content:"\f057"}.fa-times-circle:before{content:"\f057"}.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before{content:"\f57e"}.fa-globe-asia:before{content:"\f57e"}.fa-id-card-clip:before{content:"\f47f"}.fa-id-card-alt:before{content:"\f47f"}.fa-magnifying-glass-plus:before{content:"\f00e"}.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-hand-dots:before{content:"\f461"}.fa-allergies:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-mug-saucer:before{content:"\f0f4"}.fa-coffee:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before{content:"\f010"}.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-large:before{content:"\f406"}.fa-user-alt:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before{content:"\f249"}.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before{content:"\f5b4"}.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"!"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-turkish-lira-sign:before{content:"\e2bb"}.fa-try:before{content:"\e2bb"}.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before{content:"$"}.fa-dollar:before{content:"$"}.fa-usd:before{content:"$"}.fa-x:before{content:"X"}.fa-magnifying-glass-dollar:before{content:"\f688"}.fa-search-dollar:before{content:"\f688"}.fa-users-gear:before{content:"\f509"}.fa-users-cog:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-building-columns:before{content:"\f19c"}.fa-bank:before{content:"\f19c"}.fa-institution:before{content:"\f19c"}.fa-museum:before{content:"\f19c"}.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"D"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before{content:"\f630"}.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt:before{content:"\f4c6"}.fa-jet-fighter:before{content:"\f0fb"}.fa-fighter-jet:before{content:"\f0fb"}.fa-square-share-nodes:before{content:"\f1e1"}.fa-share-alt-square:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video:before{content:"\f03d"}.fa-video-camera:before{content:"\f03d"}.fa-graduation-cap:before{content:"\f19d"}.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-turn-up:before{content:"\f3bf"}.fa-level-up-alt:before{content:"\f3bf"}.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}:root,:host{--fa-style-family-brands: "Font Awesome 6 Brands";--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fa-brands-400.0ad87b221b2a302b.woff2) format("woff2"),url(fa-brands-400.aaa8e2177da4fbb8.ttf) format("truetype")}.fab,.fa-brands{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-square-js:before{content:"\f3b9"}.fa-js-square:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-square-reddit:before{content:"\f1a2"}.fa-reddit-square:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-square-instagram:before{content:"\e055"}.fa-instagram-square:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-square-hacker-news:before{content:"\f3af"}.fa-hacker-news-square:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-square-snapchat:before{content:"\f2ad"}.fa-snapchat-square:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before{content:"\f2aa"}.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-square-dribbble:before{content:"\f397"}.fa-dribbble-square:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before{content:"\f081"}.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before{content:"\f431"}.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-wpressr:before{content:"\f3e4"}.fa-rendact:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before{content:"\f1b7"}.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before{content:"\f194"}.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-flag:before{content:"\f2b4"}.fa-font-awesome-logo-full:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-square-github:before{content:"\f092"}.fa-github-square:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-square-gitlab:before{content:"\e5ae"}.fa-gitlab-square:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-square-odnoklassniki:before{content:"\f264"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-square-pinterest:before{content:"\f0d3"}.fa-pinterest-square:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-square-google-plus:before{content:"\f0d4"}.fa-google-plus-square:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before{content:"\f169"}.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before{content:"\e080"}.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-square-pied-piper:before{content:"\e01e"}.fa-pied-piper-square:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-square-facebook:before{content:"\f082"}.fa-facebook-square:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-square-lastfm:before{content:"\f203"}.fa-lastfm-square:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before{content:"\e2d0"}.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-square-behance:before{content:"\f1b5"}.fa-behance-square:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-square-git:before{content:"\f1d2"}.fa-git-square:before{content:"\f1d2"}.fa-square-tumblr:before{content:"\f174"}.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before{content:"\f40c"}.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.0c4a336f909e1eaa.woff2) format("woff2"),url(fa-regular-400.f7cc78e99baa2bf5.ttf) format("truetype")}.far,.fa-regular{font-weight:400}/*! - * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2022 Fonticons, Inc. - */:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.71ed02b437225dbb.woff2) format("woff2"),url(fa-solid-900.43a87668a828405a.ttf) format("truetype")}.fas,.fa-solid{font-weight:900}.switch{font-size:1rem;position:relative}.switch input{position:absolute;height:1px;width:1px;background:none;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;padding:0}.switch input+label{position:relative;min-width:calc((1.5em + .75rem + 2px)*1.6);border-radius:calc((1.5em + .75rem + 2px)*.8);height:calc((1.5em + .75rem + 2px)*.8);line-height:calc((1.5em + .75rem + 2px)*.8);display:inline-block;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;vertical-align:middle;text-indent:calc((1.5em + .75rem + 2px)*1.6 + .5rem)}.switch input+label:before,.switch input+label:after{content:"";position:absolute;top:0;left:0;width:calc((1.5em + .75rem + 2px)*1.6);bottom:0;display:block}.switch input+label:before{right:0;background-color:#dee2e6;border-radius:calc((1.5em + .75rem + 2px)*.8);transition:.2s all}.switch input+label:after{top:2px;left:2px;width:calc((1.5em + .75rem + 2px)*.8 - 4px);height:calc((1.5em + .75rem + 2px)*.8 - 4px);border-radius:50%;background-color:#fff;transition:.2s all}.switch input:checked+label:before{background-color:#0073dd}.switch input:checked+label:after{margin-left:calc((1.5em + .75rem + 2px)*.8)}.switch input:focus+label:before{outline:none;box-shadow:0 0 0 .25rem #0073dd40}.switch input:disabled+label{color:#868e96;cursor:not-allowed}.switch input:disabled+label:before{background-color:#e9ecef}.switch.switch-sm{font-size:.875rem}.switch.switch-sm input+label{min-width:calc((1.5em + .5rem + 2px)*1.6);height:calc((1.5em + .5rem + 2px)*.8);line-height:calc((1.5em + .5rem + 2px)*.8);text-indent:calc((1.5em + .5rem + 2px)*1.6 + .5rem)}.switch.switch-sm input+label:before{width:calc((1.5em + .5rem + 2px)*1.6)}.switch.switch-sm input+label:after{width:calc((1.5em + .5rem + 2px)*.8 - 4px);height:calc((1.5em + .5rem + 2px)*.8 - 4px)}.switch.switch-sm input:checked+label:after{margin-left:calc((1.5em + .5rem + 2px)*.8)}.switch.switch-lg{font-size:1.25rem}.switch.switch-lg input+label{min-width:calc((1.5em + 1rem + 2px)*1.6);height:calc((1.5em + 1rem + 2px)*.8);line-height:calc((1.5em + 1rem + 2px)*.8);text-indent:calc((1.5em + 1rem + 2px)*1.6 + .5rem)}.switch.switch-lg input+label:before{width:calc((1.5em + 1rem + 2px)*1.6)}.switch.switch-lg input+label:after{width:calc((1.5em + 1rem + 2px)*.8 - 4px);height:calc((1.5em + 1rem + 2px)*.8 - 4px)}.switch.switch-lg input:checked+label:after{margin-left:calc((1.5em + 1rem + 2px)*.8)}.switch+.switch{margin-left:1rem}.blink{color:red;animation:blink 2s steps(5,start) infinite;-webkit-animation:blink 1s steps(5,start) infinite}@keyframes blink{to{visibility:hidden}}button[disabled]{cursor:not-allowed}ng-select .ng-dropdown-panel{width:auto!important}a{text-decoration:none}.card-footer{padding:2;color:transparent;background-color:transparent;border-top:0}.p-datatable .p-sortable-column .p-sortable-column-icon{margin-left:.2rem}.p-inputtext{padding:.375rem .75rem} From 1a829b1b4c2338cb5db66ae31d67926049908430 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 18 Mar 2024 22:05:40 +0100 Subject: [PATCH 124/301] Plugin wip-develop version 7.2.034 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index a468a5419..57d4775a6 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.033"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.034"} \ No newline at end of file From 1893410c15f81bc22d3d8f88a19278d6f8582060 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 18 Mar 2024 22:11:13 +0100 Subject: [PATCH 125/301] When device is disabled, make sure to set the CheckParam flag to False --- Modules/heartbeat.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 3d455bfc2..f3b06b8a0 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -843,6 +843,7 @@ def processListOfDevices(self, Devices): if "Param" in self.ListOfDevices[NWKID] and "Disabled" in self.ListOfDevices[NWKID]["Param"]: if self.ListOfDevices[NWKID]["Param"]["Disabled"] and self.ListOfDevices[NWKID]["Health"] == "Disabled": + self.ListOfDevices[NWKID]["CheckParam"] = False continue if not self.ListOfDevices[NWKID]["Param"]["Disabled"] and self.ListOfDevices[NWKID]["Health"] == "Disabled": From 3d2ae227ef78aed950129d50cf21e1c7f65fedfe Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 18 Mar 2024 22:11:35 +0100 Subject: [PATCH 126/301] Plugin wip-develop version 7.2.035 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 57d4775a6..4b6e48947 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.034"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.035"} \ No newline at end of file From 09b26e5d1b4a6e5056170b626f50356305e78f5f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 21 Mar 2024 07:49:07 +0100 Subject: [PATCH 127/301] update footer color --- www/z4d/3rdpartylicenses.txt | 50 ----------------------------- www/z4d/index.html | 5 ++- www/z4d/main.9ba23901ff72f37a.js | 1 + www/z4d/main.ed02e8e4f42d3a49.js | 1 - www/z4d/styles.00f90ba6d3590bca.css | 13 -------- www/z4d/styles.529f7cdd97c836ce.css | 13 ++++++++ 6 files changed, 16 insertions(+), 67 deletions(-) create mode 100644 www/z4d/main.9ba23901ff72f37a.js delete mode 100644 www/z4d/main.ed02e8e4f42d3a49.js delete mode 100644 www/z4d/styles.00f90ba6d3590bca.css create mode 100644 www/z4d/styles.529f7cdd97c836ce.css diff --git a/www/z4d/3rdpartylicenses.txt b/www/z4d/3rdpartylicenses.txt index f0beee021..2a4369f29 100644 --- a/www/z4d/3rdpartylicenses.txt +++ b/www/z4d/3rdpartylicenses.txt @@ -156,31 +156,6 @@ SOFTWARE. angular-highcharts MIT -bootstrap -MIT -The MIT License (MIT) - -Copyright (c) 2011-2024 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - core-js MIT Copyright (c) 2014-2024 Denis Pushkarev @@ -626,31 +601,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -primeicons -MIT -MIT License - -Copyright (c) 2018-2021 PrimeTek - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - primeng MIT diff --git a/www/z4d/index.html b/www/z4d/index.html index afc27b2c7..6a3112048 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -11,8 +11,7 @@ - - + |--!>|)/g,vx="\u200b$1\u200b";const md=new Map;let _x=0;const Lp="__ngContext__";function Nr(t,s){mr(s)?(t[Lp]=s[rc],function wx(t){md.set(t[rc],t)}(s)):t[Lp]=s}function bg(t){return t.ownerDocument.defaultView}function Ix(t){return t.ownerDocument}function ha(t){return t instanceof Function?t():t}var yg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(yg||{});let Dm;function Em(t,s){return Dm(t,s)}function jp(t,s,h,P,Q){if(null!=P){let ge,ke=!1;Vs(P)?ge=P:mr(P)&&(ke=!0,P=P[Gn]);const Le=Ts(P);0===t&&null!==h?null==Q?Bx(s,h,Le):_u(s,h,Le,Q||null,!0):1===t&&null!==h?_u(s,h,Le,Q||null,!0):2===t?function vd(t,s,h){const P=zp(t,s);P&&function Om(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function Hp(t,s,h,P,Q){const ge=h[Fo];ge!==Ts(h)&&jp(s,t,P,ge,Q);for(let Le=js;Les.replace(pg,vx))}(s))}function Am(t,s,h){return t.createElement(s,h)}function zh(t,s){s[_o].changeDetectionScheduler?.notify(1),Nm(t,s,s[en],2,null,null)}function Sb(t,s){const h=t[yl],P=h.indexOf(s);h.splice(P,1)}function Vp(t,s){if(t.length<=js)return;const h=js+s,P=t[h];if(P){const Q=P[Ta];null!==Q&&Q!==t&&Sb(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=ba(t,js+s);!function Rw(t,s){zh(t,s),s[Gn]=null,s[ks]=null}(P[pi],P);const ke=ge[Co];null!==ke&&ke.detachView(ge[pi]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function xg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&Nm(t,s,h,3,null,null),function Tb(t){let s=t[Ro];if(!s)return Im(t[pi],t);for(;s;){let h=null;if(mr(s))h=s[Ro];else{const P=s[js];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)mr(s)&&Im(s[pi],s),s=s[Yn];null===s&&(s=t),mr(s)&&Im(s[pi],s),h=s&&s[gs]}s=h}}(s)}}function Im(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[wa]=null);const Q=s[No];if(null!==Q){s[No]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Oo.None||ge===Oo.Emulated)return null}return $r(P,h)}}function _u(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function Bx(t,s,h){t.appendChild(s,h)}function jx(t,s,h,P,Q){null!==P?_u(t,s,h,P,Q):Bx(t,s,h)}function zp(t,s){return t.parentNode(s)}function Gp(t,s,h){return _g(t,s,h)}function Vx(t,s,h){return 40&t.type?$r(t,h):null}let Mb,_g=Vx;function Pm(t,s){_g=t,Mb=s}function Lm(t,s,h,P){const Q=kb(t,P,s),ge=s[en],Le=Gp(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zesn&&Ab(t,s,sn,!1),Bo(ke?2:0,Q),h(P,Q)}finally{uc(ge),Bo(ke?3:1,Q)}}function Pb(t,s,h){if(Gl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function Yx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Zi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Kx(P,h,Je,Le,ze):Kx(P,h,Je,Le)}return P}function Kx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=$r(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?(Wm(t,h,dt,P,Q),sa(s)&&function Hw(t,s){const h=jo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function Gw(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Mg(t,s,h,P){if(hc()){const Q=null===P?null:{"":-1},ge=function $w(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,Tg(t,h,Q.hostVars,In),Q)}function Tc(t,s,h,P,Q,ge){const ke=$r(t,s);!function Gm(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function ys(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{Ch(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function $b(t){return Yb(t[Ro])}function Xb(t){return Yb(t[gs])}function Yb(t){for(;null!==t&&!Vs(t);)t=t[gs];return t}const Kb=100;function ef(t,s=!0,h=0){const P=t[_o],Q=P.rendererFactory;Q.begin?.();try{!function o_(t,s){Ag(t,s);let h=0;for(;Gc(t);){if(h===Kb)throw new me(103,!1);h++,Ag(t,1)}}(t,h)}catch(ke){throw s&&Zp(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function a_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[_o].inlineEffectRunner?.flush(),Vd(s);let ke=null,Le=null;(function l_(t){return 2!==t.type})(t)&&(Le=function t_(t){return t[Ua]??function i_(t){const s=Ym.pop()??Object.create(Wb);return s.lView=t,s}(t)}(s),ke=L(Le));try{ap(s),function dc(t){return on.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&Ux(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&od(s,Ct,0,null),Eh(s,0)}if(function c_(t){for(let s=$b(t);null!==s;s=Xb(s)){if(!(s[zi]&lc.HasTransplantedViews))continue;const h=s[yl];for(let P=0;P-1&&(Vp(s,P),ba(h,P))}this._attachedToViewContainer=!1}xg(this._lView[pi],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){tf(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){_h(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,ef(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,zh(this._lView[pi],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,_h(this._lView)}}let Mu=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=p_}return t})();const d_=Mu,u_=class extends d_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=qp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new nf(Q)}};function p_(){return Ig(hs(),ni())}function Ig(t,s){return 4&t.type?new u_(s,t,xc(t,s)):null}let qm=()=>null;function gh(t,s){return qm(t,s)}class Au{}class P_{}class af{}class L_{resolveComponentFactory(s){throw function Iu(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let lf=(()=>{class t{static#e=this.NULL=new L_}return t})();class Qm{}let R_=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function cv(){const t=ni(),h=jo(hs().index,t);return(mr(h)?h:t)[en]}()}return t})(),hv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Rg={};function dv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const Jm=new Set;function Sc(t){Jm.has(t)||(Jm.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function cf(...t){}class kr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new aa(!1),this.onMicrotaskEmpty=new aa(!1),this.onStable=new aa(!1),this.onError=new aa(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function uv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function j_(t){const s=()=>{!function B_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,wd(t),t.isCheckStableRunning=!0,e0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),wd(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function s0(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return t0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),n0(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return t0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),n0(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,wd(t),e0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(kr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,F_,cf,cf);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const F_={};function e0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function wd(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function t0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function n0(t){t._nesting--,e0(t)}class V_{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new aa,this.onMicrotaskEmpty=new aa,this.onStable=new aa,this.onError=new aa}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Wh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Wh||{});const r0={destroy(){}};function Fg(t,s){!s&&Ge();const h=s?.injector??Qi(zo);if(!function bd(t){return"browser"===(t??Qi(zo)).get(jh)}(h))return r0;Sc("NgAfterNextRender");const P=h.get(Bg),Q=P.handler??=new fv,ge=s?.phase??Wh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(yc).onDestroy(ke),ze=Ha(h,()=>new a0(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class a0{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=Qi(kr),this.errorHandler=Qi(Za,{optional:!0}),Qi(Au,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class fv{constructor(){this.executingCallbacks=!1,this.buckets={[Wh.EarlyRead]:new Set,[Wh.Write]:new Set,[Wh.MixedReadWrite]:new Set,[Wh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let Bg=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function Td(t){return!!Zs(t)}function $h(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Gx(t,h,ge.join(" "))}}(Ht,Mo,li,P),void 0!==h&&function U_(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=W_}return t})();function W_(){return yv(hs(),ni())}const $_=zg,bv=class extends $_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return xc(this._hostTNode,this._hostLView)}get injector(){return new ar(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zd(this._hostTNode,this._hostLView);if(qc(s)){const h=fc(s,this._hostLView),P=br(s);return new ar(h[pi].data[P+8],h)}return new ar(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=vv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-js}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=gh(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,ku(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Oi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new kd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(xo,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=gh(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,ku(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Hf(t){return Vs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new bv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Qp(ke,Q,ge,P),s.attachToViewContainerRef(),Zo(d0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=vv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);P&&(ba(d0(this._lContainer),h),xg(P[pi],P))}detach(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);return P&&null!=ba(d0(this._lContainer),h)?new nf(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function vv(t){return t[8]}function d0(t){return t[8]||(t[8]=[])}function yv(t,s){let h;const P=s[t.index];return Vs(P)?h=P:(h=Tu(P,s,null,t),s[t.index]=h,Eg(s,h)),Hg(h,s,t,P),new bv(h,t,s)}let Hg=function Cv(t,s,h,P){if(t[Fo])return;let Q;Q=8&h.type?Ts(P):function Gg(t,s){const h=t[en],P=h.createComment(""),Q=$r(s,t);return _u(h,zp(h,Q),P,function jw(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Fo]=Q},xv=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=js;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=o1.bind(h),h}function o1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function a1(t){return function s1(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function zv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Wr(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=y0(t.inputs),ke.inputTransforms=y0(t.inputTransforms),ke.declaredInputs=y0(t.declaredInputs),ke.outputs=y0(t.outputs);const Le=Q.hostBindings;Le&&ff(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&y1(t,ze),Je&&bT(t,Je),b1(t,Q),kt(t.outputs,Q.outputs),Wr(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function b1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function y0(t){return t===Ys?{}:t===Mn?[]:t}function y1(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function bT(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function ff(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function Gv(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Mt(Q),inputs:Ys,outputs:Ys}:{directive:Mt(Q.directive),inputs:Hv(Q.inputs),outputs:Hv(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=x1,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function x1(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);_T(Q.declaredInputs,P.inputs),x1(Q,s,h),h.set(Q,P),s.push(Q)}}function Hv(t){if(void 0===t||0===t.length)return Ys;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Uv extends w1{constructor(s){super(),this.moduleType=s}create(s){return new x0(this.moduleType,s,[])}}class S1 extends Dd{constructor(s){super(),this.componentFactoryResolver=new df(this),this.instance=null;const h=new _a([...s.providers,{provide:Dd,useValue:this},{provide:lf,useValue:this.componentFactoryResolver}],s.parent||yo(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function _0(t,s,h=null){return new S1({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let gf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $g(t){return!!Wv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Wv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function mh(t,s,h){return t[s]=h}function mf(t,s){return t[s]}function Fr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Ed(t,s,h,P){const Q=Fr(t,s,h);return Fr(t,s+1,P)||Q}function C0(t,s,h,P,Q){const ge=Ed(t,s,h,P);return Fr(t,s+2,Q)||ge}function Ql(t,s,h,P,Q,ge){const ke=Ed(t,s,h,P);return Ed(t,s+2,Q,ge)||ke}function bf(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=xn(),dt=t+sn,Ct=Je.firstCreatePass?function k1(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Wp(s,t,4,ke||null,$a(Je,Le));Mg(s,h,dt,$a(Je,ze)),Yc(s,dt);const Ct=dt.tView=Rb(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];oa(Ct,!1);const jt=$v(Je,ze,Ct,t);Xc()&&Lm(Je,ze,jt,Ct),Nr(jt,ze);const Ht=Tu(jt,ze,jt,Ct);return ze[dt]=Ht,Eg(ze,Ht),function _v(t,s,h){return xv(t,s,h)}(Ht,Ct,ze),xl(Ct)&&Lb(Je,ze,Ct),null!=ke&&Sg(ze,Ct,Le),bf}let $v=function M1(t,s,h,P){return Vo(!0),s[en].createComment("")};function ay(t,s,h,P){const Q=ni();return Fr(Q,ka(),s)&&(xn(),Tc(Os(),Q,t,s,h,P)),ay}function Tf(t,s,h,P){return Fr(t,ka(),h)?s+Ki(h)+P:In}function D0(t,s){return t<<17|s<<2}function Id(t){return t>>17&32767}function py(t){return 2|t}function Hu(t){return(131068&t)>>2}function E0(t,s){return-131069&t|s<<2}function fy(t){return 1|t}function eC(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Id(Q):Hu(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];sS(t[ke],s)&&(Le=!0,t[ke+1]=P?fy(Je):py(Je)),ke=P?Id(Je):Hu(Je)}Le&&(t[h+1]=P?py(Q):fy(Q))}function sS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Hr(t,s)>=0}const po={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function tC(t){return t.substring(po.key,po.keyEnd)}function rS(t){return t.substring(po.value,po.valueEnd)}function iC(t,s){const h=po.textEnd;return h===s?-1:(s=po.keyEnd=function lS(t,s,h){for(;s32;)s++;return s}(t,po.key=s,h),Mf(t,s,h))}function nC(t,s){const h=po.textEnd;let P=po.key=Mf(t,s,h);return h===P?-1:(P=po.keyEnd=function cS(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=gy(t,P,h),P=po.value=Mf(t,P,h),P=po.valueEnd=function hS(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),gy(t,P,h))}function sC(t){po.key=0,po.keyEnd=0,po.value=0,po.valueEnd=0,po.textEnd=t.length}function Mf(t,s,h){for(;s=0;h=nC(s,h))xy(t,tC(s),rS(s))}function by(t){el(_y,Dc,t,!0)}function Dc(t,s){for(let h=function oS(t){return sC(t),iC(t,Mf(t,0,po.textEnd))}(s);h>=0;h=iC(s,h))Xs(t,tC(s),!0)}function Pl(t,s,h,P){const Q=ni(),ge=xn(),ke=kl(2);ge.firstUpdatePass&&Uu(ge,t,ke,P),s!==In&&Fr(Q,ke,s)&&I0(ge,ge.data[Xr()],Q,Q[en],t,Q[ke+1]=function wy(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(Al(t)))),t}(s,h),P,ke)}function el(t,s,h,P){const Q=xn(),ge=kl(2);Q.firstUpdatePass&&Uu(Q,null,ge,P);const ke=ni();if(h!==In&&Fr(ke,ge,h)){const Le=Q.data[Xr()];if(oC(Le,P)&&!Od(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Mc(Q,Le,ke,h,P)}else!function uS(t,s,h,P,Q,ge,ke,Le){Q===In&&(Q=Mn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function Uu(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Xr()],ke=Od(t,h);oC(ge,P)&&null===s&&!ke&&(s=!1),s=function wn(t,s,h,P){const Q=kh(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Wu(h=Jg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Jg(Q,t,s,h,P),null===ge){let ze=function vy(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Hu(P))return t[Id(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Jg(null,t,s,ze[1],P),ze=Wu(ze,s.attrs,P),function Df(t,s,h,P){t[Id(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function A0(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Id(t[Le+1]);t[P+1]=D0(jt,Le),0!==jt&&(t[jt+1]=E0(t[jt+1],P)),t[Le+1]=function tS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=D0(Le,0),0!==Le&&(t[Le+1]=E0(t[Le+1],P)),Le=P;else t[P+1]=D0(ze,0),0===Le?Le=P:t[ze+1]=E0(t[ze+1],P),ze=P;Je&&(t[P+1]=py(t[P+1])),eC(t,dt,P,!0),eC(t,dt,P,!1),function nS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Hr(ge,s)>=0&&(h[P+1]=fy(h[P+1]))}(s,dt,t,P,ge),ke=D0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Jg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===In&&(jt=Ct?Mn:void 0);let Ht=Ct?to(jt,P):dt===P?jt:void 0;if(Je&&!O0(Ht)&&(Ht=to(ze,P)),O0(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Id(Kt):Hu(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=to(ze,P))}return Le}function O0(t){return void 0!==t}function oC(t,s){return!!(t.flags&(s?8:16))}function aC(t,s,h){el(Xs,Dc,Tf(ni(),t,s,h),!0)}class L0{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function em(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function Pd(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Ec(t,s,h,P,Q){if(Pd(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function tm(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class R0{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Af(t,s,h){Sc("NgControlFlow");const P=ni(),Q=ka(),ge=B0(P,sn+t);if(Fr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=Of(P[pi],sn+s),Je=gh(ge,ze.tView.ssrId);Qp(ge,qp(P,ze,h,{dehydratedView:Je}),0,ku(ze,Je))}}finally{re(Le)}}else{const Le=Hb(ge,0);void 0!==Le&&(Le[ms]=h)}}class lC{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-js}}function If(t,s){return s}class cC{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function N0(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Sc("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new cC(Ht,li);Kt[sn+t]=bi,bf(t+1,s,h,P,Q,ge),Ht&&bf(t+2,ze,Je,dt,Ct,jt)}class hC extends L0{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-js}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[or];this.needsIndexUpdate||=s!==this.length,Qp(this.lContainer,h,s,ku(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function dC(t,s){return Vp(t,s)}(this.lContainer,s)}create(s,h){const P=gh(this.lContainer,this.templateTNode.tView.ssrId);return qp(this.hostLView,this.templateTNode,new lC(this.lContainer,h,s),{dehydratedView:P})}destroy(s){xg(s[pi],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=ka(),ze=0===ke.length;if(Fr(P,Le,ze)){const Je=h+2,dt=B0(P,Je);if(ze){const Ct=Of(Q,Je),jt=gh(dt,Ct.tView.ssrId);Qp(dt,qp(P,Ct,void 0,{dehydratedView:jt}),0,ku(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function B0(t,s){return t[s]}function Of(t,s){return xh(t,s)}function Xu(t,s,h,P){const Q=ni(),ge=xn(),ke=sn+t,Le=Q[en],ze=ge.firstCreatePass?function Dy(t,s,h,P,Q,ge){const ke=s.consts,ze=Wp(s,t,2,P,$a(ke,Q));return Mg(s,h,ze,$a(ke,ge)),null!==ze.attrs&&$h(ze,ze.attrs,!1),null!==ze.mergedAttrs&&$h(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=V0(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=xl(ze);return oa(ze,!0),Gh(Le,Je,ze),!function Xg(t){return!(32&~t.flags)}(ze)&&Xc()&&Lm(ge,Q,Je,ze),0===function Tl(){return on.lFrame.elementDepthCount}()&&Nr(Je,Q),function id(){on.lFrame.elementDepthCount++}(),dt&&(Lb(ge,Q,ze),Pb(ge,ze,Q)),null!==P&&Sg(Q,ze),Xu}function im(){let t=hs();Bd()?jd():(t=t.parent,oa(t,!1));const s=t;(function Fd(t){return on.skipHydrationRootTNode===t})(s)&&function pp(){on.skipHydrationRootTNode=null}(),function Wf(){on.lFrame.elementDepthCount--}();const h=xn();return h.firstCreatePass&&(Yc(h,t),Gl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function $d(t){return!!(8&t.flags)}(s)&&Mc(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Ih(t){return!!(16&t.flags)}(s)&&Mc(h,s,ni(),s.stylesWithoutHost,!1),im}function j0(t,s,h,P){return Xu(t,s,h,P),im(),j0}let V0=(t,s,h,P,Q,ge)=>(Vo(!0),Am(P,Q,function Ud(){return on.lFrame.currentNamespace}()));function Pf(t,s,h){const P=ni(),Q=xn(),ge=t+sn,ke=Q.firstCreatePass?function uC(t,s,h,P,Q){const ge=s.consts,ke=$a(ge,P),Le=Wp(s,t,8,"ng-container",ke);return null!==ke&&$h(Le,ke,!0),Mg(s,h,Le,$a(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];oa(ke,!0);const Le=Ay(Q,P,ke,t);return P[ge]=Le,Xc()&&Lm(Q,P,Le,ke),Nr(Le,P),xl(ke)&&(Lb(Q,P,ke),Pb(Q,ke,P)),null!=h&&Sg(P,ke),Pf}function nm(){let t=hs();const s=xn();return Bd()?jd():(t=t.parent,oa(t,!1)),s.firstCreatePass&&(Yc(s,t),Gl(t)&&s.queries.elementEnd(t)),nm}function Ey(t,s,h){return Pf(t,s,h),nm(),Ey}let Ay=(t,s,h,P)=>(Vo(!0),wb(s[en],""));function pC(){return ni()}function Iy(t,s,h){const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!0),Iy}function Oy(t,s,h){const P=ni();if(Fr(P,ka(),s)){const ge=xn(),ke=Os();Qa(ge,ke,P,t,s,Um(kh(ge.data),ke,P),h,!0)}return Oy}const Yu=void 0;var CS=["en",[["a","p"],["AM","PM"],Yu],[["AM","PM"],Yu,Yu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yu,"{1} 'at' {0}",Yu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function _S(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let Ku={};function z0(t){const s=function TS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=gC(s);if(h)return h;const P=s.split("-")[0];if(h=gC(P),h)return h;if("en"===P)return CS;throw new me(701,!1)}function fC(t){return z0(t)[Lf.PluralCase]}function gC(t){return t in Ku||(Ku[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),Ku[t]}var Lf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Lf||{});const Rf="en-US",G0={marker:"element"},H0={marker:"ICU"};var da=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(da||{});let mC=Rf;function vC(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?Vx(t,0,h):Ts(h[Q])}function Py(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];xC(P)||ES(P,s)&&null===AS(P)&&_C(P,s.index)}}function xC(t){return!(64&t.type)}function ES(t,s){return xC(s)||t.index>s.index}function AS(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function _C(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Pm(vC,Py),t.insertBeforeIndex=s)}function CC(t,s,h){const P=Ob(t,h,64,null,null);return yC(s,P),P}let Nf=(t,s,h,P)=>(Vo(!0),function Ly(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return wb(P,s);case Node.TEXT_NODE:return Cb(P,s);case Node.ELEMENT_NODE:return Am(P,s,null)}}(t,h,P));function FS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function U0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Mn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[pi].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const X0=/\ufffd(\d+):?\d*\ufffd/gi,jS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,am="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,LC=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,VS=/\uE500/g;function Fy(t,s,h,P,Q,ge,ke){const Le=Tg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function Y0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(jC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function VC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=ib(Ho()).getInertBodyElement(Le),Kt=_m(Ht)||Ht;return Kt?jy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function jy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=Tg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(vm.hasOwnProperty(bi)){K0(ge,G0,bi,Je,Kt),s.data[Kt]=bi;const xs=li.attributes;for(let Mo=0;Mo>>da.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=Nf(t,dt,s[ge],(ke&da.COMMENT)===da.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Xc()),Je&&null!==h&&jt&&_u(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),mp(!0)}function ce(t,s,h){m(t,s,h),function W(){mp(!1)}()}function gt(t,s,h,P){const Q=ni(),ge=xn(),ke=hs();return Ut(ge,Q,Q[en],ke,t,s,P),gt}function Ut(t,s,h,P,Q,ge,ke){const Le=xl(P),Je=t.firstCreatePass&&Vb(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=$r(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?xs=>ke(Ts(xs[P.index])):P.index;let yn=null;if(!ke&&Le&&(yn=function Pt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==yn)(yn.__ngLastListenerFn__||yn).__ngNextListenerFn__=ge,yn.__ngLastListenerFn__=ge,jt=!1;else{ge=hi(P,s,dt,ge,!1);const xs=h.listen(bi,Q,ge);Ct.push(ge,xs),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=hi(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?jo(t.index,s):s);let ze=Zt(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=Zt(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function di(t=1){return function Yf(t){return(on.lFrame.contextLView=function cp(t,s){for(;t>0;)s=s[bs],t--;return s}(t,on.lFrame.contextLView))[ms]}(t)}function wi(t,s){let h=null;const P=function Pr(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Vo(!0),Cb(s[en],P));function ZC(t){return Gy("",t,""),ZC}function Gy(t,s,h){const P=ni(),Q=Tf(P,t,s,h);return Q!==In&&fh(P,Xr(),Q),Gy}function qC(t,s,h,P,Q){const ge=ni(),ke=function Bu(t,s,h,P,Q,ge){const Le=Ed(t,Sl(),h,Q);return kl(2),Le?s+Ki(h)+P+Ki(Q)+ge:In}(ge,t,s,h,P,Q);return ke!==In&&fh(ge,Xr(),ke),qC}function QC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function ju(t,s,h,P,Q,ge,ke,Le){const Je=C0(t,Sl(),h,Q,ke);return kl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:In}(Le,t,s,h,P,Q,ge,ke);return ze!==In&&fh(Le,Xr(),ze),QC}function JC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Vu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=Ql(t,Sl(),h,Q,ke,ze);return kl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:In}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==In&&fh(Je,Xr(),dt),JC}function ew(t,s,h){a1(s)&&(s=s());const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!1),ew}function QS(t,s){const h=a1(t);return h&&t.set(s),h}function tw(t,s){const h=ni(),P=xn(),Q=hs();return Ut(P,h,h[en],Q,t,s),tw}function iw(t,s,h,P,Q){if(t=Mt(t),Array.isArray(t))for(let ge=0;ge>20;if(Lo(t)||!t.multi){const Ht=new Kc(Je,Q,Cu),Kt=sw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Ph(Jc(Le,ke),ge,ze),nw(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=sw(ze,s,dt+jt,Ct),Kt=sw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Ph(Jc(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new Kc(t,h,Cu);return ge.multi=[],ge.index=s,ge.componentProviders=0,JS(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),nw(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else nw(ge,t,Ht>-1?Ht:Kt,JS(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function nw(t,s,h,P){const Q=Lo(s),ge=function xa(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Mt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function JS(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function sw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=xn();if(P.firstCreatePass){const Q=Wr(t);iw(h,P.data,P.blueprint,Q,!0),iw(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=fl(0,h.type),Q=P.length>0?_0([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(xo))})}return t})();function tk(t){Sc("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function hk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===In?mh(Q,P,h?s.call(h):s()):mf(Q,P)}function dk(t,s,h,P){return yk(ni(),oo(),t,s,h,P)}function uk(t,s,h,P,Q){return xk(ni(),oo(),t,s,h,P,Q)}function pk(t,s,h,P,Q,ge){return function _k(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return C0(t,ze,Q,ge,ke)?mh(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):Z0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function fk(t,s,h,P,Q,ge,ke){return function Ck(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return Ql(t,Je,Q,ge,ke,Le)?mh(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):Z0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function gk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=Ql(Je,ze,h,P,Q,ge);return Fr(Je,ze+4,ke)||dt?mh(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):mf(Je,ze+5)}function mk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=Ql(dt,Je,h,P,Q,ge);return Ed(dt,Je+4,ke,Le)||Ct?mh(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):mf(dt,Je+6)}function bk(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=Ql(Ct,dt,h,P,Q,ge);return C0(Ct,dt+4,ke,Le,ze)||jt?mh(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):mf(Ct,dt+7)}function vk(t,s,h,P){return function wk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Er(P.type)),Le=Gs(Cu);try{const ze=Cr(!1),Je=ge();return Cr(ze),function Wn(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Sk(t,s,h){const P=t+sn,Q=ni(),ge=Vc(Q,P);return q0(Q,P)?yk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function kk(t,s,h,P){const Q=t+sn,ge=ni(),ke=Vc(ge,Q);return q0(ge,Q)?xk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function q0(t,s){return t[pi].data[s].pure}function Mk(t,s){return Ig(t,s)}class Hk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Uk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Kk=new $e(""),Zk=new $e("");let uw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,uw||(function OE(t){uw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(kr),Is(qk),Is(Zk))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),qk=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return uw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pw(t){return!!t&&"function"==typeof t.then}function Qk(t){return!!t&&"function"==typeof t.subscribe}const Jk=new $e("");let fw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=Qi(Jk,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(pw(ge))h.push(ge);else if(Qk(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const gw=new $e("");function iM(t,s){return Array.isArray(s)?s.reduce(iM,t):{...t,...s}}let qu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qi(ou),this.afterRenderEffectManager=Qi(Bg),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=Qi(gf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=Qi(xo)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof af;if(!this._injector.get(fw).done)throw!Q&&vo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(lf).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Dd),Je=ke.create(zo.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Kk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),$y(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Kb)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;$y(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(gw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>$y(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $y(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!mw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,ef(t,s,P)}(t,h,s)}function mw(t){return Gc(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Uv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=ha(Zs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new kd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=Qi(kr),this.applicationRef=Qi(qu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=Qi(kr),s=Qi(Za);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=Qi(kr),this.pendingTasks=Qi(gf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yy=new $e("",{providedIn:"root",factory:()=>Qi(Yy,bn.Optional|bn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Rf}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),bw=new $e("");let oM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function pv(t="zone.js",s){return"noop"===t?new V_:"zone.js"===t?new kr(s):t}(P?.ngZone,function rM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function CT(t,s,h){return new x0(t,s,h)}(h.moduleType,this.injector,function sM(t){return[{provide:kr,useFactory:t},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(UE);return()=>{s.initialize()}}},{provide:ou,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Za,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{$y(this._modules,ge),Le.unsubscribe()})}),function tM(t,s,h){try{const P=h();return pw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(fw);return Le.runInitializers(),Le.donePromise.then(()=>(function bC(t){"string"==typeof t&&(mC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(Yy,Rf)||Rf),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=iM({},P);return function VE(t,s,h){const P=new Uv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(qu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(bw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zo))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Qu=null;const aM=new $e("");function lM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=vw();if(!ke||ke.injector.get(aM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Qu&&!Qu.get(aM,!1))throw new me(400,!1);(function eM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Qu=t;const s=t.get(oM);(function hM(t){t.get(fu,null)?.forEach(h=>h())})(t)}(function cM(t=[],s){return zo.create({name:s,providers:[{provide:Ns,useValue:"platform"},{provide:bw,useValue:new Set([()=>Qu=null])},...t]})}(Le,P))}return function KE(t){const s=vw();if(!s)throw new me(401,!1);return s}()}}function vw(){return Qu?.get(oM)??null}function qE(){}let uM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(sa(t)&&!h){const P=jo(t.index,s);return new nf(P,P)}return 47&t.type?new nf(s[Kn],s):null}(hs(),ni(),!(16&~t))}class mM{constructor(){}supports(s){return $g(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new bM),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new bM),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class bM{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function vM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function xM(){return new ww([new mM])}let ww=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:xM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||xM()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function _M(){return new Tw([new yM])}let Tw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:_M});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||_M()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=lM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(qu))};static#t=this.\u0275mod=Fl({type:t});static#i=this.\u0275inj=kn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Sc("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>Qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qi(gf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Za,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function HM(t,s){Sc("NgSignals"),!s?.injector&&Ge();const h=s?.injector??Qi(zo),P=!0!==s?.manualCleanup?h.get(yc):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(uM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[bl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||yo();return new kd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new kd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Er,X1:()=>ja,YN:()=>Qo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>bo,qT:()=>Jl,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(vn){return Bt.onChange(vn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt._handleInput(vn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(vn){return Bt._compositionEnd(vn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Jt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Mt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class ui extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends ui{}const Fn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function zn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function ws(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function Cs(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Di(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Di(ct._rawValidators,Bt),Di(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Di(ct._rawValidators,vt),Di(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const rs=class extends Jt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const Vr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,vn,no){super(),this._changeDetectorRef=vn,this.callSetDisabledState=no,this.control=new rs,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){zn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([Vr]),M.Vt3,M.OA$]})}return ot})(),Jl=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const pr={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt.onChange(vn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([pr]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),rl={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return zn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof rs)(Bt)&&(zn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function kn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function jr(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(vn){return Bt.onSubmit(vn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([rl]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ol={provide:x,useExisting:(0,M.Rfq)(()=>ua)};let ua=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ol]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof ua)}const go={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,vn){super(),this._ngModelWarningConfig=vn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([go]),M.Vt3,M.OA$]})}return ot})();let er=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const cl={provide:F,useExisting:(0,M.Rfq)(()=>Er),multi:!0};let Er=(()=>{class ot extends er{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Eo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([cl]),M.Vt3]})}return ot})(),Ys=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Mn extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let bo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new ui(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new rs(Ye,{...Vi,nonNullable:!0})):new rs(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(vn=>this._createControl(vn));return new Mn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof rs||Ye instanceof Jt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Qo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Mt){return new URL(Mt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Mt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const fe=new M.nKC("");let pe=(()=>{class Mt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Jt=>{Jt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Jt){return this._findPluginFor(wt).addEventListener(_t,wt,Jt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(ui=>ui.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Mt{constructor(_t,wt,Jt,ui={}){this.doc=_t,this.appId=wt,this.nonce=Jt,this.platformId=ui,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(ui),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Jt=>Jt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Jt=>{null!=Jt.textContent&&wt.set(Jt.textContent,Jt)}),wt}return null}changeUsageCount(_t,wt){const Jt=this.styleRef;if(Jt.has(_t)){const ui=Jt.get(_t);return ui.usage+=wt,ui.usage}return Jt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Jt=this.styleNodesInDOM,ui=Jt?.get(wt);if(ui?.parentNode===_t)return Jt.delete(wt),ui.removeAttribute(te),ui;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Jt=this.getStyleElement(_t,wt),ui=this.styleRef,Fi=ui.get(wt)?.elements;Fi?Fi.push(Jt):ui.set(wt,{elements:[Jt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Mt,At){return At.map(_t=>_t.replace(B,Mt))}let z=(()=>{class Mt{constructor(_t,wt,Jt,ui,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Jt,this.removeStylesOnCompDestroy=ui,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Jt=this.getOrCreateRenderer(_t,wt);return Jt instanceof n?Jt.applyToHost(_t):Jt instanceof o&&Jt.applyStyles(),Jt}getOrCreateRenderer(_t,wt){const Jt=this.rendererByCompId;let ui=Jt.get(wt.id);if(!ui){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,_s=this.removeStylesOnCompDestroy,Fn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:ui=new n(vi,Gi,wt,this.appId,_s,Fi,mi,Fn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,Fn);default:ui=new o(vi,Gi,wt,_s,Fi,mi,Fn)}Jt.set(wt.id,ui)}return ui}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class O{constructor(At,_t,wt,Jt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Jt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Jt){if(Jt){_t=Jt+":"+_t;const ui=A[Jt];ui?At.setAttributeNS(ui,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Jt=A[wt];Jt?At.removeAttributeNS(Jt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Jt){Jt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Jt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Mt){return"TEMPLATE"===Mt.tagName&&void 0!==Mt.content}class y extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Jt.id,Jt.styles);for(const _s of Gi){const Fn=document.createElement("style");mi&&Fn.setAttribute("nonce",mi),Fn.textContent=_s,this.shadowRoot.appendChild(Fn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Jt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){const Gi=Jt+"-"+wt.id;super(At,_t,wt,ui,Fi,mi,vi,Gi),this.contentAttr=function _(Mt){return D.replace(B,Mt)}(Gi),this.hostAttr=function b(Mt){return L.replace(B,Mt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Jt){return _t.addEventListener(wt,Jt,!1),()=>this.removeEventListener(_t,wt,Jt)}removeEventListener(_t,wt,Jt){return _t.removeEventListener(wt,Jt)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Mt=>Mt.altKey,control:Mt=>Mt.ctrlKey,meta:Mt=>Mt.metaKey,shift:Mt=>Mt.shiftKey};let k=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return null!=Mt.parseEventName(_t)}addEventListener(_t,wt,Jt){const ui=Mt.parseEventName(wt),Fi=Mt.eventCallback(ui.fullKey,Jt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,ui.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Jt=wt.shift();if(0===wt.length||"keydown"!==Jt&&"keyup"!==Jt)return null;const ui=Mt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const _s=wt.indexOf(Gi);_s>-1&&(wt.splice(_s,1),Fi+=Gi+".")}),Fi+=ui,0!=wt.length||0===ui.length)return null;const vi={};return vi.domEventName=Jt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Jt=d[_t.key]||_t.key,ui="";return wt.indexOf("code.")>-1&&(Jt=_t.code,ui="code."),!(null==Jt||!Jt)&&(Jt=Jt.toLowerCase()," "===Jt?Jt="space":"."===Jt&&(Jt="dot"),l.forEach(Fi=>{Fi!==Jt&&(0,C[Fi])(_t)&&(ui+=Fi+".")}),ui+=Jt,ui===wt)}static eventCallback(_t,wt,Jt){return ui=>{Mt.matchEventFullKeyCode(ui,_t)&&Jt.runGuarded(()=>wt(ui))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Jt=!0)=>{const ui=At.findTestabilityInTree(wt,Jt);if(null==ui)throw new M.wOt(5103,!1);return ui},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Jt=M.JZv.getAllAngularTestabilities();let ui=Jt.length;const Fi=function(){ui--,0==ui&&wt()};Jt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Mt{constructor(_t){}static withServerTransition(_t){return{ngModule:Mt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Mt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Mt})(),he=(()=>{class Mt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})(),Xe=(()=>{class Mt{static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:function(wt){let Jt=null;return Jt=wt?new(wt||Mt):M.KVO(Ze),Jt},providedIn:"root"})}return Mt})(),Ze=(()=>{class Mt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>go,wF:()=>un,Kp:()=>ms,b:()=>Oi,Ix:()=>pi,Wk:()=>gs,wQ:()=>ks,iI:()=>xl,n3:()=>Do});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new zn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function ui(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Mt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Mt(Re.path)}${function Jt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Mt(Ue)}=${Mt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,_s=/^[^=?&#]+/,ls=/^[^&#]+/;class zn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function Fn(Re){const Ue=Re.match(_s);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Di(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Di(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,ei]of Object.entries(mt.children))Ue[Ot]=ei;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function Cs(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Xt of mt.children){const Li=Be(Xt);Ot[Xt.outlet]=Li}const ei=new Me(mt.url,Ot);return mt===Re&&(Ue=ei),ei}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return kn(rt,rt,rt,Be,We);const mt=function qr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new fo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const ei={};return Object.entries(mt.outlets).forEach(([Xt,Li])=>{ei[Xt]="string"==typeof Li?Li.split("/"):Li}),[...rt,{outlets:ei}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((ei,Xt)=>{0==Xt&&"."===ei||(0==Xt&&""===ei?Be=!0:".."===ei?Ue++:""!=ei&&rt.push(ei))}),rt):[...rt,mt]},[]);return new fo(Be,Ue,We)}(Ue);if(mt.toRoot())return kn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new ir(Ue,!0,0);if(!Be)return new ir(Ue,!1,NaN);if(null===Be.parent)return new ir(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new ir(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),ei=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return kn(rt,Ot.segmentGroup,ei,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function ws(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function kn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Xt,Li])=>{mt[Xt]=Array.isArray(Li)?Li.map(pn=>`${pn}`):`${Li}`}),Ot=Re===Ue?Be:jr(Re,Ue,Be);const ei=dn(Di(Ot));return new _e(ei,mt,rt)}function jr(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:jr(mt,Ue,Be)}),new Me(Re.segments,We)}class fo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(ws);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ir{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],ei=Be[We];if(ws(ei))break;const Xt=`${ei}`,Li=We0&&void 0===Xt)break;if(Xt&&Li&&"object"==typeof Li&&void 0===Li.outlets){if(!si(Xt,Li,Ot))return mt;We+=2}else{if(!si(Xt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class rs extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class os extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Js extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class ns extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Qr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Vr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Jl{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class pr{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Jr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class bn{}class Ko{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new eo,this.attachRef=null}}let eo=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class sl{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=rl(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=rl(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function rl(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=rl(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ol extends sl{constructor(Ue,Be){super(Ue),this.snapshot=Be,fa(this,Ue)}toString(){return this.snapshot.toString()}}function ua(Re){const Ue=function Ra(Re){const mt=new pa([],{},{},"",{},w,Re,null,{});return new Dr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),ei=new go(Be,We,mt,Ot,rt,w,Re,Ue.root);return ei.snapshot=Ue.root,new ol(new Hs(ei,[]),Ue)}class go{constructor(Ue,Be,We,rt,mt,Ot,ei,Xt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=ei,this._futureSnapshot=Xt,this.title=this.dataSubject?.pipe((0,_.T)(Li=>Li[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&zr(rt)&&(We.resolve[X]=rt.title),We}class pa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,ei,Xt,Li){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=ei,this.routeConfig=Xt,this._resolve=Li}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Dr extends sl{constructor(Ue,Be){super(Be),this.url=Ue,fa(this,Be)}toString(){return Is(this._root)}}function fa(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>fa(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||Qi(Re.parent,Ue.parent))}function zr(Re){return"string"==typeof Re.title||null===Re.title}let Do=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(mo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,ei=this.parentContexts.getOrCreateContext(this.name).children,Xt=new ga(Be,ei,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Xt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ga{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===go?this.route:Ue===eo?this.childContexts:this.parent.get(Ue,Be)}}const mo=new M.nKC("");let ma=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,ei],Xt)=>(ei={...mt,...Ot,...ei},0===Xt?(0,Pe.of)(ei):Promise.resolve(ei)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:ei}of Ot.inputs)Be.activatedComponentRef.setInput(ei,mt[ei]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Eo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function er(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Eo(Re,We,rt);return Eo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(ei=>Eo(Re,ei)),Ot}}const We=function ll(Re){return new go(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Eo(Re,mt));return new Hs(We,rt)}}const Gr="ngNavigationCancelingError";function cl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Er(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Er(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[Gr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[Gr]}let Ar=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Do],encapsulation:2})}return Re})();function Hr(Re){const Ue=Re.children&&Re.children.map(Hr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Ar),Be}function io(Re){return Re.outlet||w}function Ys(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class ya{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),ei=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:ei})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const ei=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(ei.contexts),Ot.attachRef=ei.componentRef,Ot.route=ei.route.value,Ot.outlet&&Ot.outlet.attach(ei.componentRef,ei.route.value),Us(ei.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const ei=Ys(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=ei,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class bo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function hl(Re,Ue,Be){const We=Re._root;return Qo(We,Ue?Ue._root:null,Be,[We.value])}function Zi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Qo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,ei=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Xt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!Qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Xt?rt.canActivateChecks.push(new qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Qo(Re,Ue,mt.component?ei?ei.children:null:Be,We,rt),Xt&&ei&&ei.outlet&&ei.outlet.isActivated&&rt.canDeactivateChecks.push(new bo(ei.outlet.component,Ot))}else Ot&&ct(Ue,ei,rt),rt.canActivateChecks.push(new qo(We)),Qo(Re,null,mt.component?ei?ei.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,ei])=>ct(ei,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new bo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Ks(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Or=Symbol("INITIAL_VALUE");function rr(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Or)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Or)return Or;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Or),(0,T.s)(1)))}function so(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw cl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Fl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Lr(Re){return(0,J.$)(new Fl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const ei=mt.substring(1);We[rt]=Be[ei]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([ei,Xt])=>{Ot[ei]=this.createSegmentGroup(Ue,Xt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const vo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zs(Re,Ue,Be,We,rt){const mt=dl(Re,Ue,Be);return mt.matched?(We=function Zo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Kh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Ir(Re){return Re&&Ye(Re.canMatch)}(ei)?ei.canMatch(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...vo}))):(0,Pe.of)(mt)}function dl(Re,Ue,Be){if("**"===Ue.path)return function ul(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...vo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...vo};const mt={};Object.entries(rt.posParams??{}).forEach(([ei,Xt])=>{mt[ei]=Xt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function pl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We)&&io(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ic(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Bl(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Oc(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Oc(Re,Ue,Be,We){const rt={};for(const mt of Be)if(fl(Re,Ue,mt)&&!We[io(mt)]){const Ot=new Me([],{});rt[io(mt)]=Ot}return{...We,...rt}}function ic(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&io(We)!==w){const rt=new Me([],{});Be[io(We)]=rt}return Be}function fl(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Lc{}class jl{constructor(Ue,Be,We,rt,mt,Ot,ei){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=ei,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=pl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new pa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new Dr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Fl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],ei=function ec(Re,Ue){const Be=Re.filter(We=>io(We)===Ue);return Be.push(...Re.filter(We=>io(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,ei,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let ei=Be,Xt=Ue,Li=0;mt.subscribe((0,F._)(Ot,pn=>{const Dn=Li++;Xt=ei?Re(Xt,pn,Dn):(ei=!0,pn),We&&Ot.next(Xt)},rt&&(()=>{ei&&Ot.next(Xt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Lr(We);const Ot=Lo(mt);return function tr(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(ei=>this.processSegmentAgainstRoute(ei._injector??Ue,Be,ei,We,rt,mt,Ot).pipe((0,d.W)(Xt=>{if(Xt instanceof Fl)return(0,Pe.of)(null);throw Xt}))),n(ei=>!!ei),(0,d.W)(ei=>{if(Ks(ei))return function nc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Lc):Lr(We);throw ei}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,ei){return function Pc(Re,Ue,Be,We){return!!(io(Re)===We||We!==w&&fl(Ue,Be,Re))&&dl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&ei?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Lr(rt):Lr(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:ei,consumedSegments:Xt,positionalParamSegments:Li,remainingSegments:pn}=dl(Be,rt,mt);if(!ei)return Lr(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const Dn=this.applyRedirects.applyRedirectCommands(Xt,rt.redirectTo,Li);return this.applyRedirects.lineralizeSegments(rt,Dn).pipe((0,f.Z)(qs=>this.processSegment(Ue,We,Be,qs.concat(pn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=Zs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(ei=>ei.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Xt})=>{const Li=We._loadedInjector??Ue,{consumedSegments:pn,remainingSegments:Dn,parameters:qs}=ei,Hl=new pa(pn,qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ns(Re){return Re.data||{}}(We),io(We),We.component??We._loadedComponent??null,We,function Fs(Re){return Re.resolve||{}}(We)),{segmentGroup:Cl,slicedSegments:wl}=pl(Be,pn,Dn,Xt);if(0===wl.length&&Cl.hasChildren())return this.processChildren(Li,Xt,Cl).pipe((0,_.T)(Wa=>null===Wa?null:new Hs(Hl,Wa)));if(0===Xt.length&&0===wl.length)return(0,Pe.of)(new Hs(Hl,[]));const cc=io(We)===mt;return this.processSegment(Li,Xt,Cl,wl,cc?w:mt,!0).pipe((0,_.T)(Wa=>new Hs(Hl,Wa instanceof Hs?[Wa]:[])))})):Lr(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Ac(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(ei)?ei.canLoad(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Er(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Nc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Lo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Nc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Lo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function yo(Re){const Ue=Re.children.map(Be=>yo(Be)).flat();return[Re,...Ue]}function Vl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Fc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(ml),providedIn:"root"})}return Re})(),ml=(()=>{class Re extends Fc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ta=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Ur(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,ei=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Hr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function ia(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let na=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Li=>{mt=Li}),ei=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Xt}=We;return Xt&&(0,M.N4e)(Re,()=>Xt({transition:ei,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ta),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(mo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Fc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(na),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new Jl(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,ei=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Xt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Xt.id,initialUrl:Xt.rawUrl,extractedUrl:Xt.extractedUrl,trigger:Xt.source,extras:Xt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Li=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Li&&"reload"!==(Xt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.rawUrl),Dn,cn.IgnoredSameUrlNavigation)),Xt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Xt.rawUrl))return(0,Pe.of)(Xt).pipe((0,b.n)(Dn=>{const qs=this.transitions?.getValue();return this.events.next(new rs(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),Dn.source,Dn.restoredState)),qs!==this.transitions?.getValue()?te.w:Promise.resolve(Dn)}),function ea(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function Po(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new jl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:ei,tree:Xt})=>({...Ot,targetSnapshot:ei,urlAfterRedirects:Xt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(Dn=>{mt.targetSnapshot=Dn.targetSnapshot,mt.urlAfterRedirects=Dn.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:Dn.urlAfterRedirects};const qs=new Qr(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),this.urlSerializer.serialize(Dn.urlAfterRedirects),Dn.targetSnapshot);this.events.next(qs)}));if(Li&&this.urlHandlingStrategy.shouldProcessUrl(Xt.currentRawUrl)){const{id:Dn,extractedUrl:qs,source:Hl,restoredState:Cl,extras:wl}=Xt,cc=new rs(Dn,this.urlSerializer.serialize(qs),Hl,Cl);this.events.next(cc);const Wa=ua(this.rootComponentType).snapshot;return this.currentTransition=mt={...Xt,targetSnapshot:Wa,urlAfterRedirects:qs,extras:{...wl,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=qs,(0,Pe.of)(mt)}{const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),Dn,cn.IgnoredByUrlHandlingStrategy)),Xt.resolve(null),te.w}}),(0,l.M)(Xt=>{const Li=new nr(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot);this.events.next(Li)}),(0,_.T)(Xt=>(this.currentTransition=mt={...Xt,guards:hl(Xt.targetSnapshot,Xt.currentSnapshot,this.rootContexts)},mt)),function Pr(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Bn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Yh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(ei=>{const Xt=Ys(Ue)??rt,Li=Zi(ei,Xt);return Ce(function no(Re){return Re&&Ye(Re.canDeactivate)}(Li)?Li.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Xt,()=>Li(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(rr())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(ei=>ei&&function vt(Re){return"boolean"==typeof Re}(ei)?function fr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function tc(Re,Ue){return null!==Re&&Ue&&Ue(new pr(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function Jo(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Xh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Oo(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const ei=Ot.guards.map(Xt=>{const Li=Ys(Ot.node)??Be,pn=Zi(Xt,Li);return Ce(function vn(Re){return Re&&Ye(Re.canActivateChild)}(pn)?pn.canActivateChild(We,Re):(0,M.N4e)(Li,()=>pn(We,Re))).pipe(n())});return(0,Pe.of)(ei).pipe(rr())}));return(0,Pe.of)(mt).pipe(rr())}(Re,rt.path,Be),function Nl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ys(Ue)??Be,ei=Zi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(ei)?ei.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>ei(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(rr())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(ei)),(0,_.T)(ei=>({...Be,guardsResult:ei})))})}(this.environmentInjector,Xt=>this.events.next(Xt)),(0,l.M)(Xt=>{if(mt.guardsResult=Xt.guardsResult,On(Xt.guardsResult))throw cl(0,Xt.guardsResult);const Li=new Ls(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot,!!Xt.guardsResult);this.events.next(Li)}),(0,O.p)(Xt=>!!Xt.guardsResult||(this.cancelNavigationTransition(Xt,"",Xi.GuardRejected),!1)),Vl(Xt=>{if(Xt.guards.canActivateChecks.length)return(0,Pe.of)(Xt).pipe((0,l.M)(Li=>{const pn=new Vr(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}),(0,b.n)(Li=>{let pn=!1;return(0,Pe.of)(Li).pipe(function gl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Xt=>Xt.route)),Ot=new Set;for(const Xt of mt)if(!Ot.has(Xt))for(const Li of yo(Xt))Ot.add(Li);let ei=0;return(0,V.H)(Ot).pipe((0,r.H)(Xt=>mt.has(Xt)?function xo(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!zr(rt)&&(mt[X]=rt.title),function _a(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function Ca(Re,Ue,Be,We){const rt=Ys(Ue)??We,mt=Zi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(ei=>{mt[Ot]=ei}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Ks(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Xt,We,Re,Ue):(Xt.data=xr(Xt,Xt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>ei++),p(1),(0,f.Z)(Xt=>ei===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>pn=!0,complete:()=>{pn||this.cancelNavigationTransition(Li,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Li=>{const pn=new Ki(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}))}),Vl(Xt=>{const Li=pn=>{const Dn=[];pn.routeConfig?.loadComponent&&!pn.routeConfig._loadedComponent&&Dn.push(this.configLoader.loadComponent(pn.routeConfig).pipe((0,l.M)(qs=>{pn.component=qs}),(0,_.T)(()=>{})));for(const qs of pn.children)Dn.push(...Li(qs));return Dn};return(0,ie.z)(Li(Xt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),Vl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Xt,targetSnapshot:Li}=mt,pn=this.createViewTransition?.(this.environmentInjector,Xt.root,Li.root);return pn?(0,V.H)(pn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Xt=>{const Li=function al(Re,Ue,Be){const We=Eo(Re,Ue._root,Be?Be._root:void 0);return new ol(We,Ue)}(Be.routeReuseStrategy,Xt.targetSnapshot,Xt.currentRouterState);return this.currentTransition=mt={...Xt,targetRouterState:Li},this.currentNavigation.targetRouterState=Li,mt}),(0,l.M)(()=>{this.events.next(new bn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new ya(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Xt=>this.events.next(Xt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Xt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Xt.targetRouterState.snapshot),Xt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Xt=>{throw Xt}))),(0,H.j)(()=>{!Ot&&!ei&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Xt=>{if(ei=!0,cs(Xt))this.events.next(new os(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt.message,Xt.cancellationCode)),function sr(Re){return cs(Re)&&On(Re.url)}(Xt)?this.events.next(new Ko(Xt.url)):mt.resolve(!1);else{this.events.next(new ns(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Xt))}catch(Li){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Li)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new os(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Oi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(es),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let es=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),as=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends as{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(na),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=ua(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof rs)this.stateMemento=this.createStateMemento();else if(Be instanceof Js)this.rawUrlTree=We.initialUrl;else if(Be instanceof Qr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof bn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof os&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof ns?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ss(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof os||Be instanceof ns||Be instanceof Js),(0,_.T)(Be=>Be instanceof un||Be instanceof Js?us.COMPLETE:Be instanceof os&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function Bs(Re){throw Re}const Rr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Gn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(as),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(na),this._events=new I.B,this.errorHandler=this.options.errorHandler||Bs,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Oi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(mo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof os&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Ko){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),ei={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,ei,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof bn||Re instanceof Ko)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Xt={...rt};delete Xt.navigationId,delete Xt.\u0275routerPageId,0!==Object.keys(Xt).length&&(mt.state=Xt)}const ei=this.parseUrl(Be);this.scheduleNavigation(ei,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Hr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:ei,preserveFragment:Xt}=We,Li=Xt?this.currentUrlTree.fragment:Ot;let Dn,pn=null;switch(ei){case"merge":pn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":pn=this.currentUrlTree.queryParams;break;default:pn=mt||null}null!==pn&&(pn=this.removeEmptyProps(pn));try{Dn=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),Dn=this.currentUrlTree.root}return $n(Dn,Be,pn,Li??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let ei,Xt,Li;Ot?(ei=Ot.resolve,Xt=Ot.reject,Li=Ot.promise):Li=new Promise((Dn,qs)=>{ei=Dn,Xt=qs});const pn=this.pendingTasks.add();return ss(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(pn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:ei,reject:Xt,promise:Li,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Li.catch(Dn=>Promise.reject(Dn))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,ei){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=ei,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Xt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Xt||"area"===Xt,this.isAnchorElement?this.subscription=Be.events.subscribe(Li=>{Li instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const ei=this.urlTree;return!!(null===ei||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(ei,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(go),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(ei=>{ei instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function or(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class wa{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),_o=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,ei=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(ei,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(pi),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(wa),M.KVO(ta))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Ro=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof rs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof Js&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof Jr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Jr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function Sa(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(pi),rt=Re.get(No);1===Re.get(bl)&&We.initialNavigation(),Re.get(vl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const No=new M.nKC("",{factory:()=>new I.B}),bl=new M.nKC("",{providedIn:"root",factory:()=>1}),vl=new M.nKC("");function Fo(Re){return Kn(0,[{provide:vl,useExisting:_o},{provide:wa,useExisting:Re}])}function mr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const Gl=new M.nKC("ROUTER_FORROOT_GUARD"),sa=[E.aZ,{provide:Qe,useClass:st},pi,eo,{provide:go,useFactory:function bs(Re){return Re.routerState.root},deps:[pi]},ta,[]];let xl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[sa,[],{provide:Ga,multi:!0,useValue:Be},{provide:Gl,useFactory:Zh,deps:[[pi,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Ro(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Fo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Qn(We):[],We?.bindToComponentInputs?Kn(8,[ma,{provide:mo,useExisting:ma}]).\u0275providers:[],We?.enableViewTransitions?mr().\u0275providers:[],[{provide:_l,useFactory:Sa},{provide:M.iLQ,multi:!0,useExisting:_l}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(Gl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function Zh(Re){return"guarded"}function Qn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(pi);return()=>{Ue.setUpLocationChangeListener()}}},{provide:bl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:bl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(pi),mt=Ue.get(No);ss(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const _l=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Vo,do:()=>Yc,Bq:()=>qc,UN:()=>ah,ZM:()=>cd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Wt=>Wt.length)){const Wt=Ne.map(Qt=>Qt.shift());we.next(je?je(...Wt):Wt),Ne.some((Qt,ii)=>!Qt.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Wt=0;Wt{it[Wt]=Qt,!Vt&&!ft[Wt]&&(ft[Wt]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Wt=>{if(Vt){const Qt=[Wt,...it];we.next(je?je(...Qt):Qt)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Wt=!ht()&&ae,Qt=(we.left+(Wt&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Wt&&Vt?Vt.offsetTop:0))/it,Ci=we.width/Ne,_i=we.height/it;return{width:Ci,height:_i,top:ii,right:Qt+Ci,bottom:ii+_i,left:Qt,x:Qt,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Jt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function ui(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&ui(be)?be:Fi(Jt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],ui(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Jt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function Fn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function _s(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Jt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Mt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Wt=0;if(Ne){it=Ne.width,ft=Ne.height;var Qt=ht();(Qt||!Qt&&"fixed"===je)&&(Vt=Ne.offsetLeft,Wt=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Wt}}(be,ae)):Ee(je)?function zn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Wt=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Wt}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Wt,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Wt={x:ft,y:je.y-ae.height};break;case U:Wt={x:ft,y:je.y+je.height};break;case se:Wt={x:je.x+je.width,y:Vt};break;case w:Wt={x:je.x-ae.width,y:Vt};break;default:Wt={x:je.x,y:je.y}}var Qt=Ne?Pn(Ne):null;if(null!=Qt){var ii="y"===Qt?"height":"width";switch(it){case x:Wt[Qt]=Wt[Qt]-(je[ii]/2-ae[ii]/2);break;case N:Wt[Qt]=Wt[Qt]+(je[ii]/2-ae[ii]/2)}}return Wt}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function ws(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function kn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Wt=void 0===Vt?"clippingParents":Vt,Qt=je.rootBoundary,ii=void 0===Qt?K:Qt,Ci=je.elementContext,_i=void 0===Ci?q:Ci,Ai=je.altBoundary,_n=void 0!==Ai&&Ai,rn=je.padding,fn=void 0===rn?0:rn,Rn=$i("number"!=typeof fn?fn:ws(fn,G)),vs=be.rects.popper,En=be.elements[_n?_i===q?"reference":q:_i],Zn=function Cs(be,je,ae,we){var Ne="clippingParents"===je?function Di(be){var je=mi(Jt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?Fn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Wt,Qt){var ii=dn(be,Qt,we);return Wt.top=Qe(ii.top,Wt.top),Wt.right=st(ii.right,Wt.right),Wt.bottom=st(ii.bottom,Wt.bottom),Wt.left=Qe(ii.left,Wt.left),Wt},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(En)?En:En.contextElement||lt(be.elements.popper),Wt,ii,ft),An=Lt(be.elements.reference),qn=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ps=fs(Object.assign({},vs,qn)),lr=_i===q?Ps:An,zs={top:Zn.top-lr.top+Rn.top,bottom:lr.bottom-Zn.bottom+Rn.bottom,left:Zn.left-lr.left+Rn.left,right:lr.right-Zn.right+Rn.right},wr=be.modifiersData.offset;if(_i===q&&wr){var lo=wr[Ne];Object.keys(zs).forEach(function(Tr){var xe=[se,U].indexOf(Tr)>=0?1:-1,tt=[Y,U].indexOf(Tr)>=0?"y":"x";zs[Tr]+=lo[tt]*xe})}return zs}const ir={name:"flip",enabled:!0,phase:"main",fn:function qr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Wt=ae.fallbackPlacements,Qt=ae.padding,ii=ae.boundary,Ci=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,_n=void 0===Ai||Ai,rn=ae.allowedAutoPlacements,fn=je.options.placement,Rn=S(fn),vs=Wt||(Rn!==fn&&_n?function fo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(fn):[p(fn)]),En=[fn].concat(vs).reduce(function(oi,Pi){return oi.concat(S(Pi)===X?function jr(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Wt=je.allowedAutoPlacements,Qt=void 0===Wt?Ce:Wt,ii=On(je.placement),Ci=ii?Vt?me:me.filter(function(_n){return On(_n)===ii}):G,_i=Ci.filter(function(_n){return Qt.indexOf(_n)>=0});0===_i.length&&(_i=Ci);var Ai=_i.reduce(function(_n,rn){return _n[rn]=kn(be,{placement:rn,boundary:Ne,rootBoundary:it,padding:ft})[S(rn)],_n},{});return Object.keys(Ai).sort(function(_n,rn){return Ai[_n]-Ai[rn]})}(je,{placement:Pi,boundary:ii,rootBoundary:Ci,padding:Qt,flipVariations:_n,allowedAutoPlacements:rn}):Pi)},[]),Zn=je.rects.reference,An=je.rects.popper,qn=new Map,Ps=!0,lr=En[0],zs=0;zs=0,tt=xe?"width":"height",u=kn(je,{placement:wr,boundary:ii,rootBoundary:Ci,altBoundary:_i,padding:Qt}),ne=xe?Tr?se:w:Tr?U:Y;Zn[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[lo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){lr=wr,Ps=!1;break}qn.set(wr,Ie)}if(Ps)for(var Tt=function(Pi){var qi=En.find(function(Yi){var tn=qn.get(Yi);if(tn)return tn.slice(0,Pi).every(function(Cn){return Cn})});if(qi)return lr=qi,"break"},zt=_n?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==lr&&(je.modifiersData[we]._skip=!0,je.placement=lr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,_n=ae.tetherOffset,rn=void 0===_n?0:_n,fn=kn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Rn=S(je.placement),jn=On(je.placement),vs=!jn,En=Pn(Rn),Zn=function St(be){return"x"===be?"y":"x"}(En),An=je.modifiersData.popperOffsets,qn=je.rects.reference,Ps=je.rects.popper,lr="function"==typeof rn?rn(Object.assign({},je.rects,{placement:je.placement})):rn,zs="number"==typeof lr?{mainAxis:lr,altAxis:lr}:Object.assign({mainAxis:0,altAxis:0},lr),wr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,lo={x:0,y:0};if(An){if(it){var Tr,xe="y"===En?Y:w,tt="y"===En?U:se,u="y"===En?"height":"width",ne=An[En],ue=ne+fn[xe],Ie=ne-fn[tt],nt=Ai?-Ps[u]/2:0,Tt=jn===x?qn[u]:Ps[u],zt=jn===x?-Ps[u]:-qn[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Pi=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},qi=Pi[xe],Yi=Pi[tt],tn=Rt(0,qn[u],oi[u]),Cn=vs?qn[u]/2-nt-tn-qi-zs.mainAxis:Tt-tn-qi-zs.mainAxis,nn=vs?-qn[u]/2+nt+tn+Yi+zs.mainAxis:zt+tn+Yi+zs.mainAxis,Jn=je.elements.arrow&&Fn(je.elements.arrow),Ds=Jn?"y"===En?Jn.clientTop||0:Jn.clientLeft||0:0,Ws=null!=(Tr=wr?.[En])?Tr:0,co=ne+nn-Ws,Uo=Rt(Ai?st(ue,ne+Cn-Ws-Ds):ue,ne,Ai?Qe(Ie,co):Ie);An[En]=Uo,lo[En]=Uo-ne}if(Vt){var _c,la=An[Zn],gu="y"===Zn?"height":"width",rg=la+fn["x"===En?Y:w],og=la-fn["x"===En?U:se],Ip=-1!==[Y,w].indexOf(Rn),Al=null!=(_c=wr?.[Zn])?_c:0,lh=Ip?rg:la-qn[gu]-Ps[gu]-Al+zs.altAxis,ag=Ip?la+qn[gu]+Ps[gu]-Al-zs.altAxis:og,lg=Ai&&Ip?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(lh,la,ag):Rt(Ai?lh:rg,la,Ai?ag:og);An[Zn]=lg,lo[Zn]=lg-la}je.modifiersData[we]=lo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Wt=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var Ci=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:ws(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Wt?Y:w,_n="y"===Wt?U:se,rn=ae.rects.reference[ii]+ae.rects.reference[Wt]-ft[Wt]-ae.rects.popper[ii],fn=ft[Wt]-ae.rects.reference[Wt],Rn=Fn(it),jn=Rn?"y"===Wt?Rn.clientHeight||0:Rn.clientWidth||0:0,An=jn/2-_i[ii]/2+(rn/2-fn/2),qn=Rt(Ci[Ai],An,jn-_i[ii]-Ci[_n]);ae.modifiersData[we]=((je={})[Wt]=qn,je.centerOffset=qn-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function rs(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Wt={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||ui(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Wt=Lt(je,!0)).x+=je.clientLeft,Wt.y+=je.clientTop):it&&(Wt.x=ti(it))),{x:ft.left+Vt.scrollLeft-Wt.x,y:ft.top+Vt.scrollTop-Wt.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Wt=je.get(Vt);Wt&&Ne(Wt)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var Js={placement:"bottom",modifiers:[],strategy:"absolute"};function ns(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(Ci,je.rects,it),ii},{}),Vt=ft[je.placement],Qt=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=Qt),je.modifiersData[we]=ft}},Hs=["*"],Xs=["dialog"];function Jo(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function tc(be,je){}function Nl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,Jo,1,1,"ng-template",null,0,M.C5r)(3,tc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Lc={animation:!0,transitionTimerDelayMs:5};let Po=(()=>{class be{constructor(){this.animation=Lc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function xa(be){return"string"==typeof be}function ea(be){return null!=be}function Ca(be){return(be||document.body).getBoundingClientRect()}function ml(be=document){const je=be?.activeElement;return je?je.shadowRoot?ml(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Lc,ta=new Map,Ur=(be,je,ae,we)=>{let Ne=we.context||{};const it=ta.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ta.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function Vl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Wt=new ie.B,Qt=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ta.set(je,{transition$:Vt,complete:()=>{Wt.next(),Wt.complete()},context:Ne});const ii=function jl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const Ci=(0,re.R)(je,"transitionend").pipe((0,I.Q)(Qt),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(Qt)),Ci,Wt).pipe((0,I.Q)(Qt)).subscribe(()=>{ta.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},na=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),Ca(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Ur(this._zone,this._element.nativeElement,na,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ro=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),sc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Qn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Qn||{});const Jh=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function _a(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const Qt=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Qn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!Jh(Ai,ft)&&("inside"===ae?Jh(Ai,it)&&Re(Ai,Vt):"outside"===ae?!Jh(Ai,it):Re(Ai,Vt)||!Jh(Ai,it))}),(0,I.Q)(Ne)),Ci=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([Qt.pipe((0,T.T)(_i=>0)),Ci.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let ei=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Xt=/\s+/,Li=/ +/gi,pn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},qs=/^left/,Hl=/^right/,Cl=/^start/,wl=/^end/;function Wa({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Xt),it=we.findIndex(Qt=>"auto"===Qt);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(Qt){null==we.find(ii=>-1!==ii.search("^"+Qt))&&we.splice(it++,1,Qt)});const ft=we.map(Qt=>function Dn(be,je){const[ae,we]=pn[be];return je&&we||ae}(Qt,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:Qt}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),Ci=Qt.elements.popper,_i=Qt.placement;let Ai=Ci.className;Ai=Ai.replace(ii,""),Ai+=` ${function cc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(qs,"start").replace(Hl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Cl,"top").replace(wl,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Li," "),Ci.className=Ai}},ir,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function tp(be){return be}function ed(){const be=(0,M.WQX)(ei);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je=eo(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function Bo(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Hd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ud=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Vo=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,$c,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Dh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Yc=(()=>{class be extends Dh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Dh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(Ud),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=ed(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(Bo([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Wt,Qt)=>{Wt.contains(ae.target)&&(ft=Wt),Wt===ml(this._document)&&(it=Qt)}),we!==Qn.Space&&we!==Qn.Enter){if(we!==Qn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Qn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Qn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Qn.Home:it=0;break;case Qn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Wt=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Wt[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Wt[Wt.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Wt})=>{this._nativeElement.contains(Wt)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Vo,5),M.wni(it,Dh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Eh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Wd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class Ml{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class _p{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Ur(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Ur(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new Ml([we.rootNodes],we)}return new Ml([[this._document.createTextNode(`${je}`)]])}return new Ml([])}}let pc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Kc=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Ur(this._zone,this._nativeElement,(ae,we)=>{we&&Ca(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Ur(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Ah{update(je){}close(je){}dismiss(je){}}const ad=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Zc=["animation","backdropClass"];class $d{_applyWindowOptions(je,ae){ad.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Zc.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function gl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Ih=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Ih||{});let Zf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":xa(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Ur(this._zone,ae,()=>ae.classList.remove("show"),we),Ur(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Ur(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&Ca(it),it.classList.add("show")},ae),Ur(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Qn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Ih.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Ih.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Ur(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Xs,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),qf=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(pc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Qn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Wt]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Wt.focus(),it.preventDefault()),ft===Wt&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ea(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Ah,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Wt=this._getContentRef(ae,Vt,we,ft,Ne);let Qt=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Wt.nodes),Ci=new $d(ii,Wt,Qt,Ne.beforeDismiss);return this._registerModalRef(Ci),this._registerWindowCmpt(ii),Ci.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{Ci.close(_i)},ft.dismiss=_i=>{Ci.dismiss(_i)},ft.update=_i=>{Ci.update(_i)},Ci.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),Qt&&Qt.instance&&Qt.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),Ci}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)(Kc,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Zf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):xa(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new Ml([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new Ml([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new Ml([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Ah,useValue:it}],parent:ae}),Wt=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),Qt=Wt.location.nativeElement;return ft.scrollable&&Qt.classList.add("component-host-scrollable"),this._applicationRef.attachView(Wt.hostView),new Ml([[Qt]],Wt.hostView,Wt)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),qc=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(qf),this._config=(0,M.WQX)(Wd)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),br=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[qc]})}return be})(),qd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Xl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let Jd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ld=0,eu=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Nl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),cd=(()=>{class be{constructor(){this._config=(0,M.WQX)(Jd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+ld++,this._popupService=new _p(eu),this._windowRef=null,this._positioning=ed()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(Bo([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function wp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function ar(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Wt=new Set,Qt=[];let ii;function Ci(Ai,_n){be.addEventListener(Ai,_n),Qt.push(()=>be.removeEventListener(Ai,_n))}function _i(Ai,_n){clearTimeout(ii),_n>0?ii=setTimeout(Ai,_n):Ai()}for(const[Ai,_n]of Vt)_n?(Ci(Ai,()=>{Wt.add(Ai),_i(()=>Wt.size>0&&we(),it)}),Ci(_n,()=>{Wt.delete(Ai),_i(()=>0===Wt.size&&Ne(),ft)})):Ci(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>Qt.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(xa(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ih=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ea=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ig=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),xc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),aa=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let Bh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const Vh=[Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh];let ah=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[Vh,Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Jt,vr:()=>ir,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Mt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Jt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),ui=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),_s=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),Fn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),zn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Di={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function Cs(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Di[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=Cs(xt).toLocaleLowerCase(),this.filteredItems.find($e=>Cs($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:Cs(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Mt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return Cs($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Mt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),rs=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=rs,Ti.value=Hi(It,rs.map(un=>un.value)),yt.push(Ti),yt.push(...rs)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let ws=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),kn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),jr=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),fo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const qr=new M.nKC("ng-select-selection-model");let ir=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const rs=this.selectedItems.find(un=>un.value===Hi);this.unselect(rs)},this.trackByOption=(Hi,rs)=>this.trackByFn?this.trackByFn(rs.value):rs,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Mt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Mt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Mt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(jr),M.rXU(qr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(fo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Jt,5,M.C4Q),M.wni($t,ui,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,_s,5,M.C4Q),M.wni($t,Fn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,zn,5,M.C4Q),M.wni($t,kn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(ws,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,ws,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:qr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>Zn,hp:()=>fn,FP:()=>Ai,yc:()=>Qt,Tg:()=>Wt,XI:()=>Ne,bG:()=>Tr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Mt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Jt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Mt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function ui(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function Fn(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function zn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Di(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Cs(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,Cs,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function ws(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function kn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function jr(xe,tt){}function fo(xe,tt){1&xe&&e.DNE(0,jr,0,0,"ng-template")}function qr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,ws,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,kn,1,0,"ChevronDownIcon",7)(9,fo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function ir(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,ir,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,ui,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,Fn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,zn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Di,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,qr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Jt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Pi=Math.ceil((nt+Ie)/7);for(let qi=0;qint){let Cn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:Cn.month,year:Cn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,Cn.month,Cn.year),selectable:this.isSelectable(zt-nt,Cn.month,Cn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Pi&&this.maxDate.toDateString()===Pi&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Pi=ue+1{let Yi=""+Pi;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Pi]:qi[Pi];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Pi=-1,qi=-1,Yi=!1,Cn=Ws=>{let cr=ue+1{let cr=Cn(Ws),co="@"===Ws?14:"!"===Ws?20:"y"===Ws&&cr?4:"o"===Ws?3:2,_c=new RegExp("^\\d{"+("y"===Ws?co:1)+","+co+"}"),Aa=u.substring(Tt).match(_c);if(!Aa)throw"Missing number at position "+Tt;return Tt+=Aa[0].length,parseInt(Aa[0],10)},Jn=(Ws,cr,co)=>{let Uo=-1,_c=Cn(Ws)?co:cr,Aa=[];for(let Sr=0;Sr<_c.length;Sr++)Aa.push([Sr,_c[Sr]]);Aa.sort((Sr,la)=>-(Sr[1].length-la[1].length));for(let Sr=0;Sr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Pi=1),ue=0;ue-1)for(oi=1,Pi=qi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Pi<=Ie);)oi++,Pi-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Pi=-1===Pi?1:Pi),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Pi)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Pi)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),rs=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],os=["*"],Js=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi,qi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Pi,"p-overlay-right-start":qi,"p-overlay-right-end":Yi}),ns=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Qr=xe=>({value:"visible",params:xe}),nr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function Vr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,Vr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Qr,e.sMw(7,ns,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,nr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,Js,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const Jl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},pr=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([Jl])],ngContentSelectors:os,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(pr)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var Jr=He(38757);const bn=["element"],Ko=["content"],nl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),eo=(xe,tt)=>({$implicit:xe,options:tt}),sl=xe=>({"p-scroller-loading":xe}),rl=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ol=(xe,tt)=>({rows:xe,columns:tt});function ua(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ua,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u.loadedItems,u.getContentOptions()))}}function go(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,go,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u,ue.getOptions(ne)))}}function pa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,sl,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function Dr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function fa(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,fa,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function Qi(xe,tt){1&xe&&e.eu8(0)}function zr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Do(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ga(xe,tt){if(1&xe&&e.DNE(0,zr,2,5,"ng-container",6)(1,Do,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function mo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ga,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,rl,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ma(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,pa,3,7,"ng-template",null,2,e.C5r)(6,Dr,1,2,"div",8)(7,mo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function al(xe,tt){1&xe&&e.eu8(0)}function Eo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,al,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,eo,u.items,e.l_i(2,ol,u._items,u.loadedColumns)))}}function er(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Eo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let ll=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Pi=(Jn=0,Ds)=>Jn<=Ds?0:Jn,qi=(Jn,Ds,Ws)=>Jn*Ds+Ws,Yi=(Jn=0,Ds=0)=>this.scrollTo({left:Jn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,Cn=!1,nn=!1;this.both?(tn={rows:Pi(u[0],zt[0]),cols:Pi(u[1],zt[1])},Yi(qi(tn.cols,oi[1],ai.left),qi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,Cn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Pi(u,zt),this.horizontal?Yi(qi(tn,oi,ai.left),nt):Yi(Tt,qi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),Cn=tn!==Ie),this.isRangeChanged=Cn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Pi=0)=>this.scrollTo({left:oi,top:Pi,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,Jn)=>nn?nn>Jn?nn-Jn:nn:0,nt=(nn,Jn)=>Math.floor(nn/(Jn||nn)),Tt=(nn,Jn,Ds,Ws,cr,co)=>nn<=cr?cr:co?Ds-Ws-cr:Jn+cr-1,zt=(nn,Jn,Ds,Ws,cr,co,Uo)=>nn<=co?0:Math.max(0,Uo?nnJn?Ds:nn-2*co),ai=(nn,Jn,Ds,Ws,cr,co=!1)=>{let Uo=Jn+Ws+2*cr;return nn>=cr&&(Uo+=cr+1),this.getLast(Uo,co)},oi=Ie(ne.scrollTop,ue.top),Pi=Ie(ne.scrollLeft,ue.left);let qi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,Cn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,Jn=this.lastScrollPos.left<=Pi;if(!this._appendOnly||this._appendOnly&&(nn||Jn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Pi,this._itemSize[1])},Ws={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],Jn)};qi={rows:zt(Ds.rows,Ws.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,Ws.cols,this.first.cols,0,0,this.d_numToleratedItems[1],Jn)},Yi={rows:ai(Ds.rows,qi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,qi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=qi.rows!==this.first.rows||Yi.rows!==this.last.rows||qi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,Cn={top:oi,left:Pi}}}else{const nn=this.horizontal?Pi:oi,Jn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&Jn){const Ds=nt(nn,this._itemSize);qi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,Jn),this.first,0,0,this.d_numToleratedItems,Jn),Yi=ai(Ds,qi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=qi!==this.first||Yi!==this.last||this.isRangeChanged,Cn=nn}}return{first:qi,last:Yi,isRangeChanged:tn,scrollPos:Cn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(bn,5),e.GBs(Ko,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:nl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ma,8,16,"ng-container",6)(1,er,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Jr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),Gr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Jr.N,Pe.Gg]})}return xe})(),cl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Er=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),sr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Ar=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),Zo=xe=>({$implicit:xe});function ba(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Ao=["container"],Fa=["filter"],Ba=["focusInput"],va=["editableInput"],Xs=["items"],to=["scroller"],Hr=["overlay"],io=["firstHiddenFocusableEl"],ec=["lastHiddenFocusableEl"],Ys=xe=>({options:xe}),Mn=(xe,tt)=>({$implicit:xe,options:tt}),Io=()=>({});function ya(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,Zo,u.selectedOption))}}function bo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function hl(xe,tt){if(1&xe&&e.DNE(0,bo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Oo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,ya,2,1,"ng-container",23)(3,qo,1,4,"ng-container",24)(4,hl,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Zi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Qo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function vn(xe,tt){}function no(xe,tt){1&xe&&e.DNE(0,vn,0,0,"ng-template")}function Ir(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,no,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Ks(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){1&xe&&e.eu8(0)}function rr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Or,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u.filterOptions))}}function Pr(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Bn(xe,tt){}function fr(xe,tt){1&xe&&e.DNE(0,Bn,0,0,"ng-template")}function Jo(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,fr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function tc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Pr,1,1,"SearchIcon",33)(4,Jo,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,rr,2,4,"ng-container",23)(2,tc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Xh(xe,tt){1&xe&&e.eu8(0)}function Yh(xe,tt){if(1&xe&&e.DNE(0,Xh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Mn,u,ne))}}function Ac(xe,tt){1&xe&&e.eu8(0)}function so(xe,tt){if(1&xe&&e.DNE(0,Ac,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u))}}function Kh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,so,1,4,"ng-template",49),e.bVm())}function Fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Yh,1,5,"ng-template",21)(3,Kh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Mn,ne.visibleOptions(),e.lJ4(2,Io)))}}function Ic(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ic,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,Zo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function vo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function Zs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function dl(xe,tt){1&xe&&e.eu8(0,null,12)}function ul(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,Zs,2,1,"ng-container",23)(2,dl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function pl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Oc(xe,tt){1&xe&&e.eu8(0,null,13)}function ic(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,pl,2,1,"ng-container",23)(2,Oc,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,vo,2,2,"ng-template",51)(3,ul,3,6,"li",52)(4,ic,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Bl(xe,tt){1&xe&&e.eu8(0)}function fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Ks,1,0,"ng-container",31)(4,Nl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Fl,4,10,"p-scroller",41)(7,Lr,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Bl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Pc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Lc),multi:!0};let nc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,ba,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Ar,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,Zo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Lc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Ao,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(va,5),e.GBs(Xs,5),e.GBs(to,5),e.GBs(Hr,5),e.GBs(io,5),e.GBs(ec,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Pc])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Oo,6,20,"span",15)(3,Zi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Ir,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,fl,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,cl,ll,rs,A.A,$,sr,nc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Po=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Er,ve.Z,Gr,un,A.A,$,sr,La,Pe.Gg,Gr]})}return xe})(),Rc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),jl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),tr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Nc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Lo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),xa=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Ns=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ea=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),gl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),yo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),xo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var _a=He(22242);const Ca=["input"],Vl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Fc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),ml=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ta(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Ur(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ta,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function ia(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Ur,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function na(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,na,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Oi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Oi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function es(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function as(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ss(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,as,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function Bs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,es,1,2,"span",13)(2,ss,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Rr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Gn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function pi(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,pi,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Gn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Rr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>or),multi:!0};let or=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Pi,currencyCharIndex:qi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=qi>=nt?qi-1:Pi>=nt?Pi:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,Cn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,Cn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ca,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,ia,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,Bs,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,Vl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,_a.S,Z._f,A.A,xo,yo],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),wa=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,_a.u,Z.tm,A.A,xo,yo,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),gr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Ro=xe=>({"p-disabled":xe}),sc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Ta(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function zl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function Co(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rc(xe,tt){}function Sa(xe,tt){1&xe&&e.DNE(0,rc,0,0,"ng-template")}function No(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Sa,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function bl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,Co,1,1,"AngleDoubleLeftIcon",6)(2,No,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sn(xe,tt){}function oc(xe,tt){1&xe&&e.DNE(0,sn,0,0,"ng-template")}function vl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,oc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Fo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function ac(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Fo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function yl(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function js(xe,tt){1&xe&&e.eu8(0)}function lc(xe,tt){if(1&xe&&e.DNE(0,js,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function mr(xe,tt){1&xe&&e.DNE(0,lc,1,1,"ng-template",28)}function Vs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,yl,1,1,"ng-template",26)(2,mr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Gl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sa(xe,tt){}function xl(xe,tt){1&xe&&e.DNE(0,sa,0,0,"ng-template")}function Wr(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,xl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Bc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function vh(xe,tt){}function Zh(xe,tt){1&xe&&e.DNE(0,vh,0,0,"ng-template")}function Qn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Zh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function _l(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Bc,1,1,"AngleDoubleRightIcon",6)(2,Qn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Qh(xe,tt){1&xe&&e.eu8(0)}function jf(xe,tt){if(1&xe&&e.DNE(0,Qh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,sc,u))}}function Ju(xe,tt){1&xe&&(e.qex(0),e.DNE(1,jf,1,4,"ng-template",32),e.bVm())}function ep(xe,tt){1&xe&&e.eu8(0)}function Ld(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Jh(xe,tt){1&xe&&e.DNE(0,Ld,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Ju,2,0,"ng-container",27)(2,Jh,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Ta,2,5,"div",2)(2,zl,2,1,"span",3)(3,bl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,vl,2,1,"span",7),e.k0s(),e.DNE(7,ac,2,1,"span",8)(8,Vs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,Gl,1,1,"AngleRightIcon",6)(11,Wr,2,1,"span",7),e.k0s(),e.DNE(12,_l,3,7,"button",11)(13,qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Lc,Pe.Ei,or,V.BC,V.vS,ve.n,ms,gr,_o,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Po,wa,V.YN,Pe.Gg,ve.Z,ms,gr,_o,en,Po,wa,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],ei=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Xt=(xe,tt)=>({$implicit:xe,index:tt});function Li(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function pn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Li,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function Dn(xe,tt){1&xe&&e.eu8(0)}function qs(xe,tt){if(1&xe&&e.DNE(0,Dn,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Xt,ne,ue))}}function Hl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,pn,4,3,"ng-container",5)(2,qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,ei,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Cl={provide:V.kq,useExisting:(0,e.Rfq)(()=>wl),multi:!0};let wl=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Cl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Hl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),cc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const Wa=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),tp=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),ed=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function ip(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function np(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Rd(xe,tt){}function sp(xe,tt){1&xe&&e.DNE(0,Rd,0,0,"ng-template")}function Bo(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,sp,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function yh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,np,1,2,"CheckIcon",9)(2,Bo,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function rp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ip,1,2,"span",7)(2,yh,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function op(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Vf(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function zf(xe,tt){}function Ts(xe,tt){1&xe&&e.DNE(0,zf,0,0,"ng-template")}function Nd(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Ts,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function jc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Vf,1,2,"TimesIcon",9)(2,Nd,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function $r(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,op,1,2,"span",7)(2,jc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Gf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,ed,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const xh={provide:V.kq,useExisting:(0,e.Rfq)(()=>Vc),multi:!0};let Vc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([xh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,rp,3,2,"ng-container",5)(6,$r,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Gf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,Wa,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,tp,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,tr,A.A],encapsulation:2,changeDetection:0})}return xe})(),jo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,tr,A.A,Pe.Gg]})}return xe})();var zc=He(21413);const td=["container"],Hf=["resizeHelper"],$a=["reorderIndicatorUp"],ap=["reorderIndicatorDown"],lp=["wrapper"],cp=["table"],Gc=["thead"],_h=["tfoot"],Ch=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Xa=xe=>({height:xe}),on=(xe,tt)=>({$implicit:xe,options:tt}),wh=xe=>({columns:xe}),Uf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function id(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function Wf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function hc(xe,tt){}function Ya(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ya,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function hp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Wf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function dp(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,id,1,2,"i",22)(2,hp,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function up(xe,tt){1&xe&&e.eu8(0)}function pp(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,up,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function xn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function Ka(xe,tt){1&xe&&e.DNE(0,xn,1,1,"ng-template",30)}function Hc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,Hc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function ra(xe,tt){1&xe&&e.eu8(0)}function oa(xe,tt){if(1&xe&&e.DNE(0,ra,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,oa,1,1,"ng-template",32)}function jd(xe,tt){1&xe&&e.eu8(0)}function fp(xe,tt){if(1&xe&&e.DNE(0,jd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function fm(xe,tt){1&xe&&e.DNE(0,fp,1,1,"ng-template",33)}function gp(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,gp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Sl(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function dc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,Ka,1,0,null,16)(2,Uc,1,0,null,16)(3,Bd,1,0,null,16)(4,fm,1,0,null,16)(5,Sl,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function ka(xe,tt){1&xe&&e.eu8(0)}function kl(xe,tt){if(1&xe&&e.DNE(0,ka,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,on,u,ne))}}function $f(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,kl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Xa,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function mp(xe,tt){1&xe&&e.eu8(0)}function bp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,mp,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,on,u.processedData,e.eq3(2,wh,u.columns)))}}function Th(xe,tt){1&xe&&e.eu8(0)}function Sh(xe,tt){1&xe&&e.eu8(0)}function kh(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function nd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Wc(xe,tt){1&xe&&e.eu8(0)}function Xf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Wc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Mh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,Th,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,Sh,1,0,"ng-container",37),e.k0s(),e.DNE(6,kh,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,nd,1,2,"tbody",42)(9,Xf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Uf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Vd(xe,tt){1&xe&&e.eu8(0)}function vp(xe,tt){if(1&xe&&e.DNE(0,Vd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function sd(xe,tt){1&xe&&e.DNE(0,vp,1,1,"ng-template",30)}function zd(xe,tt){1&xe&&e.eu8(0)}function Gd(xe,tt){if(1&xe&&e.DNE(0,zd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function rd(xe,tt){1&xe&&e.DNE(0,Gd,1,1,"ng-template",31)}function Yf(xe,tt){1&xe&&e.eu8(0)}function Xr(xe,tt){if(1&xe&&e.DNE(0,Yf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function uc(xe,tt){1&xe&&e.DNE(0,Xr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function yp(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Kf(xe,tt){1&xe&&e.DNE(0,yp,1,1,"ng-template",33)}function xp(xe,tt){1&xe&&e.eu8(0)}function Hd(xe,tt){if(1&xe&&e.DNE(0,xp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Ud(xe,tt){1&xe&&e.DNE(0,Hd,1,1,"ng-template",34)}function $c(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,sd,1,0,null,16)(2,rd,1,0,null,16)(3,uc,1,0,null,16)(4,Kf,1,0,null,16)(5,Ud,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Xc(xe,tt){1&xe&&e.eu8(0)}function Vo(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Xc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Dh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Yc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function od(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Eh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Yc,1,0,"ArrowDownIcon",16)(3,od,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function Wd(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function Ml(xe,tt){}function _p(xe,tt){1&xe&&e.DNE(0,Ml,0,0,"ng-template")}function pc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,Wd,1,0,"ArrowUpIcon",16)(3,_p,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const Kc=["pTableBody",""],Ah=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),ad=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Zc=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),$d=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Ih=(xe,tt)=>({$implicit:xe,frozen:tt});function Zf(xe,tt){1&xe&&e.eu8(0)}function qf(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Zf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function qc(xe,tt){1&xe&&e.eu8(0)}function br(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Xd(xe,tt){1&xe&&e.eu8(0)}function fc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,ad,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function Wl(xe,tt){1&xe&&e.eu8(0)}function Cr(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Qf(xe,tt){if(1&xe&&e.DNE(0,qf,2,8,"ng-container",2)(1,br,2,8,"ng-container",0)(2,fc,2,10,"ng-container",0)(3,Cr,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qf,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Dl(xe,tt){1&xe&&e.eu8(0)}function Oh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Dl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Ma,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Jc(xe,tt){1&xe&&e.eu8(0)}function Kd(xe,tt){1&xe&&e.eu8(0)}function gc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jc,1,0,"ng-container",4)(2,gc,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Ph(xe,tt){if(1&xe&&e.DNE(0,Oh,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zd,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ph,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Qd(xe,tt){1&xe&&e.eu8(0)}function eh(xe,tt){1&xe&&e.eu8(0)}function Lh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,eh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function $l(xe,tt){if(1&xe&&e.DNE(0,Qd,1,0,"ng-container",4)(1,Lh,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Zc,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function mc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$l,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function El(xe,tt){1&xe&&e.eu8(0)}function wo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,El,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function bc(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function Cp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Xl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function ar(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Cp,1,1,"SortAltIcon",3)(2,Xl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function wp(xe,tt){}function Jd(xe,tt){1&xe&&e.DNE(0,wp,0,0,"ng-template")}function ld(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,Jd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function eu(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function cd(xe,tt){1&xe&&e.eu8(0)}function th(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function Jf(xe,tt){1&xe&&e.eu8(0)}function tu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jf,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new zc.B;selectionSource=new zc.B;contextMenuSource=new zc.B;valueSource=new zc.B;totalRecordsSource=new zc.B;columnsSource=new zc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Pi,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=qi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Pi?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Pi=this.findIndexInSelection(nt);this._selection=this.selection.filter((qi,Yi)=>Yi!=Pi),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):Ieqi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Pi=>{let qi=le.BF.resolveFieldData(oi,Pi.field);return qi=null!=qi?this.exportFunction?this.exportFunction({data:qi,field:Pi.field}):String(qi).replace(/"/g,'""'):"",'"'+qi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(td,5),e.GBs(Hf,5),e.GBs($a,5),e.GBs(ap,5),e.GBs(lp,5),e.GBs(cp,5),e.GBs(Gc,5),e.GBs(_h,5),e.GBs(Ch,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,dp,3,2,"div",11)(3,pp,2,1,"div",12)(4,dc,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,$f,3,17,"p-scroller",15)(8,bp,2,7,"ng-container",16)(9,Mh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,$c,6,24,"p-paginator",13)(12,Vo,2,1,"div",17)(13,Dh,2,0,"div",18)(14,Eh,4,2,"span",19)(15,pc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,ll,Rc,jl,Jr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kc,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,2,"ng-container",0)(1,qd,2,2,"ng-container",0)(2,mc,2,2,"ng-container",0)(3,wo,2,5,"ng-container",0)(4,Da,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Wt=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),Qt=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,ar,4,3,"ng-container",0)(1,ld,2,4,"span",1)(2,eu,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Ns,ea,Fs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),fn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Rn=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),Zn=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(fn,8),e.rXU(Rn,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,th,2,1,"ng-container",0)(1,tu,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),Tr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,_a.u,Po,V.YN,Z.tm,cc,Hi,wa,jo,Gr,Rc,jl,Jr.N,Ns,ea,Fs,tr,Nc,Lo,xa,gl,Pe.Gg,Gr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/main.ed02e8e4f42d3a49.js b/www/z4d/main.ed02e8e4f42d3a49.js deleted file mode 100644 index 70113717e..000000000 --- a/www/z4d/main.ed02e8e4f42d3a49.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[792],{38117:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ui:()=>y,W4:()=>a,Vy:()=>fe,o6:()=>f,s0:()=>l});var M=He(60177),e=He(21626),V=He(93331),Pe=He(19664),Z=He(20546),ie=He(54438);let re=(()=>{class d{intercept(k,p){if(!/^(http|https):/i.test(k.url)){let S=null;S=Z.c.api_url+k.url,k=k.clone({url:S})}return p.handle(k)}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var ve=He(71985),le=function(d){return d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Debug=4]="Debug",d}(le||{});class fe{source;static level=le.Debug;static outputs=[];static enableProductionMode(){fe.level=le.Warning}constructor(C){this.source=C}debug(...C){this.log(console.log,le.Debug,C)}info(...C){this.log(console.info,le.Info,C)}warn(...C){this.log(console.warn,le.Warning,C)}error(...C){this.log(console.error,le.Error,C)}log(C,k,p){if(k<=fe.level){const S=this.source?["["+this.source+"]"].concat(p):p;C.apply(console,S),fe.outputs.forEach(j=>j.apply(j,[this.source,k,...p]))}}}const pe=new fe("HttpCacheService"),J="httpCache";let te=(()=>{class d{cachedData={};storage=null;constructor(){this.loadCacheData()}setCacheData(k,p,S){this.cachedData[k]={lastUpdated:S||new Date,data:p},pe.debug(`Cache set for key: "${k}"`),this.saveCacheData()}getCacheData(k){const p=this.cachedData[k];return p?(pe.debug(`Cache hit for key: "${k}"`),p.data):null}getHttpCacheEntry(k){return this.cachedData[k]||null}clearCache(k){delete this.cachedData[k],pe.debug(`Cache cleared for key: "${k}"`),this.saveCacheData()}cleanCache(k){k?Object.entries(this.cachedData).forEach(([p,S])=>{k>=S.lastUpdated&&delete this.cachedData[p]}):this.cachedData={},this.saveCacheData()}setPersistence(k){this.cleanCache(),this.storage="local"===k||"session"===k?window[k+"Storage"]:null,this.loadCacheData()}saveCacheData(){this.storage&&this.storage.setItem(J,JSON.stringify(this.cachedData))}loadCacheData(){const k=this.storage?this.storage.getItem(J):null;this.cachedData=k?JSON.parse(k):{}}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),$=(()=>{class d{httpCacheService;forceUpdate=!1;constructor(k){this.httpCacheService=k}configure(k){const p=new d(this.httpCacheService);return k&&k.update&&(p.forceUpdate=!0),p}intercept(k,p){return"GET"!==k.method?p.handle(k):new ve.c(S=>{const j=this.forceUpdate?null:this.httpCacheService.getCacheData(k.urlWithParams);null!==j?(S.next(new e.cS(j)),S.complete()):p.handle(k).subscribe(H=>{H instanceof e.cS&&this.httpCacheService.setCacheData(k.urlWithParams,H),S.next(H)},H=>S.error(H),()=>S.complete())})}static \u0275fac=function(p){return new(p||d)(ie.KVO(te))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();var A=He(99437);const B=new fe("ErrorHandlerInterceptor");let F=(()=>{class d{intercept(k,p){return p.handle(k).pipe((0,A.W)(S=>this.errorHandler(S)))}errorHandler(k){throw Z.c.production||B.error("Request error",k),k}static \u0275fac=function(p){return new(p||d)};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();class L{next;interceptor;constructor(C,k){this.next=C,this.interceptor=k}handle(C){return this.interceptor.intercept(C,this.next)}}const D=new ie.nKC("HTTP_DYNAMIC_INTERCEPTORS");let I=(()=>{class d extends e.Qq{httpHandler;injector;interceptors;constructor(k,p,S=[]){super(k),this.httpHandler=k,this.injector=p,this.interceptors=S,this.interceptors||(this.interceptors=[this.injector.get(re),this.injector.get(F)])}cache(k){const p=this.injector.get($).configure({update:k});return this.addInterceptor(p)}skipErrorHandler(){return this.removeInterceptor(F)}disableApiPrefix(){return this.removeInterceptor(re)}request(k,p,S){const j=this.interceptors.reduceRight((H,Y)=>new L(H,Y),this.httpHandler);return new e.Qq(j).request(k,p,S)}removeInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.filter(p=>!(p instanceof k)))}addInterceptor(k){return new d(this.httpHandler,this.injector,this.interceptors.concat([k]))}static \u0275fac=function(p){return new(p||d)(ie.KVO(e.hR),ie.KVO(ie.zZn),ie.KVO(D,8))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})();const E=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plugin Admin Interface","About":"About","Version":"Version","NODATA":"No data to display","TOTAL":"Total {totalRecords}","SELECTED":"selected","dashboard":"Dashboard","dashboard.button.refresh":"Refresh","dashboard.trafic.title":"Plugin Status","dashboard.health.title":"Plugin devices","dashboard.devices.state.label":"Known devices of the plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"disabled","dashboard.devices.notseen":"no news","dashboard.devices.notReachable":"lost","dashboard.devices.others":"unknow","dashboard.health.comment":"Live = devices alive
    Lost = devices away from the network
    No news = devices which haven\'t reported on the last 6 hours
    Unknown = devices with status unknown","dashboard.traffic.title":"Send & Receive","dashboard.trafic.label":"Send / Receive messages","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = number of incoming messages since the start of the plugin
    Rx = number of outgoing messages since the start of the plugin","dashboard.trend.title":"Statistics","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = number of sent messages per second
    Rx/s = number of received messages per second
    Load = number of messages in queue","dashboard.trafic.maxload.label":"Load","dashboard.trafic.maxload":"peak","dashboard.trafic.currentload":"current","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"Status of non-disabled objects","dashboard.device.title":"Type of devices","dashboard.devices.label":"Devices","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"end devices","dashboard.devices.comment":"Routers = main powered device which participates in the mesh network.
    End device = device which is not capable of routing messages, and which is not listening while idle (most of the time, it is a battery based device)","dashboard.battery.title":"Battery","dashboard.devices.battery.label":"Battery","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"For devices equipped with a battery, the battery status is reported here.","dashboard.optimized.title":"Optimized devices","dashboard.optimized.comment":"Optimized = devices for which a configuration has been provided to the plugin in order to work as expected.
    Non optimized = devices which could not be fully working and/or could generate unexpected load or traffic.
    More information in the wiki","dashboard.devices.optimized":"optimized ","dashboard.devices.not.optimized":"non-optimized","dashboard.devices.optimized.label":"Devices","dashboard.popup.device.header":"Object list","dashboard.popup.device.subtitle":"This list is filtered by the item clicked in the dashboard.","dashboard.popup.device.button.close":"Close","dashboard.health.starttime":"Started at ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"There is an update available for the plugin .
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"A new firmware is available for the ZiGate More infos .","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Plugin info","dashboard.plugin.subtitle":"Provides plugin information","dashboard.stats.header":"Plugin statistics","dashboard.stats.subtitle":"Provides coordinator statistics in terms of message transmission and reception","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Plugin Groups (json)","dashboard.coordinator.header":"Coordinator Information","dashboard.coordinator.subtitle":"Provides Coordinator information","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In Db","consent.banner.header":"Consent","consent.banner.description":"To improve our development and focus on where it is needed. We use cookies for technical purposes and, with your consent, we will collect mainly Plugin version, Coordinator, Firmware version and Size of the network (number of router and number of end devices).
    You can consent by using the \'Accept\' button, and not concent by using the \'Reject\' button. If you want to change your mind later, you can update this setting in the Settings menu.
    More info on the wiki.","consent.banner.accept":"Accept","consent.banner.decline":"Reject","management":"Management","device":"Device Management","device.byname.subtitle":"List all Hardware devices paired with the plugin, and allows you to enter a friendly name for each device
    It shows the friendly device name in the network section instead of a four digit code.
    The objects marked in orange are not optimized with the plugin. Please follow the procedure on the wiki.","device.byname.capabilities.column":"Capabilities","device.byname.devicename.column":"Friendly Name","device.byname.header":"Device management","device.byname.trash.column":"Del.","device.byname.optimized.column":"Optimized","device.byname.health.column":"Health","device.byname.battery.column":"Battery","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Parameters","device.byname.devicename.enabled":"Device enabled","device.byname.placeholder":"type filter here ....","device.byname.shortid.column":"Short id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validate","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Delete device?","device.byname.alert.subject":"Are you sure?","device.byname.alert.delete":"Delete","device.byname.alert.cancel":"Cancel","device.byname.error.notify":"Please use the Enabled switch","device.byname.parameter.alert.save":"Validate","device.byname.parameter.alert.cancel":"Cancel","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Set specific parameters ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Delete","device.byname.optimized.popover.title.ok":"The object is optimized with the plugin","device.byname.optimized.popover.text.ok":"Click on the icon to copy the object info","device.byname.optimized.popover.title.ko":"The object is not optimized with the plugin","device.byname.optimized.popover.text.ko":"Click on the icon to copy the object info","group":"Group Management","group.create.devices.column":"Devices selected in the group","group.create.groupname.column":"Group name","group.create.header":"Group management","group.create.placeholder":"type filter here ....","group.create.shortid.column":"Group id","group.create.subtitle":"Allow edit, create and remove groups
    Before modifications, make a full group analisys on the page Admin > Groups.
    Before validation, make sure that all routers are connected to the ZigBee network.
    After validation, make a special analisys on the router(s) in order to check that the changes have been taken.
    Do not do all changes at once, but prefer to do it step by step with small changes.","group.create.validate.button":"Validate","group.create.add.button":"Add a new Group","group.create.delete.button":"Delete","group.create.coordinator.column":"Coordinator (in the group)","group.reloadplugin.alert.title":"Plugin Reload","group.reloadplugin.alert.subject":"Groups have been updated, plugin need to be restarted","group.reloadplugin.alert.cancel":"Close","header.popover.title":"Restart needed","header.popover.text":"Some changes are pending a plugin restart is needed","network":"Network","network.topo":"Topology","network.topo.header":"Topology reports","network.topo.subtitle":"List of the saved reports ","network.topo.visu.header":"Topology diagram","network.topo.visu.subtitle":"The Topology diagram shows all links between 2 nodes. If you leave the cursor on a link you\'ll see the link direction as well as the link quality (from 0 to 255 = best).","network.topo.visu.network.header":"Network graph","network.topo.visu.network.subtitle":"Will draw a network graph of your ZigBee environment.
    Click on an object to have its child objects displayed in a table below.","network.topo.visu.network.filter":"Name of node to filter","network.topo.device.visu.network.chart.title":"Network graph","network.topo.visu.delete.button":"Delete","network.topo.device.batterylevel.column":"Battery","network.topo.device.deviceid.column":"Device id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Name","network.topo.device.visu.header":"Devices List","network.topo.device.visu.subtitle":"Provides the list of devices managed by coordinator. You\'ll get also a reference to the Widget names and some other information from Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topology scan","network.topology.req.subtitle":"This will trigger a Topology scan (run in background)","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"List of linked objects of {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"The array displays the LQI value between the selected object and all of its child objects.","network.topo.visu.network.relation.to":"Children","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"The selected object doesn\'t have any children.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Health","network.topo.visu.network.relation.battery":"Battery","network.energy":"Interference level","network.stats.header":"Interference level reports","network.stats.subtitle":"List of saved reports ","network.stats.visu.delete.button":"Delete","network.inter.req.header":"Short Interference scan","network.inter.req.subtitle":"An Interference scan report will be provided. It will report Interference level between routers and coordinator. The higher the value, the worst it is.","network.inter.req.button":"scan","network.full.req.header":"Full Interference scan","network.full.req.subtitle":"As for the short Interference scan, the report will provide Interference level between all routers and the coordinator, handling all cross-communications.
    This report might take a while when the number of routers is high, n((n-1)/2), for 5 routers it is 10 combinations, for 10 routers 45","network.full.req.button":"scan full","network.stats.detail.visu.header":"Interference level","network.stats.detail.visu.subtitle":"The higher the number, the more interference there is (0 to 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fail : ","network.stats.detail.visu.chart.title":"Interference level","network.stats.detail.visu.chart.y-axis":"Interference level","network.stats.detail.visu.chart.x-axis":"Channel","admin":"Admin","admin.pairing":"Provisionning","admin.permittojoin.label":"Accept new hardware","admin.permittojoin.on.notify":"Accept new hardware On","admin.permittojoin.off.notify":"Accept new hardware Off","admin.assistprovisionning.title":"Pairing a new device with the assitant","admin.assistprovisionning.subtitle":"Click on Pairing and follow the instructions ","admin.assistprovisionning.go.button":"Pairing","admin.assistprovisionning.alert.title":"Pairing assistant - Waiting for new device","admin.assistprovisionning.alert.subject":"Make a Reset on your device to launch the pairing process. Refer to the device documentation if needed.","admin.assistprovisionning.alert.state":"Status: ","admin.assistprovisionning.alert.description":"Description: ","admin.assistprovisionning.alert.nwkid":"Short NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget List: ","admin.assistprovisionning.alert.cancel":"Exit","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Device : ","admin.assistprovisionning.alert.model":"Model : ","admin.assistprovisionning.alert.plugincertified":"Plugin Certification: ","admin.assistprovisionning.alert.Failed":"Failed (Something went wrong, check the log for more details)","admin.assistprovisionning.alert.inDB":"Successful (check if widgets have been created)","admin.assistprovisionning.alert.Unexpected":"Unexpected (Contact support)","admin.permittojoin.title":"Pairing a new device for a period of time","admin.permittojoin.subtitle":"Click on the button to choose the period of time ","admin.permittojoin.validate.button":"Validate","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanent Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing mode Off","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Pairing mode On for 4 minutes","admin.permittojoin.notify":"Pairing mode changed","admin.permittojoinrouter.title":"Pairing a new device on a router","admin.permittojoinrouter.subtitle":"Permit to pair a device on a specific router ","admin.permittojoinrouter.devices.placeholder":"List of routers","admin.fullreset.title":"Preparing device for full reset","admin.fullreset.subtitle":"If you want to do a hard reset of an existing provisioned device in Domoticz, it is advised to indicate the plugin of such event happening. Then the plugin will make sure to redo a full device discovery and set whatever as been set during the first pairing","admin.fullreset.device.placeholder":"Select a device","admin.fullreset.button":"Reset mode","admin.fullreset.notify":"Reset mode activated","admin.recreate.title":"Recreate widget(s) of existing device","admin.recreate.subtitle":"Will crete or recreate all widgets of a given device. It will use the latest configuration if applicable. You might get duplication widgets in Domoticz, so make sure to remove those.","admin.recreate.device.placeholder":"Select a device","admin.recreate.button":"Recreate widget","admin.recreate.notify":"Recreate widget started","admin.group":"Group","admin.rescan.group.title":"Complete analysis of the groups","admin.rescan.group.subtitle":"Ask each router to know if it belongs to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.rescan.group.button":"Full scan","admin.scan.group.device.title":"Selective analysis of the groups","admin.scan.group.device.subtitle":"Ask one or more router(s) to know if it (they) belong(s) to one or more groups
    The result wil be in the Group management.

    Make sure ALL the routers are connected to the ZigBee network before launching the analysis.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Select router(s) to scan","admin.coordinator":"Coordinator","admin.coordinator.swreset.title":"Coordinator Soft reset","admin.coordinator.swreset.subtitle":"Will restart the coordinator (no loss of paired devices) ","admin.coordinator.swreset.button":"Soft reset","admin.coordinator.swreset.notify":"Coordinator restart started","admin.coordinator.switchchannel.title":"Coordinator change channel","admin.coordinator.switchchannel.subtitle":"Will change the coordinator channel to the selected one, and will broadcast the change.
    ATTENTION, while routers usally switch to the new channel, none Zigbee 3.0 End Device won\'t and you will have to reset them to get them rejoining the new channel.","admin.coordinator.switchchannel.placeholder":"Coordinator channel (0 default)","admin.coordinator.switchchannel.button":"Change channel","admin.coordinator.switchchannel.notify":"Channel changing started","admin.erasepdm.title":"Erase ZiGate","admin.erasepdm.subtitle":"Will erase the permanent data memory of ZiGate (You will lose all paired devices)
    You must enable the eraseZigatePDM parameter in Advanced Setting before","admin.erasepdm.button":"erase","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Erase ZiGate, Are you sure?","admin.erasepdm.alert.subject":"ATTENTION, last chance !!!!!","admin.erasepdm.alert.cancel":"Cancel","admin.erasepdm.alert.erase":"Erase","admin.plugin":"Plugin","admin.plugin.reload.title":"Restart plugin","admin.plugin.reload.subtitle":"Will restart the plugin ","admin.plugin.reload.button":"Restart","admin.plugin.reload.notify":"Plugin restarting","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Username","admin.plugin.reload.password":"Password","admin.plugin.reload.host":"Hostname","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Restart plugin, Are you sure?","admin.plugin.reload.alert.subject":"ATTENTION, last chance !!!!!","admin.plugin.reload.alert.cancel":"Cancel","admin.plugin.reload.alert.erase":"Restart","admin.plugin.update.title":"Plugin Upgrade","admin.plugin.update.subtitle":"Upgrade the plugin to the most up to date version in the branch you are.
    If the upgrade goes well, you will be asked to restart the plugin, otherwise you\'ll have to do the upgrade manually.","admin.plugin.update.button":"Start upgrade (can take several minutes)","admin.plugin.update.success":"You can restart the plugin now","admin.plugin.update.error":"Please check the log file, and eventually correct manually","admin.firmware":"Firmware","admin.firmware.title":"Devices firmware","admin.firmware.subtitle":"Update device firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"list of available firmware","admin.firmware.manufacturer.list":"list of manufacturer","admin.firmware.devices.list":"list of devices","admin.firmware.force":"force update","admin.firmware.alert.title":"title alert","admin.firmware.alert.subject":"subject alert","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"cancel","admin.firmware.alert.list.devices":"list of devices","admin.firmware.alert.filename":"file name","admin.firmware.alert.device":"Device ","admin.firmware.alert.brand":"Brand ","settings":"Settings","setting.header":"Settings","setting.subtitle":"Allows you to visualize and edit the various plugin settings
    Some require a restart of the plugin.","setting.validate.button":"Validate","setting.reinit.button":"Settings (default)","setting.advanced.button":"Advanced settings","setting.normal.button":"Normal settings","setting.help.link":"More information on the settings can be found on the Wiki","setting.help.legend":"These are all the plugin settings that can be updated.","setting.header.Services":"Available services","setting.subtitle.Services":"Enable the services you want to be active","useDomoticzLog":"Use Domoticz Log","enablegroupmanagement":"Enable Groups","zigatePartOfGroup0000":"Create Group 0000","allowRemoveZigateDevice":"Removal on Coordinator","resetPermit2Join":"Reset permit to join at startup","forcePollingAfterAction":"Get device status after action","enableReadAttributes":"Enable Polling","blueLedOnOff":"Enable Coordinator Blue Led","setting.reloadplugin.alert.title":"Plugin Reload","setting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","setting.reloadplugin.alert.cancel":"Close","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Settings have been updated, Coordinator needs to be reset (most likely, all devices will require re-pairing).","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Settings have been updated, PDM needs to be erased (all devices will require re-pairing)","setting.eraseplugin.alert.cancel":"Close","Ping":"Enable Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Settings on how to access Domoticz API","setting.header.WebInterface":"Web Interface settings","setting.subtitle.WebInterface":"Allows to enable/disable Web UI","enableWebServer":"Enable web User Interface","setting.header.DeviceManagement":"Device Management settings","setting.subtitle.DeviceManagement":"Here are all settings related to Devices and how the coordinator interact with them","setting.header.CoordinatorConfiguration":"Coordinator settings","setting.subtitle.CoordinatorConfiguration":"Here are all settings related to the coordinator hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade settings","setting.subtitle.OverTheAirUpgrade":"These are all settings related to the Over The Air upgrade functionnality.","allowOTA":"Enable OTA","setting.header.Legrand":"Legrand Netatmo settings","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser settings","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Allow Internet access","batteryOTA":"allow battery powered devices OTA","waitingOTA":"delay when starting the OTA process","setting.header.GroupManagement":"Group management settings","setting.subtitle.GroupManagement":"Here are all setting to enable and configure the Group management feature.","OnIfOneOn":"Group is On if one device is On (otherwise needs all devices On)","setting.header.PluginConfiguration":"Plugin environment settings","setting.subtitle.PluginConfiguration":"Here are all Plugin environements settings","numDeviceListVersion":"Number of DeviceList history","setting.header.Others":"Miscaleneous settings","setting.header.Provisioning":"Pairing settings","setting.subtitle.Provisioning":"Special settings for special devices or special conditions","setting.header.DevicePolling":"Devices polling","setting.subtitle.DevicePolling":"Allows you to specify the polling frequency per type of information. Be aware that a high frequency will overload the coordinator and might cause some performance issues","setting.subtitle.Others":"","logLQI":"Delay before starting a Topology scan (sec)","networkScan":"Interferences report frequency (sec)","setting.header.CommandTransition":"Command transitions for Lights in Groups","setting.subtitle.CommandTransition":"For Groups only. You can specify the transition time in 10th of seconds with which the transition from current to target stage. For example how many 10th of second it will take to move from the current Color to the Color I requested via Domoticz. Color temp is used for White Color","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimental parameters","setting.subtitle.Experimental":"Use it only if you have been asked to","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"Analysis started","api.global.succes.commandsent.notify":"Command sent","api.global.succes.saved.notify":"Saved","setting.header.OTA":"Device firmware update Over-The-Air","setting.subtitle.OTA":"Parameters which allow to configure how the plugin Over-The-Air upgrade would behave.","IkeaTradfri_Repository":"IKEA-TRADFRI Official repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (build by Internet community)","autoServeOTA":"Allow automatic update when firmware found","checkFirmwareAgainstZigbeeOTARepository":"Check if there is a firmware available in one of the repository","DomoticzCustomMenu":"Enable Plugin WebUI from Domoticz Custom menu","NightShift":"Push background activity from 11PM to 6AM","ConfigureReportingChunk":"Max number of attributes when Configure Reporting","ReadAttributeChunk":"Max number of attributes when Read Attributes","resetConfigureReporting":"Reset all existing Configure Reporting","resetReadAttributes":"Reset all read attributes","TopologyV2":"Network Topology based on routing and neighbourghs tables","autoBackup":"Automatic backup of coordinator","BackupFullDevices":"backup device information","BellowsNoMoreEndDeviceChildren":"Disable direct pairing on Coordinator","BellowsSourceRouting":"Enable Zigbee Source routing mecanishm","pingDevices":"Ping main-powered devices regularly to v\xe9rify their health","GroupOnBattery":"Enable group creation to a battery devices","deviceOffWhenTimeOut":"Switch device to Off when network Timeout","checkConfigurationReporting":"Check the device Report configuration regularly","TXpower_set":"Coordinator transmission power level","pingDevicesFeq":"Frequency of regular ping main-powered devices","GrpfadingOff":"Fadding mode","GrpmoveToColourRGB":"Transition time for RGB move color","GrpmoveToColourTemp":"Transition time for TEMP move color","GrpmoveToLevel":"Transition time for one dim position to an other one","enableSchneiderWiser":"Enable if you have Legacy Wiser devices","LegrandCompatibilityMode":"Enable to simulate a Legrand Netamo Hub","AqaraOppleBulbMode":"Enable to have Aqara Opple remote commanding directly devices","forceClosingAllNodes":"Enable to close Pairing mode in each router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Enable the plugin uses cookies to collect information about the Coordinator and the device models used.","autoRestore":"Automaticaly apply the most recent coordinator backup when a clean coordinator is found","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Number of sec after the Selector is reset to Off","setting.header.ManufSpecifiqDevicePolling":"Specifc Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specific configuration","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Delay in sec to reset motion detection","Certification":"Certification ( FCC or CE )","channel":"Coordinator chanel (default 0)","alarmDuration":"Duration in sec for Alarm device","vibrationAqarasensitivity":"Aqara Vibration sensitivity","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Number of Topology reports saved","numEnergyReports":"Number of Interference reports saved","PowerOn_OnOff":"Return state after device power outage","logDeviceUpdate":"Enable UpdateDevice message in Log","capturePairingInfos":"Capture Pairing information and save in Reports folder","error_required":"Required","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Tools","tools.tools":"Tools","tools.tools.export":"Export","tools.tools.zdevice-raw.button":"Plugin Raw Devices","tools.tools.non-optimized.button":"Non-optimized devices","tools.tools.zgroup.button":"Plugin Groups","tools.tools.zdevice.button":"Plugin Devices","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plugin Logs","tools.tools.infos.plugin.button":"Plugin info","tools.tools.coordinator.infos.button":"Coordinator info","tools.tools.plugin-health.button":"Plugin health","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Settings","tools.tools.plugin-stat.button":"Traffic","tools.command":"Command","tools.debugcommand.title":"Direct commands","tools.debugcommand.subtitle":"Allow to interact directly with a device, with a set of commands based on the device capabilities
    (1) Select the device,
    (2) Select the action you want to perform,
    (3) Select a potential device type which can influence the way to interact with the device,
    (4) Optionaly you might have to enter a Value or select a Color.","tools.debugcommand.device":"Select device","tools.debugcommand.button.cancel":"Cancel","tools.debugcommand.action":"Select action","tools.debugcommand.type":"Select type","tools.debugcommand.value":"Value","tools.debugcommand.level.error":"between 0 and 100","tools.debugcommand.effect.error":"between 0x00 to 0xff","tools.debugcommand.button.send":"Send","tools.rawcommand-zigate.title":"ZiGate command (raw)","tools.rawcommand-zigate.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.
    You must follow the ZiGate protocol .","tools.rawcommand-zigate.command":"Message RAW type","tools.rawcommand-zigate.error":"Input required","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Submit","tools.rawcommand-zigpy.title":"ZigBee command","tools.rawcommand-zigpy.subtitle":"Allow to send a ZiGate command directly tothe coordinator in raw mode.","tools.rawcommand-zigpy.placeholder":"Select a device","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Submit","tools.reporting.configure":"Reporting","tools.reporting.configure.title":"Configure the reporting mechanism","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validate","tools.reporting.configure.device":"Select a device","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"Change","tools.reporting.configure.hexa.error":"not an hexadecimal value","tools.reporting.configure.length.error":"not an expected value","tools.binding":"Binding","tools.binding.title":"Device Binds","tools.binding.subtitle":"Allow to bind a cluster between source and target devices
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"source IEEE","tools.binding.error":"Input required","tools.binding.sourceEp":"Select source device","tools.binding.destIeee":"Target IEEE","tools.binding.destEp":"Select target device","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose and Logging","setting.subtitle.VerboseLogging":"Will allow you to enable/disable some Logging features ","tools.debugsetting.help.legend":"These are all plugin settings which can be updated.","tools.debugsetting.advanced.button":"Advanced settings","tools.debugsetting.normal.button":"Standards settings","tools.debugsetting.validate.button":"Validate","tools.debugsetting.reinit.button":"Settings (default)","tools.debugsetting.reloadplugin.alert.title":"Plugin Reload","tools.debugsetting.reloadplugin.alert.subject":"Settings have been updated, plugin need to be restarted","tools.debugsetting.reloadplugin.alert.cancel":"Close","tools.error":"Error(s)","tools.error.log-history.button":"Log Error History (json)","tools.error.log-history.clear":"Clear Error History","error.popover.title":"Error(s) detected","error.popover.text":"Clic to see the log","manufacturer":"Manufacturer","manufacturer.casaia":"CASA.ia","manufacturer.casaia.header":"CASA.ia manufacturer specific configuration","manufacturer.casaia.subtitle":"Configuration of the IR Code of the ZigBee infrared temperature control thermostat IR split AC controller ","manufacturer.casaia.placeholder":"type filter here ....","manufacturer.casaia.nwkid":"Short id","manufacturer.casaia.name":"Friendly Name","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Model","manufacturer.casaia.ircode":"Infrared Code","manufacturer.casaia.validate.button":"Validate","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),_=JSON.parse('{"APP_NAME":"Interface d\'administration du plugin ZigBeeforDomoticZ","About":"A Propos","Version":"Version","NODATA":"Pas de donn\xe9es \xe0 afficher","TOTAL":"Total {totalRecords}","SELECTED":"s\xe9lectionn\xe9","dashboard":"Tableau de bord","dashboard.button.refresh":"Rafra\xeechir","dashboard.trafic.title":"\xc9tat du Plugin","dashboard.health.title":"Objets du plugin","dashboard.devices.state.label":"Objets connus du plugin","dashboard.devices.live":"vivant","dashboard.devices.disabled":"d\xe9sactiv\xe9","dashboard.devices.notseen":"pas vu","dashboard.devices.notReachable":"perdu","dashboard.devices.others":"ind\xe9fini","dashboard.health.comment":"Vivant = objets pour lesquels un message a \xe9t\xe9 re\xe7u r\xe9cemment
    D\xe9sactiv\xe9 = objets qui sont d\xe9sactiv\xe9s
    Perdu = objets qui ne sont plus sur le r\xe9seau
    Pas vu = objets qui n\'ont pas donn\xe9 d\'information sur les derni\xe8res 6 heures
    Ind\xe9fini = objets qui sont dans un \xe9tat ind\xe9termin\xe9","dashboard.traffic.title":"Envoi & r\xe9ception","dashboard.trafic.label":"Messages envoy\xe9s et re\xe7us","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = nombre de messages envoy\xe9s depuis le lancement du plugin
    Rx = nombre de messages re\xe7us depuis le lancement du plugin","dashboard.trend.title":"Statistiques","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Charge","dashboard.trend.comment":"Tx/s = nombre de messages envoy\xe9s par seconde
    Rx/s = nombre de messages re\xe7us par seconde
    Charge = nombre de messages actuellement en attente","dashboard.trafic.maxload.label":"Charge","dashboard.trafic.maxload":"max","dashboard.trafic.currentload":"courant","dashboard.trend.chart.yaxis":"message/s","dashboard.devices.title":"\xc9tat des objets non d\xe9sactiv\xe9s","dashboard.device.title":"Type d\'objets","dashboard.devices.label":"Objets","dashboard.devices.routers":"routeurs","dashboard.devices.enddevice":"objets terminaux","dashboard.devices.comment":"Routeurs = objets aliment\xe9s sur secteur qui participent au maillage du r\xe9seau.
    Objets terminaux = objets n\'\xe9tant pas capable de participer au maillage (tr\xe8s souvent sur batterie, mais dans quelques cas ils peuvent \xeatre aliment\xe9 par une source \xe9lectrique de faible puissance).","dashboard.battery.title":"Batterie","dashboard.devices.battery.label":"Objets sur batterie","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"\xc9tat de charge de la batterie des objets ayant une batterie.","dashboard.optimized.title":"Objets optimis\xe9s","dashboard.optimized.comment":"Optimis\xe9s = objets pour lesquels une configuration a \xe9t\xe9 faite dans le plugin.
    Non-optimis\xe9s = objets qui peuvent ne pas fonctionner compl\xe8tement et/ou g\xe9n\xe9rer de la charge ou du traffic anormal.
    Plus d\'infos sur le wiki","dashboard.devices.optimized":"optimis\xe9s","dashboard.devices.not.optimized":"non-optimis\xe9s","dashboard.devices.optimized.label":"Objets","dashboard.popup.device.header":"Liste des objets","dashboard.popup.device.subtitle":"Cette liste est filtr\xe9e selon l\'\xe9l\xe9ment cliqu\xe9 dans le tableau de bord.","dashboard.popup.device.button.close":"Fermer","dashboard.health.starttime":"Lanc\xe9 \xe0 ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Une nouvelle version du plugin est disponible .
    Mettre \xe0 jour","dashboard.plugin.update.available.title":"Mise \xe0 jour du plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Une nouvelle version du firmware pour la ZiGate est disponible Plus d\'infos .","dashboard.firmware.update.available.title":"Mise \xe0 jour firmware","dashboard.device.button":"Dispositifs DomoticZ (json)","dashboard.plugin.header":"Plugin infos","dashboard.plugin.subtitle":"Les informations du plugin :","dashboard.stats.header":"Statistiques du Plugin","dashboard.stats.subtitle":"Statistiques de transmission/r\xe9ception donn\xe9es","dashboard.zdevice.button":"Plugin Devices (json)","dashboard.zgroup.button":"Groupes du Plugin (json)","dashboard.coordinator.header":"Infos du coordinateur","dashboard.coordinator.subtitle":"Les informations du coordinateur","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupe: ","dashboard.devices.indb":"En Base","consent.banner.header":"Consentement","consent.banner.description":"Dans l\'optique de mieux vous conna\xeetre, nous utilisons une technique de cookies et, avec votre consentement, nous collecterons principalement la version du plugin, le mod\xe8le de coordinateur, la version du firmware et la taille du r\xe9seau (nombre de routers et d\u2019objets terminaux).
    Donnez votre accord en s\xe9lectionnant \'Autoriser\' ou sinon \'Interdire\'. Si vous souhaitez changer votre choix, vous pouvez le faire via le menu R\xe9glages.
    Plus d\'infos dans le wiki.","consent.banner.accept":"Autoriser","consent.banner.decline":"Interdire","management":"Gestion","device":"Gestion des objets","device.byname.subtitle":"Liste tous les objets appair\xe9s avec le plugin
    Vous pourrez attribuer des surnoms et g\xe9rer les param\xe8tres sp\xe9cifiques aux objets.
    Les objets marqu\xe9s en orange ne sont pas optimis\xe9s avec le plugin. Merci de suivre la proc\xe9dure sur le wiki.","device.byname.capabilities.column":"Fonctions","device.byname.devicename.column":"Surnom","device.byname.header":"Gestion des objets","device.byname.trash.column":"Suppr.","device.byname.optimized.column":"Optimis\xe9","device.byname.health.column":"Sant\xe9","device.byname.battery.column":"Batterie","device.byname.ieee.column":"IEEE","device.byname.model.column":"Mod\xe8le","device.byname.devicename.param":"Param\xe8tres","device.byname.devicename.enabled":"Objet actif","device.byname.placeholder":"Rechercher ...","device.byname.shortid.column":"Short ID","device.byname.status.column":"Statut","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valider","device.byname.widget.column":"Dispositifs DomoticZ","device.byname.alert.title":"Supprimer l\'appareil ?","device.byname.alert.subject":"Es-tu s\xfbr ?","device.byname.alert.delete":"Supprimer","device.byname.alert.cancel":"Annuler","device.byname.error.notify":"Utiliser le bouton Activer svp !!","device.byname.parameter.alert.save":"Valider","device.byname.parameter.alert.cancel":"Annuler","device.byname.parameter.alert.title":"Param\xe8tres","device.byname.parameter.alert.subject":"Assigner des param\xe8tres sp\xe9cifiques \xe0 l\'objet au format Json ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Supprimer","device.byname.optimized.popover.title.ok":"L\u2019objet est optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ok":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","device.byname.optimized.popover.title.ko":"L\u2019objet n\u2019est pas optimis\xe9 pour le plugin","device.byname.optimized.popover.text.ko":"Cliquer sur l\'ic\xf4ne pour copier les infos de l\'objet","group":"Gestion des groupes","group.create.devices.column":"Objets appartenant au groupe","group.create.groupname.column":"Nom du Groupe","group.create.header":"Gestion des groupes","group.create.placeholder":"Rechercher","group.create.shortid.column":"ID du Groupe","group.create.subtitle":"Permet l\'\xe9dition, la cr\xe9ation et la suppression des groupes
    Avant toute modification, faire une analyse compl\xe8te des groupes sur la page Admin > Groupes.
    Avant validation, s\'assurer que tous les routeurs soient connect\xe9s au r\xe9seau ZigBee.
    Apr\xe8s validation, faire une analyse sp\xe9cifique sur le(s) routeur(s) pour v\xe9rifier la prise en compte des modifications.
    Ne pas faire pas trop de modifications d\'un seul coup, les faire pas \xe0 pas.","group.create.validate.button":"Valider","group.create.add.button":"Ajouter un Groupe","group.create.delete.button":"Effacer","group.create.coordinator.column":"Coordinateur (dans le groupe)","group.reloadplugin.alert.title":"Plugin recharg\xe9","group.reloadplugin.alert.subject":"Groupes mis \xe0 jour, le plugin \xe0 besoin de red\xe9marrer","group.reloadplugin.alert.cancel":"Fermer","header.popover.title":"Red\xe9marrage n\xe9cessaire","header.popover.text":"Les changements ont besoin d\'un red\xe9marrage du plugin","network":"R\xe9seau","network.topo":"Topologie","network.topo.header":"Les rapports d\'analyse du maillage","network.topo.subtitle":"Liste des rapports enregistr\xe9s ","network.topo.visu.header":"Illustration du maillage","network.topo.visu.subtitle":"L\'illustration de votre maillage montre tous les liens entre 2 objets.
    Si vous d\xe9placez le curseur sur un lien, vous verrez la liaison avec la valeur LQI indiquant la qualit\xe9 de la liaison (de 0 \xe0 255 = la meilleure possible).","network.topo.visu.network.header":"Illustration du r\xe9seau","network.topo.visu.network.subtitle":"L\'illustration du r\xe9seau ZigBee montre les communications possibles entre les objets.
    Par d\xe9faut, les liens entre les objets fr\xe8res ne sont pas affich\xe9s. Activer si besoin l\'option displaySibling
    Cliquer sur un objet pour faire afficher ses objets enfants dans un tableau en dessous.","network.topo.visu.network.filter":"Filtrer par routeur","network.topo.device.visu.network.chart.title":"Illustration du r\xe9seau","network.topo.visu.delete.button":"Effacer","network.topo.device.batterylevel.column":"Batterie","network.topo.device.deviceid.column":"Module id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Interrupteur","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Nom","network.topo.device.visu.header":"Liste des objets","network.topo.device.visu.subtitle":"Donne la liste des objets appair\xe9s avec le coordinateur avec le nom de l\'objet et autres informations li\xe9es \xe0 DomoticZ.","network.topo.device.visu.chart.title":"Illustration du maillage","network.topology.req.header":"Lancer une analyse du maillage","network.topology.req.subtitle":"Cr\xe9er une illustration de votre r\xe9seau ZigBee (travail en arri\xe8re plan)","network.topology.req.button":"Analyser","network.topo.visu.network.relation.header":"Liste des liens de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Le tableau affiche les entre l\'objet s\xe9lectionn\xe9 et tous ses objets li\xe9s.","network.topo.visu.network.relation.to":"Enfants","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"L\'objet s\xe9lectionn\xe9 n\'a pas d\'enfants.","network.topo.visu.network.relation.model":"Mod\xe8le","network.topo.visu.network.relation.status":"Statut","network.topo.visu.network.relation.health":"Sant\xe9","network.topo.visu.network.relation.battery":"Batterie","network.energy":"Niveau d\'interf\xe9rences","network.stats.header":"Les rapports de niveau d\'interf\xe9rence","network.stats.subtitle":"Liste des rapports enregistr\xe9s ","network.stats.visu.delete.button":"Effacer","network.inter.req.header":"Lancer une analyse du niveau d\'interf\xe9rences entre les objets et le coordinateur","network.inter.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue par le coordinateur en provenance de chaque objet de type routeur.","network.inter.req.button":"Analyser","network.full.req.header":"Lancer une analyse compl\xe8te du niveau d\'interf\xe9rences entre tous les objets","network.full.req.subtitle":"Cr\xe9er une analyse du taux d\'\xe9nergie re\xe7ue entre tous les objets de type routeur.
    Attention cela peut prendre un certain temps dans la mesure ou le nombre de combinaison est \xe9gal \xe0 n((n-1)/2) soit 10 pour 5 routeurs, 45 pour 10 routeurs...","network.full.req.button":"Analyser","network.stats.detail.visu.header":"Illustration des niveaux d\u2019interf\xe9rences.","network.stats.detail.visu.subtitle":"Plus le chiffre est \xe9lev\xe9, plus il y a d\'interf\xe9rence (de 0 \xe0 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Failed : ","network.stats.detail.visu.chart.title":"Illustration des niveaux d\'interf\xe9rences","network.stats.detail.visu.chart.y-axis":"Niveau d\'interf\xe9rences","network.stats.detail.visu.chart.x-axis":"Canaux","admin":"Admin","admin.pairing":"Appairage","admin.permittojoin.label":"Mode appairage","admin.permittojoin.on.notify":"Mode appairage activ\xe9","admin.permittojoin.off.notify":"Mode appairage d\xe9sactiv\xe9","admin.assistprovisionning.title":"Appairer un nouvel objet avec l\'assistant","admin.assistprovisionning.subtitle":"Cliquer sur Appairer et suivre les indications ","admin.assistprovisionning.go.button":"Appairer","admin.assistprovisionning.alert.title":"Assistant d\'appairage - Attente d\'un nouvel objet","admin.assistprovisionning.alert.subject":"Faire un Reset sur votre objet pour lancer une proc\xe9dure d\'appairage. Se r\xe9f\xe9rer \xe0 la documentation de l\'objet si n\xe9cessaire.","admin.assistprovisionning.alert.state":"Etat : ","admin.assistprovisionning.alert.description":"Description : ","admin.assistprovisionning.alert.nwkid":"NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Liste des dispositifs : ","admin.assistprovisionning.alert.cancel":"Terminer","admin.assistprovisionning.alert.ep":"Endpoint : ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Objet : ","admin.assistprovisionning.alert.model":"Mod\xe8le : ","admin.assistprovisionning.alert.plugincertified":"Certification avec le plugin : ","admin.assistprovisionning.alert.Failed":"Appairage \xe9chou\xe9 (regarder les logs pour plus de d\xe9tails)","admin.assistprovisionning.alert.inDB":"Appairage effectu\xe9 (v\xe9rifier si les dispositifs sont bien cr\xe9\xe9es dans DomoticZ)","admin.assistprovisionning.alert.Unexpected":"Erreur inattendue (recommencer et si le probl\xe8me persiste, contacter le support)","admin.permittojoin.title":"Appairer de nouveaux objets sur une dur\xe9e","admin.permittojoin.subtitle":"Cliquer sur un bouton pour choisir la dur\xe9e du mode appairage ","admin.permittojoin.validate.button":"Valider","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Appairage permanent activ\xe9","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Appairage d\xe9sactiv\xe9","admin.permittojoin.4min.button":"4 minutes","admin.permittojoin.4min.notify":"Appairage activ\xe9 pendant 4 minutes","admin.permittojoin.notify":"Mode appairage modifi\xe9","admin.permittojoinrouter.title":"Appairer de nouveaux objets sur un routeur sp\xe9cifique","admin.permittojoinrouter.subtitle":"Permet de r\xe9aliser un appairage sur un routeur sp\xe9cifique ","admin.permittojoinrouter.devices.placeholder":"Liste des routeurs","admin.fullreset.title":"Reset d\'un objet","admin.fullreset.subtitle":"Permet d\'activer le mode Reset sur un objet
    Au prochain appairage, l\'objet sera r\xe9initialis\xe9 \xe0 l\'exception des dispositifs qui seront conserv\xe9s.
    Activer le mode Reset et r\xe9-appairer l\'objet.","admin.fullreset.device.placeholder":"S\xe9lectionner l\'objet","admin.fullreset.button":"Activer le mode Reset","admin.fullreset.notify":"Mode Reset activ\xe9","admin.recreate.title":"Re-cr\xe9ation des dispositifs d\'un objet","admin.recreate.subtitle":"Permet de (re)cr\xe9er tous les dispositifs d\'un objet dans DomoticZ
    Cette fonction va g\xe9n\xe9rer des dispositifs en doublon. C\'est \xe0 vous de supprimer ces doublons dans DomoticZ et conserver uniquement le(s) dispositif(s) que vous souhaitez.
    Ne pas oublier la limitation \xe0 255 dispositifs par plugin.","admin.recreate.device.placeholder":"S\xe9lectionner un objet","admin.recreate.button":"Recr\xe9ation des dispositifs","admin.recreate.notify":"Recr\xe9ation des dispositifs lanc\xe9e","admin.group":"Groupes","admin.rescan.group.title":"Analyse compl\xe8te des groupes","admin.rescan.group.subtitle":"Interroge chaque routeur pour conna\xeetre son appartenance \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que TOUS les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.rescan.group.button":"Analyser","admin.scan.group.device.title":"Analyse s\xe9lective des groupes","admin.scan.group.device.subtitle":"Interroge un ou plusieurs routeurs pour conna\xeetre leur(s) appartenance(s) \xe0 un ou plusieurs groupes
    Le r\xe9sultat sera disponible dans la Gestion des groupes.

    S\'assurer que les routeurs sont bien pr\xe9sent sur le r\xe9seau ZigBee avant de lancer l\'analyse.","admin.scan.group.device.button":"Analyser","admin.scan.group.device.placeholder":"S\xe9lectionner le(s) routeur(s) \xe0 analyser","admin.coordinator":"Coordinateur","admin.coordinator.swreset.title":"R\xe9initialisation logicielle du coordinateur","admin.coordinator.swreset.subtitle":"Lancer le red\xe9marrage du coordinateur sans perte d\'objets appair\xe9s ","admin.coordinator.swreset.button":"Red\xe9marrer le coordinateur","admin.coordinator.swreset.notify":"Red\xe9marrage du coordinateur lanc\xe9","admin.coordinator.switchchannel.title":"Changement du canal de communication du coordinateur","admin.coordinator.switchchannel.subtitle":"Permet de basculer le coordinateur et son r\xe9seau sur un canal de communication particulier.
    La demande va \xeatre envoy\xe9e \xe0 tous les objets\xa0: les routeurs basculent normalement sans probl\xe8me, par contre, les objets sur piles qui ne sont pas ZigBee 3.0 n\xe9cessiteront probablement un reset pour rejoindre le nouveau canal.","admin.coordinator.switchchannel.placeholder":"Canal du coordinateur","admin.coordinator.switchchannel.button":"Changer le canal","admin.coordinator.switchchannel.notify":"Changement de canal lanc\xe9","admin.erasepdm.title":"Efface la ZiGate","admin.erasepdm.subtitle":"Effacer la m\xe9moire de la ZiGate (perte de tous les objets appair\xe9s pr\xe9c\xe9demment)
    Assurez vous d\'avoir activer le param\xe8tre eraseZigatePDM avant dans les Param\xe8tres avanc\xe9s","admin.erasepdm.button":"Effacer la ZiGate","admin.erasepdm.notify":"ErasePdm ZiGate lanc\xe9","admin.erasepdm.alert.title":"R\xe9initialisation de la ZiGate","admin.erasepdm.alert.subject":"Cette action va effacer compl\xe8tement le ZiGate avec la perte de tous les objets associ\xe9s. \xcates-vous vraiment s\xfbr ???","admin.erasepdm.alert.cancel":"Annuler","admin.erasepdm.alert.erase":"Effacer","admin.plugin":"Plugin","admin.plugin.reload.title":"R\xe9initialisation du plugin","admin.plugin.reload.subtitle":"Lancer le red\xe9marrage du plugin ","admin.plugin.reload.button":"Red\xe9marrer","admin.plugin.reload.notify":"Red\xe9marrage du plugin lanc\xe9","admin.plugin.reload.port":"Port","admin.plugin.reload.username":"Utilisateur","admin.plugin.reload.password":"Mot de Passe","admin.plugin.reload.host":"Nom d\'h\xf4te","admin.plugin.reload.protocol":"Protocole","admin.plugin.reload.alert.title":"Red\xe9marrage du plugin","admin.plugin.reload.alert.subject":"Cette action va red\xe9marrer le plugin. Ceci n\u2019entra\xeenera pas de perte de donn\xe9es.","admin.plugin.reload.alert.cancel":"Annuler","admin.plugin.reload.alert.erase":"Red\xe9marrer","admin.plugin.update.title":"Mise \xe0 jour du plugin","admin.plugin.update.subtitle":"Lance la mise \xe0 jour du plugin.
    Si cette mise \xe0 jour se passe sans probl\xe8me, un red\xe9marrage du plugin sera n\xe9cessaire pour la prise en compte, sinon il faudra faire la mise \xe0 jour de fa\xe7on manuelle.","admin.plugin.update.button":"Mettre \xe0 jour (plusieurs minutes)","admin.plugin.update.success":"Red\xe9marrer le plugin pour prendre en compte la mise \xe0 jour","admin.plugin.update.error":"Il y a eu des erreurs durant la mise \xe0 jour, v\xe9rifier les logs et prendre les actions correctives","admin.firmware":"Firmware","admin.firmware.title":"Les firmware des objets","admin.firmware.subtitle":"Mettre \xe0 jour le firmware des routeurs ","admin.firmware.button.update":"Mettre \xe0 jour","admin.firmware.notify":"Mise \xe0 jour lanc\xe9e","admin.firmware.list":"S\xe9lectionner le firmware","admin.firmware.manufacturer.list":"S\xe9lectionner un fabricant","admin.firmware.devices.list":"S\xe9lectionner le(s) routeur(s)","admin.firmware.force":"Forcer la mise \xe0 jour","admin.firmware.alert.title":"Firmware","admin.firmware.alert.subject":"Information","admin.firmware.alert.ok":"Mettre \xe0 jour","admin.firmware.alert.cancel":"Annuler","admin.firmware.alert.list.devices":"Liste des objets","admin.firmware.alert.filename":"Nom du fichier","admin.firmware.alert.device":"Objet ","admin.firmware.alert.brand":"Fabricant ","settings":"R\xe9glages","setting.header":"R\xe9glages","setting.subtitle":"Vous permet de visualiser et de modifier les diff\xe9rents r\xe9glages du plugin
    Certains r\xe9glages peuvent n\xe9cessiter un red\xe9marrage du plugin pour \xeatre pris en compte.","setting.validate.button":"Valider","setting.reinit.button":"Param\xe8tres (d\xe9faut)","setting.advanced.button":"Param\xe8tres avanc\xe9s","setting.normal.button":"param\xe8tres standards","setting.help.link":"Plus d\'informations sur les r\xe9glages dans le Wiki","setting.help.legend":"Les r\xe9glages du Plugin ZigBeeForDomoticZ","setting.header.Services":"Liste des services","setting.subtitle.Services":"Activer les services d\xe9sir\xe9s","useDomoticzLog":"Usage des Logs DomoticZ","enablegroupmanagement":"Activer les Groupes","zigatePartOfGroup0000":"Cr\xe9ation du Group 0000","allowRemoveZigateDevice":"Suppression dans le coordinateur","resetPermit2Join":"Reset du mode appairage au d\xe9marrage du plugin","forcePollingAfterAction":"Interrogation du statut de l\'objet apr\xe8s un ordre","enableReadAttributes":"Activer l\'interrogation des objets (pooling)","blueLedOnOff":"Active ou d\xe9sactive la Led Bleu","setting.reloadplugin.alert.title":"Red\xe9marrage du plugin","setting.reloadplugin.alert.subject":"Les r\xe9glages on \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","setting.reloadplugin.alert.cancel":"Fermer","setting.resetplugin.alert.title":"Reset du coordinateur","setting.resetplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un red\xe9marrage du coordinateur. Attention cela peut entra\xeener un r\xe9-appairage de tous les objets.","setting.resetplugin.alert.cancel":"Close","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Un param\xe8tre a \xe9t\xe9 modifi\xe9 et n\xe9cessite un Erase PDM (n\xe9cessite un r\xe9-appairage de tous les objets)","setting.eraseplugin.alert.cancel":"Close","Ping":"Activer le Ping","setting.header.DomoticzEnvironment":"Communication avec DomoticZ","setting.subtitle.DomoticzEnvironment":"Les r\xe9glages pour l\'acc\xe8s \xe0 l\'API de DomoticZ","setting.header.WebInterface":"R\xe9glages de l\'interface Web","setting.subtitle.WebInterface":"Les r\xe9glages pour l\'interface d\'administration du plugin :","enableWebServer":"Active l\'interface Web","setting.header.DeviceManagement":"R\xe9glages de la gestion des objets","setting.subtitle.DeviceManagement":"Les r\xe9glages pour la gestion des objets et leur interaction avec le coordinateur :","setting.header.CoordinatorConfiguration":"R\xe9glages du coordinateur","setting.subtitle.CoordinatorConfiguration":"Les r\xe9glages pour le coordinateur :","setting.header.OverTheAirUpgrade":"R\xe9glages mise \xe0 jour sans fils (OTA)","setting.subtitle.OverTheAirUpgrade":"Les r\xe9glages pour les mises \xe0 jours sans fils (OTA).","allowOTA":"Activer OTA","setting.header.Legrand":"R\xe9glages Legrand Netatmo","setting.subtitle.Legrand":"Les r\xe9glages sp\xe9cifiques aux objets Legrand Netatmo","setting.header.Schneider_Wiser":"R\xe9glages Schneider Wiser","setting.subtitle.Schneider_Wiser":"Les r\xe9glages sp\xe9cifiques aux objets Schneider Wiser","internetAccess":"Autoriser acc\xe8s Internet pour v\xe9rification des versions","batteryOTA":"Autorise les OTA pour les objets sur batterie","waitingOTA":"D\xe9lai avant le d\xe9marrage des OTA","setting.header.GroupManagement":"R\xe9glages des Groupes","setting.subtitle.GroupManagement":"Les r\xe9glages pour la gestion des groupes.","OnIfOneOn":"Groupe est allum\xe9 d\xe8s que le premier objet est allum\xe9 (sinon, groupe est allum\xe9 lorsque tous les objets sont allum\xe9s)","setting.header.PluginConfiguration":"R\xe9glage de l\'environnement du Plugin","setting.subtitle.PluginConfiguration":"Les r\xe9glages pour l\'environnement du Plugin","numDeviceListVersion":"Nombre d\'historique du fichier DeviceList","setting.header.Others":"Autres r\xe9glages","setting.header.Provisioning":"R\xe9glages d\'appairage","setting.subtitle.Provisioning":"R\xe9glages sp\xe9cifiques pour certains mat\xe9riels ou certaines conditions","setting.header.DevicePolling":"Interrogation des objets","setting.subtitle.DevicePolling":"Interrogation directe et r\xe9guli\xe8re des objets. R\xe9glage des fr\xe9quences d\'interrogation. Attention plus la fr\xe9quence est \xe9lev\xe9e, plus la charge sera importante.","setting.subtitle.Others":"","logLQI":"D\xe9lai (sec) avant de lancer un rapport de Maillage","networkScan":"Fr\xe9quence de rapport d\'Interf\xe9rences (sec)","setting.header.CommandTransition":"Transitions des groupes de lumi\xe8res","setting.subtitle.CommandTransition":"Applicable pour les groupes uniquement. Indiquer le temps de transition en dixi\xe8me de seconde entre l\'\xe9tat actuel et celui d\xe9sir\xe9.","moveToHueSatu":"Transition pour Hue","moveToColourTemp":"Transition pour Temp\xe9rature","moveToColourRGB":"Transition pour Couleur RVB","moveToLevel":"Transition pour variateur","setting.header.Experimental":"Param\xe8tres exp\xe9rimentaux","setting.subtitle.Experimental":"Utilisez seulement si on vous a indiqu\xe9 de le faire","api.global.error.notify":"Erreur de l\'interface","api.global.succes.scanlaunched.notify":"Analyse lanc\xe9e","api.global.succes.commandsent.notify":"Commande envoy\xe9e","api.global.succes.saved.notify":"Enregistr\xe9","setting.header.OTA":"Mise \xe0 jour du firmware de l\u2019objet via l\u2019OTA","setting.subtitle.OTA":"Comportement du plugin avec les mises \xe0 jour OTA","IkeaTradfri_Repository":"D\xe9p\xf4t firmwares officiel IKEA-TRADFRI ","ZigbeeOTA_Repository":"D\xe9p\xf4t firmwares ZigBee OTA (maintenue par la communaut\xe9)","autoServeOTA":"Mise \xe0 jour automatique quand un firmware est trouv\xe9","checkFirmwareAgainstZigbeeOTARepository":"V\xe9rifier si un firmware est disponible dans l\u2019un des d\xe9p\xf4ts","DomoticzCustomMenu":"Ajouter un lien vers le WebUI dans le Custom Menu de DomoticZ","NightShift":"D\xe9place les actions d\u2019arri\xe8re plan de 23h \xe0 06h","ConfigureReportingChunk":"Nombre maxi d\u2019attributs lors d\u2019un Configure Reporting","ReadAttributeChunk":"Nombre maxi d\u2019attributs lors d\u2019un Read attributes","resetConfigureReporting":"Reset de tous les Configure Reporting","resetReadAttributes":"Reset de tous les Read attributes","TopologyV2":"Analyse du maillage bas\xe9 sur les tables de routage et de voisinage","autoBackup":"Sauvegarde automatique du coordinateur","BackupFullDevices":"Sauvegarde des informations de l\u2019objet","BellowsNoMoreEndDeviceChildren":"D\xe9sactiver l\u2019appairage direct sur le coordinateur","BellowsSourceRouting":"Activer le m\xe9canisme de routage source","pingDevices":"Faire un ping des objets aliment\xe9s sur secteur pour v\xe9rifier leur \xe9tat","GroupOnBattery":"Activer la cr\xe9ation de groupe pour les objets sur batterie","deviceOffWhenTimeOut":"Basculer un objet sur Off apr\xe8s un timeout du r\xe9seau","checkConfigurationReporting":"V\xe9rifier le Report configuration d\u2019un objet r\xe9guli\xe8rement","TXpower_set":"Niveau de puissance de la transmission du coordinateur","pingDevicesFeq":"Fr\xe9quence de ping des objets aliment\xe9s sur secteur","GrpfadingOff":"Mode de Fadding","GrpmoveToColourRGB":"Temps de transition pour changer la valeur d\u2019une couleur","GrpmoveToColourTemp":"Temps de transition pour changer la temp\xe9rature d\u2019une couleur","GrpmoveToLevel":"Temps de transition pour passer d\u2019un niveau de puissance \xe0 un autre","enableSchneiderWiser":"Activer si vous avez des objets Legacy Wiser","LegrandCompatibilityMode":"Activer pour simuler un hub Legrand Netamo","AqaraOppleBulbMode":"Activer pour que la t\xe9l\xe9commande Aqara Opple commande les objets directement","forceClosingAllNodes":"Activer pour fermer le mode appairage dans chaque routeur","extendedPANID":"Identifiant Zigbee Extended PAN","allowReBindingClusters":"Activer le re-binding des clusters pendant les op\xe9rations de configure reporting","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Autoriser le plugin \xe0 placer un cookie afin de collecter des informations sur le coordinateur et les mod\xe8les d\u2019objets utilis\xe9s.","autoRestore":"Appliquer automatiquement le backup le plus r\xe9cent du coordinateur quand un coordinateur vierge est trouv\xe9","forceSwitchSelectorPushButton":"Workaround DomoticZ issue #4143","resetSwitchSelectorPushButton":"Nombre de sec avant de basculer le S\xe9lecteur Off","setting.header.ManufSpecifiqDevicePolling":"Interrogation des objets sp\xe9ciaux","setting.subtitle.ManufSpecifiqDevicePolling":"0 pour d\xe9sactiv\xe9, correspond \xe0 la p\xe9riode en secondes avec laquelle on va interroger les objets pour r\xe9cup\xe9rer des informations qui ne sont pas envoy\xe9es automatiquement par celui-ci.","setting.header.Zigpy":"Configuration sp\xe9cifique aux CIE ZigPy","setting.subtitle.Zigpy":"Pour certains CIE (comme les clefs ConBeeII et RasbeeII), il est n\xe9cessaire d\'activer des \xe9l\xe9ments sp\xe9cifiques pour certaines marques","resetMotiondelay":"D\xe9lai en seconde entre deux d\xe9tections","Certification":"Certification ( FCC ou CE )","channel":"Canal du coordinateur (0 par d\xe9faut)","alarmDuration":"Dur\xe9e en secondes pour les objets alarme","vibrationAqarasensitivity":"Sensibilit\xe9 vibration Aqara","TradfriKelvinStep":"Kelvin step for Tradfri remote","numTopologyReports":"Nombre de rapport de topologie r\xe9seau conserv\xe9s","numEnergyReports":"nombre de rapports d\'interf\xe9rence enregistr\xe9s","PowerOn_OnOff":"\xc9tat de retour apr\xe8s une coupure \xe9lectrique","logDeviceUpdate":"Activer UpdateDevice message dans les logs","capturePairingInfos":"Capture des infos d\u2019appairage et enregistrement dans le dossier Reports","error_required":"Obligatoire","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Outils","tools.tools":"Outils","tools.tools.export":"Exporter","tools.tools.zdevice-raw.button":"Liste des objets raw","tools.tools.non-optimized.button":"Liste des objets non-optimis\xe9s","tools.tools.zgroup.button":"Liste des groupes","tools.tools.zdevice.button":"Liste des objets (old)","tools.tools.device.button":"Liste des dispositifs dans DomoticZ","tools.tools.log.button":"Logs du plugin","tools.tools.infos.plugin.button":"Infos du plugin","tools.tools.coordinator.infos.button":"Infos du coordinateur","tools.tools.plugin-health.button":"Sant\xe9 du plugin","tools.tools.zdevice-name.button":"Zdevice-name","tools.tools.domoticz-env.button":"Param\xe8tres DomoticZ","tools.tools.battery-state.button":"\xc9tats des batterie","tools.tools.zgroup-list-available-device.button":"Zgroup-lst-devices","tools.tools.settings.button":"Param\xe8tres","tools.tools.plugin-stat.button":"Trafic","tools.command":"Commande","tools.debugcommand.title":"Commandes directes","tools.debugcommand.subtitle":"Permet de transmettre directement des commandes/ordres \xe0 un routeur via le coordinateur. Les objets terminaux ne peuvent pas recevoir de commande
    (1) Choisir le routeur,
    (2) Choisir l\'action \xe0 effectuer,
    (3) Choisir une fonction,
    (4) \xc9ventuellement une valeur suppl\xe9mentaire.","tools.debugcommand.device":"Routeur ...","tools.debugcommand.button.cancel":"Annuler","tools.debugcommand.action":"Action ...","tools.debugcommand.type":"Fonction ...","tools.debugcommand.value":"Valeur ...","tools.debugcommand.level.error":"entre 0 et 100","tools.debugcommand.effect.error":"entre 0x00 \xe0 0xff","tools.debugcommand.button.send":"Envoyer","tools.rawcommand-zigate.title":"Commande brut","tools.rawcommand-zigate.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.
    Suivre absolument le protocole ZiGate ","tools.rawcommand-zigate.command":"Message RAW","tools.rawcommand-zigate.error":"Entr\xe9e requise","tools.rawcommand-zigate.payload":"Payload","tools.rawcommand-zigate.button.send":"Envoyer","tools.rawcommand-zigpy.title":"Commande ZigBee","tools.rawcommand-zigpy.subtitle":"Permet d\'envoyer une commande directe au coordinateur en mode Raw.","tools.rawcommand-zigpy.placeholder":"S\xe9lectionner l\'objet","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Payload","tools.rawcommand-zigpy.button.send":"Envoyer","tools.reporting.configure":"Remont\xe9e d\'infos","tools.reporting.configure.title":"Configuration de la remont\xe9e d\'infos des objets","tools.reporting.configure.subtitle":"Configurer un objet pour qu\'il envoi automatiquement les valeurs d\'un (ou plusieurs) de ses attributs ou qu\'il re\xe7oive les infos.
    Les champs Intervalle mini et Intervalle maxi indique la plage de temps en secondes pendant laquelle l\'objet enverra la valeur de l\'attribut correspondant. Les intervalles doivent \xeatre inf\xe9rieur \xe0 65534s (codage 16bits).
    Le champ Delta indique la variation de valeur qui entra\xeenera l\'envoi de la donn\xe9e. Pas de limitation sur la longueur du champ. Le signe sera ignor\xe9.
    Pour les attributs avec un data type analog (voir 2.6.2), le champ a le m\xeame data type que l\'attribut.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valider","tools.reporting.configure.device":"S\xe9lectionner l\'objet","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"Intervalle mini (en secondes)","tools.reporting.configure.maxInterval.column":"Intervalle maxi (en secondes)","tools.reporting.configure.change.column":"Delta","tools.reporting.configure.hexa.error":"Valeur hexad\xe9cimal attendue","tools.reporting.configure.length.error":"Valeur trop longue","tools.binding":"Couplage (Bindings)","tools.binding.title":"Couplage d\'objets","tools.binding.subtitle":"Permet le couplage d\'une fonction entre objet source et un objet cible ","tools.binding.sourceIeee":"IEEE de l\'objet source","tools.binding.error":"Entr\xe9e requise","tools.binding.sourceEp":"S\xe9lectionner l\'objet source","tools.binding.destIeee":"IEEE de l\'objet cible","tools.binding.destEp":"S\xe9lectionner l\'objet cible","tools.binding.cluster":"Fonction","tools.binding.button.put":"Couplage","tools.unbinding.button.put":"D\xe9-couplage","tools.debug":"D\xe9bogage","setting.header.VerboseLogging":"R\xe9glages des Logs","setting.subtitle.VerboseLogging":"Les r\xe9glages pour les Logs. Utilisez l\'option avanc\xe9e pour avoir acc\xe8s aux param\xe8tres sp\xe9cifiques ","tools.debugsetting.help.legend":"Param\xe8tres de d\xe9bogage et journalisation","tools.debugsetting.advanced.button":"Param\xe8tres avanc\xe9s","tools.debugsetting.normal.button":"param\xe8tres standards","tools.debugsetting.validate.button":"Valider","tools.debugsetting.reinit.button":"Param\xe8tres (d\xe9faut)","tools.debugsetting.reloadplugin.alert.title":"Red\xe9marrage du plugin","tools.debugsetting.reloadplugin.alert.subject":"Les r\xe9glages ont \xe9t\xe9 mis \xe0 jour, le plugin doit \xeatre red\xe9marr\xe9.","tools.debugsetting.reloadplugin.alert.cancel":"Fermer","tools.error":"Erreur(s)","tools.error.log-history.button":"Historique des erreurs (json)","tools.error.log-history.clear":"Effacer les erreurs","error.popover.title":"Erreur(s) d\xe9tect\xe9e(s)","error.popover.text":"Cliquer pour voir l\'historique","manufacturer":"Manufacturer","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"CASA.ia - Configurations sp\xe9cifiques","manufacturer.casaia.subtitle":"Configuration des codes Infrarouges pour le pilotage des controlleurs de climatisation CAC221 ...","manufacturer.casaia.placeholder":"Rechercher ...","manufacturer.casaia.nwkid":"Short ID","manufacturer.casaia.name":"Surnom","manufacturer.casaia.ieee":"IEEE","manufacturer.casaia.model":"Mod\xe8le","manufacturer.casaia.ircode":"Code Infrarouge","manufacturer.casaia.validate.button":"Valider","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"S\xe9lectionner un Zlinky","manufacturer.zlinky.key":"D\xe9signation","manufacturer.zlinky.value":"Valeur ","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Num\xe9ro de s\xe9rie","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),b=JSON.parse('{"APP_NAME":"ZigBeeforDomoticZ plug-in Admin Interface","About":"Over","Version":"Versie","NODATA":"Geen data weer te geven","TOTAL":"Totaal {totalRecords}","SELECTED":"Geselecteerd","dashboard":"Dashboard","dashboard.button.refresh":"Ververs","dashboard.trafic.title":"Plugin status ( Verzenden en Ontvangen, Types en Belasting)","dashboard.health.title":"Plugin apparaten","dashboard.devices.state.label":"Aantal bekende apparaten van de plugin","dashboard.devices.live":"live","dashboard.devices.disabled":"invalide","dashboard.devices.notseen":"geen nieuws","dashboard.devices.notReachable":"offline","dashboard.devices.others":"onbekend","dashboard.health.comment":"Live = apparaten online
    Offline = apparaten zijn niet bereikbaar
    Geen nieuws = apparaten waren meer dan 6 uur niet bereikbaar
    Onbekend = status apparaten onbekend","dashboard.traffic.title":"Verzonden & Ontvangen","dashboard.trafic.label":"Verzonden/Ontvangen berichten","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = aantal inkomende berichten sinds het begin van de plug-in
    Rx = aantal uitgaande berichten sinds het begin van de plug-in","dashboard.trend.title":"Statistieken","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Belasting","dashboard.trend.comment":"Tx/s = aantal verzonden berichten per seconde
    Rx/s = aantal ontvangen berichten per seconde
    Load = aantal berichten in de wachtrij","dashboard.trafic.maxload.label":"Belasting","dashboard.trafic.maxload":"Piek","dashboard.trafic.currentload":"huidige wachtrij","dashboard.trend.chart.yaxis":"Berichten/s","dashboard.devices.title":"Apparaat status van niet uitgeschakelde apparaten (Type, Gezondheid en Batterij niveau)","dashboard.device.title":"Soort van apparaten","dashboard.devices.label":"Apparaten","dashboard.devices.routers":"routers","dashboard.devices.enddevice":"eindapparaat","dashboard.devices.comment":"Router is een hoofdapparaat dat deelneemt aan het mesh-netwerk.
    Eindapparaat is een apparaat op batterijen dat geen berichten kan sturen, en geen niet bereikbaar is wanneer inactief.","dashboard.battery.title":"Batterij","dashboard.devices.battery.label":"Batterij","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Voor apparaten met een batterij wordt de batterijstatus gerapporteerd.","dashboard.optimized.title":"Geoptimaliseerde apparaten","dashboard.optimized.comment":"Geoptimaiseerde apparaten zijn apparaten waarvoor een configuratie is uitgevoerd om de plug-in te laten werken zoals verwacht.
    Niet-geoptimaliseerde apparaten kunnen niet volledig werken en/of kunnen onverwachte belasting of verkeer genereren.
    Meer info in de wiki ","dashboard.devices.optimized":"Geoptimaliseerde apparaten","dashboard.devices.not.optimized":"Niet geoptimaliseerde apparaten","dashboard.devices.optimized.label":"Geoptimaliseerde apparaten","dashboard.popup.device.header":"Object lijst","dashboard.popup.device.subtitle":"Deze lijst is gefilterd, door het geselecteerde in het dashbaord","dashboard.popup.device.button.close":"Sluiten","dashboard.health.starttime":"Opgestart op:","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"Max Belasting","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Er is een update voor de plug-in beschikbaar Meer informatie.
    Plugin upgrade","dashboard.plugin.update.available.title":"Plugin update","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Er is nieuwe firmware beschikbaar voor de ZiGate Meer info","dashboard.firmware.update.available.title":"Firmware update","dashboard.device.button":"Domoticz apparaten (json)","dashboard.plugin.header":"Plugin informatie","dashboard.plugin.subtitle":"Geeft plugin informatie","dashboard.stats.header":"Plugin statistieken","dashboard.stats.subtitle":"Geeft co\xf6rdinator statistieken over het verzenden en ontvangen van informatie","dashboard.zdevice.button":"Plugin apparten (json)","dashboard.zgroup.button":"Plugin Groepen (json)","dashboard.coordinator.header":"Co\xf6rdinator informatie","dashboard.coordinator.subtitle":"Geeft co\xf6rdinator informatie","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Group: ","dashboard.devices.indb":"In db","consent.banner.header":"Toestemming","consent.banner.description":"Voor het ontwikkelen, gebruiken we cookies voor technisch gebruik, en met je toestemming, we verzamelen alleen de plug-in versie.
    Mehr Infos im Wiki.","consent.banner.accept":"Accepteer","consent.banner.decline":"Afwijzen","management":"Beheer","device":"Apparaat Management","device.byname.subtitle":"Een lijst van alle gekoppelde apparaten. Hier kun je een vriendelijke naam voor ieder apparaat invoeren.
    Dit geeft een vriendelijk naam, in plaats van een code.
    De oranje gemarkeerde objecten zijn niet geoptimaliseerd met de plug-in. Volg de procedure op de wiki. ","device.byname.capabilities.column":"Functies","device.byname.devicename.column":"Eenvoudige naam","device.byname.header":"Apparaten management","device.byname.trash.column":"Verwijder","device.byname.optimized.column":"Verwijderen","device.byname.health.column":"Gezondheid","device.byname.battery.column":"Batterij","device.byname.ieee.column":"IEEE","device.byname.model.column":"Model","device.byname.devicename.param":"Extra parameters","device.byname.devicename.enabled":"Apparaat ingeschakeld","device.byname.placeholder":"typ filter hier ....","device.byname.shortid.column":"Korte id","device.byname.status.column":"Status","device.byname.lqi.column":"LQI","device.byname.validate.button":"Valideer","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Verwijder apparaat ?","device.byname.alert.subject":"Weet je het zeker ?","device.byname.alert.delete":"Verwijder","device.byname.alert.cancel":"Annuleer","device.byname.error.notify":"Gebruik de ingeschakelde schakelaar","device.byname.parameter.alert.save":"Valideer","device.byname.parameter.alert.cancel":"Annuleer","device.byname.parameter.alert.title":"Parameters","device.byname.parameter.alert.subject":"Stel specifieke parameters in ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Verwijder","device.byname.optimized.popover.title.ok":"Het object is geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ok":"Klik op het icoon om de informatie van het object","device.byname.optimized.popover.title.ko":"Dit object is niet geoptimaliseerd met de plugin","device.byname.optimized.popover.text.ko":"Klik op het icoon om de informatie van het object","group":"Groep Management","group.create.devices.column":"Apparaten in de Groep","group.create.groupname.column":"Groepsnaam","group.create.header":"Groep Management","group.create.placeholder":"typ filter hier ....","group.create.shortid.column":"Groep id","group.create.subtitle":"Maak, bewerk en verwijder groepen
    ","group.create.validate.button":"Valideer","group.create.add.button":"Maak een nieuwe groep","group.create.delete.button":"Verwijder","group.create.coordinator.column":"Co\xf6rdinator (toegevoegd aan groep)","group.reloadplugin.alert.title":"Plugin herstart","group.reloadplugin.alert.subject":"Groepen zijn ge-update, de plugin moet opnieuw worden gestart via Admin tab","group.reloadplugin.alert.cancel":"Sluiten","header.popover.title":"Herstart noodzakelijk","header.popover.text":"Sommige wijzigingen zijn in afwachting van een herstart van de plug-in","network":"Netwerk","network.topo":"Topologie","network.topo.header":"Netwerk Topologie","network.topo.subtitle":"Lijst van de Netwerk Topology. Selecteer de datum om het meshdiagram te genereren ","network.topo.visu.header":"Topologie diagram","network.topo.visu.subtitle":"Het Topologiediagram toont alle koppelingen tussen 2 knooppunten. Als u de cursor op een link plaatst, ziet u de richting van de link en de kwaliteit van de link","network.topo.visu.network.header":"Netwerk diagram","network.topo.visu.network.subtitle":"Maakt een netwerkdiagram van u Zigbee omgeving.","network.topo.visu.network.filter":"apparaat","network.topo.device.visu.network.chart.title":"Netwerk diagram","network.topo.visu.delete.button":"Verwijder","network.topo.device.batterylevel.column":"Batterij","network.topo.device.deviceid.column":"Apparaat id","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nWaarde","network.topo.device.signalelevel.column":"Signaal","network.topo.device.svalue.column":"sWaarde","network.topo.device.switchtype.column":"Schakelaar","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Type","network.topo.device.name.column":"Naam","network.topo.device.visu.header":"Lijst van apparaten","network.topo.device.visu.subtitle":"Genereert de lijst met apparaten die worden beheerd door co\xf6rdinator. Je krijgt ook een verwijzing naar de Widget-namen en aanvullende informatie van Domoticz","network.topo.device.visu.chart.title":"Mesh Diagram","network.topology.req.header":"Topologie scan","network.topology.req.subtitle":"Dit zal een Topologiescan op de achtergrond starten","network.topology.req.button":"Scan","network.topo.visu.network.relation.header":"Lijst met gekoppelde onderdelen van {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"Deze lijst geeft de LQI-waarde weer, tussen het geselecteerde object en al zijn koppelingen.","network.topo.visu.network.relation.to":"koppelingen","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"Het geselecteerde object heeft geen koppelingen.","network.topo.visu.network.relation.model":"Model","network.topo.visu.network.relation.status":"Status","network.topo.visu.network.relation.health":"Gezondheid","network.topo.visu.network.relation.battery":"Batterij","network.energy":"Energieniveau","network.stats.header":"Netwerk","network.stats.subtitle":"Energieniveau rapport ","network.stats.visu.delete.button":"Verwijder","network.inter.req.header":"Korte Energie scan","network.inter.req.subtitle":"De korte energiescan, het rapport geeft het energieniveau tussen alle routers en co\xf6rdinator, en verwerkt alle cross-communicatie. Dit rapport kan even duren als het aantal routers hoog is, n ((n-1) / 2), voor 5 routers zijn het 10 combinaties, voor 10 routers 45","network.inter.req.button":"Scan","network.full.req.header":"Volledige Energie scan","network.full.req.subtitle":"Er wordt een energierapport verstrekt. Dit rapport geeft het energieniveau tussen routers en ZiGate weer. Met andere woorden, hoeveel stroom ontvangt de co\xf6rdinator. Hoe hoger het getal, des te beter het ontvangst","network.full.req.button":"Volledige scan","network.stats.detail.visu.header":"Energieniveau","network.stats.detail.visu.subtitle":"Hoe hoger het nummer is, des te meer storing (0 tot 255)","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Mislukt : ","network.stats.detail.visu.chart.title":"Energieniveau","network.stats.detail.visu.chart.y-axis":"Energieniveau","network.stats.detail.visu.chart.x-axis":"Kanaal","admin":"Admin","admin.pairing":"Koppelen","admin.permittojoin.label":"Accepteer nieuwe hardware","admin.permittojoin.on.notify":"Accepteer nieuwe hardware Aan","admin.permittojoin.off.notify":"Accepteer nieuwe hardware Uit","admin.assistprovisionning.title":"Apparaat koppelen","admin.assistprovisionning.subtitle":"Start het koppelproces voor nieuwe apparaten ","admin.assistprovisionning.go.button":"Start","admin.assistprovisionning.alert.title":"Apparaat koppelen.","admin.assistprovisionning.alert.subject":"Wacht tot een nieuw apparaat zich aanmeld.","admin.assistprovisionning.alert.state":"Status : ","admin.assistprovisionning.alert.description":"Beschrijving : ","admin.assistprovisionning.alert.nwkid":"korte NwkId : ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Widget Lijst : ","admin.assistprovisionning.alert.cancel":"Annuleer","admin.assistprovisionning.alert.ep":"Eindpunt:","admin.assistprovisionning.alert.cluster":"ClusterId","admin.assistprovisionning.alert.profile":"Profiel :","admin.assistprovisionning.alert.device":"Apparaat :","admin.assistprovisionning.alert.model":"Model :","admin.assistprovisionning.alert.plugincertified":"Plugin Certificaat","admin.assistprovisionning.alert.Failed":"Mislukt (Er ging wat mis, controleer het logoboek)","admin.assistprovisionning.alert.inDB":"Gelukt (controleer of de apparaten zijn gemaakt)","admin.assistprovisionning.alert.Unexpected":"Onverwacht probleem (Neem contact op met de support)","admin.permittojoin.title":"Accepteer nieuwe Hardware voor een bepaalde tijd","admin.permittojoin.subtitle":"In/uitschakelen van het co\xf6rdinator koppelproces voor gewenste een periode ","admin.permittojoin.validate.button":"Valideer","admin.permittojoin.permanent.button":"Permanent","admin.permittojoin.permanent.notify":"Permanente Pairing mode","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Pairing modem Uit","admin.permittojoin.4min.button":"4 minuten","admin.permittojoin.4min.notify":"Pairing mode aan voor 4 minuten","admin.permittojoin.notify":"Pairing mode gewijzigd","admin.permittojoinrouter.title":"Koppel nieuwe apparaten op een router","admin.permittojoinrouter.subtitle":"Start/stop het koppelproces met co\xf6rdinator voor een bepaalde periode ","admin.permittojoinrouter.devices.placeholder":"Lijst van routers","admin.fullreset.title":"Bereid een apparaat voor op een hard reset","admin.fullreset.subtitle":"Als je een reset geeft op een object dat de plug-in kent, de plug-in gebruikt zijn vorige informatie. Met een volledige reset, als je een reset op een object doet, de plug-in cre\xebert alle informatie opnieuw.","admin.fullreset.device.placeholder":"Selecteer een apparaat","admin.fullreset.button":"Reset methode","admin.fullreset.notify":"Reset methode geactiveerd","admin.recreate.title":"Cre\xeber een widget(s) opnieuw","admin.recreate.subtitle":"Cre\xeber de widget opnieuw","admin.recreate.device.placeholder":"Selecteer een apparaat","admin.recreate.button":"Cre\xeber widget(s) opnieuw","admin.recreate.notify":"Opnieuw cre\xebren van widget(s) gestart","admin.group":"Groep","admin.rescan.group.title":"Scan alle apparaten op groepslidmaatschappen","admin.rescan.group.subtitle":"Start een scan van alle apparaten op groepslidmaatschappen
    Het resultaat wordt zichtbaar in het group management menu.","admin.rescan.group.button":"Volledige scan","admin.scan.group.device.title":"Scan een selectie van apparaten voor groepslidmaatschappen","admin.scan.group.device.subtitle":"Start een scan van groepslidmaatschappen voor de geselecteerde apparaten
    Je kan \xe9\xe9n of meerdere apparaten selecteren en het resultaat wordt zichtbaar in het groep management menu.","admin.scan.group.device.button":"Scan","admin.scan.group.device.placeholder":"Selecteer te scannen apparaten","admin.coordinator":"Co\xf6rdinator","admin.coordinator.swreset.title":"Co\xf6rdinator reset","admin.coordinator.swreset.subtitle":"Co\xf6rdinator wordt ge herstart (Er gaan geen gekoppelde apparaten verloren) ","admin.coordinator.swreset.button":"Zachte reset","admin.coordinator.swreset.notify":"Co\xf6rdinator herstart begonnen","admin.coordinator.switchchannel.title":"Co\xf6rdinator wijzig kanaal","admin.coordinator.switchchannel.subtitle":"Zal het kanaal wijzigen in de geselecteerde, en zal het kanaal verzenden naar het apparaat. Attentie, normaal veranderen routers naar het nieuwe kanaal, none Zigbee 3.0 apparaten doen dat niet en hebben een reset nodig.","admin.coordinator.switchchannel.placeholder":"Co\xf6rdinator kanaal (0 default)","admin.coordinator.switchchannel.button":"Wijzig kanaal","admin.coordinator.switchchannel.notify":"Kanaal wijziging gestart","admin.erasepdm.title":"Wis ZiGate","admin.erasepdm.subtitle":"Zal alle permanente data verwijderen uit het geheugen van ZiGate (Alle gekoppelde apparaten worden gewist). Zorg ervoor dat je wis ZiGatePDM hebt ingeschakeld in geavanceerde instellingen voor dat je deze bewerking uitvoert.","admin.erasepdm.button":"Verwijderen","admin.erasepdm.notify":"ErasePdm ZiGate gestart","admin.erasepdm.alert.title":"Wis ZiGate, weet je het zeker?","admin.erasepdm.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.erasepdm.alert.cancel":"Annuleer","admin.erasepdm.alert.erase":"Verwijderen","admin.plugin":"Plug-in","admin.plugin.reload.title":"Herstart plug-in","admin.plugin.reload.subtitle":"Zal de plug-in herstarten ","admin.plugin.reload.button":"Herstart","admin.plugin.reload.notify":"Plug-in herstarten","admin.plugin.reload.port":"Poort","admin.plugin.reload.username":"Gebruikersnaam","admin.plugin.reload.password":"Wachtwoord","admin.plugin.reload.host":"Hostnaam","admin.plugin.reload.protocol":"Protocol","admin.plugin.reload.alert.title":"Plug-in herstarten, Weet je het zeker ?","admin.plugin.reload.alert.subject":"ATTENTIE, laatste kans !!!!!","admin.plugin.reload.alert.cancel":"Annuleer","admin.plugin.reload.alert.erase":"Herstart","admin.plugin.update.title":"Plugin update","admin.plugin.update.subtitle":"Update de plugin naar de meeste recente versie. Als de update gelukt is, word er gevraagd de plugin te herstarten, anders moet je handmatig updaten.","admin.plugin.update.button":"upgrade plugin (dit kan enkele minuten duren)","admin.plugin.update.success":"Je kunt de plugin nu herstarten","admin.plugin.update.error":"Controleer de log file, en pas eventueel handmatig aan","admin.firmware":"Firmware","admin.firmware.title":"Apparaten firmware","admin.firmware.subtitle":"Update apparaat firmware ","admin.firmware.button.update":"Update","admin.firmware.notify":"Updating firmware","admin.firmware.list":"lijst beschikbare firmware","admin.firmware.manufacturer.list":"lijst van leveranciers","admin.firmware.devices.list":"Lijst van apparaten","admin.firmware.force":"Forceer update","admin.firmware.alert.title":"Titel waarschuwing","admin.firmware.alert.subject":"Onderwerp waarschuwing","admin.firmware.alert.ok":"update","admin.firmware.alert.cancel":"Annuleer","admin.firmware.alert.list.devices":"Lijst van apparaten","admin.firmware.alert.filename":"bestandsnaam","admin.firmware.alert.device":"Apparaat","admin.firmware.alert.brand":"Merk","settings":"Instellingen","setting.header":"Instellingen","setting.subtitle":"Hier kunt u verschillende plug-in instellingen wijzigen
    Sommige wijzigingen vereisen mogelijk een herstart van de plug-in.","setting.validate.button":"Valideer","setting.reinit.button":"Instellingen (standaard)","setting.advanced.button":"Geavanceerde instellingen","setting.normal.button":"Normale instellingen","setting.help.link":" Informatie over de instellingen vind je in de WIKI","setting.help.legend":"Dit zijn alle instellingen van de plugin die je kan wijzigen.","setting.header.Services":"Beschikbare services","setting.subtitle.Services":"Activeer hier de beschikbare services","useDomoticzLog":"Gebruik Domoticz Log","enablegroupmanagement":"Aanzetten Groepen","zigatePartOfGroup0000":"Cre\xeber Groep 0000","allowRemoveZigateDevice":"Verwijderen van co\xf6rdinator","resetPermit2Join":"Reset na een herstart toestaan","forcePollingAfterAction":"Krijg apparaten status na actie","enableReadAttributes":"Polling Aanzetten","blueLedOnOff":"Schakel co\xf6rdinator Blue Led aan","setting.reloadplugin.alert.title":"Plug-in herstart","setting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plug-in moet opnieuw worden opgestart","setting.reloadplugin.alert.cancel":"Sluiten","setting.resetplugin.alert.title":"Coordinator Reset","setting.resetplugin.alert.subject":"Instellingen zijn geupdate, coordinator heeft een reset nodig. (meestal hebben alle apparaten een rapair nodig)","setting.resetplugin.alert.cancel":"Sluiten","setting.eraseplugin.alert.title":"Wis PDM","setting.eraseplugin.alert.subject":"Instellingen zijn geupadate, PDM heeft een reset nodig. (alle apparaten moeten opnieuwe gepaird worden)","setting.eraseplugin.alert.cancel":"Afsluiten","Ping":"Activeer Ping","setting.header.DomoticzEnvironment":"Domoticz URL","setting.subtitle.DomoticzEnvironment":"Instelling voor toegang tot Domoticz API","setting.header.WebInterface":"Web Interface instellingen","setting.subtitle.WebInterface":"Maakt het mogelijk om de Web UI aan / uit te schakelen","enableWebServer":"Schakel web User Interface in","setting.header.DeviceManagement":"Instellingen voor apparaat beheer","setting.subtitle.DeviceManagement":"Hier zijn alle instellingen met betrekking tot Apparaten en hoe co\xf6rdinator ermee omgaat","setting.header.CoordinatorConfiguration":"Coordinator Instellingen","setting.subtitle.CoordinatorConfiguration":"Instellingen met betrekking tot de Coordinator-hardware.","setting.header.OverTheAirUpgrade":"Over The Air Upgrade-instellingen","setting.subtitle.OverTheAirUpgrade":"Alle instellingen met betrekking tot de Over The Air upgrade-functionaliteit.","allowOTA":"Aanzetten OTA","setting.header.Legrand":"Legrand Netatmo instellingen","setting.subtitle.Legrand":"Allow to set a number of Legrand specifics options","setting.header.Schneider_Wiser":"Schneider Wiser instellingen","setting.subtitle.Schneider_Wiser":"Allow to enable some specific mecanishm, and some other options","internetAccess":"Internettoegang toestaan","batteryOTA":"OTA toestaan voor apparaten op batterijen","waitingOTA":"Vertraag het starten van het OTA-proces","setting.header.GroupManagement":"Groepsmanagement instellingen","setting.subtitle.GroupManagement":"Instellingen om de Groepsbeheerfunctie in te schakelen en te configureren.","OnIfOneOn":"Groep is aan wanneer \xe9\xe9n apparaat aan is (Anders moeten alle apparaten aan zijn)","setting.header.PluginConfiguration":"Plugin omgevingsinstellingen","setting.subtitle.PluginConfiguration":"Alle instellingen voor Plugin-omgeving","numDeviceListVersion":"Hoeveel regels Apparaatlijst-geschiedenis behouden","setting.header.Others":"Overige instellingen","setting.header.Provisioning":"Paring instellingen","setting.subtitle.Provisioning":"Speciale instellingen voor specialing apparaten en condities","setting.header.DevicePolling":"Backend error","setting.subtitle.DevicePolling":"Hiermee kunt u de polling-frequentie opgeven per type informatie. Houd er rekening dat wanneer de co\xf6rdinator een hoge overvraagt wordt er mogelijk knelpunten ontstaan","setting.subtitle.Others":"","logLQI":"Vertraging voordat een Topologiescan wordt gestart (sec)","networkScan":"Frequentie van storingsrapport (sec)","setting.header.CommandTransition":"Experimentele parameters","setting.subtitle.CommandTransition":"Group Overgangstijden voor apparaat commando\'s","moveToHueSatu":"Transition for Hue","moveToColourTemp":"Transition for Color Temp","moveToColourRGB":"Transition for RGB color","moveToLevel":"Transition for Move to Level","setting.header.Experimental":"Experimentele parameters","setting.subtitle.Experimental":"Alleen gebruiken wanneer hier naar wordt gevraagd","api.global.error.notify":"foutmelding","api.global.succes.scanlaunched.notify":"analyseren gestart","api.global.succes.commandsent.notify":"Commando verzonden","api.global.succes.saved.notify":"Opgeslagen","setting.header.OTA":"Apparaat firmware update Over-The-Air","setting.subtitle.OTA":"Parameters hoe je de Over-The-Air update configuratie wilt laten verlopen.","IkeaTradfri_Repository":"IKEA-TRADFRI Oficiele repository","ZigbeeOTA_Repository":"Zigbee OTA firmware (opgebouwd door de internet communitie)","autoServeOTA":"Sta automatische update toe, wanneer er nieuwe firmeware is gevonden.","checkFirmwareAgainstZigbeeOTARepository":"Controleer of er firmware beschikbaar is in de repository","DomoticzCustomMenu":"Aanzetten Plugin WebUI vanuit het Domoticz Custom menu","NightShift":"Push achtergrond activiteit van 23:00 tot 6:00 uur","ConfigureReportingChunk":"Maximale nummers van attributen, wanneer configuratie rapport","ReadAttributeChunk":"Maximale nummers van attributen wanneer attributen gelezen ","resetConfigureReporting":"Reset alle bestaande configuraties van het rapport","resetReadAttributes":"Reset alle attributen die gelezen zijn","TopologyV2":"Network Topology gebasserd op routing en neighbourghs tables","autoBackup":"Automatische backup van de coordinator","BackupFullDevices":"backup apparaten informatie","BellowsNoMoreEndDeviceChildren":"Schakel direct pairen uit van Coordinator","BellowsSourceRouting":"Zet aan Zigbee Source routing mechanisme","pingDevices":"Ping main-powered apparaten regelmatig om te verifi\xebren of ze gezond zijn.","GroupOnBattery":"Zet aan groep creeren voor batterij apparaten","deviceOffWhenTimeOut":"Schakel schakelaar uit wanneer buiten netwerk","checkConfigurationReporting":"Controleer het apparaat report configuratie regelmatig","TXpower_set":"Coordinator transmissie power level","pingDevicesFeq":"Frequentie van regelmatig ping main-powered apparaten","GrpfadingOff":"Dimmer-modus","GrpmoveToColourRGB":"Overangstijd voor RGB kleur","GrpmoveToColourTemp":"Overangstijd voor TEMP kleur","GrpmoveToLevel":"Overangstijd voor dim positie naar een andere","enableSchneiderWiser":"Inschakelen wanneer je veroudere Wiser apparaten hebt.","LegrandCompatibilityMode":"Inschakelen om een Legrand Netamo Hub te simuleren","AqaraOppleBulbMode":"Inschakelen om een Aqara Opple remote, commandos direct naar het apparaat te sturen.","forceClosingAllNodes":"Inschakelen om pairing mode af te sluiten in elke router","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Enable re-binding clusters during configure reporting operations","doUnbindBind":"Unbind and then bind, when doing a binding operation","PluginAnalytics":"Schakel de plugin in, en om cookies te gebruiken, om informatie te verzamelen, over de coordinator, en de apparten die gebruikt worden.","autoRestore":"Automatisch gebruik de meest recente coordinator backup, als een lege is gevonden.","forceSwitchSelectorPushButton":"Zet de selector switch eerst op \'off\' wanneer dezelfde status wordt geselecteerd. (Workaround voor Domoticz issue #4143)","resetSwitchSelectorPushButton":"Aantal seconden totdat de schakalaar uit gaat","setting.header.ManufSpecifiqDevicePolling":"Specifieke Polling","setting.subtitle.ManufSpecifiqDevicePolling":"0 stands for disable otherwise it indicates the polling frequency in seconds, For Manufacturer Specific it will allow to retreive device states whcih are not provided automatically by the device","setting.header.Zigpy":"Zigpy CIE specifieke configuratie","setting.subtitle.Zigpy":"Specific to some CIE as ConBeeII and RasBeeII it might required to enable some CIE specific item for some brand","resetMotiondelay":"Vertaging in seconden om motion te detecteren","Certification":"Certification ( FCC or CE )","channel":"Co\xf6rdinator kanaal (standaard 0)","alarmDuration":"tijd in seconden voor duur van alarm","vibrationAqarasensitivity":"Aqara Vibratie gevoeligheid","TradfriKelvinStep":"stappen voor kelvin Tradfri afstandsbediening","numTopologyReports":"Aantal topologie rapporten opgeslagen","numEnergyReports":"Aantal opgeslagen storingsrapporten","PowerOn_OnOff":"Na stroomuitval herstel status apparaat","logDeviceUpdate":"Schakel updaten apparaat bericht in log","capturePairingInfos":"Sla pairing informatie op in reports folder","error_required":"Benodigd","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Gereedschappen","tools.tools":"Gereedschappen","tools.tools.export":"Exporteer","tools.tools.zdevice-raw.button":"Plugin onbewerkte apparaten","tools.tools.non-optimized.button":"Niet geoptimaliseerde apparaten","tools.tools.zgroup.button":"Plugin Groepen","tools.tools.zdevice.button":"Plugin apparaten","tools.tools.device.button":"Domoticz Widgets","tools.tools.log.button":"Plug-in informatie","tools.tools.infos.plugin.button":"Plug-in informatie","tools.tools.coordinator.infos.button":"Co\xf6rdinator informatie","tools.tools.plugin-health.button":"Plugin gezondheid","tools.tools.zdevice-name.button":"zApparaat-naam","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Battery State","tools.tools.zgroup-list-available-device.button":"zGroep-lst-apparaten","tools.tools.settings.button":"Instellingen","tools.tools.plugin-stat.button":"Verkeer","tools.command":"Commando","tools.debugcommand.title":"Verstuur commando","tools.debugcommand.subtitle":"Verstuur een commando naar een apparaat
    (1) Selecteer het apparaat,
    (2) Selecteer het commando,
    (3) Selecteer het apparaat type. Dit beinvloed de manier hoe er met het apparaat wordt gecommuniceerd,
    (4) Geef een waarde in of selecteer een kleur (optioneel)","tools.debugcommand.device":"Kies apparaat","tools.debugcommand.button.cancel":"Annuleer","tools.debugcommand.action":"Kies Actie","tools.debugcommand.type":"Kies type","tools.debugcommand.value":"Waarde","tools.debugcommand.level.error":"tussen 0 en 100","tools.debugcommand.effect.error":"tussen 0x00 tot 0xff","tools.debugcommand.button.send":"Verzenden","tools.rawcommand-zigate.title":"ZiGate commando (raw)","tools.rawcommand-zigate.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.
    Je moeten deze link volgen the ZiGate protocol .","tools.rawcommand-zigate.command":"Berichten RAW type","tools.rawcommand-zigate.error":"Invoer verplicht","tools.rawcommand-zigate.payload":"Data","tools.rawcommand-zigate.button.send":"Bevestig","tools.rawcommand-zigpy.title":"ZigBee commando","tools.rawcommand-zigpy.subtitle":"Sta Zigate toe om een commando direct naar the co\xf6rdinator te sturen.","tools.rawcommand-zigpy.placeholder":"Selecteer een apparaat","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Data","tools.rawcommand-zigpy.button.send":"Bevestig","tools.reporting.configure":"Configureer overzicht","tools.reporting.configure.title":"Configureer overzicht instellingen","tools.reporting.configure.subtitle":"Configure a device to automatically report the values of one or more of its attributes, or to receive such reports.
    The minimum reporting interval field is 16 bits in length and SHALL contain the minimum interval, in seconds, between issuing reports of the specified attribute.
    The maximum reporting interval field is 16 bits in length and SHALL contain the maximum interval, in seconds, between issuing reports of the specified attribute.
    The reportable change field SHALL contain the minimum change to the attribute that will result in a report being issued. This field is of variable length.
    For attributes with \'analog\' data type (see 2.6.2), the field has the same data type as the attribute. The sign (if any) of the reportable change field is ignored.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Valideer","tools.reporting.configure.device":"Selecteer een apparaat","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribuut id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"min interval (secondes)","tools.reporting.configure.maxInterval.column":"max interval (secondes)","tools.reporting.configure.change.column":"wijzig","tools.reporting.configure.hexa.error":"niet een hexadecimaal getal","tools.reporting.configure.length.error":"niet een verwacht getal","tools.binding":"Verbinding","tools.binding.title":"Verbindingstitel","tools.binding.subtitle":"Sta toe om een \u200b\u200bgroep te binden tussen bron- en doelapparaat
    e.g. If you want to bind a Temperature sensor with an Actuator, the SourceIEEE/Ep will be the Temperature sensor, the DestIEEE/Ep will be the actuator and the Cluster will be 0402 (Temperature Measurement)","tools.binding.sourceIeee":"bron IEEE","tools.binding.error":"Invoer verplicht","tools.binding.sourceEp":"Selecteer bron apparaat","tools.binding.destIeee":"Dest IEEE","tools.binding.destEp":"Selecteer doel apparaat","tools.binding.cluster":"Cluster","tools.binding.button.put":"Binding verzenden","tools.unbinding.button.put":"Unbinding","tools.debug":"Debug","setting.header.VerboseLogging":"Verbose en Loggen","setting.subtitle.VerboseLogging":"Hiermee kunt u sommige Logging-functies in- of uitschakelen ","tools.debugsetting.help.legend":"Logging and debuging, use advanced to get access to the Debug parameters","tools.debugsetting.advanced.button":"Geavanceerde instellingen","tools.debugsetting.normal.button":"Normale instellingen","tools.debugsetting.validate.button":"Plug-in herstart","tools.debugsetting.reinit.button":"Instellingen (standaard)","tools.debugsetting.reloadplugin.alert.title":"Plugin herladen","tools.debugsetting.reloadplugin.alert.subject":"De instellingen zijn bijgewerkt, de plugin moet opnieuw worden opgestart","tools.debugsetting.reloadplugin.alert.cancel":"Sluiten","tools.error":"foutmelding(en)","tools.error.log-history.button":"Log foutengeschiedenis (json)","tools.error.log-history.clear":"Log verwijderen","error.popover.title":"foutmeldingen gedetecteerd","error.popover.text":"Klik om het log te zien","manufacturer":"Fabrikant","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"titel","manufacturer.casaia.subtitle":"ondertitel","manufacturer.casaia.placeholder":"tijdelijke aanduiding","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"naam","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"model","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"valideer","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"P\xe9riode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP (30min)","manufacturer.zlinky.ADPS":"Avertissement du d\xe9passement de la puissance souscrite","manufacturer.zlinky.ADIR1":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 1","manufacturer.zlinky.ADIR2":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 2","manufacturer.zlinky.ADIR3":"Avertissement du d\xe9passement de l\u2019intensit\xe9 sur la phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index 10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 2","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance apparente de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance apparente de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance apparente Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance apparente max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance apparente max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moyenne phase 1","manufacturer.zlinky.UMOY2":"Tension moyenne phase 2","manufacturer.zlinky.UMOY3":"Tension moyenne phase 3","manufacturer.zlinky.SINSTS":"Puissance apparente Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance apparente Instantan\xe9e soutir\xe9e phase 1","manufacturer.zlinky.SINSTS2":"Puissance apparente Instantan\xe9e soutir\xe9e phase 2","manufacturer.zlinky.SINSTS3":"Puissance apparente Instantan\xe9e soutir\xe9e phase 3","manufacturer.zlinky.SMAXN":"Puissance apparente max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance apparente max. soutir\xe9e n phase 1","manufacturer.zlinky.SMAXN2":"Puissance apparente max. soutir\xe9e n phase 2","manufacturer.zlinky.SMAXN3":"Puissance apparente max. soutir\xe9e n phase 3","manufacturer.zlinky.SMAXN-1":"Puissance apparente max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance apparente max. soutir\xe9e n-1 phase 1","manufacturer.zlinky.SMAXN2-1":"Puissance apparente max. soutir\xe9e n-1 phase 2","manufacturer.zlinky.SMAXN3-1":"Puissance apparente max. soutir\xe9e n-1 phase 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"Relais","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),T=JSON.parse('{"APP_NAME":"Interfaz de Gesti\xf3n de ZigBeeforDomoticZ","About":"Sobre","Version":"Versi\xf3n","NODATA":"no hay informaci\xf3n para mostrar","TOTAL":"Total {totalRecords}","SELECTED":"seleccionado","dashboard":"Tablero","dashboard.button.refresh":"Actualizar","dashboard.trafic.title":"Estado del plugin","dashboard.health.title":"Dispositivos del plugin","dashboard.devices.state.label":"Dispositivos conocidos por el plugin","dashboard.devices.live":"Vivo","dashboard.devices.disabled":"deshabilitado","dashboard.devices.notseen":"Sin noticias","dashboard.devices.notReachable":"Perdido","dashboard.devices.others":"Desconocido","dashboard.health.comment":"Vivo = cantidad de dispositivos activos
    Perdido = cantidad de dispositivos fuera de la red
    Sin noticias: cantidad de dispositivos que no han informado en las \xfaltimas 6 horas
    Desconocido = cantidad de dispositivos con estado desconocido","dashboard.traffic.title":"Enviar y Recibir","dashboard.trafic.label":"Enviar / Recibir mensajes","dashboard.trafic.send":"Tx","dashboard.trafic.receive":"Rx","dashboard.traffic.comment":"Tx = n\xfamero de mensajes entrantes desde el inicio del plugin
    Rx = n\xfamero de mensajes salientes desde el inicio del plugin","dashboard.trend.title":"Estad\xedsticas","dashboard.txps":"Tx/s","dashboard.rxps":"Rx/s","dashboard.txph":"Tx/h","dashboard.rxph":"Rx/h","dashboard.load":"Load","dashboard.trend.comment":"Tx/s = cantidad de mensajes enviados por segundo
    Rx/s = cantidad de mensajes recibidos por segundo
    Load = cantidad de mensajes en la cola","dashboard.trafic.maxload.label":"Carga","dashboard.trafic.maxload":"Pico","dashboard.trafic.currentload":"Actual","dashboard.trend.chart.yaxis":"mensaje(s)","dashboard.devices.title":"Estado de los dispositivosno desactivados","dashboard.device.title":"tipo de dispositivos","dashboard.devices.label":"Dispositivos","dashboard.devices.routers":"Enrutadores","dashboard.devices.enddevice":"Dispositivos finales","dashboard.devices.comment":"Enrutadores = Dispositivos alimentados por la red que participan en el mallado de la red.
    Objetos terminales = Dispositivos que no pueden participar en el mallado (frecuentemente los con bater\xeda, pero en algunos casos pueden ser alimentados por una fuente de baja potencia o sin neutral).","dashboard.battery.title":"Bater\xeda","dashboard.devices.battery.label":"Bater\xeda","dashboard.devices.battery.inf.15":"< 15%","dashboard.devices.battery.inf.35":"< 35%","dashboard.devices.battery.inf.75":"< 75%","dashboard.devices.battery.sup.75":"> 75%","dashboard.battery.comment":"Para dispositivos equipados con bater\xeda, a continuaci\xf3n se informa el estado de la bater\xeda.","dashboard.optimized.title":"Dispositivos optimizados","dashboard.optimized.comment":"Optimizado = Dispositivos para los que se ha realizado una configuraci\xf3n en el complemento.
    No optimizado = Dispositivos que pueden no funcionar completamente y/o generar una carga o tr\xe1fico anormales.
    M\xe1s informaci\xf3n en el wiki","dashboard.devices.optimized":"Dispositivos optimizados","dashboard.devices.not.optimized":"Dispositivos no optimizados","dashboard.devices.optimized.label":"Dispositivos","dashboard.popup.device.header":"lista de dispositivos","dashboard.popup.device.subtitle":"Esta lista esta filtrada por elemento en el que se hizo clic en el tablero.","dashboard.popup.device.button.close":"Cerrar","dashboard.health.starttime":"Empieza en ","dashboard.rxpm":"Rx/m","dashboard.txpm":"Tx/m","dashboard.maxload":"MaxLoad","dashboard.plugin.version":"Plugin: ","dashboard.plugin.update.available":"Hay una actualizaci\xf3n disponible para el plugin M\xe1s informaci\xf3n.
    Plugin upgrade","dashboard.plugin.update.available.title":"Actualizaci\xf3n del plugin","dashboard.firmware.version":"Firmware: ","dashboard.firmware.update.available":"Hay una actualizaci\xf3n disponible para el firware M\xe1s informaci\xf3n","dashboard.firmware.update.available.title":"Actualizaci\xf3n del firware","dashboard.device.button":"DomoticZ Devices(json)","dashboard.plugin.header":"Informaci\xf3n sobre plugin","dashboard.plugin.subtitle":"Proporciona informaci\xf3n sobre el plugin","dashboard.stats.header":"Estad\xedsticas del plugins","dashboard.stats.subtitle":"Proporciona estad\xedsticas de coordinador en t\xe9rminos de transmisi\xf3n y recepci\xf3n de mensajes","dashboard.zdevice.button":"Dispositivos del plugin (json)","dashboard.zgroup.button":"Groupos del Plugin (json)","dashboard.coordinator.header":"Informaci\xf3n de Coordinador","dashboard.coordinator.subtitle":"Proporciona informaci\xf3n de Coordinador","dashboard.health.OTA":"OTA: ","dashboard.health.group":"Groupo: ","dashboard.devices.indb":"En Db","consent.banner.header":"Consentimiento","consent.banner.description":"Para mejorar nuestro desarrollo y centrarnos en los puntos que se necesita, utilizamos una t\xe9cnica de cookies y, con su consentimiento, recopilaremos principalmente la versi\xf3n del plugin, el modelo y marca del coordinador, la versi\xf3n del firmware y los datos de la red (como cantidad de enrutadores y dispositivos terminales).
    D\xe9 su consentimiento seleccionando \'Permitir\' o \'No permitir\'. Si desea cambiar su elecci\xf3n, puede hacerlo a trav\xe9s del men\xfa Configuraci\xf3n.
    M\xe1s informaci\xf3n en la wiki.","consent.banner.accept":"Aceptar","consent.banner.decline":"Rechazar","management":"Gesti\xf3n","device":"Gesti\xf3n de dispositivos","device.byname.subtitle":"Enumere todos los dispositivos HW emparejados con el plugin, y le permite ingresar un nombre descriptivo para cada dispositivo.
    Muestra el nombre amigable del dispositivo en la secci\xf3n de red en lugar de un c\xf3digo de cuatro d\xedgitos.
    Los objetos marcados en naranja no son optimizado con el plugin. Por favor sigue el procedimiento en el wiki,","device.byname.capabilities.column":"Capacidades","device.byname.devicename.column":"Nombre amigable","device.byname.header":"Administraci\xf3n de objetos","device.byname.trash.column":"Eliminar","device.byname.optimized.column":"Optimizado","device.byname.health.column":"Salud","device.byname.battery.column":"Bater\xeda","device.byname.ieee.column":"IEEE","device.byname.model.column":"Modelo","device.byname.devicename.param":"Par\xe1metros","device.byname.devicename.enabled":"Dispositivo activo","device.byname.placeholder":"Escriba filtro aqu\xed ....","device.byname.shortid.column":"Id corta","device.byname.status.column":"Estado","device.byname.lqi.column":"LQI","device.byname.validate.button":"Validar","device.byname.widget.column":"Domoticz Widget","device.byname.alert.title":"Eliminar dispositivo ?","device.byname.alert.subject":"Estas seguro ?","device.byname.alert.delete":"Eliminar","device.byname.alert.cancel":"Anular","device.byname.error.notify":"Por favor, utilice el interruptor \'Activar\'","device.byname.parameter.alert.save":"Validar","device.byname.parameter.alert.cancel":"Anular","device.byname.parameter.alert.title":"Par\xe1metros","device.byname.parameter.alert.subject":"Configurar par\xe1metros espec\xedficos ","device.byname.parameter.popover.title":"TITLE","device.byname.parameter.popover.text":"text to show","device.byname.delete.colum":"Eliminar","device.byname.optimized.popover.title.ok":"El dispositivo est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ok":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","device.byname.optimized.popover.title.ko":"El dispositivo no est\xe1 optimizado con el plugin","device.byname.optimized.popover.text.ko":"Haga clic en el icono para copiar la informaci\xf3n del dispositivo","group":"Gesti\xf3n de grupos","group.create.devices.column":"Dispositivos seleccionados en el grupo","group.create.groupname.column":"Nombre del grupo","group.create.header":"Gesti\xf3n de grupos","group.create.placeholder":"Escriba filtro aqu\xed ....","group.create.shortid.column":"Id del grupo","group.create.subtitle":"Permitir editar, crear y eliminar grupos
    Aplique los cambios y luego actualice la p\xe1gina para confirmar que los cambios se han realizado. No hagas todos los cambios a la vez, prefieres hacerlo paso a paso con peque\xf1os cambios","group.create.validate.button":"Validar","group.create.add.button":"Agregar un grupo nuevo","group.create.delete.button":"Eliminar","group.create.coordinator.column":"Coordinador (en el grupo)","group.reloadplugin.alert.title":"Recarga del plugin","group.reloadplugin.alert.subject":"Los grupos se han actualizado, el plugin debe ser reiniciado","group.reloadplugin.alert.cancel":"Cerrar","header.popover.title":"Reinicio necesario","header.popover.text":"Algunos cambios est\xe1n pendientes, es necesario reiniciar el plugin","network":"Red","network.topo":"Topolog\xeda","network.topo.header":"Topolog\xeda de la red","network.topo.subtitle":"Lista de topolog\xeda de red. Seleccione uno para obtener el diagrama de malla ","network.topo.visu.header":"Diagrama de topolog\xeda","network.topo.visu.subtitle":"El diagrama de topolog\xeda muestra todos los enlaces entre 2 nodos. Si deja el cursor en un enlace, ver\xe1 la direcci\xf3n del enlace, as\xed como la calidad del enlace.","network.topo.visu.network.header":"Gr\xe1fico de red","network.topo.visu.network.subtitle":"Dibujar\xe1 un gr\xe1fico de red de su entorno Zigbee.","network.topo.visu.network.filter":"Nombre del nodo para filtrar","network.topo.device.visu.network.chart.title":"Gr\xe1fico de red","network.topo.visu.delete.button":"Eliminar","network.topo.device.batterylevel.column":"Bater\xeda","network.topo.device.deviceid.column":"Id del dispositivo","network.topo.device.id.column":"Id","network.topo.device.nvalue.column":"nValue","network.topo.device.signalelevel.column":"Signal","network.topo.device.svalue.column":"sValue","network.topo.device.switchtype.column":"Switch","network.topo.device.timedout.column":"Timeout","network.topo.device.type.column":"Tipo","network.topo.device.name.column":"Nombre","network.topo.device.visu.header":"Lista de dispositivos","network.topo.device.visu.subtitle":"Proporciona la lista de dispositivos gestionados por coordinador. Tambi\xe9n obtendr\xe1 una referencia a los nombres de los widgets y otra informaci\xf3n de Domoticz","network.topo.device.visu.chart.title":"Diagrama de malla","network.topology.req.header":"Escaneo de topolog\xeda","network.topology.req.subtitle":"Esto activar\xe1 un escaneo de topolog\xeda, que se ejecutar\xe1 en segundo plano.","network.topology.req.button":"Escanear","network.topo.visu.network.relation.header":"Lista de objetos vinculados de {{deviceSelected}}","network.topo.visu.network.relation.subtitle":"La matriz muestra el valor LQI entre el objeto seleccionado y todos sus objetos vinculados.","network.topo.visu.network.relation.to":"Hijos","network.topo.visu.network.relation.weight":"LQI","network.topo.visu.network.relation.nochild":"El objeto seleccionado no tiene hijos.","network.topo.visu.network.relation.model":"Modelo","network.topo.visu.network.relation.status":"Estado","network.topo.visu.network.relation.health":"Salud","network.topo.visu.network.relation.battery":"Bater\xeda","network.energy":"Nivel de interferencia","network.stats.header":"Red","network.stats.subtitle":"Informes de nivel de interferencia ","network.stats.visu.delete.button":"Eliminar","network.inter.req.header":"Escaneo de interferencia corto","network.inter.req.subtitle":"Se proporcionar\xe1 un informe de escaneo de interferencias. Informar\xe1 el nivel de interferencia entre los routers y coordinador. Cuanto mayor sea el valor, peor ser\xe1.","network.inter.req.button":"Escanear","network.full.req.header":"Escaneo completo de interferencias","network.full.req.subtitle":"Como por el escaneo de interferencia corto, el informe proporcionar\xe1 el nivel de interferencia entre todos los routers y coordinador, manejando todas las comunicaciones cruzadas. Este informe puede tardar un poco cuando la cantidad de routers es alta, n ((n-1) / 2), para 5 routers son 10 combinaciones, para 10 routers 45","network.full.req.button":"Escanear completo","network.stats.detail.visu.header":"Nivel de interferencia","network.stats.detail.visu.subtitle":"Cuanto mayor sea el n\xfamero, m\xe1s interferencia hay (de 0 a 255).","network.stats.detail.visu.totaltx":"Tx : ","network.stats.detail.visu.totalfail":"Fall. : ","network.stats.detail.visu.chart.title":"Nivel de interferencia","network.stats.detail.visu.chart.y-axis":"Nivel de interferencia","network.stats.detail.visu.chart.x-axis":"Canal","admin":"Admin","admin.pairing":"Aprovisionamiento","admin.permittojoin.label":"Aceptar dispositivo nuevo","admin.permittojoin.on.notify":"Aceptar dispositivo nuevo On","admin.permittojoin.off.notify":"Aceptar dispositivo nuevo Off","admin.assistprovisionning.title":"Emparejar un nuevo dispositivo con el asistente","admin.assistprovisionning.subtitle":"Pondr\xe1 coordinador en modo de emparejamiento si es necesario, y luego se comunicar\xe1n los resultados de aprovisionamiento. Presiona GO y comienza a poner tu dispositivo en modo de emparejamiento ","admin.assistprovisionning.go.button":"Par","admin.assistprovisionning.alert.title":"Asistente - Esperando la inclusi\xf3n de dispositivo","admin.assistprovisionning.alert.subject":"Realice un restablecimiento en su dispositivo para iniciar un procedimiento de emparejamiento. Consulte la documentaci\xf3n del dispositivo si es necesario.","admin.assistprovisionning.alert.state":"Estado: ","admin.assistprovisionning.alert.description":"Descripci\xf3n: ","admin.assistprovisionning.alert.nwkid":"Corto NwkId: ","admin.assistprovisionning.alert.ieee":"IEEE : ","admin.assistprovisionning.alert.widgets":"Lista de widgets: ","admin.assistprovisionning.alert.cancel":"Salida","admin.assistprovisionning.alert.ep":"EndPoint: ","admin.assistprovisionning.alert.cluster":"ClusterId : ","admin.assistprovisionning.alert.profile":"Profile : ","admin.assistprovisionning.alert.device":"Dispositivo : ","admin.assistprovisionning.alert.model":"Modelo : ","admin.assistprovisionning.alert.plugincertified":"Certificaci\xf3n de plugin: ","admin.assistprovisionning.alert.Failed":"Fall\xf3 (algo sali\xf3 mal, consulte el LOG para obtener m\xe1s detalles)","admin.assistprovisionning.alert.inDB":"Exito (verifique si se han creado los widgets en Domoticz)","admin.assistprovisionning.alert.Unexpected":"Inesperado (p\xf3ngase en contacto con el SAT)","admin.permittojoin.title":"Aceptar dispositivo nuevo","admin.permittojoin.subtitle":"Habilitar/deshabilitar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoin.validate.button":"Validar","admin.permittojoin.permanent.button":"Permanente","admin.permittojoin.permanent.notify":"Emparejamiento permanente activado","admin.permittojoin.stop.button":"Stop","admin.permittojoin.stop.notify":"Emparejamiento desactivado","admin.permittojoin.4min.button":"4 minutos","admin.permittojoin.4min.notify":"Emparejamiento activado para 4 minutos","admin.permittojoin.notify":"Modo de emparejamiento modificado","admin.permittojoinrouter.title":"Aceptar el nuevo dispositivo en el router","admin.permittojoinrouter.subtitle":"Activar/desactivar el proceso de emparejamiento con el coordinador por un per\xedodo de tiempo ","admin.permittojoinrouter.devices.placeholder":"Lista de los enrutadores","admin.fullreset.title":"Preparando el dispositivo para un reinicio completo","admin.fullreset.subtitle":"Si desea realizar un restablecimiento completo de un dispositivo aprovisionado existente en Domoticz, se recomienda indicar el complemento de dicho evento. Luego, el plugin se asegurar\xe1 de rehacer un descubrimiento completo del dispositivo y configurar\xe1 lo que se haya configurado durante el primer emparejamiento.","admin.fullreset.device.placeholder":"Seleccione un dispositivo","admin.fullreset.button":"Modo de reinicio","admin.fullreset.notify":"Modo de reinicio activado","admin.recreate.title":"Recrear widget","admin.recreate.subtitle":"Recrear widget","admin.recreate.device.placeholder":"Seleccione un dispositivo","admin.recreate.button":"Recrear widget","admin.recreate.notify":"Recrear widget iniciado","admin.group":"Groupo","admin.rescan.group.title":"Escanee todos los dispositivos para membros de grupos","admin.rescan.group.subtitle":"Escanee todos los dispositivos para membros de grupos
    y el resultado estar\xe1 disponible en la gesti\xf3n del grupo","admin.rescan.group.button":"Escaneo completo","admin.scan.group.device.title":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos","admin.scan.group.device.subtitle":"Inicie un escaneo para cada dispositivo seleccionado para sus membros de grupos
    Puede seleccionar de uno a varios y el resultado estar\xe1 disponible en la gesti\xf3n de grupos.","admin.scan.group.device.button":"Escanear","admin.scan.group.device.placeholder":"Seleccione el o los dispositivos a escanear","admin.coordinator":"Coordinador","admin.coordinator.swreset.title":"Reinicio del software de coordinador","admin.coordinator.swreset.subtitle":"Reiniciar\xe1 el coordinador (sin p\xe9rdida de dispositivos emparejados) ","admin.coordinator.swreset.button":"Reinicio del software","admin.coordinator.swreset.notify":"Reinicio del coordinador iniciado","admin.coordinator.switchchannel.title":"Cambiar el canal de comunicaci\xf3n del coordinador","admin.coordinator.switchchannel.subtitle":"Este permite cambiar el coordinador y su red a un canal de comunicaci\xf3n particular.
    La solicitud se enviar\xe1 a todos los dispositivos: los enrutadores cambian normalmente sin problemas, pero los dispositivos con bater\xeda o que no son Zigbee 3.0 probablemente requerir\xe1n un reinicio para unirse al nuevo canal.","admin.coordinator.switchchannel.placeholder":"Canal del coordinador (0 predeterminado)","admin.coordinator.switchchannel.button":"Cambia el canal","admin.coordinator.switchchannel.notify":"Comenz\xf3 el cambio de canal","admin.erasepdm.title":"Borrar la ZiGate","admin.erasepdm.subtitle":"Borrar\xe1 la memoria de datos permanente de la ZiGate (Perder\xe1s todos los dispositivos emparejados) Debe habilitar el par\xe1metro eraseZigatePDM en Configuraci\xf3n avanzada antes","admin.erasepdm.button":"Borrar","admin.erasepdm.notify":"ErasePdm ZiGate started","admin.erasepdm.alert.title":"Borrar la ZiGate, estas seguro ?","admin.erasepdm.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.erasepdm.alert.cancel":"Anular","admin.erasepdm.alert.erase":"Borrar","admin.plugin":"Plugin","admin.plugin.reload.title":"Reiniciar el plugin","admin.plugin.reload.subtitle":"Reiniciar\xe1 el plugin ","admin.plugin.reload.button":"Reiniciar","admin.plugin.reload.notify":"Plugin reiniciando ","admin.plugin.reload.port":"Puerto","admin.plugin.reload.username":"Nombre de usuario","admin.plugin.reload.password":"Contrase\xf1a","admin.plugin.reload.host":"Nombre del host","admin.plugin.reload.protocol":"Protocolo","admin.plugin.reload.alert.title":"Reiniciar el plugin, est\xe1s seguro ?","admin.plugin.reload.alert.subject":"ATENCI\xd3N, \xfaltima oportunidad !!!!!","admin.plugin.reload.alert.cancel":"Anular","admin.plugin.reload.alert.erase":"Reiniciar","admin.plugin.update.title":"Actualizaci\xf3n del Plugin","admin.plugin.update.subtitle":"Iniciar la actualizaci\xf3n del Plugin.
    Si la actualizaci\xf3n se realiza sin problemas, ser\xe1 necesario reiniciar el Plugin para que se tenga en cuenta; de lo contrario, la actualizaci\xf3n deber\xe1 realizarse manualmente.","admin.plugin.update.button":"Actualizar el Plugin (varios minutos)","admin.plugin.update.success":"Reiniciar el Plugin para tener en cuenta la actualizaci\xf3n.","admin.plugin.update.error":"Hubo errores durante la actualizaci\xf3n, mire a los registros y tome acciones correctivas","admin.firmware":"Firmware","admin.firmware.title":"Firmware de dispositivo","admin.firmware.subtitle":"subt\xedtulo del firmware ","admin.firmware.button.update":"bot\xf3n de actualizaci\xf3n","admin.firmware.notify":"Lanzamiento de la actualizaci\xf3n","admin.firmware.list":"lista de firmware","admin.firmware.manufacturer.list":"lista de fabricantes","admin.firmware.devices.list":"lista de dispositivos","admin.firmware.force":"forzar actualizaci\xf3n","admin.firmware.alert.title":"alerta de t\xedtulo","admin.firmware.alert.subject":"alerta de sujeto","admin.firmware.alert.ok":"actualizar","admin.firmware.alert.cancel":"cancelar","admin.firmware.alert.list.devices":"lista de dispositivos","admin.firmware.alert.filename":"nombre del archivo","admin.firmware.alert.device":"Dispositivo ","admin.firmware.alert.brand":"Marca","settings":"Configuraciones","setting.header":"Configuraciones","setting.subtitle":"Le permite visualizar y editar las distintas configuraciones del plugin
    Algunos requieren reiniciar el plugin.","setting.validate.button":"Validar","setting.reinit.button":"Configuraci\xf3n (predeterminada)","setting.advanced.button":"Ajustes avanzados","setting.normal.button":"Ajustes normales","setting.help.link":" Puede encontrar m\xe1s informaci\xf3n sobre la configuraci\xf3n en el Wiki","setting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","setting.header.Services":"Servicios disponibles","setting.subtitle.Services":"Activa los servicios que quieres estar activo","useDomoticzLog":"Usar registro (LOG) de Domoticz","enablegroupmanagement":"Activar Groupos","zigatePartOfGroup0000":"Crear grupo 0000","allowRemoveZigateDevice":"Eliminaci\xf3n en la coordinador","resetPermit2Join":"Restablecer el permiso para unirse al inicio","forcePollingAfterAction":"Obtener el estado del dispositivo despu\xe9s de la acci\xf3n","enableReadAttributes":"Activar el sondeo","blueLedOnOff":"Activar la Led azul de la coordinador","setting.reloadplugin.alert.title":"Recarga del plugin","setting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","setting.reloadplugin.alert.cancel":"Cerrar","setting.resetplugin.alert.title":"Restablecimiento del coordinador","setting.resetplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el coordinador debe restablecerse (lo m\xe1s probable es que todos los dispositivos deban volver a emparejarse).","setting.resetplugin.alert.cancel":"Cerrar","setting.eraseplugin.alert.title":"Erase PDM","setting.eraseplugin.alert.subject":"Se han actualizado los ajustes, es necesario borrar el PDM (se deber\xe1 volver a emparejar todos los dispositivos)","setting.eraseplugin.alert.cancel":"Cerrar","Ping":"Habilitar ping","setting.header.DomoticzEnvironment":"URL de Domoticz","setting.subtitle.DomoticzEnvironment":"Configuraci\xf3n de c\xf3mo acceder a la API de Domoticz","setting.header.WebInterface":"Configuraci\xf3n de la interfaz web","setting.subtitle.WebInterface":"Permite activar/desactivar la interfaz de usuario web","enableWebServer":"Activar la interfaz de usuario web","setting.header.DeviceManagement":"Configuraci\xf3n de gesti\xf3n de dispositivos","setting.subtitle.DeviceManagement":"Aqu\xed est\xe1n todas las configuraciones relacionadas con los dispositivos y c\xf3mo el coordinador interact\xfaa con ellos","setting.header.CoordinatorConfiguration":"Configuraci\xf3n de la coordinador","setting.subtitle.CoordinatorConfiguration":"Aqu\xed est\xe1n todas las configuraciones relacionadas con el hardware coordinador.","setting.header.OverTheAirUpgrade":"Configuraci\xf3n de actualizaci\xf3n por aire (OTA)","setting.subtitle.OverTheAirUpgrade":"Estas son todas las configuraciones relacionadas con la funcionalidad de actualizaci\xf3n por aire (OTA/Over The Air).","allowOTA":"Permitir OTA","setting.header.Legrand":"Configuraci\xf3n de Legrand Netatmo","setting.subtitle.Legrand":"Permitir establecer una serie de opciones espec\xedficas de Legrand","setting.header.Schneider_Wiser":"Configuraci\xf3n de Schneider Wiser","setting.subtitle.Schneider_Wiser":"Permitir activar algunos mecanismos espec\xedficos y algunas otras opciones","internetAccess":"Permitir el acceso a Internet","batteryOTA":"Permitir OTA para dispositivos alimentados por bater\xeda","waitingOTA":"retraso al iniciar el proceso OTA","setting.header.GroupManagement":"Configuraci\xf3n de gesti\xf3n de grupos","setting.subtitle.GroupManagement":"Aqu\xed est\xe1n todos los ajustes para activar y configurar la funci\xf3n de gesti\xf3n de Grupo.","OnIfOneOn":"El grupo est\xe1 encendido si un dispositivo est\xe1 encendido (de lo contrario, necesita todos los dispositivos encendidos)","setting.header.PluginConfiguration":"Configuraci\xf3n del entorno del plugin","setting.subtitle.PluginConfiguration":"Aqu\xed est\xe1n todas las configuraciones de entornos del plugin","numDeviceListVersion":"Cantidad de historial de la lista de dispositivos","setting.header.Others":"Otras configuraciones","setting.header.Provisioning":"Ajustes de emparejamiento","setting.subtitle.Provisioning":"Configuraciones especiales para dispositivos especiales o condiciones especiales","setting.header.DevicePolling":"Sondeo de dispositivos","setting.subtitle.DevicePolling":"Le permite especificar la frecuencia de sondeo por tipo de informaci\xf3n. Tenga en cuenta que una alta frecuencia sobrecargar\xe1 el coordinador y podr\xeda causar algunos problemas de rendimiento.","setting.subtitle.Others":"","logLQI":"Retraso antes de iniciar un escaneo de topolog\xeda (seg)","networkScan":"Frecuencia del informe de interferencias (seg)","setting.header.CommandTransition":"Transiciones de comando para group luces","setting.subtitle.CommandTransition":"Puede especificar el tiempo de transici\xf3n en d\xe9cimas de segundos con el que la transici\xf3n de la etapa actual a la objetivo. Por ejemplo, cu\xe1ntas d\xe9cimas de segundo se necesitar\xe1n para pasar del color actual al color que solicit\xe9 a trav\xe9s de Domoticz. La temperatura de color se utiliza para el color blanco","moveToHueSatu":"Transici\xf3n para Hue","moveToColourTemp":"Transici\xf3n para temperatura de color","moveToColourRGB":"Transici\xf3n para color RGB","moveToLevel":"Transici\xf3n para pasar de nivel","setting.header.Experimental":"Par\xe1metros experimentales","setting.subtitle.Experimental":"\xdaselo solo si se le ha pedido","api.global.error.notify":"Backend error","api.global.succes.scanlaunched.notify":"An\xe1lisis iniciado","api.global.succes.commandsent.notify":"Actualizaci\xf3n exitosa","api.global.succes.saved.notify":"Salvado","setting.header.OTA":"Actualizaci\xf3n del firmware del dispositivo v\xeda OTA","setting.subtitle.OTA":"Comportamiento del plugin con actualizaciones OTA","IkeaTradfri_Repository":"Repositorio de firmware oficial de IKEA-TRADFRI","ZigbeeOTA_Repository":"Repositorio de firmware ZigBee OTA (mantenido por la comunidad)","autoServeOTA":"Actualizaci\xf3n autom\xe1tica cuando se encuentra un nuevo firmware","checkFirmwareAgainstZigbeeOTARepository":"Compruebe si hay un firmware disponible en uno de los repositorios","DomoticzCustomMenu":"Habilitar el WebUI del plugin desde el men\xfa personalizado de Domoticz","NightShift":"Mueva las acciones en segundo plano de las 11 a las 6.","ConfigureReportingChunk":"Cantidad maxima de atributos durante Configure Reporting","ReadAttributeChunk":"Cantidad maxima de atributos durante Read Attributes","resetConfigureReporting":"Reinicio de todo los Configure Reporting","resetReadAttributes":"Reinicio de todo los read attributes","TopologyV2":"An\xe1lisis de malla basado en tablas de enrutamiento y vecindad","autoBackup":"Guardado autom\xe1tico del coordinador","BackupFullDevices":"Guardar informaci\xf3n del objeto","BellowsNoMoreEndDeviceChildren":"Desactivar emparejamiento directo en el coordinador","BellowsSourceRouting":"Habilitar el mecanismo de enrutamiento de origen","pingDevices":"Haga un ping a dispositivos alimentados por la red para comprobar su estado","GroupOnBattery":"Habilitar la creaci\xf3n de grupos para disositivos con bater\xeda","deviceOffWhenTimeOut":"Cambiar un dispositivo a Apagado despu\xe9s de un timeout de la red","checkConfigurationReporting":"Verifique la configuraci\xf3n del informe de un dispositivo regularmente","TXpower_set":"Nivel de potencia de transmisi\xf3n del coordinador","pingDevicesFeq":"Periodo de ping a objetos alimentados por la red","GrpfadingOff":"Modo de Fadding","GrpmoveToColourRGB":"Tiempo de transici\xf3n para cambiar el valor de un color","GrpmoveToColourTemp":"Tiempo de transici\xf3n para cambiar la temperatura de un color","GrpmoveToLevel":"Tiempo de transici\xf3n para pasar de un nivel de potencia a otro","enableSchneiderWiser":"Habilitar si tiene elementos Legacy Wiser","LegrandCompatibilityMode":"Habilitar para simular un concentrador Legrand Netamo","AqaraOppleBulbMode":"Habilite el control remoto Aqara Opple para controlar objetos directamente","forceClosingAllNodes":"Habilite para cerrar el modo de emparejamiento en cada enrutador","extendedPANID":"Zigbee Extended PAN Identifier","allowReBindingClusters":"Habilitar el reenlace del cl\xfaster durante las operaciones de creaci\xf3n de configure reporting","doUnbindBind":"Desvincular y luego vincular, cuando se realiza una operaci\xf3n de vinculaci\xf3n","PluginAnalytics":"Autorizar el plugin para colocar una cookie a fin de recopilar informaci\xf3n sobre la coordinaci\xf3n y los modelos de objetos utilizados.","autoRestore":"Aplique autom\xe1ticamente la copia de seguridad del coordinador m\xe1s reciente cuando se encuentre un nuevo coordinador en blanco","forceSwitchSelectorPushButton":"Workaround Domoticz issue #4143","resetSwitchSelectorPushButton":"Cantidad de segundos despu\xe9s de que el selector se restablece a apagado","setting.header.ManufSpecifiqDevicePolling":"Sondeo espec\xedfico","setting.subtitle.ManufSpecifiqDevicePolling":"0 significa deshabilitar; de lo contrario, indica la frecuencia de sondeo en segundos. Para el fabricante espec\xedfico, permitir\xe1 recuperar estados del dispositivo que no proporciona autom\xe1ticamente el dispositivo.","setting.header.Zigpy":"Configuraci\xf3n espec\xedfica para CIE zigpy","setting.subtitle.Zigpy":"Para algunos CIE (como las ConBeeII y RasbeeII), es necesario activar elementos espec\xedficos para algunas marcas","resetMotiondelay":"Retraso en segundos para restablecer la detecci\xf3n de movimiento","Certification":"Certificaci\xf3n ( FCC or CE )","channel":"Canal del coordinador (predeterminado 0)","alarmDuration":"Duraci\xf3n en segundos para dispositivo de alarma","vibrationAqarasensitivity":"Sensibilidad a la vibraci\xf3n de Aqara","TradfriKelvinStep":"Paso Kelvin para control remoto Tradfri","numTopologyReports":"Cantidad de informes de topolog\xeda guardados","numEnergyReports":"Cantidad de informes de interferencias guardados","PowerOn_OnOff":"Estado de retorno despu\xe9s de un corte de energ\xeda del dispositivo","logDeviceUpdate":"Habilitar el mensaje UpdateDevice en el LOG","capturePairingInfos":"Capture informaci\xf3n de emparejamiento y gu\xe1rdela en la carpeta de informes","error_required":"Necesario","ForceAPSAck":"Force APS Ack to ZCL and ZDP commands","zigpySourceRouting":"Enable Zigbee Source routing (plugin)","reenforcementWiser":"Enable reenforcement messages (legacy Wiser only)","forcePassiveWidget":"Allow Domoticz actions on Widgets from remote devices","tools":"Utiles","tools.tools":"Utiles","tools.tools.export":"Exportar","tools.tools.zdevice-raw.button":"Dispositivos primas del plugin","tools.tools.non-optimized.button":"Dispositivos no optimizados","tools.tools.zgroup.button":"Grupos del plugin(json)","tools.tools.zdevice.button":"Dispositivos del plugin","tools.tools.device.button":"Widgets de Domoticz","tools.tools.log.button":"Infos del plugin","tools.tools.infos.plugin.button":"Infos del plugin","tools.tools.coordinator.infos.button":"Infos de coordinador","tools.tools.plugin-health.button":"Salud del plugin","tools.tools.zdevice-name.button":"zDevice-name","tools.tools.domoticz-env.button":"domoticz-env","tools.tools.battery-state.button":"Estado de las bater\xedas","tools.tools.zgroup-list-available-device.button":"zGroup-lst-devices","tools.tools.settings.button":"Configuraciones","tools.tools.plugin-stat.button":"Tr\xe1fico","tools.command":"Comando","tools.debugcommand.title":"Comandos directos","tools.debugcommand.subtitle":"Permitir interactuar directamente con un dispositivo, con un conjunto de comandos basados en las capacidades del dispositivo
    (1) Seleccione el dispositivo,
    (2) Seleccione la acci\xf3n que desea realizar,
    (3) Seleccione un tipo de dispositivo potencial que pueda influir en la forma de interactuar con el dispositivo,
    (4) Opcionalmente, es posible que deba entrar un valor o seleccionar un color.","tools.debugcommand.device":"Seleccione el dispositivo","tools.debugcommand.button.cancel":"Anular","tools.debugcommand.action":"Seleccione la acci\xf3n","tools.debugcommand.type":"Seleccione tipo","tools.debugcommand.value":"Valor","tools.debugcommand.level.error":"entre 0 y 100","tools.debugcommand.effect.error":"entre 0x00 y 0xff","tools.debugcommand.button.send":"Enviar","tools.rawcommand-zigate.title":"Comandos de ZiGate(en bruto)","tools.rawcommand-zigate.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.
    Debe seguir el protocolo ZiGate .","tools.rawcommand-zigate.command":"Tipo de mensaje","tools.rawcommand-zigate.error":"Entrada requerida","tools.rawcommand-zigate.payload":"Datos","tools.rawcommand-zigate.button.send":"Enviar","tools.rawcommand-zigpy.title":"ZigBee comando","tools.rawcommand-zigpy.subtitle":"Permitir enviar un comando el coordinador directamente a la zigate en modo bruto.","tools.rawcommand-zigpy.placeholder":"Seleccione un dispositivo","tools.rawcommand-zigpy.groupaddressflag":"GroupAddressFlag","tools.rawcommand-zigpy.ackmode":"AckMode","tools.rawcommand-zigpy.profileid":"ProfileId","tools.rawcommand-zigpy.clusterid":"ClusterId","tools.rawcommand-zigpy.sourceep":"SourceEp","tools.rawcommand-zigpy.targetep":"TargetEp","tools.rawcommand-zigpy.sqn":"Sqn","tools.rawcommand-zigpy.payload":"Datos","tools.rawcommand-zigpy.button.send":"Enviar","tools.reporting.configure":"Informes","tools.reporting.configure.title":"Configuraci\xf3n de informes","tools.reporting.configure.subtitle":"Configura un objeto para que env\xede autom\xe1ticamente los valores de uno (o m\xe1s) de sus atributos o que reciba informaci\xf3n.
    Los campos Intervalo m\xednimo e Intervalo m\xe1ximo indican el rango de tiempo en segundos durante el cual el object enviar\xe1 el valor del atributo correspondiente. Los intervalos deben ser inferiores a 65534s (codificaci\xf3n de 16 bits).
    El campo Delta indica la variaci\xf3n de valor que har\xe1 que se env\xeden los datos. Sin limitaci\xf3n en la longitud del campo. El signo ser\xe1 ignorado.
    Para los atributos con un tipo de datos anal\xf3gico (ver 2.6.2), el campo tiene el mismo tipo de datos que el atributo.","tools.reporting.configure.trigger.button":"Trigger","tools.reporting.configure.reset.button":"Reset","tools.reporting.configure.validate.button":"Validar","tools.reporting.configure.device":"Seleccione un dispositivo","tools.reporting.configure.clusterId.column":"Cluster id","tools.reporting.configure.attributeId.column":"Attribute id","tools.reporting.configure.dataType.column":"Datatype","tools.reporting.configure.timeout.column":"Timeout","tools.reporting.configure.minInterval.column":"intervalo m\xednimo (segundos)","tools.reporting.configure.maxInterval.column":"intervalo m\xe1ximo (segundos)","tools.reporting.configure.change.column":"Diferencia","tools.reporting.configure.hexa.error":"Valor hexadecimal esperado","tools.reporting.configure.length.error":"Valor demasiado largo","tools.binding":"Uni\xf3n","tools.binding.title":"Uni\xf3n de dispositivo","tools.binding.subtitle":"Permitir la uni\xf3n en un cluster entre los dispositivos de origen y de destino
    p.ej. Si desea vincular un sensor de temperatura con un actuador, La SourceIEEE/Ep ser\xe1 el sensor de temperatura, el DestIEEE/Ep ser\xe1 el actuador y el Cluster ser\xe1 0402 (Medida de temperatura)","tools.binding.sourceIeee":"IEEE de origen","tools.binding.error":"Entrada requerida","tools.binding.sourceEp":"Seleccionar dispositivo de origen","tools.binding.destIeee":"IEEE de destino","tools.binding.destEp":"Seleccionar dispositivo de destino","tools.binding.cluster":"Cluster","tools.binding.button.put":"Vincular","tools.unbinding.button.put":"Desvincular","tools.debug":"Debug","setting.header.VerboseLogging":"Detallado y registro","setting.subtitle.VerboseLogging":"Le permitir\xe1 activar/desactivar algunas funciones de registro (LOG) ","tools.debugsetting.help.legend":"Todas estas son configuraciones del plugin que se pueden actualizar.","tools.debugsetting.advanced.button":"Par\xe1metros avanzados","tools.debugsetting.normal.button":"Par\xe1metros est\xe1ndar","tools.debugsetting.validate.button":"Validar","tools.debugsetting.reinit.button":"Par\xe1metros (predeterminado)","tools.debugsetting.reloadplugin.alert.title":"Reinicio del plugin","tools.debugsetting.reloadplugin.alert.subject":"La configuraci\xf3n se ha actualizado, el plugin debe ser reiniciado","tools.debugsetting.reloadplugin.alert.cancel":"Cerrar","tools.error":"Error(es)","tools.error.log-history.button":"Historial de errores (json)","tools.error.log-history.clear":"Borrar historial de errores","error.popover.title":"Error(es) detectado(s)","error.popover.text":"Clic para ver el LOG","manufacturer":"Fabricantes","manufacturer.casaia":"Casa.ia","manufacturer.casaia.header":"t\xedtulo","manufacturer.casaia.subtitle":"subtitulo","manufacturer.casaia.placeholder":"marcador de posici\xf3n","manufacturer.casaia.nwkid":"nwkid","manufacturer.casaia.name":"nombre","manufacturer.casaia.ieee":"ieee","manufacturer.casaia.model":"modelo","manufacturer.casaia.ircode":"ircode","manufacturer.casaia.validate.button":"validar","manufacturer.zlinky.header":"Le Zlinky","manufacturer.zlinky.subtitle":"Liste les donn\xe9es r\xe9cup\xe9r\xe9es par le Zlinky s\xe9lectionn\xe9,","manufacturer.zlinky.placeholder":"Select Zlinky device","manufacturer.zlinky.key":"Designation","manufacturer.zlinky.value":"Value","manufacturer.zlinky.DateCode":"Code date","manufacturer.zlinky.SWBuildID":"SWBuildID","manufacturer.zlinky.ADC0":"Serial Number","manufacturer.zlinky.BASE":"Index Base","manufacturer.zlinky.OPTARIF":"Option tarifaire","manufacturer.zlinky.ISOUSC":"Intensit\xe9 souscrite","manufacturer.zlinky.HCHC":"Index HCHC","manufacturer.zlinky.HCHP":"Index HCHP","manufacturer.zlinky.EJPHN":"Index EJPHN","manufacturer.zlinky.EJPHPM":"Index EJPHPM","manufacturer.zlinky.BBRHCJB":"Index BBRHCJB","manufacturer.zlinky.BBRHPJB":"Index BBRHPJB","manufacturer.zlinky.BBRHCJW":"Index BBRHCJW","manufacturer.zlinky.BBRHPJW":"Index BBRHPJW","manufacturer.zlinky.BBRHCJR":"Index BBRHCJR","manufacturer.zlinky.BBRHPJR":"Index BBRHPJR","manufacturer.zlinky.IINST":"Courant efficace","manufacturer.zlinky.IINST1":"Courant efficace phase 1","manufacturer.zlinky.IINST2":"Courant efficace phase 2","manufacturer.zlinky.IINST3":"Courant efficace phase 3","manufacturer.zlinky.IMAX":"Intensit\xe9 maximale","manufacturer.zlinky.IMAX1":"Intensit\xe9 maximale phase 1","manufacturer.zlinky.IMAX2":"Intensit\xe9 maximale phase 2","manufacturer.zlinky.IMAX3":"Intensit\xe9 maximale phase 3","manufacturer.zlinky.PMAX":"Puissance maximale triphas\xe9e atteinte","manufacturer.zlinky.PAPP":"Puissance apparente","manufacturer.zlinky.PTEC":"Periode tarifaire en cours","manufacturer.zlinky.DEMAIN":"Couleur du lendemain","manufacturer.zlinky.HHPHC":"Horaire Heure Pleines Heures Creuses","manufacturer.zlinky.PPOT":"Pr\xe9sence des potentiels","manufacturer.zlinky.PEJP":"Pr\xe9avis d\xe9but EJP(30min)","manufacturer.zlinky.ADPS":"Avertissement de D\xe9passement De Puissance Souscrite","manufacturer.zlinky.ADIR1":"Avertissement de D\xe9passement D\'intensit\xe9 phase 1","manufacturer.zlinky.ADIR2":"Avertissement de D\xe9passement D\'intensit\xe9 phase 2","manufacturer.zlinky.ADIR3":"Avertissement de D\xe9passement D\'intensit\xe9 phase 3","manufacturer.zlinky.ADSC":"Adresse Secondaire du Compteur","manufacturer.zlinky.NGTF":"Nom du calendrier tarifaire fournisseur","manufacturer.zlinky.LTARF":"Libell\xe9 tarif fournisseur en cours","manufacturer.zlinky.NTARF":"Num\xe9ro de l\u2019index tarifaire en cours","manufacturer.zlinky.VTIC":"Version de la TIC","manufacturer.zlinky.DATE":"Date et heure courant","manufacturer.zlinky.EAST":"\xc9nergie active soutir\xe9e totale","manufacturer.zlinky.EASF01":"\xc9nergie active soutir\xe9e Fournisseur, index 01","manufacturer.zlinky.EASF02":"\xc9nergie active soutir\xe9e Fournisseur, index 02","manufacturer.zlinky.EASF03":"\xc9nergie active soutir\xe9e Fournisseur, index 03","manufacturer.zlinky.EASF04":"\xc9nergie active soutir\xe9e Fournisseur, index 04","manufacturer.zlinky.EASF05":"\xc9nergie active soutir\xe9e Fournisseur, index 05","manufacturer.zlinky.EASF06":"\xc9nergie active soutir\xe9e Fournisseur, index 06","manufacturer.zlinky.EASF07":"\xc9nergie active soutir\xe9e Fournisseur, index 07","manufacturer.zlinky.EASF08":"\xc9nergie active soutir\xe9e Fournisseur, index 08","manufacturer.zlinky.EASF09":"\xc9nergie active soutir\xe9e Fournisseur, index 09","manufacturer.zlinky.EASF10":"\xc9nergie active soutir\xe9e Fournisseur, index10","manufacturer.zlinky.EASD01":"\xc9nergie active soutir\xe9e Distributeur, index 01","manufacturer.zlinky.EASD02":"\xc9nergie active soutir\xe9e Distributeur, index 02","manufacturer.zlinky.EASD03":"\xc9nergie active soutir\xe9e Distributeur, index 03","manufacturer.zlinky.EASD04":"\xc9nergie active soutir\xe9e Distributeur, index 04","manufacturer.zlinky.EAIT":"\xc9nergie active inject\xe9e totale","manufacturer.zlinky.ERQ1":"\xc9nergie r\xe9active Q1 total","manufacturer.zlinky.ERQ2":"\xc9nergie r\xe9active Q2 total","manufacturer.zlinky.ERQ3":"\xc9nergie r\xe9active Q3 total","manufacturer.zlinky.ERQ4":"\xc9nergie r\xe9active Q4 total","manufacturer.zlinky.IRMS1":"Courant efficace, phase 1","manufacturer.zlinky.IRMS2":"Courant efficace, phase 21","manufacturer.zlinky.IRMS3":"Courant efficace, phase 3","manufacturer.zlinky.URMS1":"Tension efficace, phase 1","manufacturer.zlinky.URMS2":"Tension efficace, phase 2","manufacturer.zlinky.URMS3":"Tension efficace, phase 3","manufacturer.zlinky.PREF":"Puissance app. de r\xe9f\xe9rence (PREF)","manufacturer.zlinky.STGE":"Registre de Statuts","manufacturer.zlinky.PCOUP":"Puissance app. de coupure (PCOUP)","manufacturer.zlinky.SINSTI":"Puissance app. Instantan\xe9e inject\xe9e","manufacturer.zlinky.SMAXIN":"Puissance app max. inject\xe9e n","manufacturer.zlinky.SMAXIN-1":"Puissance app max. inject\xe9e n-1","manufacturer.zlinky.CCASN":"Point n de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCASN-1":"Point n-1 de la courbe de charge active soutir\xe9e","manufacturer.zlinky.CCAIN":"Point n de la courbe de charge active inject\xe9e","manufacturer.zlinky.CCAIN-1":"Point n-1 de la courbe de charge active inject\xe9e","manufacturer.zlinky.UMOY1":"Tension moy. ph. 1","manufacturer.zlinky.UMOY2":"Tension moy. ph. 2","manufacturer.zlinky.UMOY3":"Tension moy. ph. 3","manufacturer.zlinky.SINSTS":"Puissance app. Instantan\xe9e soutir\xe9e","manufacturer.zlinky.SINSTS1":"Puissance app. Instantan\xe9e soutir\xe9e ph.1","manufacturer.zlinky.SINSTS2":"Puissance app. Instantan\xe9e soutir\xe9e ph. 2","manufacturer.zlinky.SINSTS3":"Puissance app. Instantan\xe9e soutir\xe9e ph. 3","manufacturer.zlinky.SMAXN":"Puissance app. max. soutir\xe9e n","manufacturer.zlinky.SMAXN1":"Puissance app. max. soutir\xe9e n ph.1","manufacturer.zlinky.SMAXN2":"Puissance app. max. soutir\xe9e n ph. 2","manufacturer.zlinky.SMAXN3":"Puissance app. max. soutir\xe9e n ph. 3","manufacturer.zlinky.SMAXN-1":"Puissance app. max. soutir\xe9e n-1","manufacturer.zlinky.SMAXN1-1":"Puissance app. max. soutir\xe9e n-1 ph.1","manufacturer.zlinky.SMAXN2-1":"Puissance app. max. soutir\xe9e n-1 ph. 2","manufacturer.zlinky.SMAXN3-1":"Puissance app. max. soutir\xe9e n-1 ph. 3","manufacturer.zlinky.MSG1":"Message court","manufacturer.zlinky.MSG2":"Message ultra court","manufacturer.zlinky.PRM":"PRM","manufacturer.zlinky.DPM1":"D\xe9but Pointe Mobile 1","manufacturer.zlinky.FPM1":"Fin Pointe Mobile 1","manufacturer.zlinky.DPM2":"D\xe9but Pointe Mobile 2","manufacturer.zlinky.FPM2":"Fin Pointe Mobile 2","manufacturer.zlinky.DPM3":"D\xe9but Pointe Mobile 3","manufacturer.zlinky.FPM3":"Fin Pointe Mobile 3","manufacturer.zlinky.RELAIS":"RELAIS","manufacturer.zlinky.NJOURF":"Num\xe9ro du jour en cours calendrier fournisseur","manufacturer.zlinky.NJOURF+1":"Num\xe9ro du prochain jour calendrier fournisseur","manufacturer.zlinky.PJOURF+1":"Profil du prochain jour calendrier fournisseur","manufacturer.zlinky.PPOINTE1":"Profil du prochain jour de pointe","manufacturer.zlinky.PROTOCOL_LINKY_0":"Mode historique monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_1":"Mode standard monophas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_2":"Mode historique triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_3":"Mode standard triphas\xe9","manufacturer.zlinky.PROTOCOL_LINKY_5":"Mode standard monophas\xe9 producteur","manufacturer.zlinky.PROTOCOL_LINKY_7":"Mode standard triphas\xe9 producteur"}'),z=new fe("I18nService"),O="language";function f(d){return d}let a=(()=>{class d{translateService;defaultLanguage;supportedLanguages;langChangeSubscription;constructor(k){this.translateService=k,k.setTranslation("en-US",E),k.setTranslation("fr-FR",_),k.setTranslation("nl-NL",b),k.setTranslation("es-ES",T)}init(k,p){this.defaultLanguage=k,this.supportedLanguages=p,this.language="",this.langChangeSubscription=this.translateService.onLangChange.subscribe(S=>{localStorage.setItem(O,S.lang)})}destroy(){this.langChangeSubscription.unsubscribe()}set language(k){k=k||localStorage.getItem(O)||this.translateService.getBrowserCultureLang()||"";let p=this.supportedLanguages.some(S=>S.code===k);k&&!p&&(k=k.split("-")[0],p=!!(k=this.supportedLanguages.find(j=>j.code.startsWith(k))?.code||"")),p||(k=this.defaultLanguage),z.debug(`Language set to ${k}`),this.translateService.use(k)}get language(){return this.translateService.currentLang}static \u0275fac=function(p){return new(p||d)(ie.KVO(Pe.c$))};static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),g=(()=>{class d extends V.b{shouldDetach(k){return!1}store(k,p){}shouldAttach(k){return!1}retrieve(k){return null}shouldReuseRoute(k,p){return k.routeConfig===p.routeConfig||k.data.reuse}static \u0275fac=(()=>{let k;return function(S){return(k||(k=ie.xGo(d)))(S||d)}})();static \u0275prov=ie.jDH({token:d,factory:d.\u0275fac})}return d})(),y=(()=>{class d{constructor(k){if(k)throw new Error(`${k} has already been loaded. Import Core module in the AppModule only.`)}static \u0275fac=function(p){return new(p||d)(ie.KVO(d,12))};static \u0275mod=ie.$C({type:d});static \u0275inj=ie.G2t({providers:[a,te,re,F,$,{provide:e.Qq,useClass:I},{provide:V.b,useClass:g}],imports:[M.MD,e.q1,Pe.h,V.iI]})}return d})();var o=He(21413),n=He(56977);const r=Symbol("untilDestroyed");function l(d,C="ngOnDestroy"){return k=>{const p=d[C],S="function"==typeof p;if(!S)throw new Error(`${d.constructor.name} is using untilDestroyed but doesn't implement ${C}`);return d[r]||(d[r]=new o.B,d[C]=function(){S&&p.apply(this,arguments),d[r].next(),d[r].complete()}),k.pipe((0,n.Q)(d[r]))}}},3366:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(21626),e=He(38117),V=He(34402),Pe=He(18810),Z=He(96354),ie=He(99437),re=He(54438),ve=He(45794),le=He(19664);const fe={devices:"/device",zDevices:"/zdevice",zdeviceRaw:"/zdevice-raw",zGroups:"/zgroup",settings:"/setting",settingsDebug:"/setting-debug",plugin:"/plugin",pluginStat:"/plugin-stat",nwkStat:"/nwk-stat",topologie:"/topologie",permitToJoin:"/permit-to-join",zdeviceName:"/zdevice-name",zgroupDevicesAvalaible:"/zgroup-list-available-device",reqTopology:"/req-topologie",reqInter:"/req-nwk-inter",swReset:"/sw-reset-coordinator",erasePDM:"/coordinator-erase-PDM",coordinator:"/coordinator",restartNeeded:"/restart-needed",domoticzEnv:"/domoticz-env",pluginHealth:"/plugin-health",rescanGroup:"/rescan-groups",reqNwkfull:"/req-nwk-full",pluginRestart:"/plugin-restart",devCommand:"/dev-command",devCap:"/dev-cap",newHardware:"/new-hrdwr/",receiveNewHardware:"/rcv-nw-hrdwr",binding:"/binding",unbinding:"/unbinding",rawCommand:"/raw-command",rawCommandZigpy:"/raw-zigbee",bindLSTcluster:"/bind-lst-cluster",bindLSTdevice:"/bind-lst-device",scanDeviceForGrp:"/scan-device-for-grp",logErrorHistory:"/log-error-history",clearErrorHistory:"/clear-error-history",otaFirmwareList:"/ota-firmware-list",otaFirmwareDeviceList:"/ota-firmware-device-list/",otaFirmwareUpdate:"/ota-firmware-update",casiaListDevices:"/casaia-list-devices",casiaIrcode:"/casaia-update-ircode",changeChannel:"/change-channel",pairingFullReset:"/full-reprovisionning",recreateWidgets:"/recreate-widgets",batteryState:"/battery-state",pluginUpgrade:"/plugin-upgrade",configureReporting:"/cfgrpt-ondemand-config",demandConfigureReporting:"/cfgrpt-ondemand",zlinky:"/zlinky",pluginLog:"/plugin-log",deviceNonOptimized:"/non-optmize-device-configuration"},pe=new e.Vy("ApiService");let J=(()=>{class te{httpClient;toastr;translate;constructor(A,B,F){this.httpClient=A,this.toastr=B,this.translate=F}downloadLog(A){return this.httpClient.disableApiPrefix().get(A,{observe:"response",responseType:"blob"}).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPluginhealth(){return this.httpClient.get(fe.pluginHealth).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevices(){return this.httpClient.get(fe.devices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getZDevices(A=!1){return this.httpClient.get(fe.zDevices).pipe((0,Z.T)(B=>B.filter(F=>!(!A||"Coordinator"!==F.LogicalType)||"Coordinator"!==F.LogicalType||void 0)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevices(A=!1){return this.httpClient.get(fe.zdeviceRaw).pipe((0,Z.T)(B=>B.filter(F=>!A||!1===F.CertifiedDevice)),(0,ie.W)(B=>this.handleError(B)))}getRawZDevice(A){return this.httpClient.get(fe.zdeviceRaw+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroups(){return this.httpClient.get(fe.zGroups).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSettings(){return this.httpClient.get(fe.settings).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettings(A){return this.httpClient.put(fe.settings,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getSettingsDebug(){return this.httpClient.get(fe.settingsDebug).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putSettingsDebug(A){return this.httpClient.put(fe.settingsDebug,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPlugin(){return this.httpClient.get(fe.plugin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getPluginStats(){return this.httpClient.get(fe.pluginStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLogErrorHistory(){return this.httpClient.get(fe.logErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}clearLogErrorHistory(){return this.httpClient.get(fe.clearErrorHistory).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkStats(){return this.httpClient.get(fe.nwkStat).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologie(){return this.httpClient.get(fe.topologie).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqTopologie(){return this.httpClient.get(fe.reqTopology).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReqInter(){return this.httpClient.get(fe.reqInter).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNwkFull(){return this.httpClient.get(fe.reqNwkfull).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTopologieByTimeStamp(A){return this.httpClient.get(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNwkStatsByTimeStamp(A){return this.httpClient.get(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteTopologieByTimeStamp(A){return this.httpClient.delete(fe.topologie+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteNwkStatsByTimeStamp(A){return this.httpClient.delete(fe.nwkStat+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getPermitToJoin(){return this.httpClient.get(fe.permitToJoin).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putPermitToJoin(A){return this.httpClient.put(fe.permitToJoin,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZDeviceName(){return this.httpClient.get(fe.zdeviceName).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZDeviceName(A){return this.httpClient.put(fe.zdeviceName,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}deleteZDeviceName(A){return this.httpClient.delete(fe.zdeviceName+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZGroupDevicesAvalaible(){return this.httpClient.get(fe.zgroupDevicesAvalaible).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putZGroups(A){return this.httpClient.put(fe.zGroups,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCoordinator(){return this.httpClient.get(fe.coordinator).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getSwReset(){return this.httpClient.get(fe.swReset).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getRescanGroup(){return this.httpClient.get(fe.rescanGroup).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getErasePDM(){return this.httpClient.get(fe.erasePDM).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPlugin(){return this.httpClient.get(fe.pluginRestart).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getUpgradePlugin(){return this.httpClient.get(fe.pluginUpgrade).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getReloadPluginOld(A,B){const F=B.proto+"://"+B.WebUserName+":"+B.WebPassword+"@"+B.host+":"+B.port+"/json.htm?type=command¶m=updatehardware&htype=94&idx="+A.HardwareID+"&name="+A.Name+"&username="+B.WebUserName+"&password="+B.WebPassword+"&address="+A.Address+"&port="+A.Port+"&serialport="+A.SerialPort+"&Mode1="+A.Mode1+"&Mode2="+A.Mode2+"&Mode3="+A.Mode3+"&Mode4="+A.Mode4+"&Mode5="+A.Mode5+"&Mode6="+A.Mode6+"&extra="+A.Key+"&enabled=true&datatimeout=0",L={headers:new M.Lr({"Access-Control-Allow-Origin":"*","Content-Type":"text/plain"})};return this.httpClient.disableApiPrefix().get(F,L).pipe((0,Z.T)(D=>D),(0,ie.W)(D=>this.handleError(D)))}getRestartNeeded(){return this.httpClient.get(fe.restartNeeded).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDomoticzEnv(){return this.httpClient.get(fe.domoticzEnv).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDevCap(A){return this.httpClient.get(fe.devCap+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putDevCommand(A){return this.httpClient.put(fe.devCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getNewHardware(A){return this.httpClient.get(fe.newHardware+(A?"enable":"disable")).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}getReceiveNewHardware(){return this.httpClient.get(fe.receiveNewHardware).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putBinding(A){return this.httpClient.put(fe.binding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRaw(A){return this.httpClient.put(fe.rawCommand,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putCommandRawZigpy(A){return this.httpClient.put(fe.rawCommandZigpy,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getBindLSTcluster(){return this.httpClient.get(fe.bindLSTcluster).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getBindLSTdevice(A){return this.httpClient.get(fe.bindLSTdevice+"/"+A).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putUnBinding(A){return this.httpClient.put(fe.unbinding,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putScanDeviceForGrp(A){return this.httpClient.put(fe.scanDeviceForGrp,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getOtaFirmware(){return this.httpClient.get(fe.otaFirmwareList).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getDeviceByOtaFirmware(A){return this.httpClient.get(fe.otaFirmwareDeviceList.concat(A)).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putOtaFirmware(A){return this.httpClient.put(fe.otaFirmwareUpdate,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getCasiaDevices(){return this.httpClient.get(fe.casiaListDevices).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}putCasiaIrcode(A){return this.httpClient.put(fe.casiaIrcode,A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putChangeChannel(A){return this.httpClient.put(fe.changeChannel,{Channel:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putPairingFullReset(A){return this.httpClient.put(fe.pairingFullReset,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}putRecreateWidgets(A){return this.httpClient.put(fe.recreateWidgets,{NWKID:A}).pipe((0,Z.T)(F=>F),(0,ie.W)(F=>this.handleError(F)))}getBatteryState(){return this.httpClient.get(fe.batteryState).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getTriggerConfigureReporting(A){return this.httpClient.get(fe.demandConfigureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getConfigureReporting(A){return this.httpClient.get(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}putConfigureReporting(A,B){const F=new V.ff;return F.Nwkid=A,F.Clusters=B,this.httpClient.put(fe.configureReporting,F).pipe((0,Z.T)(L=>L),(0,ie.W)(L=>this.handleError(L)))}deleteConfigureReporting(A){return this.httpClient.delete(fe.configureReporting+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}getZlinky(){return this.httpClient.get(fe.zlinky).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getLog(){return this.httpClient.get(fe.pluginLog).pipe((0,Z.T)(A=>A),(0,ie.W)(A=>this.handleError(A)))}getNonOptimizedDevice(A){return this.httpClient.get(fe.deviceNonOptimized+"/"+A).pipe((0,Z.T)(B=>B),(0,ie.W)(B=>this.handleError(B)))}handleError(A){return pe.error(A),this.toastr.error(A.status+" "+A.statusText,this.translate.instant("api.global.error.notify")),(0,Pe.$)(A)}static \u0275fac=function(B){return new(B||te)(re.KVO(M.Qq),re.KVO(ve.tw),re.KVO(le.c$))};static \u0275prov=re.jDH({token:te,factory:te.\u0275fac,providedIn:"root"})}return te})()},38852:(ri,Ft,He)=>{"use strict";He.d(Ft,{d:()=>V});var M=He(84412),e=He(54438);let V=(()=>{class Pe{restart=new M.t(!1);showManufacturerCasaia=new M.t(!1);showManufacturerZlinky=new M.t(!1);logError=new M.t(!1);polling=new M.t(!1);constructor(){}setRestart(ie){this.restart.next(ie)}setShowManufacturerCasaia(ie){this.showManufacturerCasaia.next(ie)}setShowManufacturerZlinky(ie){this.showManufacturerZlinky.next(ie)}setError(ie){this.logError.next(ie)}setPolling(ie){this.polling.next(ie)}static \u0275fac=function(re){return new(re||Pe)};static \u0275prov=e.jDH({token:Pe,factory:Pe.\u0275fac,providedIn:"root"})}return Pe})()},28990:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>Pe});var e=function(){function Z(){this._subs=[]}return Z.prototype.add=function(){for(var ie=[],re=0;re{class Z{subs=new e;ngOnDestroy(){this.subs.unsubscribe()}static \u0275fac=function(ve){return new(ve||Z)};static \u0275dir=V.FsC({type:Z})}return Z})()},34402:(ri,Ft,He)=>{"use strict";He.d(Ft,{E0:()=>Z,ff:()=>Pe});class Pe{Nwkid;Clusters}class Z{clusterId;attributeId;dataType;timeOut;minInterval;maxInterval;change}},93887:(ri,Ft,He)=>{"use strict";He.d(Ft,{G:()=>J});var M=He(60177),e=He(89417),V=He(88652),Pe=He(97013),Z=He(19664),ie=He(36554),re=He(46247),ve=He(81141),le=He(22242),fe=He(41570),pe=He(54438);let J=(()=>{class te{static \u0275fac=function(B){return new(B||te)};static \u0275mod=pe.$C({type:te});static \u0275inj=pe.G2t({providers:[M.vh],imports:[M.MD,Pe.MQ,Z.h,M.MD,e.X1,e.YN,V.UN,Pe.MQ,Z.h,re.bG,fe.P,le.u,ve.tm,ie.PO]})}return te})()},20546:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>e});const e={production:!0,version:"1.0.0",defaultLanguage:"en-US",supportedLanguages:[{code:"en-US",flag:"flag_uk.png"},{code:"fr-FR",flag:"flag_france.png"},{code:"nl-NL",flag:"flag_netherlands.png"},{code:"es-ES",flag:"flag_spain.png"}],api_url:"/rest-z4d/1",keysBoundActive:"alt.z",refresh:7e3,linkToConsent:"https://github.com/zigbeefordomoticz/wiki",trackerUrl:"https://z4d.pipiche.net/",siteId:"3"}},40476:(ri,Ft,He)=>{"use strict";var M=He(345),e=He(54438),V=He(83801),Pe=He(21626),Z=He(49969);function re(c){return new e.wOt(3e3,!1)}function se(c){switch(c.length){case 0:return new Z.sf;case 1:return c[0];default:return new Z.ui(c)}}function w(c,v,i=new Map,m=new Map){const W=[],ce=[];let De=-1,Ve=null;if(v.forEach(qe=>{const et=qe.get("offset"),gt=et==De,Dt=gt&&Ve||new Map;qe.forEach((Pt,Ut)=>{let Zt=Ut,hi=Pt;if("offset"!==Ut)switch(Zt=c.normalizePropertyName(Zt,W),hi){case Z.FX:hi=i.get(Ut);break;case Z.kp:hi=m.get(Ut);break;default:hi=c.normalizeStyleValue(Ut,Zt,hi,W)}Dt.set(Zt,hi)}),gt||ce.push(Dt),Ve=Dt,De=et}),W.length)throw function o(c){return new e.wOt(3502,!1)}();return ce}function X(c,v,i,m){switch(v){case"start":c.onStart(()=>m(i&&G(i,"start",c)));break;case"done":c.onDone(()=>m(i&&G(i,"done",c)));break;case"destroy":c.onDestroy(()=>m(i&&G(i,"destroy",c)))}}function G(c,v,i){const ce=x(c.element,c.triggerName,c.fromState,c.toState,v||c.phaseName,i.totalTime??c.totalTime,!!i.disabled),De=c._data;return null!=De&&(ce._data=De),ce}function x(c,v,i,m,W="",ce=0,De){return{element:c,triggerName:v,fromState:i,toState:m,phaseName:W,totalTime:ce,disabled:!!De}}function N(c,v,i){let m=c.get(v);return m||c.set(v,m=i),m}function R(c){const v=c.indexOf(":");return[c.substring(1,v),c.slice(v+1)]}const K=typeof document>"u"?null:document.documentElement;function q(c){const v=c.parentNode||c.host||null;return v===K?null:v}let me=null,Ce=!1;function Fe(c,v){for(;v;){if(v===c)return!0;v=q(v)}return!1}function oe(c,v,i){if(i)return Array.from(c.querySelectorAll(v));const m=c.querySelector(v);return m?[m]:[]}let de=(()=>{class c{validateStyleProperty(i){return function Se(c){me||(me=function Ae(){return typeof document<"u"?document.body:null}()||{},Ce=!!me.style&&"WebkitAppearance"in me.style);let v=!0;return me.style&&!function he(c){return"ebkit"==c.substring(1,6)}(c)&&(v=c in me.style,!v&&Ce&&(v="Webkit"+c.charAt(0).toUpperCase()+c.slice(1)in me.style)),v}(i)}matchesElement(i,m){return!1}containsElement(i,m){return Fe(i,m)}getParentElement(i){return q(i)}query(i,m,W){return oe(i,m,W)}computeStyle(i,m,W){return W||""}animate(i,m,W,ce,De,Ve=[],qe){return new Z.sf(W,ce)}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})();class ye{static#e=this.NOOP=new de}class Te{}const Me=1e3,Ze="ng-enter",lt="ng-leave",Qe="ng-trigger",st=".ng-trigger",kt="ng-animating",pt=".ng-animating";function ht(c){if("number"==typeof c)return c;const v=c.match(/^(-?[\.\d]+)(m?s)/);return!v||v.length<2?0:Lt(parseFloat(v[1]),v[2])}function Lt(c,v){return"s"===v?c*Me:c}function Gt(c,v,i){return c.hasOwnProperty("duration")?c:function ti(c,v,i){let W,ce=0,De="";if("string"==typeof c){const Ve=c.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Ve)return v.push(re()),{duration:0,delay:0,easing:""};W=Lt(parseFloat(Ve[1]),Ve[2]);const qe=Ve[3];null!=qe&&(ce=Lt(parseFloat(qe),Ve[4]));const et=Ve[5];et&&(De=et)}else W=c;if(!i){let Ve=!1,qe=v.length;W<0&&(v.push(function ve(){return new e.wOt(3100,!1)}()),Ve=!0),ce<0&&(v.push(function le(){return new e.wOt(3101,!1)}()),Ve=!0),Ve&&v.splice(qe,0,re())}return{duration:W,delay:ce,easing:De}}(c,v,i)}function _t(c,v,i){v.forEach((m,W)=>{const ce=_s(W);i&&!i.has(W)&&i.set(W,c.style[ce]),c.style[ce]=m})}function wt(c,v){v.forEach((i,m)=>{const W=_s(m);c.style[W]=""})}function Jt(c){return Array.isArray(c)?1==c.length?c[0]:(0,Z.K2)(c):c}const Fi=new RegExp("{{\\s*(.+?)\\s*}}","g");function mi(c){let v=[];if("string"==typeof c){let i;for(;i=Fi.exec(c);)v.push(i[1]);Fi.lastIndex=0}return v}function vi(c,v,i){const m=`${c}`,W=m.replace(Fi,(ce,De)=>{let Ve=v[De];return null==Ve&&(i.push(function pe(c){return new e.wOt(3003,!1)}()),Ve=""),Ve.toString()});return W==m?c:W}const Gi=/-+([a-z0-9])/g;function _s(c){return c.replace(Gi,(...v)=>v[1].toUpperCase())}function zn(c,v,i){switch(v.type){case Z.If.Trigger:return c.visitTrigger(v,i);case Z.If.State:return c.visitState(v,i);case Z.If.Transition:return c.visitTransition(v,i);case Z.If.Sequence:return c.visitSequence(v,i);case Z.If.Group:return c.visitGroup(v,i);case Z.If.Animate:return c.visitAnimate(v,i);case Z.If.Keyframes:return c.visitKeyframes(v,i);case Z.If.Style:return c.visitStyle(v,i);case Z.If.Reference:return c.visitReference(v,i);case Z.If.AnimateChild:return c.visitAnimateChild(v,i);case Z.If.AnimateRef:return c.visitAnimateRef(v,i);case Z.If.Query:return c.visitQuery(v,i);case Z.If.Stagger:return c.visitStagger(v,i);default:throw function J(c){return new e.wOt(3004,!1)}()}}function dn(c,v){return window.getComputedStyle(c)[v]}const Di=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class Cs extends Te{normalizePropertyName(v,i){return _s(v)}normalizeStyleValue(v,i,m,W){let ce="";const De=m.toString().trim();if(Di.has(i)&&0!==m&&"0"!==m)if("number"==typeof m)ce="px";else{const Ve=m.match(/^[+-]?[\d\.]+([a-z]*)$/);Ve&&0==Ve[1].length&&W.push(function te(c,v){return new e.wOt(3005,!1)}())}return De+ce}}const kn="*";const ir=new Set(["true","1"]),St=new Set(["false","0"]);function Rt(c,v){const i=ir.has(c)||St.has(c),m=ir.has(v)||St.has(v);return(W,ce)=>{let De=c==kn||c==W,Ve=v==kn||v==ce;return!De&&i&&"boolean"==typeof W&&(De=W?ir.has(c):St.has(c)),!Ve&&m&&"boolean"==typeof ce&&(Ve=ce?ir.has(v):St.has(v)),De&&Ve}}const bt=new RegExp("s*:selfs*,?","g");function xt(c,v,i,m){return new yt(c).build(v,i,m)}class yt{constructor(v){this._driver=v}build(v,i,m){const W=new si(i);return this._resetContextStyleTimingState(W),zn(this,Jt(v),W)}_resetContextStyleTimingState(v){v.currentQuerySelector="",v.collectedStyles=new Map,v.collectedStyles.set("",new Map),v.currentTime=0}visitTrigger(v,i){let m=i.queryCount=0,W=i.depCount=0;const ce=[],De=[];return"@"==v.name.charAt(0)&&i.errors.push(function $(){return new e.wOt(3006,!1)}()),v.definitions.forEach(Ve=>{if(this._resetContextStyleTimingState(i),Ve.type==Z.If.State){const qe=Ve,et=qe.name;et.toString().split(/\s*,\s*/).forEach(gt=>{qe.name=gt,ce.push(this.visitState(qe,i))}),qe.name=et}else if(Ve.type==Z.If.Transition){const qe=this.visitTransition(Ve,i);m+=qe.queryCount,W+=qe.depCount,De.push(qe)}else i.errors.push(function A(){return new e.wOt(3007,!1)}())}),{type:Z.If.Trigger,name:v.name,states:ce,transitions:De,queryCount:m,depCount:W,options:null}}visitState(v,i){const m=this.visitStyle(v.styles,i),W=v.options&&v.options.params||null;if(m.containsDynamicStyles){const ce=new Set,De=W||{};m.styles.forEach(Ve=>{Ve instanceof Map&&Ve.forEach(qe=>{mi(qe).forEach(et=>{De.hasOwnProperty(et)||ce.add(et)})})}),ce.size&&i.errors.push(function B(c,v){return new e.wOt(3008,!1)}(0,ce.values()))}return{type:Z.If.State,name:v.name,style:m,options:W?{params:W}:null}}visitTransition(v,i){i.queryCount=0,i.depCount=0;const m=zn(this,Jt(v.animation),i),W=function jr(c,v){const i=[];return"string"==typeof c?c.split(/\s*,\s*/).forEach(m=>function fo(c,v,i){if(":"==c[0]){const qe=function qr(c,v){switch(c){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(i,m)=>parseFloat(m)>parseFloat(i);case":decrement":return(i,m)=>parseFloat(m) *"}}(c,i);if("function"==typeof qe)return void v.push(qe);c=qe}const m=c.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==m||m.length<4)return i.push(function O(c){return new e.wOt(3015,!1)}()),v;const W=m[1],ce=m[2],De=m[3];v.push(Rt(W,De)),"<"==ce[0]&&(W!=kn||De!=kn)&&v.push(Rt(De,W))}(m,i,v)):i.push(c),i}(v.expr,i.errors);return{type:Z.If.Transition,matchers:W,animation:m,queryCount:i.queryCount,depCount:i.depCount,options:Hi(v.options)}}visitSequence(v,i){return{type:Z.If.Sequence,steps:v.steps.map(m=>zn(this,m,i)),options:Hi(v.options)}}visitGroup(v,i){const m=i.currentTime;let W=0;const ce=v.steps.map(De=>{i.currentTime=m;const Ve=zn(this,De,i);return W=Math.max(W,i.currentTime),Ve});return i.currentTime=W,{type:Z.If.Group,steps:ce,options:Hi(v.options)}}visitAnimate(v,i){const m=function Si(c,v){if(c.hasOwnProperty("duration"))return c;if("number"==typeof c)return rs(Gt(c,v).duration,0,"");const i=c;if(i.split(/\s+/).some(ce=>"{"==ce.charAt(0)&&"{"==ce.charAt(1))){const ce=rs(0,0,"");return ce.dynamic=!0,ce.strValue=i,ce}const W=Gt(i,v);return rs(W.duration,W.delay,W.easing)}(v.timings,i.errors);i.currentAnimateTimings=m;let W,ce=v.styles?v.styles:(0,Z.iF)({});if(ce.type==Z.If.Keyframes)W=this.visitKeyframes(ce,i);else{let De=v.styles,Ve=!1;if(!De){Ve=!0;const et={};m.easing&&(et.easing=m.easing),De=(0,Z.iF)(et)}i.currentTime+=m.duration+m.delay;const qe=this.visitStyle(De,i);qe.isEmptyStep=Ve,W=qe}return i.currentAnimateTimings=null,{type:Z.If.Animate,timings:m,style:W,options:null}}visitStyle(v,i){const m=this._makeStyleAst(v,i);return this._validateStyleAst(m,i),m}_makeStyleAst(v,i){const m=[],W=Array.isArray(v.styles)?v.styles:[v.styles];for(let Ve of W)"string"==typeof Ve?Ve===Z.kp?m.push(Ve):i.errors.push(new e.wOt(3002,!1)):m.push(new Map(Object.entries(Ve)));let ce=!1,De=null;return m.forEach(Ve=>{if(Ve instanceof Map&&(Ve.has("easing")&&(De=Ve.get("easing"),Ve.delete("easing")),!ce))for(let qe of Ve.values())if(qe.toString().indexOf("{{")>=0){ce=!0;break}}),{type:Z.If.Style,styles:m,easing:De,offset:v.offset,containsDynamicStyles:ce,options:null}}_validateStyleAst(v,i){const m=i.currentAnimateTimings;let W=i.currentTime,ce=i.currentTime;m&&ce>0&&(ce-=m.duration+m.delay),v.styles.forEach(De=>{"string"!=typeof De&&De.forEach((Ve,qe)=>{const et=i.collectedStyles.get(i.currentQuerySelector),gt=et.get(qe);let Dt=!0;gt&&(ce!=W&&ce>=gt.startTime&&W<=gt.endTime&&(i.errors.push(function D(c,v,i,m,W){return new e.wOt(3010,!1)}()),Dt=!1),ce=gt.startTime),Dt&&et.set(qe,{startTime:ce,endTime:W}),i.options&&function ui(c,v,i){const m=v.params||{},W=mi(c);W.length&&W.forEach(ce=>{m.hasOwnProperty(ce)||i.push(function fe(c){return new e.wOt(3001,!1)}())})}(Ve,i.options,i.errors)})})}visitKeyframes(v,i){const m={type:Z.If.Keyframes,styles:[],options:null};if(!i.currentAnimateTimings)return i.errors.push(function I(){return new e.wOt(3011,!1)}()),m;let ce=0;const De=[];let Ve=!1,qe=!1,et=0;const gt=v.steps.map(di=>{const wi=this._makeStyleAst(di,i);let gi=null!=wi.offset?wi.offset:function Ti(c){if("string"==typeof c)return null;let v=null;if(Array.isArray(c))c.forEach(i=>{if(i instanceof Map&&i.has("offset")){const m=i;v=parseFloat(m.get("offset")),m.delete("offset")}});else if(c instanceof Map&&c.has("offset")){const i=c;v=parseFloat(i.get("offset")),i.delete("offset")}return v}(wi.styles),ki=0;return null!=gi&&(ce++,ki=wi.offset=gi),qe=qe||ki<0||ki>1,Ve=Ve||ki0&&ce{const gi=Pt>0?wi==Ut?1:Pt*wi:De[wi],ki=gi*Yt;i.currentTime=Zt+hi.delay+ki,hi.duration=ki,this._validateStyleAst(di,i),di.offset=gi,m.styles.push(di)}),m}visitReference(v,i){return{type:Z.If.Reference,animation:zn(this,Jt(v.animation),i),options:Hi(v.options)}}visitAnimateChild(v,i){return i.depCount++,{type:Z.If.AnimateChild,options:Hi(v.options)}}visitAnimateRef(v,i){return{type:Z.If.AnimateRef,animation:this.visitReference(v.animation,i),options:Hi(v.options)}}visitQuery(v,i){const m=i.currentQuerySelector,W=v.options||{};i.queryCount++,i.currentQuery=v;const[ce,De]=function It(c){const v=!!c.split(/\s*,\s*/).find(i=>":self"==i);return v&&(c=c.replace(bt,"")),c=c.replace(/@\*/g,st).replace(/@\w+/g,i=>st+"-"+i.slice(1)).replace(/:animating/g,pt),[c,v]}(v.selector);i.currentQuerySelector=m.length?m+" "+ce:ce,N(i.collectedStyles,i.currentQuerySelector,new Map);const Ve=zn(this,Jt(v.animation),i);return i.currentQuery=null,i.currentQuerySelector=m,{type:Z.If.Query,selector:ce,limit:W.limit||0,optional:!!W.optional,includeSelf:De,animation:Ve,originalSelector:v.selector,options:Hi(v.options)}}visitStagger(v,i){i.currentQuery||i.errors.push(function T(){return new e.wOt(3013,!1)}());const m="full"===v.timings?{duration:0,delay:0,easing:"full"}:Gt(v.timings,i.errors,!0);return{type:Z.If.Stagger,animation:zn(this,Jt(v.animation),i),timings:m,options:null}}}class si{constructor(v){this.errors=v,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hi(c){return c?(c={...c}).params&&(c.params=function $t(c){return c?{...c}:null}(c.params)):c={},c}function rs(c,v,i){return{duration:c,delay:v,easing:i}}function un(c,v,i,m,W,ce,De=null,Ve=!1){return{type:1,element:c,keyframes:v,preStyleProps:i,postStyleProps:m,duration:W,delay:ce,totalTime:W+ce,easing:De,subTimeline:Ve}}class Xi{constructor(){this._map=new Map}get(v){return this._map.get(v)||[]}append(v,i){let m=this._map.get(v);m||this._map.set(v,m=[]),m.push(...i)}has(v){return this._map.has(v)}clear(){this._map.clear()}}const Js=new RegExp(":enter","g"),Qr=new RegExp(":leave","g");function nr(c,v,i,m,W,ce=new Map,De=new Map,Ve,qe,et=[]){return(new Ls).buildKeyframes(c,v,i,m,W,ce,De,Ve,qe,et)}class Ls{buildKeyframes(v,i,m,W,ce,De,Ve,qe,et,gt=[]){et=et||new Xi;const Dt=new Ki(v,i,et,W,ce,gt,[]);Dt.options=qe;const Pt=qe.delay?ht(qe.delay):0;Dt.currentTimeline.delayNextStep(Pt),Dt.currentTimeline.setStyles([De],null,Dt.errors,qe),zn(this,m,Dt);const Ut=Dt.timelines.filter(Zt=>Zt.containsAnimation());if(Ut.length&&Ve.size){let Zt;for(let hi=Ut.length-1;hi>=0;hi--){const Yt=Ut[hi];if(Yt.element===i){Zt=Yt;break}}Zt&&!Zt.allowOnlyTimelineStyles()&&Zt.setStyles([Ve],null,Dt.errors,qe)}return Ut.length?Ut.map(Zt=>Zt.buildKeyframes()):[un(i,[],[],[],0,Pt,"",!1)]}visitTrigger(v,i){}visitState(v,i){}visitTransition(v,i){}visitAnimateChild(v,i){const m=i.subInstructions.get(i.element);if(m){const W=i.createSubContext(v.options),ce=i.currentTimeline.currentTime,De=this._visitSubInstructions(m,W,W.options);ce!=De&&i.transformIntoNewTimeline(De)}i.previousNode=v}visitAnimateRef(v,i){const m=i.createSubContext(v.options);m.transformIntoNewTimeline(),this._applyAnimationRefDelays([v.options,v.animation.options],i,m),this.visitReference(v.animation,m),i.transformIntoNewTimeline(m.currentTimeline.currentTime),i.previousNode=v}_applyAnimationRefDelays(v,i,m){for(const W of v){const ce=W?.delay;if(ce){const De="number"==typeof ce?ce:ht(vi(ce,W?.params??{},i.errors));m.delayNextStep(De)}}}_visitSubInstructions(v,i,m){let ce=i.currentTimeline.currentTime;const De=null!=m.duration?ht(m.duration):null,Ve=null!=m.delay?ht(m.delay):null;return 0!==De&&v.forEach(qe=>{const et=i.appendInstructionToTimeline(qe,De,Ve);ce=Math.max(ce,et.duration+et.delay)}),ce}visitReference(v,i){i.updateOptions(v.options,!0),zn(this,v.animation,i),i.previousNode=v}visitSequence(v,i){const m=i.subContextCount;let W=i;const ce=v.options;if(ce&&(ce.params||ce.delay)&&(W=i.createSubContext(ce),W.transformIntoNewTimeline(),null!=ce.delay)){W.previousNode.type==Z.If.Style&&(W.currentTimeline.snapshotCurrentStyles(),W.previousNode=Vr);const De=ht(ce.delay);W.delayNextStep(De)}v.steps.length&&(v.steps.forEach(De=>zn(this,De,W)),W.currentTimeline.applyStylesToKeyframe(),W.subContextCount>m&&W.transformIntoNewTimeline()),i.previousNode=v}visitGroup(v,i){const m=[];let W=i.currentTimeline.currentTime;const ce=v.options&&v.options.delay?ht(v.options.delay):0;v.steps.forEach(De=>{const Ve=i.createSubContext(v.options);ce&&Ve.delayNextStep(ce),zn(this,De,Ve),W=Math.max(W,Ve.currentTimeline.currentTime),m.push(Ve.currentTimeline)}),m.forEach(De=>i.currentTimeline.mergeTimelineCollectedStyles(De)),i.transformIntoNewTimeline(W),i.previousNode=v}_visitTiming(v,i){if(v.dynamic){const m=v.strValue;return Gt(i.params?vi(m,i.params,i.errors):m,i.errors)}return{duration:v.duration,delay:v.delay,easing:v.easing}}visitAnimate(v,i){const m=i.currentAnimateTimings=this._visitTiming(v.timings,i),W=i.currentTimeline;m.delay&&(i.incrementTime(m.delay),W.snapshotCurrentStyles());const ce=v.style;ce.type==Z.If.Keyframes?this.visitKeyframes(ce,i):(i.incrementTime(m.duration),this.visitStyle(ce,i),W.applyStylesToKeyframe()),i.currentAnimateTimings=null,i.previousNode=v}visitStyle(v,i){const m=i.currentTimeline,W=i.currentAnimateTimings;!W&&m.hasCurrentStyleProperties()&&m.forwardFrame();const ce=W&&W.easing||v.easing;v.isEmptyStep?m.applyEmptyStep(ce):m.setStyles(v.styles,ce,i.errors,i.options),i.previousNode=v}visitKeyframes(v,i){const m=i.currentAnimateTimings,W=i.currentTimeline.duration,ce=m.duration,Ve=i.createSubContext().currentTimeline;Ve.easing=m.easing,v.styles.forEach(qe=>{Ve.forwardTime((qe.offset||0)*ce),Ve.setStyles(qe.styles,qe.easing,i.errors,i.options),Ve.applyStylesToKeyframe()}),i.currentTimeline.mergeTimelineCollectedStyles(Ve),i.transformIntoNewTimeline(W+ce),i.previousNode=v}visitQuery(v,i){const m=i.currentTimeline.currentTime,W=v.options||{},ce=W.delay?ht(W.delay):0;ce&&(i.previousNode.type===Z.If.Style||0==m&&i.currentTimeline.hasCurrentStyleProperties())&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=Vr);let De=m;const Ve=i.invokeQuery(v.selector,v.originalSelector,v.limit,v.includeSelf,!!W.optional,i.errors);i.currentQueryTotal=Ve.length;let qe=null;Ve.forEach((et,gt)=>{i.currentQueryIndex=gt;const Dt=i.createSubContext(v.options,et);ce&&Dt.delayNextStep(ce),et===i.element&&(qe=Dt.currentTimeline),zn(this,v.animation,Dt),Dt.currentTimeline.applyStylesToKeyframe(),De=Math.max(De,Dt.currentTimeline.currentTime)}),i.currentQueryIndex=0,i.currentQueryTotal=0,i.transformIntoNewTimeline(De),qe&&(i.currentTimeline.mergeTimelineCollectedStyles(qe),i.currentTimeline.snapshotCurrentStyles()),i.previousNode=v}visitStagger(v,i){const m=i.parentContext,W=i.currentTimeline,ce=v.timings,De=Math.abs(ce.duration),Ve=De*(i.currentQueryTotal-1);let qe=De*i.currentQueryIndex;switch(ce.duration<0?"reverse":ce.easing){case"reverse":qe=Ve-qe;break;case"full":qe=m.currentStaggerTime}const gt=i.currentTimeline;qe&>.delayNextStep(qe);const Dt=gt.currentTime;zn(this,v.animation,i),i.previousNode=v,m.currentStaggerTime=W.currentTime-Dt+(W.startTime-m.currentTimeline.startTime)}}const Vr={};class Ki{constructor(v,i,m,W,ce,De,Ve,qe){this._driver=v,this.element=i,this.subInstructions=m,this._enterClassName=W,this._leaveClassName=ce,this.errors=De,this.timelines=Ve,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Vr,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=qe||new Tn(this._driver,i,0),Ve.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(v,i){if(!v)return;const m=v;let W=this.options;null!=m.duration&&(W.duration=ht(m.duration)),null!=m.delay&&(W.delay=ht(m.delay));const ce=m.params;if(ce){let De=W.params;De||(De=this.options.params={}),Object.keys(ce).forEach(Ve=>{(!i||!De.hasOwnProperty(Ve))&&(De[Ve]=vi(ce[Ve],De,this.errors))})}}_copyOptions(){const v={};if(this.options){const i=this.options.params;if(i){const m=v.params={};Object.keys(i).forEach(W=>{m[W]=i[W]})}}return v}createSubContext(v=null,i,m){const W=i||this.element,ce=new Ki(this._driver,W,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(W,m||0));return ce.previousNode=this.previousNode,ce.currentAnimateTimings=this.currentAnimateTimings,ce.options=this._copyOptions(),ce.updateOptions(v),ce.currentQueryIndex=this.currentQueryIndex,ce.currentQueryTotal=this.currentQueryTotal,ce.parentContext=this,this.subContextCount++,ce}transformIntoNewTimeline(v){return this.previousNode=Vr,this.currentTimeline=this.currentTimeline.fork(this.element,v),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(v,i,m){const W={duration:i??v.duration,delay:this.currentTimeline.currentTime+(m??0)+v.delay,easing:""},ce=new Jl(this._driver,v.element,v.keyframes,v.preStyleProps,v.postStyleProps,W,v.stretchStartingKeyframe);return this.timelines.push(ce),W}incrementTime(v){this.currentTimeline.forwardTime(this.currentTimeline.duration+v)}delayNextStep(v){v>0&&this.currentTimeline.delayNextStep(v)}invokeQuery(v,i,m,W,ce,De){let Ve=[];if(W&&Ve.push(this.element),v.length>0){v=(v=v.replace(Js,"."+this._enterClassName)).replace(Qr,"."+this._leaveClassName);let et=this._driver.query(this.element,v,1!=m);0!==m&&(et=m<0?et.slice(et.length+m,et.length):et.slice(0,m)),Ve.push(...et)}return!ce&&0==Ve.length&&De.push(function z(c){return new e.wOt(3014,!1)}()),Ve}}class Tn{constructor(v,i,m,W){this._driver=v,this.element=i,this.startTime=m,this._elementTimelineStylesLookup=W,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(i),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(i,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(v){const i=1===this._keyframes.size&&this._pendingStyles.size;this.duration||i?(this.forwardTime(this.currentTime+v),i&&this.snapshotCurrentStyles()):this.startTime+=v}fork(v,i){return this.applyStylesToKeyframe(),new Tn(this._driver,v,i||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(v){this.applyStylesToKeyframe(),this.duration=v,this._loadKeyframe()}_updateStyle(v,i){this._localTimelineStyles.set(v,i),this._globalTimelineStyles.set(v,i),this._styleSummary.set(v,{time:this.currentTime,value:i})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(v){v&&this._previousKeyframe.set("easing",v);for(let[i,m]of this._globalTimelineStyles)this._backFill.set(i,m||Z.kp),this._currentKeyframe.set(i,Z.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(v,i,m,W){i&&this._previousKeyframe.set("easing",i);const ce=W&&W.params||{},De=function Oa(c,v){const i=new Map;let m;return c.forEach(W=>{if("*"===W){m??=v.keys();for(let ce of m)i.set(ce,Z.kp)}else for(let[ce,De]of W)i.set(ce,De)}),i}(v,this._globalTimelineStyles);for(let[Ve,qe]of De){const et=vi(qe,ce,m);this._pendingStyles.set(Ve,et),this._localTimelineStyles.has(Ve)||this._backFill.set(Ve,this._globalTimelineStyles.get(Ve)??Z.kp),this._updateStyle(Ve,et)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((v,i)=>{this._currentKeyframe.set(i,v)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((v,i)=>{this._currentKeyframe.has(i)||this._currentKeyframe.set(i,v)}))}snapshotCurrentStyles(){for(let[v,i]of this._localTimelineStyles)this._pendingStyles.set(v,i),this._updateStyle(v,i)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const v=[];for(let i in this._currentKeyframe)v.push(i);return v}mergeTimelineCollectedStyles(v){v._styleSummary.forEach((i,m)=>{const W=this._styleSummary.get(m);(!W||i.time>W.time)&&this._updateStyle(m,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const v=new Set,i=new Set,m=1===this._keyframes.size&&0===this.duration;let W=[];this._keyframes.forEach((Ve,qe)=>{const et=new Map([...this._backFill,...Ve]);et.forEach((gt,Dt)=>{gt===Z.FX?v.add(Dt):gt===Z.kp&&i.add(Dt)}),m||et.set("offset",qe/this.duration),W.push(et)});const ce=[...v.values()],De=[...i.values()];if(m){const Ve=W[0],qe=new Map(Ve);Ve.set("offset",0),qe.set("offset",1),W=[Ve,qe]}return un(this.element,W,ce,De,this.duration,this.startTime,this.easing,!1)}}class Jl extends Tn{constructor(v,i,m,W,ce,De,Ve=!1){super(v,i,De.delay),this.keyframes=m,this.preStyleProps=W,this.postStyleProps=ce,this._stretchStartingKeyframe=Ve,this.timings={duration:De.duration,delay:De.delay,easing:De.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let v=this.keyframes,{delay:i,duration:m,easing:W}=this.timings;if(this._stretchStartingKeyframe&&i){const ce=[],De=m+i,Ve=i/De,qe=new Map(v[0]);qe.set("offset",0),ce.push(qe);const et=new Map(v[0]);et.set("offset",pr(Ve)),ce.push(et);const gt=v.length-1;for(let Dt=1;Dt<=gt;Dt++){let Pt=new Map(v[Dt]);const Ut=Pt.get("offset");Pt.set("offset",pr((i+Ut*m)/De)),ce.push(Pt)}m=De,i=0,W="",v=ce}return un(this.element,v,this.preStyleProps,this.postStyleProps,m,i,W,!0)}}function pr(c,v=3){const i=Math.pow(10,v-1);return Math.round(c*i)/i}function Pa(c,v,i,m,W,ce,De,Ve,qe,et,gt,Dt,Pt){return{type:0,element:c,triggerName:v,isRemovalTransition:W,fromState:i,fromStyles:ce,toState:m,toStyles:De,timelines:Ve,queriedElements:qe,preStyleProps:et,postStyleProps:gt,totalTime:Dt,errors:Pt}}const La={};class Jr{constructor(v,i,m){this._triggerName=v,this.ast=i,this._stateStyles=m}match(v,i,m,W){return function Ko(c,v,i,m,W){return c.some(ce=>ce(v,i,m,W))}(this.ast.matchers,v,i,m,W)}buildStyles(v,i,m){let W=this._stateStyles.get("*");return void 0!==v&&(W=this._stateStyles.get(v?.toString())||W),W?W.buildStyles(i,m):new Map}build(v,i,m,W,ce,De,Ve,qe,et,gt){const Dt=[],Pt=this.ast.options&&this.ast.options.params||La,Zt=this.buildStyles(m,Ve&&Ve.params||La,Dt),hi=qe&&qe.params||La,Yt=this.buildStyles(W,hi,Dt),di=new Set,wi=new Map,gi=new Map,ki="void"===W,Bi={params:nl(hi,Pt),delay:this.ast.options?.delay},Mi=gt?[]:nr(v,i,this.ast.animation,ce,De,Zt,Yt,Bi,et,Dt);let an=0;return Mi.forEach(ln=>{an=Math.max(ln.duration+ln.delay,an)}),Dt.length?Pa(i,this._triggerName,m,W,ki,Zt,Yt,[],[],wi,gi,an,Dt):(Mi.forEach(ln=>{const ps=ln.element,Ln=N(wi,ps,new Set);ln.preStyleProps.forEach(Un=>Ln.add(Un));const Ui=N(gi,ps,new Set);ln.postStyleProps.forEach(Un=>Ui.add(Un)),ps!==i&&di.add(ps)}),Pa(i,this._triggerName,m,W,ki,Zt,Yt,Mi,[...di.values()],wi,gi,an))}}function nl(c,v){const i={...v};return Object.entries(c).forEach(([m,W])=>{null!=W&&(i[m]=W)}),i}class Gs{constructor(v,i,m){this.styles=v,this.defaultParams=i,this.normalizer=m}buildStyles(v,i){const m=new Map,W=nl(v,this.defaultParams);return this.styles.styles.forEach(ce=>{"string"!=typeof ce&&ce.forEach((De,Ve)=>{De&&(De=vi(De,W,i));const qe=this.normalizer.normalizePropertyName(Ve,i);De=this.normalizer.normalizeStyleValue(Ve,qe,De,i),m.set(Ve,De)})}),m}}class sl{constructor(v,i,m){this.name=v,this.ast=i,this._normalizer=m,this.transitionFactories=[],this.states=new Map,i.states.forEach(W=>{this.states.set(W.name,new Gs(W.style,W.options&&W.options.params||{},m))}),vr(this.states,"true","1"),vr(this.states,"false","0"),i.transitions.forEach(W=>{this.transitionFactories.push(new Jr(v,W,this.states))}),this.fallbackTransition=function rl(c,v,i){return new Jr(c,{type:Z.If.Transition,animation:{type:Z.If.Sequence,steps:[],options:null},matchers:[(De,Ve)=>!0],options:null,queryCount:0,depCount:0},v)}(v,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(v,i,m,W){return this.transitionFactories.find(De=>De.match(v,i,m,W))||null}matchStyles(v,i,m){return this.fallbackTransition.buildStyles(v,i,m)}}function vr(c,v,i){c.has(v)?c.has(i)||c.set(i,c.get(v)):c.has(i)&&c.set(v,c.get(i))}const Hs=new Xi;class yr{constructor(v,i,m){this.bodyNode=v,this._driver=i,this._normalizer=m,this._animations=new Map,this._playersById=new Map,this.players=[]}register(v,i){const m=[],ce=xt(this._driver,i,m,[]);if(m.length)throw function n(c){return new e.wOt(3503,!1)}();this._animations.set(v,ce)}_buildPlayer(v,i,m){const W=v.element,ce=w(this._normalizer,v.keyframes,i,m);return this._driver.animate(W,ce,v.duration,v.delay,v.easing,[],!0)}create(v,i,m={}){const W=[],ce=this._animations.get(v);let De;const Ve=new Map;if(ce?(De=nr(this._driver,i,ce,Ze,lt,new Map,new Map,m,Hs,W),De.forEach(gt=>{const Dt=N(Ve,gt.element,new Map);gt.postStyleProps.forEach(Pt=>Dt.set(Pt,null))})):(W.push(function r(){return new e.wOt(3300,!1)}()),De=[]),W.length)throw function l(c){return new e.wOt(3504,!1)}();Ve.forEach((gt,Dt)=>{gt.forEach((Pt,Ut)=>{gt.set(Ut,this._driver.computeStyle(Dt,Ut,Z.kp))})});const et=se(De.map(gt=>{const Dt=Ve.get(gt.element);return this._buildPlayer(gt,new Map,Dt)}));return this._playersById.set(v,et),et.onDestroy(()=>this.destroy(v)),this.players.push(et),et}destroy(v){const i=this._getPlayer(v);i.destroy(),this._playersById.delete(v);const m=this.players.indexOf(i);m>=0&&this.players.splice(m,1)}_getPlayer(v){const i=this._playersById.get(v);if(!i)throw function d(c){return new e.wOt(3301,!1)}();return i}listen(v,i,m,W){const ce=x(i,"","","");return X(this._getPlayer(v),m,ce,W),()=>{}}command(v,i,m,W){if("register"==m)return void this.register(v,W[0]);if("create"==m)return void this.create(v,i,W[0]||{});const ce=this._getPlayer(v);switch(m){case"play":ce.play();break;case"pause":ce.pause();break;case"reset":ce.reset();break;case"restart":ce.restart();break;case"finish":ce.finish();break;case"init":ce.init();break;case"setPosition":ce.setPosition(parseFloat(W[0]));break;case"destroy":this.destroy(v)}}}const ol="ng-animate-queued",Ra="ng-animate-disabled",Dr=[],fa={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Is={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Us="__ng_removed";class Qi{get params(){return this.options.params}constructor(v,i=""){this.namespaceId=i;const m=v&&v.hasOwnProperty("value");if(this.value=function Eo(c){return c??null}(m?v.value:v),m){const{value:ce,...De}=v;this.options=De}else this.options={};this.options.params||(this.options.params={})}absorbOptions(v){const i=v.params;if(i){const m=this.options.params;Object.keys(i).forEach(W=>{null==m[W]&&(m[W]=i[W])})}}}const zr="void",Do=new Qi(zr);class ga{constructor(v,i,m){this.id=v,this.hostElement=i,this._engine=m,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+v,sr(i,this._hostClassName)}listen(v,i,m,W){if(!this._triggers.has(i))throw function C(c,v){return new e.wOt(3302,!1)}();if(null==m||0==m.length)throw function k(c){return new e.wOt(3303,!1)}();if(!function ll(c){return"start"==c||"done"==c}(m))throw function p(c,v){return new e.wOt(3400,!1)}();const ce=N(this._elementListeners,v,[]),De={name:i,phase:m,callback:W};ce.push(De);const Ve=N(this._engine.statesByElement,v,new Map);return Ve.has(i)||(sr(v,Qe),sr(v,Qe+"-"+i),Ve.set(i,Do)),()=>{this._engine.afterFlush(()=>{const qe=ce.indexOf(De);qe>=0&&ce.splice(qe,1),this._triggers.has(i)||Ve.delete(i)})}}register(v,i){return!this._triggers.has(v)&&(this._triggers.set(v,i),!0)}_getTrigger(v){const i=this._triggers.get(v);if(!i)throw function S(c){return new e.wOt(3401,!1)}();return i}trigger(v,i,m,W=!0){const ce=this._getTrigger(i),De=new ma(this.id,i,v);let Ve=this._engine.statesByElement.get(v);Ve||(sr(v,Qe),sr(v,Qe+"-"+i),this._engine.statesByElement.set(v,Ve=new Map));let qe=Ve.get(i);const et=new Qi(m,this.id);if(!(m&&m.hasOwnProperty("value"))&&qe&&et.absorbOptions(qe.options),Ve.set(i,et),qe||(qe=Do),et.value!==zr&&qe.value===et.value){if(!function Na(c,v){const i=Object.keys(c),m=Object.keys(v);if(i.length!=m.length)return!1;for(let W=0;W{wt(v,Yt),_t(v,di)})}return}const Pt=N(this._engine.playersByElement,v,[]);Pt.forEach(hi=>{hi.namespaceId==this.id&&hi.triggerName==i&&hi.queued&&hi.destroy()});let Ut=ce.matchTransition(qe.value,et.value,v,et.params),Zt=!1;if(!Ut){if(!W)return;Ut=ce.fallbackTransition,Zt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:i,transition:Ut,fromState:qe,toState:et,player:De,isFallbackTransition:Zt}),Zt||(sr(v,ol),De.onStart(()=>{cs(v,ol)})),De.onDone(()=>{let hi=this.players.indexOf(De);hi>=0&&this.players.splice(hi,1);const Yt=this._engine.playersByElement.get(v);if(Yt){let di=Yt.indexOf(De);di>=0&&Yt.splice(di,1)}}),this.players.push(De),Pt.push(De),De}deregister(v){this._triggers.delete(v),this._engine.statesByElement.forEach(i=>i.delete(v)),this._elementListeners.forEach((i,m)=>{this._elementListeners.set(m,i.filter(W=>W.name!=v))})}clearElementCache(v){this._engine.statesByElement.delete(v),this._elementListeners.delete(v);const i=this._engine.playersByElement.get(v);i&&(i.forEach(m=>m.destroy()),this._engine.playersByElement.delete(v))}_signalRemovalForInnerTriggers(v,i){const m=this._engine.driver.query(v,st,!0);m.forEach(W=>{if(W[Us])return;const ce=this._engine.fetchNamespacesByElement(W);ce.size?ce.forEach(De=>De.triggerLeaveAnimation(W,i,!1,!0)):this.clearElementCache(W)}),this._engine.afterFlushAnimationsDone(()=>m.forEach(W=>this.clearElementCache(W)))}triggerLeaveAnimation(v,i,m,W){const ce=this._engine.statesByElement.get(v),De=new Map;if(ce){const Ve=[];if(ce.forEach((qe,et)=>{if(De.set(et,qe.value),this._triggers.has(et)){const gt=this.trigger(v,et,zr,W);gt&&Ve.push(gt)}}),Ve.length)return this._engine.markElementAsRemoved(this.id,v,!0,i,De),m&&se(Ve).onDone(()=>this._engine.processLeaveNode(v)),!0}return!1}prepareLeaveAnimationListeners(v){const i=this._elementListeners.get(v),m=this._engine.statesByElement.get(v);if(i&&m){const W=new Set;i.forEach(ce=>{const De=ce.name;if(W.has(De))return;W.add(De);const qe=this._triggers.get(De).fallbackTransition,et=m.get(De)||Do,gt=new Qi(zr),Dt=new ma(this.id,De,v);this._engine.totalQueuedPlayers++,this._queue.push({element:v,triggerName:De,transition:qe,fromState:et,toState:gt,player:Dt,isFallbackTransition:!0})})}}removeNode(v,i){const m=this._engine;if(v.childElementCount&&this._signalRemovalForInnerTriggers(v,i),this.triggerLeaveAnimation(v,i,!0))return;let W=!1;if(m.totalAnimations){const ce=m.players.length?m.playersByQueriedElement.get(v):[];if(ce&&ce.length)W=!0;else{let De=v;for(;De=De.parentNode;)if(m.statesByElement.get(De)){W=!0;break}}}if(this.prepareLeaveAnimationListeners(v),W)m.markElementAsRemoved(this.id,v,!1,i);else{const ce=v[Us];(!ce||ce===fa)&&(m.afterFlush(()=>this.clearElementCache(v)),m.destroyInnerAnimations(v),m._onRemovalComplete(v,i))}}insertNode(v,i){sr(v,this._hostClassName)}drainQueuedTransitions(v){const i=[];return this._queue.forEach(m=>{const W=m.player;if(W.destroyed)return;const ce=m.element,De=this._elementListeners.get(ce);De&&De.forEach(Ve=>{if(Ve.name==m.triggerName){const qe=x(ce,m.triggerName,m.fromState.value,m.toState.value);qe._data=v,X(m.player,Ve.phase,qe,Ve.callback)}}),W.markedForDestroy?this._engine.afterFlush(()=>{W.destroy()}):i.push(m)}),this._queue=[],i.sort((m,W)=>{const ce=m.transition.ast.depCount,De=W.transition.ast.depCount;return 0==ce||0==De?ce-De:this._engine.driver.containsElement(m.element,W.element)?1:-1})}destroy(v){this.players.forEach(i=>i.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,v)}}class mo{_onRemovalComplete(v,i){this.onRemovalComplete(v,i)}constructor(v,i,m,W){this.bodyNode=v,this.driver=i,this._normalizer=m,this.scheduler=W,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(ce,De)=>{}}get queuedPlayers(){const v=[];return this._namespaceList.forEach(i=>{i.players.forEach(m=>{m.queued&&v.push(m)})}),v}createNamespace(v,i){const m=new ga(v,i,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,i)?this._balanceNamespaceList(m,i):(this.newHostElements.set(i,m),this.collectEnterElement(i)),this._namespaceLookup[v]=m}_balanceNamespaceList(v,i){const m=this._namespaceList,W=this.namespacesByHostElement;if(m.length-1>=0){let De=!1,Ve=this.driver.getParentElement(i);for(;Ve;){const qe=W.get(Ve);if(qe){const et=m.indexOf(qe);m.splice(et+1,0,v),De=!0;break}Ve=this.driver.getParentElement(Ve)}De||m.unshift(v)}else m.push(v);return W.set(i,v),v}register(v,i){let m=this._namespaceLookup[v];return m||(m=this.createNamespace(v,i)),m}registerTrigger(v,i,m){let W=this._namespaceLookup[v];W&&W.register(i,m)&&this.totalAnimations++}destroy(v,i){v&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const m=this._fetchNamespace(v);this.namespacesByHostElement.delete(m.hostElement);const W=this._namespaceList.indexOf(m);W>=0&&this._namespaceList.splice(W,1),m.destroy(i),delete this._namespaceLookup[v]}))}_fetchNamespace(v){return this._namespaceLookup[v]}fetchNamespacesByElement(v){const i=new Set,m=this.statesByElement.get(v);if(m)for(let W of m.values())if(W.namespaceId){const ce=this._fetchNamespace(W.namespaceId);ce&&i.add(ce)}return i}trigger(v,i,m,W){if(er(i)){const ce=this._fetchNamespace(v);if(ce)return ce.trigger(i,m,W),!0}return!1}insertNode(v,i,m,W){if(!er(i))return;const ce=i[Us];if(ce&&ce.setForRemoval){ce.setForRemoval=!1,ce.setForMove=!0;const De=this.collectedLeaveElements.indexOf(i);De>=0&&this.collectedLeaveElements.splice(De,1)}if(v){const De=this._fetchNamespace(v);De&&De.insertNode(i,m)}W&&this.collectEnterElement(i)}collectEnterElement(v){this.collectedEnterElements.push(v)}markElementAsDisabled(v,i){i?this.disabledNodes.has(v)||(this.disabledNodes.add(v),sr(v,Ra)):this.disabledNodes.has(v)&&(this.disabledNodes.delete(v),cs(v,Ra))}removeNode(v,i,m){if(er(i)){this.scheduler?.notify();const W=v?this._fetchNamespace(v):null;W?W.removeNode(i,m):this.markElementAsRemoved(v,i,!1,m);const ce=this.namespacesByHostElement.get(i);ce&&ce.id!==v&&ce.removeNode(i,m)}else this._onRemovalComplete(i,m)}markElementAsRemoved(v,i,m,W,ce){this.collectedLeaveElements.push(i),i[Us]={namespaceId:v,setForRemoval:W,hasAnimation:m,removedBeforeQueried:!1,previousTriggersValues:ce}}listen(v,i,m,W,ce){return er(i)?this._fetchNamespace(v).listen(i,m,W,ce):()=>{}}_buildInstruction(v,i,m,W,ce){return v.transition.build(this.driver,v.element,v.fromState.value,v.toState.value,m,W,v.fromState.options,v.toState.options,i,ce)}destroyInnerAnimations(v){let i=this.driver.query(v,st,!0);i.forEach(m=>this.destroyActiveAnimationsForElement(m)),0!=this.playersByQueriedElement.size&&(i=this.driver.query(v,pt,!0),i.forEach(m=>this.finishActiveQueriedAnimationOnElement(m)))}destroyActiveAnimationsForElement(v){const i=this.playersByElement.get(v);i&&i.forEach(m=>{m.queued?m.markedForDestroy=!0:m.destroy()})}finishActiveQueriedAnimationOnElement(v){const i=this.playersByQueriedElement.get(v);i&&i.forEach(m=>m.finish())}whenRenderingDone(){return new Promise(v=>{if(this.players.length)return se(this.players).onDone(()=>v());v()})}processLeaveNode(v){const i=v[Us];if(i&&i.setForRemoval){if(v[Us]=fa,i.namespaceId){this.destroyInnerAnimations(v);const m=this._fetchNamespace(i.namespaceId);m&&m.clearElementCache(v)}this._onRemovalComplete(v,i.setForRemoval)}v.classList?.contains(Ra)&&this.markElementAsDisabled(v,!1),this.driver.query(v,".ng-animate-disabled",!0).forEach(m=>{this.markElementAsDisabled(m,!1)})}flush(v=-1){let i=[];if(this.newHostElements.size&&(this.newHostElements.forEach((m,W)=>this._balanceNamespaceList(m,W)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let m=0;mm()),this._flushFns=[],this._whenQuietFns.length){const m=this._whenQuietFns;this._whenQuietFns=[],i.length?se(i).onDone(()=>{m.forEach(W=>W())}):m.forEach(W=>W())}}reportError(v){throw function j(c){return new e.wOt(3402,!1)}()}_flushAnimations(v,i){const m=new Xi,W=[],ce=new Map,De=[],Ve=new Map,qe=new Map,et=new Map,gt=new Set;this.disabledNodes.forEach(yi=>{gt.add(yi);const Ei=this.driver.query(yi,".ng-animate-queued",!0);for(let ji=0;ji{const ji=Ze+hi++;Zt.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))});const Yt=[],di=new Set,wi=new Set;for(let yi=0;yidi.add(Wi)):wi.add(Ei))}const gi=new Map,ki=Er(Pt,Array.from(di));ki.forEach((yi,Ei)=>{const ji=lt+hi++;gi.set(Ei,ji),yi.forEach(Wi=>sr(Wi,ji))}),v.push(()=>{Ut.forEach((yi,Ei)=>{const ji=Zt.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),ki.forEach((yi,Ei)=>{const ji=gi.get(Ei);yi.forEach(Wi=>cs(Wi,ji))}),Yt.forEach(yi=>{this.processLeaveNode(yi)})});const Bi=[],Mi=[];for(let yi=this._namespaceList.length-1;yi>=0;yi--)this._namespaceList[yi].drainQueuedTransitions(i).forEach(ji=>{const Wi=ji.player,Nn=ji.element;if(Bi.push(Wi),this.collectedEnterElements.length){const is=Nn[Us];if(is&&is.setForMove){if(is.previousTriggersValues&&is.previousTriggersValues.has(ji.triggerName)){const Zr=is.previousTriggersValues.get(ji.triggerName),Ii=this.statesByElement.get(ji.element);if(Ii&&Ii.has(ji.triggerName)){const gn=Ii.get(ji.triggerName);gn.value=Zr,Ii.set(ji.triggerName,gn)}}return void Wi.destroy()}}const ts=!Dt||!this.driver.containsElement(Dt,Nn),Wn=gi.get(Nn),Yr=Zt.get(Nn),ds=this._buildInstruction(ji,m,Yr,Wn,ts);if(ds.errors&&ds.errors.length)return void Mi.push(ds);if(ts)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);if(ji.isFallbackTransition)return Wi.onStart(()=>wt(Nn,ds.fromStyles)),Wi.onDestroy(()=>_t(Nn,ds.toStyles)),void W.push(Wi);const Kr=[];ds.timelines.forEach(is=>{is.stretchStartingKeyframe=!0,this.disabledNodes.has(is.element)||Kr.push(is)}),ds.timelines=Kr,m.append(Nn,ds.timelines),De.push({instruction:ds,player:Wi,element:Nn}),ds.queriedElements.forEach(is=>N(Ve,is,[]).push(Wi)),ds.preStyleProps.forEach((is,Zr)=>{if(is.size){let Ii=qe.get(Zr);Ii||qe.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))}}),ds.postStyleProps.forEach((is,Zr)=>{let Ii=et.get(Zr);Ii||et.set(Zr,Ii=new Set),is.forEach((gn,Vn)=>Ii.add(Vn))})});if(Mi.length){const yi=[];Mi.forEach(Ei=>{yi.push(function Y(c,v){return new e.wOt(3505,!1)}())}),Bi.forEach(Ei=>Ei.destroy()),this.reportError(yi)}const an=new Map,ln=new Map;De.forEach(yi=>{const Ei=yi.element;m.has(Ei)&&(ln.set(Ei,Ei),this._beforeAnimationBuild(yi.player.namespaceId,yi.instruction,an))}),W.forEach(yi=>{const Ei=yi.element;this._getPreviousPlayers(Ei,!1,yi.namespaceId,yi.triggerName,null).forEach(Wi=>{N(an,Ei,[]).push(Wi),Wi.destroy()})});const ps=Yt.filter(yi=>Ao(yi,qe,et)),Ln=new Map;cl(Ln,this.driver,wi,et,Z.kp).forEach(yi=>{Ao(yi,qe,et)&&ps.push(yi)});const Un=new Map;Ut.forEach((yi,Ei)=>{cl(Un,this.driver,new Set(yi),qe,Z.FX)}),ps.forEach(yi=>{const Ei=Ln.get(yi),ji=Un.get(yi);Ln.set(yi,new Map([...Ei?.entries()??[],...ji?.entries()??[]]))});const Ri=[],Ji=[],Qs={};De.forEach(yi=>{const{element:Ei,player:ji,instruction:Wi}=yi;if(m.has(Ei)){if(gt.has(Ei))return ji.onDestroy(()=>_t(Ei,Wi.toStyles)),ji.disabled=!0,ji.overrideTotalTime(Wi.totalTime),void W.push(ji);let Nn=Qs;if(ln.size>1){let Wn=Ei;const Yr=[];for(;Wn=Wn.parentNode;){const ds=ln.get(Wn);if(ds){Nn=ds;break}Yr.push(Wn)}Yr.forEach(ds=>ln.set(ds,Nn))}const ts=this._buildAnimation(ji.namespaceId,Wi,an,ce,Un,Ln);if(ji.setRealPlayer(ts),Nn===Qs)Ri.push(ji);else{const Wn=this.playersByElement.get(Nn);Wn&&Wn.length&&(ji.parentPlayer=se(Wn)),W.push(ji)}}else wt(Ei,Wi.fromStyles),ji.onDestroy(()=>_t(Ei,Wi.toStyles)),Ji.push(ji),gt.has(Ei)&&W.push(ji)}),Ji.forEach(yi=>{const Ei=ce.get(yi.element);if(Ei&&Ei.length){const ji=se(Ei);yi.setRealPlayer(ji)}}),W.forEach(yi=>{yi.parentPlayer?yi.syncPlayerEvents(yi.parentPlayer):yi.destroy()});for(let yi=0;yi!ts.destroyed);Nn.length?Ar(this,Ei,Nn):this.processLeaveNode(Ei)}return Yt.length=0,Ri.forEach(yi=>{this.players.push(yi),yi.onDone(()=>{yi.destroy();const Ei=this.players.indexOf(yi);this.players.splice(Ei,1)}),yi.play()}),Ri}afterFlush(v){this._flushFns.push(v)}afterFlushAnimationsDone(v){this._whenQuietFns.push(v)}_getPreviousPlayers(v,i,m,W,ce){let De=[];if(i){const Ve=this.playersByQueriedElement.get(v);Ve&&(De=Ve)}else{const Ve=this.playersByElement.get(v);if(Ve){const qe=!ce||ce==zr;Ve.forEach(et=>{et.queued||!qe&&et.triggerName!=W||De.push(et)})}}return(m||W)&&(De=De.filter(Ve=>!(m&&m!=Ve.namespaceId||W&&W!=Ve.triggerName))),De}_beforeAnimationBuild(v,i,m){const ce=i.element,De=i.isRemovalTransition?void 0:v,Ve=i.isRemovalTransition?void 0:i.triggerName;for(const qe of i.timelines){const et=qe.element,gt=et!==ce,Dt=N(m,et,[]);this._getPreviousPlayers(et,gt,De,Ve,i.toState).forEach(Ut=>{const Zt=Ut.getRealPlayer();Zt.beforeDestroy&&Zt.beforeDestroy(),Ut.destroy(),Dt.push(Ut)})}wt(ce,i.fromStyles)}_buildAnimation(v,i,m,W,ce,De){const Ve=i.triggerName,qe=i.element,et=[],gt=new Set,Dt=new Set,Pt=i.timelines.map(Zt=>{const hi=Zt.element;gt.add(hi);const Yt=hi[Us];if(Yt&&Yt.removedBeforeQueried)return new Z.sf(Zt.duration,Zt.delay);const di=hi!==qe,wi=function Zo(c){const v=[];return ba(c,v),v}((m.get(hi)||Dr).map(an=>an.getRealPlayer())).filter(an=>!!an.element&&an.element===hi),gi=ce.get(hi),ki=De.get(hi),Bi=w(this._normalizer,Zt.keyframes,gi,ki),Mi=this._buildPlayer(Zt,Bi,wi);if(Zt.subTimeline&&W&&Dt.add(hi),di){const an=new ma(v,Ve,hi);an.setRealPlayer(Mi),et.push(an)}return Mi});et.forEach(Zt=>{N(this.playersByQueriedElement,Zt.element,[]).push(Zt),Zt.onDone(()=>function al(c,v,i){let m=c.get(v);if(m){if(m.length){const W=m.indexOf(i);m.splice(W,1)}0==m.length&&c.delete(v)}return m}(this.playersByQueriedElement,Zt.element,Zt))}),gt.forEach(Zt=>sr(Zt,kt));const Ut=se(Pt);return Ut.onDestroy(()=>{gt.forEach(Zt=>cs(Zt,kt)),_t(qe,i.toStyles)}),Dt.forEach(Zt=>{N(W,Zt,[]).push(Ut)}),Ut}_buildPlayer(v,i,m){return i.length>0?this.driver.animate(v.element,i,v.duration,v.delay,v.easing,m):new Z.sf(v.duration,v.delay)}}class ma{constructor(v,i,m){this.namespaceId=v,this.triggerName=i,this.element=m,this._player=new Z.sf,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(v){this._containsRealPlayer||(this._player=v,this._queuedCallbacks.forEach((i,m)=>{i.forEach(W=>X(v,m,void 0,W))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(v.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(v){this.totalTime=v}syncPlayerEvents(v){const i=this._player;i.triggerCallback&&v.onStart(()=>i.triggerCallback("start")),v.onDone(()=>this.finish()),v.onDestroy(()=>this.destroy())}_queueEvent(v,i){N(this._queuedCallbacks,v,[]).push(i)}onDone(v){this.queued&&this._queueEvent("done",v),this._player.onDone(v)}onStart(v){this.queued&&this._queueEvent("start",v),this._player.onStart(v)}onDestroy(v){this.queued&&this._queueEvent("destroy",v),this._player.onDestroy(v)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(v){this.queued||this._player.setPosition(v)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(v){const i=this._player;i.triggerCallback&&i.triggerCallback(v)}}function er(c){return c&&1===c.nodeType}function Gr(c,v){const i=c.style.display;return c.style.display=v??"none",i}function cl(c,v,i,m,W){const ce=[];i.forEach(qe=>ce.push(Gr(qe)));const De=[];m.forEach((qe,et)=>{const gt=new Map;qe.forEach(Dt=>{const Pt=v.computeStyle(et,Dt,W);gt.set(Dt,Pt),(!Pt||0==Pt.length)&&(et[Us]=Is,De.push(et))}),c.set(et,gt)});let Ve=0;return i.forEach(qe=>Gr(qe,ce[Ve++])),De}function Er(c,v){const i=new Map;if(c.forEach(Ve=>i.set(Ve,[])),0==v.length)return i;const W=new Set(v),ce=new Map;function De(Ve){if(!Ve)return 1;let qe=ce.get(Ve);if(qe)return qe;const et=Ve.parentNode;return qe=i.has(et)?et:W.has(et)?1:De(et),ce.set(Ve,qe),qe}return v.forEach(Ve=>{const qe=De(Ve);1!==qe&&i.get(qe).push(Ve)}),i}function sr(c,v){c.classList?.add(v)}function cs(c,v){c.classList?.remove(v)}function Ar(c,v,i){se(i).onDone(()=>c.processLeaveNode(v))}function ba(c,v){for(let i=0;iW.add(ce)):v.set(c,m),i.delete(c),!0}class Fa{constructor(v,i,m,W){this._driver=i,this._normalizer=m,this._triggerCache={},this.onRemovalComplete=(ce,De)=>{},this._transitionEngine=new mo(v.body,i,m,W),this._timelineEngine=new yr(v.body,i,m),this._transitionEngine.onRemovalComplete=(ce,De)=>this.onRemovalComplete(ce,De)}registerTrigger(v,i,m,W,ce){const De=v+"-"+W;let Ve=this._triggerCache[De];if(!Ve){const qe=[],gt=xt(this._driver,ce,qe,[]);if(qe.length)throw function y(c,v){return new e.wOt(3404,!1)}();Ve=function eo(c,v,i){return new sl(c,v,i)}(W,gt,this._normalizer),this._triggerCache[De]=Ve}this._transitionEngine.registerTrigger(i,W,Ve)}register(v,i){this._transitionEngine.register(v,i)}destroy(v,i){this._transitionEngine.destroy(v,i)}onInsert(v,i,m,W){this._transitionEngine.insertNode(v,i,m,W)}onRemove(v,i,m){this._transitionEngine.removeNode(v,i,m)}disableAnimations(v,i){this._transitionEngine.markElementAsDisabled(v,i)}process(v,i,m,W){if("@"==m.charAt(0)){const[ce,De]=R(m);this._timelineEngine.command(ce,i,De,W)}else this._transitionEngine.trigger(v,i,m,W)}listen(v,i,m,W,ce){if("@"==m.charAt(0)){const[De,Ve]=R(m);return this._timelineEngine.listen(De,i,Ve,ce)}return this._transitionEngine.listen(v,i,m,W,ce)}flush(v=-1){this._transitionEngine.flush(v)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(v){this._transitionEngine.afterFlushAnimationsDone(v)}}class va{static#e=this.initialStylesByElement=new WeakMap;constructor(v,i,m){this._element=v,this._startStyles=i,this._endStyles=m,this._state=0;let W=va.initialStylesByElement.get(v);W||va.initialStylesByElement.set(v,W=new Map),this._initialStyles=W}start(){this._state<1&&(this._startStyles&&_t(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_t(this._element,this._initialStyles),this._endStyles&&(_t(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(va.initialStylesByElement.delete(this._element),this._startStyles&&(wt(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wt(this._element,this._endStyles),this._endStyles=null),_t(this._element,this._initialStyles),this._state=3)}}function Xs(c){let v=null;return c.forEach((i,m)=>{(function to(c){return"display"===c||"position"===c})(m)&&(v=v||new Map,v.set(m,i))}),v}class Hr{constructor(v,i,m,W){this.element=v,this.keyframes=i,this.options=m,this._specialStyles=W,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=m.duration,this._delay=m.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(v=>v()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const v=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,v,this.options),this._finalKeyframe=v.length?v[v.length-1]:new Map;const i=()=>this._onFinish();this.domPlayer.addEventListener("finish",i),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",i)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(v){const i=[];return v.forEach(m=>{i.push(Object.fromEntries(m))}),i}_triggerWebAnimation(v,i,m){return v.animate(this._convertKeyframesToObject(i),m)}onStart(v){this._originalOnStartFns.push(v),this._onStartFns.push(v)}onDone(v){this._originalOnDoneFns.push(v),this._onDoneFns.push(v)}onDestroy(v){this._onDestroyFns.push(v)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(v=>v()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(v=>v()),this._onDestroyFns=[])}setPosition(v){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=v*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const v=new Map;this.hasStarted()&&this._finalKeyframe.forEach((m,W)=>{"offset"!==W&&v.set(W,this._finished?m:dn(this.element,W))}),this.currentSnapshot=v}triggerCallback(v){const i="start"===v?this._onStartFns:this._onDoneFns;i.forEach(m=>m()),i.length=0}}class io{validateStyleProperty(v){return!0}validateAnimatableStyleProperty(v){return!0}matchesElement(v,i){return!1}containsElement(v,i){return Fe(v,i)}getParentElement(v){return q(v)}query(v,i,m){return oe(v,i,m)}computeStyle(v,i,m){return dn(v,i)}animate(v,i,m,W,ce,De=[]){const qe={duration:m,delay:W,fill:0==W?"both":"forwards"};ce&&(qe.easing=ce);const et=new Map,gt=De.filter(Ut=>Ut instanceof Hr);(function ls(c,v){return 0===c||0===v})(m,W)&>.forEach(Ut=>{Ut.currentSnapshot.forEach((Zt,hi)=>et.set(hi,Zt))});let Dt=function Mt(c){return c.length?c[0]instanceof Map?c:c.map(v=>new Map(Object.entries(v))):[]}(i).map(Ut=>new Map(Ut));Dt=function fs(c,v,i){if(i.size&&v.length){let m=v[0],W=[];if(i.forEach((ce,De)=>{m.has(De)||W.push(De),m.set(De,ce)}),W.length)for(let ce=1;ceDe.set(Ve,dn(c,Ve)))}}return v}(v,Dt,et);const Pt=function Ba(c,v){let i=null,m=null;return Array.isArray(v)&&v.length?(i=Xs(v[0]),v.length>1&&(m=Xs(v[v.length-1]))):v instanceof Map&&(i=Xs(v)),i||m?new va(c,i,m):null}(v,Dt);return new Hr(v,Dt,qe,Pt)}}const Io="@.disabled";class ya{constructor(v,i,m,W){this.namespaceId=v,this.delegate=i,this.engine=m,this._onDestroy=W,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(v){this.delegate.destroyNode?.(v)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(v,i){return this.delegate.createElement(v,i)}createComment(v){return this.delegate.createComment(v)}createText(v){return this.delegate.createText(v)}appendChild(v,i){this.delegate.appendChild(v,i),this.engine.onInsert(this.namespaceId,i,v,!1)}insertBefore(v,i,m,W=!0){this.delegate.insertBefore(v,i,m),this.engine.onInsert(this.namespaceId,i,v,W)}removeChild(v,i,m){this.engine.onRemove(this.namespaceId,i,this.delegate)}selectRootElement(v,i){return this.delegate.selectRootElement(v,i)}parentNode(v){return this.delegate.parentNode(v)}nextSibling(v){return this.delegate.nextSibling(v)}setAttribute(v,i,m,W){this.delegate.setAttribute(v,i,m,W)}removeAttribute(v,i,m){this.delegate.removeAttribute(v,i,m)}addClass(v,i){this.delegate.addClass(v,i)}removeClass(v,i){this.delegate.removeClass(v,i)}setStyle(v,i,m,W){this.delegate.setStyle(v,i,m,W)}removeStyle(v,i,m){this.delegate.removeStyle(v,i,m)}setProperty(v,i,m){"@"==i.charAt(0)&&i==Io?this.disableAnimations(v,!!m):this.delegate.setProperty(v,i,m)}setValue(v,i){this.delegate.setValue(v,i)}listen(v,i,m){return this.delegate.listen(v,i,m)}disableAnimations(v,i){this.engine.disableAnimations(v,i)}}class qo extends ya{constructor(v,i,m,W,ce){super(i,m,W,ce),this.factory=v,this.namespaceId=i}setProperty(v,i,m){"@"==i.charAt(0)?"."==i.charAt(1)&&i==Io?this.disableAnimations(v,m=void 0===m||!!m):this.engine.process(this.namespaceId,v,i.slice(1),m):this.delegate.setProperty(v,i,m)}listen(v,i,m){if("@"==i.charAt(0)){const W=function bo(c){switch(c){case"body":return document.body;case"document":return document;case"window":return window;default:return c}}(v);let ce=i.slice(1),De="";return"@"!=ce.charAt(0)&&([ce,De]=function hl(c){const v=c.indexOf(".");return[c.substring(0,v),c.slice(v+1)]}(ce)),this.engine.listen(this.namespaceId,W,ce,De,Ve=>{this.factory.scheduleListenerCallback(Ve._data||-1,m,Ve)})}return this.delegate.listen(v,i,m)}}class Oo{constructor(v,i,m){this.delegate=v,this.engine=i,this._zone=m,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,i.onRemovalComplete=(W,ce)=>{const De=ce?.parentNode(W);De&&ce.removeChild(De,W)}}createRenderer(v,i){const W=this.delegate.createRenderer(v,i);if(!v||!i?.data?.animation){const et=this._rendererCache;let gt=et.get(W);return gt||(gt=new ya("",W,this.engine,()=>et.delete(W)),et.set(W,gt)),gt}const ce=i.id,De=i.id+"-"+this._currentId;this._currentId++,this.engine.register(De,v);const Ve=et=>{Array.isArray(et)?et.forEach(Ve):this.engine.registerTrigger(ce,De,v,et.name,et)};return i.data.animation.forEach(Ve),new qo(this,De,W,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(v,i,m){if(v>=0&&vi(m));const W=this._animationCallbacksBuffer;0==W.length&&queueMicrotask(()=>{this._zone.run(()=>{W.forEach(ce=>{const[De,Ve]=ce;De(Ve)}),this._animationCallbacksBuffer=[]})}),W.push([i,m])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}var Zi=He(60177);const ct=[{provide:Te,useFactory:function ja(){return new Cs}},{provide:Fa,useClass:(()=>{class c extends Fa{constructor(i,m,W){super(i,m,W,(0,e.WQX)(e.An2,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(Zi.qQ),e.KVO(ye),e.KVO(Te))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac})}return c})()},{provide:e._9s,useFactory:function ot(c,v,i){return new Oo(c,v,i)},deps:[M.B7,Fa,e.SKi]}],Ye=[{provide:ye,useFactory:()=>new io},{provide:e.bc$,useValue:"BrowserAnimations"},...ct],vt=[{provide:ye,useClass:de},{provide:e.bc$,useValue:"NoopAnimations"},...ct];let Bt=(()=>{class c{static withConfig(i){return{ngModule:c,providers:i.disableAnimations?vt:Ye}}static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:Ye,imports:[M.Bb]})}return c})();var Ir=He(38117),Ks=He(93887),Or=He(20546),rr=He(88652),Pr=He(19664),Bn=He(37542),fr=He(93331),Jo=He(7673),tc=He(33669),Nl=He(27468),Xh=He(86648),Yh=He(84572),Ac=He(91986),so=He(5964),Kh=He(23294),Va=He(25558),Lr=He(96354),Ic=He(70274),hn=He(88141),Rs=He(96697),Ss=He(39901),vo=He(73703);const Zs=new e.nKC("MATOMO_ROUTER_CONFIGURATION"),dl={prependBaseHref:!0,trackPageTitle:!0,delay:0,exclude:[]},ul=new e.nKC("INTERNAL_ROUTER_CONFIGURATION",{factory:()=>{const{disabled:c,enableLinkTracking:v}=(0,e.WQX)(Bn.PI),i=(0,e.WQX)(Zs,{optional:!0})||{};return{...dl,...i,enableLinkTracking:v,disabled:c}}}),pl=new e.nKC("MATOMO_ROUTER_INTERCEPTORS");function Oc(c){return{provide:pl,multi:!0,useClass:c}}function ic(c){return c?c.map(Oc):[]}new e.nKC("MATOMO_ROUTE_DATA_KEY",{providedIn:"root",factory:()=>"matomo"});const jl=new e.nKC("MATOMO_PAGE_TITLE_PROVIDER",{factory:()=>new tr((0,e.WQX)(M.hE))});class tr{constructor(v){this.title=v}getCurrentPageTitle(v){return(0,Jo.of)(this.title.getTitle())}}const Nc=new e.nKC("MATOMO_PAGE_URL_PROVIDER",{factory:()=>new xa((0,e.WQX)(ul),(0,e.WQX)(Zi.kB,{optional:!0}),(0,e.WQX)(Zi.hb))});class xa{constructor(v,i,m){this.config=v,this.baseHref=i,this.locationStrategy=m}getCurrentPageUrl(v){const i=this.config.prependBaseHref?this.getBaseHrefWithoutTrailingSlash()+v.urlAfterRedirects:v.urlAfterRedirects;return(0,Jo.of)(i)}getBaseHrefWithoutTrailingSlash(){return function Lo(c){return c.endsWith("/")?c.slice(0,-1):c}(this.baseHref??this.locationStrategy.getBaseHref()??"")}}function Ns(c){return c instanceof fr.wF}function Fs(c){return"string"==typeof c?new RegExp(c):c}let yo=(()=>{class c{constructor(i,m,W,ce,De,Ve){if(this.router=i,this.config=m,this.pageTitleProvider=W,this.pageUrlProvider=ce,this.tracker=De,this.interceptors=Ve,this.initialize=(0,Bn.MH)(()=>{if(this.config.disabled)return;const qe=-1===this.config.delay?tc.D:(0,Ac.c)(this.config.delay);this.router.events.pipe((0,so.p)(Ns),(0,so.p)(function gl(c){const v=function ea(c){return c?Array.isArray(c)?c.map(Fs):[Fs(c)]:[]}(c);return i=>!v.some(m=>i.urlAfterRedirects.match(m))}(this.config.exclude)),function Fl(c,v){return(0,Kh.F)((i,m)=>v?v(i[c],m[c]):i[c]===m[c])}("urlAfterRedirects"),qe,(0,Va.n)(et=>this.presetPageTitleAndUrl(et).pipe((0,Lr.T)(({pageUrl:gt})=>({pageUrl:gt,event:et})))),(0,Ic.H)(({event:et,pageUrl:gt})=>this.callInterceptors(et).pipe((0,hn.M)(()=>this.trackPageView(gt))))).subscribe()},"MatomoRouter has already been initialized"),Ve&&!Array.isArray(Ve))throw function Rc(){return new Error('An invalid MATOMO_ROUTER_INTERCEPTORS provider was configured. Did you forget to set "multi: true" ?')}()}init(){this.initialize()}callInterceptors(i){return this.interceptors?(0,Nl.p)(this.interceptors.map(m=>{const W=m.beforePageTrack(i);return(null==W?(0,Jo.of)(void 0):(0,Xh.H)(W)).pipe((0,Rs.s)(1),(0,Ss.U)(void 0))})).pipe((0,vo.u)(void 0),(0,Ss.U)(void 0)):(0,Jo.of)(void 0)}presetPageTitleAndUrl(i){const m=this.config.trackPageTitle?this.pageTitleProvider.getCurrentPageTitle(i).pipe((0,hn.M)(ce=>this.tracker.setDocumentTitle(ce))):(0,Jo.of)(void 0),W=this.pageUrlProvider.getCurrentPageUrl(i).pipe((0,hn.M)(ce=>this.tracker.setCustomUrl(ce)));return(0,Yh.z)([m,W]).pipe((0,Lr.T)(([ce,De])=>({pageUrl:De})))}trackPageView(i){this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking),this.tracker.setReferrerUrl(i)}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(fr.Ix),e.KVO(ul),e.KVO(jl),e.KVO(Nc),e.KVO(Bn.kA),e.KVO(pl,8))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Vl=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(c,12),e.KVO((0,e.Rfq)(()=>Fc),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})(),Fc=(()=>{class c{constructor(i,m,W){this.router=i,!m&&!W&&this.router.initialize()}static forRoot(i={}){return{ngModule:c,providers:[{provide:Zs,useValue:i},ic(i.interceptors)]}}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(yo),e.KVO(Vl,12),e.KVO((0,e.Rfq)(()=>c),12))};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({providers:[{provide:Bn.HU,useValue:!0}]})}return c})();var ml=He(45794),_r=He(41584),Ga=He(39974),ta=He(54360),Ur=He(58750);function ia(c=1/0){let v;v=c&&"object"==typeof c?c:{count:c};const{count:i=1/0,delay:m,resetOnSuccess:W=!1}=v;return i<=0?tc.D:(0,Ga.N)((ce,De)=>{let qe,Ve=0;const et=()=>{let gt=!1;qe=ce.subscribe((0,ta._)(De,Dt=>{W&&(Ve=0),De.next(Dt)},void 0,Dt=>{if(Ve++{qe?(qe.unsubscribe(),qe=null,et()):gt=!0};if(null!=m){const Ut="number"==typeof m?(0,_r.O)(m):(0,Ur.Tg)(m(Dt,Ve)),Zt=(0,ta._)(De,()=>{Zt.unsubscribe(),Pt()},()=>{De.complete()});Ut.subscribe(Zt)}else Pt()}else De.error(Dt)})),gt&&(qe.unsubscribe(),qe=null,et())};et()})}var Ha=He(97647),na=He(56977),Ge=He(28990),ut=He(38852),Ke=He(3366),at=He(89417);const Et=()=>["/admin"],qt=()=>({action:"plugin"}),ci=()=>({action:"pairing"}),Oi=()=>({action:"group"}),Xn=()=>({action:"coordinator"}),es=()=>["/admin/firmware"],as=()=>["/tools/error"];function Sn(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",84),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"i",85),e.EFF(3," "),e.nrm(4,"span",86),e.EFF(5,"\n "),e.k0s()}}function us(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",91),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",92),e.EFF(3,"\n "),e.k0s()}}function ss(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",93),e.bIt("click",function(){e.eBV(i);const W=e.XpG(2);return e.Njj(W.toggleMenu())}),e.EFF(1,"\n "),e.nrm(2,"img",94),e.EFF(3,"\n "),e.k0s()}}function Bs(c,v){if(1&c&&(e.j41(0,"li",87),e.EFF(1,"\n "),e.nrm(2,"a",88),e.EFF(3,"\n "),e.j41(4,"ul",21),e.EFF(5,"\n "),e.DNE(6,us,4,0,"li",89),e.EFF(7,"\n "),e.DNE(8,ss,4,0,"li",90),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n "),e.k0s()),2&c){const i=e.XpG();e.R7$(6),e.Y8G("ngIf",i.showManufacturerCasaia),e.R7$(2),e.Y8G("ngIf",i.showManufacturerZlinky)}}function Rr(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",98),e.EFF(7,"\n "),e.nrm(8,"i",99),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(8,Et))("queryParams",e.lJ4(9,qt)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,4,"header.popover.text")),e.FS9("popoverTitle",e.bMT(10,6,"header.popover.title")))}function Gn(c,v){1&c&&(e.j41(0,"div",95),e.EFF(1,"\n "),e.j41(2,"div",96),e.EFF(3,"\n "),e.j41(4,"div",97),e.EFF(5,"\n "),e.j41(6,"a",100),e.EFF(7,"\n "),e.nrm(8,"i",101),e.nI1(9,"translate"),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.k0s()),2&c&&(e.R7$(6),e.Y8G("routerLink",e.lJ4(7,as)),e.R7$(2),e.FS9("ngbPopover",e.bMT(9,3,"error.popover.text")),e.FS9("popoverTitle",e.bMT(10,5,"error.popover.title")))}function pi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}function zi(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",102),e.bIt("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.setLanguage(W))}),e.EFF(1,"\n "),e.nrm(2,"img",74),e.EFF(3,"\n "),e.k0s()}if(2&c){const i=v.$implicit;e.R7$(2),e.Mz_("src","assets/",i.flag,"",e.B4B)}}let Yn=(()=>{class c extends Ge.U{headerService;toastr;i18nService;apiService;translate;menuHidden=!0;permitToJoin;permitChecked=!1;restart;showManufacturerCasaia;showManufacturerZlinky;logError;settings;settingsToSave=[];plugin;poll=!1;constructor(i,m,W,ce,De){super(),this.headerService=i,this.toastr=m,this.i18nService=W,this.apiService=ce,this.translate=De}ngOnInit(){setTimeout(()=>{this.plugin=JSON.parse(sessionStorage.getItem("plugin"))},500),this.subs.add(this.headerService.restart.subscribe(i=>{this.restart=i})),this.subs.add(this.headerService.showManufacturerCasaia.subscribe(i=>{this.showManufacturerCasaia=i})),this.subs.add(this.headerService.showManufacturerZlinky.subscribe(i=>{this.showManufacturerZlinky=i})),this.subs.add(this.headerService.logError.subscribe(i=>this.logError=i)),this.subs.add(this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getPermitToJoin()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())})),this.poll||this.getPermitToJoin().subscribe(),this.apiService.getSettings().subscribe(i=>{this.settings=i,this.settings.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings)})})}permit(i){this.permitToJoin.PermitToJoin=i.currentTarget.checked?240:0,this.startStopPermitToJoin(this.permitToJoin)}startStopPermitToJoin(i){this.apiService.putPermitToJoin(i).subscribe(()=>{240===i.PermitToJoin?(i.PermitToJoin=0,setTimeout(()=>this.startStopPermitToJoin(i),24e4),this.toastr.success(this.translate.instant("admin.permittojoin.on.notify"))):(this.getPermitToJoin().subscribe(),this.toastr.success(this.translate.instant("admin.permittojoin.off.notify")))})}toggleMenu(){this.menuHidden=!this.menuHidden}setLanguage(i){this.i18nService.language=i.code,this.updateSettings(i.code)}get currentLanguage(){return this.i18nService.language}get currentFlag(){return this.languages.find(i=>i.code===this.currentLanguage).flag}get languages(){return this.i18nService.supportedLanguages}updateSettings(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;let De=W.current_value;"Lang"===ce&&(De=i),m[ce]={current:De}}),this.apiService.putSettings(m).subscribe()}getPermitToJoin(){return this.apiService.getPermitToJoin().pipe((0,Lr.T)(i=>{this.permitToJoin=i,this.permitChecked=0!==i.PermitToJoin}))}static \u0275fac=function(m){return new(m||c)(e.rXU(ut.d),e.rXU(ml.tw),e.rXU(Ir.W4),e.rXU(Ke.G),e.rXU(Pr.c$))};static \u0275cmp=e.VBU({type:c,selectors:[["app-header"]],features:[e.Vt3],decls:252,vars:32,consts:[[1,"p-2","navbar","navbar-expand-xl","navbar-light","bg-light","navbar-fixed-top'"],[1,"container-fluid"],["href","https://github.com/zigbeefordomoticz/Domoticz-Zigbee",1,"navbar-brand"],["src","assets/z4d_logo.png","alt","Logo",1,"img-responsive","logo"],["type","button","aria-controls","appNavigation","aria-expanded","!menuHidden","aria-label","Toggle navigation",1,"navbar-toggler","navbar-toggler-right",3,"click"],[1,"navbar-toggler-icon"],["id","appNavigation",1,"collapse","navbar-collapse","float-xs-none","h-100","justify-content-between",3,"ngbCollapse"],[1,"navbar-nav","h-100"],["ngbDropdown","","routerLinkActive","active",1,"dropdown"],["routerLink","/dashboard","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-home"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown"],["id","dropdown1","ngbDropdownToggle","","translate","management",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown1",1,"dropdown-menu"],["routerLink","/device","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-tablet","me-2"],["translate","device"],["routerLink","/group","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-layer-group","me-2"],["translate","group"],["id","dropdown2","ngbDropdownToggle","","translate","network",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown2",1,"dropdown-menu"],["routerLink","/network/topology","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wifi","me-2"],["translate","network.topo"],["routerLink","/network/energy-level","routerLinkActive","active",1,"dropdown-item","nav-link","nav-item",3,"click"],[1,"fas","fa-broadcast-tower","me-2"],["translate","network.energy"],["id","dropdown4","ngbDropdownToggle","","translate","admin",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown4",1,"dropdown-menu"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink","queryParams"],[1,"fas","fa-satellite-dish","me-2"],["translate","admin.plugin"],[1,"fab","fa-usb","me-2"],["translate","admin.pairing"],["translate","admin.group"],[1,"fas","fa-user","me-2"],["translate","admin.coordinator"],["routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click","routerLink"],[1,"fas","fa-retweet","me-2"],["translate","admin.firmware"],["routerLink","/settings","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-cog"],["translate",""],["id","dropdown3","ngbDropdownToggle","","translate","tools",1,"nav-link","nav-item","dropdown-toggle"],["ngbDropdownMenu","","aria-labelledby","dropdown3",1,"dropdown-menu"],["routerLink","/tools/link","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-toolbox","me-2"],["translate","tools.tools"],["routerLink","/tools/command","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-lightbulb","me-2"],["translate","tools.command"],["class","dropdown-item nav-item nav-link","routerLink","/tools/configure","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/tools/binding","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-compress-arrows-alt","me-2"],["translate","tools.binding"],["routerLink","/tools/debug","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-wrench","me-2"],["translate","tools.debug"],["routerLink","/tools/error","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-bug","me-2"],["translate","tools.error"],["ngbDropdown","","routerLinkActive","active","class","nav-item dropdown test",4,"ngIf"],["routerLink","/about","routerLinkActive","active",1,"nav-item","nav-link","mx-2"],[1,"fas","fa-question-circle"],["class","navbar-nav ml-auto",4,"ngIf"],[1,"d-none","d-xl-block"],[1,"navbar-nav","ml-auto","d-flex","align-items-center"],[1,"nav-item","border-start","ps-3"],[1,"switch","switch-sm","me-2","pe-3"],["type","checkbox","id","switch-sm",3,"ngModelChange","click","ngModel"],["for","switch-sm","translate","admin.permittojoin.label",1,"mb-0"],["ngbDropdown","","placement","bottom",1,"nav-item","border-start"],["id","language-dropdown","ngbDropdownToggle","",1,"nav-link","ps-3"],[1,"img-responsive",2,"width","1.25rem",3,"src"],["ngbDropdownMenu","","aria-labelledby","language-dropdown"],["class","dropdown-item",3,"click",4,"ngFor","ngForOf"],[1,"d-xl-none"],[1,"navbar-nav"],[1,"nav-item","border-top","mt-1"],[1,"switch","switch-sm","mt-3"],["for","switch-sm","translate","admin.permittojoin.label"],["ngbDropdown","","placement","bottom",1,"mb-3","nav-item","border-top","mt-3"],["id","language-dropdown mt-3","ngbDropdownToggle","",1,"nav-link"],["routerLink","/tools/configure","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],[1,"fas","fa-user-cog","me-2"],["translate","tools.reporting.configure"],["ngbDropdown","","routerLinkActive","active",1,"nav-item","dropdown","test"],["id","dropdown2","ngbDropdownToggle","","translate","manufacturer",1,"nav-link","nav-item","dropdown-toggle"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/casaia","routerLinkActive","active",3,"click",4,"ngIf"],["class","dropdown-item nav-item nav-link","routerLink","/manufacturer/zlinky","routerLinkActive","active",3,"click",4,"ngIf"],["routerLink","/manufacturer/casaia","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","assets/logo-casa.svg",2,"width","50%","height","50%"],["routerLink","/manufacturer/zlinky","routerLinkActive","active",1,"dropdown-item","nav-item","nav-link",3,"click"],["src","https://lixee.fr/img/prestashop-logo-1599316711.jpg",2,"width","30%","height","30%"],[1,"navbar-nav","ml-auto"],["ngbDropdown","","placement","bottom",1,"nav-item","d-flex","align-items-center","border-left","pl-5"],[1,"me-3"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink","queryParams"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-circle","blink",3,"ngbPopover","popoverTitle"],["routerLinkActive","active",1,"nav-item","nav-link","mx-2",3,"routerLink"],["triggers","mouseenter:mouseleave",1,"fa","fa-2x","fa-exclamation-triangle","blink",3,"ngbPopover","popoverTitle"],[1,"dropdown-item",3,"click"]],template:function(m,W){1&m&&(e.j41(0,"nav",0),e.EFF(1,"\n "),e.j41(2,"div",1),e.EFF(3,"\n "),e.j41(4,"a",2),e.EFF(5,"\n "),e.nrm(6,"img",3),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n\n "),e.j41(9,"button",4),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(10,"\n "),e.nrm(11,"span",5),e.EFF(12,"\n "),e.k0s(),e.EFF(13,"\n\n "),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"ul",7),e.EFF(17,"\n "),e.j41(18,"li",8),e.EFF(19,"\n "),e.j41(20,"a",9),e.EFF(21,"\n "),e.nrm(22,"i",10),e.EFF(23,"\n "),e.j41(24,"span"),e.EFF(25),e.k0s(),e.EFF(26,"\n "),e.k0s(),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.j41(29,"li",11),e.EFF(30,"\n "),e.nrm(31,"a",12),e.EFF(32,"\n "),e.j41(33,"ul",13),e.EFF(34,"\n "),e.j41(35,"li",14),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(36,"\n "),e.nrm(37,"i",15),e.EFF(38," "),e.nrm(39,"span",16),e.EFF(40,"\n "),e.k0s(),e.EFF(41,"\n "),e.j41(42,"li",17),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(43,"\n "),e.nrm(44,"i",18),e.EFF(45," "),e.nrm(46,"span",19),e.EFF(47,"\n "),e.k0s(),e.EFF(48,"\n "),e.k0s(),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.j41(51,"li",11),e.EFF(52,"\n "),e.nrm(53,"a",20),e.EFF(54,"\n "),e.j41(55,"ul",21),e.EFF(56,"\n "),e.j41(57,"li",22),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(58,"\n "),e.nrm(59,"i",23),e.EFF(60," "),e.nrm(61,"span",24),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n "),e.j41(64,"li",25),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(65,"\n "),e.nrm(66,"i",26),e.EFF(67," "),e.nrm(68,"span",27),e.EFF(69,"\n "),e.k0s(),e.EFF(70,"\n "),e.k0s(),e.EFF(71,"\n "),e.k0s(),e.EFF(72,"\n\n "),e.j41(73,"li",11),e.EFF(74,"\n "),e.nrm(75,"a",28),e.EFF(76,"\n "),e.j41(77,"ul",29),e.EFF(78,"\n "),e.j41(79,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(80,"\n "),e.nrm(81,"i",31),e.EFF(82," "),e.nrm(83,"span",32),e.EFF(84,"\n "),e.k0s(),e.EFF(85,"\n "),e.j41(86,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(87,"\n "),e.nrm(88,"i",33),e.EFF(89," "),e.nrm(90,"span",34),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.j41(93,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(94,"\n "),e.nrm(95,"i",18),e.EFF(96," "),e.nrm(97,"span",35),e.EFF(98,"\n "),e.k0s(),e.EFF(99,"\n "),e.j41(100,"li",30),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(101,"\n "),e.nrm(102,"i",36),e.EFF(103," "),e.nrm(104,"span",37),e.EFF(105,"\n "),e.k0s(),e.EFF(106,"\n "),e.j41(107,"li",38),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(108,"\n "),e.nrm(109,"i",39),e.EFF(110," "),e.nrm(111,"span",40),e.EFF(112,"\n "),e.k0s(),e.EFF(113,"\n "),e.k0s(),e.EFF(114,"\n "),e.k0s(),e.EFF(115,"\n\n "),e.j41(116,"li",8),e.EFF(117,"\n "),e.j41(118,"a",41),e.EFF(119,"\n "),e.nrm(120,"i",42),e.EFF(121,"\n "),e.j41(122,"span",43),e.EFF(123,"settings"),e.k0s(),e.EFF(124,"\n "),e.k0s(),e.EFF(125,"\n "),e.k0s(),e.EFF(126,"\n "),e.j41(127,"li",11),e.EFF(128,"\n "),e.nrm(129,"a",44),e.EFF(130,"\n "),e.j41(131,"ul",45),e.EFF(132,"\n "),e.j41(133,"li",46),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(134,"\n "),e.nrm(135,"i",47),e.EFF(136," "),e.nrm(137,"span",48),e.EFF(138,"\n "),e.k0s(),e.EFF(139,"\n "),e.j41(140,"li",49),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(141,"\n "),e.nrm(142,"i",50),e.EFF(143," "),e.nrm(144,"span",51),e.EFF(145,"\n "),e.k0s(),e.EFF(146,"\n "),e.DNE(147,Sn,6,0,"li",52),e.EFF(148,"\n "),e.j41(149,"li",53),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(150,"\n "),e.nrm(151,"i",54),e.EFF(152," "),e.nrm(153,"span",55),e.EFF(154,"\n "),e.k0s(),e.EFF(155,"\n "),e.j41(156,"li",56),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(157,"\n "),e.nrm(158,"i",57),e.EFF(159," "),e.nrm(160,"span",58),e.EFF(161,"\n "),e.k0s(),e.EFF(162,"\n "),e.j41(163,"li",59),e.bIt("click",function(){return W.toggleMenu()}),e.EFF(164,"\n "),e.nrm(165,"i",60),e.EFF(166," "),e.nrm(167,"span",61),e.EFF(168,"\n "),e.k0s(),e.EFF(169,"\n "),e.k0s(),e.EFF(170,"\n "),e.k0s(),e.EFF(171,"\n "),e.DNE(172,Bs,11,2,"li",62),e.EFF(173,"\n\n "),e.j41(174,"li",8),e.EFF(175,"\n "),e.j41(176,"a",63),e.EFF(177,"\n "),e.nrm(178,"i",64),e.EFF(179,"\n "),e.j41(180,"span",43),e.EFF(181,"About"),e.k0s(),e.EFF(182,"\n "),e.k0s(),e.EFF(183,"\n "),e.k0s(),e.EFF(184,"\n "),e.k0s(),e.EFF(185,"\n\n "),e.DNE(186,Rr,15,10,"div",65),e.EFF(187,"\n "),e.DNE(188,Gn,15,8,"div",65),e.EFF(189,"\n "),e.j41(190,"div",66),e.EFF(191,"\n "),e.j41(192,"div",67),e.EFF(193,"\n "),e.j41(194,"div",68),e.EFF(195,"\n "),e.j41(196,"div",69),e.EFF(197,"\n "),e.j41(198,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(199,"\n "),e.nrm(200,"label",71),e.EFF(201,"\n "),e.k0s(),e.EFF(202,"\n "),e.k0s(),e.EFF(203,"\n "),e.j41(204,"div",72),e.EFF(205,"\n "),e.j41(206,"div"),e.EFF(207,"\n "),e.j41(208,"a",73),e.nrm(209,"img",74),e.EFF(210,"\n "),e.k0s(),e.EFF(211,"\n "),e.j41(212,"div",75),e.EFF(213,"\n "),e.DNE(214,pi,4,2,"button",76),e.EFF(215,"\n "),e.k0s(),e.EFF(216,"\n "),e.k0s(),e.EFF(217,"\n "),e.k0s(),e.EFF(218,"\n "),e.k0s(),e.EFF(219,"\n "),e.k0s(),e.EFF(220,"\n "),e.j41(221,"div",77),e.EFF(222,"\n "),e.j41(223,"div",78),e.EFF(224,"\n "),e.j41(225,"div",79),e.EFF(226,"\n "),e.j41(227,"div",80),e.EFF(228,"\n "),e.j41(229,"input",70),e.mxI("ngModelChange",function(De){return e.DH7(W.permitChecked,De)||(W.permitChecked=De),De}),e.bIt("click",function(De){return W.permit(De)}),e.k0s(),e.EFF(230,"\n "),e.nrm(231,"label",81),e.EFF(232,"\n "),e.k0s(),e.EFF(233,"\n "),e.k0s(),e.EFF(234,"\n "),e.j41(235,"div",82),e.EFF(236,"\n "),e.j41(237,"a",83),e.nrm(238,"img",74),e.EFF(239,"\n "),e.k0s(),e.EFF(240,"\n "),e.j41(241,"div",75),e.EFF(242,"\n "),e.DNE(243,zi,4,2,"button",76),e.EFF(244,"\n "),e.k0s(),e.EFF(245,"\n "),e.k0s(),e.EFF(246,"\n "),e.k0s(),e.EFF(247,"\n "),e.k0s(),e.EFF(248,"\n "),e.k0s(),e.EFF(249,"\n "),e.k0s(),e.EFF(250,"\n"),e.k0s(),e.EFF(251,"\n")),2&m&&(e.R7$(14),e.Y8G("ngbCollapse",W.menuHidden),e.R7$(11),e.JRh(null==W.plugin?null:W.plugin.Name),e.R7$(54),e.Y8G("routerLink",e.lJ4(23,Et))("queryParams",e.lJ4(24,qt)),e.R7$(7),e.Y8G("routerLink",e.lJ4(25,Et))("queryParams",e.lJ4(26,ci)),e.R7$(7),e.Y8G("routerLink",e.lJ4(27,Et))("queryParams",e.lJ4(28,Oi)),e.R7$(7),e.Y8G("routerLink",e.lJ4(29,Et))("queryParams",e.lJ4(30,Xn)),e.R7$(7),e.Y8G("routerLink",e.lJ4(31,es)),e.R7$(40),e.Y8G("ngIf",null==W.plugin?null:W.plugin.Zigpy),e.R7$(25),e.Y8G("ngIf",W.showManufacturerCasaia||W.showManufacturerZlinky),e.R7$(14),e.Y8G("ngIf",W.restart),e.R7$(2),e.Y8G("ngIf",W.logError),e.R7$(10),e.R50("ngModel",W.permitChecked),e.R7$(11),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages),e.R7$(15),e.R50("ngModel",W.permitChecked),e.R7$(9),e.Mz_("src","assets/",W.currentFlag,"",e.B4B),e.R7$(5),e.Y8G("ngForOf",W.languages))},dependencies:[Zi.Sq,Zi.bT,Pr.Mm,rr.$G,rr.tg,rr.do,rr.U0,rr.ZM,at.Zm,at.BC,at.vS,fr.Wk,fr.wQ,Pr.D9],styles:[".toast-center-center[_ngcontent-%COMP%]{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center[_ngcontent-%COMP%]{top:0;right:0;width:100%}.toast-bottom-center[_ngcontent-%COMP%]{bottom:0;right:0;width:100%}.toast-top-full-width[_ngcontent-%COMP%]{top:0;right:0;width:100%}.toast-bottom-full-width[_ngcontent-%COMP%]{bottom:0;right:0;width:100%}.toast-top-left[_ngcontent-%COMP%]{top:12px;left:12px}.toast-top-right[_ngcontent-%COMP%]{top:12px;right:12px}.toast-bottom-right[_ngcontent-%COMP%]{right:12px;bottom:12px}.toast-bottom-left[_ngcontent-%COMP%]{bottom:12px;left:12px}.toast-container.toast-top-center[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%], .toast-container.toast-bottom-center[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%], .toast-container.toast-bottom-full-width[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]{width:96%;margin-left:auto;margin-right:auto}.toast-container[_ngcontent-%COMP%]{pointer-events:none;position:fixed;z-index:999999}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]{border-radius:var(--bs-border-radius);position:relative;overflow:hidden;margin:0 0 6px;padding:.75rem 1.25rem .75rem 50px;width:300px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 10px #00000008;pointer-events:auto}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-title[_ngcontent-%COMP%]{font-weight:700}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-message[_ngcontent-%COMP%]{word-wrap:break-word}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-progress[_ngcontent-%COMP%]{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.3}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]:hover, .toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.75}.toast-container[_ngcontent-%COMP%] .ngx-toastr[_ngcontent-%COMP%]:hover{box-shadow:0 0 10px #00000026;opacity:1;cursor:pointer}.toast-success[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E\");color:#155724!important;background-color:#d4edda;border:1px solid #c3e6cb}.toast-success[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#08210e!important}.toast-success[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#020703!important}.toast-error[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E\");color:#721c24!important;background-color:#f8d7da;border:1px solid #f5c6cb}.toast-error[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#2c0b0e!important}.toast-error[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#090203!important}.toast-info[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E\");color:#0c5460!important;background-color:#d1ecf1;border:1px solid #bee5eb}.toast-info[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#052025!important}.toast-info[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#010607!important}.toast-warning[_ngcontent-%COMP%]{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E\");color:#856404!important;background-color:#fff3cd;border:1px solid #ffeeba}.toast-warning[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline!important;color:#332701!important}.toast-warning[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#0a0800!important}@media all and (max-width: 240px){.toast-container[_ngcontent-%COMP%] .ngx-toastr.div[_ngcontent-%COMP%]{padding:8px 8px 8px 50px;width:11em}.toast-container[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container[_ngcontent-%COMP%] .ngx-toastr.div[_ngcontent-%COMP%]{padding:8px 8px 8px 50px;width:18em}.toast-container[_ngcontent-%COMP%] .toast-close-button[_ngcontent-%COMP%]{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container[_ngcontent-%COMP%] .ngx-toastr.div[_ngcontent-%COMP%]{padding:15px 15px 15px 50px;width:25em}}.navbar[_ngcontent-%COMP%]{margin-bottom:1rem}a[_ngcontent-%COMP%]:not([href]):not([tabindex]){cursor:pointer}.dropdown-menu[_ngcontent-%COMP%]{cursor:pointer}.logo[_ngcontent-%COMP%]{width:50px}li.test[_ngcontent-%COMP%] .dropdown-item.active[_ngcontent-%COMP%], li.test[_ngcontent-%COMP%] .dropdown-item[_ngcontent-%COMP%]:active{color:transparent;text-decoration:none;background-color:transparent}"]})}return c})();var gs=He(84412);let ks=(()=>{class c{reload=new gs.t(!1);constructor(){}setReload(i){this.reload.next(i)}static \u0275fac=function(m){return new(m||c)};static \u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})();function or(c,v){1&c&&(e.qex(0),e.EFF(1,"\n "),e.bVm())}function wa(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(2);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxps")," : ",i.fork.pluginStats.Rxps,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txps"),"\n : ",i.fork.pluginStats.Txps,"\xa0\xa0\xa0")}}function ms(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxpm")," : ",i.fork.pluginStats.Rxpm,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txpm"),"\n : ",i.fork.pluginStats.Txpm,"\xa0\xa0\xa0")}}function gr(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.nI1(2,"translate"),e.nI1(3,"translate"),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.LHq("",e.bMT(2,4,"dashboard.rxph")," : ",i.fork.pluginStats.Rxph,"\xa0\xa0\xa0",e.bMT(3,6,"dashboard.txph"),"\n : ",i.fork.pluginStats.Txph,"\xa0\xa0\xa0")}}function _o(c,v){if(1&c&&(e.EFF(0,"\n "),e.DNE(1,ms,4,8,"span",22),e.EFF(2,"\n\n "),e.DNE(3,gr,4,8,"ng-template",null,4,e.C5r),e.EFF(5,"\n ")),2&c){const i=e.sdS(4),m=e.XpG(2);e.R7$(),e.Y8G("ngIf",m.fork.pluginStats.Rxpm>=.5&&m.fork.pluginStats.Txpm>=.5)("ngIfElse",i)}}function en(c,v){if(1&c&&(e.j41(0,"div",23),e.EFF(1,"\n "),e.j41(2,"span"),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.Lme("",e.bMT(4,2,"dashboard.health.group")," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.GroupStatus,"")}}function Ro(c,v){if(1&c&&(e.j41(0,"div",24),e.EFF(1,"\n "),e.nrm(2,"span",25),e.j41(3,"span"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(4),e.Lme("",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateDevice," ",null==i.fork.pluginHealth?null:i.fork.pluginHealth.OTAupdateProgress,"")}}function sc(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function bs(c,v){if(1&c&&(e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",28),e.EFF(6),e.DNE(7,sc,2,1,"span",29),e.EFF(8,"\n "),e.k0s(),e.EFF(9,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(6);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,4,"dashboard.plugin.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Kn(c,v){if(1&c&&(e.j41(0,"div",30),e.EFF(1,"\n "),e.j41(2,"a",27),e.nI1(3,"translate"),e.EFF(4,"\n "),e.nrm(5,"span",31),e.EFF(6),e.k0s(),e.EFF(7,"\n "),e.k0s()),2&c){const i=e.XpG(2),m=e.sdS(3);e.R7$(2),e.FS9("popoverTitle",e.bMT(3,3,"dashboard.firmware.update.available.title")),e.Y8G("ngbPopover",m),e.R7$(4),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function Ta(c,v){if(1&c&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&c){const i=e.XpG(3);e.R7$(),e.SpI("[",i.fork.plugin.CertifiedDbVersion,"]")}}function zl(c,v){if(1&c&&(e.j41(0,"div",32),e.EFF(1,"\n "),e.nrm(2,"span",28),e.EFF(3),e.DNE(4,Ta,2,1,"span",29),e.EFF(5,"\n "),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("\n ",i.fork.plugin.PluginVersion,"\n "),e.R7$(),e.Y8G("ngIf",i.fork.plugin.CertifiedDbVersion)}}function Co(c,v){if(1&c&&(e.j41(0,"div",33),e.EFF(1,"\n "),e.nrm(2,"span",31),e.EFF(3),e.k0s()),2&c){const i=e.XpG(2);e.R7$(3),e.SpI("",i.fork.plugin.DisplayFirmwareVersion,"\n ")}}function rc(c,v){if(1&c&&(e.j41(0,"footer",6),e.EFF(1,"\n "),e.j41(2,"div",7),e.EFF(3,"\n "),e.j41(4,"div",8),e.EFF(5,"\n "),e.j41(6,"div",9),e.EFF(7,"\n "),e.nrm(8,"span",10),e.EFF(9),e.nI1(10,"date"),e.k0s(),e.EFF(11,"\n "),e.j41(12,"div",11),e.EFF(13,"\n "),e.DNE(14,or,2,0,"ng-container",12),e.EFF(15,"\n\n "),e.DNE(16,wa,4,8,"ng-template",null,2,e.C5r),e.EFF(18,"\n "),e.DNE(19,_o,6,2,"ng-template",null,3,e.C5r),e.EFF(21,"\n "),e.k0s(),e.EFF(22,"\n "),e.j41(23,"div",13),e.EFF(24),e.nI1(25,"translate"),e.k0s(),e.EFF(26,"\n "),e.j41(27,"div",14),e.EFF(28,"\n "),e.nrm(29,"span",15),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.DNE(32,en,6,4,"div",16),e.EFF(33,"\n\n "),e.DNE(34,Ro,6,2,"div",17),e.EFF(35,"\n\n "),e.DNE(36,bs,10,6,"div",18),e.EFF(37,"\n "),e.DNE(38,Kn,8,5,"div",19),e.EFF(39,"\n "),e.DNE(40,zl,6,2,"div",20),e.EFF(41,"\n "),e.DNE(42,Co,4,1,"div",21),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n"),e.k0s()),2&c){const i=e.sdS(17),m=e.sdS(20),W=e.XpG();e.R7$(2),e.Y8G("ngClass",4===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-primary fixed-bottom":3===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)?"bg-danger fixed-bottom":1!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||null!=W.fork.pluginHealth&&W.fork.pluginHealth.GroupStatus&&"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?2===(null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthFlag)||"ready"!==(null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus)?"bg-warning fixed-bottom":"bg-danger fixed-bottom":"bg-success fixed-bottom"),e.R7$(7),e.SpI("",e.i5U(10,14,1e3*(null==W.fork.pluginStats?null:W.fork.pluginStats.StartTime),"dd/MM/yyyy\n HH:mm:ss"),"\n "),e.R7$(5),e.Y8G("ngIf",W.fork.pluginStats.Rxps>=.5&&W.fork.pluginStats.Txps>=.5)("ngIfThen",i)("ngIfElse",m),e.R7$(10),e.Lme("\n ",e.bMT(25,17,"dashboard.maxload")," : ",W.fork.pluginStats.MaxLoad,"\n "),e.R7$(5),e.FS9("translate",null==W.fork.pluginHealth?null:W.fork.pluginHealth.HealthTxt),e.R7$(3),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.GroupStatus),e.R7$(2),e.Y8G("ngIf",null==W.fork.pluginHealth?null:W.fork.pluginHealth.OTAupdateDevice),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.PluginUpdate),e.R7$(2),e.Y8G("ngIf",null==W.fork.plugin?null:W.fork.plugin.FirmwareUpdate),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.PluginUpdate)),e.R7$(2),e.Y8G("ngIf",!(null!=W.fork.plugin&&W.fork.plugin.FirmwareUpdate))}}function Sa(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.firmware.update.available"),e.npT)}function No(c,v){1&c&&(e.nrm(0,"span",34),e.nI1(1,"translate")),2&c&&e.Y8G("innerHTML",e.bMT(1,1,"dashboard.plugin.update.available"),e.npT)}let bl=(()=>{class c extends Ge.U{apiService;versionService;headerService;tracker;fork$;poll=!1;fork;constructor(i,m,W,ce){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.tracker=ce}ngOnInit(){this.fork$=(0,Nl.p)([this.apiService.getPluginhealth(),this.apiService.getPluginStats(),this.apiService.getPlugin()]).pipe((0,Lr.T)(([i,m,W])=>{this.headerService.setError(m.Error),this.fork={pluginHealth:i,pluginStats:m,plugin:W},W&&(sessionStorage.setItem("plugin",JSON.stringify(W)),this.tracker.setUserId(W.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",W.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",W.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",W.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",W.NetworkSize,"visit"),this.tracker.setCustomVariable(4,"CertifiedDbVersion",W.CertifiedDbVersion,"visit"))})),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.fork$),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.versionService.reload.subscribe(()=>{this.fork$.subscribe()})}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-version"]],features:[e.Vt3],decls:8,vars:1,consts:[["popContentFirmware",""],["popContentPlugin",""],["perSecond",""],["other",""],["perHour",""],["class","navbar navbar-fixed-bottom navbar-expand-lg","style","line-height: 1",4,"ngIf"],[1,"navbar","navbar-fixed-bottom","navbar-expand-lg",2,"line-height","1"],[3,"ngClass"],[1,"d-flex","flex-row","justify-content-between"],[1,"order-first","p-2","text-white","ms-2"],["translate","dashboard.health.starttime"],[1,"order-0","p-2","text-center","text-white","d-none","d-xl-block"],[4,"ngIf","ngIfThen","ngIfElse"],[1,"d-none","d-md-block","order-1","p-2","text-center","text-white"],[1,"order-1","p-2","text-center","text-white"],[3,"translate"],["class","d-none d-lg-block order-2 p-2 text-center text-white",4,"ngIf"],["class","order-3 p-2 text-center text-white d-none d-lg-block",4,"ngIf"],["class","order-4 p-2",4,"ngIf"],["class","me-2 order-5 p-2",4,"ngIf"],["class","order-4 p-2 text-white",4,"ngIf"],["class","d-none d-lg-block me-2 order-5 p-2 text-white",4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"d-none","d-lg-block","order-2","p-2","text-center","text-white"],[1,"order-3","p-2","text-center","text-white","d-none","d-lg-block"],["translate","dashboard.health.OTA"],[1,"order-4","p-2"],["placement","top",1,"text-danger",2,"cursor","pointer",3,"ngbPopover","popoverTitle"],["translate","dashboard.plugin.version"],[4,"ngIf"],[1,"me-2","order-5","p-2"],["translate","dashboard.firmware.version"],[1,"order-4","p-2","text-white"],[1,"d-none","d-lg-block","me-2","order-5","p-2","text-white"],[3,"innerHTML"]],template:function(m,W){1&m&&(e.DNE(0,rc,46,19,"footer",5),e.EFF(1,"\n\n"),e.DNE(2,Sa,2,3,"ng-template",null,0,e.C5r),e.EFF(4,"\n\n"),e.DNE(5,No,2,3,"ng-template",null,1,e.C5r),e.EFF(7,"\n")),2&m&&e.Y8G("ngIf",W.fork)},dependencies:[Zi.YU,Zi.bT,Pr.Mm,rr.ZM,Zi.vh,Pr.D9]})}return c})(),Ua=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275cmp=e.VBU({type:c,selectors:[["app-shell"]],decls:9,vars:0,consts:[[1,"container-fluid"]],template:function(m,W){1&m&&(e.nrm(0,"app-header"),e.EFF(1,"\n"),e.j41(2,"div",0),e.EFF(3,"\n "),e.nrm(4,"router-outlet"),e.EFF(5,"\n"),e.k0s(),e.EFF(6,"\n"),e.nrm(7,"app-version"),e.EFF(8,"\n"))},dependencies:[fr.n3,Yn,bl]})}return c})();class sn{static childRoutes(v){return{path:"",component:Ua,children:v,data:{reuse:!0}}}}const oc=[sn.childRoutes([{path:"about",loadChildren:()=>He.e(644).then(He.bind(He,60644)).then(c=>c.AboutModule)},{path:"device",loadChildren:()=>He.e(12).then(He.bind(He,55012)).then(c=>c.DeviceModule)},{path:"group",loadChildren:()=>Promise.all([He.e(76),He.e(577)]).then(He.bind(He,74577)).then(c=>c.GroupModule)},{path:"network",loadChildren:()=>He.e(837).then(He.bind(He,86837)).then(c=>c.NetworkModule)},{path:"admin",loadChildren:()=>Promise.all([He.e(76),He.e(908)]).then(He.bind(He,5908)).then(c=>c.AdminModule)},{path:"settings",loadChildren:()=>He.e(521).then(He.bind(He,16521)).then(c=>c.SettingsModule)},{path:"manufacturer",loadChildren:()=>He.e(317).then(He.bind(He,22317)).then(c=>c.ManufacturerModule)},{path:"tools",loadChildren:()=>He.e(846).then(He.bind(He,2846)).then(c=>c.ToolsModule)}]),{path:"**",redirectTo:"",pathMatch:"full"}];let vl=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forRoot(oc,{preloadingStrategy:fr.Kp}),fr.iI]})}return c})();var Fo=He(57786),ac=He(73028),yl=He(5779),js=He(21413),lc=He(33726),mr=He(983),Vs=He(71985),Gl=He(70152),sa=He(70980);function Qn(){return["Mac","iPhone","iPad","iPhone"].some(v=>navigator.platform.includes(v))?"apple":"pc"}function _l(c,v){const i={up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"};function m(W){return"pc"===v&&"meta"===W&&(W="control"),W in i&&(W=i[W]),W}return c.toLowerCase().split(">").map(W=>W.split(".").map(m).join(".")).join(">")}let qh=(()=>{class c{constructor(i,m){this.eventManager=i,this.document=m,this.hotkeys=new Map,this.dispose=new js.B,this.defaults={trigger:"keydown",allowIn:[],element:this.document.documentElement,group:void 0,description:void 0,showInHelpMenu:!0,preventDefault:!0},this.callbacks=[],this.sequenceMaps=new Map,this.sequenceDebounce=250}getHotkeys(){const i=Array.from(this.sequenceMaps.values()).map(m=>[m.hotkeyMap].reduce((W,ce)=>[...ce.values()],[])).reduce((m,W)=>W,[]).map(m=>m.hotkey);return Array.from(this.hotkeys.values()).concat(i)}getShortcuts(){const i=this.getHotkeys(),m=[];for(const W of i){if(!W.showInHelpMenu)continue;let ce=m.find(Ve=>Ve.group===W.group);ce||(ce={group:W.group,hotkeys:[]},m.push(ce));const De=_l(W.keys,Qn());ce.hotkeys.push({keys:De,description:W.description})}return m}addSequenceShortcut(i){const m=(Ve,qe)=>{let et="";return(0,lc.R)(Ve,qe).pipe((0,hn.M)(gt=>et=`${et}${et?">":""}${gt.ctrlKey?"control.":""}${gt.altKey?"alt.":""}${gt.shiftKey?"shift.":""}${gt.key}`),(0,Gl.B)(this.sequenceDebounce),(0,ac.Z)(()=>{const gt=et;et="";const Dt=this.sequenceMaps.get(Ve);if(Dt.hotkeyMap.has(gt)){const Pt=Dt.hotkeyMap.get(gt);return Pt.subject.next(Pt.hotkey),(0,Jo.of)(Pt.hotkey)}return mr.w}))},W={...this.defaults,...i};let ce=_l(W.keys,Qn());return(()=>{const Ve={subject:new js.B,hotkey:W};if(this.sequenceMaps.has(W.element)){const qe=this.sequenceMaps.get(W.element);if(qe.hotkeyMap.has(ce))return console.error("Duplicated shortcut"),(0,Jo.of)(null);qe.hotkeyMap.set(ce,Ve)}else{const qe=m(W.element,W.trigger),Dt={subscription:qe.subscribe(),observer:qe,hotkeyMap:new Map([[ce,Ve]])};this.sequenceMaps.set(W.element,Dt)}return Ve.subject.asObservable()})().pipe((0,na.Q)(this.dispose.pipe((0,so.p)(Ve=>Ve===ce))),(0,so.p)(Ve=>!this.targetIsExcluded(Ve.allowIn)),(0,hn.M)(Ve=>this.callbacks.forEach(qe=>qe(Ve,ce,Ve.element))),(0,sa.j)(()=>this.removeShortcuts(ce)))}addShortcut(i){const m={...this.defaults,...i},W=_l(m.keys,Qn());if(this.hotkeys.has(W))return console.error("Duplicated shortcut"),(0,Jo.of)(null);this.hotkeys.set(W,m);const ce=`${m.trigger}.${W}`;return new Vs.c(De=>{const qe=this.eventManager.addEventListener(m.element,ce,et=>{const gt=this.hotkeys.get(W);this.targetIsExcluded(gt.allowIn)||(m.preventDefault&&et.preventDefault(),this.callbacks.forEach(Pt=>Pt(et,W,gt.element)),De.next(et))});return()=>{this.hotkeys.delete(W),qe()}}).pipe((0,na.Q)(this.dispose.pipe((0,so.p)(De=>De===W))))}removeShortcuts(i){(function Zh(c){return Array.isArray(c)?c:[c]})(i).map(W=>_l(W,Qn())).forEach(W=>{this.hotkeys.delete(W),this.dispose.next(W),this.sequenceMaps.forEach((ce,De)=>{const Ve=ce.hotkeyMap.get(W);Ve&&(Ve.subject.observers.filter(qe=>!qe.closed).forEach(qe=>qe.unsubscribe()),ce.hotkeyMap.delete(W)),0===ce.hotkeyMap.size&&(ce.subscription.unsubscribe(),this.sequenceMaps.delete(De))})})}setSequenceDebounce(i){this.sequenceDebounce=i}onShortcut(i){return this.callbacks.push(i),()=>this.callbacks=this.callbacks.filter(m=>m!==i)}registerHelpModal(i,m=""){this.addShortcut({keys:m||"shift.?",showInHelpMenu:!1,preventDefault:!1}).subscribe(W=>{!/^(input|textarea|select)$/i.test(document.activeElement.nodeName)&&!W.target.isContentEditable&&this.hotkeys.size&&i()})}targetIsExcluded(i){const m=this.document.activeElement,ce=m.isContentEditable;let De=["INPUT","SELECT","TEXTAREA"].includes(m.nodeName)||ce;if(De&&i?.length)for(let Ve of i)if(m.nodeName===Ve||"CONTENTEDITABLE"===Ve&&ce){De=!1;break}return De}static#e=this.\u0275fac=function(m){return new(m||c)(e.KVO(M.EU),e.KVO(Zi.qQ))};static#t=this.\u0275prov=e.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}return c})(),Re=(()=>{class c{static#e=this.\u0275fac=function(m){return new(m||c)};static#t=this.\u0275mod=e.$C({type:c});static#i=this.\u0275inj=e.G2t({imports:[Zi.MD]})}return c})();const Ue=new Ir.Vy("App");let Be=(()=>{class c extends Ge.U{router;activatedRoute;titleService;translateService;apiService;i18nService;headerService;primengConfig;hotkeys;keysBoundActive=Or.c.keysBoundActive;activateRefresh=!1;statusChangeSubscription;hasRememberedConsent;constructor(i,m,W,ce,De,Ve,qe,et,gt){super(),this.router=i,this.activatedRoute=m,this.titleService=W,this.translateService=ce,this.apiService=De,this.i18nService=Ve,this.headerService=qe,this.primengConfig=et,this.hotkeys=gt}ngOnInit(){this.primengConfig.ripple=!0,Or.c.production&&Ir.Vy.enableProductionMode(),Ue.debug("init"),this.i18nService.init(Or.c.defaultLanguage,Or.c.supportedLanguages),this.subs.sink=(0,Nl.p)([this.apiService.getCasiaDevices(),this.apiService.getZlinky()]).subscribe(([i,m])=>{i.length>0&&this.headerService.setShowManufacturerCasaia(!0),m.length>0&&this.headerService.setShowManufacturerZlinky(!0)}),this.apiService.getPlugin().subscribe(i=>{sessionStorage.setItem("plugin",JSON.stringify(i)),this.titleService.setTitle(i?.Name.concat(" - ").concat(this.translateService.instant("dashboard"))),this.setTitle()}),this.subs.add(this.hotkeys.addShortcut({keys:this.keysBoundActive}).subscribe(i=>{console.log("ben"+i),this.activateRefresh=!this.activateRefresh,this.headerService.setPolling(this.activateRefresh)}))}setTitle(){const i=this.router.events.pipe((0,so.p)(m=>m instanceof fr.wF));(0,Fo.h)(this.translateService.onLangChange,i).pipe((0,Lr.T)(()=>{let m=this.activatedRoute;for(;m.firstChild;)m=m.firstChild;return m}),(0,so.p)(m=>"primary"===m.outlet),(0,ac.Z)(m=>m.data),(0,Ir.s0)(this)).subscribe(m=>{const W=m.title;if(W){const ce=JSON.parse(sessionStorage.getItem("plugin"));this.titleService.setTitle(ce?.Name.concat(" - ").concat(this.translateService.instant(W)))}})}ngOnDestroy(){this.i18nService.destroy(),this.statusChangeSubscription.unsubscribe(),this.hasRememberedConsent.unsubscribe()}static \u0275fac=function(m){return new(m||c)(e.rXU(fr.Ix),e.rXU(fr.nX),e.rXU(M.hE),e.rXU(Pr.c$),e.rXU(Ke.G),e.rXU(Ir.W4),e.rXU(ut.d),e.rXU(yl.r1),e.rXU(qh))};static \u0275cmp=e.VBU({type:c,selectors:[["app-root"]],features:[e.Vt3],decls:2,vars:0,template:function(m,W){1&m&&(e.nrm(0,"router-outlet"),e.EFF(1,"\n"))},dependencies:[fr.n3]})}return c})();var We=He(31635);class pn{attach(v){return this._attachedHost=v,v.attach(this)}detach(){let v=this._attachedHost;null!=v&&(this._attachedHost=null,v.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(v){this._attachedHost=v}}class Dn extends pn{constructor(v,i,m,W,ce){super(),this.component=v,this.viewContainerRef=i,this.injector=m,this.componentFactoryResolver=W,this.projectableNodes=ce}}class qs extends pn{constructor(v,i,m,W){super(),this.templateRef=v,this.viewContainerRef=i,this.context=m,this.injector=W}get origin(){return this.templateRef.elementRef}attach(v,i=this.context){return this.context=i,super.attach(v)}detach(){return this.context=void 0,super.detach()}}class Hl extends pn{constructor(v){super(),this.element=v instanceof e.aKT?v.nativeElement:v}}class Cl{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(v){return v instanceof Dn?(this._attachedPortal=v,this.attachComponentPortal(v)):v instanceof qs?(this._attachedPortal=v,this.attachTemplatePortal(v)):this.attachDomPortal&&v instanceof Hl?(this._attachedPortal=v,this.attachDomPortal(v)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(v){this._disposeFn=v}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class cc extends Cl{constructor(v,i,m,W,ce){super(),this.outletElement=v,this._componentFactoryResolver=i,this._appRef=m,this._defaultInjector=W,this.attachDomPortal=De=>{const Ve=De.element,qe=this._document.createComment("dom-portal");Ve.parentNode.insertBefore(qe,Ve),this.outletElement.appendChild(Ve),this._attachedPortal=De,super.setDisposeFn(()=>{qe.parentNode&&qe.parentNode.replaceChild(Ve,qe)})},this._document=ce}attachComponentPortal(v){const m=(v.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(v.component);let W;return v.viewContainerRef?(W=v.viewContainerRef.createComponent(m,v.viewContainerRef.length,v.injector||v.viewContainerRef.injector,v.projectableNodes||void 0),this.setDisposeFn(()=>W.destroy())):(W=m.create(v.injector||this._defaultInjector||e.zZn.NULL),this._appRef.attachView(W.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(W.hostView),W.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(W)),this._attachedPortal=v,W}attachTemplatePortal(v){let i=v.viewContainerRef,m=i.createEmbeddedView(v.templateRef,v.context,{injector:v.injector});return m.rootNodes.forEach(W=>this.outletElement.appendChild(W)),m.detectChanges(),this.setDisposeFn(()=>{let W=i.indexOf(m);-1!==W&&i.remove(W)}),this._attachedPortal=v,m}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(v){return v.hostView.rootNodes[0]}}function Bo(){}function yh(c){return null==c?Bo:function(){return this.querySelector(c)}}function Vf(){return[]}function zf(c){return null==c?Vf:function(){return this.querySelectorAll(c)}}function jc(c){return function(){return this.matches(c)}}function $r(c){return function(v){return v.matches(c)}}var Gf=Array.prototype.find;function Vc(){return this.firstElementChild}var zc=Array.prototype.filter;function td(){return Array.from(this.children)}function lp(c){return new Array(c.length)}function Gc(c,v){this.ownerDocument=c.ownerDocument,this.namespaceURI=c.namespaceURI,this._next=null,this._parent=c,this.__data__=v}function Ch(c,v,i,m,W,ce){for(var Ve,De=0,qe=v.length,et=ce.length;Dev?1:c>=v?0:NaN}Gc.prototype={constructor:Gc,appendChild:function(c){return this._parent.insertBefore(c,this._next)},insertBefore:function(c,v){return this._parent.insertBefore(c,v)},querySelector:function(c){return this._parent.querySelector(c)},querySelectorAll:function(c){return this._parent.querySelectorAll(c)}};var ni="http://www.w3.org/1999/xhtml";const xn={svg:"http://www.w3.org/2000/svg",xhtml:ni,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ka(c){var v=c+="",i=v.indexOf(":");return i>=0&&"xmlns"!==(v=c.slice(0,i))&&(c=c.slice(i+1)),xn.hasOwnProperty(v)?{space:xn[v],local:c}:c}function Hc(c){return function(){this.removeAttribute(c)}}function hs(c){return function(){this.removeAttributeNS(c.space,c.local)}}function Uc(c,v){return function(){this.setAttribute(c,v)}}function ra(c,v){return function(){this.setAttributeNS(c.space,c.local,v)}}function oa(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttribute(c):this.setAttribute(c,i)}}function Bd(c,v){return function(){var i=v.apply(this,arguments);null==i?this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,i)}}function fp(c){return c.ownerDocument&&c.ownerDocument.defaultView||c.document&&c||c.defaultView}function fm(c){return function(){this.style.removeProperty(c)}}function gp(c,v,i){return function(){this.style.setProperty(c,v,i)}}function oo(c,v,i){return function(){var m=v.apply(this,arguments);null==m?this.style.removeProperty(c):this.style.setProperty(c,m,i)}}function dc(c,v){return c.style.getPropertyValue(v)||fp(c).getComputedStyle(c,null).getPropertyValue(v)}function ka(c){return function(){delete this[c]}}function kl(c,v){return function(){this[c]=v}}function $f(c,v){return function(){var i=v.apply(this,arguments);null==i?delete this[c]:this[c]=i}}function bp(c){return c.trim().split(/^|\s+/)}function Th(c){return c.classList||new Sh(c)}function Sh(c){this._node=c,this._names=bp(c.getAttribute("class")||"")}function kh(c,v){for(var i=Th(c),m=-1,W=v.length;++m=0&&(this._names.splice(v,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(c){return this._names.indexOf(c)>=0}};var qc=[null];function br(c,v){this._groups=c,this._parents=v}function Xd(){return new br([[document.documentElement]],qc)}br.prototype=Xd.prototype={constructor:br,select:function rp(c){"function"!=typeof c&&(c=yh(c));for(var v=this._groups,i=v.length,m=new Array(i),W=0;W=gi&&(gi=wi+1);!(Bi=Yt[gi])&&++gi=0;)(De=m[W])&&(ce&&4^De.compareDocumentPosition(ce)&&ce.parentNode.insertBefore(De,ce),ce=De);return this},sort:function Wf(c){function v(Dt,Pt){return Dt&&Pt?c(Dt.__data__,Pt.__data__):!Dt-!Pt}c||(c=hc);for(var i=this._groups,m=i.length,W=new Array(m),ce=0;ce1?this.each((null==v?fm:"function"==typeof v?oo:gp)(c,v,i??"")):dc(this.node(),c)},property:function mp(c,v){return arguments.length>1?this.each((null==v?ka:"function"==typeof v?$f:kl)(c,v)):this.node()[c]},classed:function Vd(c,v){var i=bp(c+"");if(arguments.length<2){for(var m=Th(this.node()),W=-1,ce=i.length;++W=0&&(i=v.slice(m+1),v=v.slice(0,m)),{type:v,name:i}})}(c+""),ce=m.length;if(!(arguments.length<2)){for(Ve=v?Ah:Kc,W=0;W{}};function Qc(){for(var m,c=0,v=arguments.length,i={};c=0&&(m=i.slice(W+1),i=i.slice(0,W)),i&&!v.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:m}})}(c+"",i),ce=-1,De=m.length;if(!(arguments.length<2)){if(null!=v&&"function"!=typeof v)throw new Error("invalid callback: "+v);for(;++ce0)for(var W,ce,i=new Array(W),m=0;m>8&15|v>>4&240,v>>4&15|240&v,(15&v)<<4|15&v,1):8===i?hd(v>>24&255,v>>16&255,v>>8&255,(255&v)/255):4===i?hd(v>>12&15|v>>8&240,v>>8&15|v>>4&240,v>>4&15|240&v,((15&v)<<4|15&v)/255):null):(v=Xl.exec(c))?new ao(v[1],v[2],v[3],1):(v=vc.exec(c))?new ao(255*v[1]/100,255*v[2]/100,255*v[3]/100,1):(v=ar.exec(c))?hd(v[1],v[2],v[3],v[4]):(v=wp.exec(c))?hd(255*v[1]/100,255*v[2]/100,255*v[3]/100,v[4]):(v=Jd.exec(c))?Tp(v[1],v[2]/100,v[3]/100,1):(v=ld.exec(c))?Tp(v[1],v[2]/100,v[3]/100,v[4]):eu.hasOwnProperty(c)?ih(eu[c]):"transparent"===c?new ao(NaN,NaN,NaN,0):null}function ih(c){return new ao(c>>16&255,c>>8&255,255&c,1)}function hd(c,v,i,m){return m<=0&&(c=v=i=NaN),new ao(c,v,i,m)}function Rh(c,v,i,m){return 1===arguments.length?function gm(c){return c instanceof $l||(c=Yl(c)),c?new ao((c=c.rgb()).r,c.g,c.b,c.opacity):new ao}(c):new ao(c,v,i,m??1)}function ao(c,v,i,m){this.r=+c,this.g=+v,this.b=+i,this.opacity=+m}function iu(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}`}function nu(){const c=su(this.opacity);return`${1===c?"rgb(":"rgba("}${nh(this.r)}, ${nh(this.g)}, ${nh(this.b)}${1===c?")":`, ${c})`}`}function su(c){return isNaN(c)?1:Math.max(0,Math.min(1,c))}function nh(c){return Math.max(0,Math.min(255,Math.round(c)||0))}function sh(c){return((c=nh(c))<16?"0":"")+c.toString(16)}function Tp(c,v,i,m){return m<=0?c=v=i=NaN:i<=0||i>=1?c=v=NaN:v<=0&&(c=NaN),new Ea(c,v,i,m)}function ru(c){if(c instanceof Ea)return new Ea(c.h,c.s,c.l,c.opacity);if(c instanceof $l||(c=Yl(c)),!c)return new Ea;if(c instanceof Ea)return c;var v=(c=c.rgb()).r/255,i=c.g/255,m=c.b/255,W=Math.min(v,i,m),ce=Math.max(v,i,m),De=NaN,Ve=ce-W,qe=(ce+W)/2;return Ve?(De=v===ce?(i-m)/Ve+6*(i0&&qe<1?0:De,new Ea(De,Ve,qe,c.opacity)}function Ea(c,v,i,m){this.h=+c,this.s=+v,this.l=+i,this.opacity=+m}function Sp(c){return(c=(c||0)%360)<0?c+360:c}function kp(c){return Math.max(0,Math.min(1,c||0))}function dd(c,v,i){return 255*(c<60?v+(i-v)*c/60:c<180?i:c<240?v+(i-v)*(240-c)/60:v)}function Za(c,v,i,m,W){var ce=c*c,De=ce*c;return((1-3*c+3*ce-De)*v+(4-6*ce+3*De)*i+(1+3*c+3*ce-3*De)*m+De*W)/6}eh($l,Yl,{copy(c){return Object.assign(new this.constructor,this,c)},displayable(){return this.rgb().displayable()},hex:cd,formatHex:cd,formatHex8:function th(){return this.rgb().formatHex8()},formatHsl:function Jf(){return ru(this).formatHsl()},formatRgb:tu,toString:tu}),eh(ao,Rh,Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new ao(this.r*c,this.g*c,this.b*c,this.opacity)},rgb(){return this},clamp(){return new ao(nh(this.r),nh(this.g),nh(this.b),su(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iu,formatHex:iu,formatHex8:function eg(){return`#${sh(this.r)}${sh(this.g)}${sh(this.b)}${sh(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nu,toString:nu})),eh(Ea,function zo(c,v,i,m){return 1===arguments.length?ru(c):new Ea(c,v,i,m??1)},Lh($l,{brighter(c){return c=null==c?El:Math.pow(El,c),new Ea(this.h,this.s,this.l*c,this.opacity)},darker(c){return c=null==c?.7:Math.pow(.7,c),new Ea(this.h,this.s,this.l*c,this.opacity)},rgb(){var c=this.h%360+360*(this.h<0),v=isNaN(c)||isNaN(this.s)?0:this.s,i=this.l,m=i+(i<.5?i:1-i)*v,W=2*i-m;return new ao(dd(c>=240?c-240:c+120,W,m),dd(c,W,m),dd(c<120?c+240:c-120,W,m),this.opacity)},clamp(){return new Ea(Sp(this.h),kp(this.s),kp(this.l),su(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const c=su(this.opacity);return`${1===c?"hsl(":"hsla("}${Sp(this.h)}, ${100*kp(this.s)}%, ${100*kp(this.l)}%${1===c?")":`, ${c})`}`}}));const au=c=>()=>c;function lu(c,v){var i=v-c;return i?function tg(c,v){return function(i){return c+i*v}}(c,i):au(isNaN(c)?v:c)}const cu=function c(v){var i=function mm(c){return 1==(c=+c)?lu:function(v,i){return i-v?function Mp(c,v,i){return c=Math.pow(c,i),v=Math.pow(v,i)-c,i=1/i,function(m){return Math.pow(c+m*v,i)}}(v,i,c):au(isNaN(v)?i:v)}}(v);function m(W,ce){var De=i((W=Rh(W)).r,(ce=Rh(ce)).r),Ve=i(W.g,ce.g),qe=i(W.b,ce.b),et=lu(W.opacity,ce.opacity);return function(gt){return W.r=De(gt),W.g=Ve(gt),W.b=qe(gt),W.opacity=et(gt),W+""}}return m.gamma=c,m}(1);function Dp(c){return function(v){var De,Ve,i=v.length,m=new Array(i),W=new Array(i),ce=new Array(i);for(De=0;De=1?(i=1,v-1):Math.floor(i*v),W=c[m],ce=c[m+1];return Za((i-m/v)*v,m>0?c[m-1]:2*W-ce,W,ce,mi&&(ce=v.slice(i,ce),Ve[De]?Ve[De]+=ce:Ve[++De]=ce),(m=m[0])===(W=W[0])?Ve[De]?Ve[De]+=W:Ve[++De]=W:(Ve[++De]=null,qe.push({i:De,x:Go(m,W)})),i=Nh.lastIndex;return i=0&&c._call.call(void 0,v),c=c._next;--Ho}()}finally{Ho=0,function Wt(){for(var c,i,v=jh,m=1/0;v;)v._call?(m>v._time&&(m=v._time),c=v,v=v._next):(i=v._next,v._next=null,v=c?c._next=i:jh=i);pd=c,Qt(m)}(),Kl=0}}function Vt(){var c=ah.now(),v=c-fd;v>fu&&(Vh-=v,fd=c)}function Qt(c){Ho||(rh&&(rh=clearTimeout(rh)),c-Kl>24?(c<1/0&&(rh=setTimeout(ft,c-ah.now()-Vh)),oh&&(oh=clearInterval(oh))):(oh||(fd=ah.now(),oh=setInterval(Vt,fu)),Ho=1,be(ft)))}function ii(c,v,i){var m=new we;return m.restart(W=>{m.stop(),c(W+v)},v=null==v?0:+v,i),m}we.prototype=Ne.prototype={constructor:we,restart:function(c,v,i){if("function"!=typeof c)throw new TypeError("callback is not a function");i=(null==i?je():+i)+(null==v?0:+v),!this._next&&pd!==this&&(pd?pd._next=this:jh=this,pd=this),this._call=c,this._time=i,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var Ci=Jc("start","end","cancel","interrupt"),_i=[],Ai=0,fn=3;function En(c,v,i,m,W,ce){var De=c.__transition;if(De){if(i in De)return}else c.__transition={};!function Ps(c,v,i){var W,m=c.__transition;function De(et){var gt,Dt,Pt,Ut;if(1!==i.state)return qe();for(gt in m)if((Ut=m[gt]).name===i.name){if(Ut.state===fn)return ii(De);4===Ut.state?(Ut.state=6,Ut.timer.stop(),Ut.on.call("interrupt",c,c.__data__,Ut.index,Ut.group),delete m[gt]):+gtAi)throw new Error("too late; already scheduled");return i}function An(c,v){var i=qn(c,v);if(i.state>fn)throw new Error("too late; already running");return i}function qn(c,v){var i=c.__transition;if(!i||!(i=i[v]))throw new Error("transition not found");return i}var xe,wr=180/Math.PI,lo={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(c,v,i,m,W,ce){var De,Ve,qe;return(De=Math.sqrt(c*c+v*v))&&(c/=De,v/=De),(qe=c*i+v*m)&&(i-=c*qe,m-=v*qe),(Ve=Math.sqrt(i*i+m*m))&&(i/=Ve,m/=Ve,qe/=Ve),c*m180?gt+=360:gt-et>180&&(et+=360),Pt.push({i:Dt.push(W(Dt)+"rotate(",null,m)-2,x:Go(et,gt)})):gt&&Dt.push(W(Dt)+"rotate("+gt+m)}(et.rotate,gt.rotate,Dt,Pt),function Ve(et,gt,Dt,Pt){et!==gt?Pt.push({i:Dt.push(W(Dt)+"skewX(",null,m)-2,x:Go(et,gt)}):gt&&Dt.push(W(Dt)+"skewX("+gt+m)}(et.skewX,gt.skewX,Dt,Pt),function qe(et,gt,Dt,Pt,Ut,Zt){if(et!==Dt||gt!==Pt){var hi=Ut.push(W(Ut)+"scale(",null,",",null,")");Zt.push({i:hi-4,x:Go(et,Dt)},{i:hi-2,x:Go(gt,Pt)})}else(1!==Dt||1!==Pt)&&Ut.push(W(Ut)+"scale("+Dt+","+Pt+")")}(et.scaleX,et.scaleY,gt.scaleX,gt.scaleY,Dt,Pt),et=gt=null,function(Ut){for(var Yt,Zt=-1,hi=Pt.length;++Zt=0&&(v=v.slice(0,i)),!v||"start"===v})}(v)?Zn:An;return function(){var De=ce(this,c),Ve=De.on;Ve!==m&&(W=(m=Ve).copy()).on(v,i),De.on=W}}(i,c,v))},attr:function Jn(c,v){var i=Ka(c),m="transform"===i?Ie:oi;return this.attrTween(c,"function"==typeof v?(i.local?nn:Cn)(i,m,ai(this,"attr."+c,v)):null==v?(i.local?qi:Pi)(i):(i.local?tn:Yi)(i,m,v))},attrTween:function Uo(c,v){var i="attr."+c;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==v)return this.tween(i,null);if("function"!=typeof v)throw new Error;var m=Ka(c);return this.tween(i,(m.local?cr:co)(m,v))},style:function rb(c,v,i){var m="transform"==(c+="")?ue:oi;return null==v?this.styleTween(c,function cg(c,v){var i,m,W;return function(){var ce=dc(this,c),De=(this.style.removeProperty(c),dc(this,c));return ce===De?null:ce===i&&De===m?W:W=v(i=ce,m=De)}}(c,m)).on("end.style."+c,Cc(c)):"function"==typeof v?this.styleTween(c,function nb(c,v,i){var m,W,ce;return function(){var De=dc(this,c),Ve=i(this),qe=Ve+"";return null==Ve&&(this.style.removeProperty(c),qe=Ve=dc(this,c)),De===qe?null:De===m&&qe===W?ce:(W=qe,ce=v(m=De,Ve))}}(c,m,ai(this,"style."+c,v))).each(function sb(c,v){var i,m,W,Ve,ce="style."+v,De="end."+ce;return function(){var qe=An(this,c),et=qe.on,gt=null==qe.value[ce]?Ve||(Ve=Cc(v)):void 0;(et!==i||W!==gt)&&(m=(i=et).copy()).on(De,W=gt),qe.on=m}}(this._id,c)):this.styleTween(c,function Op(c,v,i){var m,ce,W=i+"";return function(){var De=dc(this,c);return De===W?null:De===m?ce:ce=v(m=De,i)}}(c,m,v),i).on("end.style."+c,null)},styleTween:function Ew(c,v,i){var m="style."+(c+="");if(arguments.length<2)return(m=this.tween(m))&&m._value;if(null==v)return this.tween(m,null);if("function"!=typeof v)throw new Error;return this.tween(m,function Dw(c,v,i){var m,W;function ce(){var De=v.apply(this,arguments);return De!==W&&(m=(W=De)&&function Mw(c,v,i){return function(m){this.style.setProperty(c,v.call(this,m),i)}}(c,De,i)),m}return ce._value=v,ce}(c,v,i??""))},text:function Aw(c){return this.tween("text","function"==typeof c?function ym(c){return function(){var v=c(this);this.textContent=v??""}}(ai(this,"text",c)):function vm(c){return function(){this.textContent=c}}(null==c?"":c+""))},textTween:function hx(c){var v="text";if(arguments.length<1)return(v=this.tween(v))&&v._value;if(null==c)return this.tween(v,null);if("function"!=typeof c)throw new Error;return this.tween(v,function ob(c){var v,i;function m(){var W=c.apply(this,arguments);return W!==i&&(v=(i=W)&&function Iw(c){return function(v){this.textContent=c.call(this,v)}}(W)),v}return m._value=c,m}(c))},remove:function ib(){return this.on("end.remove",function rx(c){return function(){var v=this.parentNode;for(var i in this.__transition)if(+i!==c)return;v&&v.removeChild(this)}}(this._id))},tween:function zt(c,v){var i=this._id;if(c+="",arguments.length<2){for(var De,m=qn(this.node(),i).tween,W=0,ce=m.length;W2&&m.state<5,m.state=6,m.timer.stop(),m.on.call(W?"interrupt":"cancel",c,c.__data__,m.index,m.group),delete i[De]):ce=!1;ce&&delete c.__transition}}(this,c)})},Wl.prototype.transition=function gx(c){var v,i;c instanceof ch?(v=c._id,c=c._name):(v=xm(),(i=lb).time=je(),c=null==c?null:c+"");for(var m=this._groups,W=m.length,ce=0;cev?1:c>=v?0:NaN}function Rp(c,v){return null==c||null==v?NaN:vc?1:v>=c?0:NaN}function gg(c){let v,i,m;function W(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<0?et=Dt+1:gt=Dt}while(etNr(c(Ve),qe),m=(Ve,qe)=>c(Ve)-qe):(v=c===Nr||c===Rp?c:fb,i=c,m=c),{left:W,center:function De(Ve,qe,et=0,gt=Ve.length){const Dt=W(Ve,qe,et,gt-1);return Dt>et&&m(Ve[Dt-1],qe)>-m(Ve[Dt],qe)?Dt-1:Dt},right:function ce(Ve,qe,et=0,gt=Ve.length){if(et>>1;i(Ve[Dt],qe)<=0?et=Dt+1:gt=Dt}while(et=kx?10:ce>=gb?5:ce>=Mx?2:1;let Ve,qe,et;return W<0?(et=Math.pow(10,-W)/De,Ve=Math.round(c*et),qe=Math.round(v*et),Ve/etv&&--qe,et=-et):(et=Math.pow(10,W)*De,Ve=Math.round(c/et),qe=Math.round(v/et),Ve*etv&&--qe),qe(c(ce=new Date(+ce)),ce),W.ceil=ce=>(c(ce=new Date(ce-1)),v(ce,1),c(ce),ce),W.round=ce=>{const De=W(ce),Ve=W.ceil(ce);return ce-De(v(ce=new Date(+ce),null==De?1:Math.floor(De)),ce),W.range=(ce,De,Ve)=>{const qe=[];if(ce=W.ceil(ce),Ve=null==Ve?1:Math.floor(Ve),!(ce0))return qe;let et;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(etho(De=>{if(De>=De)for(;c(De),!ce(De);)De.setTime(De-1)},(De,Ve)=>{if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););}),i&&(W.count=(ce,De)=>(bb.setTime(+ce),vb.setTime(+De),c(bb),c(vb),Math.floor(i(bb,vb))),W.every=ce=>(ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?De=>m(De)%ce==0:De=>W.count(0,De)%ce==0):W:null)),W}const Tm=ho(()=>{},(c,v)=>{c.setTime(+c+v)},(c,v)=>v-c);Tm.every=c=>(c=Math.floor(c),isFinite(c)&&c>0?c>1?ho(v=>{v.setTime(Math.floor(v/c)*c)},(v,i)=>{v.setTime(+v+i*c)},(v,i)=>(i-v)/c):Tm:null);const vu=ho(c=>{c.setTime(c-c.getMilliseconds())},(c,v)=>{c.setTime(+c+v*uh)},(c,v)=>(v-c)/uh,c=>c.getUTCSeconds()),yu=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getMinutes()),km=ho(c=>{c.setUTCSeconds(0,0)},(c,v)=>{c.setTime(+c+v*Il)},(c,v)=>(v-c)/Il,c=>c.getUTCMinutes()),bg=ho(c=>{c.setTime(c-c.getMilliseconds()-c.getSeconds()*uh-c.getMinutes()*Il)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getHours()),Mm=ho(c=>{c.setUTCMinutes(0,0,0)},(c,v)=>{c.setTime(+c+v*ph)},(c,v)=>(v-c)/ph,c=>c.getUTCHours()),ha=ho(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-(v.getTimezoneOffset()-c.getTimezoneOffset())*Il)/Zl,c=>c.getDate()-1),xb=(ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>c.getUTCDate()-1),ho(c=>{c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCDate(c.getUTCDate()+v)},(c,v)=>(v-c)/Zl,c=>Math.floor(c/Zl)));function xu(c){return ho(v=>{v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},(v,i)=>{v.setDate(v.getDate()+7*i)},(v,i)=>(i-v-(i.getTimezoneOffset()-v.getTimezoneOffset())*Il)/mb)}const vg=xu(0);function zh(c){return ho(v=>{v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCDate(v.getUTCDate()+7*i)},(v,i)=>(i-v)/mb)}xu(1),xu(2),xu(3),xu(4),xu(5),xu(6);const Tb=zh(0),Om=(zh(1),zh(2),zh(3),zh(4),zh(5),zh(6),ho(c=>{c.setDate(1),c.setHours(0,0,0,0)},(c,v)=>{c.setMonth(c.getMonth()+v)},(c,v)=>v.getMonth()-c.getMonth()+12*(v.getFullYear()-c.getFullYear()),c=>c.getMonth())),zp=ho(c=>{c.setUTCDate(1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCMonth(c.getUTCMonth()+v)},(c,v)=>v.getUTCMonth()-c.getUTCMonth()+12*(v.getUTCFullYear()-c.getUTCFullYear()),c=>c.getUTCMonth()),Gp=ho(c=>{c.setMonth(0,1),c.setHours(0,0,0,0)},(c,v)=>{c.setFullYear(c.getFullYear()+v)},(c,v)=>v.getFullYear()-c.getFullYear(),c=>c.getFullYear());Gp.every=c=>isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},(v,i)=>{v.setFullYear(v.getFullYear()+i*c)}):null;const _g=ho(c=>{c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},(c,v)=>{c.setUTCFullYear(c.getUTCFullYear()+v)},(c,v)=>v.getUTCFullYear()-c.getUTCFullYear(),c=>c.getUTCFullYear());function Pm(c,v,i,m,W,ce){const De=[[vu,1,uh],[vu,5,5e3],[vu,15,15e3],[vu,30,3e4],[ce,1,Il],[ce,5,5*Il],[ce,15,15*Il],[ce,30,30*Il],[W,1,ph],[W,3,3*ph],[W,6,6*ph],[W,12,12*ph],[m,1,Zl],[m,2,2*Zl],[i,1,mb],[v,1,Ex],[v,3,3*Ex],[c,1,Fp]];function qe(et,gt,Dt){const Pt=Math.abs(gt-et)/Dt,Ut=gg(([,,Yt])=>Yt).right(De,Pt);if(Ut===De.length)return c.every(wm(et/Fp,gt/Fp,Dt));if(0===Ut)return Tm.every(Math.max(wm(et,gt,Dt),1));const[Zt,hi]=De[Pt/De[Ut-1][2]isFinite(c=Math.floor(c))&&c>0?ho(v=>{v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},(v,i)=>{v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null;const[Lm,Cg]=Pm(_g,zp,Tb,xb,Mm,km),[Db,Rm]=Pm(Gp,Om,vg,ha,bg,yu);var vd=new Date,wg=new Date;function ql(c,v,i,m){function W(ce){return c(ce=0===arguments.length?new Date:new Date(+ce)),ce}return W.floor=function(ce){return c(ce=new Date(+ce)),ce},W.ceil=function(ce){return c(ce=new Date(ce-1)),v(ce,1),c(ce),ce},W.round=function(ce){var De=W(ce),Ve=W.ceil(ce);return ce-De0))return qe;do{qe.push(et=new Date(+ce)),v(ce,Ve),c(ce)}while(et=De)for(;c(De),!ce(De);)De.setTime(De-1)},function(De,Ve){if(De>=De)if(Ve<0)for(;++Ve<=0;)for(;v(De,-1),!ce(De););else for(;--Ve>=0;)for(;v(De,1),!ce(De););})},i&&(W.count=function(ce,De){return vd.setTime(+ce),wg.setTime(+De),c(vd),c(wg),Math.floor(i(vd,wg))},W.every=function(ce){return ce=Math.floor(ce),isFinite(ce)&&ce>0?ce>1?W.filter(m?function(De){return m(De)%ce==0}:function(De){return W.count(0,De)%ce==0}):W:null}),W}const Hp=864e5,Eb=7*Hp;function Gh(c){return ql(function(v){v.setUTCDate(v.getUTCDate()-(v.getUTCDay()+7-c)%7),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCDate(v.getUTCDate()+7*i)},function(v,i){return(i-v)/Eb})}var In=Gh(0),Up=Gh(1),yd=(Gh(2),Gh(3),Gh(4));const jm=(Gh(5),Gh(6),ql(function(c){c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCDate(c.getUTCDate()+v)},function(c,v){return(v-c)/Hp},function(c){return c.getUTCDate()-1}));function xd(c){return ql(function(v){v.setDate(v.getDate()-(v.getDay()+7-c)%7),v.setHours(0,0,0,0)},function(v,i){v.setDate(v.getDate()+7*i)},function(v,i){return(i-v-6e4*(i.getTimezoneOffset()-v.getTimezoneOffset()))/Eb})}var Nb=xd(0),kg=xd(1),wu=(xd(2),xd(3),xd(4));const Mg=(xd(5),xd(6),ql(c=>c.setHours(0,0,0,0),(c,v)=>c.setDate(c.getDate()+v),(c,v)=>(v-c-6e4*(v.getTimezoneOffset()-c.getTimezoneOffset()))/Hp,c=>c.getDate()-1));var Vm=ql(function(c){c.setMonth(0,1),c.setHours(0,0,0,0)},function(c,v){c.setFullYear(c.getFullYear()+v)},function(c,v){return v.getFullYear()-c.getFullYear()},function(c){return c.getFullYear()});Vm.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setFullYear(Math.floor(v.getFullYear()/c)*c),v.setMonth(0,1),v.setHours(0,0,0,0)},function(v,i){v.setFullYear(v.getFullYear()+i*c)}):null};const $p=Vm;var Dg=ql(function(c){c.setUTCMonth(0,1),c.setUTCHours(0,0,0,0)},function(c,v){c.setUTCFullYear(c.getUTCFullYear()+v)},function(c,v){return v.getUTCFullYear()-c.getUTCFullYear()},function(c){return c.getUTCFullYear()});Dg.every=function(c){return isFinite(c=Math.floor(c))&&c>0?ql(function(v){v.setUTCFullYear(Math.floor(v.getUTCFullYear()/c)*c),v.setUTCMonth(0,1),v.setUTCHours(0,0,0,0)},function(v,i){v.setUTCFullYear(v.getUTCFullYear()+i*c)}):null};const Xp=Dg;function Yp(c){if(0<=c.y&&c.y<100){var v=new Date(-1,c.m,c.d,c.H,c.M,c.S,c.L);return v.setFullYear(c.y),v}return new Date(c.y,c.m,c.d,c.H,c.M,c.S,c.L)}function zm(c){if(0<=c.y&&c.y<100){var v=new Date(Date.UTC(-1,c.m,c.d,c.H,c.M,c.S,c.L));return v.setUTCFullYear(c.y),v}return new Date(Date.UTC(c.y,c.m,c.d,c.H,c.M,c.S,c.L))}function Kp(c,v,i){return{y:c,m:v,d:i,H:0,M:0,S:0,L:0}}var Bb={"-":"",_:" ",0:"0"},uo=/^\s*\d+/,Tc=/^%/,Gm=/[\\^$*+?|[\]().{}]/g;function ys(c,v,i){var m=c<0?"-":"",W=(m?-c:c)+"",ce=W.length;return m+(ce[v.toLowerCase(),i]))}function Eg(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.w=+m[0],i+m[0].length):-1}function Hm(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.u=+m[0],i+m[0].length):-1}function Xw(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.U=+m[0],i+m[0].length):-1}function jb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.V=+m[0],i+m[0].length):-1}function Vb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.W=+m[0],i+m[0].length):-1}function Um(c,v,i){var m=uo.exec(v.slice(i,i+4));return m?(c.y=+m[0],i+m[0].length):-1}function Zp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.y=+m[0]+(+m[0]>68?1900:2e3),i+m[0].length):-1}function Wm(c,v,i){var m=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(v.slice(i,i+6));return m?(c.Z=m[1]?0:-(m[2]+(m[3]||"00")),i+m[0].length):-1}function fh(c,v,i){var m=uo.exec(v.slice(i,i+1));return m?(c.q=3*m[0]-3,i+m[0].length):-1}function e_(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.m=m[0]-1,i+m[0].length):-1}function zb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.d=+m[0],i+m[0].length):-1}function $m(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.m=0,c.d=+m[0],i+m[0].length):-1}function Gb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.H=+m[0],i+m[0].length):-1}function qp(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.M=+m[0],i+m[0].length):-1}function Hb(c,v,i){var m=uo.exec(v.slice(i,i+2));return m?(c.S=+m[0],i+m[0].length):-1}function ku(c,v,i){var m=uo.exec(v.slice(i,i+3));return m?(c.L=+m[0],i+m[0].length):-1}function Qp(c,v,i){var m=uo.exec(v.slice(i,i+6));return m?(c.L=Math.floor(m[0]/1e3),i+m[0].length):-1}function Xm(c,v,i){var m=Tc.exec(v.slice(i,i+1));return m?i+m[0].length:-1}function Jp(c,v,i){var m=uo.exec(v.slice(i));return m?(c.Q=+m[0],i+m[0].length):-1}function Ub(c,v,i){var m=uo.exec(v.slice(i));return m?(c.s=+m[0],i+m[0].length):-1}function Ym(c,v){return ys(c.getDate(),v,2)}function t_(c,v){return ys(c.getHours(),v,2)}function i_(c,v){return ys(c.getHours()%12||12,v,2)}function n_(c,v){return ys(1+Mg.count($p(c),c),v,3)}function Wb(c,v){return ys(c.getMilliseconds(),v,3)}function s_(c,v){return Wb(c,v)+"000"}function r_(c,v){return ys(c.getMonth()+1,v,2)}function $b(c,v){return ys(c.getMinutes(),v,2)}function Xb(c,v){return ys(c.getSeconds(),v,2)}function Yb(c){var v=c.getDay();return 0===v?7:v}function Kb(c,v){return ys(Nb.count($p(c)-1,c),v,2)}function ef(c){var v=c.getDay();return v>=4||0===v?wu(c):wu.ceil(c)}function o_(c,v){return c=ef(c),ys(wu.count($p(c),c)+(4===$p(c).getDay()),v,2)}function Yw(c){return c.getDay()}function a_(c,v){return ys(kg.count($p(c)-1,c),v,2)}function l_(c,v){return ys(c.getFullYear()%100,v,2)}function Zb(c,v){return ys((c=ef(c)).getFullYear()%100,v,2)}function c_(c,v){return ys(c.getFullYear()%1e4,v,4)}function h_(c,v){var i=c.getDay();return ys((c=i>=4||0===i?wu(c):wu.ceil(c)).getFullYear()%1e4,v,4)}function qb(c){var v=c.getTimezoneOffset();return(v>0?"-":(v*=-1,"+"))+ys(v/60|0,"0",2)+ys(v%60,"0",2)}function Ag(c,v){return ys(c.getUTCDate(),v,2)}function Qb(c,v){return ys(c.getUTCHours(),v,2)}function tf(c,v){return ys(c.getUTCHours()%12||12,v,2)}function nf(c,v){return ys(1+jm.count(Xp(c),c),v,3)}function Mu(c,v){return ys(c.getUTCMilliseconds(),v,3)}function d_(c,v){return Mu(c,v)+"000"}function u_(c,v){return ys(c.getUTCMonth()+1,v,2)}function p_(c,v){return ys(c.getUTCMinutes(),v,2)}function Ig(c,v){return ys(c.getUTCSeconds(),v,2)}function Km(c){var v=c.getUTCDay();return 0===v?7:v}function f_(c,v){return ys(In.count(Xp(c)-1,c),v,2)}function g_(c){var v=c.getUTCDay();return v>=4||0===v?yd(c):yd.ceil(c)}function Kw(c,v){return c=g_(c),ys(yd.count(Xp(c),c)+(4===Xp(c).getUTCDay()),v,2)}function m_(c){return c.getUTCDay()}function b_(c,v){return ys(Up.count(Xp(c)-1,c),v,2)}function Zw(c,v){return ys(c.getUTCFullYear()%100,v,2)}function v_(c,v){return ys((c=g_(c)).getUTCFullYear()%100,v,2)}function qw(c,v){return ys(c.getUTCFullYear()%1e4,v,4)}function y_(c,v){var i=c.getUTCDay();return ys((c=i>=4||0===i?yd(c):yd.ceil(c)).getUTCFullYear()%1e4,v,4)}function x_(){return"+0000"}function Jb(){return"%"}function Og(c){return+c}function Du(c){return Math.floor(+c/1e3)}function Eu(c){return null===c?NaN:+c}!function __(c){(function Qx(c){var v=c.dateTime,i=c.date,m=c.time,W=c.periods,ce=c.days,De=c.shortDays,Ve=c.months,qe=c.shortMonths,et=Tu(W),gt=Su(W),Dt=Tu(ce),Pt=Su(ce),Ut=Tu(De),Zt=Su(De),hi=Tu(Ve),Yt=Su(Ve),di=Tu(qe),wi=Su(qe),gi={a:function Ei(Ii){return De[Ii.getDay()]},A:function ji(Ii){return ce[Ii.getDay()]},b:function Wi(Ii){return qe[Ii.getMonth()]},B:function Nn(Ii){return Ve[Ii.getMonth()]},c:null,d:Ym,e:Ym,f:s_,g:Zb,G:h_,H:t_,I:i_,j:n_,L:Wb,m:r_,M:$b,p:function ts(Ii){return W[+(Ii.getHours()>=12)]},q:function Wn(Ii){return 1+~~(Ii.getMonth()/3)},Q:Og,s:Du,S:Xb,u:Yb,U:Kb,V:o_,w:Yw,W:a_,x:null,X:null,y:l_,Y:c_,Z:qb,"%":Jb},ki={a:function Yr(Ii){return De[Ii.getUTCDay()]},A:function ds(Ii){return ce[Ii.getUTCDay()]},b:function Kr(Ii){return qe[Ii.getUTCMonth()]},B:function Ll(Ii){return Ve[Ii.getUTCMonth()]},c:null,d:Ag,e:Ag,f:d_,g:v_,G:y_,H:Qb,I:tf,j:nf,L:Mu,m:u_,M:p_,p:function is(Ii){return W[+(Ii.getUTCHours()>=12)]},q:function Zr(Ii){return 1+~~(Ii.getUTCMonth()/3)},Q:Og,s:Du,S:Ig,u:Km,U:f_,V:Kw,w:m_,W:b_,x:null,X:null,y:Zw,Y:qw,Z:x_,"%":Jb},Bi={a:function Ln(Ii,gn,Vn){var xi=Ut.exec(gn.slice(Vn));return xi?(Ii.w=Zt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},A:function Ui(Ii,gn,Vn){var xi=Dt.exec(gn.slice(Vn));return xi?(Ii.w=Pt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},b:function Un(Ii,gn,Vn){var xi=di.exec(gn.slice(Vn));return xi?(Ii.m=wi.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},B:function Ri(Ii,gn,Vn){var xi=hi.exec(gn.slice(Vn));return xi?(Ii.m=Yt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},c:function Ji(Ii,gn,Vn){return ln(Ii,v,gn,Vn)},d:zb,e:zb,f:Qp,g:Zp,G:Um,H:Gb,I:Gb,j:$m,L:ku,m:e_,M:qp,p:function ps(Ii,gn,Vn){var xi=et.exec(gn.slice(Vn));return xi?(Ii.p=gt.get(xi[0].toLowerCase()),Vn+xi[0].length):-1},q:fh,Q:Jp,s:Ub,S:Hb,u:Hm,U:Xw,V:jb,w:Eg,W:Vb,x:function Qs(Ii,gn,Vn){return ln(Ii,i,gn,Vn)},X:function yi(Ii,gn,Vn){return ln(Ii,m,gn,Vn)},y:Zp,Y:Um,Z:Wm,"%":Xm};function Mi(Ii,gn){return function(Vn){var Yo,mn,ur,xi=[],dr=-1,Es=0,Xo=Ii.length;for(Vn instanceof Date||(Vn=new Date(+Vn));++dr53)return null;"w"in xi||(xi.w=1),"Z"in xi?(Xo=(Es=zm(Kp(xi.y,0,1))).getUTCDay(),Es=Xo>4||0===Xo?Up.ceil(Es):Up(Es),Es=jm.offset(Es,7*(xi.V-1)),xi.y=Es.getUTCFullYear(),xi.m=Es.getUTCMonth(),xi.d=Es.getUTCDate()+(xi.w+6)%7):(Xo=(Es=Yp(Kp(xi.y,0,1))).getDay(),Es=Xo>4||0===Xo?kg.ceil(Es):kg(Es),Es=Mg.offset(Es,7*(xi.V-1)),xi.y=Es.getFullYear(),xi.m=Es.getMonth(),xi.d=Es.getDate()+(xi.w+6)%7)}else("W"in xi||"U"in xi)&&("w"in xi||(xi.w="u"in xi?xi.u%7:"W"in xi?1:0),Xo="Z"in xi?zm(Kp(xi.y,0,1)).getUTCDay():Yp(Kp(xi.y,0,1)).getDay(),xi.m=0,xi.d="W"in xi?(xi.w+6)%7+7*xi.W-(Xo+5)%7:xi.w+7*xi.U-(Xo+6)%7);return"Z"in xi?(xi.H+=xi.Z/100|0,xi.M+=xi.Z%100,zm(xi)):Yp(xi)}}function ln(Ii,gn,Vn,xi){for(var Yo,mn,dr=0,Es=gn.length,Xo=Vn.length;dr=Xo)return-1;if(37===(Yo=gn.charCodeAt(dr++))){if(Yo=gn.charAt(dr++),!(mn=Bi[Yo in Bb?gn.charAt(dr++):Yo])||(xi=mn(Ii,Vn,xi))<0)return-1}else if(Yo!=Vn.charCodeAt(xi++))return-1}return xi}return gi.x=Mi(i,gi),gi.X=Mi(m,gi),gi.c=Mi(v,gi),ki.x=Mi(i,ki),ki.X=Mi(m,ki),ki.c=Mi(v,ki),{format:function(Ii){var gn=Mi(Ii+="",gi);return gn.toString=function(){return Ii},gn},parse:function(Ii){var gn=an(Ii+="",!1);return gn.toString=function(){return Ii},gn},utcFormat:function(Ii){var gn=Mi(Ii+="",ki);return gn.toString=function(){return Ii},gn},utcParse:function(Ii){var gn=an(Ii+="",!0);return gn.toString=function(){return Ii},gn}}})(c)}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const nv=gg(Nr).right,sv=(gg(Eu),nv);function w_(c,v){return c=+c,v=+v,function(i){return Math.round(c*(1-i)+v*i)}}function S_(c){return+c}var rv=[0,1];function Uh(c){return c}function _d(c,v){return(v-=c=+c)?function(i){return(i-c)/v}:function T_(c){return function(){return c}}(isNaN(v)?NaN:.5)}function Pg(c,v,i){var m=c[0],W=c[1],ce=v[0],De=v[1];return Wv&&(i=c,c=v,v=i),function(m){return Math.max(c,Math.min(v,m))}}(c[0],c[Pt-1])),Ve=Pt>2?Lg:Pg,qe=et=null,Dt}function Dt(Pt){return null==Pt||isNaN(Pt=+Pt)?ce:(qe||(qe=Ve(c.map(m),v,i)))(m(De(Pt)))}return Dt.invert=function(Pt){return De(W((et||(et=Ve(v,c.map(m),Go)))(Pt)))},Dt.domain=function(Pt){return arguments.length?(c=Array.from(Pt,S_),gt()):c.slice()},Dt.range=function(Pt){return arguments.length?(v=Array.from(Pt),gt()):v.slice()},Dt.rangeRound=function(Pt){return v=Array.from(Pt),i=w_,gt()},Dt.clamp=function(Pt){return arguments.length?(De=!!Pt||Uh,gt()):De!==Uh},Dt.interpolate=function(Pt){return arguments.length?(i=Pt,gt()):i},Dt.unknown=function(Pt){return arguments.length?(ce=Pt,Dt):ce},function(Pt,Ut){return m=Pt,W=Ut,gt()}}()(Uh,Uh)}function Cd(c,v){switch(arguments.length){case 0:break;case 1:this.range(c);break;default:this.range(v).domain(c)}return this}var Qm,O_=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function gh(c){if(!(v=O_.exec(c)))throw new Error("invalid format: "+c);var v;return new Au({fill:v[1],align:v[2],sign:v[3],symbol:v[4],zero:v[5],width:v[6],comma:v[7],precision:v[8]&&v[8].slice(1),trim:v[9],type:v[10]})}function Au(c){this.fill=void 0===c.fill?" ":c.fill+"",this.align=void 0===c.align?">":c.align+"",this.sign=void 0===c.sign?"-":c.sign+"",this.symbol=void 0===c.symbol?"":c.symbol+"",this.zero=!!c.zero,this.width=void 0===c.width?void 0:+c.width,this.comma=!!c.comma,this.precision=void 0===c.precision?void 0:+c.precision,this.trim=!!c.trim,this.type=void 0===c.type?"":c.type+""}function af(c,v){if((i=(c=v?c.toExponential(v-1):c.toExponential()).indexOf("e"))<0)return null;var i,m=c.slice(0,i);return[m.length>1?m[0]+m.slice(2):m,+c.slice(i+1)]}function Iu(c){return(c=af(Math.abs(c)))?c[1]:NaN}function cv(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1];return W<0?"0."+new Array(-W).join("0")+m:m.length>W+1?m.slice(0,W+1)+"."+m.slice(W+1):m+new Array(W-m.length+2).join("0")}gh.prototype=Au.prototype,Au.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const hv={"%":(c,v)=>(100*c).toFixed(v),b:c=>Math.round(c).toString(2),c:c=>c+"",d:function P_(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)},e:(c,v)=>c.toExponential(v),f:(c,v)=>c.toFixed(v),g:(c,v)=>c.toPrecision(v),o:c=>Math.round(c).toString(8),p:(c,v)=>cv(100*c,v),r:cv,s:function R_(c,v){var i=af(c,v);if(!i)return c+"";var m=i[0],W=i[1],ce=W-(Qm=3*Math.max(-8,Math.min(8,Math.floor(W/3))))+1,De=m.length;return ce===De?m:ce>De?m+new Array(ce-De+1).join("0"):ce>0?m.slice(0,ce)+"."+m.slice(ce):"0."+new Array(1-ce).join("0")+af(c,Math.max(0,v+ce-1))[0]},X:c=>Math.round(c).toString(16).toUpperCase(),x:c=>Math.round(c).toString(16)};function Rg(c){return c}var cf,uv,N_,dv=Array.prototype.map,Jm=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function j_(c){var v=c.domain;return c.ticks=function(i){var m=v();return function Dx(c,v,i){if(!((i=+i)>0))return[];if((c=+c)==(v=+v))return[c];const m=v=W))return[];const Ve=ce-W+1,qe=new Array(Ve);if(m)if(De<0)for(let et=0;et0;){if((et=mg(De,Ve,i))===qe)return m[W]=De,m[ce]=Ve,v(m);if(et>0)De=Math.floor(De/et)*et,Ve=Math.ceil(Ve/et)*et;else{if(!(et<0))break;De=Math.ceil(De*et)/et,Ve=Math.floor(Ve*et)/et}qe=et}return c},c}function wd(){var c=ov();return c.copy=function(){return function M_(c,v){return v.domain(c.domain()).range(c.range()).interpolate(c.interpolate()).clamp(c.clamp()).unknown(c.unknown())}(c,wd())},Cd.apply(c,arguments),j_(c)}function t0(c,v,i){c=+c,v=+v,i=(W=arguments.length)<2?(v=c,c=0,1):W<3?1:+i;for(var m=-1,W=0|Math.max(0,Math.ceil((v-c)/i)),ce=new Array(W);++m0&&Ve>0&&(qe+Ve+1>m&&(Ve=Math.max(1,m-qe)),ce.push(i.substring(W-=Ve,W+Ve)),!((qe+=Ve+1)>m));)Ve=c[De=(De+1)%c.length];return ce.reverse().join(v)}}(dv.call(c.grouping,Number),c.thousands+""),i=void 0===c.currency?"":c.currency[0]+"",m=void 0===c.currency?"":c.currency[1]+"",W=void 0===c.decimal?".":c.decimal+"",ce=void 0===c.numerals?Rg:function L_(c){return function(v){return v.replace(/[0-9]/g,function(i){return c[+i]})}}(dv.call(c.numerals,String)),De=void 0===c.percent?"%":c.percent+"",Ve=void 0===c.minus?"\u2212":c.minus+"",qe=void 0===c.nan?"NaN":c.nan+"";function et(Dt){var Pt=(Dt=gh(Dt)).fill,Ut=Dt.align,Zt=Dt.sign,hi=Dt.symbol,Yt=Dt.zero,di=Dt.width,wi=Dt.comma,gi=Dt.precision,ki=Dt.trim,Bi=Dt.type;"n"===Bi?(wi=!0,Bi="g"):hv[Bi]||(void 0===gi&&(gi=12),ki=!0,Bi="g"),(Yt||"0"===Pt&&"="===Ut)&&(Yt=!0,Pt="0",Ut="=");var Mi="$"===hi?i:"#"===hi&&/[boxX]/.test(Bi)?"0"+Bi.toLowerCase():"",an="$"===hi?m:/[%p]/.test(Bi)?De:"",ln=hv[Bi],ps=/[defgprs%]/.test(Bi);function Ln(Ui){var Ji,Qs,yi,Un=Mi,Ri=an;if("c"===Bi)Ri=ln(Ui)+Ri,Ui="";else{var Ei=(Ui=+Ui)<0||1/Ui<0;if(Ui=isNaN(Ui)?qe:ln(Math.abs(Ui),gi),ki&&(Ui=function lf(c){e:for(var W,v=c.length,i=1,m=-1;i0&&(m=0)}return m>0?c.slice(0,m)+c.slice(W+1):c}(Ui)),Ei&&0==+Ui&&"+"!==Zt&&(Ei=!1),Un=(Ei?"("===Zt?Zt:Ve:"-"===Zt||"("===Zt?"":Zt)+Un,Ri=("s"===Bi?Jm[8+Qm/3]:"")+Ri+(Ei&&"("===Zt?")":""),ps)for(Ji=-1,Qs=Ui.length;++Ji(yi=Ui.charCodeAt(Ji))||yi>57){Ri=(46===yi?W+Ui.slice(Ji+1):Ui.slice(Ji))+Ri,Ui=Ui.slice(0,Ji);break}}wi&&!Yt&&(Ui=v(Ui,1/0));var ji=Un.length+Ui.length+Ri.length,Wi=ji>1)+Un+Ui+Ri+Wi.slice(ji);break;default:Ui=Wi+Un+Ui+Ri}return ce(Ui)}return gi=void 0===gi?6:/[gprs]/.test(Bi)?Math.max(1,Math.min(21,gi)):Math.max(0,Math.min(20,gi)),Ln.toString=function(){return Dt+""},Ln}return{format:et,formatPrefix:function gt(Dt,Pt){var Ut=et(((Dt=gh(Dt)).type="f",Dt)),Zt=3*Math.max(-8,Math.min(8,Math.floor(Iu(Pt)/3))),hi=Math.pow(10,-Zt),Yt=Jm[8+Zt/3];return function(di){return Ut(hi*di)+Yt}}}}(c),uv=cf.format,N_=cf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});class n0 extends Map{constructor(v,i=r0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:i}}),null!=v)for(const[m,W]of v)this.set(m,W)}get(v){return super.get(s0(this,v))}has(v){return super.has(s0(this,v))}set(v,i){return super.set(function pv({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):(c.set(m,i),i)}(this,v),i)}delete(v){return super.delete(function Wh({_intern:c,_key:v},i){const m=v(i);return c.has(m)&&(i=c.get(m),c.delete(m)),i}(this,v))}}function s0({_intern:c,_key:v},i){const m=v(i);return c.has(m)?c.get(m):i}function r0(c){return null!==c&&"object"==typeof c?c.valueOf():c}Set;const Ng=Symbol("implicit");function o0(){var c=new n0,v=[],i=[],m=Ng;function W(ce){let De=c.get(ce);if(void 0===De){if(m!==Ng)return m;c.set(ce,De=v.push(ce)-1)}return i[De%i.length]}return W.domain=function(ce){if(!arguments.length)return v.slice();v=[],c=new n0;for(const De of ce)c.has(De)||c.set(De,v.push(De)-1);return W},W.range=function(ce){return arguments.length?(i=Array.from(ce),W):i.slice()},W.unknown=function(ce){return arguments.length?(m=ce,W):m},W.copy=function(){return o0(v,i).unknown(m)},Cd.apply(W,arguments),W}function Fg(){var ce,De,c=o0().unknown(void 0),v=c.domain,i=c.range,m=0,W=1,Ve=!1,qe=0,et=0,gt=.5;function Dt(){var Pt=v().length,Ut=W=1)return+i(c[m-1],m-1,c);var m,W=(m-1)*v,ce=Math.floor(W),De=+i(c[ce],ce,c);return De+(+i(c[ce+1],ce+1,c)-De)*(W-ce)}}function hf(){var m,c=[],v=[],i=[];function W(){var De=0,Ve=Math.max(1,v.length);for(i=new Array(Ve-1);++De0?i[Ve-1]:c[0],Ve=1?df:c<=-1?-df:Math.asin(c)}const kd=Math.PI,h0=2*kd,Md=1e-6,G_=h0-Md;function mv(c){this._+=c[0];for(let v=1,i=c.length;v=0))throw new Error(`invalid digits: ${c}`);if(v>15)return mv;const i=10**v;return function(m){this._+=m[0];for(let W=1,ce=m.length;WMd)if(Math.abs(Dt*qe-et*gt)>Md&&ce){let Ut=m-De,Zt=W-Ve,hi=qe*qe+et*et,Yt=Ut*Ut+Zt*Zt,di=Math.sqrt(hi),wi=Math.sqrt(Pt),gi=ce*Math.tan((kd-Math.acos((hi+Pt-Yt)/(2*di*wi)))/2),ki=gi/wi,Bi=gi/di;Math.abs(ki-1)>Md&&this._append`L${v+ki*gt},${i+ki*Dt}`,this._append`A${ce},${ce},0,0,${+(Dt*Ut>gt*Zt)},${this._x1=v+Bi*qe},${this._y1=i+Bi*et}`}else this._append`L${this._x1=v},${this._y1=i}`}arc(v,i,m,W,ce,De){if(v=+v,i=+i,De=!!De,(m=+m)<0)throw new Error(`negative radius: ${m}`);let Ve=m*Math.cos(W),qe=m*Math.sin(W),et=v+Ve,gt=i+qe,Dt=1^De,Pt=De?W-ce:ce-W;null===this._x1?this._append`M${et},${gt}`:(Math.abs(this._x1-et)>Md||Math.abs(this._y1-gt)>Md)&&this._append`L${et},${gt}`,m&&(Pt<0&&(Pt=Pt%h0+h0),Pt>G_?this._append`A${m},${m},0,1,${Dt},${v-Ve},${i-qe}A${m},${m},0,1,${Dt},${this._x1=et},${this._y1=gt}`:Pt>Md&&this._append`A${m},${m},0,${+(Pt>=kd)},${Dt},${this._x1=v+m*Math.cos(ce)},${this._y1=i+m*Math.sin(ce)}`)}rect(v,i,m,W){this._append`M${this._x0=this._x1=+v},${this._y0=this._y1=+i}h${m=+m}v${+W}h${-m}Z`}toString(){return this._}}function W_(c){return c.innerRadius}function $_(c){return c.outerRadius}function bv(c){return c.startAngle}function vv(c){return c.endAngle}function d0(c){return c&&c.padAngle}function Gg(c,v,i,m,W,ce,De){var Ve=c-i,qe=v-m,et=(De?ce:-ce)/kc(Ve*Ve+qe*qe),gt=et*qe,Dt=-et*Ve,Pt=c+gt,Ut=v+Dt,Zt=i+gt,hi=m+Dt,Yt=(Pt+Zt)/2,di=(Ut+hi)/2,wi=Zt-Pt,gi=hi-Ut,ki=wi*wi+gi*gi,Bi=W-ce,Mi=Pt*hi-Zt*Ut,an=(gi<0?-1:1)*kc(c0(0,Bi*Bi*ki-Mi*Mi)),ln=(Mi*gi-wi*an)/ki,ps=(-Mi*wi-gi*an)/ki,Ln=(Mi*gi+wi*an)/ki,Ui=(-Mi*wi+gi*an)/ki,Un=ln-Yt,Ri=ps-di,Ji=Ln-Yt,Qs=Ui-di;return Un*Un+Ri*Ri>Ji*Ji+Qs*Qs&&(ln=Ln,ps=Ui),{cx:ln,cy:ps,x01:-gt,y01:-Dt,x11:ln*(W/Bi-1),y11:ps*(W/Bi-1)}}function Hg(){var c=W_,v=$_,i=Wo(0),m=null,W=bv,ce=vv,De=d0,Ve=null,qe=function zg(c){let v=3;return c.digits=function(i){if(!arguments.length)return v;if(null==i)v=null;else{const m=Math.floor(i);if(!(m>=0))throw new RangeError(`invalid digits: ${i}`);v=m}return c},()=>new Vg(v)}(et);function et(){var gt,Dt,Pt=+c.apply(this,arguments),Ut=+v.apply(this,arguments),Zt=W.apply(this,arguments)-df,hi=ce.apply(this,arguments)-df,Yt=Ou(hi-Zt),di=hi>Zt;if(Ve||(Ve=gt=qe()),UtJa)if(Yt>uf-Ja)Ve.moveTo(Ut*Sd(Zt),Ut*So(Zt)),Ve.arc(0,0,Ut,Zt,hi,!di),Pt>Ja&&(Ve.moveTo(Pt*Sd(hi),Pt*So(hi)),Ve.arc(0,0,Pt,hi,Zt,di));else{var Ri,Ji,wi=Zt,gi=hi,ki=Zt,Bi=hi,Mi=Yt,an=Yt,ln=De.apply(this,arguments)/2,ps=ln>Ja&&(m?+m.apply(this,arguments):kc(Pt*Pt+Ut*Ut)),Ln=jg(Ou(Ut-Pt)/2,+i.apply(this,arguments)),Ui=Ln,Un=Ln;if(ps>Ja){var Qs=gv(ps/Pt*So(ln)),yi=gv(ps/Ut*So(ln));(Mi-=2*Qs)>Ja?(ki+=Qs*=di?1:-1,Bi-=Qs):(Mi=0,ki=Bi=(Zt+hi)/2),(an-=2*yi)>Ja?(wi+=yi*=di?1:-1,gi-=yi):(an=0,wi=gi=(Zt+hi)/2)}var Ei=Ut*Sd(wi),ji=Ut*So(wi),Wi=Pt*Sd(Bi),Nn=Pt*So(Bi);if(Ln>Ja){var Kr,ts=Ut*Sd(gi),Wn=Ut*So(gi),Yr=Pt*Sd(ki),ds=Pt*So(ki);if(Yt<$h)if(Kr=function yv(c,v,i,m,W,ce,De,Ve){var qe=i-c,et=m-v,gt=De-W,Dt=Ve-ce,Pt=Dt*qe-gt*et;if(!(Pt*Pt1?0:c<-1?$h:Math.acos(c)}((Ll*Zr+is*Ii)/(kc(Ll*Ll+is*is)*kc(Zr*Zr+Ii*Ii)))/2),Vn=kc(Kr[0]*Kr[0]+Kr[1]*Kr[1]);Ui=jg(Ln,(Pt-Vn)/(gn-1)),Un=jg(Ln,(Ut-Vn)/(gn+1))}else Ui=Un=0}an>Ja?Un>Ja?(Ri=Gg(Yr,ds,Ei,ji,Ut,Un,di),Ji=Gg(ts,Wn,Wi,Nn,Ut,Un,di),Ve.moveTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),UnJa&&Mi>Ja?Ui>Ja?(Ri=Gg(Wi,Nn,ts,Wn,Pt,-Ui,di),Ji=Gg(Ei,ji,Yr,ds,Pt,-Ui,di),Ve.lineTo(Ri.cx+Ri.x01,Ri.cy+Ri.y01),Uic?1:v>=c?0:NaN}function X_(c){return c}var u0=He(76021);const p0=["caretElm"],wv=c=>({model:c});function f0(c,v){}function g0(c,v){if(1&c&&(e.j41(0,"span"),e.DNE(1,f0,0,0,"ng-template",5),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",i.template)("ngTemplateOutletContext",e.eq3(2,wv,i.context))}}function Z_(c,v){if(1&c&&e.nrm(0,"span",6),2&c){const i=e.XpG();e.Y8G("innerHTML",i.title,e.npT)}}function q_(c,v){if(1&c&&(e.j41(0,"header",4)(1,"span",5),e.EFF(2),e.k0s()()),2&c){const i=e.XpG();e.R7$(2),e.JRh(i.title)}}function Q_(c,v){if(1&c){const i=e.RV6();e.j41(0,"li",6)(1,"ngx-charts-legend-entry",7),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.labelClick.emit(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("label",i.label)("formattedLabel",i.formattedLabel)("color",i.color)("isActive",m.isActive(i))}}const Tv=["*"];function Sv(c,v){if(1&c&&e.nrm(0,"ngx-charts-scale-legend",4),2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("valueRange",i.legendOptions.domain)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)}}function m0(c,v){if(1&c){const i=e.RV6();e.j41(0,"ngx-charts-legend",5),e.bIt("labelClick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelClick.emit(W))})("labelActivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelActivate.emit(W))})("labelDeactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.legendLabelDeactivate.emit(W))}),e.k0s()}if(2&c){const i=e.XpG();e.Y8G("horizontal",i.legendOptions&&i.legendOptions.position===i.LegendPosition.Below)("data",i.legendOptions.domain)("title",i.legendOptions.title)("colors",i.legendOptions.colors)("height",i.view[1])("width",i.legendWidth)("activeEntries",i.activeEntries)}}const d1=["ngx-charts-svg-radial-gradient",""];function fT(c,v){if(1&c&&(e.qSk(),e.nrm(0,"stop")),2&c){const i=v.$implicit;e.xc7("stop-color",i.color)("stop-opacity",i.opacity),e.BMQ("offset",i.offset+"%")}}const f1=["ngx-charts-count-up",""];function Vv(c,v){if(1&c&&e.nrm(0,"div",7),2&c){const i=e.XpG();e.Y8G("countTo",i.roundedTotal)("valueFormatting",i.valueFormatting)}}function mT(c,v){if(1&c&&(e.j41(0,"div",8),e.EFF(1),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.SpI(" ",i.valueFormatting?i.valueFormatting(i.roundedTotal):i.defaultValueFormatting(i.roundedTotal)," ")}}function m1(c,v){if(1&c&&e.nrm(0,"div",16),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("countTo",i._value)("valueFormatting",m.valueFormatting)}}function zv(c,v){if(1&c&&(e.j41(0,"div",17),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit,m=e.XpG();e.R7$(),e.SpI(" ",m.valueFormatting?m.valueFormatting(i.value):m.defaultValueFormatting(i.value)," ")}}function v0(c,v){if(1&c&&e.nrm(0,"div",18),2&c){const i=e.XpG().$implicit;e.Y8G("countTo",i.percentage)("countSuffix","%")}}function b1(c,v){if(1&c&&(e.j41(0,"div",19),e.EFF(1),e.k0s()),2&c){const i=e.XpG().$implicit;e.R7$(),e.SpI("",i.percentage.toLocaleString(),"%")}}function v1(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",9),e.bIt("mouseenter",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.activate.emit(W.data))})("mouseleave",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.deactivate.emit(W.data))})("click",function(){const W=e.eBV(i).$implicit,ce=e.XpG();return e.Njj(ce.select.emit(W.data))}),e.nrm(1,"div",10),e.DNE(2,m1,1,2,"div",11)(3,zv,2,1,"div",12),e.j41(4,"div",13),e.EFF(5),e.k0s(),e.DNE(6,v0,1,2,"div",14)(7,b1,2,1,"div",15),e.k0s()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.xc7("border-left-color",i.color),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.JRh(i.displayLabel),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations)}}const y1=["tooltipTemplate"],ff=(c,v)=>[c,v],sy=["ngx-charts-pie-label",""],Bu=["ngx-charts-pie-arc",""];function ju(c,v){if(1&c&&(e.qSk(),e.j41(0,"defs"),e.nrm(1,"g",3),e.k0s()),2&c){const i=e.XpG();e.R7$(),e.Y8G("color",i.fill)("name",i.radialGradientId)("startOpacity",i.startOpacity)}}const Vu=["ngx-charts-pie-series",""];function zu(c,v){if(1&c&&(e.qSk(),e.nrm(0,"g",3)),2&c){const i=e.XpG().$implicit,m=e.XpG();e.Y8G("data",i)("radius",m.outerRadius)("color",m.color(i))("label",m.labelText(i))("labelTrim",m.trimLabels)("labelTrimSize",m.maxLabelLength)("max",m.max)("value",i.value)("explodeSlices",m.explodeSlices)("animations",m.animations)}}function Gu(c,v){if(1&c){const i=e.RV6();e.qSk(),e.j41(0,"g"),e.DNE(1,zu,1,10,"g",1),e.j41(2,"g",2),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.onClick(W))})("activate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.activate.emit(W))})("deactivate",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.deactivate.emit(W))})("dblclick",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.dblclick.emit(W))}),e.k0s()()}if(2&c){const i=v.$implicit,m=e.XpG();e.R7$(),e.Y8G("ngIf",m.labelVisible(i)),e.R7$(),e.Y8G("startAngle",i.startAngle)("endAngle",i.endAngle)("innerRadius",m.innerRadius)("outerRadius",m.outerRadius)("fill",m.color(i))("value",i.data.value)("gradient",m.gradient)("data",i.data)("max",m.max)("explodeSlices",m.explodeSlices)("isActive",m.isActive(i.data))("animate",m.animations)("tooltipDisabled",m.tooltipDisabled)("tooltipPlacement",m.placementTypes.Top)("tooltipType",m.styleTypes.tooltip)("tooltipTitle",m.getTooltipTitle(i))("tooltipTemplate",m.tooltipTemplate)("tooltipContext",i.data)}}function my(c,v,i){i=i||{};let m,W,ce,De=null,Ve=0;function qe(){Ve=!1===i.leading?0:+new Date,De=null,ce=c.apply(m,W)}return function(){const et=+new Date;!Ve&&!1===i.leading&&(Ve=et);const gt=v-(et-Ve);return m=this,W=arguments,gt<=0?(clearTimeout(De),De=null,Ve=et,ce=c.apply(m,W)):!De&&!1!==i.trailing&&(De=setTimeout(qe,gt)),ce}}function dS(c,v){return function(m,W,ce){return{configurable:!0,enumerable:ce.enumerable,get:function(){return Object.defineProperty(this,W,{configurable:!0,enumerable:ce.enumerable,value:my(ce.value,c,v)}),this[W]}}}}var Hn=function(c){return c.Top="top",c.Bottom="bottom",c.Left="left",c.Right="right",c.Center="center",c}(Hn||{});function qg(c,v,i){return i===Hn.Top?c.top-7:i===Hn.Bottom?c.top+c.height-v.height+7:i===Hn.Center?c.top+c.height/2-v.height/2:void 0}function Qg(c,v,i){return i===Hn.Left?c.left-7:i===Hn.Right?c.left+c.width-v.width+7:i===Hn.Center?c.left+c.width/2-v.width/2:void 0}class hr{static calculateVerticalAlignment(v,i,m){let W=qg(v,i,m);return W+i.height>window.innerHeight&&(W=window.innerHeight-i.height),W}static calculateVerticalCaret(v,i,m,W){let ce;W===Hn.Top&&(ce=v.height/2-m.height/2+7),W===Hn.Bottom&&(ce=i.height-v.height/2-m.height/2-7),W===Hn.Center&&(ce=i.height/2-m.height/2);const De=qg(v,i,W);return De+i.height>window.innerHeight&&(ce+=De+i.height-window.innerHeight),ce}static calculateHorizontalAlignment(v,i,m){let W=Qg(v,i,m);return W+i.width>window.innerWidth&&(W=window.innerWidth-i.width),W}static calculateHorizontalCaret(v,i,m,W){let ce;W===Hn.Left&&(ce=v.width/2-m.width/2+7),W===Hn.Right&&(ce=i.width-v.width/2-m.width/2-7),W===Hn.Center&&(ce=i.width/2-m.width/2);const De=Qg(v,i,W);return De+i.width>window.innerWidth&&(ce+=De+i.width-window.innerWidth),ce}static shouldFlip(v,i,m,W){let ce=!1;return m===Hn.Right&&v.left+v.width+i.width+W>window.innerWidth&&(ce=!0),m===Hn.Left&&v.left-i.width-W<0&&(ce=!0),m===Hn.Top&&v.top-i.height-W<0&&(ce=!0),m===Hn.Bottom&&v.top+v.height+i.height+W>window.innerHeight&&(ce=!0),ce}static positionCaret(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=-7,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Left?(Ve=i.width,De=hr.calculateVerticalCaret(m,i,W,ce)):v===Hn.Top?(De=i.height,Ve=hr.calculateHorizontalCaret(m,i,W,ce)):v===Hn.Bottom&&(De=-7,Ve=hr.calculateHorizontalCaret(m,i,W,ce)),{top:De,left:Ve}}static positionContent(v,i,m,W,ce){let De=0,Ve=0;return v===Hn.Right?(Ve=m.left+m.width+W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Left?(Ve=m.left-i.width-W,De=hr.calculateVerticalAlignment(m,i,ce)):v===Hn.Top?(De=m.top-i.height-W,Ve=hr.calculateHorizontalAlignment(m,i,ce)):v===Hn.Bottom&&(De=m.top+m.height+W,Ve=hr.calculateHorizontalAlignment(m,i,ce)),{top:De,left:Ve}}static determinePlacement(v,i,m,W){if(hr.shouldFlip(m,i,v,W)){if(v===Hn.Right)return Hn.Left;if(v===Hn.Left)return Hn.Right;if(v===Hn.Top)return Hn.Bottom;if(v===Hn.Bottom)return Hn.Top}return v}}let rC=(()=>{class c{constructor(i,m,W){this.element=i,this.renderer=m,this.platformId=W}get cssClasses(){let i="ngx-charts-tooltip-content";return i+=` position-${this.placement}`,i+=` type-${this.type}`,i+=` ${this.cssClass}`,i}ngAfterViewInit(){setTimeout(this.position.bind(this))}position(){if(!(0,Zi.UE)(this.platformId))return;const i=this.element.nativeElement,m=this.host.nativeElement.getBoundingClientRect();if(!m.height&&!m.width)return;const W=i.getBoundingClientRect();this.checkFlip(m,W),this.positionContent(i,m,W),this.showCaret&&this.positionCaret(m,W),setTimeout(()=>this.renderer.addClass(i,"animate"),1)}positionContent(i,m,W){const{top:ce,left:De}=hr.positionContent(this.placement,W,m,this.spacing,this.alignment);this.renderer.setStyle(i,"top",`${ce}px`),this.renderer.setStyle(i,"left",`${De}px`)}positionCaret(i,m){const W=this.caretElm.nativeElement,ce=W.getBoundingClientRect(),{top:De,left:Ve}=hr.positionCaret(this.placement,m,i,ce,this.alignment);this.renderer.setStyle(W,"top",`${De}px`),this.renderer.setStyle(W,"left",`${Ve}px`)}checkFlip(i,m){this.placement=hr.determinePlacement(this.placement,m,i,this.spacing)}onWindowResize(){this.position()}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-tooltip-content"]],viewQuery:function(i,m){if(1&i&&e.GBs(p0,5),2&i){let W;e.mGM(W=e.lsd())&&(m.caretElm=W.first)}},hostVars:2,hostBindings:function(i,m){1&i&&e.bIt("resize",function(){return m.onWindowResize()},!1,e.tSv),2&i&&e.HbH(m.cssClasses)},inputs:{host:"host",showCaret:"showCaret",type:"type",placement:"placement",alignment:"alignment",spacing:"spacing",cssClass:"cssClass",title:"title",template:"template",context:"context"},decls:6,vars:6,consts:[["caretElm",""],[3,"hidden"],[1,"tooltip-content"],[4,"ngIf"],[3,"innerHTML",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"innerHTML"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.nrm(1,"span",1,0),e.j41(3,"div",2),e.DNE(4,g0,2,4,"span",3)(5,Z_,1,1,"span",4),e.k0s()()),2&i&&(e.R7$(),e.ZvI("tooltip-caret position-",m.placement,""),e.Y8G("hidden",!m.showCaret),e.R7$(3),e.Y8G("ngIf",!m.title),e.R7$(),e.Y8G("ngIf",m.title))},dependencies:[Zi.bT,Zi.T3],styles:[".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\n"],encapsulation:2}),(0,We.Cg)([dS(100)],c.prototype,"onWindowResize",null),c})();class by{constructor(v){this.injectionService=v,this.defaults={},this.components=new Map}getByType(v=this.type){return this.components.get(v)}create(v){return this.createByType(this.type,v)}createByType(v,i){i=this.assignDefaults(i);const m=this.injectComponent(v,i);return this.register(v,m),m}destroy(v){const i=this.components.get(v.componentType);if(i&&i.length){const m=i.indexOf(v);m>-1&&(i[m].destroy(),i.splice(m,1))}}destroyAll(){this.destroyByType(this.type)}destroyByType(v){const i=this.components.get(v);if(i&&i.length){let m=i.length-1;for(;m>=0;)this.destroy(i[m--])}}injectComponent(v,i){return this.injectionService.appendComponent(v,i)}assignDefaults(v){const i={...this.defaults.inputs},m={...this.defaults.outputs};return!v.inputs&&!v.outputs&&(v={inputs:v}),i&&(v.inputs={...i,...v.inputs}),m&&(v.outputs={...m,...v.outputs}),v}register(v,i){this.components.has(v)||this.components.set(v,[]),this.components.get(v).push(i)}}let Pl=(()=>{class c{constructor(i,m,W){this.applicationRef=i,this.componentFactoryResolver=m,this.injector=W}static setGlobalRootViewContainer(i){c.globalRootViewContainer=i}getRootViewContainer(){if(this._container)return this._container;if(c.globalRootViewContainer)return c.globalRootViewContainer;if(this.applicationRef.components.length)return this.applicationRef.components[0];throw new Error("View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.")}setRootViewContainer(i){this._container=i}getComponentRootNode(i){return function Dc(c){return c.element}(i)?i.element.nativeElement:i.hostView&&i.hostView.rootNodes.length>0?i.hostView.rootNodes[0]:i.location.nativeElement}getRootViewContainerNode(i){return this.getComponentRootNode(i)}projectComponentBindings(i,m){if(m){if(void 0!==m.inputs){const W=Object.getOwnPropertyNames(m.inputs);for(const ce of W)i.instance[ce]=m.inputs[ce]}if(void 0!==m.outputs){const W=Object.getOwnPropertyNames(m.outputs);for(const ce of W)i.instance[ce]=m.outputs[ce]}}return i}appendComponent(i,m={},W){W||(W=this.getRootViewContainer());const ce=this.getComponentRootNode(W),De=new cc(ce,this.componentFactoryResolver,this.applicationRef,this.injector),Ve=new Dn(i),qe=De.attach(Ve);return this.projectComponentBindings(qe,m),qe}}return c.globalRootViewContainer=null,c.\u0275fac=function(i){return new(i||c)(e.KVO(e.o8S),e.KVO(e.OM3),e.KVO(e.zZn))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})(),el=(()=>{class c extends by{constructor(i){super(i),this.type=rC}}return c.\u0275fac=function(i){return new(i||c)(e.KVO(Pl))},c.\u0275prov=e.jDH({token:c,factory:c.\u0275fac}),c})();var Od=function(c){return c.Right="right",c.Below="below",c}(Od||{}),Uu=function(c){return c.ScaleLegend="scaleLegend",c.Legend="legend",c}(Uu||{}),wn=function(c){return c.Time="time",c.Linear="linear",c.Ordinal="ordinal",c.Quantile="quantile",c}(wn||{});let vy=(()=>{class c{constructor(){this.horizontal=!1}ngOnChanges(i){const m=this.gradientString(this.colors.range(),this.colors.domain());this.gradient=`linear-gradient(to ${this.horizontal?"right":"bottom"}, ${m})`}gradientString(i,m){m.push(1);const W=[];return i.reverse().forEach((ce,De)=>{W.push(`${ce} ${Math.round(100*m[De])}%`)}),W.join(", ")}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-scale-legend"]],inputs:{valueRange:"valueRange",colors:"colors",height:"height",width:"width",horizontal:"horizontal"},features:[e.OA$],decls:8,vars:10,consts:[[1,"scale-legend"],[1,"scale-legend-label"],[1,"scale-legend-wrap"]],template:function(i,m){1&i&&(e.j41(0,"div",0)(1,"div",1)(2,"span"),e.EFF(3),e.k0s()(),e.nrm(4,"div",2),e.j41(5,"div",1)(6,"span"),e.EFF(7),e.k0s()()()),2&i&&(e.xc7("height",m.horizontal?void 0:m.height,"px")("width",m.width,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(3),e.JRh(m.valueRange[1].toLocaleString()),e.R7$(),e.xc7("background",m.gradient),e.R7$(3),e.JRh(m.valueRange[0].toLocaleString()))},styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\n"],encapsulation:2,changeDetection:0}),c})();function Df(c){return c instanceof Date?c.toLocaleDateString():c.toLocaleString()}let Jg=(()=>{class c{constructor(){this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.toggle=new e.bkB}get trimmedLabel(){return this.formattedLabel||"(empty)"}onMouseEnter(){this.activate.emit({name:this.label})}onMouseLeave(){this.deactivate.emit({name:this.label})}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend-entry"]],hostBindings:function(i,m){1&i&&e.bIt("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()})},inputs:{color:"color",label:"label",formattedLabel:"formattedLabel",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",toggle:"toggle"},decls:4,vars:6,consts:[["tabindex","-1",3,"click","title"],[1,"legend-label-color",3,"click"],[1,"legend-label-text"]],template:function(i,m){1&i&&(e.j41(0,"span",0),e.bIt("click",function(){return m.select.emit(m.formattedLabel)}),e.j41(1,"span",1),e.bIt("click",function(){return m.toggle.emit(m.formattedLabel)}),e.k0s(),e.j41(2,"span",2),e.EFF(3),e.k0s()()),2&i&&(e.AVh("active",m.isActive),e.Y8G("title",m.formattedLabel),e.R7$(),e.xc7("background-color",m.color),e.R7$(2),e.SpI(" ",m.trimmedLabel," "))},encapsulation:2,changeDetection:0}),c})(),Wu=(()=>{class c{constructor(i){this.cd=i,this.horizontal=!1,this.labelClick=new e.bkB,this.labelActivate=new e.bkB,this.labelDeactivate=new e.bkB,this.legendEntries=[]}ngOnChanges(i){this.update()}update(){this.cd.markForCheck(),this.legendEntries=this.getLegendEntries()}getLegendEntries(){const i=[];for(const m of this.data){const W=Df(m);-1===i.findIndex(De=>De.label===W)&&i.push({label:m,formattedLabel:W,color:this.colors.getColor(m)})}return i}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.label===W.name)}activate(i){this.labelActivate.emit(i)}deactivate(i){this.labelDeactivate.emit(i)}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc))},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-legend"]],inputs:{data:"data",title:"title",colors:"colors",height:"height",width:"width",activeEntries:"activeEntries",horizontal:"horizontal"},outputs:{labelClick:"labelClick",labelActivate:"labelActivate",labelDeactivate:"labelDeactivate"},features:[e.OA$],decls:5,vars:9,consts:[["class","legend-title",4,"ngIf"],[1,"legend-wrap"],[1,"legend-labels"],["class","legend-label",4,"ngFor","ngForOf","ngForTrackBy"],[1,"legend-title"],[1,"legend-title-text"],[1,"legend-label"],[3,"select","activate","deactivate","label","formattedLabel","color","isActive"]],template:function(i,m){1&i&&(e.j41(0,"div"),e.DNE(1,q_,3,1,"header",0),e.j41(2,"div",1)(3,"ul",2),e.DNE(4,Q_,2,4,"li",3),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",(null==m.title?null:m.title.length)>0),e.R7$(2),e.xc7("max-height",m.height-45,"px"),e.AVh("horizontal-legend",m.horizontal),e.R7$(),e.Y8G("ngForOf",m.legendEntries)("ngForTrackBy",m.trackBy))},dependencies:[Jg,Zi.bT,Zi.Sq],styles:[".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"],encapsulation:2,changeDetection:0}),c})(),yy=(()=>{class c{constructor(){this.showLegend=!1,this.animations=!0,this.legendLabelClick=new e.bkB,this.legendLabelActivate=new e.bkB,this.legendLabelDeactivate=new e.bkB,this.LegendPosition=Od,this.LegendType=Uu}ngOnChanges(i){this.update()}update(){let i=0;this.showLegend&&(this.legendType=this.getLegendType(),(!this.legendOptions||this.legendOptions.position===Od.Right)&&(i=this.legendType===Uu.ScaleLegend?1:2)),this.chartWidth=Math.floor(this.view[0]*(12-i)/12),this.legendWidth=this.legendOptions&&this.legendOptions.position!==Od.Right?this.chartWidth:Math.floor(this.view[0]*i/12)}getLegendType(){return this.legendOptions.scaleType===wn.Linear?Uu.ScaleLegend:Uu.Legend}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-chart"]],inputs:{view:"view",showLegend:"showLegend",legendOptions:"legendOptions",legendType:"legendType",activeEntries:"activeEntries",animations:"animations"},outputs:{legendLabelClick:"legendLabelClick",legendLabelActivate:"legendLabelActivate",legendLabelDeactivate:"legendLabelDeactivate"},features:[e.Jv_([el]),e.OA$],ngContentSelectors:Tv,decls:5,vars:8,consts:[[1,"ngx-charts-outer"],[1,"ngx-charts"],["class","chart-legend",3,"horizontal","valueRange","colors","height","width",4,"ngIf"],["class","chart-legend",3,"horizontal","data","title","colors","height","width","activeEntries","labelClick","labelActivate","labelDeactivate",4,"ngIf"],[1,"chart-legend",3,"horizontal","valueRange","colors","height","width"],[1,"chart-legend",3,"labelClick","labelActivate","labelDeactivate","horizontal","data","title","colors","height","width","activeEntries"]],template:function(i,m){1&i&&(e.NAR(),e.j41(0,"div",0),e.qSk(),e.j41(1,"svg",1),e.SdG(2),e.k0s(),e.DNE(3,Sv,1,5,"ngx-charts-scale-legend",2)(4,m0,1,7,"ngx-charts-legend",3),e.k0s()),2&i&&(e.xc7("width",m.view[0],"px")("height",m.view[1],"px"),e.R7$(),e.BMQ("width",m.chartWidth)("height",m.view[1]),e.R7$(2),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.ScaleLegend),e.R7$(),e.Y8G("ngIf",m.showLegend&&m.legendType===m.LegendType.Legend))},dependencies:[vy,Wu,Zi.bT],encapsulation:2,changeDetection:0}),c})(),xy=(()=>{class c{constructor(i,m){this.element=i,this.zone=m,this.visible=new e.bkB,this.isVisible=!1,this.runCheck()}destroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const i=()=>{if(!this.element)return;const{offsetHeight:m,offsetWidth:W}=this.element.nativeElement;m&&W?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i(),100)}))};this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>i())})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi))},c.\u0275dir=e.FsC({type:c,selectors:[["visibility-observer"]],outputs:{visible:"visible"}}),c})();function _y(c){return"[object Date]"===toString.call(c)}let I0=(()=>{class c{constructor(i,m,W,ce){this.chartElement=i,this.zone=m,this.cd=W,this.platformId=ce,this.scheme="cool",this.schemeType=wn.Ordinal,this.animations=!0,this.select=new e.bkB}ngOnInit(){(0,Zi.Vy)(this.platformId)&&(this.animations=!1)}ngAfterViewInit(){this.bindWindowResizeEvent(),this.visibilityObserver=new xy(this.chartElement,this.zone),this.visibilityObserver.visible.subscribe(this.update.bind(this))}ngOnDestroy(){this.unbindEvents(),this.visibilityObserver&&(this.visibilityObserver.visible.unsubscribe(),this.visibilityObserver.destroy())}ngOnChanges(i){this.update()}update(){if(this.results=this.results?this.cloneData(this.results):[],this.view)this.width=this.view[0],this.height=this.view[1];else{const i=this.getContainerDims();i&&(this.width=i.width,this.height=i.height)}this.width||(this.width=600),this.height||(this.height=400),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this.cd&&this.cd.markForCheck()}getContainerDims(){let i,m;const W=this.chartElement.nativeElement;if((0,Zi.UE)(this.platformId)&&null!==W.parentNode){const ce=W.parentNode.getBoundingClientRect();i=ce.width,m=ce.height}return i&&m?{width:i,height:m}:null}formatDates(){for(let i=0;i{this.update(),this.cd&&this.cd.markForCheck()});this.resizeSubscription=m}cloneData(i){const m=[];for(const W of i){const ce={};if(void 0!==W.name&&(ce.name=W.name),void 0!==W.value&&(ce.value=W.value),void 0!==W.series){ce.series=[];for(const De of W.series){const Ve=Object.assign({},De);ce.series.push(Ve)}}void 0!==W.extra&&(ce.extra=JSON.parse(JSON.stringify(W.extra))),void 0!==W.source&&(ce.source=W.source),void 0!==W.target&&(ce.target=W.target),m.push(ce)}return m}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(e.gRc),e.rXU(e.Agw))},c.\u0275cmp=e.VBU({type:c,selectors:[["base-chart"]],inputs:{results:"results",view:"view",scheme:"scheme",schemeType:"schemeType",customColors:"customColors",animations:"animations"},outputs:{select:"select"},features:[e.OA$],decls:1,vars:0,template:function(i,m){1&i&&e.nrm(0,"div")},encapsulation:2}),c})();function wy(c,v=16){return"string"!=typeof c?"number"==typeof c?c+"":"":(c=c.trim()).length<=v?c:`${c.slice(0,v)}...`}var P0=function(c){return c.Start="start",c.Middle="middle",c.End="end",c}(P0||{});let Ty=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD]]}),c})();var Ef=function(c){return c.popover="popover",c.tooltip="tooltip",c}(Ef||{}),$u=function(c){return c[c.all="all"]="all",c[c.focus="focus"]="focus",c[c.mouseover="mouseover"]="mouseover",c}($u||{});let L0=(()=>{class c{constructor(i,m,W){this.tooltipService=i,this.viewContainerRef=m,this.renderer=W,this.tooltipCssClass="",this.tooltipAppendToBody=!0,this.tooltipSpacing=10,this.tooltipDisabled=!1,this.tooltipShowCaret=!0,this.tooltipPlacement=Hn.Top,this.tooltipAlignment=Hn.Center,this.tooltipType=Ef.popover,this.tooltipCloseOnClickOutside=!0,this.tooltipCloseOnMouseLeave=!0,this.tooltipHideTimeout=300,this.tooltipShowTimeout=100,this.tooltipShowEvent=$u.all,this.tooltipImmediateExit=!1,this.show=new e.bkB,this.hide=new e.bkB}get listensForFocus(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.focus}get listensForHover(){return this.tooltipShowEvent===$u.all||this.tooltipShowEvent===$u.mouseover}ngOnDestroy(){this.hideTooltip(!0)}onFocus(){this.listensForFocus&&this.showTooltip()}onBlur(){this.listensForFocus&&this.hideTooltip(!0)}onMouseEnter(){this.listensForHover&&this.showTooltip()}onMouseLeave(i){if(this.listensForHover&&this.tooltipCloseOnMouseLeave){if(clearTimeout(this.timeout),this.component&&this.component.instance.element.nativeElement.contains(i))return;this.hideTooltip(this.tooltipImmediateExit)}}onMouseClick(){this.listensForHover&&this.hideTooltip(!0)}showTooltip(i){if(this.component||this.tooltipDisabled)return;const m=i?0:this.tooltipShowTimeout+(navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)?400:0);clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.tooltipService.destroyAll();const W=this.createBoundOptions();this.component=this.tooltipService.create(W),setTimeout(()=>{this.component&&this.addHideListeners(this.component.instance.element.nativeElement)},10),this.show.emit(!0)},m)}addHideListeners(i){this.mouseEnterContentEvent=this.renderer.listen(i,"mouseenter",()=>{clearTimeout(this.timeout)}),this.tooltipCloseOnMouseLeave&&(this.mouseLeaveContentEvent=this.renderer.listen(i,"mouseleave",()=>{this.hideTooltip(this.tooltipImmediateExit)})),this.tooltipCloseOnClickOutside&&(this.documentClickEvent=this.renderer.listen("window","click",m=>{i.contains(m.target)||this.hideTooltip()}))}hideTooltip(i=!1){if(!this.component)return;const m=()=>{this.mouseLeaveContentEvent&&this.mouseLeaveContentEvent(),this.mouseEnterContentEvent&&this.mouseEnterContentEvent(),this.documentClickEvent&&this.documentClickEvent(),this.hide.emit(!0),this.tooltipService.destroy(this.component),this.component=void 0};clearTimeout(this.timeout),i?m():this.timeout=setTimeout(m,this.tooltipHideTimeout)}createBoundOptions(){return{title:this.tooltipTitle,template:this.tooltipTemplate,host:this.viewContainerRef.element,placement:this.tooltipPlacement,alignment:this.tooltipAlignment,type:this.tooltipType,showCaret:this.tooltipShowCaret,cssClass:this.tooltipCssClass,spacing:this.tooltipSpacing,context:this.tooltipContext}}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(el),e.rXU(e.c1b),e.rXU(e.sFG))},c.\u0275dir=e.FsC({type:c,selectors:[["","ngx-tooltip",""]],hostBindings:function(i,m){1&i&&e.bIt("focusin",function(){return m.onFocus()})("blur",function(){return m.onBlur()})("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(ce){return m.onMouseLeave(ce.target)})("click",function(){return m.onMouseClick()})},inputs:{tooltipCssClass:"tooltipCssClass",tooltipTitle:"tooltipTitle",tooltipAppendToBody:"tooltipAppendToBody",tooltipSpacing:"tooltipSpacing",tooltipDisabled:"tooltipDisabled",tooltipShowCaret:"tooltipShowCaret",tooltipPlacement:"tooltipPlacement",tooltipAlignment:"tooltipAlignment",tooltipType:"tooltipType",tooltipCloseOnClickOutside:"tooltipCloseOnClickOutside",tooltipCloseOnMouseLeave:"tooltipCloseOnMouseLeave",tooltipHideTimeout:"tooltipHideTimeout",tooltipShowTimeout:"tooltipShowTimeout",tooltipTemplate:"tooltipTemplate",tooltipShowEvent:"tooltipShowEvent",tooltipContext:"tooltipContext",tooltipImmediateExit:"tooltipImmediateExit"},outputs:{show:"show",hide:"hide"}}),c})(),em=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({providers:[Pl,el],imports:[[Zi.MD]]}),c})();const Sy={};function Pd(){let c=("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4);return c=`a${c}`,Sy[c]?Pd():(Sy[c]=!0,c)}var Ec=function(c){return c.Vertical="vertical",c.Horizontal="horizontal",c}(Ec||{});let N0=(()=>{class c{constructor(){this.endOpacity=1,this.cx=0,this.cy=0}get stops(){return this.stopsInput||this.stopsDefault}set stops(i){this.stopsInput=i}ngOnChanges(i){this.r="30%",("color"in i||"startOpacity"in i||"endOpacity"in i)&&(this.stopsDefault=[{offset:0,color:this.color,opacity:this.startOpacity},{offset:100,color:this.color,opacity:this.endOpacity}])}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-svg-radial-gradient",""]],inputs:{color:"color",name:"name",startOpacity:"startOpacity",endOpacity:"endOpacity",cx:"cx",cy:"cy",stops:"stops"},features:[e.OA$],attrs:d1,decls:2,vars:5,consts:[["gradientUnits","userSpaceOnUse",3,"id"],[3,"stop-color","stop-opacity",4,"ngFor","ngForOf"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"radialGradient",0),e.DNE(1,fT,1,5,"stop",1),e.k0s()),2&i&&(e.Y8G("id",m.name),e.BMQ("cx",m.cx)("cy",m.cy)("r",m.r),e.R7$(),e.Y8G("ngForOf",m.stops))},dependencies:[Zi.Sq],encapsulation:2,changeDetection:0}),c})();function F0(c,v,i,m){return i*(1-Math.pow(2,-10*c/m))*1024/1023+v}function B0(c,v,i,m,W){const ce=Number(c),De=Number(v),Ve=ce>De,qe=Math.max(0,i),et=Math.pow(10,qe),gt=1e3*Number(m);let Dt;function Pt(Ut){let Zt;const hi=Ut-Dt;Zt=Ve?ce-F0(hi,0,ce-De,gt):F0(hi,ce,De-ce,gt),Zt=Ve?ZtDe?De:Zt,Zt=Math.round(Zt*et)/et;const Yt=hiPt(di))}return requestAnimationFrame(Ut=>(Dt=Ut,Pt(Ut)))}let Of,My=(()=>{class c{constructor(i,m){this.cd=i,this.countDuration=1,this.countPrefix="",this.countSuffix="",this.countChange=new e.bkB,this.countFinish=new e.bkB,this.value="",this._countDecimals=0,this._countTo=0,this._countFrom=0,this.nativeElement=m.nativeElement}set countDecimals(i){this._countDecimals=i}get countDecimals(){return this._countDecimals?this._countDecimals:function dC(c){const v=Number(c);return v%1!=0&&Math.abs(v)<=10?2:0}(this.countTo)}set countTo(i){this._countTo=parseFloat(i),this.start()}get countTo(){return this._countTo}set countFrom(i){this._countFrom=parseFloat(i),this.start()}get countFrom(){return this._countFrom}ngOnDestroy(){cancelAnimationFrame(this.animationReq)}start(){cancelAnimationFrame(this.animationReq);const i=this.valueFormatting||(W=>`${this.countPrefix}${W.toLocaleString()}${this.countSuffix}`);this.animationReq=B0(this.countFrom,this.countTo,this.countDecimals,this.countDuration,({value:W,progress:ce,finished:De})=>{this.value=i(W),this.cd.markForCheck(),De||this.countChange.emit({value:this.value,progress:ce}),De&&this.countFinish.emit({value:this.value,progress:ce})})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.gRc),e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["","ngx-charts-count-up",""]],inputs:{countDuration:"countDuration",countPrefix:"countPrefix",countSuffix:"countSuffix",valueFormatting:"valueFormatting",countDecimals:"countDecimals",countTo:"countTo",countFrom:"countFrom"},outputs:{countChange:"countChange",countFinish:"countFinish"},attrs:f1,decls:1,vars:1,template:function(i,m){1&i&&e.EFF(0),2&i&&e.SpI(" ",m.value," ")},encapsulation:2}),c})();typeof window<"u"?Of=window:typeof global<"u"&&(Of=global);let V0=(()=>{class c{constructor(){this.label="Total",this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.legendItems=[],this.labelFormatting=i=>i,this.percentageFormatting=i=>i,this.defaultValueFormatting=i=>i.toLocaleString()}ngOnChanges(i){this.update()}getTotal(){return this.data.map(i=>Number(i.value)).reduce((i,m)=>i+m,0)}update(){this.total=this.getTotal(),this.roundedTotal=this.total,this.legendItems=this.getLegendItems()}getLegendItems(){return this.data.map(i=>{const m=Df(i.name),W=i.value,ce=this.colors.getColor(m),De=this.total>0?W/this.total*100:0,Ve="function"==typeof this.labelFormatting?this.labelFormatting(m):m;return{_value:W,data:i,value:W,color:ce,label:Ve,displayLabel:wy(Ve,20),origialLabel:i.name,percentage:this.percentageFormatting?this.percentageFormatting(De):De.toLocaleString()}})}trackBy(i,m){return m.label}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-legend"]],inputs:{width:"width",data:"data",colors:"colors",label:"label",animations:"animations",valueFormatting:"valueFormatting",labelFormatting:"labelFormatting",percentageFormatting:"percentageFormatting"},outputs:{select:"select",activate:"activate",deactivate:"deactivate"},features:[e.OA$],decls:8,vars:7,consts:[[1,"advanced-pie-legend"],["class","total-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","total-value",4,"ngIf"],[1,"total-label"],[1,"legend-items-container"],[1,"legend-items"],["tabindex","-1","class","legend-item",3,"mouseenter","mouseleave","click",4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-count-up","",1,"total-value",3,"countTo","valueFormatting"],[1,"total-value"],["tabindex","-1",1,"legend-item",3,"mouseenter","mouseleave","click"],[1,"item-color"],["class","item-value","ngx-charts-count-up","",3,"countTo","valueFormatting",4,"ngIf"],["class","item-value",4,"ngIf"],[1,"item-label"],["class","item-percent","ngx-charts-count-up","",3,"countTo","countSuffix",4,"ngIf"],["class","item-percent",4,"ngIf"],["ngx-charts-count-up","",1,"item-value",3,"countTo","valueFormatting"],[1,"item-value"],["ngx-charts-count-up","",1,"item-percent",3,"countTo","countSuffix"],[1,"item-percent"]],template:function(i,m){1&i&&(e.j41(0,"div",0),e.DNE(1,Vv,1,2,"div",1)(2,mT,2,1,"div",2),e.j41(3,"div",3),e.EFF(4),e.k0s(),e.j41(5,"div",4)(6,"div",5),e.DNE(7,v1,8,7,"div",6),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px"),e.R7$(),e.Y8G("ngIf",m.animations),e.R7$(),e.Y8G("ngIf",!m.animations),e.R7$(2),e.SpI(" ",m.label," "),e.R7$(3),e.Y8G("ngForOf",m.legendItems)("ngForTrackBy",m.trackBy))},dependencies:[My,Zi.bT,Zi.Sq],styles:[".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\n"],encapsulation:2,changeDetection:0}),c})(),tl=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[Zi.MD,Ty,em],Zi.MD,Ty,em]}),c})();const Pf=[{name:"vivid",selectable:!0,group:wn.Ordinal,domain:["#647c8a","#3f51b5","#2196f3","#00b862","#afdf0a","#a7b61a","#f3e562","#ff9800","#ff5722","#ff4514"]},{name:"natural",selectable:!0,group:wn.Ordinal,domain:["#bf9d76","#e99450","#d89f59","#f2dfa7","#a5d7c6","#7794b1","#afafaf","#707160","#ba9383","#d9d5c3"]},{name:"cool",selectable:!0,group:wn.Ordinal,domain:["#a8385d","#7aa3e5","#a27ea8","#aae3f5","#adcded","#a95963","#8796c0","#7ed3ed","#50abcc","#ad6886"]},{name:"fire",selectable:!0,group:wn.Ordinal,domain:["#ff3d00","#bf360c","#ff8f00","#ff6f00","#ff5722","#e65100","#ffca28","#ffab00"]},{name:"solar",selectable:!0,group:wn.Linear,domain:["#fff8e1","#ffecb3","#ffe082","#ffd54f","#ffca28","#ffc107","#ffb300","#ffa000","#ff8f00","#ff6f00"]},{name:"air",selectable:!0,group:wn.Linear,domain:["#e1f5fe","#b3e5fc","#81d4fa","#4fc3f7","#29b6f6","#03a9f4","#039be5","#0288d1","#0277bd","#01579b"]},{name:"aqua",selectable:!0,group:wn.Linear,domain:["#e0f7fa","#b2ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7","#00838f","#006064"]},{name:"flame",selectable:!1,group:wn.Ordinal,domain:["#A10A28","#D3342D","#EF6D49","#FAAD67","#FDDE90","#DBED91","#A9D770","#6CBA67","#2C9653","#146738"]},{name:"ocean",selectable:!1,group:wn.Ordinal,domain:["#1D68FB","#33C0FC","#4AFFFE","#AFFFFF","#FFFC63","#FDBD2D","#FC8A25","#FA4F1E","#FA141B","#BA38D1"]},{name:"forest",selectable:!1,group:wn.Ordinal,domain:["#55C22D","#C1F33D","#3CC099","#AFFFFF","#8CFC9D","#76CFFA","#BA60FB","#EE6490","#C42A1C","#FC9F32"]},{name:"horizon",selectable:!1,group:wn.Ordinal,domain:["#2597FB","#65EBFD","#99FDD0","#FCEE4B","#FEFCFA","#FDD6E3","#FCB1A8","#EF6F7B","#CB96E8","#EFDEE0"]},{name:"neons",selectable:!1,group:wn.Ordinal,domain:["#FF3333","#FF33FF","#CC33FF","#0000FF","#33CCFF","#33FFFF","#33FF66","#CCFF33","#FFCC00","#FF6600"]},{name:"picnic",selectable:!1,group:wn.Ordinal,domain:["#FAC51D","#66BD6D","#FAA026","#29BB9C","#E96B56","#55ACD2","#B7332F","#2C83C9","#9166B8","#92E7E8"]},{name:"night",selectable:!1,group:wn.Ordinal,domain:["#2B1B5A","#501356","#183356","#28203F","#391B3C","#1E2B3C","#120634","#2D0432","#051932","#453080","#75267D","#2C507D","#4B3880","#752F7D","#35547D"]},{name:"nightLights",selectable:!1,group:wn.Ordinal,domain:["#4e31a5","#9c25a7","#3065ab","#57468b","#904497","#46648b","#32118d","#a00fb3","#1052a2","#6e51bd","#b63cc3","#6c97cb","#8671c1","#b455be","#7496c3"]}];class nm{constructor(v,i,m,W){"string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),this.colorDomain=v.domain,this.scaleType=i,this.domain=m,this.customColors=W,this.scale=this.generateColorScheme(v,i,this.domain)}generateColorScheme(v,i,m){let W;switch("string"==typeof v&&(v=Pf.find(ce=>ce.name===v)),i){case wn.Quantile:W=hf().range(v.domain).domain(m);break;case wn.Ordinal:W=o0().range(v.domain).domain(m);break;case wn.Linear:{const ce=[...v.domain];1===ce.length&&(ce.push(ce[0]),this.colorDomain=ce);const De=t0(0,1,1/ce.length);W=wd().range(ce).domain(De)}}return W}getColor(v){if(null==v)throw new Error("Value can not be null");if(this.scaleType===wn.Linear){const i=wd().domain(this.domain).range([0,1]);return this.scale(i(v))}{if("function"==typeof this.customColors)return this.customColors(v);const i=v.toString();let m;return this.customColors&&this.customColors.length>0&&(m=this.customColors.find(W=>W.name.toLowerCase()===i.toLowerCase())),m?m.value:this.scale(v)}}getLinearGradientStops(v,i){void 0===i&&(i=this.domain[0]);const m=wd().domain(this.domain).range([0,1]),W=Fg().domain(this.colorDomain).range([0,1]),ce=this.getColor(v),De=m(i),Ve=this.getColor(i),qe=m(v);let et=1,gt=De;const Dt=[];for(Dt.push({color:Ve,offset:De,originalOffset:De,opacity:1});gt=(qe-W.bandwidth()).toFixed(4))break;Dt.push({color:Pt,offset:Ut,opacity:1}),gt=Ut,et++}}if(Dt[Dt.length-1].offset<100&&Dt.push({color:ce,offset:qe,opacity:1}),qe===De)Dt[0].offset=0,Dt[1].offset=100;else if(100!==Dt[Dt.length-1].offset)for(const Pt of Dt)Pt.offset=(Pt.offset-De)/(qe-De)*100;return Dt}}let Ku=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),da=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})();u0();let Py=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),_C=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),CC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),W0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),SC=(()=>{class c{constructor(i){this.platformId=i,this.animations=!0,this.labelTrim=!0,this.labelTrimSize=10,this.trimLabel=wy}ngOnChanges(i){this.setTransforms(),this.update()}setTransforms(){if((0,Zi.Vy)(this.platformId))this.styleTransform=`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=`translate(${this.textX},${this.textY})`,this.textTransition=this.animations?"transform 0.75s":null;else{const i=/(edge|msie|trident)/i.test(navigator.userAgent);this.styleTransform=i?null:`translate3d(${this.textX}px,${this.textY}px, 0)`,this.attrTransform=i?`translate(${this.textX},${this.textY})`:null,this.textTransition=i||!this.animations?null:"transform 0.75s"}}update(){let i=this.radius;this.explodeSlices&&(i=this.radius*this.value/this.max);const W=Hg().innerRadius(i).outerRadius(i).centroid(this.data);let ce=this.data.pos[1]/W[1];(0===this.data.pos[1]||0===W[1])&&(ce=1),this.line=`M${W}L${[ce*W[0],ce*W[1]]}L${this.data.pos}`}get textX(){return this.data.pos[0]}get textY(){return this.data.pos[1]}textAnchor(){return this.midAngle(this.data){class c{constructor(i){this.startAngle=0,this.endAngle=2*Math.PI,this.cornerRadius=0,this.explodeSlices=!1,this.gradient=!1,this.animate=!0,this.pointerEvents=!0,this.isActive=!1,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.barOrientation=Ec,this.initialized=!1,this.element=i.nativeElement}ngOnChanges(i){this.update()}getGradient(){return this.gradient?this.gradientFill:this.fill}getPointerEvents(){return this.pointerEvents?"auto":"none"}update(){const i=this.calculateArc();this.startOpacity=.5,this.radialGradientId="linearGrad"+Pd().toString(),this.gradientFill=`url(#${this.radialGradientId})`,this.animate?this.initialized?this.updateAnimation():(this.loadAnimation(),this.initialized=!0):this.path=i.startAngle(this.startAngle).endAngle(this.endAngle)()}calculateArc(){let i=this.outerRadius;return this.explodeSlices&&0===this.innerRadius&&(i=this.outerRadius*this.value/this.max),Hg().innerRadius(this.innerRadius).outerRadius(i).cornerRadius(this.cornerRadius)}loadAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().attrTween("d",function(W){this._current=this._current||W;const ce=Object.assign({},W);ce.endAngle=ce.startAngle;const De=qa(ce,ce);return this._current=De(0),function(Ve){return m(De(Ve))}}).transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}updateAnimation(){const i=Cr(this.element).selectAll(".arc").data([{startAngle:this.startAngle,endAngle:this.endAngle}]),m=this.calculateArc();i.transition().duration(750).attrTween("d",function(W){this._current=this._current||W;const ce=qa(this._current,W);return this._current=ce(0),function(De){return m(ce(De))}})}onClick(){clearTimeout(this._timeout),this._timeout=setTimeout(()=>this.select.emit(this.data),200)}onDblClick(i){i.preventDefault(),i.stopPropagation(),clearTimeout(this._timeout),this.dblclick.emit({data:this.data,nativeEvent:i})}}return c.\u0275fac=function(i){return new(i||c)(e.rXU(e.aKT))},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-arc",""]],inputs:{fill:"fill",startAngle:"startAngle",endAngle:"endAngle",innerRadius:"innerRadius",outerRadius:"outerRadius",cornerRadius:"cornerRadius",value:"value",max:"max",data:"data",explodeSlices:"explodeSlices",gradient:"gradient",animate:"animate",pointerEvents:"pointerEvents",isActive:"isActive"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Bu,decls:3,vars:7,consts:[[1,"arc-group"],[4,"ngIf"],[1,"arc",3,"click","dblclick","mouseenter","mouseleave"],["ngx-charts-svg-radial-gradient","",3,"color","name","startOpacity"]],template:function(i,m){1&i&&(e.qSk(),e.j41(0,"g",0),e.DNE(1,ju,2,3,"defs",1),e.j41(2,"path",2),e.bIt("click",function(){return m.onClick()})("dblclick",function(ce){return m.onDblClick(ce)})("mouseenter",function(){return m.activate.emit(m.data)})("mouseleave",function(){return m.deactivate.emit(m.data)}),e.k0s()()),2&i&&(e.R7$(),e.Y8G("ngIf",m.gradient),e.R7$(),e.xc7("pointer-events",m.getPointerEvents()),e.AVh("active",m.isActive),e.BMQ("d",m.path)("fill",m.getGradient()))},dependencies:[N0,Zi.bT],encapsulation:2,changeDetection:0}),c})(),Ly=(()=>{class c{constructor(){this.series=[],this.innerRadius=60,this.outerRadius=80,this.trimLabels=!0,this.maxLabelLength=10,this.tooltipDisabled=!1,this.animations=!0,this.select=new e.bkB,this.activate=new e.bkB,this.deactivate=new e.bkB,this.dblclick=new e.bkB,this.placementTypes=Hn,this.styleTypes=Ef}ngOnChanges(i){this.update()}update(){const m=function Y_(){var c=X_,v=Cv,i=null,m=Wo(0),W=Wo(uf),ce=Wo(0);function De(Ve){var qe,gt,Dt,di,ki,et=(Ve=function _v(c){return"object"==typeof c&&"length"in c?c:Array.from(c)}(Ve)).length,Pt=0,Ut=new Array(et),Zt=new Array(et),hi=+m.apply(this,arguments),Yt=Math.min(uf,Math.max(-uf,W.apply(this,arguments)-hi)),wi=Math.min(Math.abs(Yt)/et,ce.apply(this,arguments)),gi=wi*(Yt<0?-1:1);for(qe=0;qe0&&(Pt+=ki);for(null!=v?Ut.sort(function(Bi,Mi){return v(Zt[Bi],Zt[Mi])}):null!=i&&Ut.sort(function(Bi,Mi){return i(Ve[Bi],Ve[Mi])}),qe=0,Dt=Pt?(Yt-et*gi)/Pt:0;qe0?ki*Dt:0)+gi,padAngle:wi};return Zt}return De.value=function(Ve){return arguments.length?(c="function"==typeof Ve?Ve:Wo(+Ve),De):c},De.sortValues=function(Ve){return arguments.length?(v=Ve,i=null,De):v},De.sort=function(Ve){return arguments.length?(i=Ve,v=null,De):i},De.startAngle=function(Ve){return arguments.length?(m="function"==typeof Ve?Ve:Wo(+Ve),De):m},De.endAngle=function(Ve){return arguments.length?(W="function"==typeof Ve?Ve:Wo(+Ve),De):W},De.padAngle=function(Ve){return arguments.length?(ce="function"==typeof Ve?Ve:Wo(+Ve),De):ce},De}().value(W=>W.value).sort(null)(this.series);this.max=function K_(c,v){let i;if(void 0===v)for(const m of c)null!=m&&(i=m)&&(i=m);else{let m=-1;for(let W of c)null!=(W=v(W,++m,c))&&(i=W)&&(i=W)}return i}(m,W=>W.value),this.data=this.calculateLabelPositions(m),this.tooltipText=this.tooltipText||this.defaultTooltipText}midAngle(i){return i.startAngle+(i.endAngle-i.startAngle)/2}outerArc(){return Hg().innerRadius(1.5*this.outerRadius).outerRadius(1.5*this.outerRadius)}calculateLabelPositions(i){const ce=i;ce.forEach(De=>{De.pos=this.outerArc().centroid(De),De.pos[0]=1.5*this.outerRadius*(this.midAngle(De)0){const gt=10-Math.abs(et.pos[1]-Ve.pos[1]);gt>0&&(et.pos[1]+=Math.sign(et.pos[0])*gt)}}}return ce}labelVisible(i){return this.showLabels&&i.endAngle-i.startAngle>Math.PI/30}getTooltipTitle(i){return this.tooltipTemplate?void 0:this.tooltipText(i)}labelText(i){return this.labelFormatting?this.labelFormatting(i.data.name):this.label(i)}label(i){return Df(i.data.name)}defaultTooltipText(i){const m=this.label(i),W=Df(i.data.value);return`\n ${function A0(c){return c.toLocaleString().replace(/[&'`"<>]/g,v=>({"&":"&","'":"'","`":"`",'"':""","<":"<",">":">"}[v]))}(m)}\n ${W}\n `}color(i){return this.colors.getColor(this.label(i))}trackBy(i,m){return m.data.name}onClick(i){this.select.emit(i)}isActive(i){return!!this.activeEntries&&void 0!==this.activeEntries.find(W=>i.name===W.name&&i.series===W.series)}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275cmp=e.VBU({type:c,selectors:[["g","ngx-charts-pie-series",""]],inputs:{colors:"colors",series:"series",dims:"dims",innerRadius:"innerRadius",outerRadius:"outerRadius",explodeSlices:"explodeSlices",showLabels:"showLabels",gradient:"gradient",activeEntries:"activeEntries",labelFormatting:"labelFormatting",trimLabels:"trimLabels",maxLabelLength:"maxLabelLength",tooltipText:"tooltipText",tooltipDisabled:"tooltipDisabled",tooltipTemplate:"tooltipTemplate",animations:"animations"},outputs:{select:"select",activate:"activate",deactivate:"deactivate",dblclick:"dblclick"},features:[e.OA$],attrs:Vu,decls:1,vars:2,consts:[[4,"ngFor","ngForOf","ngForTrackBy"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations",4,"ngIf"],["ngx-charts-pie-arc","","ngx-tooltip","",3,"select","activate","deactivate","dblclick","startAngle","endAngle","innerRadius","outerRadius","fill","value","gradient","data","max","explodeSlices","isActive","animate","tooltipDisabled","tooltipPlacement","tooltipType","tooltipTitle","tooltipTemplate","tooltipContext"],["ngx-charts-pie-label","",3,"data","radius","color","label","labelTrim","labelTrimSize","max","value","explodeSlices","animations"]],template:function(i,m){1&i&&e.DNE(0,Gu,3,19,"g",0),2&i&&e.Y8G("ngForOf",m.data)("ngForTrackBy",m.trackBy)},dependencies:[SC,kC,Zi.Sq,Zi.bT,L0],encapsulation:2,changeDetection:0}),c})(),Nf=(()=>{class c extends I0{constructor(){super(...arguments),this.activeEntries=[],this.tooltipDisabled=!1,this.label="Total",this.activate=new e.bkB,this.deactivate=new e.bkB,this.margin=[20,20,20,20]}update(){super.update(),this.dims=function uC({width:c,height:v,margins:i,showXAxis:m=!1,showYAxis:W=!1,xAxisHeight:ce=0,yAxisWidth:De=0,showXLabel:Ve=!1,showYLabel:qe=!1,showLegend:et=!1,legendType:gt=wn.Ordinal,legendPosition:Dt=Od.Right,columns:Pt=12}){let Ut=i[3],Zt=c,hi=v-i[0]-i[2];return et&&Dt===Od.Right&&(Pt-=gt===wn.Ordinal?2:1),Zt=Zt*Pt/12,Zt=Zt-i[1]-i[3],m&&(hi-=5,hi-=ce,Ve&&(hi-=30)),W&&(Zt-=5,Zt-=De,Ut+=De,Ut+=10,qe&&(Zt-=30,Ut+=30)),Zt=Math.max(0,Zt),hi=Math.max(0,hi),{width:Math.floor(Zt),height:Math.floor(hi),xOffset:Math.floor(Ut)}}({width:4*this.width/12,height:this.height,margins:this.margin}),this.formatDates(),this.domain=this.getDomain(),this.setColors();const i=this.dims.width/2,m=this.margin[0]+this.dims.height/2;this.legendWidth=this.width-this.dims.width-this.margin[1],this.outerRadius=Math.min(this.dims.width,this.dims.height)/2.5,this.innerRadius=.75*this.outerRadius,this.transform=`translate(${i} , ${m})`}getDomain(){return this.results.map(i=>i.label)}onClick(i){this.select.emit(i)}setColors(){this.colors=new nm(this.scheme,wn.Ordinal,this.domain,this.customColors)}onActivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name),!(this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series)>-1)&&(this.activeEntries=[i,...this.activeEntries],this.activate.emit({value:i,entries:this.activeEntries}))}onDeactivate(i,m=!1){i=this.results.find(ce=>m?ce.label===i.name:ce.name===i.name);const W=this.activeEntries.findIndex(ce=>ce.name===i.name&&ce.value===i.value&&ce.series===i.series);this.activeEntries.splice(W,1),this.activeEntries=[...this.activeEntries],this.deactivate.emit({value:i,entries:this.activeEntries})}}return c.\u0275fac=(()=>{let v;return function(m){return(v||(v=e.xGo(c)))(m||c)}})(),c.\u0275cmp=e.VBU({type:c,selectors:[["ngx-charts-advanced-pie-chart"]],contentQueries:function(i,m,W){if(1&i&&e.wni(W,y1,5),2&i){let ce;e.mGM(ce=e.lsd())&&(m.tooltipTemplate=ce.first)}},inputs:{gradient:"gradient",activeEntries:"activeEntries",tooltipDisabled:"tooltipDisabled",tooltipText:"tooltipText",label:"label",valueFormatting:"valueFormatting",nameFormatting:"nameFormatting",percentageFormatting:"percentageFormatting"},outputs:{activate:"activate",deactivate:"deactivate"},features:[e.Vt3],decls:7,vars:37,consts:[[1,"advanced-pie","chart"],[3,"view","showLegend","animations"],[1,"pie","chart"],["ngx-charts-pie-series","",3,"select","activate","deactivate","colors","series","innerRadius","activeEntries","outerRadius","gradient","tooltipDisabled","tooltipTemplate","tooltipText","animations"],[1,"advanced-pie-legend-wrapper"],[3,"select","activate","deactivate","data","colors","width","label","animations","valueFormatting","labelFormatting","percentageFormatting"]],template:function(i,m){1&i&&(e.j41(0,"div")(1,"div",0)(2,"ngx-charts-chart",1),e.qSk(),e.j41(3,"g",2)(4,"g",3),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce)})("deactivate",function(ce){return m.onDeactivate(ce)}),e.k0s()()()(),e.joV(),e.j41(5,"div",4)(6,"ngx-charts-advanced-legend",5),e.bIt("select",function(ce){return m.onClick(ce)})("activate",function(ce){return m.onActivate(ce,!0)})("deactivate",function(ce){return m.onDeactivate(ce,!0)}),e.k0s()()()),2&i&&(e.xc7("width",m.width,"px")("height",m.height,"px"),e.R7$(),e.xc7("width",m.dims.width,"px")("height",m.dims.height,"px"),e.R7$(),e.Y8G("view",e.l_i(34,ff,m.width,m.height))("showLegend",!1)("animations",m.animations),e.R7$(),e.BMQ("transform",m.transform),e.R7$(),e.Y8G("colors",m.colors)("series",m.results)("innerRadius",m.innerRadius)("activeEntries",m.activeEntries)("outerRadius",m.outerRadius)("gradient",m.gradient)("tooltipDisabled",m.tooltipDisabled)("tooltipTemplate",m.tooltipTemplate)("tooltipText",m.tooltipText)("animations",m.animations),e.R7$(),e.xc7("width",m.width-m.dims.width,"px")("height",m.height,"px"),e.R7$(),e.Y8G("data",m.results)("colors",m.colors)("width",m.width-m.dims.width-m.margin[1])("label",m.label)("animations",m.animations)("valueFormatting",m.valueFormatting)("labelFormatting",m.nameFormatting)("percentageFormatting",m.percentageFormatting))},dependencies:[yy,Ly,V0],styles:[".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\n",".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\n"],encapsulation:2,changeDetection:0}),c})(),$0=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Ny=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,W0]]}),c})(),IC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),PC=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),Fy=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl,$0,da]]}),c})(),Ff=(()=>{class c{}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[[tl]]}),c})(),NC=(()=>{class c{constructor(){!function RC(){typeof SVGElement<"u"&&typeof SVGElement.prototype.contains>"u"&&(SVGElement.prototype.contains=HTMLDivElement.prototype.contains)}()}}return c.\u0275fac=function(i){return new(i||c)},c.\u0275mod=e.$C({type:c}),c.\u0275inj=e.G2t({imports:[tl,Ku,da,Py,_C,CC,Ff,W0,Ny,IC,$0,PC,Fy]}),c})();var lm=He(91346),By=He(12168),BC=He(38833),cm=He(46247),jC=He(41570);const Y0=()=>({width:"75vw"}),VC=()=>[10,25,50];function jy(c,v){if(1&c){const i=e.RV6();e.j41(0,"button",14),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.refresh())}),e.k0s()}}function Vy(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("state",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",24),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.nrm(79,"div",25),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.j41(82,"div",21),e.EFF(83,"\n "),e.nrm(84,"div",23),e.nI1(85,"translate"),e.EFF(86,"\n "),e.nrm(87,"div",20),e.EFF(88,"\n "),e.k0s(),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,21,"dashboard.health.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieState)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGBROG)("label",i.advancedPieStateLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,23,"dashboard.health.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,25,"dashboard.traffic.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieSent)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeBG)("label",i.advancedPieSentLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,27,"dashboard.traffic.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,29,"dashboard.trend.title"),e.npT),e.R7$(7),e.Y8G("chart",i.chart),e.R7$(5),e.Y8G("innerHTML",e.bMT(85,31,"dashboard.trend.comment"),e.npT)}}function zC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",15),e.EFF(1,"\n "),e.j41(2,"div",16),e.EFF(3,"\n "),e.j41(4,"div",17),e.EFF(5,"\n "),e.j41(6,"div",18),e.EFF(7,"\n "),e.j41(8,"div",16),e.EFF(9,"\n "),e.nrm(10,"div",19),e.nI1(11,"translate"),e.EFF(12,"\n "),e.nrm(13,"div",20),e.EFF(14,"\n "),e.j41(15,"div",21),e.EFF(16,"\n "),e.j41(17,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("device",W))}),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"div",21),e.EFF(22,"\n "),e.nrm(23,"div",23),e.nI1(24,"translate"),e.EFF(25,"\n "),e.nrm(26,"div",20),e.EFF(27,"\n "),e.k0s(),e.EFF(28,"\n "),e.k0s(),e.EFF(29,"\n "),e.k0s(),e.EFF(30,"\n "),e.k0s(),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n\n "),e.j41(33,"div",16),e.EFF(34,"\n "),e.j41(35,"div",17),e.EFF(36,"\n "),e.j41(37,"div",18),e.EFF(38,"\n "),e.j41(39,"div",16),e.EFF(40,"\n "),e.nrm(41,"div",19),e.nI1(42,"translate"),e.EFF(43,"\n "),e.nrm(44,"div",20),e.EFF(45,"\n "),e.j41(46,"div",21),e.EFF(47,"\n "),e.j41(48,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("battery",W))}),e.EFF(49,"\n "),e.k0s(),e.EFF(50,"\n "),e.k0s(),e.EFF(51,"\n "),e.j41(52,"div",21),e.EFF(53,"\n "),e.nrm(54,"div",23),e.nI1(55,"translate"),e.EFF(56,"\n "),e.nrm(57,"div",20),e.EFF(58,"\n "),e.k0s(),e.EFF(59,"\n "),e.k0s(),e.EFF(60,"\n "),e.k0s(),e.EFF(61,"\n "),e.k0s(),e.EFF(62,"\n "),e.k0s(),e.EFF(63,"\n\n "),e.j41(64,"div",16),e.EFF(65,"\n "),e.j41(66,"div",17),e.EFF(67,"\n "),e.j41(68,"div",18),e.EFF(69,"\n "),e.j41(70,"div",16),e.EFF(71,"\n "),e.nrm(72,"div",19),e.nI1(73,"translate"),e.EFF(74,"\n "),e.nrm(75,"div",20),e.EFF(76,"\n "),e.j41(77,"div",21),e.EFF(78,"\n "),e.j41(79,"ngx-charts-advanced-pie-chart",22),e.bIt("select",function(W){e.eBV(i);const ce=e.XpG();return e.Njj(ce.open("certified",W))}),e.EFF(80,"\n "),e.k0s(),e.EFF(81,"\n "),e.k0s(),e.EFF(82,"\n "),e.j41(83,"div",21),e.EFF(84,"\n "),e.nrm(85,"div",23),e.nI1(86,"translate"),e.EFF(87,"\n "),e.nrm(88,"div",20),e.EFF(89,"\n "),e.k0s(),e.EFF(90,"\n "),e.k0s(),e.EFF(91,"\n "),e.k0s(),e.EFF(92,"\n "),e.k0s(),e.EFF(93,"\n "),e.k0s(),e.EFF(94,"\n"),e.k0s()}if(2&c){const i=e.XpG();e.R7$(10),e.Y8G("innerHTML",e.bMT(11,27,"dashboard.device.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieDevice)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemePC)("label",i.advancedPieDeviceLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(24,29,"dashboard.devices.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(42,31,"dashboard.battery.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieBattery)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeROBG)("label",i.advancedPieBatteryLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(55,33,"dashboard.battery.comment"),e.npT),e.R7$(18),e.Y8G("innerHTML",e.bMT(73,35,"dashboard.optimized.title"),e.npT),e.R7$(7),e.Y8G("results",i.advancedPieCertified)("animations",i.animations)("gradient",i.gradient)("tooltipDisabled",i.tooltipDisabled)("scheme",i.colorSchemeGO)("label",i.advancedCertifiedLabel)("percentageFormatting",i.percentageFormatting),e.R7$(6),e.Y8G("innerHTML",e.bMT(86,37,"dashboard.optimized.comment"),e.npT)}}function GC(c,v){if(1&c){const i=e.RV6();e.j41(0,"div",26),e.EFF(1,"\n "),e.j41(2,"div",27),e.EFF(3,"\n "),e.j41(4,"div",28),e.EFF(5,"\n "),e.nrm(6,"div",29),e.nI1(7,"translate"),e.EFF(8,"\n "),e.nrm(9,"div",30),e.nI1(10,"translate"),e.EFF(11,"\n "),e.k0s(),e.EFF(12,"\n "),e.j41(13,"div"),e.EFF(14,"\n "),e.j41(15,"button",31),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!1))}),e.k0s(),e.EFF(16,"\n "),e.j41(17,"button",32),e.bIt("click",function(){e.eBV(i);const W=e.XpG();return e.Njj(W.consent(!0))}),e.k0s(),e.EFF(18,"\n "),e.k0s(),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n"),e.k0s()}2&c&&(e.R7$(6),e.Y8G("innerHtml",e.bMT(7,2,"consent.banner.header"),e.npT),e.R7$(3),e.Y8G("innerHtml",e.bMT(10,4,"consent.banner.description"),e.npT))}function HC(c,v){1&c&&(e.EFF(0,"\n "),e.nrm(1,"div",33),e.EFF(2,"\n "))}function K0(c,v){1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"th",34),e.EFF(4),e.nI1(5,"translate"),e.nrm(6,"p-sortIcon",35),e.EFF(7,"\n "),e.k0s(),e.EFF(8,"\n "),e.j41(9,"th",36),e.EFF(10),e.nI1(11,"translate"),e.nrm(12,"p-sortIcon",37),e.EFF(13,"\n "),e.k0s(),e.EFF(14,"\n "),e.j41(15,"th",38),e.EFF(16),e.nI1(17,"translate"),e.nrm(18,"p-sortIcon",39),e.EFF(19,"\n "),e.k0s(),e.EFF(20,"\n "),e.j41(21,"th",40),e.EFF(22),e.nI1(23,"translate"),e.nrm(24,"p-sortIcon",41),e.EFF(25,"\n "),e.k0s(),e.EFF(26,"\n "),e.j41(27,"th",42),e.EFF(28),e.nI1(29,"translate"),e.nrm(30,"p-sortIcon",43),e.EFF(31,"\n "),e.k0s(),e.EFF(32,"\n "),e.j41(33,"th",44),e.EFF(34),e.nI1(35,"translate"),e.nrm(36,"p-sortIcon",45),e.EFF(37,"\n "),e.k0s(),e.EFF(38,"\n "),e.j41(39,"th",46),e.EFF(40),e.nI1(41,"translate"),e.nrm(42,"p-sortIcon",47),e.EFF(43,"\n "),e.k0s(),e.EFF(44,"\n "),e.k0s(),e.EFF(45,"\n ")),2&c&&(e.R7$(4),e.SpI("\n ",e.bMT(5,7,"device.byname.shortid.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(11,9,"device.byname.ieee.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(17,11,"device.byname.model.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(23,13,"device.byname.devicename.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(29,15,"device.byname.status.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(35,17,"device.byname.battery.column"),""),e.R7$(6),e.SpI("\n ",e.bMT(41,19,"device.byname.health.column"),""))}function UC(c,v){if(1&c&&(e.EFF(0,"\n "),e.j41(1,"tr"),e.EFF(2,"\n "),e.j41(3,"td"),e.EFF(4),e.k0s(),e.EFF(5,"\n "),e.j41(6,"td"),e.EFF(7),e.k0s(),e.EFF(8,"\n "),e.j41(9,"td"),e.EFF(10),e.k0s(),e.EFF(11,"\n "),e.j41(12,"td"),e.EFF(13),e.k0s(),e.EFF(14,"\n "),e.j41(15,"td"),e.EFF(16),e.k0s(),e.EFF(17,"\n "),e.j41(18,"td"),e.EFF(19),e.k0s(),e.EFF(20,"\n "),e.j41(21,"td"),e.EFF(22),e.k0s(),e.EFF(23,"\n "),e.k0s(),e.EFF(24,"\n ")),2&c){const i=v.$implicit;e.R7$(4),e.JRh(i._NwkId),e.R7$(3),e.JRh(i.IEEE),e.R7$(3),e.JRh(i.Model),e.R7$(3),e.JRh(i.ZDeviceName),e.R7$(3),e.JRh(i.Status),e.R7$(3),e.JRh(i.Battery),e.R7$(3),e.JRh(i.Health)}}const WC=[sn.childRoutes([{path:"",redirectTo:"/dashboard",pathMatch:"full"},{path:"dashboard",component:(()=>{class c extends Ge.U{apiService;versionService;headerService;translateService;tracker;visible=!1;settingsToSave=[];showConsent=!1;poll=!1;chart;devices;certified;routers;inDbs;healthsLive;healthsDisabled;healthsNotSeen;healthsNotReachable;healthsOthers={};pluginStats;maxLoad={};currentLoad={};devicesOther;certifiedDevices;notCertifiedDevices;devicesToOverlay;battery1;battery2;battery3;battery4;advancedPieLoad;advancedPieSent;advancedPieDevice;advancedPieState=[];advancedPieBattery;advancedPieCertified;advancedPieLoadLabel;advancedPieSentLabel;advancedPieDeviceLabel;advancedPieStateLabel;advancedPieBatteryLabel;advancedCertifiedLabel;getScreenWidth;getScreenHeight;gaugeType="full";gaugeAppendText="";thick=15;animations=!0;gradient=!1;tooltipDisabled=!1;colorShemeState;colorSchemeROBG={domain:["red","orange","green","blue"]};colorSchemeGBROG={domain:["green","blue","red","orange","gray"]};colorSchemeBG={domain:["blue","green"]};colorSchemePC={domain:["purple","cyan"]};colorSchemeGO={domain:["green","orange"]};plugin;constructor(i,m,W,ce,De){super(),this.apiService=i,this.versionService=m,this.headerService=W,this.translateService=ce,this.tracker=De}ngOnInit(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight,this.apiService.getSettings().subscribe(i=>{i.forEach(m=>{this.settingsToSave=this.settingsToSave.concat(m.ListOfSettings),this.settingsToSave.forEach(W=>{"PluginAnalytics"===W.Name&&(-1===W.current_value?this.showConsent=!0:1===W.current_value?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven())})})}),this.subs.sink=this.headerService.polling.subscribe(i=>{this.poll=i,this.subs.add((0,_r.O)(1,Or.c.refresh).pipe((0,Va.n)(()=>this.getStats()),ia(),(0,Ha.u)(),(0,na.Q)(this.headerService.polling.pipe((0,so.p)(m=>!1===m)))).subscribe())}),this.poll||this.getStats().subscribe(),this.getInfos()}onWindowResize(){this.getScreenWidth=window.innerWidth,this.getScreenHeight=window.innerHeight}getInfos(){this.advancedPieLoadLabel=this.translateService.instant("dashboard.trafic.maxload.label"),this.advancedPieSentLabel=this.translateService.instant("dashboard.trafic.label"),this.advancedPieDeviceLabel=this.translateService.instant("dashboard.devices.label"),this.advancedPieStateLabel=this.translateService.instant("dashboard.devices.state.label"),this.advancedPieBatteryLabel=this.translateService.instant("dashboard.devices.battery.label"),this.advancedCertifiedLabel=this.translateService.instant("dashboard.devices.optimized.label")}percentageFormatting(i){return Math.round(i)}createChart(){const i=[],m=[],W=[],ce=this.pluginStats.Trend.sort((qe,et)=>{const gt=qe._TS,Dt=et._TS;return gt>Dt?1:gt{const et=new Date,gt=new Date(et.setSeconds(et.getSeconds()-De));De-=5,i.push({x:gt,y:qe.Txps}),m.push({x:gt,y:qe.Rxps}),W.push({x:gt,y:qe.Load})});const Ve={chart:{type:"line",height:"150"},title:{text:""},legend:{align:"center",verticalAlign:"top",floating:!0},xAxis:{allowDecimals:!1,labels:{formatter:function(){const qe=new Date(this.value);return qe.getHours()+(qe.getMinutes()>9?":"+qe.getMinutes():":0"+qe.getMinutes())+(qe.getSeconds()>9?":"+qe.getSeconds():":0"+qe.getSeconds())}},type:"datetime"},yAxis:{title:{text:""},labels:{formatter:function(){return this.value+""}}},tooltip:{pointFormat:"{series.name} {point.y}"},credits:{enabled:!1},plotOptions:{series:{label:{connectorAllowed:!1}}},series:[{name:this.translateService.instant("dashboard.txps"),data:i,type:"line",color:"blue"},{name:this.translateService.instant("dashboard.rxps"),data:m,type:"line",color:"green"},{name:this.translateService.instant("dashboard.load"),data:W,type:"line",color:"orange"}]};this.chart=new lm.t1(Ve),this.subs.add(this.chart.ref$.subscribe())}open(i,m){"device"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.routers")?this.routers:this.devicesOther:"state"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.live")?this.healthsLive:m.name===this.translateService.instant("dashboard.devices.disabled")?this.healthsDisabled:m.name===this.translateService.instant("dashboard.devices.others")?this.healthsOthers:m.name===this.translateService.instant("dashboard.devices.notReachable")?this.healthsNotReachable:this.healthsNotSeen:"battery"===i?this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.battery.inf.15")?this.battery1:m.name===this.translateService.instant("dashboard.devices.battery.inf.35")?this.battery2:m.name===this.translateService.instant("dashboard.devices.battery.inf.75")?this.battery3:this.battery4:"certified"===i&&(this.devicesToOverlay=m.name===this.translateService.instant("dashboard.devices.optimized")?this.certifiedDevices:this.notCertifiedDevices),80*this.getScreenWidth/100>768&&(this.visible=!0)}refresh(){this.getStats().subscribe(),this.versionService.setReload(!0)}getStats(){return(0,Nl.p)([this.apiService.getPluginStats(),this.apiService.getZDevices(),this.apiService.getPlugin(),this.apiService.getZDeviceName()]).pipe((0,Lr.T)(([i,m,W,ce])=>{this.plugin=W,this.pluginStats=i,this.devices=m||[],this.certified=ce||[],this.trackEvent(),this.createChart(),this.maxLoad.label=this.translateService.instant("dashboard.trafic.maxload"),this.maxLoad.total=i.MaxLoad,this.currentLoad.label=this.translateService.instant("dashboard.trafic.currentload"),this.currentLoad.total=i.CurrentLoad,this.advancedPieLoad=[{name:this.translateService.instant("dashboard.trafic.maxload"),value:i.MaxLoad-i.CurrentLoad},{name:this.translateService.instant("dashboard.trafic.currentload"),value:i.CurrentLoad}],this.advancedPieSent=[{name:this.translateService.instant("dashboard.trafic.send"),value:i.Sent},{name:this.translateService.instant("dashboard.trafic.receive"),value:i.Received}],this.devices.total=this.devices.length,this.devices.label=this.translateService.instant("devices"),this.routers=this.devices.filter(Ve=>"Router"===Ve.LogicalType&&"Disabled"!==Ve.Health),this.devicesOther=this.devices.filter(Ve=>"Router"!==Ve.LogicalType&&"Disabled"!==Ve.Health),this.routers.label=this.translateService.instant("dashboard.devices.routers"),this.routers.total=(this.routers.length/this.devices.total*100).toFixed(0),this.routers.append="%",this.inDbs=this.devices.filter(Ve=>"inDB"===Ve.Status),this.inDbs.label=this.translateService.instant("dashboard.devices.indb"),this.inDbs.total=(this.inDbs.length/this.devices.total*100).toFixed(0),this.inDbs.append="%",this.advancedPieDevice=[{name:this.translateService.instant("dashboard.devices.routers"),value:this.routers.length},{name:this.translateService.instant("dashboard.devices.enddevice"),value:this.devicesOther.length}],this.healthsLive=this.devices.filter(Ve=>"Live"===Ve.Health&&"notDB"!==Ve.Status),this.healthsDisabled=this.devices.filter(Ve=>"Disabled"===Ve.Health||"notDB"===Ve.Status),this.healthsNotReachable=this.devices.filter(Ve=>"Not Reachable"===Ve.Health&&"notDB"!==Ve.Status||"Leave"===Ve.Status),this.healthsNotSeen=this.devices.filter(Ve=>"Not seen last 24hours"===Ve.Health&&"notDB"!==Ve.Status),this.healthsOthers=this.devices.filter(Ve=>"Not seen last 24hours"!==Ve.Health&&"Not Reachable"!==Ve.Health&&"Live"!==Ve.Health&&"notDB"!==Ve.Status&&"Leave"!==Ve.Status&&"Disabled"!==Ve.Health),this.colorShemeState=this.colorSchemeGBROG,this.advancedPieState=[],this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.live"),value:this.healthsLive.length}),this.healthsDisabled.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.disabled"),value:this.healthsDisabled.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"blue"!==Ve),this.healthsNotReachable.length>0?this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notReachable"),value:this.healthsNotReachable.length}):this.colorShemeState.domain=this.colorShemeState.domain.filter(Ve=>"red"!==Ve),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.notseen"),value:this.healthsNotSeen.length}),this.advancedPieState.push({name:this.translateService.instant("dashboard.devices.others"),value:this.healthsOthers.length});const De=this.devices.filter(Ve=>"Battery"===Ve.PowerSource&&"notDB"!==Ve.Status);this.battery1=De.filter(Ve=>Ve.Battery<=15&&"Disabled"!==Ve.Health),this.battery2=De.filter(Ve=>Ve.Battery>15&&Ve.Battery<=35&&"Disabled"!==Ve.Health),this.battery3=De.filter(Ve=>Ve.Battery>35&&Ve.Battery<=75&&"Disabled"!==Ve.Health),this.battery4=De.filter(Ve=>Ve.Battery>75&&"Disabled"!==Ve.Health),this.advancedPieBattery=[{name:this.translateService.instant("dashboard.devices.battery.inf.15"),value:this.battery1.length},{name:this.translateService.instant("dashboard.devices.battery.inf.35"),value:this.battery2.length},{name:this.translateService.instant("dashboard.devices.battery.inf.75"),value:this.battery3.length},{name:this.translateService.instant("dashboard.devices.battery.sup.75"),value:this.battery4.length}],this.certifiedDevices=this.certified.filter(Ve=>Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.notCertifiedDevices=this.certified.filter(Ve=>!Ve.CertifiedDevice&&"Disabled"!==Ve.Health),this.advancedPieCertified=[{name:this.translateService.instant("dashboard.devices.optimized"),value:this.certifiedDevices.length},{name:this.translateService.instant("dashboard.devices.not.optimized"),value:this.notCertifiedDevices.length}],this.headerService.setError(i.Error)}))}consent(i){const m={};this.settingsToSave.forEach(W=>{const ce=W.Name;"PluginAnalytics"===ce&&(m[ce]={current:i?1:0})}),this.apiService.putSettings(m).subscribe(()=>{this.showConsent=!1,i?(this.tracker.setConsentGiven(),this.tracker.rememberConsentGiven()):this.tracker.forgetConsentGiven()})}trackEvent(){const i=JSON.parse(sessionStorage.getItem("pluginFirstSendToMatomo"));(!i||i.NetworkSize!==this.plugin.NetworkSize)&&sessionStorage.setItem("pluginFirstSendToMatomo",JSON.stringify(this.plugin)),sessionStorage.getItem("pluginFirstSendToMatomo")!==sessionStorage.getItem("pluginSentToMatomo")&&(sessionStorage.setItem("pluginSentToMatomo",JSON.stringify(this.plugin)),this.tracker.setUserId(this.plugin.CoordinatorIEEE),this.tracker.setCustomVariable(1,"CoordinatorModel",this.plugin.CoordinatorModel,"visit"),this.tracker.setCustomVariable(2,"PluginVersion",this.plugin.PluginVersion,"visit"),this.tracker.setCustomVariable(3,"CoordinatorFirmwareVersion",this.plugin.CoordinatorFirmwareVersion,"visit"),this.tracker.setCustomVariable(4,"NetworkSize",this.plugin.NetworkSize,"visit"),Object.entries(this.plugin.NetworkDevices).forEach(([m,W])=>{Object.entries(W).forEach(([ce,De])=>{this.tracker.trackEvent("NetworkDevices",De.join("|"),m.concat("|").concat(ce))})}))}static \u0275fac=function(m){return new(m||c)(e.rXU(Ke.G),e.rXU(ks),e.rXU(ut.d),e.rXU(Pr.c$),e.rXU(Bn.kA))};static \u0275cmp=e.VBU({type:c,selectors:[["app-dashboard"]],hostBindings:function(m,W){1&m&&e.bIt("resize",function(De){return W.onWindowResize(De)},!1,e.tSv)},features:[e.Vt3],decls:42,vars:29,consts:[["dt1",""],[1,"col-12","card"],[1,"card-header"],[1,"fw-bold"],["class","d-none d-md-block btn btn-default btn-primary float-bottom float-end","translate","dashboard.button.refresh",3,"click",4,"ngIf"],["class","row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4",4,"ngIf"],[1,"col-12","card","mt-2"],[1,"card-header","fw-bold"],["class","consent-banner",4,"ngIf"],["header","Header",3,"visibleChange","visible","position"],["pTemplate","header"],[1,"card-title",3,"innerHTML"],["styleClass","p-datatable-sm","responsiveLayout","scroll",3,"rowHover","showCurrentPageReport","currentPageReportTemplate","rowsPerPageOptions","value","rows","paginator","scrollable"],["pTemplate","body"],["translate","dashboard.button.refresh",1,"d-none","d-md-block","btn","btn-default","btn-primary","float-bottom","float-end",3,"click"],[1,"row","row-cols-1","row-cols-md-2","row-cols-lg-3","g-4"],[1,"col"],[1,"card","h-100"],[1,"card-body"],[1,"col-sm",3,"innerHTML"],[1,"col-sm-1"],[1,"row"],[3,"select","results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm","border-start","border-3",3,"innerHTML"],[3,"results","animations","gradient","tooltipDisabled","scheme","label","percentageFormatting"],[1,"col-sm",3,"chart"],[1,"consent-banner"],[1,"consent-banner__inner"],[1,"consent-banner__copy"],[1,"consent-banner__header",3,"innerHtml"],[1,"consent-banner__description",3,"innerHtml"],["translate","consent.banner.decline",1,"col-sm-2","ms-3","btn","btn-danger",3,"click"],["translate","consent.banner.accept",1,"col-sm-2","ms-3","btn","btn-primary",3,"click"],["translate","dashboard.popup.device.header",1,"col-sm"],["pSortableColumn","_NwkId",2,"width","7rem"],["field","_NwkId"],["pSortableColumn","IEEE",2,"width","5rem"],["field","IEEE"],["pSortableColumn","Model",2,"width","13rem"],["field","Model"],["pSortableColumn","ZDeviceName",2,"width","20rem"],["field","ZDeviceName"],["pSortableColumn","Status",2,"width","7rem"],["field","Status"],["pSortableColumn","Battery",2,"width","7rem"],["field","Battery"],["pSortableColumn","Health",2,"width","6rem"],["field","Health"]],template:function(m,W){if(1&m){const ce=e.RV6();e.j41(0,"div",1),e.EFF(1,"\n "),e.j41(2,"div",2),e.EFF(3,"\n "),e.j41(4,"span",3),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.EFF(7,"\n "),e.DNE(8,jy,1,0,"button",4),e.EFF(9,"\n "),e.k0s(),e.EFF(10,"\n"),e.k0s(),e.EFF(11,"\n"),e.DNE(12,Vy,94,33,"div",5),e.EFF(13,"\n\n"),e.j41(14,"div",6),e.EFF(15,"\n "),e.j41(16,"div",7),e.EFF(17),e.nI1(18,"translate"),e.k0s(),e.EFF(19,"\n"),e.k0s(),e.EFF(20,"\n"),e.DNE(21,zC,95,39,"div",5),e.EFF(22,"\n\n"),e.DNE(23,GC,21,6,"div",8),e.EFF(24,"\n"),e.j41(25,"p-dialog",9),e.mxI("visibleChange",function(Ve){return e.eBV(ce),e.DH7(W.visible,Ve)||(W.visible=Ve),e.Njj(Ve)}),e.EFF(26,"\n "),e.DNE(27,HC,3,0,"ng-template",10),e.EFF(28,"\n "),e.nrm(29,"h5",11),e.nI1(30,"translate"),e.EFF(31,"\n "),e.j41(32,"p-table",12,0),e.nI1(34,"translate"),e.EFF(35,"\n "),e.DNE(36,K0,46,21,"ng-template",10),e.EFF(37,"\n "),e.DNE(38,UC,25,7,"ng-template",13),e.EFF(39,"\n "),e.k0s(),e.EFF(40,"\n"),e.k0s(),e.EFF(41,"\n")}2&m&&(e.R7$(5),e.JRh(e.bMT(6,19,"dashboard.trafic.title")),e.R7$(3),e.Y8G("ngIf",!W.poll),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(5),e.SpI("\n ",e.bMT(18,21,"dashboard.devices.title"),"\n "),e.R7$(4),e.Y8G("ngIf",W.pluginStats),e.R7$(2),e.Y8G("ngIf",W.showConsent),e.R7$(2),e.Aen(e.lJ4(27,Y0)),e.R50("visible",W.visible),e.Y8G("position","bottom"),e.R7$(4),e.Y8G("innerHTML",e.bMT(30,23,"dashboard.popup.device.subtitle"),e.npT),e.R7$(3),e.FS9("currentPageReportTemplate",e.bMT(34,25,"TOTAL")),e.Y8G("rowHover",!0)("showCurrentPageReport",!0)("rowsPerPageOptions",e.lJ4(28,VC))("value",W.devicesToOverlay)("rows",10)("paginator",!0)("scrollable",!0))},dependencies:[Zi.bT,Nf,Pr.Mm,lm.S6,cm.XI,yl.Ei,cm.Tg,cm.yc,jC.l,Pr.D9],styles:[".border-3[_ngcontent-%COMP%]{border-width:3px}.consent-banner[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;z-index:2147483645;box-sizing:border-box;width:100%;background-color:#f1f6f4}.consent-banner__inner[_ngcontent-%COMP%]{max-width:960px;margin:0 auto;padding:32px 0}.consent-banner__copy[_ngcontent-%COMP%]{margin-bottom:16px}.consent-banner__header[_ngcontent-%COMP%]{margin-bottom:8px;font-family:CeraPRO-Bold,sans-serif,arial;font-weight:400;font-size:16px;line-height:24px}.consent-banner__description[_ngcontent-%COMP%]{font-family:CeraPRO-Regular,sans-serif,arial;font-weight:400;color:#838f93;font-size:16px;line-height:24px}.card[_ngcontent-%COMP%]{--bs-card-border-width: none}"]})}return c})(),data:{title:(0,Ir.o6)("dashboard")}}])];let $C=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[fr.iI.forChild(WC),fr.iI]})}return c})(),XC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({providers:[{provide:lm.SV,useFactory:()=>[By,BC]}],imports:[Bt,NC,$C,Zi.MD,at.X1,Pr.h,lm.Fr,Ks.G]})}return c})(),YC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c});static \u0275inj=e.G2t({imports:[Zi.MD,Pr.h,rr.UN,at.YN,fr.iI]})}return c})(),KC=(()=>{class c{static \u0275fac=function(m){return new(m||c)};static \u0275mod=e.$C({type:c,bootstrap:[Be]});static \u0275inj=e.G2t({imports:[M.Bb,Bt,Pe.q1,V.FQ,Pr.h.forRoot(),Re,rr.UN,Ir.Ui,Ks.G,YC,XC,ml._B.forRoot({timeOut:5e3,positionClass:"toast-bottom-right",preventDuplicates:!0}),Bn.mP.forRoot({acceptDoNotTrack:!1,requireConsent:Bn.JV.TRACKING,trackerUrl:Or.c.trackerUrl,siteId:Or.c.siteId}),Vl,vl]})}return c})();Or.c.production&&(0,e.SmG)(),M.sG().bootstrapModule(KC,{preserveWhitespaces:!0}).catch(c=>console.log(c))},31923:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Extensions/ArrowSymbols.js",[],function(){function Z(le,fe,pe,J){return[["M",le,fe+J/2],["L",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J]]}function ie(le,fe,pe,J){return Z(le,fe,pe/2,J)}function re(le,fe,pe,J){return[["M",le+pe,fe],["L",le,fe+J/2],["L",le+pe,fe+J],["Z"]]}function ve(le,fe,pe,J){return re(le,fe,pe/2,J)}return{compose:function(le){let fe=le.prototype.symbols;fe.arrow=Z,fe["arrow-filled"]=re,fe["arrow-filled-half"]=ve,fe["arrow-half"]=ie,fe["triangle-left"]=re,fe["triangle-left-half"]=ve}}}),Pe(V,"Gantt/Connection.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,error:ve,merge:le,objectEach:fe}=ie,pe=Z.deg2rad,J=Math.max,te=Math.min;return class{constructor($,A,B){this.init($,A,B)}init($,A,B){this.fromPoint=$,this.toPoint=A,this.options=B,this.chart=$.series.chart,this.pathfinder=this.chart.pathfinder}renderPath($,A){let B=this.chart,F=B.styledMode,L=this.pathfinder,D={},I=this.graphics&&this.graphics.path;L.group||(L.group=B.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(B.seriesGroup)),L.group.translate(B.plotLeft,B.plotTop),I&&I.renderer||(I=B.renderer.path().add(L.group),F||I.attr({opacity:0})),I.attr(A),D.d=$,F||(D.opacity=1),I.animate(D),this.graphics=this.graphics||{},this.graphics.path=I}addMarker($,A,B){let F,L,D,I,E,_,b,T,z=this.fromPoint.series.chart,O=z.pathfinder,f=z.renderer,a="start"===$?this.fromPoint:this.toPoint,g=a.getPathfinderAnchorPoint(A);A.enabled&&((T="start"===$?B[1]:B[B.length-2])&&"M"===T[0]||"L"===T[0])&&(b={x:T[1],y:T[2]},L=a.getRadiansToVector(b,g),F=a.getMarkerVector(L,A.radius,g),D=-L/pe,A.width&&A.height?(E=A.width,_=A.height):E=_=2*A.radius,this.graphics=this.graphics||{},I={x:F.x-E/2,y:F.y-_/2,width:E,height:_,rotation:D,rotationOriginX:F.x,rotationOriginY:F.y},this.graphics[$]?this.graphics[$].animate(I):(this.graphics[$]=f.symbol(A.symbol).addClass("highcharts-point-connecting-path-"+$+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(I).add(O.group),f.styledMode||this.graphics[$].attr({fill:A.color||this.fromPoint.color,stroke:A.lineColor,"stroke-width":A.lineWidth,opacity:0}).animate({opacity:1},a.series.options.animation)))}getPath($){let A=this.pathfinder,B=this.chart,F=A.algorithms[$.type],L=A.chartObstacles;return"function"!=typeof F?(ve('"'+$.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(F.requiresObstacles&&!L&&(L=A.chartObstacles=A.getChartObstacles($),B.options.connectors.algorithmMargin=$.algorithmMargin,A.chartObstacleMetrics=A.getObstacleMetrics(L)),F(this.fromPoint.getPathfinderAnchorPoint($.startMarker),this.toPoint.getPathfinderAnchorPoint($.endMarker),le({chartObstacles:L,lineObstacles:A.lineObstacles||[],obstacleMetrics:A.chartObstacleMetrics,hardBounds:{xMin:0,xMax:B.plotWidth,yMin:0,yMax:B.plotHeight},obstacleOptions:{margin:$.algorithmMargin},startDirectionX:A.getAlgorithmStartDirection($.startMarker)},$)))}render(){let $=this.fromPoint,A=$.series,B=A.chart,F=B.pathfinder,L={},D=le(B.options.connectors,A.options.connectors,$.options.connectors,this.options);!B.styledMode&&(L.stroke=D.lineColor||$.color,L["stroke-width"]=D.lineWidth,D.dashStyle&&(L.dashstyle=D.dashStyle)),L.class="highcharts-point-connecting-path highcharts-color-"+$.colorIndex,re((D=le(L,D)).marker.radius)||(D.marker.radius=te(J(Math.ceil((D.algorithmMargin||8)/2)-1,1),5));let I=this.getPath(D),E=I.path;I.obstacles&&(F.lineObstacles=F.lineObstacles||[],F.lineObstacles=F.lineObstacles.concat(I.obstacles)),this.renderPath(E,L),this.addMarker("start",le(D.marker,D.startMarker),E),this.addMarker("end",le(D.marker,D.endMarker),E)}destroy(){this.graphics&&(fe(this.graphics,function($){$.destroy()}),delete this.graphics)}}}),Pe(V,"Extensions/CurrentDateIndication.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{composed:re}=Z,{addEvent:ve,merge:le,pushUnique:fe,wrap:pe}=ie,J={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(B,F){return this.axis.chart.time.dateFormat(F||"",B)},rotation:0,style:{fontSize:"0.7em"}}};function te(){let B=this.options,F=B.currentDateIndicator;if(F){let L="object"==typeof F?le(J,F):le(J);L.value=Date.now(),L.className="highcharts-current-date-indicator",B.plotLines||(B.plotLines=[]),B.plotLines.push(L)}}function $(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function A(B,F){let L=this.options;return L&&L.className&&-1!==L.className.indexOf("highcharts-current-date-indicator")&&L.label&&"function"==typeof L.label.formatter?(L.value=Date.now(),L.label.formatter.call(this,L.value,L.label.format)):B.call(this,F)}return{compose:function(B,F){fe(re,"CurrentDateIndication")&&(ve(B,"afterSetOptions",te),ve(F,"render",$),pe(F.prototype,"getLabelText",A))}}}),Pe(V,"Core/Chart/GanttChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{defaultOptions:le}=ie,{isArray:fe,merge:pe,splat:J}=re;class te extends Z{init(A,B){let F,L=A.xAxis,D=A.yAxis;A.xAxis=A.yAxis=void 0;let I=pe(!0,{chart:{type:"gantt"},title:{text:""},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},A,{isGantt:!0});A.xAxis=L,A.yAxis=D,I.xAxis=(fe(A.xAxis)?A.xAxis:[A.xAxis||{},{}]).map((E,_)=>(1===_&&(F=0),pe({grid:{borderColor:"#cccccc",enabled:!0},opposite:le.xAxis?.opposite??E.opposite??!0,linkedTo:F},E,{type:"datetime"}))),I.yAxis=J(A.yAxis||{}).map(E=>pe({grid:{borderColor:"#cccccc",enabled:!0},staticScale:50,reversed:!0,type:E.categories?E.type:"treegrid"},E)),super.init(I,B)}}return(ve=te||(te={})).ganttChart=function($,A,B){return new ve($,A,B)},te}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Series/PathUtilities.js",[],function(){function Z(ie,re){let ve=[];for(let le=0;le>1].xMin)>0)E=b+1;else{if(!(T<0))return b;_=b-1}return E>0?E-1:0}function J(F,L){let D=pe(F,L.x+1)+1;for(;D--;){var I;if(F[D].xMax>=L.x&&L.x<=(I=F[D]).xMax&&L.x>=I.xMin&&L.y<=I.yMax&&L.y>=I.yMin)return D}return-1}function te(F){let L=[];if(F.length){L.push(["M",F[0].start.x,F[0].start.y]);for(let D=0;Dfe(L.y-F.y))?"x":"y";function y(l,d,C,k,p){let S={x:l.x,y:l.y};return S[d]=C[k||d]+(p||0),S}function o(l,d,C){let k=fe(d[C]-l[C+"Min"])>fe(d[C]-l[C+"Max"]);return y(d,C,l,C+(k?"Max":"Min"),k?1:-1)}b>-1?(T={start:f=o(E[b],L,z),end:L},g=f):g=L,_>-1&&(f=o(O=E[_],F,z),I.push({start:F,end:f}),f[z]>=F[z]==f[z]>=g[z]&&(a=F[z="y"===z?"x":"y"]fe(L.y-F.y)),E=I?"x":"y",_=[],b=D.obstacleMetrics,T=ve(F.x,L.x)-b.maxWidth-10,z=le(F.x,L.x)+b.maxWidth+10,O=ve(F.y,L.y)-b.maxHeight-10,f=le(F.y,L.y)+b.maxHeight+10,o=!1,n=D.chartObstacles,r=pe(n,z),l=pe(n,T);function d(k,p,S){let j,H,Y,U,se=k.x0&&n[w].xMin<=H.x||se<0&&n[w].xMax>=j.x);){if(n[w].xMin<=H.x&&n[w].xMax>=j.x&&n[w].yMin<=Y.y&&n[w].yMax>=U.y)return S?{y:k.y,x:k.x=Y[se+"Max"],x=k[se+"Min"]<=Y[se+"Min"],N=k[se+"Max"]>=U[se+"Max"],R=k[se+"Min"]<=U[se+"Min"],K=fe(k[se+"Min"]-p[se]),q=fe(k[se+"Max"]-p[se]),he=10>fe(K-q)?p[se]-1&&(y=function(k,p,S){let j=ve(k.xMax-p.x,p.x-k.xMin)-1;)g=L[E]-F[E]<0,(y={x:L.x,y:L.y})[E]=n[r][g?E+"Max":E+"Min"]+(g?1:-1),_.push({end:L,start:y}),L=y;return{path:te(a=(a=function k(p,S,j){let H,Y,U,se,w,X,G;if(p.x===S.x&&p.y===S.y)return[];let x=j?"x":"y",N=D.obstacleOptions.margin,R={soft:{xMin:T,xMax:z,yMin:O,yMax:f},hard:D.hardBounds};return(w=J(n,p))>-1?(se=C(w=n[w],p,S,j,R),$(w,D.hardBounds),G=j?{y:p.y,x:w[se?"xMax":"xMin"]+(se?1:-1)}:{x:p.x,y:w[se?"yMax":"yMin"]+(se?1:-1)},(X=J(n,G))>-1&&($(X=n[X],D.hardBounds),G[x]=se?le(w[x+"Max"]-N+1,(X[x+"Min"]+w[x+"Max"])/2):ve(w[x+"Min"]+N-1,(X[x+"Max"]+w[x+"Min"])/2),p.x===G.x&&p.y===G.y?(o&&(G[x]=se?le(w[x+"Max"],X[x+"Max"])+1:ve(w[x+"Min"],X[x+"Min"])-1),o=!o):o=!1),Y=[{start:p,end:G}]):(H=d(p,{x:j?S.x:p.x,y:j?p.y:S.y},j),Y=[{start:p,end:{x:H.x,y:H.y}}],H[j?"x":"y"]!==S[j?"x":"y"]&&(se=C(H.obstacle,H,S,!j,R),$(H.obstacle,D.hardBounds),U={x:j?H.x:H.obstacle[se?"xMax":"xMin"]+(se?1:-1),y:j?H.obstacle[se?"yMax":"yMin"]+(se?1:-1):H.y},Y=Y.concat(k({x:H.x,y:H.y},U,j=!j)))),Y.concat(k(Y[Y.length-1].end,S,!j))}(F,L,I)).concat(_.reverse())),obstacles:a}}return A.requiresObstacles=!0,B.requiresObstacles=!0,{fastAvoid:B,straight:function(F,L){return{path:[["M",F.x,F.y],["L",L.x,L.y]],obstacles:[{start:F,end:L}]}},simpleConnect:A}}),Pe(V,"Gantt/ConnectorsDefaults.js",[],function(){return{connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}}}),Pe(V,"Gantt/PathfinderComposition.js",[V["Gantt/ConnectorsDefaults.js"],V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{setOptions:le}=ie,{defined:fe,error:pe,merge:J}=re;function te($){let A=$.shapeArgs;if(A)return{xMin:A.x||0,xMax:(A.x||0)+(A.width||0),yMin:A.y||0,yMax:(A.y||0)+(A.height||0)};let B=$.graphic&&$.graphic.getBBox();return B?{xMin:$.plotX-B.width/2,xMax:$.plotX+B.width/2,yMin:$.plotY-B.height/2,yMax:$.plotY+B.height/2}:null}return function($){function A(L){let D,I,E=te(this);switch(L.align){case"right":D="xMax";break;case"left":D="xMin"}switch(L.verticalAlign){case"top":I="yMin";break;case"bottom":I="yMax"}return{x:D?E[D]:(E.xMin+E.xMax)/2,y:I?E[I]:(E.yMin+E.yMax)/2}}function B(L,D){let I;return!fe(D)&&(I=te(this))&&(D={x:(I.xMin+I.xMax)/2,y:(I.yMin+I.yMax)/2}),Math.atan2(D.y-L.y,L.x-D.x)}function F(L,D,I){let E=2*Math.PI,_=te(this),b=_.xMax-_.xMin,T=_.yMax-_.yMin,z=Math.atan2(T,b),O=b/2,f=T/2,a=_.xMin+O,g=_.yMin+f,y={x:a,y:g},o=L,n=1,r=!1,l=1,d=1;for(;o<-Math.PI;)o+=E;for(;o>Math.PI;)o-=E;return n=Math.tan(o),o>-z&&o<=z?(d=-1,r=!0):o>z&&o<=Math.PI-z?d=-1:o>Math.PI-z||o<=-(Math.PI-z)?(l=-1,r=!0):l=-1,r?(y.x+=l*O,y.y+=d*O*n):(y.x+=T/(2*n)*l,y.y+=d*f),I.x!==a&&(y.x=I.x),I.y!==g&&(y.y=I.y),{x:y.x+D*Math.cos(o),y:y.y-D*Math.sin(o)}}$.compose=function(L,D,I){let E=I.prototype;E.getPathfinderAnchorPoint||(L.prototype.callbacks.push(function(_){!1!==_.options.connectors.enabled&&((_.options.pathfinder||_.series.reduce(function(b,T){return T.options&&J(!0,T.options.connectors=T.options.connectors||{},T.options.pathfinder),b||T.options&&T.options.pathfinder},!1))&&(J(!0,_.options.connectors=_.options.connectors||{},_.options.pathfinder),pe('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new D(this),this.pathfinder.update(!0))}),E.getMarkerVector=F,E.getPathfinderAnchorPoint=A,E.getRadiansToVector=B,le(Z))}}(ve||(ve={})),ve}),Pe(V,"Gantt/Pathfinder.js",[V["Gantt/Connection.js"],V["Gantt/PathfinderAlgorithms.js"],V["Gantt/PathfinderComposition.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{addEvent:fe,defined:pe,pick:J,splat:te}=le,$=Math.max,A=Math.min;class B{static compose(L,D){re.compose(L,B,D)}constructor(L){this.init(L)}init(L){this.chart=L,this.connections=[],fe(L,"redraw",function(){this.pathfinder.update()})}update(L){let D=this.chart,I=this,E=I.connections;I.connections=[],D.series.forEach(function(_){_.visible&&!_.options.isInternal&&_.points.forEach(function(b){let T,z=b.options;z&&z.dependency&&(z.connect=z.dependency);let O=b.options?.connect&&te(b.options.connect);b.visible&&!1!==b.isInside&&O&&O.forEach(function(f){(T=D.get("string"==typeof f?f:f.to))instanceof ve&&T.series.visible&&T.visible&&!1!==T.isInside&&I.connections.push(new Z(b,T,"string"==typeof f?{}:f))})})});for(let b,T,_=0,z=E.length,O=I.connections.length;_o.yMin-r&&y.yMin-ro.xMin-r&&y.xMin-ro.xMax?y.xMin-o.xMax:o.xMin-y.xMax:1/0,k=d?y.yMin>o.yMax?y.yMin-o.yMax:o.yMin-y.yMax:1/0;return d&&l?r?g(y,o,Math.floor(r/2)):1/0:A(C,k)}(b[f],b[a]))<80&&O.push(T);return O.push(80),$(Math.floor(O.sort(function(f,a){return f-a})[Math.floor(O.length/10)]/2-1),1)}(E),E.forEach(function(b){b.xMin-=_,b.xMax+=_,b.yMin-=_,b.yMax+=_})),E}getObstacleMetrics(L){let E,_,D=0,I=0,b=L.length;for(;b--;)E=L[b].xMax-L[b].xMin,_=L[b].yMax-L[b].yMin,D=1&&(te.plotHeight=B,te.redrawTrigger="adjustHeight",te.setSize(void 0,te.chartHeight+F,$)),J.series.forEach(function(L){let D=L.sharedClipKey&&te.sharedClips[L.sharedClipKey];D&&D.attr(te.inverted?{width:te.plotHeight}:{height:te.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=null}return{compose:function(J,te){let $=te.prototype;$.adjustHeight||(ie(J,"afterSetOptions",fe),$.adjustHeight=pe,ie(te,"render",$.adjustHeight))}}}),Pe(V,"masters/modules/static-scale.src.js",[V["Core/Globals.js"],V["Extensions/StaticScale.js"]],function(Z,ie){return ie.compose(Z.Axis,Z.Chart),Z}),Pe(V,"Series/XRange/XRangeSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{correctFloat:ie,isNumber:re,isObject:ve}=Z;return{colorByPoint:!0,dataLabels:{formatter:function(){let le=this.point.partialFill;if(ve(le)&&(le=le.amount),re(le)&&le>0)return ie(100*le)+"%"},inside:!0,verticalAlign:"middle",style:{whiteSpace:"nowrap"}},tooltip:{headerFormat:'{point.x} - {point.x2}
    ',pointFormat:'\u25cf {series.name}: {point.yCategory}
    '},borderRadius:3,pointRange:0}}),Pe(V,"Series/XRange/XRangePoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{column:{prototype:{pointClass:re}}}=Z.seriesTypes,{extend:ve}=ie;class le extends re{static getColorByCategory(pe,J){let te=pe.options.colors||pe.chart.options.colors,A=J.y%(te?te.length:pe.chart.options.chart.colorCount);return{colorIndex:A,color:te&&te[A]}}resolveColor(){let pe=this.series;if(pe.options.colorByPoint&&!this.options.color){let J=le.getColorByCategory(pe,this);pe.chart.styledMode||(this.color=J.color),this.options.colorIndex||(this.colorIndex=J.colorIndex)}else this.color=this.options.color||pe.color}constructor(pe,J){super(pe,J),this.y||(this.y=0)}setState(){super.setState.apply(this,arguments),this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){let pe=super.getLabelConfig.call(this),J=this.series.yAxis.categories;return pe.x2=this.x2,pe.yCategory=this.yCategory=J&&J[this.y],pe.key=this.category||this.name,pe}isValid(){return"number"==typeof this.x&&"number"==typeof this.x2}}return ve(le.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]}),le}),Pe(V,"Series/XRange/XRangeSeries.js",[V["Core/Globals.js"],V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"],V["Series/XRange/XRangeSeriesDefaults.js"],V["Series/XRange/XRangePoint.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe,noop:J}=Z,{parse:te}=ie,{column:$}=re.seriesTypes,{addEvent:A,clamp:B,defined:F,extend:L,find:D,isNumber:I,isObject:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=ve;function O(){let a,g;if(this.isXAxis){for(let y of(a=b(this.dataMax,-Number.MAX_VALUE),this.series))if(y.x2Data)for(let o of y.x2Data)o&&o>a&&(a=o,g=!0);g&&(this.dataMax=a)}}class f extends ${static compose(g){T(pe,"Series.XRange")&&A(g,"afterGetSeriesExtremes",O)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}getColumnMetrics(){let g=()=>{for(let o of this.chart.series){let n=o.xAxis;o.xAxis=o.yAxis,o.yAxis=n}};g();let y=super.getColumnMetrics();return g(),y}cropData(g,y,o,n){let r=super.cropData(this.x2Data,y,o,n);return r.xData=g.slice(r.start,r.end),r}findPointIndex(g){let y,{cropStart:o,points:n}=this,{id:r}=g;if(r){let l=D(n,d=>d.id===r);y=l?l.index:void 0}if(void 0===y){let l=D(n,d=>d.x===g.x&&d.x2===g.x2&&!d.touched);y=l?l.index:void 0}return this.cropped&&I(y)&&I(o)&&y>=o&&(y-=o),y}alignDataLabel(g){let y=g.plotX;g.plotX=b(g.dlBox&&g.dlBox.centerX,g.plotX),g.dataLabel&&g.shapeArgs?.width&&g.dataLabel.css({width:`${g.shapeArgs.width}px`}),super.alignDataLabel.apply(this,arguments),g.plotX=y}translatePoint(g){let X,G,R,K,q,he,y=this.xAxis,o=this.yAxis,n=this.columnMetrics,r=this.options,l=r.minPointLength||0,d=(g.shapeArgs&&g.shapeArgs.width||0)/2,C=this.pointXOffset=n.offset,k=b(g.x2,g.x+(g.len||0)),p=r.borderRadius,S=this.chart.plotTop,j=this.chart.plotLeft,H=g.plotX,Y=y.translate(k,0,0,0,1),U=Math.abs(Y-H),se=this.chart.inverted,w=b(r.borderWidth,1)%2/2,x=n.offset,N=Math.round(n.width);l&&((X=l-U)<0&&(X=0),H-=X/2,Y+=X/2),H=Math.max(H,-10),Y=B(Y,-10,y.len+10),F(g.options.pointWidth)&&(x-=(Math.ceil(g.options.pointWidth)-N)/2,N=Math.ceil(g.options.pointWidth)),r.pointPlacement&&I(g.plotY)&&o.categories&&(g.plotY=o.translate(g.y,0,1,0,1,r.pointPlacement));let me=Math.floor(Math.min(H,Y))+w,Ce=Math.floor(Math.max(H,Y))+w-me,Se=Math.min(z("object"==typeof p?p.radius:p||0,N),Math.min(Ce,N)/2),Oe={x:me,y:Math.floor(g.plotY+x)+w,width:Ce,height:N,r:Se};g.shapeArgs=Oe,se?g.tooltipPos[1]+=C+d:g.tooltipPos[0]-=d+C-Oe.width/2,K=(R=Oe.x)+Oe.width,R<0||K>y.len?(R=B(R,0,y.len),q=(K=B(K,0,y.len))-R,g.dlBox=_(Oe,{x:R,width:K-R,centerX:q?q/2:null})):g.dlBox=null;let Ae=g.tooltipPos,Fe=se?1:0,oe=se?0:1,ee=this.columnMetrics?this.columnMetrics.offset:-n.width/2;se?Ae[Fe]+=Oe.width/2:Ae[Fe]=B(Ae[Fe]+(y.reversed?-1:0)*Oe.width,y.left-j,y.left+y.len-j-1),Ae[oe]=B(Ae[oe]+(se?-1:1)*ee,o.top-S,o.top+o.len-S-1),(G=g.partialFill)&&(E(G)&&(G=G.amount),I(G)||(G=0),g.partShapeArgs=_(Oe),he=Math.max(Math.round(U*G+g.plotX-H),0),g.clipRectArgs={x:y.reversed?Oe.x+U-he:Oe.x,y:Oe.y,width:he,height:Oe.height})}translate(){for(let g of(super.translate.apply(this,arguments),this.points))this.translatePoint(g)}drawPoint(g,y){let o=this.options,n=this.chart.renderer,r=g.shapeType,l=g.shapeArgs,d=g.partShapeArgs,C=g.clipRectArgs,k=g.state,p=o.states[k||"normal"]||{},S=void 0===k?"attr":y,j=this.pointAttribs(g,k),H=b(this.chart.options.chart.animation,p.animation),Y=g.graphic,U=g.partialFill;if(g.isNull||!1===g.visible)Y&&(g.graphic=Y.destroy());else if(Y?Y.rect[y](l):(g.graphic=Y=n.g("point").addClass(g.getClassName()).add(g.group||this.group),Y.rect=n[r](_(l)).addClass(g.getClassName()).addClass("highcharts-partfill-original").add(Y)),d&&(Y.partRect?(Y.partRect[y](_(d)),Y.partialClipRect[y](_(C))):(Y.partialClipRect=n.clipRect(C.x,C.y,C.width,C.height),Y.partRect=n[r](d).addClass("highcharts-partfill-overlay").add(Y).clip(Y.partialClipRect))),!this.chart.styledMode&&(Y.rect[y](j,H).shadow(o.shadow),d)){E(U)||(U={}),E(o.partialFill)&&(U=_(o.partialFill,U));let se=U.fill||te(j.fill).brighten(-.3).get()||te(g.color||this.color).brighten(-.3).get();j.fill=se,Y.partRect[S](j,H).shadow(o.shadow)}}drawPoints(){let g=this.getAnimationVerb();for(let y of this.points)this.drawPoint(y,g)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(g){let y=g.shapeArgs,o=g.plotX,n=g.plotY;return y?void 0!==o&&void 0!==n&&n>=0&&n<=this.yAxis.len&&(y.x||0)+(y.width||0)>=0&&o<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}return f.defaultOptions=_($.defaultOptions,le),L(f.prototype,{pointClass:fe,pointArrayMap:["x2","y"],getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:re.series.prototype.animate,autoIncrement:J,buildKDTree:J}),re.registerSeriesType("xrange",f),f}),Pe(V,"masters/modules/xrange.src.js",[V["Core/Globals.js"],V["Series/XRange/XRangeSeries.js"]],function(Z,ie){return ie.compose(Z.Axis),Z}),Pe(V,"Series/Gantt/GanttPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{xrange:{prototype:{pointClass:re}}}=Z.seriesTypes,{pick:ve}=ie;class le extends re{static setGanttPointAliases(pe){function J(te,$){void 0!==$&&(pe[te]=$)}J("x",ve(pe.start,pe.x)),J("x2",ve(pe.end,pe.x2)),J("partialFill",ve(pe.completed,pe.partialFill))}applyOptions(pe,J){let te=super.applyOptions(pe,J);return le.setGanttPointAliases(te),te}isValid(){return("number"==typeof this.start||"number"==typeof this.x)&&("number"==typeof this.end||"number"==typeof this.x2||this.milestone)}}return le}),Pe(V,"Series/Gantt/GanttSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
    ',pointFormat:null,pointFormatter:function(){let re=this.series,ve=re.xAxis,le=re.tooltipOptions.dateTimeLabelFormats,fe=ve.options.startOfWeek,pe=re.tooltipOptions,J=this.options.milestone,te=pe.xDateFormat,$=""+(this.name||this.yCategory)+"";if(pe.pointFormat)return this.tooltipFormatter(pe.pointFormat);!te&&ie(this.start)&&(te=re.chart.time.getDateFormat(ve.closestPointRange,this.start,fe,le||{}));let A=re.chart.time.dateFormat(te,this.start),B=re.chart.time.dateFormat(te,this.end);return $+="
    ",$+=J?A+"
    ":"Start: "+A+"
    End: "+B+"
    ",$}},connectors:{type:"simpleConnect",animation:{reversed:!0},radius:0,startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}}}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;S{se.getOffset()})}Y&&j.apply(this)}function T(j){if(!0===(this.options.grid||{}).enabled){let{axisTitle:H,height:Y,horiz:U,left:se,offset:w,opposite:X,options:G,top:x,width:N}=this,R=this.tickSize(),K=H&&H.getBBox().width,q=G.title.x,he=G.title.y,me=L(G.title.margin,U?5:10),Ce=H?this.chart.renderer.fontMetrics(H).f:0,Se=(U?x+Y:se)+(U?1:-1)*(X?-1:1)*(R?R[0]/2:0)+(this.side===ve.bottom?Ce:0);j.titlePosition.x=U?se-(K||0)/2-me+q:Se+(X?N:0)+w+q,j.titlePosition.y=U?Se-(X?Y:0)+(X?Ce:-Ce)/2+w+he:x-me+he}}function z(){let{chart:j,options:{grid:H={}},userOptions:Y}=this;if(H.enabled&&function(U){let se=U.options;se.labels.align=L(se.labels.align,"center"),U.categories||(se.showLastLabel=!1),U.labelRotation=0,se.labels.rotation=0,se.minTickInterval=1}(this),H.columns){let U=this.grid.columns=[],se=this.grid.columnIndex=0;for(;++seX.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let X,G,x=this.tickmarkOffset,N=this.tickPositions[this.tickPositions.length-1],R=this.tickPositions[0];for(;(X=this.hiddenLabels.pop())&&X.element;)X.show();for(;(G=this.hiddenMarks.pop())&&G.element;)G.show();(X=this.ticks[R].label)&&(U-R>x?this.hiddenLabels.push(X.hide()):X.show()),(X=this.ticks[N].label)&&(N-se>x?this.hiddenLabels.push(X.hide()):X.show());let K=this.ticks[N].mark;K&&N-se0&&this.ticks[N].isLast&&this.hiddenMarks.push(K.hide())}}}function f(){let j=this.tickPositions&&this.tickPositions.info,H=this.options,U=this.userOptions.labels||{};(H.grid||{}).enabled&&(this.horiz?(this.series.forEach(se=>{se.options.pointRange=0}),j&&H.dateTimeLabelFormats&&H.labels&&!J(U.align)&&(!1===H.dateTimeLabelFormats[j.unitName].range||j.count>1)&&(H.labels.align="left",J(U.x)||(H.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function a(j){let H,Y=this.options,U=j.userOptions,se=Y&&E(Y.grid)?Y.grid:{};!0===se.enabled&&(H=F(!0,{className:"highcharts-grid-axis "+(U.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},U),"xAxis"!==this.coll||(J(U.linkedTo)&&!J(U.tickPixelInterval)&&(H.tickPixelInterval=350),!(!J(U.tickPixelInterval)&&J(U.linkedTo))||J(U.tickPositioner)||J(U.tickInterval)||J(U.units)||(H.tickPositioner=function(w,X){let G=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(G){let N,x=H.units||[],R=1,K="year";for(let me=0;mej.setScale())}function o(j){let{horiz:H,maxLabelDimensions:Y,options:{grid:U={}}}=this;if(U.enabled&&Y){let se=2*this.options.labels.distance,w=H?U.cellHeight||se+Y.height:se+Y.width;A(j.tickSize)?j.tickSize[0]=w:j.tickSize=[w,0]}}function n(){this.axes.forEach(j=>{(j.grid&&j.grid.columns||[]).forEach(H=>{H.setAxisSize(),H.setAxisTranslation()})})}function r(j){let{grid:H}=this;(H.columns||[]).forEach(Y=>Y.destroy(j.keepEvents)),H.columns=void 0}function l(j){let H=j.userOptions||{},Y=H.grid||{};Y.enabled&&J(Y.borderColor)&&(H.tickColor=H.lineColor=Y.borderColor),this.grid||(this.grid=new S(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function d(j){let H=this.label,Y=this.axis,U=Y.reversed,se=Y.chart,w=Y.options.grid||{},X=Y.options.labels,G=X.align,x=ve[Y.side],N=j.tickmarkOffset,R=Y.tickPositions,K=this.pos-N,q=B(R[j.index+1])?R[j.index+1]-N:(Y.max||0)+N,he=Y.tickSize("tick"),me=he?he[0]:0,Ce=he?he[1]/2:0;if(!0===w.enabled){let Se,Oe,Ae,Fe;if("top"===x?Oe=(Se=Y.top+Y.offset)-me:"bottom"===x?Se=(Oe=se.chartHeight-Y.bottom+Y.offset)+me:(Se=Y.top+Y.len-(Y.translate(U?q:K)||0),Oe=Y.top+Y.len-(Y.translate(U?K:q)||0)),"right"===x?Fe=(Ae=se.chartWidth-Y.right+Y.offset)+me:"left"===x?Ae=(Fe=Y.left+Y.offset)-me:(Ae=Math.round(Y.left+(Y.translate(U?q:K)||0))-Ce,Fe=Math.min(Math.round(Y.left+(Y.translate(U?K:q)||0))-Ce,Y.left+Y.len)),this.slotWidth=Fe-Ae,j.pos.x="left"===G?Ae:"right"===G?Fe:Ae+(Fe-Ae)/2,j.pos.y=Oe+(Se-Oe)/2,H){let oe=se.renderer.fontMetrics(H),ee=H.getBBox().height;if(X.useHTML)j.pos.y+=oe.b+-ee/2;else{let de=Math.round(ee/oe.h);j.pos.y+=(oe.b-(oe.h-oe.f))/2+-(de-1)*oe.h/2}}j.pos.x+=Y.horiz&&X.x||0}}function C(j){let{axis:H,value:Y}=j;if(H.options.grid&&H.options.grid.enabled){let U,se=H.tickPositions,w=(H.linkedParent||H).series[0],X=Y===se[0],G=Y===se[se.length-1],x=w&&$(w.options.data,function(N){return N[H.isXAxis?"x":"y"]===Y});x&&w.is("gantt")&&(U=F(x),ie.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(U)),j.isFirst=X,j.isLast=G,j.point=U}}function k(){let j=this.options,H=j.grid||{},Y=this.categories,U=this.tickPositions,se=U[0],w=U[1],X=U[U.length-1],G=U[U.length-2],R=this.linkedParent&&this.linkedParent.min||this.min,K=this.linkedParent&&this.linkedParent.max||this.max,q=this.tickInterval,he=B(R)&&R>=se+q&&RR,Ce=B(K)&&X>K&&X-qG;!0===H.enabled&&!Y&&(this.isXAxis||this.isLinked)&&((me||he)&&!j.startOnTick&&(U[0]=R),(Ce||Se)&&!j.endOnTick&&(U[U.length-1]=K))}function p(j){let{options:{grid:Y={}}}=this;return!0===Y.enabled&&this.categories?this.tickInterval:j.apply(this,Array.prototype.slice.call(arguments,1))}(le=ve||(ve={}))[le.top=0]="top",le[le.right=1]="right",le[le.bottom=2]="bottom",le[le.left=3]="left";class S{constructor(H){this.axis=H}isOuterAxis(){let H=this.axis,Y=H.chart,U=H.grid.columnIndex,se=H.linkedParent?.grid.columns||H.grid.columns||[],w=U?H.linkedParent:H,X=-1,G=0;return 3===H.side&&!Y.inverted&&se.length?!H.linkedParent:((Y[H.coll]||[]).forEach((x,N)=>{x.side!==H.side||x.options.isInternal||(G=N,x!==w||(X=N))}),G===X&&(!B(U)||se.length===U))}renderBorder(H){let Y=this.axis,U=Y.chart.renderer,se=Y.options,w=U.path(H).addClass("highcharts-axis-line").add(Y.axisGroup);return U.styledMode||w.attr({stroke:se.lineColor,"stroke-width":se.lineWidth,zIndex:7}),w}}return fe.E=function(j){return this.dateFormat("%a",j,!0).charAt(0)},fe.W=function(j){let H=this,Y=new this.Date(j);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(X){H.set(X,Y,0)});let U=(this.get("Day",Y)+6)%7,se=new this.Date(Y.valueOf());this.set("Date",se,this.get("Date",Y)-U+3);let w=new this.Date(this.get("FullYear",se),0,1);return 4!==this.get("Day",w)&&(this.set("Month",Y,0),this.set("Date",Y,1+(11-this.get("Day",w))%7)),(1+Math.floor((se.valueOf()-w.valueOf())/6048e5)).toString()},{compose:function(j,H,Y){return j.keepProps.includes("grid")||(j.keepProps.push("grid"),j.prototype.getMaxLabelDimensions=_,I(j.prototype,"unsquish",p),I(j.prototype,"getOffset",b),pe(j,"init",l),pe(j,"afterGetTitlePosition",T),pe(j,"afterInit",z),pe(j,"afterRender",O),pe(j,"afterSetAxisTranslation",f),pe(j,"afterSetOptions",a),pe(j,"afterSetOptions",g),pe(j,"afterSetScale",y),pe(j,"afterTickSize",o),pe(j,"trimTicks",k),pe(j,"destroy",r),pe(H,"afterSetChartSize",n),pe(Y,"afterGetLabelPosition",d),pe(Y,"labelFormat",C)),j}}}),Pe(V,"Gantt/Tree.js",[V["Core/Utilities.js"]],function(Z){let{extend:ie,isNumber:re,pick:ve}=Z;function le(fe,pe,J,te,$,A){let E,_,B=A&&A.after,F=A&&A.before,L={data:te,depth:J-1,id:fe,level:J,parent:pe||""},D=0,I=0;"function"==typeof F&&F(L,A);let b=($[fe]||[]).map(T=>{let z=le(T.id,fe,J+1,T,$,A),O=T.start||NaN,f=!0===T.milestone?O:T.end||NaN;return E=!re(E)||O_?f:_,D=D+1+z.descendants,I=Math.max(z.height+1,I),z});return te&&(te.start=ve(te.start,E),te.end=ve(te.end,_)),ie(L,{children:b,descendants:D,height:I}),"function"==typeof B&&B(L,A),L}return{getNode:le,getTree:function(fe,pe){return le("",null,1,null,function(J){let te=[],$=J.reduce((A,B)=>{let{parent:F="",id:L}=B;return void 0===A[F]&&(A[F]=[]),A[F].push(B),L&&te.push(L),A},{});return Object.keys($).forEach(A=>{if(""!==A&&-1===te.indexOf(A)){let B=$[A].map(function(F){let{...L}=F;return L});$[""].push(...B),delete $[A]}}),$}(fe),pe)}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridTick.js",[V["Core/Utilities.js"]],function(Z){let{addEvent:ie,removeEvent:re,isObject:ve,isNumber:le,pick:fe,wrap:pe}=Z;function J(){this.treeGrid||(this.treeGrid=new A(this))}function te(B,F,L,D,I,E,_,b,T){let z,O,f,a=fe(this.options&&this.options.labels,E),g=this.pos,y=this.axis,o="treegrid"===y.options.type,n=B.apply(this,[F,L,D,I,a,_,b,T]);if(o){let{width:r=0,padding:l=(y.linkedParent?0:5)}=a&&ve(a.symbol,!0)?a.symbol:{},d=a&&le(a.indentation)?a.indentation:0;f=(O=(z=y.treeGrid.mapOfPosToGridNode)&&z[g])&&O.depth||1,n.x+=r+2*l+(f-1)*d}return n}function $(B){let F,L,D,{pos:I,axis:E,label:_,treeGrid:b,options:T}=this,z=b?.labelIcon,O=_?.element,{treeGrid:f,options:a,chart:g,tickPositions:y}=E,o=f.mapOfPosToGridNode,n=fe(T?.labels,a?.labels),r=n&&ve(n.symbol,!0)?n.symbol:{},l=o&&o[I],{descendants:d,depth:C}=l||{},k=l&&d&&d>0,p="treegrid"===a.type&&O,S=y.indexOf(I)>-1,j="highcharts-treegrid-node-",H=j+"level-",Y=g.styledMode;p&&l&&_.removeClass(RegExp(H+".*")).addClass(H+C),B.apply(this,Array.prototype.slice.call(arguments,1)),p&&k?(F=f.isCollapsed(l),function(U,se){let w=U.treeGrid,X=!w.labelIcon,G=se.renderer,x=se.xy,N=se.options,R=N.width||0,K=N.height||0,he={x:x.x-R/2-(N.padding??U.axis.linkedParent?0:5),y:x.y-K/2},me=se.collapsed?90:180,Ce=se.show&&le(he.y),Se=w.labelIcon;Se||(w.labelIcon=Se=G.path(G.symbols[N.type](N.x||0,N.y||0,R,K)).addClass("highcharts-label-icon").add(se.group)),Se[Ce?"show":"hide"](),G.styledMode||Se.attr({cursor:"pointer",fill:fe(se.color,"#666666"),"stroke-width":1,stroke:N.lineColor,strokeWidth:N.lineWidth||0}),Se[X?"attr":"animate"]({translateX:he.x,translateY:he.y,rotation:me})}(this,{color:!Y&&_.styles.color||"",collapsed:F,group:_.parentGroup,options:r,renderer:_.renderer,show:S,xy:_.xy}),L=j+(F?"collapsed":"expanded"),D=j+(F?"expanded":"collapsed"),_.addClass(L).removeClass(D),Y||_.css({cursor:"pointer"}),[_,z].forEach(U=>{U&&!U.attachedTreeGridEvents&&(ie(U.element,"mouseover",function(){_.addClass("highcharts-treegrid-node-active"),_.renderer.styledMode||_.css({textDecoration:"underline"})}),ie(U.element,"mouseout",function(){!function(se,w){let X=ve(w.style)?w.style:{};se.removeClass("highcharts-treegrid-node-active"),se.renderer.styledMode||se.css({textDecoration:X.textDecoration||"none"})}(_,n)}),ie(U.element,"click",function(){b.toggleCollapse()}),U.attachedTreeGridEvents=!0)})):z&&(re(O),_?.css({cursor:"default"}),z.destroy())}class A{static compose(F){let L=F.prototype;L.toggleCollapse||(ie(F,"init",J),pe(L,"getLabelPosition",te),pe(L,"renderLabel",$),L.collapse=function(D){this.treeGrid.collapse(D)},L.expand=function(D){this.treeGrid.expand(D)},L.toggleCollapse=function(D){this.treeGrid.toggleCollapse(D)})}constructor(F){this.tick=F}collapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.collapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(F){let{pos:L,axis:D}=this.tick,{treeGrid:I,brokenAxis:E}=D,_=I.mapOfPosToGridNode;if(E&&_){let T=I.expand(_[L]);E.setBreaks(T,fe(F,!0))}}toggleCollapse(F){let L=this.tick,D=L.axis,I=D.brokenAxis;if(I&&D.treeGrid.mapOfPosToGridNode){let b=D.treeGrid.toggleCollapse(D.treeGrid.mapOfPosToGridNode[L.pos]);I.setBreaks(b,fe(F,!0))}}}return A}),Pe(V,"Series/TreeUtilities.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){let{extend:re,isArray:ve,isNumber:le,isObject:fe,merge:pe,pick:J,relativeLength:te}=ie;return{getColor:function($,A){let B,F,L,D,I,E,_=A.index,T=A.parentColor,z=A.parentColorIndex,O=A.series,f=A.colors,a=A.siblings;return $&&(B=O.points[$.i],F=A.mapOptionsToLevel[$.level]||{},B&&F.colorByPoint&&(D=B.index%(f?f.length:O.chart.options.chart.colorCount),L=f&&f[D]),O.chart.styledMode||(I=J(B&&B.options.color,F&&F.color,L,T&&(o=>{let n=F&&F.colorVariation;return n&&"brightness"===n.key&&_&&a?Z.parse(o).brighten(n.to*(_/a)).get():o})(T),O.color)),E=J(B&&B.options.colorIndex,F&&F.colorIndex,D,z,A.colorIndex)),{color:I,colorIndex:E}},getLevelOptions:function($){let B,F,L,D,I,E,A={};if(fe($))for(D=le($.from)?$.from:1,E=$.levels,F={},B=fe($.defaults)?$.defaults:{},ve(E)&&(F=E.reduce((_,b)=>{let T,z,O;return fe(b)&&le(b.level)&&(z=J((O=pe({},b)).levelIsConstant,B.levelIsConstant),delete O.levelIsConstant,delete O.level,fe(_[T=b.level+(z?0:D-1)])?pe(!0,_[T],O):_[T]=O),_},{})),I=le($.to)?$.to:1,L=0;L<=I;L++)A[L]=pe({},B,fe(F[L])?F[L]:{});return A},getNodeWidth:function($,A){let{chart:B,options:F}=$,{nodeDistance:L=0,nodeWidth:D=0}=F,{plotSizeX:I=1}=B;if("auto"===D){if("string"==typeof L&&/%$/.test(L))return I/(A+parseFloat(L)/100*(A-1));let E=Number(L);return(I+E)/(A||1)-E}return te(D,I)},setTreeValues:function $(A,B){let F=B.before,L=B.idRoot,E=B.points[A.i],_=E&&E.options||{},b=[],T=0;A.levelDynamic=A.level-(!1!==B.levelIsConstant?0:B.mapIdToNode[L].level),A.name=J(E&&E.name,""),A.visible=L===A.id||!0===B.visible,"function"==typeof F&&(A=F(A,B)),A.children.forEach((O,f)=>{let a=re({},B);re(a,{index:f,siblings:A.children.length,visible:A.visible}),O=$(O,a),b.push(O),O.visible&&(T+=O.val)});let z=J(_.value,T);return A.visible=z>=0&&(T>0||A.visible),A.children=b,A.childrenTotal=T,A.isLeaf=A.visible&&!T,A.val=z,A},updateRootId:function($){let A,B;return fe($)&&(B=fe($.options)?$.options:{},A=J($.rootNode,B.rootId,""),fe($.userOptions)&&($.userOptions.rootId=A),$.rootNode=A),A}}}),Pe(V,"Core/Axis/TreeGrid/TreeGridAxis.js",[V["Core/Axis/BrokenAxis.js"],V["Core/Axis/GridAxis.js"],V["Gantt/Tree.js"],V["Core/Axis/TreeGrid/TreeGridTick.js"],V["Series/TreeUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let pe,{getLevelOptions:J}=le,{addEvent:te,find:$,fireEvent:A,isArray:B,isObject:F,isString:L,merge:D,pick:I,removeEvent:E,wrap:_}=fe;function b(o,n){let r=o.collapseEnd||0,l=o.collapseStart||0;return r>=n&&(l-=.5),{from:l,to:r,showPoints:!1}}function T(o,n,r){let l=[],d=[],C={},k="boolean"==typeof n&&n,p={},S=-1,j=re.getTree(o,{after:function(H){let Y=p[H.pos],U=0,se=0;Y.children.forEach(function(w){se+=(w.descendants||0)+1,U=Math.max((w.height||0)+1,U)}),Y.descendants=se,Y.height=U,Y.collapsed&&d.push(Y)},before:function(H){let Y,U,se=F(H.data,!0)?H.data:{},w=L(se.name)?se.name:"",X=C[H.parent],G=F(X,!0)?p[X.pos]:null;k&&F(G,!0)&&(Y=$(G.children,function(x){return x.name===w}))?(U=Y.pos,Y.nodes.push(H)):U=S++,!p[U]&&(p[U]=Y={depth:G?G.depth+1:0,name:w,id:se.id,nodes:[H],children:[],pos:U},-1!==U&&l.push(w),F(G,!0)&&G.children.push(Y)),L(H.id)&&(C[H.id]=H),Y&&!0===se.collapsed&&(Y.collapsed=!0),H.pos=U}});return{categories:l,mapOfIdToNode:C,mapOfPosToGridNode:p=function(H,Y){let U=function(se,w,X){let x=w+(-1===w?0:Y-1),N=(x-w)/2,R=w+N;return se.nodes.forEach(function(K){let q=K.data;F(q,!0)&&(q.y=w+(q.seriesIndex||0),delete q.seriesIndex),K.pos=R}),X[R]=se,se.pos=R,se.tickmarkOffset=N+.5,se.collapseStart=x+.5,se.children.forEach(function(K){U(K,x+1,X),x=(K.collapseEnd||0)-.5}),se.collapseEnd=x+.5,X};return U(H[-1],-1,{})}(p,r),collapsedNodes:d,tree:j}}function z(o){o.target.axes.filter(function(n){return"treegrid"===n.options.type}).forEach(function(n){let S,j,r=n.options||{},l=r.labels,d=r.uniqueNames,C=r.max,k=!n.treeGrid.mapOfPosToGridNode||n.series.some(function(H){return!H.hasRendered||H.isDirtyData||H.isDirty}),p=0;if(k){if(S=n.series.reduce(function(H,Y){return Y.visible&&((Y.options.data||[]).forEach(function(U){Y.options.keys&&Y.options.keys.length&&(U=Y.pointClass.prototype.optionsToObject.call({series:Y},U),Y.pointClass.setGanttPointAliases(U)),F(U,!0)&&(U.seriesIndex=p,H.push(U))}),!0===d&&p++),H},[]),C&&S.length=0&&U.indexOf(se.x2)>=0&&(U=se)}),F(U,!0)?D(U):U});H.visible&&H.setData(Y,!1)}),n.treeGrid.mapOptionsToLevel=J({defaults:l,from:1,levels:l&&l.levels,to:n.treeGrid.tree&&n.treeGrid.tree.height}),"beforeRender"===o.type&&(n.treeGrid.collapsedNodes=j.collapsedNodes)}})}function O(o,n){let k,p,S,d=this.ticks,C=d[n];"treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode?((k=(this.treeGrid.mapOptionsToLevel||{})[(S=this.treeGrid.mapOfPosToGridNode[n]).depth])&&(p={labels:k}),!C&&pe?d[n]=C=new pe(this,n,void 0,void 0,{category:S.name,tickmarkOffset:S.tickmarkOffset,options:p}):(C.parameters.category=S.name,C.options=p,C.addLabel())):o.apply(this,Array.prototype.slice.call(arguments,1))}function f(o,n,r,l){let d=this,C="treegrid"===r.type;d.treeGrid||(d.treeGrid=new y(d)),C&&(te(n,"beforeRender",z),te(n,"beforeRedraw",z),te(n,"addSeries",function(k){if(k.options.data){let p=T(k.options.data,r.uniqueNames||!1,1);d.treeGrid.collapsedNodes=(d.treeGrid.collapsedNodes||[]).concat(p.collapsedNodes)}}),te(d,"foundExtremes",function(){d.treeGrid.collapsedNodes&&d.treeGrid.collapsedNodes.forEach(function(k){let p=d.treeGrid.collapse(k);d.brokenAxis&&(d.brokenAxis.setBreaks(p,!1),d.treeGrid.collapsedNodes&&(d.treeGrid.collapsedNodes=d.treeGrid.collapsedNodes.filter(S=>k.collapseStart!==S.collapseStart||k.collapseEnd!==S.collapseEnd)))})}),te(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),r=D({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},r,{reversed:!0})),o.apply(d,[n,r,l]),C&&(d.hasNames=!0,d.options.showLastLabel=!0)}function a(o){let n=this.options,r="number"==typeof n.linkedTo?this.chart[this.coll]?.[n.linkedTo]:void 0;if("treegrid"===n.type){if(this.min=I(this.userMin,n.min,this.dataMin),this.max=I(this.userMax,n.max,this.dataMax),A(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let l=r.getExtremes();this.min=I(l.min,l.dataMin),this.max=I(l.max,l.dataMax),this.tickPositions=r.tickPositions}this.linkedParent=r}else o.apply(this,Array.prototype.slice.call(arguments,1))}function g(o){let n=this;"treegrid"===n.options.type&&n.visible&&n.tickPositions.forEach(function(r){let l=n.ticks[r];l.label&&l.label.attachedTreeGridEvents&&(E(l.label.element),l.label.attachedTreeGridEvents=!1)}),o.apply(n,Array.prototype.slice.call(arguments,1))}class y{static compose(n,r,l,d){if(!n.keepProps.includes("treeGrid")){let C=n.prototype;n.keepProps.push("treeGrid"),_(C,"generateTick",O),_(C,"init",f),_(C,"setTickInterval",a),_(C,"redraw",g),C.utils={getNode:re.getNode},pe||(pe=d)}return ie.compose(n,r,d),Z.compose(n,l),ve.compose(d),n}constructor(n){this.axis=n}setCollapsedStatus(n){let r=this.axis,l=r.chart;r.series.forEach(function(d){let C=d.options.data;if(n.id&&C){let k=l.get(n.id),p=C[d.data.indexOf(k)];k&&p&&(k.collapsed=n.collapsed,p.collapsed=n.collapsed)}})}collapse(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.push(d),n.collapsed=!0,r.treeGrid.setCollapsedStatus(n),l}expand(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return n.collapsed=!1,r.treeGrid.setCollapsedStatus(n),l.reduce(function(C,k){return(k.to!==d.to||k.from!==d.from)&&C.push(k),C},[])}getTickPositions(){let n=this.axis,r=Math.floor(n.min/n.tickInterval)*n.tickInterval,l=Math.ceil(n.max/n.tickInterval)*n.tickInterval;return Object.keys(n.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,C){let k=+C;return k>=r&&k<=l&&!(n.brokenAxis&&n.brokenAxis.isInAnyBreak(k))&&d.push(k),d},[])}isCollapsed(n){let r=this.axis,l=r.options.breaks||[],d=b(n,r.max);return l.some(function(C){return C.from===d.from&&C.to===d.to})}toggleCollapse(n){return this.isCollapsed(n)?this.expand(n):this.collapse(n)}}return y}),Pe(V,"Series/Gantt/GanttSeries.js",[V["Series/Gantt/GanttPoint.js"],V["Series/Gantt/GanttSeriesDefaults.js"],V["Gantt/Pathfinder.js"],V["Core/Series/SeriesRegistry.js"],V["Extensions/StaticScale.js"],V["Core/Axis/TreeGrid/TreeGridAxis.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe){let{series:J,seriesTypes:{xrange:te}}=ve,{extend:$,isNumber:A,merge:B}=pe;class F extends te{static compose(D,I,E,_){te.compose(D),I&&(le.compose(D,I),E)&&(re.compose(I,E.prototype.pointClass),_&&fe.compose(D,I,E,_))}drawPoint(D,I){let a,E=this.options,_=this.chart.renderer,b=D.shapeArgs,z=D.selected&&"select",O=E.stacking&&!E.borderRadius,f=D.graphic;D.options.milestone?A(D.plotY)&&null!==D.y&&!1!==D.visible?(a=_.symbols.diamond(b.x||0,b.y||0,b.width||0,b.height||0),f?f[I]({d:a}):D.graphic=f=_.path(a).addClass(D.getClassName(),!0).add(D.group||this.group),this.chart.styledMode||D.graphic.attr(this.pointAttribs(D,z)).shadow(E.shadow,null,O)):f&&(D.graphic=f.destroy()):super.drawPoint(D,I)}translatePoint(D){let I,E;super.translatePoint(D),D.options.milestone&&(E=(I=D.shapeArgs).height||0,D.shapeArgs={x:(I.x||0)-E/2,y:I.y,width:E,height:E})}}return F.defaultOptions=B(te.defaultOptions,ie),$(F.prototype,{pointArrayMap:["start","end","y"],pointClass:Z,setData:J.prototype.setData}),ve.registerSeriesType("gantt",F),F}),Pe(V,"masters/modules/gantt.src.js",[V["Core/Globals.js"],V["Extensions/ArrowSymbols.js"],V["Gantt/Connection.js"],V["Extensions/CurrentDateIndication.js"],V["Core/Chart/GanttChart.js"],V["Stock/Navigator/Navigator.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Series/Gantt/GanttSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Connection=Z.Connection||re,Z.GanttChart=Z.GanttChart||le,Z.Navigator=Z.Navigator||fe,Z.RangeSelector=Z.RangeSelector||pe,Z.Scrollbar=Z.Scrollbar||J,Z.ganttChart=Z.GanttChart.ganttChart,ie.compose(Z.SVGRenderer),ve.compose(Z.Axis,Z.PlotLineOrBand),te.compose(Z.Axis,Z.Chart,Z.Series,Z.Tick),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z}),Pe(V,"masters/highcharts-gantt.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highcharts Gantt",Z}),V["masters/highcharts-gantt.src.js"]._modules=V,V["masters/highcharts-gantt.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12168:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Extensions/Pane/PaneComposition.js",[Pe["Core/Utilities.js"]],function(ie){const{addEvent:re,correctFloat:ve,defined:le,pick:fe}=ie;function pe(L){const D=this;let I;return L&&D.pane.forEach(E=>{te(L.chartX-D.plotLeft,L.chartY-D.plotTop,E.center)&&(I=E)}),I}function te(L,D,I,E,_){let b=!0;const T=I[0],z=I[1],O=Math.sqrt(Math.pow(L-T,2)+Math.pow(D-z,2));if(le(E)&&le(_)){const f=Math.atan2(ve(D-z,8),ve(L-T,8));_!==E&&(b=E>_?f>=E&&f<=Math.PI||f<=_&&f>=-Math.PI:f>=E&&f<=ve(_,8))}return O<=Math.ceil(I[2]/2)&&b}function $(L){this.polar&&(L.options.inverted&&([L.x,L.y]=[L.y,L.x]),L.isInsidePlot=this.pane.some(I=>te(L.x,L.y,I.center,I.axis&&I.axis.normalizedStartAngleRad,I.axis&&I.axis.normalizedEndAngleRad)))}function A(L){const D=this.chart;L.hoverPoint&&L.hoverPoint.plotX&&L.hoverPoint.plotY&&D.hoverPane&&!te(L.hoverPoint.plotX,L.hoverPoint.plotY,D.hoverPane.center)&&(L.hoverPoint=void 0)}function B(L){const D=this.chart;D.polar?(D.hoverPane=D.getHoverPane(L),L.filter=function(I){return I.visible&&!(!L.shared&&I.directTouch)&&fe(I.options.enableMouseTracking,!0)&&(!D.hoverPane||I.xAxis.pane===D.hoverPane)}):D.hoverPane=void 0}return{compose:function J(L,D){const I=L.prototype;I.getHoverPane||(I.collectionsWithUpdate.push("pane"),I.getHoverPane=pe,re(L,"afterIsInsidePlot",$),re(D,"afterGetHoverData",A),re(D,"beforeGetHoverData",B))}}}),Z(Pe,"Extensions/Pane/PaneDefaults.js",[],function(){return{pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}}}),Z(Pe,"Extensions/Pane/Pane.js",[Pe["Series/CenteredUtilities.js"],Pe["Extensions/Pane/PaneComposition.js"],Pe["Extensions/Pane/PaneDefaults.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{extend:fe,merge:pe,splat:J}=le;class te{constructor(A,B){this.coll="pane",this.init(A,B)}init(A,B){this.chart=B,this.background=[],B.pane.push(this),this.setOptions(A)}setOptions(A){this.options=A=pe(ve.pane,this.chart.angular?{background:{}}:void 0,A)}render(){const A=this.options;this.group||(this.group=this.chart.renderer.g("pane-group").attr({zIndex:A.zIndex||0}).add()),this.updateCenter();let F=this.options.background;if(F){F=J(F);const L=Math.max(F.length,this.background.length||0);for(let D=0;Dd,y.y=y.high,y._plotY=y.plotY,y.plotY=l,O[g]=y.dataLabel,y.dataLabel=y.dataLabelUpper,y.below=o,a?n.align||(n.align=o?"right":"left"):n.verticalAlign||(n.verticalAlign=o?"top":"bottom")}for(this.options.dataLabels=n,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),g=z;g--;)y=T[g],y&&(y.dataLabelUpper=y.dataLabel,y.dataLabel=O[g],delete y.dataLabels,y.y=y.low,y.plotY=y._plotY)}if(r.enabled||this.hasDataLabels?.()){for(g=z;g--;)if(y=T[g],y){const{plotHigh:l=0,plotLow:d=0}=y;o=r.inside?ld,y.below=!o,a?r.align||(r.align=o?"left":"right"):r.verticalAlign||(r.verticalAlign=o?"bottom":"top")}this.options.dataLabels=r,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(n.enabled)for(g=z;g--;)y=T[g],y&&(y.dataLabels=[y.dataLabelUpper,y.dataLabel].filter(function(l){return!!l}));this.options.dataLabels=f}}alignDataLabel(){te.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){const T=this,z={marker:T.options.marker,symbol:T.symbol};if(T.options.lowMarker){const{options:{marker:O,lowMarker:f}}=T;T.options.marker=I(O,f),f.symbol&&(T.symbol=f.symbol)}return z}restoreMarkerSettings(T){this.options.marker=T.marker,this.symbol=T.symbol}drawPoints(){const T=this,z=T.points.length;let O,f;const a=T.modifyMarkerSettings();for(J.drawPoints.apply(T,arguments),T.restoreMarkerSettings(a),O=0;O=0&&f.plotY<=T.yAxis.len&&f.plotX>=0&&f.plotX<=T.xAxis.len),O++;for(J.drawPoints.apply(T,arguments),O=0;O\u25cf {series.name}: {point.low} - {point.high}
    '},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),$(_,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(b=>{const T=b.high,z=b.plotY;b.isNull?b.plotY=void 0:(b.plotLow=z,b.plotHigh=L(T)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(T):T,!1,!0,void 0,!0):void 0,this.dataModify&&(b.yBottom=b.plotHigh))})},{order:0}),$(_,"afterTranslate",function(){this.points.forEach(b=>{if(this.chart.polar)this.highToXY(b),b.plotLow=b.plotY,b.tooltipPos=[((b.plotHighX||0)+(b.plotLowX||0))/2,((b.plotHigh||0)+(b.plotLow||0))/2];else{const T=b.pos(!1,b.plotLow),z=b.pos(!1,b.plotHigh);T&&z&&(T[0]=(T[0]+z[0])/2,T[1]=(T[1]+z[1])/2),b.tooltipPos=T}})},{order:3}),B(_.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:ie,pointValKey:"low",setStackedPoints:fe}),ve.registerSeriesType("arearange",_),_}),Z(Pe,"Series/AreaSplineRange/AreaSplineRangeSeries.js",[Pe["Series/AreaRange/AreaRangeSeries.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{spline:{prototype:le}}=re.seriesTypes,{merge:fe,extend:pe}=ve;class J extends ie{}return J.defaultOptions=fe(ie.defaultOptions),pe(J.prototype,{getPointSpline:le.getPointSpline}),re.registerSeriesType("areasplinerange",J),J}),Z(Pe,"Series/BoxPlot/BoxPlotSeriesDefaults.js",[],function(){return{threshold:null,tooltip:{pointFormat:'\u25cf {series.name}
    Maximum: {point.high}
    Upper quartile: {point.q3}
    Median: {point.median}
    Lower quartile: {point.q1}
    Minimum: {point.low}
    '},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}}),Z(Pe,"Series/BoxPlot/BoxPlotSeries.js",[Pe["Series/BoxPlot/BoxPlotSeriesDefaults.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{noop:pe}=ve,{extend:J,merge:te,pick:$}=fe;class A extends re{pointAttribs(){return{}}translate(){const F=this,L=F.yAxis,D=F.pointArrayMap;super.translate.apply(F),F.points.forEach(function(I){D.forEach(function(E){null!==I[E]&&(I[E+"Plot"]=L.translate(I[E],0,1,0,1))}),I.plotHigh=I.highPlot})}drawPoints(){const F=this,L=F.points,D=F.options,I=F.chart,E=I.renderer,_=!1!==F.doQuartiles,b=F.options.whiskerLength;let T,z,O,f,a,y,r,l,d,C,k,p,o=0;for(const S of L){r=S.graphic;const j=r?"animate":"attr",H=S.shapeArgs,Y={},U={},se={},w={},X=S.color||F.color;if(typeof S.plotY<"u"){let G;l=Math.round(H.width),d=Math.floor(H.x),C=d+l,k=Math.round(l/2),T=Math.floor(_?S.q1Plot:S.lowPlot),z=Math.floor(_?S.q3Plot:S.lowPlot),O=Math.floor(S.highPlot),f=Math.floor(S.lowPlot),r||(S.graphic=r=E.g("point").add(F.group),S.stem=E.path().addClass("highcharts-boxplot-stem").add(r),b&&(S.whiskers=E.path().addClass("highcharts-boxplot-whisker").add(r)),_&&(S.box=E.path(void 0).addClass("highcharts-boxplot-box").add(r)),S.medianShape=E.path(void 0).addClass("highcharts-boxplot-median").add(r)),I.styledMode||(U.stroke=S.stemColor||D.stemColor||X,U["stroke-width"]=$(S.stemWidth,D.stemWidth,D.lineWidth),U.dashstyle=S.stemDashStyle||D.stemDashStyle||D.dashStyle,S.stem.attr(U),b&&(se.stroke=S.whiskerColor||D.whiskerColor||X,se["stroke-width"]=$(S.whiskerWidth,D.whiskerWidth,D.lineWidth),se.dashstyle=S.whiskerDashStyle||D.whiskerDashStyle||D.dashStyle,S.whiskers.attr(se)),_&&(Y.fill=S.fillColor||D.fillColor||X,Y.stroke=D.lineColor||X,Y["stroke-width"]=D.lineWidth||0,Y.dashstyle=S.boxDashStyle||D.boxDashStyle||D.dashStyle,S.box.attr(Y)),w.stroke=S.medianColor||D.medianColor||X,w["stroke-width"]=$(S.medianWidth,D.medianWidth,D.lineWidth),w.dashstyle=S.medianDashStyle||D.medianDashStyle||D.dashStyle,S.medianShape.attr(w)),y=S.stem.strokeWidth()%2/2,o=d+k+y,G=[["M",o,z],["L",o,O],["M",o,T],["L",o,f]],S.stem[j]({d:G}),_&&(y=S.box.strokeWidth()%2/2,T=Math.floor(T)+y,z=Math.floor(z)+y,d+=y,C+=y,G=[["M",d,z],["L",d,T],["L",C,T],["L",C,z],["L",d,z],["Z"]],S.box[j]({d:G})),b&&(y=S.whiskers.strokeWidth()%2/2,O+=y,f+=y,p=/%$/.test(b)?k*parseFloat(b)/100:b/2,G=[["M",o-p,O],["L",o+p,O],["M",o-p,f],["L",o+p,f]],S.whiskers[j]({d:G})),a=Math.round(S.medianPlot),y=S.medianShape.strokeWidth()%2/2,a+=y,G=[["M",d,a],["L",C,a]],S.medianShape[j]({d:G})}}}toYData(F){return[F.low,F.q1,F.median,F.q3,F.high]}}return A.defaultOptions=te(re.defaultOptions,ie),J(A.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:pe,setStackedPoints:pe}),le.registerSeriesType("boxplot",A),A}),Z(Pe,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Z(Pe,"Series/Bubble/BubbleLegendItem.js",[Pe["Core/Color/Color.js"],Pe["Core/Templating.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{parse:fe}=ie,{noop:pe}=ve,{arrayMax:J,arrayMin:te,isNumber:$,merge:A,pick:B,stableSort:F}=le;return class L{constructor(I,E){this.setState=pe,this.init(I,E)}init(I,E){this.options=I,this.visible=!0,this.chart=E.chart,this.legend=E}addToLegend(I){I.splice(this.options.legendIndex,0,this)}drawLegendSymbol(I){const E=B(I.options.itemDistance,20),_=this.legendItem||{},b=this.options,T=b.ranges,z=b.connectorDistance;let O;if(!T||!T.length||!$(T[0].value))return void(I.options.bubbleLegend.autoRanges=!0);F(T,function(y,o){return o.value-y.value}),this.ranges=T,this.setOptions(),this.render();const f=this.getMaxLabelSize(),a=this.ranges[0].radius,g=2*a;O=z-a+f.width,O=O>0?O:0,this.maxLabel=f,this.movementX="left"===b.labels.align?O:0,_.labelWidth=g+O+E,_.labelHeight=g+f.height/2}setOptions(){const I=this.ranges,E=this.options,_=this.chart.series[E.seriesIndex],b=this.legend.baseline,T={zIndex:E.zIndex,"stroke-width":E.borderWidth},z={zIndex:E.zIndex,"stroke-width":E.connectorWidth},O={align:this.legend.options.rtl||"left"===E.labels.align?"right":"left",zIndex:E.zIndex},f=_.options.marker.fillOpacity,a=this.chart.styledMode;I.forEach(function(g,y){a||(T.stroke=B(g.borderColor,E.borderColor,_.color),T.fill=B(g.color,E.color,1!==f?fe(_.color).setOpacity(f).get("rgba"):_.color),z.stroke=B(g.connectorColor,E.connectorColor,_.color)),I[y].radius=this.getRangeRadius(g.value),I[y]=A(I[y],{center:I[0].radius-I[y].radius+b}),a||A(!0,I[y],{bubbleAttribs:A(T),connectorAttribs:A(z),labelAttribs:O})},this)}getRangeRadius(I){const E=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,E.ranges[E.ranges.length-1].value,E.ranges[0].value,E.minSize,E.maxSize,I)}render(){const I=this.legendItem||{},E=this.chart.renderer,_=this.options.zThreshold;this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),I.symbol=E.g("bubble-legend"),I.label=E.g("bubble-legend-item").css(this.legend.itemStyle||{}),I.symbol.translateX=0,I.symbol.translateY=0,I.symbol.add(I.label),I.label.add(I.group);for(const b of this.ranges)b.value>=_&&this.renderRange(b);this.hideOverlappingLabels()}renderRange(I){const E=this.ranges[0],_=this.legend,b=this.options,T=b.labels,z=this.chart,O=z.series[b.seriesIndex],f=z.renderer,a=this.symbols,g=a.labels,y=I.center,o=Math.abs(I.radius),n=b.connectorDistance||0,r=T.align,C=b.connectorWidth,k=E.radius||0,p=y-o-b.borderWidth/2+C/2,S=(p%1?1:.5)-(C%2?0:.5),j=f.styledMode;let H=_.options.rtl||"left"===r?-n:n;"center"===r&&(H=0,b.connectorDistance=0,I.labelAttribs.align="center"),a.bubbleItems.push(f.circle(k,y+S,o).attr(j?{}:I.bubbleAttribs).addClass((j?"highcharts-color-"+O.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(b.className||"")).add(this.legendItem.symbol)),a.connectors.push(f.path(f.crispLine([["M",k,p],["L",k+H,p]],b.connectorWidth)).attr(j?{}:I.connectorAttribs).addClass((j?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(b.connectorClassName||"")).add(this.legendItem.symbol));const Y=f.text(this.formatLabel(I)).attr(j?{}:I.labelAttribs).css(j?{}:T.style).addClass("highcharts-bubble-legend-labels "+(b.labels.className||"")).add(this.legendItem.symbol),U={x:k+H+b.labels.x,y:p+b.labels.y+.4*Y.getBBox().height};Y.attr(U),g.push(Y),Y.placed=!0,Y.alignAttr=U}getMaxLabelSize(){let E,_;return this.symbols.labels.forEach(function(b){_=b.getBBox(!0),E=E?_.width>E.width?_:E:_}),E||{}}formatLabel(I){const E=this.options,_=E.labels.formatter,b=E.labels.format,{numberFormatter:T}=this.chart;return b?re.format(b,I):_?_.call(I):T(I.value,1)}hideOverlappingLabels(){const _=this.symbols;!this.options.labels.allowOverlap&&_&&(this.chart.hideOverlappingLabels(_.labels),_.labels.forEach(function(b,T){b.newOpacity?b.newOpacity!==b.oldOpacity&&_.connectors[T].show():_.connectors[T].hide()}))}getRanges(){const I=this.legend.bubbleLegend,_=I.options.ranges;let b,T,z=Number.MAX_VALUE,O=-Number.MAX_VALUE;return I.chart.series.forEach(function(f){f.isBubble&&!f.ignoreSeries&&(T=f.zData.filter($),T.length&&(z=B(f.options.zMin,Math.min(z,Math.max(te(T),!1===f.options.displayNegative?f.options.zThreshold:-Number.MAX_VALUE))),O=B(f.options.zMax,Math.max(O,J(T)))))}),b=z===O?[{value:O}]:[{value:z},{value:(z+O)/2},{value:O,autoRanges:!0}],_.length&&_[0].radius&&b.reverse(),b.forEach(function(f,a){_&&_[a]&&(b[a]=A(_[a],f))}),b}predictBubbleSizes(){const I=this.chart,E=I.legend.options,_=E.floating,b="horizontal"===E.layout,T=b?I.legend.lastLineHeight:0,z=I.plotSizeX,O=I.plotSizeY,f=I.series[this.options.seriesIndex],a=f.getPxExtremes(),g=Math.ceil(a.minPxSize),y=Math.ceil(a.maxPxSize),o=Math.min(O,z);let n,r=f.options.maxSize;return _||!/%$/.test(r)?n=y:(r=parseFloat(r),n=(o+T)*r/100/(r/100+1),(b&&O-n>=z||!b&&z-n>=O)&&(n=y)),[g,Math.ceil(n)]}updateRanges(I,E){const _=this.legend.options.bubbleLegend;_.minSize=I,_.maxSize=E,_.ranges=this.getRanges()}correctSizes(){const I=this.legend,b=this.chart.series[this.options.seriesIndex].getPxExtremes(),z=this.options.maxSize;Math.abs(Math.ceil(b.maxPxSize)-z)>1&&(this.updateRanges(this.options.minSize,b.maxPxSize),I.render())}}}),Z(Pe,"Series/Bubble/BubbleLegendComposition.js",[Pe["Series/Bubble/BubbleLegendDefaults.js"],Pe["Series/Bubble/BubbleLegendItem.js"],Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{setOptions:pe}=ve,{composed:J}=le,{addEvent:te,objectEach:$,pushUnique:A,wrap:B}=fe;function F(z,O,f){const a=this,g=a.legend,y=D(a)>=0;let o,n,r;g&&g.options.enabled&&g.bubbleLegend&&g.options.bubbleLegend.autoRanges&&y?(o=g.bubbleLegend.options,n=g.bubbleLegend.predictBubbleSizes(),g.bubbleLegend.updateRanges(n[0],n[1]),o.placed||(g.group.placed=!1,g.allItems.forEach(l=>{r=l.legendItem||{},r.group&&(r.group.translateY=void 0)})),g.render(),a.getMargins(),a.axes.forEach(function(l){l.visible&&l.render(),o.placed||(l.setScale(),l.updateNames(),$(l.ticks,function(d){d.isNew=!0,d.isNewLabel=!0}))}),o.placed=!0,a.getMargins(),z.call(a,O,f),g.bubbleLegend.correctSizes(),b(g,I(g))):(z.call(a,O,f),g&&g.options.enabled&&g.bubbleLegend&&(g.render(),b(g,I(g))))}function D(z){const O=z.series;let f=0;for(;fg.height&&(g.height=O[r].itemHeight);g.step=n}return f}function E(z){const O=this,f=O.bubbleLegend,a=O.options,g=a.bubbleLegend,y=D(O.chart);f&&f.ranges&&f.ranges.length&&(g.ranges.length&&(g.autoRanges=!!g.ranges[0].autoRanges),O.destroyItem(f)),y>=0&&a.enabled&&g.enabled&&(g.seriesIndex=y,O.bubbleLegend=new re(g,O),O.bubbleLegend.addToLegend(z.allItems))}function _(z){if(z.defaultPrevented)return!1;const O=this,f=O.chart,a=O.visible,g=O.chart.legend;let y;g&&g.bubbleLegend&&(O.visible=!a,O.ignoreSeries=a,y=D(f)>=0,g.bubbleLegend.visible!==y&&(g.update({bubbleLegend:{enabled:y}}),g.bubbleLegend.visible=y),O.visible=a)}function b(z,O){const a=z.options.rtl;let g,y,o,n,r=0;z.allItems.forEach((l,d)=>{n=l.legendItem||{},n.group&&(g=n.group.translateX||0,y=n.y||0,o=l.movementX,(o||a&&l.ranges)&&(o=a?g-l.options.maxSize/2:g+o,n.group.attr({translateX:o})),d>O[r].step&&r++,n.group.attr({translateY:Math.round(y+O[r].height/2)}),n.y=y+O[r].height/2)})}return{compose:function L(z,O,f){A(J,"Series.BubbleLegend")&&(pe({legend:{bubbleLegend:ie}}),B(z.prototype,"drawChartBox",F),te(O,"afterGetAllItems",E),te(f,"legendItemClick",_))}}}),Z(Pe,"Series/Bubble/BubblePoint.js",[Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{seriesTypes:{scatter:{prototype:{pointClass:le}}}}=re,{extend:fe}=ve;class pe extends le{haloPath(te){return ie.prototype.haloPath.call(this,0===te?0:(this.marker&&this.marker.radius||0)+te)}}return fe(pe.prototype,{ttBelow:!1}),pe}),Z(Pe,"Series/Bubble/BubbleSeries.js",[Pe["Series/Bubble/BubbleLegendComposition.js"],Pe["Series/Bubble/BubblePoint.js"],Pe["Core/Color/Color.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{parse:J}=ve,{composed:te,noop:$}=le,{series:A,seriesTypes:{column:{prototype:B},scatter:F}}=fe,{addEvent:L,arrayMax:D,arrayMin:I,clamp:E,extend:_,isNumber:b,merge:T,pick:z,pushUnique:O}=pe;function f(){const g=this.len,{coll:y,isXAxis:o,min:n}=this,r=o?"xData":"yData",l=(this.max||0)-(n||0);let p,d=0,C=g,k=g/l;"xAxis"!==y&&"yAxis"!==y||(this.series.forEach(S=>{if(S.bubblePadding&&S.reserveSpace()){this.allowZoomOutside=!0,p=!0;const j=S[r];if(o&&((S.onPoint||S).getRadii(0,0,S),S.onPoint&&(S.radii=S.onPoint.radii)),l>0){let H=j.length;for(;H--;)if(b(j[H])&&this.dataMin<=j[H]&&j[H]<=this.max){const Y=S.radii&&S.radii[H]||0;d=Math.min((j[H]-n)*k-Y,d),C=Math.max((j[H]-n)*k+Y,C)}}}}),p&&l>0&&!this.logarithmic&&(C-=g,k*=(g+Math.max(0,d)-Math.min(C,g))/g,[["min","userMin",d],["max","userMax",C]].forEach(S=>{typeof z(this.options[S[0]],this[S[1]])>"u"&&(this[S[0]]+=S[2]/k)})))}class a extends F{static compose(y,o,n,r){ie.compose(o,n,r),O(te,"Series.Bubble")&&L(y,"foundExtremes",f)}animate(y){!y&&this.points.length{if(Y.bubblePadding&&Y.reserveSpace()){const U=(Y.onPoint||Y).getZExtremes();U&&(S=Math.min(z(S,U.zMin),U.zMin),j=Math.max(z(j,U.zMax),U.zMax),H=!0)}}),H?(C={zMin:S,zMax:j},this.chart.bubbleZExtremes=C):C={zMin:0,zMax:0}}for(l=0,r=y.length;l0&&(j=(l-y)/S)}return k&&j>=0&&(j=Math.sqrt(j)),Math.ceil(n+j*(r-n))/2}hasData(){return!!this.processedXData.length}pointAttribs(y,o){const r=this.options.marker.fillOpacity,l=A.prototype.pointAttribs.call(this,y,o);return 1!==r&&(l.fill=J(l.fill).setOpacity(r).get("rgba")),l}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){const{data:y,options:o,radii:n}=this,{minPxSize:r}=this.getPxExtremes();let l=y.length;for(;l--;){const d=y[l],C=n?n[l]:0;"z"===this.zoneAxis&&(d.negative=(d.z||0)<(o.zThreshold||0)),b(C)&&C>=r/2?(d.marker=_(d.marker,{radius:C,width:2*C,height:2*C}),d.dlBox={x:d.plotX-C,y:d.plotY-C,width:2*C,height:2*C}):(d.shapeArgs=d.plotY=d.dlBox=void 0,d.isInside=!1)}}getPxExtremes(){const y=Math.min(this.chart.plotWidth,this.chart.plotHeight),o=l=>{let d;return"string"==typeof l&&(d=/%$/.test(l),l=parseInt(l,10)),d?y*l/100:l},n=o(z(this.options.minSize,8));return{minPxSize:n,maxPxSize:Math.max(o(z(this.options.maxSize,"20%")),n)}}getZExtremes(){const y=this.options,o=(this.zData||[]).filter(b);if(o.length){const n=z(y.zMin,E(I(o),!1===y.displayNegative?y.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),r=z(y.zMax,D(o));if(b(n)&&b(r))return{zMin:n,zMax:r}}}}return a.defaultOptions=T(F.defaultOptions,{dataLabels:{formatter:function(){const{numberFormatter:g}=this.series.chart,{z:y}=this.point;return b(y)?g(y,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),_(a.prototype,{alignDataLabel:B.alignDataLabel,applyZones:$,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:re,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),L(a,"updatedData",g=>{delete g.target.chart.bubbleZExtremes}),L(a,"remove",g=>{delete g.target.chart.bubbleZExtremes}),fe.registerSeriesType("bubble",a),a}),Z(Pe,"Series/ColumnRange/ColumnRangePoint.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re){const{seriesTypes:{column:{prototype:{pointClass:{prototype:ve}}},arearange:{prototype:{pointClass:le}}}}=ie,{extend:fe,isNumber:pe}=re;class J extends le{isValid(){return pe(this.low)}}return fe(J.prototype,{setState:ve.setState}),J}),Z(Pe,"Series/ColumnRange/ColumnRangeSeries.js",[Pe["Series/ColumnRange/ColumnRangePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{seriesTypes:{arearange:pe,column:J,column:{prototype:te}}}=ve,{addEvent:$,clamp:A,extend:B,isNumber:F,merge:L,pick:D}=le;class E extends pe{setOptions(){return L(!0,arguments[0],{stacking:void 0}),pe.prototype.setOptions.apply(this,arguments)}translate(){return te.translate.apply(this)}pointAttribs(){return te.pointAttribs.apply(this,arguments)}translate3dPoints(){return te.translate3dPoints.apply(this,arguments)}translate3dShapes(){return te.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){const b=this.yAxis,T=this.xAxis,z=T.startAngleRad,O=this.chart,f=this.xAxis.isRadial,a=Math.max(O.chartWidth,O.chartHeight)+999;let g,y,o,n;function r(l){return A(l,-a,a)}this.points.forEach(l=>{const d=l.shapeArgs||{},C=this.options.minPointLength,k=l.plotY,p=b.translate(l.high,0,1,0,1);if(F(p)&&F(k))if(l.plotHigh=r(p),l.plotLow=r(k),n=l.plotHigh,g=D(l.rectPlotY,l.plotY)-l.plotHigh,Math.abs(g)\u25cf {series.name}: {point.low} - {point.high}
    '},whiskerWidth:null}}),Z(Pe,"Series/ErrorBar/ErrorBarSeries.js",[Pe["Series/BoxPlot/BoxPlotSeries.js"],Pe["Series/Column/ColumnSeries.js"],Pe["Series/ErrorBar/ErrorBarSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe){const{arearange:pe}=le.seriesTypes,{addEvent:J,merge:te,extend:$}=fe;class A extends ie{getColumnMetrics(){const F=this;return F.linkedParent&&F.linkedParent.columnMetrics||re.prototype.getColumnMetrics.call(F)}drawDataLabels(){const F=this,L=F.pointValKey;if(pe){pe.prototype.drawDataLabels.call(F);for(const D of F.points)D.y=D[L]}}toYData(F){return[F.low,F.high]}}return A.defaultOptions=te(ie.defaultOptions,ve),J(A,"afterTranslate",function(){for(const B of this.points)B.plotLow=B.plotY},{order:0}),$(A.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),le.registerSeriesType("errorbar",A),A}),Z(Pe,"Series/Gauge/GaugePoint.js",[Pe["Core/Series/SeriesRegistry.js"]],function(ie){const{series:{prototype:{pointClass:re}}}=ie;return class ve extends re{setState(fe){this.state=fe}}}),Z(Pe,"Series/Gauge/GaugeSeries.js",[Pe["Series/Gauge/GaugePoint.js"],Pe["Core/Globals.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=re,{series:pe,seriesTypes:{column:J}}=ve,{clamp:te,isNumber:$,extend:A,merge:B,pick:F,pInt:L,defined:D}=le;class I extends pe{translate(){const _=this,b=_.yAxis,T=_.options,z=b.center;_.generatePoints(),_.points.forEach(O=>{const f=B(T.dial,O.dial),a=L(f.radius)*z[2]/200,g=L(f.baseLength)*a/100,y=L(f.rearLength)*a/100,o=f.baseWidth,n=f.topWidth;let r=T.overshoot,l=b.startAngleRad+b.translate(O.y,void 0,void 0,void 0,!0);($(r)||!1===T.wrap)&&(r=$(r)?r/180*Math.PI:0,l=te(l,b.startAngleRad-r,b.endAngleRad+r)),l=180*l/Math.PI,O.shapeType="path",O.shapeArgs={d:f.path||[["M",-y,-o/2],["L",g,-o/2],["L",a,-n/2],["L",a,n/2],["L",g,o/2],["L",-y,o/2],["Z"]],translateX:z[0],translateY:z[1],rotation:l},O.plotX=z[0],O.plotY=z[1],D(O.y)&&b.max-b.min&&(O.percentage=(O.y-b.min)/(b.max-b.min)*100)})}drawPoints(){const _=this,b=_.chart,T=_.yAxis.center,z=_.pivot,O=_.options,f=O.pivot,a=b.renderer;_.points.forEach(g=>{const y=g.graphic,o=g.shapeArgs,n=o.d,r=B(O.dial,g.dial);y?(y.animate(o),o.d=n):g.graphic=a[g.shapeType](o).addClass("highcharts-dial").add(_.group),b.styledMode||g.graphic[y?"animate":"attr"]({stroke:r.borderColor,"stroke-width":r.borderWidth,fill:r.backgroundColor})}),z?z.animate({translateX:T[0],translateY:T[1]}):f&&(_.pivot=a.circle(0,0,f.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(T[0],T[1]).add(_.group),b.styledMode||_.pivot.attr({fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth}))}animate(_){const b=this;_||b.points.forEach(T=>{const z=T.graphic;z&&(z.attr({rotation:180*b.yAxis.startAngleRad/Math.PI}),z.animate({rotation:T.shapeArgs.rotation},b.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),pe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(_,b){pe.prototype.setData.call(this,_,!1),this.processData(),this.generatePoints(),F(b,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return I.defaultOptions=B(pe.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),A(I.prototype,{angular:!0,directTouch:!0,drawGraph:fe,drawTracker:J.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:ie,trackerGroups:["group","dataLabelsGroup"]}),ve.registerSeriesType("gauge",I),I}),Z(Pe,"Series/DragNodesComposition.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{composed:ve}=ie,{addEvent:le,pushUnique:fe}=re;function J(){const L=this;let D,I,E;L.container&&(D=le(L.container,"mousedown",_=>{const b=L.hoverPoint;b&&b.series&&b.series.hasDraggableNodes&&b.series.options.draggable&&(b.series.onMouseDown(b,_),I=le(L.container,"mousemove",T=>b&&b.series&&b.series.onMouseMove(b,T)),E=le(L.container.ownerDocument,"mouseup",T=>(I(),E(),b&&b.series&&b.series.onMouseUp(b,T))))})),le(L,"destroy",function(){D()})}return{compose:function pe(L){fe(ve,"DragNodes")&&le(L,"load",J)},onMouseDown:function te(L,D){const I=this.chart.pointer?.normalize(D)||D;L.fixedPosition={chartX:I.chartX,chartY:I.chartY,plotX:L.plotX,plotY:L.plotY},L.inDragMode=!0},onMouseMove:function $(L,D){if(L.fixedPosition&&L.inDragMode){const E=this.chart,_=E.pointer?.normalize(D)||D,b=L.fixedPosition.chartX-_.chartX,T=L.fixedPosition.chartY-_.chartY,z=E.graphLayoutsLookup;let O,f;(Math.abs(b)>5||Math.abs(T)>5)&&(O=L.fixedPosition.plotX-b,f=L.fixedPosition.plotY-T,E.isInsidePlot(O,f)&&(L.plotX=O,L.plotY=f,L.hasDragged=!0,this.redrawHalo(L),z.forEach(a=>{a.restartSimulation()})))}},onMouseUp:function A(L){L.fixedPosition&&(L.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),L.inDragMode=L.hasDragged=!1,this.options.fixedDraggable||delete L.fixedPosition)},redrawHalo:function B(L){L&&this.halo&&this.halo.attr({d:L.haloPath(this.options.states.hover.halo.size)})}}}),Z(Pe,"Series/GraphLayoutComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{setAnimation:le}=ie,{composed:fe}=re,{addEvent:pe,pushUnique:J}=ve;function B(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation()}),this.redraw())}function F(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(E=>{E.updateSimulation(!1)}),this.redraw())}function L(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(E=>{E.stop()})}function D(){let E,_=!1;const b=T=>{T.maxIterations--&&isFinite(T.temperature)&&!T.isStable()&&!T.enableSimulation&&(T.beforeStep&&T.beforeStep(),T.step(),E=!1,_=!0)};if(this.graphLayoutsLookup){for(le(!1,this),this.graphLayoutsLookup.forEach(T=>T.start());!E;)E=!0,this.graphLayoutsLookup.forEach(b);_&&this.series.forEach(T=>{T&&T.layout&&T.render()})}}return{compose:function A(E){J(fe,"GraphLayout")&&(pe(E,"afterPrint",B),pe(E,"beforePrint",F),pe(E,"predraw",L),pe(E,"render",D))},integrations:{},layouts:{}}}),Z(Pe,"Series/PackedBubble/PackedBubblePoint.js",[Pe["Core/Chart/Chart.js"],Pe["Core/Series/Point.js"],Pe["Core/Series/SeriesRegistry.js"]],function(ie,re,ve){const{seriesTypes:{bubble:{prototype:{pointClass:le}}}}=ve;return class fe extends le{destroy(){return this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),re.prototype.destroy.apply(this,arguments)}firePointEvent(){const te=this.series.options;if(this.isParentNode&&te.parentNode){const $=te.allowPointSelect;te.allowPointSelect=te.parentNode.allowPointSelect,re.prototype.firePointEvent.apply(this,arguments),te.allowPointSelect=$}else re.prototype.firePointEvent.apply(this,arguments)}select(){const $=this.series.chart;this.isParentNode?($.getSelectedPoints=$.getSelectedParentNodes,re.prototype.select.apply(this,arguments),$.getSelectedPoints=ie.prototype.getSelectedPoints):re.prototype.select.apply(this,arguments)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeriesDefaults.js",[Pe["Core/Utilities.js"]],function(ie){const{isNumber:re}=ie;return{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){const{numberFormatter:le}=this.series.chart,{value:fe}=this.point;return re(fe)?le(fe,-1):""},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),Z(Pe,"Series/Networkgraph/VerletIntegration.js",[],function(){return{attractive:function ie($,A,B){const F=$.getMass(),L=-B.x*A*this.diffTemperature,D=-B.y*A*this.diffTemperature;$.fromNode.fixedPosition||($.fromNode.plotX-=L*F.fromNode/$.fromNode.degree,$.fromNode.plotY-=D*F.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.plotX+=L*F.toNode/$.toNode.degree,$.toNode.plotY+=D*F.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return(A-$)/$},barycenter:function ve(){let $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;A=(A-(this.box.left+this.box.width)/2)*$,B=(B-(this.box.top+this.box.height)/2)*$,this.nodes.forEach(function(F){F.fixedPosition||(F.plotX-=A/F.mass/F.degree,F.plotY-=B/F.mass/F.degree)})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.5)},integrate:function fe($,A){let B=-$.options.friction,F=$.options.maxSpeed,I=(A.plotX+A.dispX-A.prevX)*B,E=(A.plotY+A.dispY-A.prevY)*B,_=Math.abs,b=_(I)/(I||1),T=_(E)/(E||1);I=b*Math.min(F,Math.abs(I)),E=T*Math.min(F,Math.abs(E)),A.prevX=A.plotX+A.dispX,A.prevY=A.plotY+A.dispY,A.plotX+=I,A.plotY+=E,A.temperature=$.vectorLength({x:I,y:E})},repulsive:function pe($,A,B){const F=A*this.diffTemperature/$.mass/$.degree;$.fixedPosition||($.plotX+=B.x*F,$.plotY+=B.y*F)},repulsiveForceFunction:function J($,A){return(A-$)/$*(A>$?1:0)}}}),Z(Pe,"Series/PackedBubble/PackedBubbleIntegration.js",[Pe["Core/Globals.js"],Pe["Series/Networkgraph/VerletIntegration.js"]],function(ie,re){const{noop:ve}=ie;return{barycenter:function le(){const te=this,$=te.options.gravitationalConstant,A=te.box,B=te.nodes;let F,L;for(const D of B)te.options.splitSeries&&!D.isParentNode?(F=D.series.parentNode.plotX,L=D.series.parentNode.plotY):(F=A.width/2,L=A.height/2),D.fixedPosition||(D.plotX-=(D.plotX-F)*$/(D.mass*Math.sqrt(B.length)),D.plotY-=(D.plotY-L)*$/(D.mass*Math.sqrt(B.length)))},getK:ve,integrate:re.integrate,repulsive:function fe(te,$,A,B){const F=$*this.diffTemperature/te.mass/te.degree,L=A.x*F,D=A.y*F;te.fixedPosition||(te.plotX+=L,te.plotY+=D),B.fixedPosition||(B.plotX-=L,B.plotY-=D)},repulsiveForceFunction:function pe(te,$,A,B){return Math.min(te,(A.marker.radius+B.marker.radius)/2)}}}),Z(Pe,"Series/Networkgraph/EulerIntegration.js",[],function(){return{attractive:function ie($,A,B,F){const L=$.getMass(),D=B.x/F*A,I=B.y/F*A;$.fromNode.fixedPosition||($.fromNode.dispX-=D*L.fromNode/$.fromNode.degree,$.fromNode.dispY-=I*L.fromNode/$.fromNode.degree),$.toNode.fixedPosition||($.toNode.dispX+=D*L.toNode/$.toNode.degree,$.toNode.dispY+=I*L.toNode/$.toNode.degree)},attractiveForceFunction:function re($,A){return $*$/A},barycenter:function ve(){const $=this.options.gravitationalConstant,A=this.barycenter.xFactor,B=this.barycenter.yFactor;this.nodes.forEach(function(F){if(!F.fixedPosition){const L=F.getDegree(),D=L*(1+L/2);F.dispX+=(A-F.plotX)*$*D/F.degree,F.dispY+=(B-F.plotY)*$*D/F.degree}})},getK:function le($){return Math.pow($.box.width*$.box.height/$.nodes.length,.3)},integrate:function fe($,A){let B;A.dispX+=A.dispX*$.options.friction,A.dispY+=A.dispY*$.options.friction,B=A.temperature=$.vectorLength({x:A.dispX,y:A.dispY}),0!==B&&(A.plotX+=A.dispX/B*Math.min(Math.abs(A.dispX),$.temperature),A.plotY+=A.dispY/B*Math.min(Math.abs(A.dispY),$.temperature))},repulsive:function pe($,A,B,F){$.dispX+=B.x/F*A/$.degree,$.dispY+=B.y/F*A/$.degree},repulsiveForceFunction:function J($,A){return A*A/$}}}),Z(Pe,"Series/Networkgraph/QuadTreeNode.js",[],function(){class ie{constructor(ve){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=ve,this.boxSize=Math.min(ve.width,ve.height)}divideBox(){const ve=this.box.width/2,le=this.box.height/2;this.nodes[0]=new ie({left:this.box.left,top:this.box.top,width:ve,height:le}),this.nodes[1]=new ie({left:this.box.left+ve,top:this.box.top,width:ve,height:le}),this.nodes[2]=new ie({left:this.box.left+ve,top:this.box.top+le,width:ve,height:le}),this.nodes[3]=new ie({left:this.box.left,top:this.box.top+le,width:ve,height:le})}getBoxPosition(ve){const fe=ve.plotYthis.step())):(this.simulation=!1,this.series.forEach(_=>{B(_,"afterSimulation")}))}}stop(){this.simulation&&J.cancelAnimationFrame(this.simulation)}setArea(I,E,_,b){this.box={left:I,top:E,width:_,height:b}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(I,E){for(const _ of I)-1===E.indexOf(_)&&E.push(_)}removeElementFromCollection(I,E){const _=E.indexOf(I);-1!==_&&E.splice(_,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(I){this.maxIterations=F(I,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(I){this.initialRendering=I}createQuadTree(){this.quadTree=new le(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){const I=this.options.initialPositions;if(A(I)){I.call(this);for(const E of this.nodes)$(E.prevX)||(E.prevX=E.plotX),$(E.prevY)||(E.prevY=E.plotY),E.dispX=0,E.dispY=0}else"circle"===I?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){const I=this.box,E=this.nodes,b=2*Math.PI/(E.length+1),T=E.filter(function(y){return 0===y.linksTo.length}),z={},O=this.options.initialPositionRadius,f=y=>{for(const o of y.linksFrom||[])z[o.toNode.id]||(z[o.toNode.id]=!0,a.push(o.toNode),f(o.toNode))};let g,a=[];for(const y of T)a.push(y),f(y);if(a.length)for(const y of E)-1===a.indexOf(y)&&a.push(y);else a=E;for(let y=0,o=a.length;y{let O=z*z/Math.PI;return O-=Math.floor(O),O};let T;for(let z=0,O=E.length;zthis.barnesHutApproximation(I,E));else{let I,E,_;for(const b of this.nodes)for(const T of this.nodes)b!==T&&!b.fixedPosition&&(_=this.getDistXY(b,T),E=this.vectorLength(_),0!==E&&(I=this.repulsiveForce(E,this.k),this.force("repulsive",b,I*T.mass,_,E)))}}attractiveForces(){let I,E,_;for(const b of this.links)b.fromNode&&b.toNode&&(I=this.getDistXY(b.fromNode,b.toNode),E=this.vectorLength(I),0!==E&&(_=this.attractiveForce(E,this.k),this.force("attractive",b,_,I,E)))}applyLimits(){const I=this.nodes;for(const E of I){if(E.fixedPosition)return;this.integration.integrate(this,E),this.applyLimitBox(E,this.box),E.dispX=0,E.dispY=0}}applyLimitBox(I,E){const _=I.radius;I.plotX=te(I.plotX,E.left+_,E.width-_),I.plotY=te(I.plotY,E.top+_,E.height-_)}coolDown(I,E,_){return I-E*_}isStable(){return Math.abs(this.systemTemperature-this.prevSystemTemperature)<1e-5||this.temperature<=0}getSystemTemperature(){let I=0;for(const E of this.nodes)I+=E.temperature;return I}vectorLength(I){return Math.sqrt(I.x*I.x+I.y*I.y)}getDistR(I,E){const _=this.getDistXY(I,E);return this.vectorLength(_)}getDistXY(I,E){const _=I.plotX-E.plotX,b=I.plotY-E.plotY;return{x:_,y:b,absX:Math.abs(_),absY:Math.abs(b)}}}return L}),Z(Pe,"Series/PackedBubble/PackedBubbleLayout.js",[Pe["Series/GraphLayoutComposition.js"],Pe["Series/PackedBubble/PackedBubbleIntegration.js"],Pe["Series/Networkgraph/ReingoldFruchtermanLayout.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{addEvent:fe,pick:pe}=le;function J(){const B=[];return this.series.forEach(F=>{F.parentNode&&F.parentNode.selected&&B.push(F.parentNode)}),B}function te(){this.allDataPoints&&delete this.allDataPoints}class $ extends ve{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(B){ve.compose(B),ie.integrations.packedbubble=re,ie.layouts.packedbubble=$;const F=B.prototype;F.getSelectedParentNodes||(fe(B,"beforeRedraw",te),F.getSelectedParentNodes=J)}beforeStep(){this.options.marker&&this.series.forEach(B=>{B&&B.calculateParentRadius()})}isStable(){const B=Math.abs(this.prevSystemTemperature-this.systemTemperature),F=10*this.systemTemperature/Math.sqrt(this.nodes.length);return Math.abs(F)<1&&B<1e-5||this.temperature<=0}setCircularPositions(){const B=this,F=B.box,L=B.nodes,I=2*Math.PI/(L.length+1),E=B.options.initialPositionRadius;let _,b,T=0;for(const z of L)B.options.splitSeries&&!z.isParentNode?(_=z.series.parentNode.plotX,b=z.series.parentNode.plotY):(_=F.width/2,b=F.height/2),z.plotX=z.prevX=pe(z.plotX,_+E*Math.cos(z.index||T*I)),z.plotY=z.prevY=pe(z.plotY,b+E*Math.sin(z.index||T*I)),z.dispX=0,z.dispY=0,T++}repulsiveForces(){const B=this,F=B.options.bubblePadding;let L,D,I;B.nodes.forEach(E=>{E.degree=E.mass,E.neighbours=0,B.nodes.forEach(_=>{L=0,E!==_&&!E.fixedPosition&&(B.options.seriesInteraction||E.series===_.series)&&(I=B.getDistXY(E,_),D=B.vectorLength(I)-(E.marker.radius+_.marker.radius+F),D<0&&(E.degree+=.01,E.neighbours++,L=B.repulsiveForce(-D/Math.sqrt(E.neighbours),B.k,E,_)),B.force("repulsive",E,L*_.mass,I,_,D))})})}applyLimitBox(B,F){const L=this;let I,E;L.options.splitSeries&&!B.isParentNode&&L.options.parentNodeLimit&&(I=L.getDistXY(B,B.series.parentNode),E=B.series.parentNodeRadius-B.marker.radius-L.vectorLength(I),E<0&&E>-2*B.marker.radius&&(B.plotX-=.01*I.x,B.plotY-=.01*I.y)),super.applyLimitBox(B,F)}}return ie.layouts.packedbubble=$,$}),Z(Pe,"Series/SimulationSeriesUtilities.js",[Pe["Core/Utilities.js"],Pe["Core/Animation/AnimationUtilities.js"]],function(ie,re){const{merge:ve,syncTimeout:le}=ie,{animObject:fe}=re;return{initDataLabels:function J(){const $=this,A=$.options.dataLabels;if(!$.dataLabelsGroup){const B=this.initDataLabelsGroup();return!$.chart.styledMode&&A?.style&&B.css(A.style),B.attr({opacity:0}),$.visible&&B.show(),B}return $.dataLabelsGroup.attr(ve({opacity:1},this.getPlotBox("data-labels"))),$.dataLabelsGroup},initDataLabelsDefer:function pe(){const $=this.options.dataLabels;$?.defer&&this.options.layoutAlgorithm?.enableSimulation?le(()=>{this.deferDataLabels=!1},$?fe($.animation).defer:0):this.deferDataLabels=!1}}}),Z(Pe,"Series/PackedBubble/PackedBubbleSeries.js",[Pe["Core/Color/Color.js"],Pe["Series/DragNodesComposition.js"],Pe["Series/GraphLayoutComposition.js"],Pe["Core/Globals.js"],Pe["Series/PackedBubble/PackedBubblePoint.js"],Pe["Series/PackedBubble/PackedBubbleSeriesDefaults.js"],Pe["Series/PackedBubble/PackedBubbleLayout.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Series/SimulationSeriesUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{parse:B}=ie,{noop:F}=le,{series:{prototype:L},seriesTypes:{bubble:D}}=te,{initDataLabels:I,initDataLabelsDefer:E}=$,{addEvent:_,clamp:b,defined:T,extend:z,fireEvent:O,isArray:f,isNumber:a,merge:g,pick:y}=A;class o extends D{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(r,l,d,C){D.compose(r,l,d,C),re.compose(l),J.compose(l)}accumulateAllPoints(){const r=this.chart,l=[];let d;for(const C of r.series)if(C.is("packedbubble")&&C.reserveSpace()){d=C.yData||[];for(let k=0;k{S.mass=2,S.degree=1,S.collisionNmb=1}),p.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),p.addElementsToCollection([this],p.series),p.addElementsToCollection(this.points,p.nodes)}addSeriesLayout(){const r=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},l=r.type||"packedbubble",d=this.chart.graphLayoutsStorage,C=this.chart.graphLayoutsLookup,k=g(r,r.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});let p=d[l+"-series"];p||(d[l+"-series"]=p=new ve.layouts[l],p.init(k),C.splice(p.index,0,p)),this.parentNodeLayout=p,this.createParentNodes()}calculateParentRadius(){const r=this.seriesBox();this.parentNodeRadius=b(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,r?Math.max(Math.sqrt(Math.pow(r.width,2)+Math.pow(r.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let d=this.options.zMin,C=this.options.zMax,k=1/0,p=-1/0;return d&&C||(this.chart.series.forEach(S=>{S.yData.forEach(j=>{T(j)&&(j>p&&(p=j),j{this.parentNodeMass+=Math.PI*Math.pow(j.marker.radius,2)}),this.calculateParentRadius(),d.nodes.forEach(j=>{j.seriesIndex===this.index&&(k=!0)}),d.setArea(0,0,l.plotWidth,l.plotHeight),k||(p||(p=new r(this,{mass:this.parentNodeRadius/2,marker:S,dataLabels:{inside:!1},states:{normal:{marker:S},hover:{marker:S}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(p.plotX=this.parentNode.plotX,p.plotY=this.parentNode.plotY),this.parentNode=p,d.addElementsToCollection([this],d.series),d.addElementsToCollection([p],d.nodes))}deferLayout(){const r=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),r.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(r=>{r.removeElementFromCollection(this,r.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),L.destroy.apply(this,arguments)}drawDataLabels(){this.deferDataLabels||(L.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",L.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;const r=this.chart,l=this.layout.options.parentNodeOptions.marker,d={fill:l.fillColor||B(this.color).brighten(.4).get(),opacity:l.fillOpacity,stroke:l.lineColor||this.color,"stroke-width":y(l.lineWidth,this.options.lineWidth)};let C={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,r.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&T(this.parentNode.plotX)&&T(this.parentNode.plotY)&&T(this.parentNodeRadius)&&(C=g({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},d),this.parentNode.graphic||(this.graph=this.parentNode.graphic=r.renderer.symbol(d.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(C))}drawTracker(){const r=this.parentNode;let l;super.drawTracker(),r&&(l=f(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[],r.graphic&&(r.graphic.element.point=r),l.forEach(d=>{(d.div||d.element).point=r}))}getPointRadius(){const r=this.chart,C=this.options,k=C.useSimulation,p=Math.min(r.plotWidth,r.plotHeight),S={},j=[],H=r.allDataPoints||[],Y=H.length;let U,se,w,X;["minSize","maxSize"].forEach(x=>{const N=parseInt(C[x],10),R=/%$/.test(C[x]);S[x]=R?p*N/100:N*Math.sqrt(Y)}),r.minRadius=U=S.minSize/Math.sqrt(Y),r.maxRadius=se=S.maxSize/Math.sqrt(Y);const G=k?this.calculateZExtremes():[U,se];H.forEach((x,N)=>{w=k?b(x[2],G[0],G[1]):x[2],X=this.getRadius(G[0],G[1],U,se,w),0===X&&(X=null),H[N][2]=X,j.push(X)}),this.radii=j}init(){return L.init.apply(this,arguments),E.call(this),this.eventsToUnbind.push(_(this,"updatedData",function(){this.chart.series.forEach(r=>{r.type===this.type&&(r.isDirty=!0)},this)})),this}onMouseUp(r){const l=r;if(l.fixedPosition&&!l.removed){const d=this.layout,C=this.parentNodeLayout;let k,p;C&&d.options.dragBetweenSeries&&C.nodes.forEach(S=>{l&&l.marker&&S!==l.series.parentNode&&(k=d.getDistXY(l,S),p=d.vectorLength(k)-S.marker.radius-l.marker.radius,p<0&&(S.series.addPoint(g(l.options,{plotX:l.plotX,plotY:l.plotY}),!1),d.removeElementFromCollection(l,d.nodes),l.remove()))}),re.onMouseUp.apply(this,arguments)}}placeBubbles(r){const l=this.checkOverlap,d=this.positionBubble,C=[];let j,Y,k=1,p=0,S=0,H=[];const U=r.sort((se,w)=>w[2]-se[2]);if(U.length){if(C.push([[0,0,U[0][2],U[0][3],U[0][4]]]),U.length>1)for(C.push([[0,0-U[1][2]-U[0][2],U[1][2],U[1][3],U[1][4]]]),Y=2;Y1&&C[k-1][S+1]&&l(j,C[k-1][S+1])?(S++,C[k].push(d(C[k][p],C[k-1][S],U[Y])),p++):(p++,C[k].push(j));this.chart.stages=C,this.chart.rawPositions=[].concat.apply([],C),this.resizeRadius(),H=this.chart.rawPositions}return H}pointAttribs(r,l){const d=this.options;let k=d.marker;r&&r.isParentNode&&d.layoutAlgorithm&&d.layoutAlgorithm.parentNodeOptions&&(k=d.layoutAlgorithm.parentNodeOptions.marker);const p=k.fillOpacity,S=L.pointAttribs.call(this,r,l);return 1!==p&&(S["fill-opacity"]=p),S}positionBubble(r,l,d){const C=Math.sqrt,k=Math.asin,p=Math.acos,S=Math.pow,j=Math.abs,H=C(S(r[0]-l[0],2)+S(r[1]-l[1],2)),Y=p((S(H,2)+S(d[2]+l[2],2)-S(d[2]+r[2],2))/(2*(d[2]+l[2])*H)),U=k(j(r[0]-l[0])/H),X=(r[1]-l[1]<0?0:Math.PI)+Y+U*((r[0]-l[0])*(r[1]-l[1])<0?1:-1),G=Math.cos(X),x=Math.sin(X);return[l[0]+(l[2]+d[2])*x,l[1]-(l[2]+d[2])*G,d[2],d[3],d[4]]}render(){const r=[];L.render.apply(this,arguments),this.options.dataLabels.allowOverlap||(this.data.forEach(l=>{f(l.dataLabels)&&l.dataLabels.forEach(d=>{r.push(d)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(r))}resizeRadius(){const r=this.chart,l=r.rawPositions,d=Math.min,C=Math.max,k=r.plotLeft,p=r.plotTop,S=r.plotHeight,j=r.plotWidth;let H,Y,U,se,w;H=U=Number.POSITIVE_INFINITY,Y=se=Number.NEGATIVE_INFINITY;for(const N of l)w=N[2],H=d(H,N[0]-w),Y=C(Y,N[0]+w),U=d(U,N[1]-w),se=C(se,N[1]+w);const X=[Y-H,se-U],x=d.apply([],[(j-k)/X[0],(S-p)/X[1]]);if(Math.abs(x-1)>1e-10){for(const N of l)N[2]*=x;this.placeBubbles(l)}else r.diffY=S/2+p-U-(se-U)/2,r.diffX=j/2+k-H-(Y-H)/2}seriesBox(){const r=this.chart,d=Math.max,C=Math.min,k=[r.plotLeft,r.plotLeft+r.plotWidth,r.plotTop,r.plotTop+r.plotHeight];let p;return this.data.forEach(S=>{T(S.plotX)&&T(S.plotY)&&S.marker.radius&&(p=S.marker.radius,k[0]=C(k[0],S.plotX-p),k[1]=d(k[1],S.plotX+p),k[2]=C(k[2],S.plotY-p),k[3]=d(k[3],S.plotY+p))}),a(k.width/k.height)?k:null}setVisible(){const r=this;L.setVisible.apply(r,arguments),r.parentNodeLayout&&r.graph?r.visible?(r.graph.show(),r.parentNode.dataLabel&&r.parentNode.dataLabel.show()):(r.graph.hide(),r.parentNodeLayout.removeElementFromCollection(r.parentNode,r.parentNodeLayout.nodes),r.parentNode.dataLabel&&r.parentNode.dataLabel.hide()):r.layout&&(r.visible?r.layout.addElementsToCollection(r.points,r.layout.nodes):r.points.forEach(l=>{r.layout.removeElementFromCollection(l,r.layout.nodes)}))}translate(){const r=this.chart,l=this.data,d=this.index,C=this.options.useSimulation;let k,p,S;this.processedXData=this.xData,this.generatePoints(),T(r.allDataPoints)||(r.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),C?S=r.allDataPoints:(S=this.placeBubbles(r.allDataPoints),this.options.draggable=!1);for(const j of S)j[3]===d&&(k=l[j[4]],p=y(j[2],void 0),C||(k.plotX=j[0]-r.plotLeft+r.diffX,k.plotY=j[1]-r.plotTop+r.diffY),a(p)&&(k.marker=z(k.marker,{radius:p,width:2*p,height:2*p}),k.radius=p));C&&this.deferLayout(),O(this,"afterTranslate")}}return o.defaultOptions=g(D.defaultOptions,pe),z(o.prototype,{pointClass:fe,axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:I,alignDataLabel:L.alignDataLabel,indexateNodes:F,onMouseDown:re.onMouseDown,onMouseMove:re.onMouseMove,redrawHalo:re.redrawHalo,searchPoint:F}),te.registerSeriesType("packedbubble",o),o}),Z(Pe,"Series/Polygon/PolygonSeriesDefaults.js",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}}),Z(Pe,"Series/Polygon/PolygonSeries.js",[Pe["Core/Globals.js"],Pe["Series/Polygon/PolygonSeriesDefaults.js"],Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le){const{noop:fe}=ie,{area:pe,line:J,scatter:te}=ve.seriesTypes,{extend:$,merge:A}=le;class B extends te{getGraphPath(){const L=J.prototype.getGraphPath.call(this);let D=L.length+1;for(;D--;)(D===L.length||"M"===L[D][0])&&D>0&&L.splice(D,0,["Z"]);return this.areaPath=L,L}drawGraph(){this.options.fillColor=this.color,pe.prototype.drawGraph.call(this)}}return B.defaultOptions=A(te.defaultOptions,re),$(B.prototype,{type:"polygon",drawTracker:J.prototype.drawTracker,setStackedPoints:fe}),ve.registerSeriesType("polygon",B),B}),Z(Pe,"Core/Axis/RadialAxis.js",[Pe["Core/Defaults.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{defaultOptions:le}=ie,{composed:fe,noop:pe}=re,{addEvent:J,correctFloat:te,defined:$,extend:A,fireEvent:B,isObject:F,merge:L,pick:D,pushUnique:I,relativeLength:E,wrap:_}=ve;var b;return function(T){const z={gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},O={endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2},f={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};function a(){this.autoConnect=this.isCircular&&typeof D(this.userMax,this.options.max)>"u"&&te(this.endAngleRad-this.startAngleRad)===te(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function y(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(me=>this.ticks[me]&&this.ticks[me].label).filter(me=>!!me)}}function o(){return pe}function n(me,Ce,Se){const Oe=this.pane.center;let Fe,oe,ee,de,Ae=me.value;return this.isCircular?($(Ae)?me.point&&(Fe=me.point.shapeArgs||{},Fe.start&&(Ae=this.chart.inverted?this.translate(me.point.rectPlotY,!0):me.point.x)):(ee=me.chartX||0,de=me.chartY||0,Ae=this.translate(Math.atan2(de-Se,ee-Ce)-this.startAngleRad,!0)),oe=this.getPosition(Ae),ee=oe.x,de=oe.y):($(Ae)||(ee=me.chartX,de=me.chartY),$(ee)&&$(de)&&(Se=Oe[1]+this.chart.plotTop,Ae=this.translate(Math.min(Math.sqrt(Math.pow(ee-Ce,2)+Math.pow(de-Se,2)),Oe[2]/2)-Oe[3]/2,!0))),[Ae,ee||0,de||0]}function r(me,Ce,Se){const Oe=this.pane.center,Ae=this.chart,Fe=this.left||0,oe=this.top||0;let ee,ye,de=D(Ce,Oe[2]/2-this.offset);return typeof Se>"u"&&(Se=this.horiz?0:this.center&&-this.center[3]/2),Se&&(de+=Se),this.isCircular||typeof Ce<"u"?(ye=this.chart.renderer.symbols.arc(Fe+Oe[0],oe+Oe[1],de,de,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),ye.xBounds=[Fe+Oe[0]],ye.yBounds=[oe+Oe[1]-de]):(ee=this.postTranslate(this.angleRad,de),ye=[["M",this.center[0]+Ae.plotLeft,this.center[1]+Ae.plotTop],["L",ee.x,ee.y]]),ye}function l(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function d(me,Ce,Se){const Oe=this.chart,Ae=Lt=>{if("string"==typeof Lt){let Gt=parseInt(Lt,10);return _e.test(Lt)&&(Gt=Gt*ee/100),Gt}return Lt},Fe=this.center,oe=this.startAngleRad,ee=Fe[2]/2,de=Math.min(this.offset,0),ye=this.left||0,Te=this.top||0,_e=/%$/,Me=this.isCircular;let Ee,Xe,Ze,lt,Qe,st,kt=D(Ae(Se.outerRadius),ee),pt=Ae(Se.innerRadius),ht=D(Ae(Se.thickness),10);if("polygon"===this.options.gridLineInterpolation)st=this.getPlotLinePath({value:me}).concat(this.getPlotLinePath({value:Ce,reverse:!0}));else{me=Math.max(me,this.min),Ce=Math.min(Ce,this.max);const Lt=this.translate(me),Gt=this.translate(Ce);Me||(kt=Lt||0,pt=Gt||0),"circle"!==Se.shape&&Me?(Ee=oe+(Lt||0),Xe=oe+(Gt||0)):(Ee=-Math.PI/2,Xe=1.5*Math.PI,Qe=!0),kt-=de,ht-=de,st=Oe.renderer.symbols.arc(ye+Fe[0],Te+Fe[1],kt,kt,{start:Math.min(Ee,Xe),end:Math.max(Ee,Xe),innerR:D(pt,kt-ht),open:Qe}),Me&&(Ze=(Xe+Ee)/2,lt=ye+Fe[0]+Fe[2]/2*Math.cos(Ze),st.xBounds=Ze>-Math.PI/2&&Ze-Math.PI&&Ze<0||Ze>Math.PI?-10:10)}return st}function C(me){const Ce=this.pane.center,Se=this.chart,Oe=Se.inverted,Ae=me.reverse,Fe=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},oe=Fe.innerRadius||"0%",ee=Fe.outerRadius||"100%",de=Ce[0]+Se.plotLeft,ye=Ce[1]+Se.plotTop,Te=this.height,_e=me.isCrosshair,Me=Ce[3]/2;let Xe,Ze,lt,Qe,st,kt,pt,ht,Lt,Ee=me.value;const Gt=this.getPosition(Ee);let ti=Gt.x,Mt=Gt.y;if(_e&&(ht=this.getCrosshairPosition(me,de,ye),Ee=ht[0],ti=ht[1],Mt=ht[2]),this.isCircular)Ze=Math.sqrt(Math.pow(ti-de,2)+Math.pow(Mt-ye,2)),lt="string"==typeof oe?E(oe,1):oe/Ze,Qe="string"==typeof ee?E(ee,1):ee/Ze,Ce&&Me&&(Xe=Me/Ze,ltTe)&&(Ee=0),"circle"===this.options.gridLineInterpolation)Lt=this.getLinePath(0,Ee,Me);else if(Lt=[],Se[Oe?"yAxis":"xAxis"].forEach(At=>{At.pane===this.pane&&(st=At)}),st){pt=st.tickPositions,st.autoConnect&&(pt=pt.concat([pt[0]])),Ae&&(pt=pt.slice().reverse()),Ee&&(Ee+=Me);for(let At=0;AtMath.PI&&(de-=Fe),ye>Math.PI&&(ye-=Fe),this.normalizedStartAngleRad=de,this.normalizedEndAngleRad=ye}}function Y(me){this.isRadial&&(me.align=void 0,me.preventDefault())}function U(){if(this.chart&&this.chart.labelCollectors){const me=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;me>=0&&this.chart.labelCollectors.splice(me,1)}}function se(me){const Ce=this.chart,Se=Ce.angular,Oe=Ce.polar,Ae=this.isXAxis,Fe=this.coll,oe=Se&&Ae,de=this.pane=Ce.pane&&Ce.pane[me.userOptions.pane||0];let ye;"colorAxis"!==Fe?(Se?(oe?function j(me){me.isHidden=!0,me.createLabelCollector=o,me.getOffset=pe,me.redraw=N,me.render=N,me.setScale=pe,me.setCategories=pe,me.setTitle=pe}(this):S(this),ye=!Ae):Oe&&(S(this),ye=this.horiz),Se||Oe?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&Ce.labelCollectors.push(this.labelCollector)):this.isRadial=!1,de&&ye&&(de.axis=this),this.isCircular=ye):this.isRadial=!1}function w(){this.isRadial&&this.beforeSetTickPositions()}function X(me){const Ce=this.label;if(!Ce)return;const Se=this.axis,Oe=Ce.getBBox(),Ae=Se.options.labels,Fe=(Se.translate(this.pos)+Se.startAngleRad+Math.PI/2)/Math.PI*180%360,oe=Math.round(Fe),ee=$(Ae.y)?0:.3*-Oe.height;let ye,de=Ae.y,Te=20,_e=Ae.align,Me="end",Ee=oe<0?oe+360:oe,Xe=Ee,Ze=0,lt=0;Se.isRadial&&(ye=Se.getPosition(this.pos,Se.center[2]/2+E(D(Ae.distance,-25),Se.center[2]/2,-Se.center[2]/2)),"auto"===Ae.rotation?Ce.attr({rotation:Fe}):$(de)||(de=Se.chart.renderer.fontMetrics(Ce).b-Oe.height/2),$(_e)||(Se.isCircular?(Oe.width>Se.len*Se.tickInterval/(Se.max-Se.min)&&(Te=0),_e=Fe>Te&&Fe<180-Te?"left":Fe>180+Te&&Fe<360-Te?"right":"center"):_e="center",Ce.attr({align:_e})),"auto"===_e&&2===Se.tickPositions.length&&Se.isCircular&&(Ee>90&&Ee<180?Ee=180-Ee:Ee>270&&Ee<=360&&(Ee=540-Ee),Xe>180&&Xe<=360&&(Xe=360-Xe),(Se.pane.options.startAngle===oe||Se.pane.options.startAngle===oe+360||Se.pane.options.startAngle===oe-360)&&(Me="start"),_e=oe>=-90&&oe<=90||oe>=-360&&oe<=-270||oe>=270&&oe<=360?"start"===Me?"right":"left":"start"===Me?"left":"right",Xe>70&&Xe<110&&(_e="center"),Ee<15||Ee>=180&&Ee<195?Ze=.3*Oe.height:Ee>=15&&Ee<=35?Ze="start"===Me?0:.75*Oe.height:Ee>=195&&Ee<=215?Ze="start"===Me?.75*Oe.height:0:Ee>35&&Ee<=90?Ze="start"===Me?.25*-Oe.height:Oe.height:Ee>215&&Ee<=270&&(Ze="start"===Me?Oe.height:.25*-Oe.height),Xe<15?lt="start"===Me?.15*-Oe.height:.15*Oe.height:Xe>165&&Xe<=180&&(lt="start"===Me?.15*Oe.height:.15*-Oe.height),Ce.attr({align:_e}),Ce.translate(lt,Ze+ee)),me.pos.x=ye.x+(Ae.x||0),me.pos.y=ye.y+(de||0))}function G(me){this.axis.getPosition&&A(me.pos,this.axis.getPosition(this.pos))}function x(me,Ce){const Se=this.chart,Oe=this.center;return me=this.startAngleRad+me,{x:Se.plotLeft+Oe[0]+Math.cos(me)*Ce,y:Se.plotTop+Oe[1]+Math.sin(me)*Ce}}function N(){this.isDirty=!1}function R(){let Ce,Se;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),Ce=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(Se=this.postTranslate(this.angleRad,Ce[3]/2),Ce[0]=Se.x-this.chart.plotLeft,Ce[1]=Se.y-this.chart.plotTop),this.len=this.width=this.height=(Ce[2]-Ce[3])*D(this.sector,1)/2)}function K(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)}function q(me){const{coll:Ce}=this,{angular:Se,inverted:Oe,polar:Ae}=this.chart;let Fe={};Se?this.isXAxis||(Fe=L(le.yAxis,O)):Ae&&(Fe=this.horiz?L(le.xAxis,z):L("xAxis"===Ce?le.xAxis:le.yAxis,f)),Oe&&"yAxis"===Ce&&(Fe.stackLabels=F(le.yAxis,!0)?le.yAxis.stackLabels:{},Fe.reversedStacks=!0);const oe=this.options=L(Fe,me);oe.plotBands||(oe.plotBands=[]),B(this,"afterSetOptions")}function he(me,Ce,Se,Oe,Ae,Fe,oe){const ee=this.axis;let de,ye;return ee.isRadial?(de=ee.getPosition(this.pos,ee.center[2]/2+Oe),ye=["M",Ce,Se,"L",de.x,de.y]):ye=me.call(this,Ce,Se,Oe,Ae,Fe,oe),ye}T.compose=function g(me,Ce){return I(fe,"Axis.Radial")&&(J(me,"afterInit",H),J(me,"autoLabelAlign",Y),J(me,"destroy",U),J(me,"init",se),J(me,"initialAxisTranslation",w),J(Ce,"afterGetLabelPosition",X),J(Ce,"afterGetPosition",G),_(Ce.prototype,"getMarkPath",he)),me}}(b||(b={})),b}),Z(Pe,"Series/PolarComposition.js",[Pe["Core/Animation/AnimationUtilities.js"],Pe["Core/Globals.js"],Pe["Core/Series/Series.js"],Pe["Extensions/Pane/Pane.js"],Pe["Core/Axis/RadialAxis.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe){const{animObject:J}=ie,{composed:te}=re,{addEvent:$,defined:A,find:B,isNumber:F,merge:L,pick:D,pushUnique:I,relativeLength:E,splat:_,uniqueKey:b,wrap:T}=pe;function f(G,x,N,R){const he=R?1:0;let me,Ce,Se,Oe,Ae,Fe;me=x>=0&&x<=G.length-1?x:x<0?G.length-1+x:0;const oe=me-1<0?G.length-(1+he):me-1,de=G[oe],ye=G[me+1>G.length-1?he:me+1],Xe=G[me].plotX,Ze=G[me].plotY;Ce=(1.5*Xe+de.plotX)/2.5,Se=(1.5*Ze+de.plotY)/2.5,Oe=(1.5*Xe+ye.plotX)/2.5,Ae=(1.5*Ze+ye.plotY)/2.5;const lt=Math.sqrt(Math.pow(Ce-Xe,2)+Math.pow(Se-Ze,2)),Qe=Math.sqrt(Math.pow(Oe-Xe,2)+Math.pow(Ae-Ze,2)),st=Math.atan2(Se-Ze,Ce-Xe),kt=Math.atan2(Ae-Ze,Oe-Xe);Fe=Math.PI/2+(st+kt)/2,Math.abs(st-Fe)>Math.PI/2&&(Fe-=Math.PI),Ce=Xe+Math.cos(Fe)*lt,Se=Ze+Math.sin(Fe)*lt,Oe=Xe+Math.cos(Math.PI+Fe)*Qe,Ae=Ze+Math.sin(Math.PI+Fe)*Qe;const pt={rightContX:Oe,rightContY:Ae,leftContX:Ce,leftContY:Se,plotX:Xe,plotY:Ze};return N&&(pt.prevPointCont=f(G,oe,!1,R)),pt}function a(){(this.pane||[]).forEach(G=>{G.render()})}function g(G){const x=G.args[0].xAxis,N=G.args[0].yAxis,R=G.args[0].chart;x&&N&&("polygon"===N.gridLineInterpolation?(x.startOnTick=!0,x.endOnTick=!0):"polygon"===x.gridLineInterpolation&&R.inverted&&(N.startOnTick=!0,N.endOnTick=!0))}function y(){this.pane||(this.pane=[]),this.options.pane=_(this.options.pane),this.options.pane.forEach(G=>{new le(G,this)},this)}function o(G){const x=G.args.marker,N=this.chart.xAxis[0],R=this.chart.yAxis[0],K=this.chart.inverted,q=K?R:N,he=K?N:R;if(this.chart.polar){G.preventDefault();const me=(x.attr?x.attr("start"):x.start)-q.startAngleRad,Ce=x.attr?x.attr("r"):x.r,Se=(x.attr?x.attr("end"):x.end)-q.startAngleRad,Oe=x.attr?x.attr("innerR"):x.innerR;G.result.x=me+q.pos,G.result.width=Se-me,G.result.y=he.len+he.pos-Ce,G.result.height=Ce-Oe}}function n(G){const x=this.chart;if(x.polar&&x.hoverPane&&x.hoverPane.axis){G.preventDefault();const N=x.hoverPane.center,R=x.mouseDownX||0,K=x.mouseDownY||0,q=G.args.chartY,he=G.args.chartX,me=2*Math.PI,Ce=x.hoverPane.axis.startAngleRad,Se=x.hoverPane.axis.endAngleRad,Oe=x.inverted?x.xAxis[0]:x.yAxis[0],Ae={};let Fe="arc";if(Ae.x=N[0]+x.plotLeft,Ae.y=N[1]+x.plotTop,this.zoomHor){const oe=Ce>0?Se-Ce:Math.abs(Ce)+Math.abs(Se);let ee=Math.atan2(K-x.plotTop-N[1],R-x.plotLeft-N[0])-Ce,de=Math.atan2(q-x.plotTop-N[1],he-x.plotLeft-N[0])-Ce;Ae.r=N[2]/2,Ae.innerR=N[3]/2,ee<=0&&(ee+=me),de<=0&&(de+=me),deSe+(me-oe)/2&&(de=ee,ee=Ce<=0?Ce:0);const ye=Ae.start=Math.max(ee+Ce,Ce),Te=Ae.end=Math.min(de+Ce,Se);if("polygon"===Oe.options.gridLineInterpolation){const _e=x.hoverPane.axis,Me=ye-_e.startAngleRad+_e.pos,Ee=Te-ye;let Xe=Oe.getPlotLinePath({value:Oe.max}),Ze=_e.toValue(Me),lt=_e.toValue(Me+Ee);if(Ze<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();Ze=st-(Qe-Ze)}if(lt<_e.getExtremes().min){const{min:Qe,max:st}=_e.getExtremes();lt=st-(Qe-lt)}ltN[2]/2&&(de=N[2]/2),eex.max?(K[q].isNull=!0,K[q].plotY=NaN):K[q].isNull=K[q].isValid&&!K[q].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!G.eventsToUnbind.push($(G,"afterRender",function(){let he;R.polar&&!1!==this.options.clip&&(he=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:he[0],y:he[1],r:he[2]/2,innerR:he[3]/2}):this.clipCircle=function z(G,x,N,R,K){const q=b(),he=G.createElement("clipPath").attr({id:q}).add(G.defs),me=K?G.arc(x,N,R,K,0,2*Math.PI).add(he):G.circle(x,N,R).add(he);return me.id=q,me.clipPath=he,me}(R.renderer,he[0],he[1],he[2]/2,he[3]/2),this.group.clip(this.clipCircle),this.setClip=re.noop)})))}}function d(G){const x=this,N=x.chart,R=x.xAxis,q=R.pane&&R.pane.center,Ce=N.inverted?{clientX:G.chartX-x.yAxis.pos,plotY:G.chartY-R.pos}:{clientX:180+Math.atan2(G.chartX-(q&&q[0]||0)-N.plotLeft,G.chartY-(q&&q[1]||0)-N.plotTop)*(-180/Math.PI)};return x.searchKDTree(Ce)}function C(G,x,N,R){const K=R.tickInterval,q=R.tickPositions;let he=B(q,Ce=>Ce>=N),me=B([...q].reverse(),Ce=>Ce<=x);return A(he)||(he=q[q.length-1]),A(me)||(me=q[0],he+=K,G[0][0]="L",G.unshift(G[G.length-3])),(G=G.slice(q.indexOf(me),q.indexOf(he)+1))[0][0]="M",G}function k(G,x){return B(this.pane||[],N=>N.options.id===x)||G.call(this,x)}function p(G,x,N,R,K,q){const he=this.chart,me=D(R.inside,!!this.options.stacking);let Ce,Se,Oe;he.polar?(Ce=x.rectPlotX/Math.PI*180,he.inverted?(this.forceDL=he.isInsidePlot(x.plotX,x.plotY),me&&x.shapeArgs?(Se=x.shapeArgs,Oe=this.yAxis.postTranslate(((Se.start||0)+(Se.end||0))/2-this.xAxis.startAngleRad,x.barX+x.pointWidth/2),K=L(K,{x:Oe.x-he.plotLeft,y:Oe.y-he.plotTop})):x.tooltipPos&&(K=L(K,{x:x.tooltipPos[0],y:x.tooltipPos[1]})),R.align=D(R.align,"center"),R.verticalAlign=D(R.verticalAlign,"middle")):R=function O(G,x){let N,R;return null===x.align&&(N=G>20&&G<160?"left":G>200&&G<340?"right":"center",x.align=N),null===x.verticalAlign&&(R=G<45||G>315?"bottom":G>135&&G<225?"top":"middle",x.verticalAlign=R),x}(Ce,R),ve.prototype.alignDataLabel.call(this,x,N,R,K,q),this.isRadialBar&&x.shapeArgs&&x.shapeArgs.start===x.shapeArgs.end?N.hide():N.show()):G.call(this,x,N,R,K,q)}function S(){const G=this,x=G.options,N=x.stacking,R=G.chart,K=G.xAxis,q=G.yAxis,he=q.reversed,me=q.center,Ce=K.startAngleRad,Oe=K.endAngleRad-Ce;let oe,ee,de,ye,Te,Ee,Xe,Ze,lt,Qe,st,kt,pt,Ae=x.threshold,Fe=0,_e=0,Me=0;if(K.isRadial)for(oe=G.points,de=oe.length,ye=q.translate(q.min),Te=q.translate(q.max),Ae=x.threshold||0,R.inverted&&F(Ae)&&(Fe=q.translate(Ae),A(Fe)&&(Fe<0?Fe=0:Fe>Oe&&(Fe=Oe),G.translatedThreshold=Fe+Ce));de--;){if(ee=oe[de],st=ee.barX,Xe=ee.x,Ze=ee.y,ee.shapeType="arc",R.inverted){ee.plotY=q.translate(Ze),N&&q.stacking?(Qe=q.stacking.stacks[(Ze<0?"-":"")+G.stackKey],G.visible&&Qe&&Qe[Xe]&&(ee.isNull||(lt=Qe[Xe].points[G.getStackIndicator(void 0,Xe,G.index).key],_e=q.translate(lt[0]),Me=q.translate(lt[1]),A(_e)&&(_e=pe.clamp(_e,0,Oe))))):(_e=Fe,Me=ee.plotY),_e>Me&&(Me=[_e,_e=Me][0]),he?Me>ye?Me=ye:_eye||MeTe?Me=Te:(MeTe)&&(_e=Me=0),q.min>q.max&&(_e=Me=he?Oe:0),_e+=Ce,Me+=Ce,me&&(ee.barX=st+=me[3]/2),kt=Math.max(st,0),pt=Math.max(st+ee.pointWidth,0);const ht=x.borderRadius,Gt=E(("object"==typeof ht?ht.radius:ht)||0,pt-kt);ee.shapeArgs={x:me[0],y:me[1],r:pt,innerR:kt,start:_e,end:Me,borderRadius:Gt},ee.opacity=_e===Me?0:void 0,ee.plotY=(A(G.translatedThreshold)&&(_eme[1])}}function j(G,x){const N=this;let R,K;if(this.chart.polar){x=x||this.points;for(let he=0;he{typeof he.polarPlotY>"u"&&N.polar.toXY(he)})}const q=G.apply(this,[].slice.call(arguments,1));return K&&x.pop(),q}function H(G,x){const N=this.chart;let R={xAxis:[],yAxis:[]};return N.polar?N.axes.forEach(K=>{if("colorAxis"===K.coll)return;const q=K.isXAxis,he=K.center,me=x.chartX-he[0]-N.plotLeft,Ce=x.chartY-he[1]-N.plotTop;R[q?"xAxis":"yAxis"].push({axis:K,value:K.translate(q?Math.PI-Math.atan2(me,Ce):Math.sqrt(Math.pow(me,2)+Math.pow(Ce,2)),!0)})}):R=G.call(this,x),R}function Y(G,x){this.chart.polar||G.call(this,x)}function U(G,x){const N=this,R=this.chart,K=this.group,q=this.markerGroup,he=this.xAxis&&this.xAxis.center,me=R.plotLeft,Ce=R.plotTop;let Oe,Ae,Fe,oe,ee,de,Se=this.options.animation;R.polar?N.isRadialBar?x||(N.startAngleRad=D(N.translatedThreshold,N.xAxis.startAngleRad),re.seriesTypes.pie.prototype.animate.call(N,x)):(Se=J(Se),N.is("column")?x||(Ae=he[3]/2,N.points.forEach(ye=>{Fe=ye.graphic,oe=ye.shapeArgs,ee=oe&&oe.r,de=oe&&oe.innerR,Fe&&oe&&(Fe.attr({r:Ae,innerR:Ae}),Fe.animate({r:ee,innerR:de},N.options.animation))})):x?(Oe={translateX:he[0]+me,translateY:he[1]+Ce,scaleX:.001,scaleY:.001},K.attr(Oe),q&&q.attr(Oe)):(Oe={translateX:me,translateY:Ce,scaleX:1,scaleY:1},K.animate(Oe,Se),q&&q.animate(Oe,Se))):G.call(this,x)}function se(G,x,N,R){let K,q;if(this.chart.polar)if(R){q=f(x,R,!0,this.connectEnds);const he=q.prevPointCont&&q.prevPointCont.rightContX,me=q.prevPointCont&&q.prevPointCont.rightContY;K=["C",F(he)?he:q.plotX,F(me)?me:q.plotY,F(q.leftContX)?q.leftContX:q.plotX,F(q.leftContY)?q.leftContY:q.plotY,q.plotX,q.plotY]}else K=["M",N.plotX,N.plotY];else K=G.call(this,x,N,R);return K}function w(G,x,N=this.plotY){if(!this.destroyed){const{plotX:R,series:K}=this,{chart:q}=K;return q.polar&&F(R)&&F(N)?[R+(x?q.plotLeft:0),N+(x?q.plotTop:0)]:G.call(this,x,N)}}class X{static compose(x,N,R,K,q,he,me,Ce,Se,Oe){if(le.compose(N,R),fe.compose(x,q),I(te,"Polar")){const Ae=N.prototype,Fe=he.prototype,oe=R.prototype,ee=K.prototype;if($(N,"afterDrawChartBox",a),$(N,"getAxes",y),$(N,"init",g),T(Ae,"get",k),T(oe,"getCoordinates",H),T(oe,"pinch",Y),$(R,"getSelectionMarkerAttrs",n),$(R,"getSelectionBox",o),$(K,"afterInit",r),$(K,"afterTranslate",l,{order:2}),$(K,"afterColumnTranslate",S,{order:4}),T(ee,"animate",U),T(Fe,"pos",w),Ce){const de=Ce.prototype;T(de,"alignDataLabel",p),T(de,"animate",U)}if(Se&&T(Se.prototype,"getGraphPath",j),Oe){const de=Oe.prototype;T(de,"getPointSpline",se),me&&(me.prototype.getPointSpline=de.getPointSpline)}}}constructor(x){this.series=x}arc(x,N,R,K){const q=this.series,he=q.xAxis.center,me=q.yAxis.len,Ce=he[3]/2;let Se=me-N+Ce,Oe=me-D(x,me)+Ce;return q.yAxis.reversed&&(Se<0&&(Se=Ce),Oe<0&&(Oe=Ce)),{x:he[0],y:he[1],r:Se,innerR:Oe,start:R,end:K}}toXY(x){const N=this.series,R=N.chart,K=N.xAxis,q=N.yAxis,he=x.plotX,me=R.inverted,Ce=x.y;let Ae,Se=x.plotY,Oe=me?he:q.len-Se;if(me&&N&&!N.isRadialBar&&(x.plotY=Se=F(Ce)?q.translate(Ce):0),x.rectPlotX=he,x.rectPlotY=Se,q.center&&(Oe+=q.center[3]/2),F(Se)){const Fe=me?q.postTranslate(Se,Oe):K.postTranslate(he,Oe);x.plotX=x.polarPlotX=Fe.x-R.plotLeft,x.plotY=x.polarPlotY=Fe.y-R.plotTop}N.kdByAngle?(Ae=(he/Math.PI*180+K.pane.options.startAngle)%360,Ae<0&&(Ae+=360),x.clientX=Ae):x.clientX=x.plotX}}return X}),Z(Pe,"Core/Axis/WaterfallAxis.js",[Pe["Core/Globals.js"],Pe["Core/Axis/Stacking/StackItem.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=ie,{addEvent:fe,objectEach:pe,pushUnique:J}=ve;var te;return function($){function B(){const _=this.waterfall.stacks;_&&(_.changed=!1,delete _.alreadyChanged)}function F(){const E=this,_=E.options.stackLabels;_&&_.enabled&&E.waterfall.stacks&&E.waterfall.renderStackTotals()}function L(){const E=this;E.waterfall||(E.waterfall=new I(E))}function D(){const E=this.axes,_=this.series;for(const b of _)if(b.options.stacking){for(const T of E)T.isXAxis||(T.waterfall.stacks.changed=!0);break}}$.compose=function A(E,_){J(le,"Axis.Waterfall")&&(fe(E,"init",L),fe(E,"afterBuildStacks",B),fe(E,"afterRender",F),fe(_,"beforeRedraw",D))};class I{constructor(_){this.axis=_,this.stacks={changed:!1}}renderStackTotals(){const _=this.axis,b=_.waterfall.stacks,T=_.stacking&&_.stacking.stackTotalGroup,z=new re(_,_.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=z,T&&pe(b,O=>{pe(O,(f,a)=>{z.total=f.stackTotal,z.x=+a,f.label&&(z.label=f.label),re.prototype.render.call(z,T),f.label=z.label,delete z.label})}),z.total=null}}$.Composition=I}(te||(te={})),te}),Z(Pe,"Series/Waterfall/WaterfallPoint.js",[Pe["Series/Column/ColumnSeries.js"],Pe["Core/Series/Point.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{isNumber:le}=ve;return class fe extends ie.prototype.pointClass{getClassName(){let J=re.prototype.getClassName.call(this);return this.isSum?J+=" highcharts-sum":this.isIntermediateSum&&(J+=" highcharts-intermediate-sum"),J}isValid(){return le(this.y)||this.isSum||!!this.isIntermediateSum}}}),Z(Pe,"Series/Waterfall/WaterfallSeriesDefaults.js",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}}),Z(Pe,"Series/Waterfall/WaterfallSeries.js",[Pe["Core/Series/SeriesRegistry.js"],Pe["Core/Utilities.js"],Pe["Core/Axis/WaterfallAxis.js"],Pe["Series/Waterfall/WaterfallPoint.js"],Pe["Series/Waterfall/WaterfallSeriesDefaults.js"]],function(ie,re,ve,le,fe){const{column:pe,line:J}=ie.seriesTypes,{addEvent:te,arrayMax:$,arrayMin:A,correctFloat:B,extend:F,isNumber:L,merge:D,objectEach:I,pick:E}=re;function _(T,z){return Object.hasOwnProperty.call(T,z)}class b extends pe{generatePoints(){pe.prototype.generatePoints.apply(this);for(let z=0,O=this.points.length;z0?f:void 0);const a=pe.prototype.pointAttribs.call(this,z,O);return delete a.dashstyle,a}getGraphPath(){return[["M",0,0]]}getCrispPath(){const z=this.data.filter(l=>L(l.y)),O=this.yAxis,f=z.length,a=Math.round(this.graph.strokeWidth())%2/2,g=Math.round(this.borderWidth)%2/2,y=this.xAxis.reversed,o=this.yAxis.reversed,n=this.options.stacking,r=[];for(let l=1;l0?-p.height:0;if(S&&p&&d){let Y;Y=n?Math.round(O.translate(S[l-1].connectorThreshold,!1,!0,!1,!0)+(o?j:0))-a:p.y+C.minPointLengthOffset+g-a,r.push(["M",(p.x||0)+(y?0:p.width||0),Y],["L",(d.x||0)+(y&&d.width||0),Y])}if(p&&r.length&&(!n&&k<0&&!o||k>0&&o)){const H=r[r.length-2];H&&"number"==typeof H[2]&&(H[2]+=p.height||0);const Y=r[r.length-1];Y&&"number"==typeof Y[2]&&(Y[2]+=p.height||0)}}return r}drawGraph(){J.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(z){const O=this,f=O.options,a=z.waterfall?.stacks,g=f.threshold||0,y=O.stackKey,o=O.xData,n=o.length;let d,S,j,H,Y,U,se,w,X,r=g,l=r,C=0,k=0,p=0;const G=(x,N,R,K)=>{if(d){if(S)for(;R=0?d.posTotal+=U:d.negTotal+=U,Y=f.data[N],j=d.absolutePos=d.posTotal,H=d.absoluteNeg=d.negTotal,d.stackTotal=j+H,S=d.stackState.length,Y&&Y.isIntermediateSum?(G(p,k,0,p),p=k,k=g,r^=l,l^=r,r^=l):Y&&Y.isSum?(G(g,C,S,0),r=g):(G(r,U,0,C),Y&&(C+=U,k+=U)),d.stateIndex++,d.threshold=r,r+=d.stackTotal;a.changed=!1,a.alreadyChanged||(a.alreadyChanged=[]),a.alreadyChanged.push(y)}}getExtremes(){const z=this.options.stacking;let O,f,a,g;return z?(O=this.yAxis,f=O.waterfall.stacks,a=this.stackedYNeg=[],g=this.stackedYPos=[],I(f[this.stackKey],"overlap"===z?function(y){a.push(A(y.stackState)),g.push($(y.stackState))}:function(y){a.push(y.negTotal+y.threshold),g.push(y.posTotal+y.threshold)}),{dataMin:A(a),dataMax:$(g)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return b.defaultOptions=D(pe.defaultOptions,fe),b.compose=ve.compose,F(b.prototype,{pointValKey:"y",showLine:!0,pointClass:le}),te(b,"afterColumnTranslate",function(){const T=this,{options:z,points:O,yAxis:f}=T,a=E(z.minPointLength,5),g=a/2,y=z.threshold||0,o=z.stacking,n=f.waterfall.stacks[T.stackKey];let d,C,k,p,r=y,l=y;for(let S=0;S=0?C:C-w,_(G,"absolutePos")&&delete G.absolutePos,_(G,"absoluteNeg")&&delete G.absoluteNeg):(w>=0?(C=G.threshold+G.posTotal,G.posTotal-=w,d=C):(C=G.threshold+G.negTotal,G.negTotal-=w,d=C-w),G.posTotal||L(G.absolutePos)&&_(G,"absolutePos")&&(G.posTotal=G.absolutePos,delete G.absolutePos),G.negTotal||L(G.absoluteNeg)&&_(G,"absoluteNeg")&&(G.negTotal=G.absoluteNeg,delete G.absoluteNeg)),j.isSum||(G.connectorThreshold=G.threshold+G.stackTotal),f.reversed?(k=w>=0?d-w:d+w,p=d):(k=d,p=d-w),j.below=k<=y,U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-f.translate(p,!1,!0,!1,!0));const x=f.waterfall.dummyStackItem;x&&(x.x=S,x.label=n[S].label,x.setOffset(T.pointXOffset||0,T.barW||0,T.stackedYNeg[S],T.stackedYPos[S],void 0,this.xAxis))}}else d=Math.max(l,l+w)+se[0],U.y=f.translate(d,!1,!0,!1,!0),j.isSum?(U.y=f.translate(se[1],!1,!0,!1,!0),U.height=Math.min(f.translate(se[0],!1,!0,!1,!0),f.len)-U.y,j.below=se[1]<=y):j.isIntermediateSum?(w>=0?(k=se[1]+r,p=r):(k=r,p=se[1]+r),f.reversed&&(k^=p,p^=k,k^=p),U.y=f.translate(k,!1,!0,!1,!0),U.height=Math.abs(U.y-Math.min(f.translate(p,!1,!0,!1,!0),f.len)),r+=se[1],j.below=k<=y):(U.height=H>0?f.translate(l,!1,!0,!1,!0)-U.y:f.translate(l,!1,!0,!1,!0)-f.translate(l-H,!1,!0,!1,!0),l+=H,j.below=lparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),V["masters/highcharts.src.js"]._modules=V,V["masters/highcharts.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},12146:function(ri,Ft,He){var M,e,V;e=typeof window<"u"?window:this,V=function(e){"use strict";var V={};function Pe(Z,ie,re,ve){Z.hasOwnProperty(ie)||(Z[ie]=ve.apply(null,re),"function"==typeof CustomEvent&&e.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:ie,module:Z[ie]}})))}return Pe(V,"Core/Globals.js",[],function(){var Z,ie;return(ie=Z||(Z={})).SVG_NS="http://www.w3.org/2000/svg",ie.product="Highcharts",ie.version="11.4.0",ie.win=void 0!==e?e:{},ie.doc=ie.win.document,ie.svg=ie.doc&&ie.doc.createElementNS&&!!ie.doc.createElementNS(ie.SVG_NS,"svg").createSVGRect,ie.userAgent=ie.win.navigator&&ie.win.navigator.userAgent||"",ie.isChrome=-1!==ie.userAgent.indexOf("Chrome"),ie.isFirefox=-1!==ie.userAgent.indexOf("Firefox"),ie.isMS=/(edge|msie|trident)/i.test(ie.userAgent)&&!ie.win.opera,ie.isSafari=!ie.isChrome&&-1!==ie.userAgent.indexOf("Safari"),ie.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(ie.userAgent),ie.isWebKit=-1!==ie.userAgent.indexOf("AppleWebKit"),ie.deg2rad=2*Math.PI/360,ie.hasBidiBug=ie.isFirefox&&4>parseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Core/Axis/Color/ColorAxisComposition.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{parse:ve}=Z,{addEvent:le,extend:fe,merge:pe,pick:J,splat:te}=ie;return function($){let A;function B(){let{userOptions:O}=this;this.colorAxis=[],O.colorAxis&&(O.colorAxis=te(O.colorAxis),O.colorAxis.map(f=>new A(this,f)))}function F(O){let y,o,a=n=>{let r=O.allItems.indexOf(n);-1!==r&&(this.destroyItem(O.allItems[r]),O.allItems.splice(r,1))},g=[];for((this.chart.colorAxis||[]).forEach(function(n){(y=n.options)&&y.showInLegend&&(y.dataClasses&&y.visible?g=g.concat(n.getDataClassLegendSymbols()):y.visible&&g.push(n),n.series.forEach(function(r){(!r.options.showInLegend||y.dataClasses)&&("point"===r.options.legendType?r.points.forEach(function(l){a(l)}):a(r))}))}),o=g.length;o--;)O.allItems.unshift(g[o])}function L(O){O.visible&&O.item.legendColor&&O.item.legendItem.symbol.attr({fill:O.item.legendColor})}function D(O){this.chart.colorAxis?.forEach(f=>{f.update({},O.redraw)})}function I(){(this.chart.colorAxis&&this.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function E(){let O=this.axisTypes;O?-1===O.indexOf("colorAxis")&&O.push("colorAxis"):this.axisTypes=["colorAxis"]}function _(O){let f=this,a=O?"show":"hide";f.visible=f.options.visible=!!O,["graphic","dataLabel"].forEach(function(g){f[g]&&f[g][a]()}),this.series.buildKDTree()}function b(){let O=this,a=this.options.nullColor,g=this.colorAxis,y=this.colorKey;(this.data.length?this.data:this.points).forEach(o=>{let n=o.getNestedProperty(y),r=o.options.color||(o.isNull||null===o.value?a:g&&void 0!==n?g.toColor(n,o):o.color||O.color);r&&o.color!==r&&(o.color=r,"point"===O.options.legendType&&o.legendItem&&o.legendItem.label&&O.chart.legend.colorizeItem(o,o.visible))})}function T(){this.elem.attr("fill",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}function z(){this.elem.attr("stroke",ve(this.start).tweenTo(ve(this.end),this.pos),void 0,!0)}$.compose=function(O,f,a,g,y){let o=f.prototype,n=a.prototype,r=y.prototype;o.collectionsWithUpdate.includes("colorAxis")||(A=O,o.collectionsWithUpdate.push("colorAxis"),o.collectionsWithInit.colorAxis=[o.addColorAxis],le(f,"afterGetAxes",B),function(l){let d=l.prototype.createAxis;l.prototype.createAxis=function(C,k){if("colorAxis"!==C)return d.apply(this,arguments);let p=new A(this,pe(k.axis,{index:this[C].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(S=>{S.series=[]}),this.series.forEach(S=>{S.bindAxes(),S.isDirtyData=!0}),J(k.redraw,!0)&&this.redraw(k.animation),p}}(f),n.fillSetter=T,n.strokeSetter=z,le(g,"afterGetAllItems",F),le(g,"afterColorizeItem",L),le(g,"afterUpdate",D),fe(r,{optionalAxis:"colorAxis",translateColors:b}),fe(r.pointClass.prototype,{setVisible:_}),le(y,"afterTranslate",I,{order:1}),le(y,"bindAxes",E))},$.pointSetVisible=_}(re||(re={})),re}),Pe(V,"Core/Axis/Color/ColorAxisDefaults.js",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0}}),Pe(V,"Core/Axis/Color/ColorAxisLike.js",[V["Core/Color/Color.js"],V["Core/Utilities.js"]],function(Z,ie){var re,ve;let{parse:le}=Z,{merge:fe}=ie;return(ve=re||(re={})).initDataClasses=function(pe){let B,F,I,J=this.chart,te=this.legendItem=this.legendItem||{},$=this.options,A=pe.dataClasses||[],L=J.options.chart.colorCount,D=0;this.dataClasses=F=[],te.labels=[];for(let E=0,_=A.length;E<_;++E)B=fe(B=A[E]),F.push(B),(J.styledMode||!B.color)&&("category"===$.dataClassColor?(J.styledMode||(L=(I=J.options.colors||[]).length,B.color=I[D]),B.colorIndex=D,++D===L&&(D=0)):B.color=le($.minColor).tweenTo(le($.maxColor),_<2?.5:E/(_-1)))},ve.initStops=function(){let pe=this.options,J=this.stops=pe.stops||[[0,pe.minColor||""],[1,pe.maxColor||""]];for(let te=0,$=J.length;te<$;++te)J[te].color=le(J[te][1])},ve.normalizedValue=function(pe){let J=this.max||0,te=this.min||0;return this.logarithmic&&(pe=this.logarithmic.log2lin(pe)),1-(J-pe)/(J-te||1)},ve.toColor=function(pe,J){let te,$,A,B,F,L,D=this.dataClasses,I=this.stops;if(D){for(L=D.length;L--;)if($=(F=D[L]).from,A=F.to,(void 0===$||pe>=$)&&(void 0===A||pe<=A)){B=F.color,J&&(J.dataClass=L,J.colorIndex=F.colorIndex);break}}else{for(te=this.normalizedValue(pe),L=I.length;L--&&!(te>I[L][0]););$=I[L]||I[L+1],te=1-((A=I[L+1]||$)[0]-te)/(A[0]-$[0]||1),B=$.color.tweenTo(A.color,te)}return B},re}),Pe(V,"Core/Axis/Color/ColorAxis.js",[V["Core/Axis/Axis.js"],V["Core/Axis/Color/ColorAxisComposition.js"],V["Core/Axis/Color/ColorAxisDefaults.js"],V["Core/Axis/Color/ColorAxisLike.js"],V["Core/Defaults.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=le,{series:$}=pe,{defined:A,extend:B,fireEvent:F,isArray:L,isNumber:D,merge:I,pick:E,relativeLength:_}=J;te.colorAxis=I(te.xAxis,re);class b extends Z{static compose(z,O,f,a){ie.compose(b,z,O,f,a)}constructor(z,O){super(z,O),this.coll="colorAxis",this.visible=!0,this.init(z,O)}init(z,O){let a=O.layout?"vertical"!==O.layout:"vertical"!==(z.options.legend||{}).layout;this.side=O.side||a?2:1,this.reversed=O.reversed||!a,this.opposite=!a,super.init(z,O,"colorAxis"),this.userOptions=O,L(z.userOptions.colorAxis)&&(z.userOptions.colorAxis[this.index]=O),O.dataClasses&&this.initDataClasses(O),this.initStops(),this.horiz=a,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(z){let O=I(te.colorAxis,z,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==z.visible});super.setOptions(O),this.options.crosshair=this.options.marker}setAxisSize(){let z=this.chart,O=this.legendItem?.symbol,{width:f,height:a}=this.getSize();O&&(this.left=+O.attr("x"),this.top=+O.attr("y"),this.width=f=+O.attr("width"),this.height=a=+O.attr("height"),this.right=z.chartWidth-this.left-f,this.bottom=z.chartHeight-this.top-a,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?f:a)||b.defaultLegendLength}getOffset(){let z=this.legendItem?.group,O=this.chart.axisOffset[this.side];if(z){this.axisParent=z,super.getOffset();let f=this.chart.legend;f.allItems.forEach(function(a){a instanceof b&&a.drawLegendSymbol(f,a)}),f.render(),this.chart.getMargins(!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=O}}setLegendColor(){let O=this.reversed,f=O?1:0,a=O?0:1,g=this.horiz?[f,0,a,0]:[0,a,0,f];this.legendColor={linearGradient:{x1:g[0],y1:g[1],x2:g[2],y2:g[3]},stops:this.stops}}drawLegendSymbol(z,O){let f=O.legendItem||{},a=z.padding,g=z.options,y=this.options.labels,o=E(g.itemDistance,10),n=this.horiz,{width:r,height:l}=this.getSize(),d=E(g.labelPadding,n?16:30);this.setLegendColor(),f.symbol||(f.symbol=this.chart.renderer.symbol("roundedRect").attr({r:g.symbolRadius??3,zIndex:1}).add(f.group)),f.symbol.attr({x:0,y:(z.baseline||0)-11,width:r,height:l}),f.labelWidth=r+a+(n?o:E(y.x,y.distance)+(this.maxLabelLength||0)),f.labelHeight=l+a+(n?d:0)}setState(z){this.series.forEach(function(O){O.setState(z)})}setVisible(){}getSeriesExtremes(){let O,f,a,g,y,o,r,l,z=this.series,n=z.length;for(this.dataMin=1/0,this.dataMax=-1/0;n--;){if(f=(o=z[n]).colorKey=E(o.options.colorKey,o.colorKey,o.pointValKey,o.zoneAxis,"y"),g=o.pointArrayMap,y=o[f+"Min"]&&o[f+"Max"],o[f+"Data"])O=o[f+"Data"];else if(g){if(O=[],a=g.indexOf(f),r=o.yData,a>=0&&r)for(l=0;lo+n&&(f=o+n+2),O.plotX=f,O.plotY=this.len-f,super.drawCrosshair(z,O),O.plotX=g,O.plotY=y,this.cross&&!this.cross.addedToColorAxis&&a.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(a.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(z){let O=this.left,f=z.translatedValue,a=this.top;return D(f)?this.horiz?[["M",f-4,a-6],["L",f+4,a-6],["L",f,a],["Z"]]:[["M",O,f],["L",O-6,f+6],["L",O-6,f-6],["Z"]]:super.getPlotLinePath(z)}update(z,O){let f=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0}),(z.dataClasses&&f.allItems||this.dataClasses)&&this.destroyItems(),super.update(z,O),this.legendItem&&this.legendItem.label&&(this.setLegendColor(),f.colorizeItem(this,!0))}destroyItems(){let z=this.chart,O=this.legendItem||{};if(O.label)z.legend.destroyItem(this);else if(O.labels)for(let f of O.labels)z.legend.destroyItem(f);z.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(z){this.destroyItems(),super.remove(z)}getDataClassLegendSymbols(){let z,O=this,f=O.chart,a=O.legendItem&&O.legendItem.labels||[],g=f.options.legend,y=E(g.valueDecimals,-1),o=E(g.valueSuffix,""),n=r=>O.series.reduce((l,d)=>(l.push(...d.points.filter(C=>C.dataClass===r)),l),[]);return a.length||O.dataClasses.forEach((r,l)=>{let d=r.from,C=r.to,{numberFormatter:k}=f,p=!0;z="",void 0===d?z="< ":void 0===C&&(z="> "),void 0!==d&&(z+=k(d,y)+o),void 0!==d&&void 0!==C&&(z+=" - "),void 0!==C&&(z+=k(C,y)+o),a.push(B({chart:f,name:z,options:{},drawLegendSymbol:fe.rectangle,visible:!0,isDataClass:!0,setState:S=>{for(let j of n(l))j.setState(S)},setVisible:function(){this.visible=p=O.visible=!p;let S=[];for(let j of n(l))j.setVisible(p),j.hiddenInDataClass=!p,-1===S.indexOf(j.series)&&S.push(j.series);f.legend.colorizeItem(this,p),S.forEach(j=>{F(j,"afterDataClassLegendClick")})}},r))}),a}getSize(){let{chart:z,horiz:O}=this,{legend:f,height:a,width:g}=this.options;return{width:E(A(g)?_(g,z.chartWidth):void 0,f?.symbolWidth,O?b.defaultLegendLength:12),height:E(A(a)?_(a,z.chartHeight):void 0,f?.symbolHeight,O?12:b.defaultLegendLength)}}}return b.defaultLegendLength=200,b.keepProps=["legendItem"],B(b.prototype,ve),Array.prototype.push.apply(Z.keepProps,b.keepProps),b}),Pe(V,"masters/modules/coloraxis.src.js",[V["Core/Globals.js"],V["Core/Axis/Color/ColorAxis.js"]],function(Z,ie){return Z.ColorAxis=Z.ColorAxis||ie,Z.ColorAxis.compose(Z.Chart,Z.Fx,Z.Legend,Z.Series),Z}),Pe(V,"Maps/MapNavigationDefaults.js",[],function(){return{lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}}}),Pe(V,"Maps/MapPointer.js",[V["Core/Utilities.js"]],function(Z){var ie;let{defined:re,extend:ve,pick:le,wrap:fe}=Z;return function(pe){let J,te=0;function $(L){let D=this.chart;L=this.normalize(L),D.options.mapNavigation.enableDoubleClickZoomTo?D.pointer.inClass(L.target,"highcharts-tracker")&&D.hoverPoint&&D.hoverPoint.zoomTo():D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapZoom(.5,void 0,void 0,L.chartX,L.chartY)}function A(L){let D=this.chart,I=re((L=this.normalize(L)).wheelDelta)&&-L.wheelDelta/120||L.deltaY||L.detail;Math.abs(I)>=1&&(te+=Math.abs(I),J&&clearTimeout(J),J=setTimeout(()=>{te=0},50)),te<10&&D.isInsidePlot(L.chartX-D.plotLeft,L.chartY-D.plotTop)&&D.mapView&&D.mapView.zoomBy(-(D.options.mapNavigation.mouseWheelSensitivity-1)*I,void 0,[L.chartX,L.chartY],!(1>Math.abs(I))&&void 0)}function B(L,D,I){let E=this.chart;if(D=L.call(this,D,I),E&&E.mapView){let _=E.mapView.pixelsToLonLat({x:D.chartX-E.plotLeft,y:D.chartY-E.plotTop});_&&ve(D,_)}return D}function F(L){let D=this.chart.options.mapNavigation;D&&le(D.enableTouchZoom,D.enabled)&&(this.chart.zooming.pinchType="xy"),L.apply(this,[].slice.call(arguments,1))}pe.compose=function(L){let D=L.prototype;D.onContainerDblClick||(ve(D,{onContainerDblClick:$,onContainerMouseWheel:A}),fe(D,"normalize",B),fe(D,"zoomOption",F))}}(ie||(ie={})),ie}),Pe(V,"Maps/MapSymbols.js",[],function(){let Z;function ie(ve,le,fe,pe,J){if(J){let te=J?.r||0;J.brBoxY=le-te,J.brBoxHeight=pe+te}return Z.roundedRect(ve,le,fe,pe,J)}function re(ve,le,fe,pe,J){return J&&(J.brBoxHeight=pe+(J?.r||0)),Z.roundedRect(ve,le,fe,pe,J)}return{compose:function(ve){(Z=ve.prototype.symbols).bottombutton=ie,Z.topbutton=re}}}),Pe(V,"Maps/MapNavigation.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Maps/MapNavigationDefaults.js"],V["Maps/MapPointer.js"],V["Maps/MapSymbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{setOptions:pe}=Z,{composed:J}=ie,{addEvent:te,extend:$,merge:A,objectEach:B,pick:F,pushUnique:L}=fe;function D(E){E&&(E.preventDefault&&E.preventDefault(),E.stopPropagation&&E.stopPropagation(),E.cancelBubble=!0)}class I{static compose(_,b,T){ve.compose(b),le.compose(T),L(J,"Map.Navigation")&&(te(_,"beforeRender",function(){this.mapNavigation=new I(this),this.mapNavigation.update()}),pe(re))}constructor(_){this.chart=_,this.navButtons=[]}update(_){let a,b=this,T=b.chart,z=b.navButtons,O=function(g){this.handler.call(T,g),D(g)},f=T.options.mapNavigation;for(_&&(f=T.options.mapNavigation=A(T.options.mapNavigation,_));z.length;)z.pop().destroy();if(!T.renderer.forExport&&F(f.enableButtons,f.enabled)){b.navButtonsGroup||(b.navButtonsGroup=T.renderer.g().attr({zIndex:7}).add()),B(f.buttons,(y,o)=>{y=A(f.buttonOptions,y),!T.styledMode&&y.theme&&((a=y.theme).style=A(y.theme.style,y.style));let{text:n,width:r=0,height:l=0,padding:d=0}=y,C=T.renderer.button("+"!==n&&"-"!==n&&n||"",0,0,O,a,void 0,void 0,void 0,"zoomIn"===o?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[o]).attr({width:r,height:l,title:T.options.lang[o],padding:y.padding,zIndex:5}).add(b.navButtonsGroup);if("+"===n||"-"===n){let k=r+1,p=[["M",d+3,d+l/2],["L",d+k-3,d+l/2]];"+"===n&&p.push(["M",d+k/2,d+3],["L",d+k/2,d+l-3]),T.renderer.path(p).addClass("highcharts-button-symbol").attr(T.styledMode?{}:{stroke:y.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(C)}if(C.handler=y.onclick,te(C.element,"dblclick",D),z.push(C),$(y,{width:C.width,height:2*(C.height||0)}),T.hasLoaded)C.align(y,!1,y.alignTo);else{let k=te(T,"load",()=>{C.element&&C.align(y,!1,y.alignTo),k()})}});let g=(y,o)=>!(o.x>=y.x+y.width||o.x+o.width<=y.x||o.y>=y.y+y.height||o.y+o.height<=y.y);T.hasLoaded||te(T,"render",function(){let y=T.exportingGroup&&T.exportingGroup.getBBox();if(y){let o=b.navButtonsGroup.getBBox();g(y,o)&&b.navButtonsGroup.attr({translateY:"bottom"===(f.buttonOptions&&f.buttonOptions.verticalAlign)?-o.y-o.height+y.y-5:y.y+y.height-o.y+5})}})}this.updateEvents(f)}updateEvents(_){let b=this.chart;F(_.enableDoubleClickZoom,_.enabled)||_.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||te(b.container,"dblclick",function(T){b.pointer.onContainerDblClick(T)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),F(_.enableMouseWheelZoom,_.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||te(b.container,"wheel",function(T){return b.pointer.inClass(T.target,"highcharts-no-mousewheel")||(b.pointer.onContainerMouseWheel(T),D(T)),!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}return I}),Pe(V,"Series/ColorMapComposition.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{column:{prototype:ve}}=Z.seriesTypes,{addEvent:le,defined:fe}=ie;return function(pe){function J(te){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:te&&"hover"===te.state?1:0})}pe.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},pe.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(te){let $={};return fe(te.color)&&(!te.state||"normal"===te.state)&&($[this.colorProp||"fill"]=te.color),$},pointAttribs:ve.pointAttribs},pe.compose=function(te){return le(te.prototype.pointClass,"afterSetState",J),te}}(re||(re={})),re}),Pe(V,"Core/Chart/MapChart.js",[V["Core/Chart/Chart.js"],V["Core/Defaults.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{getOptions:fe}=ie,{isNumber:pe,merge:J,pick:te}=ve;class $ extends Z{init(B,F){let L=fe().credits,D=J({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:te(L.mapText,' \xa9 {geojson.copyrightShort}'),mapTextFull:te(L.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},B);super.init(D,F)}mapZoom(B,F,L,D,I){this.mapView&&(pe(B)&&(B=Math.log(B)/Math.log(.5)),this.mapView.zoomBy(B,pe(F)&&pe(L)?this.mapView.projection.inverse([F,L]):void 0,pe(D)&&pe(I)?[D,I]:void 0))}update(B){B.chart&&"map"in B.chart&&this.mapView?.recommendMapView(this,[B.chart.map,...(this.options.series||[]).map(F=>F.mapData)],!0),super.update.apply(this,arguments)}}return(le=$||($={})).maps={},le.mapChart=function(A,B,F){return new le(A,B,F)},le.splitPath=function(A){let B;return B="string"==typeof A?(A=A.replace(/([A-Za-z])/g," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map(F=>/[A-Za-z]/.test(F)?F:parseFloat(F)):A,re.prototype.pathToSegments(B)},$}),Pe(V,"Maps/MapUtilities.js",[],function(){return{boundsFromPath:function(Z){let fe,ie=-Number.MAX_VALUE,re=Number.MAX_VALUE,ve=-Number.MAX_VALUE,le=Number.MAX_VALUE;if(Z.forEach(pe=>{let J=pe[pe.length-2],te=pe[pe.length-1];"number"==typeof J&&"number"==typeof te&&(re=Math.min(re,J),ie=Math.max(ie,J),le=Math.min(le,te),ve=Math.max(ve,te),fe=!0)}),fe)return{x1:re,y1:le,x2:ie,y2:ve}},pointInPolygon:function(Z,ie){let re,ve,le=!1,fe=Z.x,pe=Z.y;for(re=0,ve=ie.length-1;repe!=ie[ve][1]>pe&&fe<(ie[ve][0]-ie[re][0])*(pe-ie[re][1])/(ie[ve][1]-ie[re][1])+ie[re][0]&&(le=!le);return le}}}),Pe(V,"Series/Map/MapPoint.js",[V["Series/ColorMapComposition.js"],V["Maps/MapUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{boundsFromPath:le}=ie,fe=re.seriesTypes.scatter.prototype.pointClass,{extend:pe,isNumber:J,pick:te}=ve;class $ extends fe{static getProjectedPath(B,F){return B.projectedPath||(F&&B.geometry?(F.hasCoordinates=!0,B.projectedPath=F.path(B.geometry)):B.projectedPath=B.path),B.projectedPath||[]}applyOptions(B,F){let L=this.series,D=super.applyOptions(B,F);if(L.mapData&&L.mapMap){let _=super.getNestedProperty(L.joinBy[1]),b=void 0!==_&&L.mapMap[_];b?pe(D,{...b,name:D.name??b.name}):-1!==L.pointArrayMap.indexOf("value")&&(D.value=D.value||null)}return D}getProjectedBounds(B){let F=le($.getProjectedPath(this,B)),L=this.properties;if(F){let I=L&&L["hc-middle-lon"],E=L&&L["hc-middle-lat"];if(this.series.chart.mapView&&J(I)&&J(E)){let _=B.forward([I,E]);F.midX=_[0],F.midY=_[1]}else{let _=L&&L["hc-middle-x"],b=L&&L["hc-middle-y"];F.midX=F.x1+(F.x2-F.x1)*te(this.middleX,J(_)?_:.5);let T=te(this.middleY,J(b)?b:.5);this.geometry||(T=1-T),F.midY=F.y2-(F.y2-F.y1)*T}return F}}onMouseOver(B){ve.clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,B):this.series.onMouseOut()}setVisible(B){this.visible=this.options.visible=!!B,this.dataLabel&&this.dataLabel[B?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(B){let F=this.series.chart,L=F.mapView,D=this.bounds;if(L&&D){let I=J(this.insetIndex)&&L.insets[this.insetIndex];if(I){let E=I.projectedUnitsToPixels({x:D.x1,y:D.y1}),_=I.projectedUnitsToPixels({x:D.x2,y:D.y2}),b=L.pixelsToProjectedUnits({x:E.x,y:E.y}),T=L.pixelsToProjectedUnits({x:_.x,y:_.y});D={x1:b.x,y1:b.y,x2:T.x,y2:T.y}}L.fitToBounds(D,void 0,!1),this.series.isDirty=!0,F.redraw(B)}}}return pe($.prototype,{dataLabelOnNull:Z.pointMembers.dataLabelOnNull,moveToTopOnHover:Z.pointMembers.moveToTopOnHover,isValid:Z.pointMembers.isValid}),$}),Pe(V,"Series/Map/MapSeriesDefaults.js",[V["Core/Utilities.js"]],function(Z){let{isNumber:ie}=Z;return{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:re}=this.series.chart,{value:ve}=this.point;return ie(ve)?re(ve,-1):this.point.name},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
    "},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}}),Pe(V,"Maps/MapViewDefaults.js",[],function(){return{center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}}}),Pe(V,"Maps/GeoJSONComposition.js",[V["Core/Globals.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{win:le}=Z,{format:fe}=ie,{error:pe,extend:J,merge:te,wrap:$}=re;return function(A){function B(_){return this.mapView&&this.mapView.lonLatToProjectedUnits(_)}function F(_){return this.mapView&&this.mapView.projectedUnitsToLonLat(_)}function L(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r=T(b.crs,[_.lon,_.lat]),l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=b.rotation?[r[0]*l+r[1]*d,-r[0]*d+r[1]*l]:r;return{x:((C[0]-g)*a+y)*f+z,y:-(((o-C[1])*a+n)*f-O)}}function D(_,b){let T=this.options.chart.proj4||le.proj4;if(!T)return void pe(21,!1,this);if(null===_.y)return;let{jsonmarginX:z=0,jsonmarginY:O=0,jsonres:f=1,scale:a=1,xoffset:g=0,xpan:y=0,yoffset:o=0,ypan:n=0}=b,r={x:((_.x-z)/f-y)/a+g,y:((_.y-O)/f+n)/a+o},l=b.cosAngle||b.rotation&&Math.cos(b.rotation),d=b.sinAngle||b.rotation&&Math.sin(b.rotation),C=T(b.crs,"WGS84",b.rotation?{x:r.x*l+-r.y*d,y:r.x*d+r.y*l}:r);return{lat:C.y,lon:C.x}}function I(_,b){b||(b=Object.keys(_.objects)[0]);let T=_.objects[b];if(T["hc-decoded-geojson"]&&T["hc-decoded-geojson"].title===_.title)return T["hc-decoded-geojson"];let z=_.arcs;if(_.transform){let y,o,n,r=_.arcs,{scale:l,translate:d}=_.transform;z=[];for(let C=0,k=r.length;C"number"==typeof y[0]?y.reduce((o,n,r)=>{let l=n<0?z[~n]:z[n];return n<0?(l=l.slice(0,0===r?l.length:l.length-1)).reverse():r&&(l=l.slice(1)),o.concat(l)},[]):y.map(O),f=T.geometries,a=[];for(let y=0,o=f.length;y(le[1]-ve[1])*(fe[0]-ve[0])}function re(ve,le,fe,pe){let J=[ve[0]-le[0],ve[1]-le[1]],te=[fe[0]-pe[0],fe[1]-pe[1]],$=ve[0]*le[1]-ve[1]*le[0],A=fe[0]*pe[1]-fe[1]*pe[0],B=1/(J[0]*te[1]-J[1]*te[0]),F=[($*te[0]-A*J[0])*B,($*te[1]-A*J[1])*B];return F.isIntersection=!0,F}return{clipLineString:function(ve,le){let fe=[],pe=Z(ve,le,!1);for(let J=1;J0===le?0:le>0?1:-1),ie=Math.PI/180,re=Math.PI/2,ve=le=>Math.tan((re+le)/2);return class{constructor(le){let fe=(le.parallels||[]).map(A=>A*ie),pe=fe[0]||0,J=fe[1]??pe,te=Math.cos(pe);"object"==typeof le.projectedBounds&&(this.projectedBounds=le.projectedBounds);let $=pe===J?Math.sin(pe):Math.log(te/Math.cos(J))/Math.log(ve(J)/ve(pe));1e-10>Math.abs($)&&($=1e-10*(Z($)||1)),this.n=$,this.c=te*Math.pow(ve(pe),$)/$}forward(le){let{c:fe,n:pe,projectedBounds:J}=this,te=le[0]*ie,$=le[1]*ie;fe>0?$<1e-6-re&&($=1e-6-re):$>re-1e-6&&($=re-1e-6);let A=fe/Math.pow(ve($),pe),B=A*Math.sin(pe*te)*63.78137,F=63.78137*(fe-A*Math.cos(pe*te)),L=[B,F];return J&&(BJ.x2||FJ.y2)&&(L.outside=!0),L}inverse(le){let{c:fe,n:pe}=this,J=le[0]/63.78137,te=fe-le[1]/63.78137,$=Z(pe)*Math.sqrt(J*J+te*te),A=Math.atan2(J,Math.abs(te))*Z(te);return te*pe<0&&(A-=Math.PI*Z(J)*Z(te)),[A/pe/ie,(2*Math.atan(Math.pow(fe/$,1/pe))-re)/ie]}}}),Pe(V,"Maps/Projections/EqualEarth.js",[],function(){let Z=Math.sqrt(3)/2;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(ie){let re=Math.PI/180,ve=Math.asin(Z*Math.sin(ie[1]*re)),le=ve*ve,fe=le*le*le;return[ie[0]*re*Math.cos(ve)*74.03120656864502/(Z*(1.340264+-.24331799999999998*le+fe*(.0062510000000000005+.034164*le))),74.03120656864502*ve*(1.340264+-.081106*le+fe*(893e-6+.003796*le))]}inverse(ie){let pe,J,te,$,re=ie[0]/74.03120656864502,ve=ie[1]/74.03120656864502,le=180/Math.PI,fe=ve;for(let F=0;F<12&&(J=(pe=fe*fe)*pe*pe,te=fe*(1.340264+-.081106*pe+J*(893e-6+.003796*pe))-ve,fe-=$=te/(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe)),!(1e-9>Math.abs($)));++F);J=(pe=fe*fe)*pe*pe;let A=le*Z*re*(1.340264+-.24331799999999998*pe+J*(.0062510000000000005+.034164*pe))/Math.cos(fe),B=le*Math.asin(Math.sin(fe)/Z);return Math.abs(A)>180?[NaN,NaN]:[A,B]}}}),Pe(V,"Maps/Projections/Miller.js",[],function(){let Z=Math.PI/4,ie=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(re){return[re[0]*ie*63.78137,79.7267125*Math.log(Math.tan(Z+.4*re[1]*ie))]}inverse(re){return[re[0]/63.78137/ie,2.5*(Math.atan(Math.exp(re[1]/63.78137*.8))-Z)/ie]}}}),Pe(V,"Maps/Projections/Orthographic.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(ie){let re=ie[0],ve=ie[1]*Z,le=[Math.cos(ve)*Math.sin(re*Z)*63.78460826781007,63.78460826781007*Math.sin(ve)];return(re<-90||re>90)&&(le.outside=!0),le}inverse(ie){let re=ie[0]/63.78460826781007,ve=ie[1]/63.78460826781007,le=Math.sqrt(re*re+ve*ve),fe=Math.asin(le),pe=Math.sin(fe);return[Math.atan2(re*pe,le*Math.cos(fe))/Z,Math.asin(le&&ve*pe/le)/Z]}}}),Pe(V,"Maps/Projections/WebMercator.js",[],function(){let Z=Math.PI/180;return class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(ie){let re=Math.sin(ie[1]*Z),ve=[63.78137*ie[0]*Z,63.78137*Math.log((1+re)/(1-re))/2];return Math.abs(ie[1])>this.maxLatitude&&(ve.outside=!0),ve}inverse(ie){return[ie[0]/(63.78137*Z),(2*Math.atan(Math.exp(ie[1]/63.78137))-Math.PI/2)/Z]}}}),Pe(V,"Maps/Projections/ProjectionRegistry.js",[V["Maps/Projections/LambertConformalConic.js"],V["Maps/Projections/EqualEarth.js"],V["Maps/Projections/Miller.js"],V["Maps/Projections/Orthographic.js"],V["Maps/Projections/WebMercator.js"]],function(Z,ie,re,ve,le){return{EqualEarth:ie,LambertConformalConic:Z,Miller:re,Orthographic:ve,WebMercator:le}}),Pe(V,"Maps/Projection.js",[V["Core/Geometry/PolygonClip.js"],V["Maps/Projections/ProjectionRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{clipLineString:ve,clipPolygon:le}=Z,{clamp:fe,erase:pe}=re,J=2*Math.PI/360;function te(A){return A<-180&&(A+=360),A>180&&(A-=360),A}class ${static add(B,F){$.registry[B]=F}static greatCircle(B,F,L){let{atan2:D,cos:I,sin:E,sqrt:_}=Math,b=B[1]*J,T=B[0]*J,z=F[1]*J,O=F[0]*J,f=z-b,a=O-T,g=E(f/2)*E(f/2)+I(b)*I(z)*E(a/2)*E(a/2),y=2*D(_(g),_(1-g)),o=Math.round(6371e3*y/5e5),n=[];if(L&&n.push(B),o>1){let r=1/o;for(let l=r;l<.999;l+=r){let d=E((1-l)*y)/E(y),C=E(l*y)/E(y),k=d*I(b)*I(T)+C*I(z)*I(O),p=d*I(b)*E(T)+C*I(z)*E(O),S=D(d*E(b)+C*E(z),_(k*k+p*p)),j=D(p,k);n.push([j/J,S/J])}}return L&&n.push(F),n}static insertGreatCircles(B){let F=B.length-1;for(;F--;)if(Math.max(Math.abs(B[F][0]-B[F+1][0]),Math.abs(B[F][1]-B[F+1][1]))>10){let L=$.greatCircle(B[F],B[F+1]);L.length&&B.splice(F+1,0,...L)}}static toString(B){let{name:F,rotation:L}=B||{};return[F,L&&L.join(",")].join(";")}constructor(B={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=B;let{name:F,projectedBounds:L,rotation:D}=B;this.rotator=D?this.getRotator(D):void 0;let I=F?$.registry[F]:void 0;I&&(this.def=new I(B));let{def:E,rotator:_}=this;E&&(this.maxLatitude=E.maxLatitude||90,this.hasGeoProjection=!0),_&&E?(this.forward=b=>E.forward(_.forward(b)),this.inverse=b=>_.inverse(E.inverse(b))):E?(this.forward=b=>E.forward(b),this.inverse=b=>E.inverse(b)):_&&(this.forward=_.forward,this.inverse=_.inverse),this.bounds="world"===L?E&&E.bounds:L}lineIntersectsBounds(B){let _,{x1:F,x2:L,y1:D,y2:I}=this.bounds||{},E=(T,z,O)=>{let[f,a]=T,g=z?0:1;if("number"==typeof O&&f[z]>=O!=a[z]>=O){let o=f[g]+(O-f[z])/(a[z]-f[z])*(a[g]-f[g]);return z?[o,O]:[O,o]}},b=B[0];return((_=E(B,0,F))||(_=E(B,0,L)))&&(b=_,B[1]=_),((_=E(B,1,D))||(_=E(B,1,I)))&&(b=_),b}getRotator(B){let F=B[0]*J,L=(B[1]||0)*J,D=(B[2]||0)*J,I=Math.cos(L),E=Math.sin(L),_=Math.cos(D),b=Math.sin(D);if(0!==F||0!==L||0!==D)return{forward:T=>{let z=T[0]*J+F,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*I+a*E;return[Math.atan2(g*_-o*b,a*I-y*E)/J,Math.asin(o*_+g*b)/J]},inverse:T=>{let z=T[0]*J,O=T[1]*J,f=Math.cos(O),a=Math.cos(z)*f,g=Math.sin(z)*f,y=Math.sin(O),o=y*_-g*b;return[(Math.atan2(g*_+y*b,a*I+o*E)-F)/J,Math.asin(o*I-a*E)/J]}}}forward(B){return B}inverse(B){return B}cutOnAntimeridian(B,F){let L,D=[],I=[B];for(let E=0,_=B.length;E<_;++E){let b=B[E],T=B[E-1];if(!E){if(!F)continue;T=B[B.length-1]}let z=T[0],O=b[0];if((z<-90||z>90)&&(O<-90||O>90)&&z>0!=O>0){let f=fe((180-(z+360)%360)/((O+360)%360-(z+360)%360),0,1);D.push({i:E,lat:T[1]+f*(b[1]-T[1]),direction:z<0?1:-1,previousLonLat:T,lonLat:b})}}if(D.length)if(F){D.length%2==1&&(L=D.slice().sort((_,b)=>Math.abs(b.lat)-Math.abs(_.lat))[0],pe(D,L));let E=D.length-2;for(;E>=0;){let _=D[E].i,b=te(180+1e-6*D[E].direction),T=te(180-1e-6*D[E].direction),z=B.splice(_,D[E+1].i-_,...$.greatCircle([b,D[E].lat],[b,D[E+1].lat],!0));z.push(...$.greatCircle([T,D[E+1].lat],[T,D[E].lat],!0)),I.push(z),E-=2}if(L)for(let _=0;_-1){let f=(T<0?-1:1)*this.maxLatitude,a=te(180+1e-6*b),g=te(180-1e-6*b),y=$.greatCircle([a,T],[a,f],!0);for(let o=a+120*b;o>-180&&o<180;o+=120*b)y.push([o,f]);y.push(...$.greatCircle([g,f],[g,L.lat],!0)),z.splice(O,0,...y);break}}}else{let E=D.length;for(;E--;){let b=B.splice(D[E].i,B.length,[te(180+1e-6*D[E].direction),D[E].lat]);b.unshift([te(180-1e-6*D[E].direction),D[E].lat]),I.push(b)}}return I}path(B){let F,{bounds:L,def:D,rotator:I}=this,E=[],_="Polygon"===B.type||"MultiPolygon"===B.type,b=this.hasGeoProjection,T=!D||!1!==D.antimeridianCutting,z=T?I:void 0,O=T&&D||this;L&&(F=[[L.x1,L.y1],[L.x2,L.y1],[L.x2,L.y2],[L.x1,L.y2]]);let f=a=>{let g=a.map(o=>{if(T){z&&(o=z.forward(o));let n=o[0];1e-6>Math.abs(n-180)&&(n=n<180?179.999999:180.000001),o=[n,o[1]]}return o}),y=[g];b&&($.insertGreatCircles(g),T&&(y=this.cutOnAntimeridian(g,_))),y.forEach(o=>{let n,r;if(o.length<2)return;let l=!1,d=!1,C=j=>{l?E.push(["L",j[0],j[1]]):(E.push(["M",j[0],j[1]]),l=!0)},k=!1,p=!1,S=o.map(j=>{let H=O.forward(j);return H.outside?k=!0:p=!0,H[1]===1/0?H[1]=1e10:H[1]===-1/0&&(H[1]=-1e10),H});if(T){if(_&&S.push(S[0]),k){if(!p)return;if(F)if(_)S=le(S,F);else if(L)return void ve(S,F).forEach(j=>{l=!1,j.forEach(C)})}S.forEach(C)}else for(let j=0;jC(O.forward(U))):l=!1),C(Y),r=H,d=!1)}})};return"LineString"===B.type?f(B.coordinates):"MultiLineString"===B.type?B.coordinates.forEach(a=>f(a)):"Polygon"===B.type?(B.coordinates.forEach(a=>f(a)),E.length&&E.push(["Z"])):"MultiPolygon"===B.type&&(B.coordinates.forEach(a=>{a.forEach(g=>f(g))}),E.length&&E.push(["Z"])),E}}return $.registry=ie,$}),Pe(V,"Maps/MapView.js",[V["Core/Globals.js"],V["Maps/MapViewDefaults.js"],V["Maps/GeoJSONComposition.js"],V["Maps/MapUtilities.js"],V["Maps/Projection.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{composed:pe}=Z,{topo2geo:J}=re,{boundsFromPath:te,pointInPolygon:$}=ve,{addEvent:A,clamp:B,fireEvent:F,isArray:L,isNumber:D,isObject:I,isString:E,merge:_,pick:b,pushUnique:T,relativeLength:z}=fe,O={};function f(o,n){let{width:r,height:l}=n;return Math.log(400.979322/Math.max((o.x2-o.x1)/(r/256),(o.y2-o.y1)/(l/256)))/Math.log(2)}function a(o){o.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,o.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class g{static compose(n){T(pe,"MapView")&&(O=n.maps,A(n,"afterInit",function(){this.mapView=new g(this,this.options.mapView)},{order:0}),A(n,"addSeriesAsDrilldown",a),A(n,"afterDrillUp",a))}static compositeBounds(n){if(n.length)return n.slice(1).reduce((r,l)=>(r.x1=Math.min(r.x1,l.x1),r.y1=Math.min(r.y1,l.y1),r.x2=Math.max(r.x2,l.x2),r.y2=Math.max(r.y2,l.y2),r),_(n[0]))}static mergeInsets(n,r){let l=C=>{let k={};return C.forEach((p,S)=>{k[p&&p.id||`i${S}`]=p}),k},d=_(l(n),l(r));return Object.keys(d).map(C=>d[C])}constructor(n,r){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof y||this.recommendMapView(n,[n.options.chart.map,...(n.options.series||[]).map(k=>k.mapData)]),this.userOptions=r||{};let l=_(ie,this.recommendedMapView,r),d=this.recommendedMapView?.insets,C=r&&r.insets;d&&C&&(l.insets=g.mergeInsets(d,C)),this.chart=n,this.center=l.center,this.options=l,this.projection=new le(l.projection),this.playingField=n.plotBox,this.zoom=l.zoom||0,this.minZoom=l.minZoom,this.createInsets(),this.eventsToUnbind.push(A(n,"afterSetChartSize",()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&D(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&_(!0,this.center,this.userOptions.center))})),this.setUpEvents()}createInsets(){let n=this.options,r=n.insets;r&&r.forEach(l=>{let d=new y(this,_(n.insetOptions,l));this.insets.push(d)})}fitToBounds(n,r,l=!0,d){let C=n||this.getProjectedBounds();if(C){let k=b(r,n?0:this.options.padding),p=this.getField(!1),S=L(k)?k:[k,k,k,k];this.padding=[z(S[0],p.height),z(S[1],p.width),z(S[2],p.height),z(S[3],p.width)],this.playingField=this.getField();let j=f(C,this.playingField);n||(this.minZoom=j);let H=this.projection.inverse([(C.x2+C.x1)/2,(C.y2+C.y1)/2]);this.setView(H,j,l,d)}}getField(n=!0){let r=n?this.padding:[0,0,0,0];return{x:r[3],y:r[0],width:this.chart.plotWidth-r[1]-r[3],height:this.chart.plotHeight-r[0]-r[2]}}getGeoMap(n){if(E(n))return O[n]&&"Topology"===O[n].type?J(O[n]):O[n];if(I(n,!0)){if("FeatureCollection"===n.type)return n;if("Topology"===n.type)return J(n)}}getMapBBox(){let n=this.getProjectedBounds(),r=this.getScale();if(n){let l=this.padding,d=this.projectedUnitsToPixels({x:n.x1,y:n.y2});return{width:(n.x2-n.x1)*r+l[1]+l[3],height:(n.y2-n.y1)*r+l[0]+l[2],x:d.x-l[3],y:d.y-l[0]}}}getProjectedBounds(){let n=this.projection,r=this.chart.series.reduce((d,C)=>{let k=C.getProjectedBounds&&C.getProjectedBounds();return k&&!1!==C.options.affectsMapView&&d.push(k),d},[]),l=this.options.fitToGeometry;if(l){if(!this.fitToGeometryCache)if("MultiPoint"===l.type){let d=l.coordinates.map(p=>n.forward(p)),C=d.map(p=>p[0]),k=d.map(p=>p[1]);this.fitToGeometryCache={x1:Math.min.apply(0,C),x2:Math.max.apply(0,C),y1:Math.min.apply(0,k),y2:Math.max.apply(0,k)}}else this.fitToGeometryCache=te(n.path(l));return this.fitToGeometryCache}return this.projection.bounds||g.compositeBounds(r)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:n,y:r,width:l,height:d}=this.playingField,C=this.projection.forward(this.center),k=this.projection.hasCoordinates?-1:1,p=this.getScale(),S=p*k;return{scaleX:p,scaleY:S,translateX:n+l/2-C[0]*p,translateY:r+d/2-C[1]*S}}lonLatToPixels(n){let r=this.lonLatToProjectedUnits(n);if(r)return this.projectedUnitsToPixels(r)}lonLatToProjectedUnits(n){let r=this.chart,l=r.mapTransforms;if(l){for(let C in l)if(Object.hasOwnProperty.call(l,C)&&l[C].hitZone){let k=r.transformFromLatLon(n,l[C]);if(k&&$(k,l[C].hitZone.coordinates[0]))return k}return r.transformFromLatLon(n,l.default)}for(let C of this.insets)if(C.options.geoBounds&&$({x:n.lon,y:n.lat},C.options.geoBounds.coordinates[0])){let k=C.projection.forward([n.lon,n.lat]),p=C.projectedUnitsToPixels({x:k[0],y:k[1]});return this.pixelsToProjectedUnits(p)}let d=this.projection.forward([n.lon,n.lat]);if(!d.outside)return{x:d[0],y:d[1]}}projectedUnitsToLonLat(n){let r=this.chart,l=r.mapTransforms;if(l){for(let k in l)if(Object.hasOwnProperty.call(l,k)&&l[k].hitZone&&$(n,l[k].hitZone.coordinates[0]))return r.transformToLatLon(n,l[k]);return r.transformToLatLon(n,l.default)}let d=this.projectedUnitsToPixels(n);for(let k of this.insets)if(k.hitZone&&$(d,k.hitZone.coordinates[0])){let p=k.pixelsToProjectedUnits(d),S=k.projection.inverse([p.x,p.y]);return{lon:S[0],lat:S[1]}}let C=this.projection.inverse([n.x,n.y]);return{lon:C[0],lat:C[1]}}recommendMapView(n,r,l=!1){this.recommendedMapView={};let d=r.map(p=>this.getGeoMap(p)),C=[];d.forEach(p=>{if(p&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=p["hc-recommended-mapview"]||{}),p.bbox)){let[S,j,H,Y]=p.bbox;C.push({x1:S,y1:j,x2:H,y2:Y})}});let k=C.length&&g.compositeBounds(C);F(this,"onRecommendMapView",{geoBounds:k,chart:n},function(){if(k&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:p,y1:S,x2:j,y2:H}=k;this.recommendedMapView.projection=j-p>180&&H-S>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[S,H],rotation:[-(p+j)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}}),this.geoMap=d[0],l&&n.hasRendered&&!n.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(n){this.chart.series.forEach(r=>{r.useMapGeometry&&(r.isDirty=!0)}),this.chart.redraw(n)}setView(n,r,l=!0,d){n&&(this.center=n),"number"==typeof r&&("number"==typeof this.minZoom&&(r=Math.max(r,this.minZoom)),"number"==typeof this.options.maxZoom&&(r=Math.min(r,this.options.maxZoom)),D(r)&&(this.zoom=r));let C=this.getProjectedBounds();if(C){let k=this.projection.forward(this.center),{x:p,y:S,width:j,height:H}=this.playingField,Y=this.getScale(),U=this.projectedUnitsToPixels({x:C.x1,y:C.y1}),se=this.projectedUnitsToPixels({x:C.x2,y:C.y2}),w=[(C.x1+C.x2)/2,(C.y1+C.y2)/2];if(!this.chart.series.some(X=>X.isDrilling)){let X=U.x,G=se.y,x=se.x,N=U.y;x-Xp+j&&X>p&&(k[0]+=Math.min(x-j-p,X-p)/Y),N-GS+H&&G>S&&(k[1]-=Math.min(N-H-S,G-S)/Y),this.center=this.projection.inverse(k)}this.insets.forEach(X=>{X.options.field&&(X.hitZone=X.getHitZone(),X.playingField=X.getField())}),this.render()}F(this,"afterSetView"),l&&this.redraw(d)}projectedUnitsToPixels(n){let r=this.getScale(),l=this.projection.forward(this.center),d=this.playingField;return{x:d.x+d.width/2-r*(l[0]-n.x),y:d.y+d.height/2+r*(l[1]-n.y)}}pixelsToLonLat(n){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(n))}pixelsToProjectedUnits(n){let{x:r,y:l}=n,d=this.getScale(),C=this.projection.forward(this.center),k=this.playingField;return{x:C[0]+(r-(k.x+k.width/2))/d,y:C[1]-(l-(k.y+k.height/2))/d}}setUpEvents(){let n,r,l,{chart:d}=this,C=k=>{let{lastTouches:p,pinchDown:S}=d.pointer,j=this.projection,H=k.touches,{mouseDownX:Y,mouseDownY:U}=d,se=0;if(1===S?.length?(Y=S[0].chartX,U=S[0].chartY):2===S?.length&&(Y=(S[0].chartX+S[1].chartX)/2,U=(S[0].chartY+S[1].chartY)/2),2===H?.length&&p&&(se=Math.log(Math.sqrt(Math.pow(p[0].chartX-p[1].chartX,2)+Math.pow(p[0].chartY-p[1].chartY,2))/Math.sqrt(Math.pow(H[0].chartX-H[1].chartX,2)+Math.pow(H[0].chartY-H[1].chartY,2)))/Math.log(.5)),D(Y)&&D(U)){let w=`${Y},${U}`,{chartX:X,chartY:G}=k.originalEvent;2===H?.length&&(X=(H[0].chartX+H[1].chartX)/2,G=(H[0].chartY+H[1].chartY)/2),w!==r&&(r=w,n=this.projection.forward(this.center),l=(this.projection.options.rotation||[0,0]).slice());let x=j.def&&j.def.bounds,N=x&&f(x,this.playingField)||-1/0;if("Orthographic"===j.options.name&&2>(H?.length||0)&&(this.minZoom||1/0)<1.3*N){let R=440/(this.getScale()*Math.min(d.plotWidth,d.plotHeight));if(l){let K=(Y-X)*R-l[0],q=B(-l[1]-(U-G)*R,-80,80),he=this.zoom;this.update({projection:{rotation:[-K,-q]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=he,d.redraw(!1)}}else if(D(X)&&D(G)){let R=this.getScale(),q=this.projection.inverse([n[0]+(Y-X)/R,n[1]-(U-G)/R*(this.projection.hasCoordinates?1:-1)]);isNaN(q[0]+q[1])||this.zoomBy(se,q,void 0,!1)}k.preventDefault()}};A(d,"pan",C),A(d,"touchpan",C),A(d,"selection",k=>{if(k.resetSelection)this.zoomBy();else{let p=k.x-d.plotLeft,S=k.y-d.plotTop,{y:j,x:H}=this.pixelsToProjectedUnits({x:p,y:S}),{y:Y,x:U}=this.pixelsToProjectedUnits({x:p+k.width,y:S+k.height});this.fitToBounds({x1:H,y1:j,x2:U,y2:Y},void 0,!0,!k.originalEvent.touches&&void 0),/^touch/.test(k.originalEvent.type)||d.showResetZoom(),k.preventDefault()}})}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(n,r=!0,l){let d=n.projection,C=d&&le.toString(d)!==le.toString(this.options.projection),k=!1;_(!0,this.userOptions,n),_(!0,this.options,n),"insets"in n&&(this.insets.forEach(p=>p.destroy()),this.insets.length=0,k=!0),(C||"fitToGeometry"in n)&&delete this.fitToGeometryCache,(C||k)&&(this.chart.series.forEach(p=>{let S=p.transformGroups;if(p.clearBounds&&p.clearBounds(),p.isDirty=!0,p.isDirtyData=!0,k&&S)for(;S.length>1;){let j=S.pop();j&&j.destroy()}}),C&&(this.projection=new le(this.options.projection)),k&&this.createInsets(),!n.center&&Object.hasOwnProperty.call(n,"zoom")&&!D(n.zoom)&&this.fitToBounds(void 0,void 0,!1)),n.center||D(n.zoom)?this.setView(this.options.center,n.zoom,!1):"fitToGeometry"in n&&this.fitToBounds(void 0,void 0,!1),r&&this.chart.redraw(l)}zoomBy(n,r,l,d){let C=this.chart,k=this.projection.forward(this.center);if("number"==typeof n){let p,S,j,H=this.zoom+n;if(l){let[Y,U]=l,se=this.getScale();S=k[0]+(Y-C.plotLeft-C.plotWidth/2)/se,j=k[1]+(U-C.plotTop-C.plotHeight/2)/se}if("number"==typeof S&&"number"==typeof j){let Y=1-Math.pow(2,this.zoom)/Math.pow(2,H),se=k[1]-j;k[0]-=(k[0]-S)*Y,k[1]+=se*Y,p=this.projection.inverse(k)}this.setView(r||p,H,void 0,d)}else this.fitToBounds(void 0,void 0,void 0,d)}}class y extends g{constructor(n,r){if(super(n.chart,r),this.id=r.id,this.mapView=n,this.options=_({center:[0,0]},n.options.insetOptions,r),this.allBounds=[],this.options.geoBounds){let l=n.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=te(l),this.geoBoundsProjectedPolygon=l.map(d=>[d[1]||0,d[2]||0])}}getField(n=!0){let r=this.hitZone;if(r){let l=n?this.padding:[0,0,0,0],d=r.coordinates[0],C=d.map(Y=>Y[0]),k=d.map(Y=>Y[1]),p=Math.min.apply(0,C)+l[3],S=Math.max.apply(0,C)-l[1],j=Math.min.apply(0,k)+l[0],H=Math.max.apply(0,k)-l[2];if(D(p)&&D(j))return{x:p,y:j,width:S-p,height:H-j}}return super.getField.call(this,n)}getHitZone(){let{chart:n,mapView:r,options:l}=this,{coordinates:d}=l.field||{};if(d){let C=d[0];if("percent"===l.units){let k="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||_(n.plotBox,{x:0,y:0});C=C.map(p=>[z(`${p[0]}%`,k.width,k.x),z(`${p[1]}%`,k.height,k.y)])}return{type:"Polygon",coordinates:[C]}}}getProjectedBounds(){return g.compositeBounds(this.allBounds)}isInside(n){let{geoBoundsProjectedBox:r,geoBoundsProjectedPolygon:l}=this;return!!(r&&n.x>=r.x1&&n.x<=r.x2&&n.y>=r.y1&&n.y<=r.y2&&l&&$(n,l))}render(){let{chart:n,mapView:r,options:l}=this,d=l.borderPath||l.field;if(d&&r.group){let C=!0;this.border||(this.border=n.renderer.path().addClass("highcharts-mapview-inset-border").add(r.group),C=!1),n.styledMode||this.border.attr({stroke:l.borderColor,"stroke-width":l.borderWidth});let k=Math.round(this.border.strokeWidth())%2/2,p="mapBoundingBox"===l.relativeTo&&r.getMapBBox()||r.playingField,S=(d.coordinates||[]).reduce((j,H)=>H.reduce((Y,U,se)=>{let[w,X]=U;return"percent"===l.units&&(w=n.plotLeft+z(`${w}%`,p.width,p.x),X=n.plotTop+z(`${X}%`,p.height,p.y)),w=Math.floor(w)+k,X=Math.floor(X)+k,Y.push(0===se?["M",w,X]:["L",w,X]),Y},j),[]);this.border[C?"animate":"attr"]({d:S})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach(n=>n())}setUpEvents(){}}return g}),Pe(V,"Series/Map/MapSeries.js",[V["Core/Animation/AnimationUtilities.js"],V["Series/ColorMapComposition.js"],V["Series/CenteredUtilities.js"],V["Core/Globals.js"],V["Core/Chart/MapChart.js"],V["Series/Map/MapPoint.js"],V["Series/Map/MapSeriesDefaults.js"],V["Maps/MapView.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,stop:B}=Z,{noop:F}=ve,{splitPath:L}=le,{column:D,scatter:I}=te.seriesTypes,{extend:E,find:_,fireEvent:b,getNestedProperty:T,isArray:z,defined:O,isNumber:f,isObject:a,merge:g,objectEach:y,pick:o,splat:n}=$;class r extends I{constructor(){super(...arguments),this.processedData=[]}animate(d){let{chart:C,group:k}=this,p=A(this.options.animation);d?k.attr({translateX:C.plotLeft+C.plotWidth/2,translateY:C.plotTop+C.plotHeight/2,scaleX:.001,scaleY:.001}):k.animate({translateX:C.plotLeft,translateY:C.plotTop,scaleX:1,scaleY:1},p)}clearBounds(){this.points.forEach(d=>{delete d.bounds,delete d.insetIndex,delete d.projectedPath}),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let d=this,{chart:C,group:k,transformGroups:p=[]}=this,{mapView:S,renderer:j}=C;if(S){this.transformGroups=p,p[0]||(p[0]=j.g().add(k));for(let H=0,Y=S.insets.length;H{let{graphic:Y}=H;H.group=p["number"==typeof H.insetIndex?H.insetIndex+1:0],Y&&Y.parentGroup!==H.group&&Y.add(H.group)}),D.prototype.drawPoints.apply(this),this.points.forEach(H=>{let Y=H.graphic;if(Y){let U=Y.animate,se="";H.name&&(se+="highcharts-name-"+H.name.replace(/ /g,"-").toLowerCase()),H.properties&&H.properties["hc-key"]&&(se+=" highcharts-key-"+H.properties["hc-key"].toString().toLowerCase()),se&&Y.addClass(se),C.styledMode&&Y.css(this.pointAttribs(H,H.selected?"select":void 0)),Y.attr({visibility:H.visible||!H.visible&&!H.isNull?"inherit":"hidden"}),Y.animate=function(w,X,G){let x=f(w["stroke-width"])&&!f(Y["stroke-width"]),N=f(Y["stroke-width"])&&!f(w["stroke-width"]);if(x||N){let R=o(d.getStrokeWidth(d.options),1)/(C.mapView&&C.mapView.getScale()||1);x&&(Y["stroke-width"]=R),N&&(w["stroke-width"]=R)}return U.call(Y,w,X,N?function(){Y.element.removeAttribute("stroke-width"),delete Y["stroke-width"],G&&G.apply(this,arguments)}:G)}}})),p.forEach((H,Y)=>{let U=(0===Y?S:S.insets[Y-1]).getSVGTransform(),se=o(this.getStrokeWidth(this.options),1),w=U.scaleX,X=U.scaleY>0?1:-1,G=x=>{(d.points||[]).forEach(N=>{let R,K=N.graphic;K&&K["stroke-width"]&&(R=this.getStrokeWidth(N.options))&&K.attr({"stroke-width":R/x})})};if(j.globalAnimation&&C.hasRendered&&S.allowTransformAnimation){let x=Number(H.attr("translateX")),N=Number(H.attr("translateY")),R=Number(H.attr("scaleX")),K=(me,Ce)=>{let Se=R+(w-R)*Ce.pos;H.attr({translateX:x+(U.translateX-x)*Ce.pos,translateY:N+(U.translateY-N)*Ce.pos,scaleX:Se,scaleY:Se*X,"stroke-width":se/Se}),G(Se)},q=g(A(j.globalAnimation)),he=q.step;q.step=function(){he&&he.apply(this,arguments),K.apply(this,arguments)},H.attr({animator:0}).animate({animator:1},q,function(){"boolean"!=typeof j.globalAnimation&&j.globalAnimation.complete&&j.globalAnimation.complete({applyDrilldown:!0}),b(this,"mapZoomComplete")}.bind(this))}else B(H),H.attr(g(U,{"stroke-width":se/w})),G(w)}),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:d,projection:C}=this.chart.mapView,k=[];(this.points||[]).forEach(p=>{if(p.path||p.geometry){if("string"==typeof p.path?p.path=L(p.path):z(p.path)&&"M"===p.path[0]&&(p.path=this.chart.renderer.pathToSegments(p.path)),!p.bounds){let S=p.getProjectedBounds(C);if(S){p.labelrank=o(p.labelrank,(S.x2-S.x1)*(S.y2-S.y1));let{midX:j,midY:H}=S;if(d&&f(j)&&f(H)){let Y=_(d,U=>U.isInside({x:j,y:H}));Y&&(delete p.projectedPath,(S=p.getProjectedBounds(Y.projection))&&Y.allBounds.push(S),p.insetIndex=d.indexOf(Y))}p.bounds=S}}p.bounds&&void 0===p.insetIndex&&k.push(p.bounds)}}),this.bounds=J.compositeBounds(k)}return this.bounds}getStrokeWidth(d){let C=this.pointAttrToOptions;return d[C&&C["stroke-width"]||"borderWidth"]}hasData(){return!!this.processedXData.length}pointAttribs(d,C){let{mapView:k,styledMode:p}=d.series.chart,S=p?this.colorAttribs(d):D.prototype.pointAttribs.call(this,d,C),j=this.getStrokeWidth(d.options);if(C){let Y=g(this.options.states&&this.options.states[C],d.options.states&&d.options.states[C]||{}),U=this.getStrokeWidth(Y);O(U)&&(j=U),S.stroke=Y.borderColor??d.color}j&&k&&(j/=k.getScale());let H=this.getStrokeWidth(this.options);return S.dashstyle&&k&&f(H)&&(j=H/k.getScale()),d.visible||(S.fill=this.options.nullColor),O(j)?S["stroke-width"]=j:delete S["stroke-width"],S["stroke-linecap"]=S["stroke-linejoin"]=this.options.linecap,S}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(d,C=!0,k,p){delete this.bounds,super.setData(d,!1,void 0,p),this.processData(),this.generatePoints(),C&&this.chart.redraw(k)}processData(){let d,C,k,p=this.options,S=p.data,j=this.chart,H=j.options.chart,Y=this.joinBy,U=p.keys||this.pointArrayMap,se=[],w={},X=this.chart.mapView,G=X&&(a(p.mapData,!0)?X.getGeoMap(p.mapData):X.geoMap),x=j.mapTransforms=H.mapTransforms||G&&G["hc-transform"]||j.mapTransforms;x&&y(x,R=>{R.rotation&&(R.cosAngle=Math.cos(R.rotation),R.sinAngle=Math.sin(R.rotation))}),z(p.mapData)?k=p.mapData:G&&"FeatureCollection"===G.type&&(this.mapTitle=G.title,k=ve.geojson(G,this.type,this)),this.processedData=[];let N=this.processedData;if(S){let R;for(let K=0,q=S.length;KU.length&&"string"==typeof R[0]&&(N[K]["hc-key"]=R[0],++he);for(let me=0;me0?fe.prototype.setNestedProperty(N[K],R[he],U[me]):N[K][U[me]]=R[he])}else N[K]=S[K];Y&&"_i"===Y[0]&&(N[K]._i=K)}}if(k){this.mapData=k,this.mapMap={};for(let R=0;R{let q=T(R,K);w[q]&&se.push(w[q])})}if(p.allAreas){if(Y[1]){let K=Y[1];N.forEach(q=>{se.push(T(K,q))})}let R="|"+se.map(function(K){return K&&K[Y[0]]}).join("|")+"|";k.forEach(K=>{Y[0]&&-1!==R.indexOf("|"+K[Y[0]]+"|")||N.push(g(K,{value:null}))})}}this.processedXData=Array(N.length)}setOptions(d){let C=super.setOptions(d),k=C.joinBy;return null===C.joinBy&&(k="_i"),(k=this.joinBy=n(k))[1]||(k[1]=k[0]),C}translate(){let d=this.doFullTranslate(),C=this.chart.mapView,k=C&&C.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!C||C.userOptions.center||f(C.userOptions.zoom)||C.zoom!==C.minZoom?this.getProjectedBounds():C.fitToBounds(void 0,void 0,!1)),C){let p=C.getSVGTransform();this.points.forEach(S=>{let j=f(S.insetIndex)&&C.insets[S.insetIndex].getSVGTransform()||p;j&&S.bounds&&f(S.bounds.midX)&&f(S.bounds.midY)&&(S.plotX=S.bounds.midX*j.scaleX+j.translateX,S.plotY=S.bounds.midY*j.scaleY+j.translateY),d&&(S.shapeType="path",S.shapeArgs={d:fe.getProjectedPath(S,k)}),S.hiddenInDataClass||(S.projectedPath&&!S.projectedPath.length?S.setVisible(!1):S.visible||S.setVisible(!0))})}b(this,"afterTranslate")}update(d){d.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map((C,k)=>k===this._i?d.mapData:C.mapData)],!0),super.update.apply(this,arguments)}}return r.defaultOptions=g(I.defaultOptions,pe),E(r.prototype,{type:"map",axisTypes:ie.seriesMembers.axisTypes,colorAttribs:ie.seriesMembers.colorAttribs,colorKey:ie.seriesMembers.colorKey,directTouch:!0,drawDataLabels:F,drawGraph:F,forceDL:!0,getCenter:re.getCenter,getExtremesFromAll:!0,getSymbol:F,isCartesian:!1,parallelArrays:ie.seriesMembers.parallelArrays,pointArrayMap:ie.seriesMembers.pointArrayMap,pointClass:fe,preserveAspectRatio:!0,searchPoint:F,trackerGroups:ie.seriesMembers.trackerGroups,useMapGeometry:!0}),ie.compose(r),te.registerSeriesType("map",r),r}),Pe(V,"Series/MapLine/MapLineSeriesDefaults.js",[],function(){return{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}}),Pe(V,"Series/MapLine/MapLineSeries.js",[V["Series/MapLine/MapLineSeriesDefaults.js"],V["Series/Map/MapSeries.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{extend:le,merge:fe}=ve;class pe extends ie{pointAttribs(te,$){let A=super.pointAttribs(te,$);return A.fill=this.options.fillColor,A}}return pe.defaultOptions=fe(ie.defaultOptions,Z),le(pe.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),re.registerSeriesType("mapline",pe),pe}),Pe(V,"Series/MapPoint/MapPointPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:re}=Z.seriesTypes,{isNumber:ve}=ie;return class le extends re.prototype.pointClass{isValid(){return!!(this.options.geometry||ve(this.x)&&ve(this.y)||ve(this.options.lon)&&ve(this.options.lat))}}}),Pe(V,"Series/MapPoint/MapPointSeriesDefaults.js",[],function(){return{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}}),Pe(V,"Series/MapPoint/MapPointSeries.js",[V["Core/Globals.js"],V["Series/MapPoint/MapPointPoint.js"],V["Series/MapPoint/MapPointSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{noop:pe}=Z,{map:J,scatter:te}=ve.seriesTypes,{extend:$,fireEvent:A,isNumber:B,merge:F}=fe;class L extends te{constructor(){super(...arguments),this.clearBounds=J.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(I){let E=this.chart.mapView;if(E){let{geometry:_,lon:b,lat:T}=I,z=_&&"Point"===_.type&&_.coordinates;if(B(b)&&B(T)&&(z=[b,T]),z)return E.lonLatToProjectedUnits({lon:z[0],lat:z[1]})}}translate(){let I=this.chart.mapView;if(this.processedXData||this.processData(),this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),I){let E=I.getSVGTransform(),{hasCoordinates:_}=I.projection;this.points.forEach(b=>{let T,{x:z,y:O}=b,f=B(b.insetIndex)&&I.insets[b.insetIndex].getSVGTransform()||E,a=this.projectPoint(b.options)||b.properties&&this.projectPoint(b.properties);if(a?(z=a.x,O=a.y):b.bounds&&(z=b.bounds.midX,O=b.bounds.midY,f&&B(z)&&B(O)&&(b.plotX=z*f.scaleX+f.translateX,b.plotY=O*f.scaleY+f.translateY,T=!0)),B(z)&&B(O)){if(!T){let g=I.projectedUnitsToPixels({x:z,y:O});b.plotX=g.x,b.plotY=_?g.y:this.chart.plotHeight-g.y}}else b.y=b.plotX=b.plotY=void 0;b.isInside=this.isPointInside(b),b.zone=this.zones.length?b.getZone():void 0})}A(this,"afterTranslate")}}return L.defaultOptions=F(te.defaultOptions,re),le.prototype.symbols.mapmarker=(D,I,E,_,b)=>{let T,z,O=b&&"legend"===b.context;O?(T=D+E/2,z=I+_):b&&"number"==typeof b.anchorX&&"number"==typeof b.anchorY?(T=b.anchorX,z=b.anchorY):(T=D+E/2,z=I+_/2,I-=_);let f=O?_/3:_/2;return[["M",T,z],["C",T,z,T-f,I+1.5*f,T-f,I+f],["A",f,f,1,1,1,T+f,I+f],["C",T+f,I+1.5*f,T,z,T,z],["Z"]]},$(L.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:ie,searchPoint:pe,useMapGeometry:!0}),ve.registerSeriesType("mappoint",L),L}),Pe(V,"Series/Bubble/BubbleLegendDefaults.js",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),Pe(V,"Series/Bubble/BubbleLegendItem.js",[V["Core/Color/Color.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{parse:le}=Z,{noop:fe}=re,{arrayMax:pe,arrayMin:J,isNumber:te,merge:$,pick:A,stableSort:B}=ve;return class{constructor(F,L){this.setState=fe,this.init(F,L)}init(F,L){this.options=F,this.visible=!0,this.chart=L.chart,this.legend=L}addToLegend(F){F.splice(this.options.legendIndex,0,this)}drawLegendSymbol(F){let L,D=A(F.options.itemDistance,20),I=this.legendItem||{},E=this.options,_=E.ranges,b=E.connectorDistance;if(!_||!_.length||!te(_[0].value))return void(F.options.bubbleLegend.autoRanges=!0);B(_,function(f,a){return a.value-f.value}),this.ranges=_,this.setOptions(),this.render();let T=this.getMaxLabelSize(),z=this.ranges[0].radius,O=2*z;L=(L=b-z+T.width)>0?L:0,this.maxLabel=T,this.movementX="left"===E.labels.align?L:0,I.labelWidth=O+L+D,I.labelHeight=O+T.height/2}setOptions(){let F=this.ranges,L=this.options,D=this.chart.series[L.seriesIndex],I=this.legend.baseline,E={zIndex:L.zIndex,"stroke-width":L.borderWidth},_={zIndex:L.zIndex,"stroke-width":L.connectorWidth},b={align:this.legend.options.rtl||"left"===L.labels.align?"right":"left",zIndex:L.zIndex},T=D.options.marker.fillOpacity,z=this.chart.styledMode;F.forEach(function(O,f){z||(E.stroke=A(O.borderColor,L.borderColor,D.color),E.fill=A(O.color,L.color,1!==T?le(D.color).setOpacity(T).get("rgba"):D.color),_.stroke=A(O.connectorColor,L.connectorColor,D.color)),F[f].radius=this.getRangeRadius(O.value),F[f]=$(F[f],{center:F[0].radius-F[f].radius+I}),z||$(!0,F[f],{bubbleAttribs:$(E),connectorAttribs:$(_),labelAttribs:b})},this)}getRangeRadius(F){let L=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,L.ranges[L.ranges.length-1].value,L.ranges[0].value,L.minSize,L.maxSize,F)}render(){let F=this.legendItem||{},L=this.chart.renderer,D=this.options.zThreshold;for(let I of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),F.symbol=L.g("bubble-legend"),F.label=L.g("bubble-legend-item").css(this.legend.itemStyle||{}),F.symbol.translateX=0,F.symbol.translateY=0,F.symbol.add(F.label),F.label.add(F.group),this.ranges))I.value>=D&&this.renderRange(I);this.hideOverlappingLabels()}renderRange(F){let L=this.ranges[0],D=this.legend,I=this.options,E=I.labels,_=this.chart,b=_.series[I.seriesIndex],T=_.renderer,z=this.symbols,O=z.labels,f=F.center,a=Math.abs(F.radius),g=I.connectorDistance||0,y=E.align,r=I.connectorWidth,l=L.radius||0,d=f-a-I.borderWidth/2+r/2,C=(d%1?1:.5)-(r%2?0:.5),k=T.styledMode,p=D.options.rtl||"left"===y?-g:g;"center"===y&&(p=0,I.connectorDistance=0,F.labelAttribs.align="center"),z.bubbleItems.push(T.circle(l,f+C,a).attr(k?{}:F.bubbleAttribs).addClass((k?"highcharts-color-"+b.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(I.className||"")).add(this.legendItem.symbol)),z.connectors.push(T.path(T.crispLine([["M",l,d],["L",l+p,d]],I.connectorWidth)).attr(k?{}:F.connectorAttribs).addClass((k?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(I.connectorClassName||"")).add(this.legendItem.symbol));let S=T.text(this.formatLabel(F)).attr(k?{}:F.labelAttribs).css(k?{}:E.style).addClass("highcharts-bubble-legend-labels "+(I.labels.className||"")).add(this.legendItem.symbol),j={x:l+p+I.labels.x,y:d+I.labels.y+.4*S.getBBox().height};S.attr(j),O.push(S),S.placed=!0,S.alignAttr=j}getMaxLabelSize(){let F,L;return this.symbols.labels.forEach(function(D){L=D.getBBox(!0),F=F?L.width>F.width?L:F:L}),F||{}}formatLabel(F){let L=this.options,D=L.labels.formatter,I=L.labels.format,{numberFormatter:E}=this.chart;return I?ie.format(I,F):D?D.call(F):E(F.value,1)}hideOverlappingLabels(){let D=this.symbols;!this.options.labels.allowOverlap&&D&&(this.chart.hideOverlappingLabels(D.labels),D.labels.forEach(function(I,E){I.newOpacity?I.newOpacity!==I.oldOpacity&&D.connectors[E].show():D.connectors[E].hide()}))}getRanges(){let I,E,F=this.legend.bubbleLegend,D=F.options.ranges,_=Number.MAX_VALUE,b=-Number.MAX_VALUE;return F.chart.series.forEach(function(T){T.isBubble&&!T.ignoreSeries&&(E=T.zData.filter(te)).length&&(_=A(T.options.zMin,Math.min(_,Math.max(J(E),!1===T.options.displayNegative?T.options.zThreshold:-Number.MAX_VALUE))),b=A(T.options.zMax,Math.max(b,pe(E))))}),I=_===b?[{value:b}]:[{value:_},{value:(_+b)/2},{value:b,autoRanges:!0}],D.length&&D[0].radius&&I.reverse(),I.forEach(function(T,z){D&&D[z]&&(I[z]=$(D[z],T))}),I}predictBubbleSizes(){let g,F=this.chart,L=F.legend.options,D=L.floating,I="horizontal"===L.layout,E=I?F.legend.lastLineHeight:0,_=F.plotSizeX,b=F.plotSizeY,T=F.series[this.options.seriesIndex],z=T.getPxExtremes(),O=Math.ceil(z.minPxSize),f=Math.ceil(z.maxPxSize),a=Math.min(b,_),y=T.options.maxSize;return D||!/%$/.test(y)?g=f:(g=(a+E)*(y=parseFloat(y))/100/(y/100+1),(I&&b-g>=_||!I&&_-g>=b)&&(g=f)),[O,Math.ceil(g)]}updateRanges(F,L){let D=this.legend.options.bubbleLegend;D.minSize=F,D.maxSize=L,D.ranges=this.getRanges()}correctSizes(){let F=this.legend,L=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(L.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,L.maxPxSize),F.render())}}}),Pe(V,"Series/Bubble/BubbleLegendComposition.js",[V["Series/Bubble/BubbleLegendDefaults.js"],V["Series/Bubble/BubbleLegendItem.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{setOptions:fe}=re,{composed:pe}=ve,{addEvent:J,objectEach:te,pushUnique:$,wrap:A}=le;function B(_,b,T){let z,O,f,a=this.legend,g=F(this)>=0;a&&a.options.enabled&&a.bubbleLegend&&a.options.bubbleLegend.autoRanges&&g?(z=a.bubbleLegend.options,O=a.bubbleLegend.predictBubbleSizes(),a.bubbleLegend.updateRanges(O[0],O[1]),z.placed||(a.group.placed=!1,a.allItems.forEach(y=>{(f=y.legendItem||{}).group&&(f.group.translateY=void 0)})),a.render(),this.getMargins(),this.axes.forEach(function(y){y.visible&&y.render(),z.placed||(y.setScale(),y.updateNames(),te(y.ticks,function(o){o.isNew=!0,o.isNewLabel=!0}))}),z.placed=!0,this.getMargins(),_.call(this,b,T),a.bubbleLegend.correctSizes(),E(a,L(a))):(_.call(this,b,T),a&&a.options.enabled&&a.bubbleLegend&&(a.render(),E(a,L(a))))}function F(_){let b=_.series,T=0;for(;TO.height&&(O.height=b[y].itemHeight);O.step=g}return T}function D(_){let b=this.bubbleLegend,T=this.options,z=T.bubbleLegend,O=F(this.chart);b&&b.ranges&&b.ranges.length&&(z.ranges.length&&(z.autoRanges=!!z.ranges[0].autoRanges),this.destroyItem(b)),O>=0&&T.enabled&&z.enabled&&(z.seriesIndex=O,this.bubbleLegend=new ie(z,this),this.bubbleLegend.addToLegend(_.allItems))}function I(_){let b;if(_.defaultPrevented)return!1;let T=this.chart,z=this.visible,O=this.chart.legend;O&&O.bubbleLegend&&(this.visible=!z,this.ignoreSeries=z,b=F(T)>=0,O.bubbleLegend.visible!==b&&(O.update({bubbleLegend:{enabled:b}}),O.bubbleLegend.visible=b),this.visible=z)}function E(_,b){let O,f,a,g,z=_.options.rtl,y=0;_.allItems.forEach((o,n)=>{(g=o.legendItem||{}).group&&(O=g.group.translateX||0,f=g.y||0,((a=o.movementX)||z&&o.ranges)&&(a=z?O-o.options.maxSize/2:O+a,g.group.attr({translateX:a})),n>b[y].step&&y++,g.group.attr({translateY:Math.round(f+b[y].height/2)}),g.y=f+b[y].height/2)})}return{compose:function(_,b,T){$(pe,"Series.BubbleLegend")&&(fe({legend:{bubbleLegend:Z}}),A(_.prototype,"drawChartBox",B),J(b,"afterGetAllItems",D),J(T,"legendItemClick",I))}}}),Pe(V,"Series/Bubble/BubblePoint.js",[V["Core/Series/Point.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{scatter:{prototype:{pointClass:ve}}}}=ie,{extend:le}=re;class fe extends ve{haloPath(J){return Z.prototype.haloPath.call(this,0===J?0:(this.marker&&this.marker.radius||0)+J)}}return le(fe.prototype,{ttBelow:!1}),fe}),Pe(V,"Series/Bubble/BubbleSeries.js",[V["Series/Bubble/BubbleLegendComposition.js"],V["Series/Bubble/BubblePoint.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{parse:pe}=re,{composed:J,noop:te}=ve,{series:$,seriesTypes:{column:{prototype:A},scatter:B}}=le,{addEvent:F,arrayMax:L,arrayMin:D,clamp:I,extend:E,isNumber:_,merge:b,pick:T,pushUnique:z}=fe;function O(){let k,a=this.len,{coll:g,isXAxis:y,min:o}=this,n=y?"xData":"yData",r=(this.max||0)-(o||0),l=0,d=a,C=a/r;("xAxis"===g||"yAxis"===g)&&(this.series.forEach(p=>{if(p.bubblePadding&&p.reserveSpace()){this.allowZoomOutside=!0,k=!0;let S=p[n];if(y&&((p.onPoint||p).getRadii(0,0,p),p.onPoint&&(p.radii=p.onPoint.radii)),r>0){let j=S.length;for(;j--;)if(_(S[j])&&this.dataMin<=S[j]&&S[j]<=this.max){let H=p.radii&&p.radii[j]||0;l=Math.min((S[j]-o)*C-H,l),d=Math.max((S[j]-o)*C+H,d)}}}}),k&&r>0&&!this.logarithmic&&(d-=a,C*=(a+Math.max(0,l)-Math.min(d,a))/a,[["min","userMin",l],["max","userMax",d]].forEach(p=>{void 0===T(this.options[p[0]],this[p[1]])&&(this[p[0]]+=p[2]/C)})))}class f extends B{static compose(g,y,o,n){Z.compose(y,o,n),z(J,"Series.Bubble")&&F(g,"foundExtremes",O)}animate(g){!g&&this.points.length{if(H.bubblePadding&&H.reserveSpace()){let Y=(H.onPoint||H).getZExtremes();Y&&(S=Math.min(T(S,Y.zMin),Y.zMin),j=Math.max(T(j,Y.zMax),Y.zMax),p=!0)}}),p?(d={zMin:S,zMax:j},this.chart.bubbleZExtremes=d):d={zMin:0,zMax:0}}for(r=0,n=g.length;r0&&(S=(r-g)/p)}return C&&S>=0&&(S=Math.sqrt(S)),Math.ceil(o+S*(n-o))/2}hasData(){return!!this.processedXData.length}pointAttribs(g,y){let o=this.options.marker.fillOpacity,n=$.prototype.pointAttribs.call(this,g,y);return 1!==o&&(n.fill=pe(n.fill).setOpacity(o).get("rgba")),n}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:g,options:y,radii:o}=this,{minPxSize:n}=this.getPxExtremes(),r=g.length;for(;r--;){let l=g[r],d=o?o[r]:0;"z"===this.zoneAxis&&(l.negative=(l.z||0)<(y.zThreshold||0)),_(d)&&d>=n/2?(l.marker=E(l.marker,{radius:d,width:2*d,height:2*d}),l.dlBox={x:l.plotX-d,y:l.plotY-d,width:2*d,height:2*d}):(l.shapeArgs=l.plotY=l.dlBox=void 0,l.isInside=!1)}}getPxExtremes(){let g=Math.min(this.chart.plotWidth,this.chart.plotHeight),y=r=>{let l;return"string"==typeof r&&(l=/%$/.test(r),r=parseInt(r,10)),l?g*r/100:r},o=y(T(this.options.minSize,8));return{minPxSize:o,maxPxSize:Math.max(y(T(this.options.maxSize,"20%")),o)}}getZExtremes(){let g=this.options,y=(this.zData||[]).filter(_);if(y.length){let o=T(g.zMin,I(D(y),!1===g.displayNegative?g.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),n=T(g.zMax,L(y));if(_(o)&&_(n))return{zMin:o,zMax:n}}}}return f.defaultOptions=b(B.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:a}=this.series.chart,{z:g}=this.point;return _(g)?a(g,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),E(f.prototype,{alignDataLabel:A.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,pointArrayMap:["y","z"],pointClass:ie,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),F(f,"updatedData",a=>{delete a.target.chart.bubbleZExtremes}),F(f,"remove",a=>{delete a.target.chart.bubbleZExtremes}),le.registerSeriesType("bubble",f),f}),Pe(V,"Series/MapBubble/MapBubblePoint.js",[V["Series/Bubble/BubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{seriesTypes:{map:{prototype:{pointClass:{prototype:ve}}}}}=ie,{extend:le}=re;class fe extends Z{isValid(){return"number"==typeof this.z}}return le(fe.prototype,{applyOptions:ve.applyOptions,getProjectedBounds:ve.getProjectedBounds}),fe}),Pe(V,"Series/MapBubble/MapBubbleSeries.js",[V["Series/Bubble/BubbleSeries.js"],V["Series/MapBubble/MapBubblePoint.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{seriesTypes:{map:{prototype:le},mappoint:{prototype:fe}}}=re,{extend:pe,merge:J}=ve;class te extends Z{constructor(){super(...arguments),this.clearBounds=le.clearBounds}searchPoint(A,B){return this.searchKDTree({plotX:A.chartX-this.chart.plotLeft,plotY:A.chartY-this.chart.plotTop},B,A)}translate(){fe.translate.call(this),this.getRadii(),this.translateBubble()}updateParallelArrays(A,B,F){super.updateParallelArrays.call(this,A,B,F);let L=this.processedXData,D=this.xData;L&&D&&(L.length=D.length)}}return te.defaultOptions=J(Z.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),pe(te.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:le.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:ie,processData:le.processData,projectPoint:fe.projectPoint,kdAxisArray:["plotX","plotY"],setData:le.setData,setOptions:le.setOptions,updateData:le.updateData,useMapGeometry:!0,xyFromShape:!0}),re.registerSeriesType("mapbubble",te),te}),Pe(V,"Series/Heatmap/HeatmapPoint.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{scatter:{prototype:{pointClass:re}}}=Z.seriesTypes,{clamp:ve,defined:le,extend:fe,pick:pe}=ie;class J extends re{applyOptions($,A){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions($,A),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let $=this.series,A=$.options,B=(A.colsize||1)/2,F=(A.rowsize||1)/2,L=$.xAxis,D=$.yAxis,I=this.options.marker||$.options.marker,E=$.pointPlacementToXValue(),_=pe(this.pointPadding,A.pointPadding,0),b={x1:ve(Math.round(L.len-L.translate(this.x-B,!1,!0,!1,!0,-E)),-L.len,2*L.len),x2:ve(Math.round(L.len-L.translate(this.x+B,!1,!0,!1,!0,-E)),-L.len,2*L.len),y1:ve(Math.round(D.translate(this.y-F,!1,!0,!1,!0)),-D.len,2*D.len),y2:ve(Math.round(D.translate(this.y+F,!1,!0,!1,!0)),-D.len,2*D.len)};for(let T of[["width","x"],["height","y"]]){let z=T[0],O=T[1],f=O+"1",a=O+"2",g=Math.abs(b[f]-b[a]),y=I&&I.lineWidth||0,o=Math.abs(b[f]+b[a])/2,n=I&&I[z];if(le(n)&&n"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}}),Pe(V,"Series/InterpolationUtilities.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{doc:re}=Z,{defined:ve,pick:le}=ie;return{colorFromPoint:function(fe,pe){let J=pe.series.colorAxis;if(J){let te=J.toColor(fe||0,pe).split(")")[0].split("(")[1].split(",").map($=>le(parseFloat($),parseInt($,10)));return te[3]=255*le(te[3],1),ve(fe)&&pe.visible||(te[3]=0),te}return[0,0,0,0]},getContext:function(fe){let{canvas:pe,context:J}=fe;return pe&&J?(J.clearRect(0,0,pe.width,pe.height),J):(fe.canvas=re.createElement("canvas"),fe.context=fe.canvas.getContext("2d",{willReadFrequently:!0})||void 0,fe.context)}}}),Pe(V,"Series/Heatmap/HeatmapSeries.js",[V["Core/Color/Color.js"],V["Series/ColorMapComposition.js"],V["Series/Heatmap/HeatmapPoint.js"],V["Series/Heatmap/HeatmapSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Utilities.js"],V["Series/InterpolationUtilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{series:te,seriesTypes:{column:$,scatter:A}}=le,{prototype:{symbols:B}}=fe,{addEvent:F,extend:L,fireEvent:D,isNumber:I,merge:E,pick:_}=pe,{colorFromPoint:b,getContext:T}=J;class z extends A{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let f=this,a=f.options,y=a.marker||{};if(a.interpolation){let{image:o,chart:n,xAxis:r,yAxis:l}=f,{reversed:d=!1,len:C}=r,{reversed:k=!1,len:p}=l,S={width:C,height:p};if(!o||f.isDirtyData||f.isDirtyCanvas){let j=T(f),{canvas:H,options:{colsize:Y=1,rowsize:U=1},points:se,points:{length:w}}=f;if(H&&j&&n.colorAxis&&n.colorAxis[0]){let{min:G,max:x}=r.getExtremes(),{min:N,max:R}=l.getExtremes(),K=x-G,q=R-N,he=Math.round(K/Y/8*8),me=Math.round(q/U/8*8),[Ce,Se]=[[he,he/K,d,"ceil"],[me,me/q,!k,"floor"]].map(([de,ye,Te,_e])=>Te?Me=>Math[_e](de-ye*Me):Me=>Math[_e](ye*Me)),Oe=H.width=he+1,Ae=Oe*(H.height=me+1),Fe=(w-1)/Ae,oe=new Uint8ClampedArray(4*Ae),ee=(de,ye)=>4*Math.ceil(Oe*Se(ye-N)+Ce(de-G));f.buildKDTree();for(let de=0;de{o.graphic&&(o.graphic[f.chart.styledMode?"css":"animate"](f.colorAttribs(o)),null===o.value&&o.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:f,dataMax:a}=te.prototype.getExtremes.call(this,this.valueData);return I(f)&&(this.valueMin=f),I(a)&&(this.valueMax=a),te.prototype.getExtremes.call(this)}getValidPoints(f,a){return te.prototype.getValidPoints.call(this,f,a,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);let f=this.options;f.pointRange=_(f.pointRange,f.colsize||1),this.yAxis.axisPointRange=f.rowsize||1,B.ellipse=B.circle,f.marker&&I(f.borderRadius)&&(f.marker.r=f.borderRadius)}markerAttribs(f,a){let g=f.shapeArgs||{};if(f.hasImage)return{x:f.plotX,y:f.plotY};if(a&&"normal"!==a){let y=f.options.marker||{},o=this.options.marker||{},n=o.states&&o.states[a]||{},r=y.states&&y.states[a]||{},l=(r.width||n.width||g.width||0)+(r.widthPlus||n.widthPlus||0),d=(r.height||n.height||g.height||0)+(r.heightPlus||n.heightPlus||0);return{x:(g.x||0)+((g.width||0)-l)/2,y:(g.y||0)+((g.height||0)-d)/2,width:l,height:d}}return g}pointAttribs(f,a){let g=te.prototype.pointAttribs.call(this,f,a),y=this.options||{},o=this.chart.options.plotOptions||{},n=o.series||{},r=o.heatmap||{},d=f&&f.options.borderWidth||y.borderWidth||r.borderWidth||n.borderWidth||g["stroke-width"];if(g.stroke=f&&f.marker&&f.marker.lineColor||y.marker&&y.marker.lineColor||f&&f.options.borderColor||y.borderColor||r.borderColor||n.borderColor||this.color,g["stroke-width"]=d,a&&"normal"!==a){let C=E(y.states&&y.states[a],y.marker&&y.marker.states&&y.marker.states[a],f&&f.options.states&&f.options.states[a]||{});g.fill=C.color||Z.parse(g.fill).brighten(C.brightness||0).get(),g.stroke=C.lineColor||g.stroke}return g}translate(){let{borderRadius:f,marker:a}=this.options,g=a&&a.symbol||"rect",y=B[g]?g:"rect",o=-1!==["circle","square"].indexOf(y);for(let n of(this.generatePoints(),this.points)){let r=n.getCellAttributes(),l=Math.min(r.x1,r.x2),d=Math.min(r.y1,r.y2),C=Math.max(Math.abs(r.x2-r.x1),0),k=Math.max(Math.abs(r.y2-r.y1),0);if(n.hasImage=0===(n.marker&&n.marker.symbol||g||"").indexOf("url"),o){let p=Math.abs(C-k);l=Math.min(r.x1,r.x2)+(CparseInt(ie.userAgent.split("Firefox/")[1],10),ie.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],ie.noop=function(){},ie.supportsPassiveEvents=function(){let re=!1;if(!ie.isMS){let ve=Object.defineProperty({},"passive",{get:function(){re=!0}});ie.win.addEventListener&&ie.win.removeEventListener&&(ie.win.addEventListener("testPassive",ie.noop,ve),ie.win.removeEventListener("testPassive",ie.noop,ve))}return re}(),ie.charts=[],ie.composed=[],ie.dateFormats={},ie.seriesTypes={},ie.symbolSizes={},ie.chartCount=0,Z}),Pe(V,"Core/Utilities.js",[V["Core/Globals.js"]],function(Z){let ie,{charts:re,doc:ve,win:le}=Z;function fe(o,n,r,l){let d=n?"Highcharts error":"Highcharts warning";32===o&&(o=`${d}: Deprecated member`);let C=F(o),k=C?`${d} #${o}: www.highcharts.com/errors/${o}/`:o.toString();if(void 0!==l){let p="";C&&(k+="?"),f(l,function(S,j){p+=`\n - ${j}: ${S}`,C&&(k+=encodeURI(j)+"="+encodeURI(S))}),k+=p}g(Z,"displayError",{chart:r,code:o,message:k,params:l},function(){if(n)throw Error(k);le.console&&-1===fe.messages.indexOf(k)&&console.warn(k)}),fe.messages.push(k)}function pe(o,n){return parseInt(o,n||10)}function J(o){return"string"==typeof o}function te(o){let n=Object.prototype.toString.call(o);return"[object Array]"===n||"[object Array Iterator]"===n}function $(o,n){return!(!o||"object"!=typeof o||n&&te(o))}function A(o){return $(o)&&"number"==typeof o.nodeType}function B(o){let n=o&&o.constructor;return!(!$(o,!0)||A(o)||!n||!n.name||"Object"===n.name)}function F(o){return"number"==typeof o&&!isNaN(o)&&o<1/0&&o>-1/0}function L(o){return null!=o}function D(o,n,r){let l,d=J(n)&&!L(r),C=(k,p)=>{L(k)?o.setAttribute(p,k):d?(l=o.getAttribute(p))||"class"!==p||(l=o.getAttribute(p+"Name")):o.removeAttribute(p)};return J(n)?C(r,n):f(n,C),l}function I(o){return te(o)?o:[o]}function E(o,n){let r;for(r in o||(o={}),n)o[r]=n[r];return o}function _(){let o=arguments,n=o.length;for(let r=0;r1e14?o:parseFloat(o.toPrecision(n||14))}(fe||(fe={})).messages=[],Math.easeInOutSine=function(o){return-.5*(Math.cos(Math.PI*o)-1)};let O=Array.prototype.find?function(o,n){return o.find(n)}:function(o,n){let r,l=o.length;for(r=0;rp.order-S.order),d.forEach(p=>{!1===p.fn.call(o,r)&&r.preventDefault()})}l&&!r.defaultPrevented&&l.call(o,r)}f({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(o,n){Z[n]=function(r){return fe(32,!1,void 0,{[`Highcharts.${n}`]:`use Array.${o}`}),Array.prototype[o].apply(r,[].slice.call(arguments,1))}});let y=function(){let o=Math.random().toString(36).substring(2,9)+"-",n=0;return function(){return"highcharts-"+(ie?"":o)+n++}}();return le.jQuery&&(le.jQuery.fn.highcharts=function(){let o=[].slice.call(arguments);if(this[0])return o[0]?(new(Z[J(o[0])?o.shift():"Chart"])(this[0],o[0],o[1]),this):re[D(this[0],"data-highcharts-chart")]}),{addEvent:function(o,n,r,l={}){let d="function"==typeof o&&o.prototype||o;Object.hasOwnProperty.call(d,"hcEvents")||(d.hcEvents={});let C=d.hcEvents;Z.Point&&o instanceof Z.Point&&o.series&&o.series.chart&&(o.series.chart.runTrackerClick=!0);let k=o.addEventListener;return k&&k.call(o,n,r,!!Z.supportsPassiveEvents&&{passive:void 0===l.passive?-1!==n.indexOf("touch"):l.passive,capture:!1}),C[n]||(C[n]=[]),C[n].push({fn:r,order:"number"==typeof l.order?l.order:1/0}),C[n].sort((S,j)=>S.order-j.order),function(){a(o,n,r)}},arrayMax:function(o){let n=o.length,r=o[0];for(;n--;)o[n]>r&&(r=o[n]);return r},arrayMin:function(o){let n=o.length,r=o[0];for(;n--;)o[n]n?o-1&&p[U]){Y=I(Y),S[U]=[];for(let se=0;se{if(p.length>1)for(C=l=p.length-1;C>0;C--)(d=p[C]-p[C-1])<0&&!k?(n?.(),n=void 0):d&&(void 0===r||d=k-1&&(k=Math.floor(p)),Math.max(0,k-(o(n,"padding-left",!0)||0)-(o(n,"padding-right",!0)||0))}if("height"===r)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-(o(n,"padding-top",!0)||0)-(o(n,"padding-bottom",!0)||0));let C=le.getComputedStyle(n,void 0);return C&&(d=C.getPropertyValue(r),_(l,"opacity"!==r)&&(d=pe(d))),d},inArray:function(o,n,r){return fe(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(o,r)},insertItem:function(o,n){let r,l=o.options.index,d=n.length;for(r=o.options.isInternal?d:0;r=o))&&(d||!(p<=(n[C]+(n[C+1]||n[C]))/2)));C++);return z(k*r,-Math.round(Math.log(.001)/Math.LN10))},objectEach:f,offset:function(o){let n=ve.documentElement,r=o.parentElement||o.parentNode?o.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:r.top+(le.pageYOffset||n.scrollTop)-(n.clientTop||0),left:r.left+(le.pageXOffset||n.scrollLeft)-(n.clientLeft||0),width:r.width,height:r.height}},pad:function(o,n,r){return Array((n||2)+1-String(o).replace("-","").length).join(r||"0")+o},pick:_,pInt:pe,pushUnique:function(o,n){return 0>o.indexOf(n)&&!!o.push(n)},relativeLength:function(o,n,r){return/%$/.test(o)?n*parseFloat(o)/100+(r||0):parseFloat(o)},removeEvent:a,replaceNested:function(o,...n){let r,l;do{for(l of(r=o,n))o=o.replace(l[0],l[1])}while(o!==r);return o},splat:I,stableSort:function(o,n){let r,l,d=o.length;for(l=0;l0?setTimeout(o,n,r):(o.call(0,r),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:y,useSerialIds:function(o){return ie=_(o,ie)},wrap:function(o,n,r){let l=o[n];o[n]=function(){let d=arguments,C=this;return r.apply(this,[function(){return l.apply(C,arguments.length?arguments:d)}].concat([].slice.call(arguments)))}}}}),Pe(V,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),Pe(V,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),Pe(V,"Core/Time.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{win:re}=Z,{defined:ve,error:le,extend:fe,isNumber:pe,isObject:J,merge:te,objectEach:$,pad:A,pick:B,splat:F,timeUnits:L}=ie,D=Z.isSafari&&re.Intl&&re.Intl.DateTimeFormat.prototype.formatRange,I=Z.isSafari&&re.Intl&&!re.Intl.DateTimeFormat.prototype.formatRange;class E{constructor(b){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=re.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(b)}get(b,T){if(this.variableTimezone||this.timezoneOffset){let z=T.getTime(),O=z-this.getTimezoneOffset(T);T.setTime(O);let f=T["getUTC"+b]();return T.setTime(z),f}return this.useUTC?T["getUTC"+b]():T["get"+b]()}set(b,T,z){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===b||"Seconds"===b||"Minutes"===b&&this.getTimezoneOffset(T)%36e5==0)return T["setUTC"+b](z);let O=this.getTimezoneOffset(T),f=T.getTime()-O;T.setTime(f),T["setUTC"+b](z);let a=this.getTimezoneOffset(T);return f=T.getTime()+a,T.setTime(f)}return this.useUTC||D&&"FullYear"===b?T["setUTC"+b](z):T["set"+b](z)}update(b={}){let T=B(b.useUTC,!0);this.options=b=te(!0,this.options,b),this.Date=b.Date||re.Date||Date,this.useUTC=T,this.timezoneOffset=T&&b.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=T&&!(!b.getTimezoneOffset&&!b.timezone)}makeTime(b,T,z,O,f,a){let g,y,o;return this.useUTC?(g=this.Date.UTC.apply(0,arguments),y=this.getTimezoneOffset(g),g+=y,y!==(o=this.getTimezoneOffset(g))?g+=o-y:y-36e5!==this.getTimezoneOffset(g-36e5)||I||(g-=36e5)):g=new this.Date(b,T,B(z,1),B(O,0),B(f,0),B(a,0)).getTime(),g}timezoneOffsetFunction(){let b=this,T=this.options,z=T.getTimezoneOffset;return this.useUTC?T.timezone?O=>{try{let f=`shortOffset,${T.timezone||""}`,[a,g,y,o,n=0]=(E.formatCache[f]=E.formatCache[f]||Intl.DateTimeFormat("en",{timeZone:T.timezone,timeZoneName:"shortOffset"})).format(O).split(/(GMT|:)/).map(Number),r=-36e5*(y+n/60);if(pe(r))return r}catch{le(34)}return 0}:this.useUTC&&z?O=>6e4*z(O.valueOf()):()=>6e4*(b.timezoneOffset||0):O=>6e4*new Date(O.toString()).getTimezoneOffset()}dateFormat(b,T,z){if(!ve(T)||isNaN(T))return Z.defaultOptions.lang&&Z.defaultOptions.lang.invalidDate||"";b=B(b,"%Y-%m-%d %H:%M:%S");let O=this,f=new this.Date(T),a=this.get("Hours",f),g=this.get("Day",f),y=this.get("Date",f),o=this.get("Month",f),n=this.get("FullYear",f),r=Z.defaultOptions.lang,l=r&&r.weekdays,d=r&&r.shortWeekdays;return $(fe({a:d?d[g]:l[g].substr(0,3),A:l[g],d:A(y),e:A(y,2," "),w:g,b:r.shortMonths[o],B:r.months[o],m:A(o+1),o:o+1,y:n.toString().substr(2,2),Y:n,H:A(a),k:a,I:A(a%12||12),l:a%12||12,M:A(this.get("Minutes",f)),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:A(this.get("Seconds",f)),L:A(Math.floor(T%1e3),3)},Z.dateFormats),function(C,k){for(;-1!==b.indexOf("%"+k);)b=b.replace("%"+k,"function"==typeof C?C.call(O,T):C)}),z?b.substr(0,1).toUpperCase()+b.substr(1):b}resolveDTLFormat(b){return J(b,!0)?b:{main:(b=F(b))[0],from:b[1],to:b[2]}}getTimeTicks(b,T,z,O){let f,a,g,y,o=this,r=[],l={},d=new(0,o.Date)(T),C=b.unitRange,k=b.count||1;if(O=B(O,1),ve(T)){o.set("Milliseconds",d,C>=L.second?0:k*Math.floor(o.get("Milliseconds",d)/k)),C>=L.second&&o.set("Seconds",d,C>=L.minute?0:k*Math.floor(o.get("Seconds",d)/k)),C>=L.minute&&o.set("Minutes",d,C>=L.hour?0:k*Math.floor(o.get("Minutes",d)/k)),C>=L.hour&&o.set("Hours",d,C>=L.day?0:k*Math.floor(o.get("Hours",d)/k)),C>=L.day&&o.set("Date",d,C>=L.month?1:Math.max(1,k*Math.floor(o.get("Date",d)/k))),C>=L.month&&(o.set("Month",d,C>=L.year?0:k*Math.floor(o.get("Month",d)/k)),a=o.get("FullYear",d)),C>=L.year&&(a-=a%k,o.set("FullYear",d,a)),C===L.week&&(y=o.get("Day",d),o.set("Date",d,o.get("Date",d)-y+O+(y4*L.month||o.getTimezoneOffset(T)!==o.getTimezoneOffset(z));let H=d.getTime();for(f=1;H1?H=o.makeTime(a,p,S,j+f*k):H+=C*k:H=o.makeTime(a,p,S+f*k*(C===L.day?1:7)),f++;r.push(H),C<=L.hour&&r.length<1e4&&r.forEach(function(Y){Y%18e5==0&&"000000000"===o.dateFormat("%H%M%S%L",Y)&&(l[Y]="day")})}return r.info=fe(b,{higherRanks:l,totalRange:C*k}),r}getDateFormat(b,T,z,O){let f=this.dateFormat("%m-%d %H:%M:%S.%L",T),a="01-01 00:00:00.000",g={millisecond:15,second:12,minute:9,hour:6,day:3},y="millisecond",o=y;for(y in L){if(b===L.week&&+this.dateFormat("%w",T)===z&&f.substr(6)===a.substr(6)){y="week";break}if(L[y]>b){y=o;break}if(g[y]&&f.substr(g[y])!==a.substr(g[y]))break;"week"!==y&&(o=y)}return this.resolveDTLFormat(O[y]).main}}return E.formatCache={},E}),Pe(V,"Core/Defaults.js",[V["Core/Chart/ChartDefaults.js"],V["Core/Globals.js"],V["Core/Color/Palettes.js"],V["Core/Time.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{isTouchDevice:fe,svg:pe}=ie,{merge:J}=le,te={colors:re.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:Z,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:pe,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:fe?25:10,headerFormat:'{point.key}
    ',pointFormat:'\u25cf {series.name}: {point.y}
    ',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};te.chart.styledMode=!1;let $=new ve(te.time);return{defaultOptions:te,defaultTime:$,getOptions:function(){return te},setOptions:function(A){return J(!0,te,A),(A.time||A.global)&&(ie.time?ie.time.update(J(te.global,te.time,A.global,A.time)):ie.time=$),te}}}),Pe(V,"Core/Color/Color.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isNumber:re,merge:ve,pInt:le}=ie;class fe{static parse(J){return J?new fe(J):fe.None}constructor(J){let te,$,A,B;this.rgba=[NaN,NaN,NaN,NaN],this.input=J;let F=Z.Color;if(F&&F!==fe)return new F(J);if("object"==typeof J&&void 0!==J.stops)this.stops=J.stops.map(L=>new fe(L[1]));else if("string"==typeof J){if(this.input=J=fe.names[J.toLowerCase()]||J,"#"===J.charAt(0)){let L=J.length,D=parseInt(J.substr(1),16);7===L?$=[(16711680&D)>>16,(65280&D)>>8,255&D,1]:4===L&&($=[(3840&D)>>4|(3840&D)>>8,(240&D)>>4|240&D,(15&D)<<4|15&D,1])}if(!$)for(A=fe.parsers.length;A--&&!$;)(te=(B=fe.parsers[A]).regex.exec(J))&&($=B.parse(te))}$&&(this.rgba=$)}get(J){let te=this.input,$=this.rgba;if("object"==typeof te&&void 0!==this.stops){let A=ve(te);return A.stops=[].slice.call(A.stops),this.stops.forEach((B,F)=>{A.stops[F]=[A.stops[F][0],B.get(J)]}),A}return $&&re($[0])?"rgb"===J||!J&&1===$[3]?"rgb("+$[0]+","+$[1]+","+$[2]+")":"a"===J?`${$[3]}`:"rgba("+$.join(",")+")":te}brighten(J){let te=this.rgba;if(this.stops)this.stops.forEach(function($){$.brighten(J)});else if(re(J)&&0!==J)for(let $=0;$<3;$++)te[$]+=le(255*J),te[$]<0&&(te[$]=0),te[$]>255&&(te[$]=255);return this}setOpacity(J){return this.rgba[3]=J,this}tweenTo(J,te){let $=this.rgba,A=J.rgba;if(!re($[0])||!re(A[0]))return J.input||"none";let B=1!==A[3]||1!==$[3];return(B?"rgba(":"rgb(")+Math.round(A[0]+($[0]-A[0])*(1-te))+","+Math.round(A[1]+($[1]-A[1])*(1-te))+","+Math.round(A[2]+($[2]-A[2])*(1-te))+(B?","+(A[3]+($[3]-A[3])*(1-te)):"")+")"}}return fe.names={white:"#ffffff",black:"#000000"},fe.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),parseFloat(pe[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(pe){return[le(pe[1]),le(pe[2]),le(pe[3]),1]}}],fe.None=new fe(""),fe}),Pe(V,"Core/Animation/Fx.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{parse:ve}=Z,{win:le}=ie,{isNumber:fe,objectEach:pe}=re;class J{constructor($,A,B){this.pos=NaN,this.options=A,this.elem=$,this.prop=B}dSetter(){let $=this.paths,A=$&&$[0],B=$&&$[1],F=this.now||0,L=[];if(1!==F&&A&&B)if(A.length===B.length&&F<1)for(let D=0;D=E+this.startTime?(this.now=this.end,this.pos=1,this.update(),_[this.prop]=!0,B=!0,pe(_,function(b){!0!==b&&(B=!1)}),B&&I&&I.call(D),A=!1):(this.pos=L.easing((F-this.startTime)/E),this.now=this.start+(this.end-this.start)*this.pos,this.update(),A=!0),A}initPath($,A,B){let _,b,T,z,F=$.startX,L=$.endX,D=B.slice(),I=$.isArea,E=I?2:1,O=A&&A.slice();if(!O)return[D,D];function f(g,y){for(;g.length{let z=A(T.options.animation);_=pe(L)&&re(L.defer)?I.defer:Math.max(_,z.duration+z.defer),b=Math.min(I.duration,z.duration)}),F.renderer.forExport&&(_=0),{defer:Math.max(0,_-b),duration:Math.min(_,b)}},setAnimation:function(F,L){L.renderer.globalAnimation=$(F,L.options.chart.animation,!0)},stop:B}}),Pe(V,"Core/Renderer/HTML/AST.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{SVG_NS:re,win:ve}=Z,{attr:le,createElement:fe,css:pe,error:J,isFunction:te,isString:$,objectEach:A,splat:B}=ie,{trustedTypes:F}=ve,L=F&&te(F.createPolicy)&&F.createPolicy("highcharts",{createHTML:_=>_}),D=L?L.createHTML(""):"",I=function(){try{return!!(new DOMParser).parseFromString(D,"text/html")}catch{return!1}}();class E{static filterUserAttributes(b){return A(b,(T,z)=>{let O=!0;-1===E.allowedAttributes.indexOf(z)&&(O=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(z)&&(O=$(T)&&E.allowedReferences.some(f=>0===T.indexOf(f))),O||(J(33,!1,void 0,{"Invalid attribute in config":`${z}`}),delete b[z]),$(T)&&b[z]&&(b[z]=T.replace(/{let O=z.split(":").map(a=>a.trim()),f=O.shift();return f&&O.length&&(T[f.replace(/-([a-z])/g,a=>a[1].toUpperCase())]=O.join(":")),T},{})}static setElementHTML(b,T){b.innerHTML=E.emptyHTML,T&&new E(T).addToDOM(b)}constructor(b){this.nodes="string"==typeof b?this.parseMarkup(b):b}addToDOM(b){return function T(z,O){let f;return B(z).forEach(function(a){let g,y=a.tagName,o=a.textContent?Z.doc.createTextNode(a.textContent):void 0,n=E.bypassHTMLFiltering;if(y)if("#text"===y)g=o;else if(-1!==E.allowedTags.indexOf(y)||n){let l=Z.doc.createElementNS("svg"===y?re:O.namespaceURI||re,y),d=a.attributes||{};A(a,function(C,k){"tagName"!==k&&"attributes"!==k&&"children"!==k&&"style"!==k&&"textContent"!==k&&(d[k]=C)}),le(l,n?d:E.filterUserAttributes(d)),a.style&&pe(l,a.style),o&&l.appendChild(o),T(a.children||[],l),g=l}else J(33,!1,void 0,{"Invalid tagName in config":y});g&&O.appendChild(g),f=g}),f}(this.nodes,b)}parseMarkup(b){let T,z=[];if(b=b.trim().replace(/ style=(["'])/g," data-style=$1"),I)T=(new DOMParser).parseFromString(L?L.createHTML(b):b,"text/html");else{let f=fe("div");f.innerHTML=b,T={body:f}}let O=(f,a)=>{let g=f.nodeName.toLowerCase(),y={tagName:g};"#text"===g&&(y.textContent=f.textContent||"");let o=f.attributes;if(o){let n={};[].forEach.call(o,r=>{"data-style"===r.name?y.style=E.parseStyle(r.value):n[r.name]=r.value}),y.attributes=n}if(f.childNodes.length){let n=[];[].forEach.call(f.childNodes,r=>{O(r,n)}),n.length&&(y.children=n)}a.push(y)};return[].forEach.call(T.body.childNodes,f=>O(f,z)),z}}return E.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],E.allowedReferences=["https://","http://","mailto:","/","../","./","#"],E.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],E.emptyHTML=D,E.bypassHTMLFiltering=!1,E}),Pe(V,"Core/Templating.js",[V["Core/Defaults.js"],V["Core/Utilities.js"]],function(Z,ie){let{defaultOptions:re,defaultTime:ve}=Z,{extend:le,getNestedProperty:fe,isArray:pe,isNumber:J,isObject:te,pick:$,pInt:A}=ie,B={add:(D,I)=>D+I,divide:(D,I)=>0!==I?D/I:"",eq:(D,I)=>D==I,each:function(D){let I=arguments[arguments.length-1];return!!pe(D)&&D.map((E,_)=>F(I.body,le(te(E)?E:{"@this":E},{"@index":_,"@first":0===_,"@last":_===D.length-1}))).join("")},ge:(D,I)=>D>=I,gt:(D,I)=>D>I,if:D=>!!D,le:(D,I)=>D<=I,lt:(D,I)=>DD*I,ne:(D,I)=>D!=I,subtract:(D,I)=>D-I,unless:D=>!D};function F(D="",I,E){let o,n,l,_=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,T=[],z=/f$/,O=/\.([0-9])/,f=re.lang,a=E&&E.time||ve,g=E&&E.numberFormatter||L,y=(d="")=>{let C;return"true"===d||"false"!==d&&((C=Number(d)).toString()===d?C:fe(d,I))},r=0;for(;null!==(o=_.exec(D));){let d=b.exec(o[1]);d&&(o=d,l=!0),n&&n.isBlock||(n={ctx:I,expression:o[1],find:o[0],isBlock:"#"===o[1].charAt(0),start:o.index,startInner:o.index+o[0].length,length:o[0].length});let C=o[1].split(" ")[0].replace("#","");B[C]&&(n.isBlock&&C===n.fn&&r++,n.fn||(n.fn=C));let k="else"===o[1];if(n.isBlock&&n.fn&&(o[1]===`/${n.fn}`||k))if(r)!k&&r--;else{let p=n.startInner,S=D.substr(p,o.index-p);void 0===n.body?(n.body=S,n.startInner=o.index+o[0].length):n.elseBody=S,n.find+=S+o[0],k||(T.push(n),n=void 0)}else n.isBlock||T.push(n);if(d&&!n?.isBlock)break}return T.forEach(d=>{let C,k,{body:p,elseBody:S,expression:j,fn:H}=d;if(H){let Y=[d],U=j.split(" ");for(k=B[H].length;k--;)Y.unshift(y(U[k+1]));C=B[H].apply(I,Y),d.isBlock&&"boolean"==typeof C&&(C=F(C?p:S,I))}else{let Y=j.split(":");if(C=y(Y.shift()||""),Y.length&&"number"==typeof C){let U=Y.join(":");if(z.test(U)){let se=parseInt((U.match(O)||["","-1"])[1],10);null!==C&&(C=g(C,se,f.decimalPoint,U.indexOf(",")>-1?f.thousandsSep:""))}else C=a.dateFormat(U,C)}}D=D.replace(d.find,$(C,""))}),l?F(D,I,E):D}function L(D,I,E,_){let b,T;I=+I;let z=re.lang,O=((D=+D||0).toString().split(".")[1]||"").split("e")[0].length,f=D.toString().split("e"),a=I;-1===I?I=Math.min(O,20):J(I)?I&&f[1]&&f[1]<0&&((T=I+ +f[1])>=0?(f[0]=(+f[0]).toExponential(T).split("e")[0],I=T):(f[0]=f[0].split(".")[0]||0,D=I<20?(f[0]*Math.pow(10,f[1])).toFixed(I):0,f[1]=0)):I=2;let g=(Math.abs(f[1]?f[0]:D)+Math.pow(10,-Math.max(I,O)-1)).toFixed(I),y=String(A(g)),o=y.length>3?y.length%3:0;return E=$(E,z.decimalPoint),_=$(_,z.thousandsSep),b=(D<0?"-":"")+(o?y.substr(0,o)+_:""),0>+f[1]&&!a?b="0":b+=y.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+_),I&&(b+=E+g.slice(-I)),f[1]&&0!=+b&&(b+="e"+f[1]),b}return{dateFormat:function(D,I,E){return ve.dateFormat(D,I,E)},format:F,helpers:B,numberFormat:L}}),Pe(V,"Core/Renderer/RendererRegistry.js",[V["Core/Globals.js"]],function(Z){var ie,re;let ve;return(re=ie||(ie={})).rendererTypes={},re.getRendererType=function(le=ve){return re.rendererTypes[le]||re.rendererTypes[ve]},re.registerRendererType=function(le,fe,pe){re.rendererTypes[le]=fe,(!ve||pe)&&(ve=le,Z.Renderer=fe)},ie}),Pe(V,"Core/Renderer/RendererUtilities.js",[V["Core/Utilities.js"]],function(Z){var ie;let{clamp:re,pick:ve,pushUnique:le,stableSort:fe}=Z;return(ie||(ie={})).distribute=function pe(J,te,$){let _,b,T,O,f,g,A=J,B=A.reducedLen||te,F=(y,o)=>y.target-o.target,L=[],D=J.length,I=[],E=L.push,z=!0,a=0;for(_=D;_--;)a+=J[_].size;if(a>B){for(fe(J,(y,o)=>(o.rank||0)-(y.rank||0)),T=(g=J[0].rank===J[J.length-1].rank)?D/2:-1,b=g?T:D-1;T&&a>B;)O=J[_=Math.floor(b)],le(I,_)&&(a-=O.size),b+=T,g&&b>=J.length&&(T/=2,b=T);I.sort((y,o)=>o-y).forEach(y=>E.apply(L,J.splice(y,1)))}for(fe(J,F),J=J.map(y=>({size:y.size,targets:[y.target],align:ve(y.align,.5)}));z;){for(_=J.length;_--;)O=J[_],f=(Math.min.apply(0,O.targets)+Math.max.apply(0,O.targets))/2,O.pos=re(f-O.size*O.align,0,te-O.size);for(_=J.length,z=!1;_--;)_>0&&J[_-1].pos+J[_-1].size>J[_].pos&&(J[_-1].size+=J[_].size,J[_-1].targets=J[_-1].targets.concat(J[_].targets),J[_-1].align=.5,J[_-1].pos+J[_-1].size>te&&(J[_-1].pos=te-J[_-1].size),J.splice(_,1),z=!0)}return E.apply(A,L),_=0,J.some(y=>{let o=0;return(y.targets||[]).some(()=>(A[_].pos=y.pos+o,void 0!==$&&Math.abs(A[_].pos-A[_].target)>$?(A.slice(0,_+1).forEach(n=>delete n.pos),A.reducedLen=(A.reducedLen||te)-.1*te,A.reducedLen>.1*te&&pe(A,te,$),!0):(o+=A[_].size,_++,!1)))}),fe(A,F),A},ie}),Pe(V,"Core/Renderer/SVG/SVGElement.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{animate:le,animObject:fe,stop:pe}=Z,{deg2rad:J,doc:te,svg:$,SVG_NS:A,win:B}=re,{addEvent:F,attr:L,createElement:D,css:I,defined:E,erase:_,extend:b,fireEvent:T,isArray:z,isFunction:O,isObject:f,isString:a,merge:g,objectEach:y,pick:o,pInt:n,replaceNested:r,syncTimeout:l,uniqueKey:d}=ve;class C{_defaultGetter(p){let S=o(this[p+"Value"],this[p],this.element?this.element.getAttribute(p):null,0);return/^[\-0-9\.]+$/.test(S)&&(S=parseFloat(S)),S}_defaultSetter(p,S,j){j.setAttribute(S,p)}add(p){let S,j=this.renderer,H=this.element;return p&&(this.parentGroup=p),void 0!==this.textStr&&"text"===this.element.nodeName&&j.buildText(this),this.added=!0,(!p||p.handleZ||this.zIndex)&&(S=this.zIndexSetter()),S||(p?p.element:j.box).appendChild(H),this.onAdd&&this.onAdd(),this}addClass(p,S){let j=S?"":this.attr("class")||"";return(p=(p||"").split(/ /g).reduce(function(H,Y){return-1===j.indexOf(Y)&&H.push(Y),H},j?[j]:[]).join(" "))!==j&&this.attr("class",p),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(p,S,j,H=!0){let Y,U,se,w,X,G={},x=this.renderer,N=x.alignedObjects;p?(this.alignOptions=p,this.alignByTranslate=S,(!j||a(j))&&(this.alignTo=se=j||"renderer",_(N,this),N.push(this),j=void 0)):(p=this.alignOptions,S=this.alignByTranslate,se=this.alignTo),j=o(j,x[se],x);let R=p.align,K=p.verticalAlign;return Y=(j.x||0)+(p.x||0),U=(j.y||0)+(p.y||0),"right"===R?w=1:"center"===R&&(w=2),w&&(Y+=(j.width-(p.width||0))/w),G[S?"translateX":"x"]=Math.round(Y),"bottom"===K?X=1:"middle"===K&&(X=2),X&&(U+=(j.height-(p.height||0))/X),G[S?"translateY":"y"]=Math.round(U),H&&(this[this.placed?"animate":"attr"](G),this.placed=!0),this.alignAttr=G,this}alignSetter(p){let S={left:"start",center:"middle",right:"end"};S[p]&&(this.alignValue=p,this.element.setAttribute("text-anchor",S[p]))}animate(p,S,j){let H=fe(o(S,this.renderer.globalAnimation,!0)),Y=H.defer;return te.hidden&&(H.duration=0),0!==H.duration?(j&&(H.complete=j),l(()=>{this.element&&le(this,p,H)},Y)):(this.attr(p,void 0,j||H.complete),y(p,function(U,se){H.step&&H.step.call(this,U,{prop:se,pos:1,elem:this})},this)),this}applyTextOutline(p){let S=this.element;-1!==p.indexOf("contrast")&&(p=p.replace(/contrast/g,this.renderer.getContrast(S.style.fill)));let j=p.split(" "),H=j[j.length-1],Y=j[0];if(Y&&"none"!==Y&&re.svg){this.fakeTS=!0,Y=Y.replace(/(^[\d\.]+)(.*?)$/g,function(G,x,N){return 2*Number(x)+N}),this.removeTextOutline();let U=te.createElementNS(A,"tspan");L(U,{class:"highcharts-text-outline",fill:H,stroke:H,"stroke-width":Y,"stroke-linejoin":"round"});let se=S.querySelector("textPath")||S;[].forEach.call(se.childNodes,G=>{let x=G.cloneNode(!0);x.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(N=>x.removeAttribute(N)),U.appendChild(x)});let w=0;[].forEach.call(se.querySelectorAll("text tspan"),G=>{w+=Number(G.getAttribute("dy"))});let X=te.createElementNS(A,"tspan");X.textContent="\u200b",L(X,{x:Number(S.getAttribute("x")),dy:-w}),U.appendChild(X),se.insertBefore(U,se.firstChild)}}attr(p,S,j,H){let se,w,G,Y=this.element,U=C.symbolCustomAttribs,X=this;return"string"==typeof p&&void 0!==S&&(se=p,(p={})[se]=S),"string"==typeof p?X=(this[p+"Getter"]||this._defaultGetter).call(this,p,Y):(y(p,function(x,N){G=!1,H||pe(this,N),this.symbolName&&-1!==U.indexOf(N)&&(w||(this.symbolAttr(p),w=!0),G=!0),this.rotation&&("x"===N||"y"===N)&&(this.doTransform=!0),G||(this[N+"Setter"]||this._defaultSetter).call(this,x,N,Y)},this),this.afterSetters()),j&&j.call(this),X}clip(p){if(p&&!p.clipPath){let S=d()+"-",j=this.renderer.createElement("clipPath").attr({id:S}).add(this.renderer.defs);b(p,{clipPath:j,id:S,count:0}),p.add(j)}return this.attr("clip-path",p?`url(${this.renderer.url}#${p.id})`:"none")}crisp(p,S){let j=Math.round(S=S||p.strokeWidth||0)%2/2;return p.x=Math.floor(p.x||this.x||0)+j,p.y=Math.floor(p.y||this.y||0)+j,p.width=Math.floor((p.width||this.width||0)-2*j),p.height=Math.floor((p.height||this.height||0)-2*j),E(p.strokeWidth)&&(p.strokeWidth=S),p}complexColor(p,S,j){let Y,U,se,w,X,G,x,N,R,K,he,H=this.renderer,q=[];T(this.renderer,"complexColor",{args:arguments},function(){if(p.radialGradient?U="radialGradient":p.linearGradient&&(U="linearGradient"),U){if(se=p[U],X=H.gradients,G=p.stops,R=j.radialReference,z(se)&&(p[U]=se={x1:se[0],y1:se[1],x2:se[2],y2:se[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===U&&R&&!E(se.gradientUnits)&&(w=se,se=g(se,H.getRadialAttr(R,w),{gradientUnits:"userSpaceOnUse"})),y(se,function(me,Ce){"id"!==Ce&&q.push(Ce,me)}),y(G,function(me){q.push(me)}),X[q=q.join(",")])K=X[q].attr("id");else{se.id=K=d();let me=X[q]=H.createElement(U).attr(se).add(H.defs);me.radAttr=w,me.stops=[],G.forEach(function(Ce){0===Ce[1].indexOf("rgba")?(x=(Y=ie.parse(Ce[1])).get("rgb"),N=Y.get("a")):(x=Ce[1],N=1);let Se=H.createElement("stop").attr({offset:Ce[0],"stop-color":x,"stop-opacity":N}).add(me);me.stops.push(Se)})}he="url("+H.url+"#"+K+")",j.setAttribute(S,he),j.gradient=q,p.toString=function(){return he}}})}css(p){let Y,S=this.styles,j={},H=this.element,U=!S;if(S&&y(p,function(se,w){S&&S[w]!==se&&(j[w]=se,U=!0)}),U){S&&(p=b(S,j)),null===p.width||"auto"===p.width?delete this.textWidth:"text"===H.nodeName.toLowerCase()&&p.width&&(Y=this.textWidth=n(p.width)),b(this.styles,p),Y&&!$&&this.renderer.forExport&&delete p.width;let se=g(p);H.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(w=>se&&delete se[w]),se.color&&(se.fill=se.color)),I(H,se)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),p.textOutline&&this.applyTextOutline(p.textOutline)),this}dashstyleSetter(p){let S,j=this["stroke-width"];if("inherit"===j&&(j=1),p=p&&p.toLowerCase()){let H=p.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(S=H.length;S--;)H[S]=""+n(H[S])*o(j,NaN);p=H.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",p)}}destroy(){let U,se,p=this,S=p.element||{},j=p.renderer,H=S.ownerSVGElement,Y="SPAN"===S.nodeName&&p.parentGroup||void 0;if(S.onclick=S.onmouseout=S.onmouseover=S.onmousemove=S.point=null,pe(p),p.clipPath&&H){let w=p.clipPath;[].forEach.call(H.querySelectorAll("[clip-path],[CLIP-PATH]"),function(X){X.getAttribute("clip-path").indexOf(w.element.id)>-1&&X.removeAttribute("clip-path")}),p.clipPath=w.destroy()}if(p.connector=p.connector?.destroy(),p.stops){for(se=0;seY&&Y.join?(U?H+" ":"")+Y.join(" "):(Y||"").toString(),"")),/(NaN| {2}|^$)/.test(p)&&(p="M 0 0"),this[S]!==p&&(j.setAttribute(S,p),this[S]=p)}fillSetter(p,S,j){"string"==typeof p?j.setAttribute(S,p):p&&this.complexColor(p,S,j)}hrefSetter(p,S,j){j.setAttributeNS("http://www.w3.org/1999/xlink",S,p)}getBBox(p,S){let j,H,Y,U,{alignValue:se,element:w,renderer:X,styles:G,textStr:x}=this,{cache:N,cacheKeys:R}=X,K=w.namespaceURI===this.SVG_NS,q=o(S,this.rotation,0),he=X.styledMode?w&&C.prototype.getStyle.call(w,"font-size"):G.fontSize;if(E(x)&&(-1===(U=x.toString()).indexOf("<")&&(U=U.replace(/[0-9]/g,"0")),U+=["",X.rootFontSize,he,q,this.textWidth,se,G.textOverflow,G.fontWeight].join(",")),U&&!p&&(j=N[U]),!j){if(K||X.forExport){try{Y=this.fakeTS&&function(me){let Ce=w.querySelector(".highcharts-text-outline");Ce&&I(Ce,{display:me})},O(Y)&&Y("none"),j=w.getBBox?b({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight,x:0,y:0},O(Y)&&Y("")}catch{}(!j||j.width<0)&&(j={x:0,y:0,width:0,height:0})}else j=this.htmlGetBBox();H=j.height,K&&(j.height=H={"11px,17":14,"13px,20":16}[`${he||""},${Math.round(H)}`]||H),q&&(j=this.getRotatedBox(j,q))}if(U&&(""===x||j.height>0)){for(;R.length>250;)delete N[R.shift()];N[U]||R.push(U),N[U]=j}return j}getRotatedBox(p,S){let{x:j,y:H,width:Y,height:U}=p,{alignValue:se,translateY:w,rotationOriginX:X=0,rotationOriginY:G=0}=this,x={right:1,center:.5}[se||0]||0,N=Number(this.element.getAttribute("y")||0)-(w?0:H),R=S*J,K=(S-90)*J,q=Math.cos(R),he=Math.sin(R),me=Y*q,Ce=Y*he,Se=Math.cos(K),Oe=Math.sin(K),[[Ae,Fe],[oe,ee]]=[X,G].map(pt=>[pt-pt*q,pt*he]),de=j+x*(Y-me)+Ae+ee+N*Se,ye=de+me,Te=ye-U*Se,_e=Te-me,Me=H+N-x*Ce-Fe+oe+N*Oe,Ee=Me+Ce,Xe=Ee-U*Oe,Ze=Xe-Ce,lt=Math.min(de,ye,Te,_e),Qe=Math.min(Me,Ee,Xe,Ze);return{x:lt,y:Qe,width:Math.max(de,ye,Te,_e)-lt,height:Math.max(Me,Ee,Xe,Ze)-Qe}}getStyle(p){return B.getComputedStyle(this.element||this,"").getPropertyValue(p)}hasClass(p){return-1!==(""+this.attr("class")).split(" ").indexOf(p)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(p,S){this.onEvents={},this.opacity=1,this.SVG_NS=A,this.element="span"===S||"body"===S?D(S):te.createElementNS(this.SVG_NS,S),this.renderer=p,this.styles={},T(this,"afterInit")}on(p,S){let{onEvents:j}=this;return j[p]&&j[p](),j[p]=F(this.element,p,S),this}opacitySetter(p,S,j){let H=Number(Number(p).toFixed(3));this.opacity=H,j.setAttribute(S,H)}removeClass(p){return this.attr("class",(""+this.attr("class")).replace(a(p)?RegExp(`(^| )${p}( |$)`):p," ").replace(/ +/g," ").trim())}removeTextOutline(){let p=this.element.querySelector("tspan.highcharts-text-outline");p&&this.safeRemoveChild(p)}safeRemoveChild(p){let S=p.parentNode;S&&S.removeChild(p)}setRadialReference(p){let S=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=p,S&&S.radAttr&&S.animate(this.renderer.getRadialAttr(p,S.radAttr)),this}setTextPath(p,S){S=g(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},S);let j=this.renderer.url,H=this.text||this,Y=H.textPath,{attributes:U,enabled:se}=S;if(p=p||Y&&Y.path,Y&&Y.undo(),p&&se){let w=F(H,"afterModifyTree",X=>{if(p&&se){let G=p.attr("id");G||p.attr("id",G=d());let x={x:0,y:0};E(U.dx)&&(x.dx=U.dx,delete U.dx),E(U.dy)&&(x.dy=U.dy,delete U.dy),H.attr(x),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let N=X.nodes.slice(0);X.nodes.length=0,X.nodes[0]={tagName:"textPath",attributes:b(U,{"text-anchor":U.textAnchor,href:`${j}#${G}`}),children:N}}});H.textPath={path:p,undo:w}}else H.attr({dx:0,dy:0}),delete H.textPath;return this.added&&(H.textCache="",this.renderer.buildText(H)),this}shadow(p){let{renderer:S}=this,j=g(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},f(p)?p:{}),H=S.shadowDefinition(j);return this.attr({filter:p?`url(${S.url}#${H})`:"none"})}show(p=!0){return this.attr({visibility:p?"inherit":"visible"})}"stroke-widthSetter"(p,S,j){this[S]=p,j.setAttribute(S,p)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let j,p=this.getStyle("stroke-width"),S=0;return/px$/.test(p)?S=n(p):""!==p&&(L(j=te.createElementNS(A,"rect"),{width:p,"stroke-width":0}),this.element.parentNode.appendChild(j),S=j.getBBox().width,j.parentNode.removeChild(j)),S}symbolAttr(p){let S=this;C.symbolCustomAttribs.forEach(function(j){S[j]=o(p[j],S[j])}),S.attr({d:S.renderer.symbols[S.symbolName](S.x,S.y,S.width,S.height,S)})}textSetter(p){p!==this.textStr&&(delete this.textPxLength,this.textStr=p,this.added&&this.renderer.buildText(this))}titleSetter(p){let S=this.element,j=S.getElementsByTagName("title")[0]||te.createElementNS(this.SVG_NS,"title");S.insertBefore?S.insertBefore(j,S.firstChild):S.appendChild(j),j.textContent=r(o(p,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let p=this.element;return p.parentNode.appendChild(p),this}translate(p,S){return this.attr({translateX:p,translateY:S})}updateTransform(p="transform"){let{element:S,matrix:j,rotation:H=0,rotationOriginX:Y,rotationOriginY:U,scaleX:se,scaleY:w,translateX:X=0,translateY:G=0}=this,x=["translate("+X+","+G+")"];E(j)&&x.push("matrix("+j.join(",")+")"),H&&(x.push("rotate("+H+" "+o(Y,S.getAttribute("x"),0)+" "+o(U,S.getAttribute("y")||0)+")"),"SPAN"===this.text?.element.tagName&&this.text.attr({rotation:H,rotationOriginX:(Y||0)-this.padding,rotationOriginY:(U||0)-this.padding})),(E(se)||E(w))&&x.push("scale("+o(se,1)+" "+o(w,1)+")"),x.length&&!(this.text||this).textPath&&S.setAttribute(p,x.join(" "))}visibilitySetter(p,S,j){"inherit"===p?j.removeAttribute(S):this[S]!==p&&j.setAttribute(S,p),this[S]=p}xGetter(p){return"circle"===this.element.nodeName&&("x"===p?p="cx":"y"===p&&(p="cy")),this._defaultGetter(p)}zIndexSetter(p,S){let w,X,G,N,K,j=this.renderer,H=this.parentGroup,Y=(H||j).element||j.box,U=this.element,se=Y===j.box,x=!1,R=this.added;if(E(p)?(U.setAttribute("data-z-index",p),this[S]===(p=+p)&&(R=!1)):E(this[S])&&U.removeAttribute("data-z-index"),this[S]=p,R){for((p=this.zIndex)&&H&&(H.handleZ=!0),K=(w=Y.childNodes).length-1;K>=0&&!x;K--)N=!E(G=(X=w[K]).getAttribute("data-z-index")),X!==U&&(p<0&&N&&!se&&!K?(Y.insertBefore(U,w[K]),x=!0):(n(G)<=p||N&&(!E(p)||p>=0))&&(Y.insertBefore(U,w[K+1]),x=!0));x||(Y.insertBefore(U,w[se?3:0]),x=!0)}return x}}return C.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],C.prototype.strokeSetter=C.prototype.fillSetter,C.prototype.yGetter=C.prototype.xGetter,C.prototype.matrixSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.rotationSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.verticalAlignSetter=function(k,p){this[p]=k,this.doTransform=!0},C}),Pe(V,"Core/Renderer/SVG/SVGLabel.js",[V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie){let{defined:re,extend:ve,isNumber:le,merge:fe,pick:pe,removeEvent:J}=ie;class te extends Z{constructor(A,B,F,L,D,I,E,_,b,T){let z;super(A,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=B,this.x=F,this.y=L,this.anchorX=I,this.anchorY=E,this.baseline=b,this.className=T,this.addClass("button"===T?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=A.text(void 0,0,0,_).attr({zIndex:1}),"string"==typeof D&&((z=/^url\((.*?)\)$/.test(D))||this.renderer.symbols[D])&&(this.symbolKey=D),this.bBox=te.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=A.styledMode||z,this.deferredAttr={},this.alignFactor=0}alignSetter(A){let B={left:0,center:.5,right:1}[A];B!==this.alignFactor&&(this.alignFactor=B,this.bBox&&le(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(A,B){this.anchorX=A,this.boxAttr(B,Math.round(A)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(A,B){this.anchorY=A,this.boxAttr(B,A-this.ySetting)}boxAttr(A,B){this.box?this.box.attr(A,B):this.deferredAttr[A]=B}css(A){if(A){let B={};A=fe(A),te.textProps.forEach(F=>{void 0!==A[F]&&(B[F]=A[F],delete A[F])}),this.text.css(B),"fontSize"in B||"fontWeight"in B?this.updateTextPadding():("width"in B||"textOverflow"in B)&&this.updateBoxSize()}return Z.prototype.css.call(this,A)}destroy(){J(this.element,"mouseenter"),J(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),Z.prototype.destroy.call(this)}fillSetter(A,B){A&&(this.needsBox=!0),this.fill=A,this.boxAttr(B,A)}getBBox(A,B){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:F,height:L=0,translateX:D=0,translateY:I=0,width:E=0}=this,_=pe(this.paddingLeft,F),b=B??(this.rotation||0),T={width:E,height:L,x:D+this.bBox.x-_,y:I+this.bBox.y-F+this.baselineOffset};return b&&(T=this.getRotatedBox(T,b)),T}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(A){this.heightSetting=A}onAdd(){this.text.add(this),this.attr({text:pe(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&re(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(A,B){le(A)?A!==this[B]&&(this[B]=A,this.updateTextPadding()):this[B]=void 0}rSetter(A,B){this.boxAttr(B,A)}strokeSetter(A,B){this.stroke=A,this.boxAttr(B,A)}"stroke-widthSetter"(A,B){A&&(this.needsBox=!0),this["stroke-width"]=A,this.boxAttr(B,A)}"text-alignSetter"(A){this.textAlign=A}textSetter(A){void 0!==A&&this.text.attr({text:A}),this.updateTextPadding()}updateBoxSize(){let A,B=this.text,F={},L=this.padding,D=this.bBox=le(this.widthSetting)&&le(this.heightSetting)&&!this.textAlign||!re(B.textStr)?te.emptyBBox:B.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||D.height||0)+2*L;let I=this.renderer.fontMetrics(B);if(this.baselineOffset=L+Math.min((this.text.firstLineMetrics||I).b,D.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!B.textPath){if(!this.box){let E=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();E.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),E.add(this)}A=this.getCrispAdjust(),F.x=A,F.y=(this.baseline?-this.baselineOffset:0)+A,F.width=Math.round(this.width),F.height=Math.round(this.height),this.box.attr(ve(F,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let A=this.text;if(!A.textPath){this.updateBoxSize();let B=this.baseline?0:this.baselineOffset,F=pe(this.paddingLeft,this.padding);re(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(F+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(F!==A.x||B!==A.y)&&(A.attr("x",F),A.hasBoxWidthChanged&&(this.bBox=A.getBBox(!0)),void 0!==B&&A.attr("y",B)),A.x=F,A.y=B}}widthSetter(A){this.widthSetting=le(A)?A:void 0}getPaddedWidth(){let A=this.padding,B=pe(this.paddingLeft,A),F=pe(this.paddingRight,A);return(this.widthSetting||this.bBox.width||0)+B+F}xSetter(A){this.x=A,this.alignFactor&&(A-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(A),this.attr("translateX",this.xSetting)}ySetter(A){this.ySetting=this.y=Math.round(A),this.attr("translateY",this.ySetting)}}return te.emptyBBox={width:0,height:0,x:0,y:0},te.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],te}),Pe(V,"Core/Renderer/SVG/Symbols.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie,isNumber:re,pick:ve}=Z;function le(J,te,$,A,B){let F=[];if(B){let L=B.start||0,D=ve(B.r,$),I=ve(B.r,A||$),E=.001>Math.abs((B.end||0)-L-2*Math.PI),_=(B.end||0)-.001,b=B.innerR,T=ve(B.open,E),z=Math.cos(L),O=Math.sin(L),f=Math.cos(_),a=Math.sin(_),g=ve(B.longArc,_-L-Math.PI<.001?0:1),y=["A",D,I,0,g,ve(B.clockwise,1),J+D*f,te+I*a];y.params={start:L,end:_,cx:J,cy:te},F.push(["M",J+D*z,te+I*O],y),ie(b)&&((y=["A",b,b,0,g,ie(B.clockwise)?1-B.clockwise:0,J+b*z,te+b*O]).params={start:_,end:L,cx:J,cy:te},F.push(T?["M",J+b*f,te+b*a]:["L",J+b*f,te+b*a],y)),T||F.push(["Z"])}return F}function fe(J,te,$,A,B){return B&&B.r?pe(J,te,$,A,B):[["M",J,te],["L",J+$,te],["L",J+$,te+A],["L",J,te+A],["Z"]]}function pe(J,te,$,A,B){let F=B?.r||0;return[["M",J+F,te],["L",J+$-F,te],["A",F,F,0,0,1,J+$,te+F],["L",J+$,te+A-F],["A",F,F,0,0,1,J+$-F,te+A],["L",J+F,te+A],["A",F,F,0,0,1,J,te+A-F],["L",J,te+F],["A",F,F,0,0,1,J+F,te],["Z"]]}return{arc:le,callout:function(J,te,$,A,B){let F=Math.min(B&&B.r||0,$,A),L=F+6,D=B&&B.anchorX,I=B&&B.anchorY||0,E=pe(J,te,$,A,{r:F});if(!re(D)||D<$&&D>0&&I0)return E;if(J+D>$-L)if(I>te+L&&Ite+L&&I0){let _=IA&&D<$-L?E.splice(5,1,["L",D+6,te+A],["L",D,te+A+6],["L",D-6,te+A],["L",J+F,te+A]):I<0&&D>L&&E.splice(1,1,["L",D-6,te],["L",D,te-6],["L",D+6,te],["L",$-F,te]);return E},circle:function(J,te,$,A){return le(J+$/2,te+A/2,$/2,A/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A/2],["L",J+$/2,te+A],["L",J,te+A/2],["Z"]]},rect:fe,roundedRect:pe,square:fe,triangle:function(J,te,$,A){return[["M",J+$/2,te],["L",J+$,te+A],["L",J,te+A],["Z"]]},"triangle-down":function(J,te,$,A){return[["M",J,te],["L",J+$,te],["L",J+$/2,te+A],["Z"]]}}}),Pe(V,"Core/Renderer/SVG/TextBuilder.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{doc:ve,SVG_NS:le,win:fe}=ie,{attr:pe,extend:J,fireEvent:te,isString:$,objectEach:A,pick:B}=re;return class{constructor(F){let L=F.styles;this.renderer=F.renderer,this.svgElement=F,this.width=F.textWidth,this.textLineHeight=L&&L.lineHeight,this.textOutline=L&&L.textOutline,this.ellipsis=!(!L||"ellipsis"!==L.textOverflow),this.noWrap=!(!L||"nowrap"!==L.whiteSpace)}buildSVG(){let F=this.svgElement,L=F.element,D=F.renderer,I=B(F.textStr,"").toString(),E=-1!==I.indexOf("<"),_=L.childNodes,b=!F.added&&D.box,T=[I,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,F.getStyle("font-size"),this.width].join(",");if(T!==F.textCache){F.textCache=T,delete F.actualWidth;for(let z=_.length;z--;)L.removeChild(_[z]);if(E||this.ellipsis||this.width||F.textPath||-1!==I.indexOf(" ")&&(!this.noWrap||//g.test(I))){if(""!==I){b&&b.appendChild(L);let z=new Z(I);this.modifyTree(z.nodes),z.addToDOM(L),this.modifyDOM(),this.ellipsis&&-1!==(L.textContent||"").indexOf("\u2026")&&F.attr("title",this.unescapeEntities(F.textStr||"",["<",">"])),b&&b.removeChild(L)}}else L.appendChild(ve.createTextNode(this.unescapeEntities(I)));$(this.textOutline)&&F.applyTextOutline&&F.applyTextOutline(this.textOutline)}}modifyDOM(){let F,L=this.svgElement,D=pe(L.element,"x");for(L.firstLineMetrics=void 0;(F=L.element.firstChild)&&/^[\s\u200B]*$/.test(F.textContent||" ");)L.element.removeChild(F);[].forEach.call(L.element.querySelectorAll("tspan.highcharts-br"),(b,T)=>{b.nextSibling&&b.previousSibling&&(0===T&&1===b.previousSibling.nodeType&&(L.firstLineMetrics=L.renderer.fontMetrics(b.previousSibling)),pe(b,{dy:this.getLineHeight(b.nextSibling),x:D}))});let I=this.width||0;if(!I)return;let E=(b,T)=>{let z=b.textContent||"",O=z.replace(/([^\^])-/g,"$1- ").split(" "),f=!this.noWrap&&(O.length>1||L.element.childNodes.length>1),a=this.getLineHeight(T),g=0,y=L.actualWidth;if(this.ellipsis)z&&this.truncate(b,z,void 0,0,Math.max(0,I-.8*a),(o,n)=>o.substring(0,n)+"\u2026");else if(f){let o=[],n=[];for(;T.firstChild&&T.firstChild!==b;)n.push(T.firstChild),T.removeChild(T.firstChild);for(;O.length;)O.length&&!this.noWrap&&g>0&&(o.push(b.textContent||""),b.textContent=O.join(" ").replace(/- /g,"-")),this.truncate(b,void 0,O,0===g&&y||0,I,(r,l)=>O.slice(0,l).join(" ").replace(/- /g,"-")),y=L.actualWidth,g++;n.forEach(r=>{T.insertBefore(r,b)}),o.forEach(r=>{T.insertBefore(ve.createTextNode(r),b);let l=ve.createElementNS(le,"tspan");l.textContent="\u200b",pe(l,{dy:a,x:D}),T.insertBefore(l,b)})}},_=b=>{[].slice.call(b.childNodes).forEach(T=>{T.nodeType===fe.Node.TEXT_NODE?E(T,b):(-1!==T.className.baseVal.indexOf("highcharts-br")&&(L.actualWidth=0),_(T))})};_(L.element)}getLineHeight(F){let L=F.nodeType===fe.Node.TEXT_NODE?F.parentElement:F;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(L||this.svgElement.element).h}modifyTree(F){let L=(D,I)=>{let{attributes:E={},children:_,style:b={},tagName:T}=D,z=this.renderer.styledMode;if("b"===T||"strong"===T?z?E.class="highcharts-strong":b.fontWeight="bold":("i"===T||"em"===T)&&(z?E.class="highcharts-emphasized":b.fontStyle="italic"),b&&b.color&&(b.fill=b.color),"br"===T){E.class="highcharts-br",D.textContent="\u200b";let O=F[I+1];O&&O.textContent&&(O.textContent=O.textContent.replace(/^ +/gm,""))}else"a"===T&&_&&_.some(O=>"#text"===O.tagName)&&(D.children=[{children:_,tagName:"tspan"}]);"#text"!==T&&"a"!==T&&(D.tagName="tspan"),J(D,{attributes:E,style:b}),_&&_.filter(O=>"#text"!==O.tagName).forEach(L)};F.forEach(L),te(this.svgElement,"afterModifyTree",{nodes:F})}truncate(F,L,D,I,E,_){let b,T,z=this.svgElement,{rotation:O}=z,f=[],a=D?1:0,g=(L||D||"").length,y=g,o=function(n,r){let l=r||n,d=F.parentNode;if(d&&void 0===f[l]&&d.getSubStringLength)try{f[l]=I+d.getSubStringLength(0,D?l+1:l)}catch{}return f[l]};if(z.rotation=0,I+(T=o(F.textContent.length))>E){for(;a<=g;)y=Math.ceil((a+g)/2),D&&(b=_(D,y)),T=o(y,b&&b.length-1),a===g?a=g+1:T>E?g=y-1:a=y;0===g?F.textContent="":L&&g===L.length-1||(F.textContent=b||_(L||D,y))}D&&D.splice(0,y),z.actualWidth=T,z.rotation=O}unescapeEntities(F,L){return A(this.renderer.escapes,function(D,I){L&&-1!==L.indexOf(D)||(F=F.toString().replace(RegExp(D,"g"),I))}),F}}}),Pe(V,"Core/Renderer/SVG/SVGRenderer.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGLabel.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Renderer/SVG/TextBuilder.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let $,{charts:A,deg2rad:B,doc:F,isFirefox:L,isMS:D,isWebKit:I,noop:E,SVG_NS:_,symbolSizes:b,win:T}=re,{addEvent:z,attr:O,createElement:f,css:a,defined:g,destroyObjectProperties:y,extend:o,isArray:n,isNumber:r,isObject:l,isString:d,merge:C,pick:k,pInt:p,replaceNested:S,uniqueKey:j}=te;class H{constructor(U,se,w,X,G,x,N){let R,K,q=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),he=q.element;N||q.css(this.getStyle(X||{})),U.appendChild(he),O(U,"dir","ltr"),-1===U.innerHTML.indexOf("xmlns")&&O(he,"xmlns",this.SVG_NS),this.box=he,this.boxWrapper=q,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(F.createTextNode("Created with Highcharts 11.4.0")),this.defs=this.createElement("defs").add(),this.allowHTML=x,this.forExport=G,this.styledMode=N,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=q.getStyle("font-size"),this.setSize(se,w,!1),L&&U.getBoundingClientRect&&((R=function(){a(U,{left:0,top:0}),K=U.getBoundingClientRect(),a(U,{left:Math.ceil(K.left)-K.left+"px",top:Math.ceil(K.top)-K.top+"px"})})(),this.unSubPixelFix=z(T,"resize",R))}definition(U){return new Z([U]).addToDOM(this.defs.element)}getReferenceURL(){if((L||I)&&F.getElementsByTagName("base").length){if(!g($)){let U=j(),se=new Z([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:U},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${U})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(F.body);a(se,{position:"fixed",top:0,left:0,zIndex:9e5});let w=F.elementFromPoint(6,6);$="hitme"===(w&&w.id),F.body.removeChild(se)}if($)return S(T.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(U){return this.style=o({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},U),this.style}setStyle(U){this.boxWrapper.css(this.getStyle(U))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let U=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),y(this.gradients||{}),this.gradients=null,this.defs=U.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(U){return new this.Element(this,U)}getRadialAttr(U,se){return{cx:U[0]-U[2]/2+(se.cx||0)*U[2],cy:U[1]-U[2]/2+(se.cy||0)*U[2],r:(se.r||0)*U[2]}}shadowDefinition(U){let se=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(U).map(X=>`${X}-${U[X]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),w=C({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},U);return this.defs.element.querySelector(`#${se}`)||this.definition({tagName:"filter",attributes:{id:se,filterUnits:w.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:w.offsetX,dy:w.offsetY,"flood-color":w.color,"flood-opacity":Math.min(5*w.opacity,1),stdDeviation:w.width/2}}]}),se}buildText(U){new J(U).buildSVG()}getContrast(U){let se=ie.parse(U).rgba.map(X=>{let G=X/255;return G<=.03928?G/12.92:Math.pow((G+.055)/1.055,2.4)}),w=.2126*se[0]+.7152*se[1]+.0722*se[2];return 1.05/(w+.05)>(w+.05)/.05?"#FFFFFF":"#000000"}button(U,se,w,X,G={},x,N,R,K,q){let he,me,Ce,Se=this.label(U,se,w,K,void 0,void 0,q,void 0,"button"),Oe=this.styledMode,Ae=G.states||{},Fe=0;delete(G=C(G)).states;let oe=C({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},G.style);delete G.style;let ee=Z.filterUserAttributes(G);return Se.attr(C({padding:8,r:2},ee)),Oe||(ee=C({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},ee),he=(x=C(ee,{fill:"#e6e6e6"},Z.filterUserAttributes(x||Ae.hover||{}))).style,delete x.style,me=(N=C(ee,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},Z.filterUserAttributes(N||Ae.select||{}))).style,delete N.style,Ce=(R=C(ee,{style:{color:"#cccccc"}},Z.filterUserAttributes(R||Ae.disabled||{}))).style,delete R.style),z(Se.element,D?"mouseover":"mouseenter",function(){3!==Fe&&Se.setState(1)}),z(Se.element,D?"mouseout":"mouseleave",function(){3!==Fe&&Se.setState(Fe)}),Se.setState=function(de){if(1!==de&&(Se.state=Fe=de),Se.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][de||0]),!Oe){Se.attr([ee,x,N,R][de||0]);let ye=[oe,he,me,Ce][de||0];l(ye)&&Se.css(ye)}},!Oe&&(Se.attr(ee).css(o({cursor:"default"},oe)),q&&Se.text.css({pointerEvents:"none"})),Se.on("touchstart",de=>de.stopPropagation()).on("click",function(de){3!==Fe&&X.call(Se,de)})}crispLine(U,se,w="round"){let X=U[0],G=U[1];return g(X[1])&&X[1]===G[1]&&(X[1]=G[1]=Math[w](X[1])-se%2/2),g(X[2])&&X[2]===G[2]&&(X[2]=G[2]=Math[w](X[2])+se%2/2),U}path(U){let se=this.styledMode?{}:{fill:"none"};return n(U)?se.d=U:l(U)&&o(se,U),this.createElement("path").attr(se)}circle(U,se,w){let X=l(U)?U:void 0===U?{}:{x:U,y:se,r:w},G=this.createElement("circle");return G.xSetter=G.ySetter=function(x,N,R){R.setAttribute("c"+N,x)},G.attr(X)}arc(U,se,w,X,G,x){let N;l(U)?(se=(N=U).y,w=N.r,X=N.innerR,G=N.start,x=N.end,U=N.x):N={innerR:X,start:G,end:x};let R=this.symbol("arc",U,se,w,w,N);return R.r=w,R}rect(U,se,w,X,G,x){let N=l(U)?U:void 0===U?{}:{x:U,y:se,r:G,width:Math.max(w||0,0),height:Math.max(X||0,0)},R=this.createElement("rect");return this.styledMode||(void 0!==x&&(N["stroke-width"]=x,o(N,R.crisp(N))),N.fill="none"),R.rSetter=function(K,q,he){R.r=K,O(he,{rx:K,ry:K})},R.rGetter=function(){return R.r||0},R.attr(N)}roundedRect(U){return this.symbol("roundedRect").attr(U)}setSize(U,se,w){this.width=U,this.height=se,this.boxWrapper.animate({width:U,height:se},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:k(w,!0)?void 0:0}),this.alignElements()}g(U){let se=this.createElement("g");return U?se.attr({class:"highcharts-"+U}):se}image(U,se,w,X,G,x){let N={preserveAspectRatio:"none"};r(se)&&(N.x=se),r(w)&&(N.y=w),r(X)&&(N.width=X),r(G)&&(N.height=G);let R=this.createElement("image").attr(N),K=function(q){R.attr({href:U}),x.call(R,q)};if(x){R.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let q=new T.Image;z(q,"load",K),q.src=U,q.complete&&K({})}else R.attr({href:U});return R}symbol(U,se,w,X,G,x){let N,R,K,q,he=this,me=/^url\((.*?)\)$/,Ce=me.test(U),Se=!Ce&&(this.symbols[U]?U:"circle"),Oe=Se&&this.symbols[Se];if(Oe)"number"==typeof se&&(R=Oe.call(this.symbols,Math.round(se||0),Math.round(w||0),X||0,G||0,x)),N=this.path(R),he.styledMode||N.attr("fill","none"),o(N,{symbolName:Se||void 0,x:se,y:w,width:X,height:G}),x&&o(N,x);else if(Ce){K=U.match(me)[1];let Ae=N=this.image(K);Ae.imgwidth=k(x&&x.width,b[K]&&b[K].width),Ae.imgheight=k(x&&x.height,b[K]&&b[K].height),q=Fe=>Fe.attr({width:Fe.width,height:Fe.height}),["width","height"].forEach(Fe=>{Ae[`${Fe}Setter`]=function(oe,ee){this[ee]=oe;let{alignByTranslate:de,element:ye,width:Te,height:_e,imgwidth:Me,imgheight:Ee}=this,Xe="width"===ee?Me:Ee,Ze=1;x&&"within"===x.backgroundSize&&Te&&_e&&Me&&Ee?(Ze=Math.min(Te/Me,_e/Ee),O(ye,{width:Math.round(Me*Ze),height:Math.round(Ee*Ze)})):ye&&Xe&&ye.setAttribute(ee,Xe),!de&&Me&&Ee&&this.translate(((Te||0)-Me*Ze)/2,((_e||0)-Ee*Ze)/2)}}),g(se)&&Ae.attr({x:se,y:w}),Ae.isImg=!0,g(Ae.imgwidth)&&g(Ae.imgheight)?q(Ae):(Ae.attr({width:0,height:0}),f("img",{onload:function(){let Fe=A[he.chartIndex];0===this.width&&(a(this,{position:"absolute",top:"-999em"}),F.body.appendChild(this)),b[K]={width:this.width,height:this.height},Ae.imgwidth=this.width,Ae.imgheight=this.height,Ae.element&&q(Ae),this.parentNode&&this.parentNode.removeChild(this),he.imgCount--,he.imgCount||!Fe||Fe.hasLoaded||Fe.onload()},src:K}),this.imgCount++)}return N}clipRect(U,se,w,X){return this.rect(U,se,w,X,0)}text(U,se,w,X){let G={};if(X&&(this.allowHTML||!this.forExport))return this.html(U,se,w);G.x=Math.round(se||0),w&&(G.y=Math.round(w)),g(U)&&(G.text=U);let x=this.createElement("text").attr(G);return X&&(!this.forExport||this.allowHTML)||(x.xSetter=function(N,R,K){let q=K.getElementsByTagName("tspan"),he=K.getAttribute(R);for(let Ce,me=0;meU.align())}}return o(H.prototype,{Element:le,SVG_NS:_,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:pe,draw:E}),ve.registerRendererType("svg",H,!0),H}),Pe(V,"Core/Renderer/HTML/HTMLElement.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Globals.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{composed:le}=ie,{attr:fe,css:pe,createElement:J,defined:te,extend:$,pInt:A,pushUnique:B}=ve;function F(E,_,b){let T=this.div?.style||b.style;re.prototype[`${_}Setter`].call(this,E,_,b),T&&(T[_]=E)}let L=(E,_)=>{if(!E.div){let b=fe(E.element,"class"),T=E.css,z=J("div",b?{className:b}:void 0,{position:"absolute",left:`${E.translateX||0}px`,top:`${E.translateY||0}px`,...E.styles,display:E.display,opacity:E.opacity,visibility:E.visibility},E.parentGroup?.div||_);E.classSetter=(O,f,a)=>{a.setAttribute("class",O),z.className=O},E.translateXSetter=E.translateYSetter=(O,f)=>{E[f]=O,z.style["translateX"===f?"left":"top"]=`${O}px`,E.doTransform=!0},E.opacitySetter=E.visibilitySetter=F,E.css=O=>(T.call(E,O),O.cursor&&(z.style.cursor=O.cursor),O.pointerEvents&&(z.style.pointerEvents=O.pointerEvents),E),E.on=function(){return re.prototype.on.apply({element:z,onEvents:E.onEvents},arguments),E},E.div=z}return E.div};class D extends re{static compose(_){B(le,this.compose)&&(_.prototype.html=function(b,T,z){return new D(this,"span").attr({text:b,x:Math.round(T),y:Math.round(z)})})}constructor(_,b){super(_,b),this.css({position:"absolute",..._.styledMode?{}:{fontFamily:_.style.fontFamily,fontSize:_.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(_,b,T){this.xCorr=-_*T,this.yCorr=-b}css(_){let b,{element:T}=this,z="SPAN"===T.tagName&&_&&"width"in _,O=z&&_.width;return z&&(delete _.width,this.textWidth=A(O)||void 0,b=!0),"ellipsis"===_?.textOverflow&&(_.whiteSpace="nowrap",_.overflow="hidden"),$(this.styles,_),pe(T,_),b&&this.updateTransform(),this}htmlGetBBox(){let{element:_}=this;return{x:_.offsetLeft,y:_.offsetTop,width:_.offsetWidth,height:_.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:_,renderer:b,rotation:T,rotationOriginX:z,rotationOriginY:O,styles:f,textAlign:a="left",textWidth:g,translateX:y=0,translateY:o=0,x:n=0,y:r=0}=this,l=f.whiteSpace;if(pe(_,{marginLeft:`${y}px`,marginTop:`${o}px`}),"SPAN"===_.tagName){let k,d=[T,a,_.innerHTML,g,this.textAlign].join(","),C=-1*this.parentGroup?.padding||0,p=!1;if(g!==this.oldTextWidth){let U=this.textPxLength?this.textPxLength:(pe(_,{width:"",whiteSpace:l||"nowrap"}),_.offsetWidth),se=g||0;(se>this.oldTextWidth||U>se)&&(/[ \-]/.test(_.textContent||_.innerText)||"ellipsis"===_.style.textOverflow)&&(pe(_,{width:U>se||T?g+"px":"auto",display:"block",whiteSpace:l||"normal"}),this.oldTextWidth=g,p=!0)}this.hasBoxWidthChanged=p,d!==this.cTT&&(k=b.fontMetrics(_).b,te(T)&&(T!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(T,C,C),this.getSpanCorrection(!te(T)&&this.textPxLength||_.offsetWidth,k,{left:0,center:.5,right:1}[a]));let{xCorr:S=0,yCorr:j=0}=this;pe(_,{left:`${n+S}px`,top:`${r+j}px`,transformOrigin:`${(z??n)-S-n-C}px ${(O??r)-j-r-C}px`}),this.cTT=d,this.oldRotation=T,this.oldAlign=a}}setSpanRotation(_,b,T){pe(this.element,{transform:`rotate(${_}deg)`,transformOrigin:`${b}% ${T}px`})}add(_){let b,T=this.renderer.box.parentNode,z=[];if(this.parentGroup=_,_&&!(b=_.div)){let O=_;for(;O;)z.push(O),O=O.parentGroup;for(let f of z.reverse())b=L(f,T)}return(b||T).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(_){_!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,Z.setElementHTML(this.element,_??""),this.textStr=_,this.doTransform=!0)}alignSetter(_){this.alignValue=this.textAlign=_,this.doTransform=!0}xSetter(_,b){this[b]=_,this.doTransform=!0}}let I=D.prototype;return I.visibilitySetter=I.opacitySetter=F,I.ySetter=I.rotationSetter=I.rotationOriginXSetter=I.rotationOriginYSetter=I.xSetter,D}),Pe(V,"Core/Axis/AxisDefaults.js",[],function(){var Z,ie;return(ie=Z||(Z={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},ie.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:re}=this.axis.chart;return re(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Z}),Pe(V,"Core/Foundation.js",[V["Core/Utilities.js"]],function(Z){var ie;let{addEvent:re,isFunction:ve,objectEach:le,removeEvent:fe}=Z;return(ie||(ie={})).registerEventOptions=function(pe,J){pe.eventOptions=pe.eventOptions||{},le(J.events,function(te,$){pe.eventOptions[$]!==te&&(pe.eventOptions[$]&&(fe(pe,$,pe.eventOptions[$]),delete pe.eventOptions[$]),ve(te)&&(pe.eventOptions[$]=te,re(pe,$,te,{order:0})))})},ie}),Pe(V,"Core/Axis/Tick.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{deg2rad:ve}=ie,{clamp:le,correctFloat:fe,defined:pe,destroyObjectProperties:J,extend:te,fireEvent:$,isNumber:A,merge:B,objectEach:F,pick:L}=re;return class{constructor(D,I,E,_,b){this.isNew=!0,this.isNewLabel=!0,this.axis=D,this.pos=I,this.type=E||"",this.parameters=b||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,$(this,"init"),E||_||this.addLabel()}addLabel(){let l,d,C,D=this,I=D.axis,E=I.options,_=I.chart,b=I.categories,T=I.logarithmic,z=I.names,O=D.pos,f=L(D.options&&D.options.labels,E.labels),a=I.tickPositions,g=O===a[0],y=O===a[a.length-1],o=(!f.step||1===f.step)&&1===I.tickInterval,n=a.info,r=D.label,k=this.parameters.category||(b?L(b[O],z[O],O):O);T&&A(k)&&(k=fe(T.lin2log(k))),I.dateTime&&(n?l=(d=_.time.resolveDTLFormat(E.dateTimeLabelFormats[!E.grid&&n.higherRanks[O]||n.unitName])).main:A(k)&&(l=I.dateTime.getXDateFormat(k,E.dateTimeLabelFormats||{}))),D.isFirst=g,D.isLast=y;let p={axis:I,chart:_,dateTimeLabelFormat:l,isFirst:g,isLast:y,pos:O,tick:D,tickPositionInfo:n,value:k};$(this,"labelFormat",p);let S=Y=>f.formatter?f.formatter.call(Y,Y):f.format?(Y.text=I.defaultLabelFormatter.call(Y),Z.format(f.format,Y,_)):I.defaultLabelFormatter.call(Y),j=S.call(p,p),H=d&&d.list;D.shortenLabel=H?function(){for(C=0;C0&&_+g*y>O&&(k=Math.round((b-_)/Math.cos(a*ve))):(d=_-g*y,C=_+(1-g)*y,dO&&(r=O-D.x+r*g,l=-1),(r=Math.min(o,r))r||I.autoRotation&&(f.styles||{}).width)&&(k=r)),k&&(this.shortenLabel?this.shortenLabel():(n.width=Math.floor(k)+"px",(E.style||{}).textOverflow||(n.textOverflow="ellipsis"),f.css(n)))}moveLabel(D,I){let z,E=this,_=E.label,b=E.axis,T=!1;_&&_.textStr===D?(E.movedLabel=_,T=!0,delete E.label):F(b.ticks,function(O){T||O.isNew||O===E||!O.label||O.label.textStr!==D||(E.movedLabel=O.label,T=!0,O.labelPos=E.movedLabel.xy,delete O.label)}),!T&&(E.labelPos||_)&&(z=E.labelPos||_.xy,E.movedLabel=E.createLabel(D,I,z),E.movedLabel&&E.movedLabel.attr({opacity:0}))}render(D,I,E){let _=this.axis,b=_.horiz,T=this.pos,z=L(this.tickmarkOffset,_.tickmarkOffset),O=this.getPosition(b,T,z,I),f=O.x,a=O.y,g=_.pos,y=g+_.len,o=b&&f===y||!b&&a===g?-1:1,n=b?f:a;!_.chart.polar&&this.isNew&&(fe(n)y)&&(E=0);let r=L(E,this.label&&this.label.newOpacity,1);E=L(E,1),this.isActive=!0,this.renderGridLine(I,E,o),this.renderMark(O,E,o),this.renderLabel(O,I,r,D),this.isNew=!1,$(this,"afterRender")}renderGridLine(D,I,E){let y,_=this.axis,b=_.options,T={},z=this.pos,O=this.type,f=L(this.tickmarkOffset,_.tickmarkOffset),a=_.chart.renderer,g=this.gridLine,o=b.gridLineWidth,n=b.gridLineColor,r=b.gridLineDashStyle;"minor"===this.type&&(o=b.minorGridLineWidth,n=b.minorGridLineColor,r=b.minorGridLineDashStyle),g||(_.chart.styledMode||(T.stroke=n,T["stroke-width"]=o||0,T.dashstyle=r),O||(T.zIndex=1),D&&(I=0),this.gridLine=g=a.path().attr(T).addClass("highcharts-"+(O?O+"-":"")+"grid-line").add(_.gridGroup)),g&&(y=_.getPlotLinePath({value:z+f,lineWidth:g.strokeWidth()*E,force:"pass",old:D,acrossPanes:!1}))&&g[D||this.isNew?"attr":"animate"]({d:y,opacity:I})}renderMark(D,I,E){let _=this.axis,b=_.options,T=_.chart.renderer,z=this.type,O=_.tickSize(z?z+"Tick":"tick"),f=D.x,a=D.y,g=L(b["minor"!==z?"tickWidth":"minorTickWidth"],!z&&_.isXAxis?1:0),y=b["minor"!==z?"tickColor":"minorTickColor"],o=this.mark,n=!o;O&&(_.opposite&&(O[0]=-O[0]),o||(this.mark=o=T.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(_.axisGroup),_.chart.styledMode||o.attr({stroke:y,"stroke-width":g})),o[n?"attr":"animate"]({d:this.getMarkPath(f,a,O[0],o.strokeWidth()*E,_.horiz,T),opacity:I}))}renderLabel(D,I,E,_){let b=this.axis,T=b.horiz,z=b.options,O=this.label,f=z.labels,a=f.step,g=L(this.tickmarkOffset,b.tickmarkOffset),y=D.x,o=D.y,n=!0;O&&A(y)&&(O.xy=D=this.getLabelPosition(y,o,O,T,f,g,_,a),this.isFirst&&!this.isLast&&!z.showFirstLabel||this.isLast&&!this.isFirst&&!z.showLastLabel?n=!1:!T||f.step||f.rotation||I||0===E||this.handleOverflow(D),a&&_%a&&(n=!1),n&&A(D.y)?(D.opacity=E,O[this.isNewLabel?"attr":"animate"](D).show(!0),this.isNewLabel=!1):(O.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let D=this.label,I=this.axis;D&&!this.isNew&&(D.animate({opacity:0},void 0,D.destroy),delete this.label),I.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),Pe(V,"Core/Axis/Axis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/AxisDefaults.js"],V["Core/Color/Color.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Axis/Tick.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{animObject:te}=Z,{xAxis:$,yAxis:A}=ie,{defaultOptions:B}=ve,{registerEventOptions:F}=le,{deg2rad:L}=fe,{arrayMax:D,arrayMin:I,clamp:E,correctFloat:_,defined:b,destroyObjectProperties:T,erase:z,error:O,extend:f,fireEvent:a,getClosestDistance:g,insertItem:y,isArray:o,isNumber:n,isString:r,merge:l,normalizeTickInterval:d,objectEach:C,pick:k,relativeLength:p,removeEvent:S,splat:j,syncTimeout:H}=J,Y=(se,w)=>d(w,void 0,void 0,k(se.options.allowDecimals,w<.5||void 0!==se.tickAmount),!!se.tickAmount);f(B,{xAxis:$,yAxis:l($,A)});class U{constructor(w,X,G){this.init(w,X,G)}init(w,X,G=this.coll){let x="xAxis"===G,N=this.isZAxis||(w.inverted?!x:x);this.chart=w,this.horiz=N,this.isXAxis=x,this.coll=G,a(this,"init",{userOptions:X}),this.opposite=k(X.opposite,this.opposite),this.side=k(X.side,this.side,N?this.opposite?0:2:this.opposite?1:3),this.setOptions(X);let R=this.options,K=R.labels,q=R.type;this.userOptions=X,this.minPixelPadding=0,this.reversed=k(R.reversed,this.reversed),this.visible=R.visible,this.zoomEnabled=R.zoomEnabled,this.hasNames="category"===q||!0===R.categories,this.categories=o(R.categories)&&R.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=b(R.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=R.minRange||R.maxZoom,this.range=R.range,this.offset=R.offset||0,this.max=void 0,this.min=void 0;let he=k(R.crosshair,j(w.options.tooltip.crosshairs)[x?0:1]);this.crosshair=!0===he?{}:he,-1===w.axes.indexOf(this)&&(x?w.axes.splice(w.xAxis.length,0,this):w.axes.push(this),y(this,w[this.coll])),w.orderItems(this.coll),this.series=this.series||[],w.inverted&&!this.isZAxis&&x&&!b(this.reversed)&&(this.reversed=!0),this.labelRotation=n(K.rotation)?K.rotation:void 0,F(this,R),a(this,"afterInit")}setOptions(w){this.options=l(this.horiz?{labels:{autoRotation:[-45]},margin:15}:{title:{rotation:90*this.side}},B[this.coll],w),a(this,"afterSetOptions",{userOptions:w})}defaultLabelFormatter(){let Se,Oe,w=this.axis,{numberFormatter:X}=this.chart,G=n(this.value)?this.value:NaN,x=w.chart.time,N=w.categories,R=this.dateTimeLabelFormat,K=B.lang,q=K.numericSymbols,he=K.numericSymbolMagnitude||1e3,me=w.logarithmic?Math.abs(G):w.tickInterval,Ce=q&&q.length;if(N)Oe=`${this.value}`;else if(R)Oe=x.dateFormat(R,G);else if(Ce&&q&&me>=1e3)for(;Ce--&&void 0===Oe;)me>=(Se=Math.pow(he,Ce+1))&&10*G%Se==0&&null!==q[Ce]&&0!==G&&(Oe=X(G/Se,-1)+q[Ce]);return void 0===Oe&&(Oe=Math.abs(G)>=1e4?X(G,-1):X(G,-1,void 0,"")),Oe}getSeriesExtremes(){let w,X=this;a(this,"getSeriesExtremes",null,function(){X.hasVisibleSeries=!1,X.dataMin=X.dataMax=X.threshold=void 0,X.softThreshold=!X.isXAxis,X.series.forEach(G=>{if(G.reserveSpace()){let N,K,q,x=G.options,R=x.threshold;if(X.hasVisibleSeries=!0,X.positiveValuesOnly&&0>=(R||0)&&(R=void 0),X.isXAxis)(N=G.xData)&&N.length&&(N=X.logarithmic?N.filter(he=>he>0):N,K=(w=G.getXExtremes(N)).min,q=w.max,n(K)||K instanceof Date||(N=N.filter(n),K=(w=G.getXExtremes(N)).min,q=w.max),N.length&&(X.dataMin=Math.min(k(X.dataMin,K),K),X.dataMax=Math.max(k(X.dataMax,q),q)));else{let he=G.applyExtremes();n(he.dataMin)&&(K=he.dataMin,X.dataMin=Math.min(k(X.dataMin,K),K)),n(he.dataMax)&&(q=he.dataMax,X.dataMax=Math.max(k(X.dataMax,q),q)),b(R)&&(X.threshold=R),(!x.softThreshold||X.positiveValuesOnly)&&(X.softThreshold=!1)}}})}),a(this,"afterGetSeriesExtremes")}translate(w,X,G,x,N,R){let K=this.linkedParent||this,q=x&&K.old?K.old.min:K.min;if(!n(q))return NaN;let he=K.minPixelPadding,me=(K.isOrdinal||K.brokenAxis?.hasBreaks||K.logarithmic&&N)&&K.lin2val,Ce=1,Se=0,Oe=x&&K.old?K.old.transA:K.transA,Ae=0;if(Oe||(Oe=K.transA),G&&(Ce*=-1,Se=K.len),K.reversed&&(Ce*=-1,Se-=Ce*(K.sector||K.len)),X)Ae=(w=w*Ce+Se-he)/Oe+q,me&&(Ae=K.lin2val(Ae));else{me&&(w=K.val2lin(w));let Fe=Ce*(w-q)*Oe;Ae=(K.isRadial?Fe:_(Fe))+Se+Ce*he+(n(R)?Oe*R:0)}return Ae}toPixels(w,X){return this.translate(w,!1,!this.horiz,void 0,!0)+(X?0:this.pos)}toValue(w,X){return this.translate(w-(X?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(w){let Ae,Fe,oe,ee,de,X=this,G=X.chart,x=X.left,N=X.top,R=w.old,K=w.value,q=w.lineWidth,he=R&&G.oldChartHeight||G.chartHeight,me=R&&G.oldChartWidth||G.chartWidth,Ce=X.transB,Se=w.translatedValue,Oe=w.force;function ye(_e,Me,Ee){return"pass"!==Oe&&(_eEe)&&(Oe?_e=E(_e,Me,Ee):de=!0),_e}let Te={value:K,lineWidth:q,old:R,force:Oe,acrossPanes:w.acrossPanes,translatedValue:Se};return a(this,"getPlotLinePath",Te,function(_e){Ae=oe=Math.round((Se=E(Se=k(Se,X.translate(K,void 0,void 0,R)),-1e5,1e5))+Ce),Fe=ee=Math.round(he-Se-Ce),n(Se)?X.horiz?(Fe=N,ee=he-X.bottom+(G.scrollablePixelsY||0),Ae=oe=ye(Ae,x,x+X.width)):(Ae=x,oe=me-X.right+(G.scrollablePixelsX||0),Fe=ee=ye(Fe,N,N+X.height)):(de=!0,Oe=!1),_e.path=de&&!Oe?void 0:G.renderer.crispLine([["M",Ae,Fe],["L",oe,ee]],q||1)}),Te.path}getLinearTickPositions(w,X,G){let x,N,R,K=_(Math.floor(X/w)*w),q=_(Math.ceil(G/w)*w),he=[];if(_(K+w)===K&&(R=20),this.single)return[X];for(x=K;x<=q&&(he.push(x),(x=_(x+w,R))!==N);)N=x;return he}getMinorTickInterval(){let{minorTicks:w,minorTickInterval:X}=this.options;return!0===w?k(X,"auto"):!1!==w?X:void 0}getMinorTickPositions(){let he,w=this.options,X=this.tickPositions,G=this.minorTickInterval,x=this.pointRangePadding||0,N=(this.min||0)-x,R=(this.max||0)+x,K=R-N,q=[];if(K&&K/G(me.xIncrement?me.xData?.slice(0,2):me.xData)||[]))||0),this.dataMax-this.dataMin)),n(G)&&n(x)&&n(N)&&G-x=N,R=(N-G+x)/2,q=[x-R,k(w.min,x-R)],K&&(q[2]=X?X.log2lin(this.dataMin):this.dataMin),he=[(x=D(q))+N,k(w.max,x+N)],K&&(he[2]=X?X.log2lin(this.dataMax):this.dataMax),(G=I(he))-xx-N),w=g([G]))}return w&&X?Math.min(w,X):w||X}nameToX(w){let N,X=o(this.options.categories),G=X?this.categories:this.names,x=w.options.x;return w.series.requireSorting=!1,b(x)||(x=this.options.uniqueNames&&G?X?G.indexOf(w.name):k(G.keys[w.name],-1):w.series.autoIncrement()),-1===x?!X&&G&&(N=G.length):N=x,void 0!==N?(this.names[N]=w.name,this.names.keys[w.name]=N):w.x&&(N=w.x),N}updateNames(){let w=this,X=this.names;X.length>0&&(Object.keys(X.keys).forEach(function(G){delete X.keys[G]}),X.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(G=>{G.xIncrement=null,(!G.points||G.isDirtyData)&&(w.max=Math.max(w.max,G.xData.length-1),G.processData(),G.generatePoints()),G.data.forEach(function(x,N){let R;x?.options&&void 0!==x.name&&void 0!==(R=w.nameToX(x))&&R!==x.x&&(x.x=R,G.xData[N]=R)})}))}setAxisTranslation(){let K,me,w=this,X=w.max-w.min,G=w.linkedParent,x=!!w.categories,N=w.isXAxis,R=w.axisPointRange||0,q=0,he=0,Ce=w.transA;(N||x||R)&&(K=w.getClosest(),G?(q=G.minPointOffset,he=G.pointRangePadding):w.series.forEach(function(Se){let Oe=x?1:N?k(Se.options.pointRange,K,0):w.axisPointRange||0,Ae=Se.options.pointPlacement;if(R=Math.max(R,Oe),!w.single||x){let Fe=Se.is("xrange")?!N:N;q=Math.max(q,Fe&&r(Ae)?0:Oe/2),he=Math.max(he,Fe&&"on"===Ae?0:Oe)}}),me=w.ordinal&&w.ordinal.slope&&K?w.ordinal.slope/K:1,w.minPointOffset=q*=me,w.pointRangePadding=he*=me,w.pointRange=Math.min(R,w.single&&x?1:X),N&&K&&(w.closestPointRange=K)),w.translationSlope=w.transA=Ce=w.staticScale||w.len/(X+he||1),w.transB=w.horiz?w.left:w.bottom,w.minPixelPadding=Ce*q,a(this,"afterSetAxisTranslation")}minFromRange(){let{max:w,min:X}=this;return n(w)&&n(X)&&w-X||void 0}setTickInterval(w){let Ee,Ze,lt,Qe,st,{categories:X,chart:G,dataMax:x,dataMin:N,dateTime:R,isXAxis:K,logarithmic:q,options:he,softThreshold:me}=this,Ce=n(this.threshold)?this.threshold:void 0,Se=this.minRange||0,{ceiling:Oe,floor:Ae,linkedTo:Fe,softMax:oe,softMin:ee}=he,de=n(Fe)&&G[this.coll]?.[Fe],ye=he.tickPixelInterval,Te=he.maxPadding,_e=he.minPadding,Me=0,Xe=n(he.tickInterval)&&he.tickInterval>=0?he.tickInterval:void 0;if(R||X||de||this.getTickAmount(),Qe=k(this.userMin,he.min),st=k(this.userMax,he.max),de?(this.linkedParent=de,Ee=de.getExtremes(),this.min=k(Ee.min,Ee.dataMin),this.max=k(Ee.max,Ee.dataMax),he.type!==de.options.type&&O(11,!0,G)):(me&&b(Ce)&&n(x)&&n(N)&&(N>=Ce?(Ze=Ce,_e=0):x<=Ce&&(lt=Ce,Te=0)),this.min=k(Qe,Ze,N),this.max=k(st,lt,x)),n(this.max)&&n(this.min)&&(q&&(this.positiveValuesOnly&&!w&&0>=Math.min(this.min,k(N,this.min))&&O(10,!0,G),this.min=_(q.log2lin(this.min),16),this.max=_(q.log2lin(this.max),16)),this.range&&n(N)&&(this.userMin=this.min=Qe=Math.max(N,this.minFromRange()||0),this.userMax=st=this.max,this.range=void 0)),a(this,"foundExtremes"),this.adjustForMinRange(),n(this.min)&&n(this.max)){if(!n(this.userMin)&&n(ee)&&eethis.max&&(this.max=st=oe),X||this.axisPointRange||this.stacking?.usePercentage||de||!(Me=this.max-this.min)||(!b(Qe)&&_e&&(this.min-=Me*_e),b(st)||!Te||(this.max+=Me*Te)),!n(this.userMin)&&n(Ae)&&(this.min=Math.max(this.min,Ae)),!n(this.userMax)&&n(Oe)&&(this.max=Math.min(this.max,Oe)),me&&n(N)&&n(x)){let pt=Ce||0;!b(Qe)&&this.min=pt?this.min=he.minRange?Math.min(pt,this.max-Se):pt:!b(st)&&this.max>pt&&x<=pt&&(this.max=he.minRange?Math.max(pt,this.min+Se):pt)}!G.polar&&this.min>this.max&&(b(he.min)?this.max=this.min:b(he.max)&&(this.min=this.max)),Me=this.max-this.min}if(this.tickInterval=this.min!==this.max&&n(this.min)&&n(this.max)?de&&!Xe&&ye===de.options.tickPixelInterval?Xe=de.tickInterval:k(Xe,this.tickAmount?Me/Math.max(this.tickAmount-1,1):void 0,X?1:Me*ye/Math.max(this.len,ye)):1,K&&!w){let pt=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(ht){ht.forceCrop=ht.forceCropping?.(),ht.processData(pt)}),a(this,"postProcessData",{hasExtremesChanged:pt})}this.setAxisTranslation(),a(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let kt=k(he.minTickInterval,R&&!this.series.some(pt=>pt.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))q=[this.min,this.max],O(19,!1,this.chart);else if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,w.units),this.min,this.max,w.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let me=this.tickInterval,Ce=me;for(;Ce<=2*me&&(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount);)this.tickInterval=Y(this,Ce*=1.1)}q.length>this.len&&(q=[q[0],q[q.length-1]])[0]===q[1]&&(q.length=1),G&&(this.tickPositions=q,(he=G.apply(this,[this.min,this.max]))&&(q=he))}this.tickPositions=q,this.paddedTicks=q.slice(0),this.trimTicks(q,R,K),!this.isLinked&&n(this.min)&&n(this.max)&&(this.single&&q.length<2&&!this.categories&&!this.series.some(me=>me.is("heatmap")&&"between"===me.options.pointPlacement)&&(this.min-=.5,this.max+=.5),X||he||this.adjustTickAmount()),a(this,"afterSetTickPositions")}trimTicks(w,X,G){let x=w[0],N=w[w.length-1],R=!this.isOrdinal&&this.minPointOffset||0;if(a(this,"trimTicks"),!this.isLinked){if(X&&x!==-1/0)this.min=x;else for(;this.min-R>w[0];)w.shift();if(G)this.max=N;else for(;this.max+R{let{horiz:Se,options:Oe}=Ce;return[Se?Oe.left:Oe.top,Oe.width,Oe.height,Oe.pane].join(",")},me=he(this);G[this.coll].forEach(function(Ce){let{series:Se}=Ce;Se.length&&Se.some(Oe=>Oe.visible)&&Ce!==X&&he(Ce)===me&&(w=!0,x.push(Ce))})}if(w&&K){x.forEach(me=>{let Ce=me.getThresholdAlignment(X);n(Ce)&&q.push(Ce)});let he=q.length>1?q.reduce((me,Ce)=>me+Ce,0)/q.length:void 0;x.forEach(me=>{me.thresholdAlignment=he})}return w}getThresholdAlignment(w){if((!n(this.dataMin)||this!==w&&this.series.some(X=>X.isDirty||X.isDirtyData))&&this.getSeriesExtremes(),n(this.threshold)){let X=E((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(X=1-X),X}}getTickAmount(){let w=this.options,X=w.tickPixelInterval,G=w.tickAmount;b(w.tickInterval)||G||!(this.lenR.push(_(R[R.length-1]+Oe)),oe=()=>R.unshift(_(R[0]-Oe));if(n(q)&&(Ae=q<.5?Math.ceil(q*(K-1)):Math.floor(q*(K-1)),N.reversed&&(Ae=K-1-Ae)),w.hasData()&&n(x)&&n(G)){let ee=()=>{w.transA*=(he-1)/(K-1),w.min=N.startOnTick?R[0]:Math.min(x,R[0]),w.max=N.endOnTick?R[R.length-1]:Math.max(G,R[R.length-1])};if(n(Ae)&&n(w.threshold)){for(;R[Ae]!==me||R.length!==K||R[0]>x||R[R.length-1]w.threshold?oe():Fe();if(Oe>8*w.tickInterval)break;Oe*=2}ee()}else if(he0&&Se{G=G||R.isDirtyData||R.isDirty,x=x||R.xAxis&&R.xAxis.isDirty||!1}),this.setAxisSize();let N=this.len!==(this.old&&this.old.len);N||G||x||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(X&&"yAxis"===w&&X.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),X&&"xAxis"===w&&X.buildStacks(),this.isDirty||(this.isDirty=N||this.min!==this.old?.min||this.max!==this.old?.max)):X&&X.cleanStacks(),G&&delete this.allExtremes,a(this,"afterSetScale")}setExtremes(w,X,G=!0,x,N){this.series.forEach(R=>{delete R.kdTree}),a(this,"setExtremes",N=f(N,{min:w,max:X}),R=>{this.userMin=R.min,this.userMax=R.max,this.eventArgs=R,G&&this.chart.redraw(x)})}setAxisSize(){let w=this.chart,X=this.options,G=X.offsets||[0,0,0,0],x=this.horiz,N=this.width=Math.round(p(k(X.width,w.plotWidth-G[3]+G[1]),w.plotWidth)),R=this.height=Math.round(p(k(X.height,w.plotHeight-G[0]+G[2]),w.plotHeight)),K=this.top=Math.round(p(k(X.top,w.plotTop+G[0]),w.plotHeight,w.plotTop)),q=this.left=Math.round(p(k(X.left,w.plotLeft+G[3]),w.plotWidth,w.plotLeft));this.bottom=w.chartHeight-R-K,this.right=w.chartWidth-N-q,this.len=Math.max(x?N:R,0),this.pos=x?q:K}getExtremes(){let w=this.logarithmic;return{min:w?_(w.lin2log(this.min)):this.min,max:w?_(w.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(w){let X=this.logarithmic,G=X?X.lin2log(this.min):this.min,x=X?X.lin2log(this.max):this.max;return null===w||w===-1/0?w=G:w===1/0?w=x:G>w?w=G:x15&&X<165?x.align="right":X>195&&X<345&&(x.align="left")}),G.align}tickSize(w){let N,X=this.options,G=k(X["tick"===w?"tickWidth":"minorTickWidth"],"tick"===w&&this.isXAxis&&!this.categories?1:0),x=X["tick"===w?"tickLength":"minorTickLength"];G&&x&&("inside"===X[w+"Position"]&&(x=-x),N=[x,G]);let R={tickSize:N};return a(this,"afterTickSize",R),R.tickSize}labelMetrics(){let w=this.chart.renderer,X=this.ticks,G=X[Object.keys(X)[0]]||{};return this.chart.renderer.fontMetrics(G.label||G.movedLabel||w.box)}unsquish(){let me,Se,w=this.options.labels,X=this.horiz,G=this.tickInterval,x=this.len/(((this.categories?1:0)+this.max-this.min)/G),N=w.rotation,R=this.labelMetrics().h,K=Math.max(this.max-this.min,0),q=function(Oe){let Ae=Oe/(x||1);return(Ae=Ae>1?Math.ceil(Ae):1)*G>K&&Oe!==1/0&&x!==1/0&&K&&(Ae=Math.ceil(K/G)),_(Ae*G)},he=G,Ce=Number.MAX_VALUE;if(X){if(!w.staggerLines&&(n(N)?Se=[N]:x=-90&&Fe<=90)&&(Ae=(Oe=q(Math.abs(R/Math.sin(L*Fe))))+Math.abs(Fe/360))Fe&&(Fe=ye.label.textPxLength)}),this.maxLabelLength=Fe,this.autoRotation)Fe>he&&Fe>Ce.h?me.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(Oe=he,!Se))for(Ae="clip",ee=G.length;!K&&ee--;)(oe=x[G[ee]].label)&&("ellipsis"===oe.styles.textOverflow?oe.css({textOverflow:"clip"}):oe.textPxLength>q&&oe.css({width:q+"px"}),oe.getBBox().height>this.len/G.length-(Ce.h-Ce.f)&&(oe.specificTextOverflow="ellipsis"));me.rotation&&(Oe=Fe>.5*w.chartHeight?.33*w.chartHeight:Fe,Se||(Ae="ellipsis")),this.labelAlign=N.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(me.align=this.labelAlign),G.forEach(function(de){let ye=x[de],Te=ye&&ye.label,_e=R.width,Me={};Te&&(Te.attr(me),ye.shortenLabel?ye.shortenLabel():Oe&&!_e&&"nowrap"!==R.whiteSpace&&(OeN.g(K).attr({zIndex:he}).addClass(`highcharts-${G.toLowerCase()}${q} `+(this.isRadial?`highcharts-radial-axis${q} `:"")+(x.className||"")).add(w);this.axisGroup||(this.gridGroup=R("grid","-grid",x.gridZIndex),this.axisGroup=R("axis","",x.zIndex),this.labelGroup=R("axis-labels","-labels",x.labels.zIndex))}getOffset(){let ee,ye,Me,Ee,w=this,{chart:X,horiz:G,options:x,side:N,ticks:R,tickPositions:K,coll:q}=w,he=X.inverted&&!w.isZAxis?[1,0,3,2][N]:N,me=w.hasData(),Ce=x.title,Se=x.labels,Oe=n(x.crossing),Ae=X.axisOffset,Fe=X.clipOffset,oe=[-1,1,1,-1][N],de=0,Te=0,_e=0;if(w.showAxis=ee=me||x.showEmpty,w.staggerLines=w.horiz&&Se.staggerLines||void 0,w.createGroups(),me||w.isLinked?(K.forEach(function(Xe){w.generateTick(Xe)}),w.renderUnsquish(),w.reserveSpaceDefault=0===N||2===N||{1:"left",3:"right"}[N]===w.labelAlign,k(Se.reserveSpace,!Oe&&null,"center"===w.labelAlign||null,w.reserveSpaceDefault)&&K.forEach(function(Xe){_e=Math.max(R[Xe].getLabelSize(),_e)}),w.staggerLines&&(_e*=w.staggerLines),w.labelOffset=_e*(w.opposite?-1:1)):C(R,function(Xe,Ze){Xe.destroy(),delete R[Ze]}),Ce?.text&&!1!==Ce.enabled&&(w.addTitle(ee),ee&&!Oe&&!1!==Ce.reserveSpace&&(w.titleOffset=de=w.axisTitle.getBBox()[G?"height":"width"],Te=b(ye=Ce.offset)?0:k(Ce.margin,G?5:10))),w.renderLine(),w.offset=oe*k(x.offset,Ae[N]?Ae[N]+(x.margin||0):0),w.tickRotCorr=w.tickRotCorr||{x:0,y:0},Ee=0===N?-w.labelMetrics().h:2===N?w.tickRotCorr.y:0,Me=Math.abs(_e)+Te,_e&&(Me-=Ee,Me+=oe*(G?k(Se.y,w.tickRotCorr.y+oe*Se.distance):k(Se.x,oe*Se.distance))),w.axisTitleMargin=k(ye,Me),w.getMaxLabelDimensions&&(w.maxLabelDimensions=w.getMaxLabelDimensions(R,K)),"colorAxis"!==q){let Xe=this.tickSize("tick");Ae[N]=Math.max(Ae[N],(w.axisTitleMargin||0)+de+oe*w.offset,Me,K&&K.length&&Xe?Xe[0]+oe*w.offset:0);let Ze=!w.axisLine||x.offset?0:2*Math.floor(w.axisLine.strokeWidth()/2);Fe[he]=Math.max(Fe[he],Ze)}a(this,"afterGetOffset")}getLinePath(w){let X=this.chart,G=this.opposite,x=this.offset,N=this.horiz,R=this.left+(G?this.width:0)+x,K=X.chartHeight-this.bottom-(G?this.height:0)+x;return G&&(w*=-1),X.renderer.crispLine([["M",N?this.left:R,N?K:this.top],["L",N?X.chartWidth-this.right:R,N?K:X.chartHeight-this.bottom]],w)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(w){let X=this.horiz,G=this.left,x=this.top,N=this.len,R=this.options.title,K=X?G:x,q=this.opposite,he=this.offset,me=R.x,Ce=R.y,Se=this.chart.renderer.fontMetrics(w),Oe=w?Math.max(w.getBBox(!1,0).height-Se.h-1,0):0,Ae={low:K+(X?0:N),middle:K+N/2,high:K+(X?N:0)}[R.align],Fe=(X?x+this.height:G)+(X?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-Oe,Oe,Se.f,-Oe][this.side],oe={x:X?Ae+me:Fe+(q?this.width:0)+he+me,y:X?Fe+Ce-(q?this.height:0)+he:Ae+Ce};return a(this,"afterGetTitlePosition",{titlePosition:oe}),oe}renderMinorTick(w,X){let G=this.minorTicks;G[w]||(G[w]=new pe(this,w,"minor")),X&&G[w].isNew&&G[w].render(null,!0),G[w].render(null,!1,1)}renderTick(w,X,G){let N=this.ticks;(!this.isLinked||w>=this.min&&w<=this.max||this.grid&&this.grid.isColumn)&&(N[w]||(N[w]=new pe(this,w)),G&&N[w].isNew&&N[w].render(X,!0,-1),N[w].render(X))}render(){let w,X,G=this,x=G.chart,N=G.logarithmic,K=G.options,q=G.isLinked,he=G.tickPositions,me=G.axisTitle,Ce=G.ticks,Se=G.minorTicks,Oe=G.alternateBands,Ae=K.stackLabels,Fe=K.alternateGridColor,oe=K.crossing,ee=G.tickmarkOffset,de=G.axisLine,ye=G.showAxis,Te=te(x.renderer.globalAnimation);if(G.labelEdge.length=0,G.overlap=!1,[Ce,Se,Oe].forEach(function(_e){C(_e,function(Me){Me.isActive=!1})}),n(oe)){let _e=this.isXAxis?x.yAxis[0]:x.xAxis[0],Me=[1,-1,-1,1][this.side];if(_e){let Ee=_e.toPixels(oe,!0);G.horiz&&(Ee=_e.len-Ee),G.offset=Me*Ee}}if(G.hasData()||q){let _e=G.chart.hasRendered&&G.old&&n(G.old.min);G.minorTickInterval&&!G.categories&&G.getMinorTickPositions().forEach(function(Me){G.renderMinorTick(Me,_e)}),he.length&&(he.forEach(function(Me,Ee){G.renderTick(Me,Ee,_e)}),ee&&(0===G.min||G.single)&&(Ce[-1]||(Ce[-1]=new pe(G,-1,null,!0)),Ce[-1].render(-1))),Fe&&he.forEach(function(Me,Ee){X=void 0!==he[Ee+1]?he[Ee+1]+ee:G.max-ee,Ee%2==0&&Me=.5)A=Math.round(A),_=D.getLinearTickPositions(A,B,F);else if(A>=.08){let b,T,z,O,f,a,g;for(b=A>.3?[1,2,4]:A>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],T=Math.floor(B);TB&&(!L||a<=F)&&void 0!==a&&_.push(a),a>F&&(g=!0),a=f}else{let b=this.lin2log(B),T=this.lin2log(F),z=L?D.getMinorTickInterval():E.tickInterval;A=ve(A=le("auto"===z?null:z,this.minorAutoInterval,E.tickPixelInterval/(L?5:1)*(T-b)/((L?I/D.tickPositions.length:I)||1))),_=D.getLinearTickPositions(A,b,T).map(this.log2lin),L||(this.minorAutoInterval=A/5)}return L||(D.tickInterval=A),_}lin2log(A){return Math.pow(10,A)}log2lin(A){return Math.log(A)/Math.LN10}}fe.Additions=te}(ie||(ie={})),ie}),Pe(V,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[V["Core/Utilities.js"]],function(Z){var ie;let{erase:re,extend:ve,isNumber:le}=Z;return function(fe){let pe;function J(D){return this.addPlotBandOrLine(D,"plotBands")}function te(D,I){let E=this.userOptions,_=new pe(this,D);if(this.visible&&(_=_.render()),_){if(this._addedPlotLB||(this._addedPlotLB=!0,(E.plotLines||[]).concat(E.plotBands||[]).forEach(b=>{this.addPlotBandOrLine(b)})),I){let b=E[I]||[];b.push(D),E[I]=b}this.plotLinesAndBands.push(_)}return _}function $(D){return this.addPlotBandOrLine(D,"plotLines")}function A(D,I,E){let f,g,_=this.getPlotLinePath({value:I,force:!0,acrossPanes:(E=E||this.options).acrossPanes}),b=[],T=this.horiz,z=!le(this.min)||!le(this.max)||Dthis.max&&I>this.max,O=this.getPlotLinePath({value:D,force:!0,acrossPanes:E.acrossPanes}),a=1;if(O&&_)for(z&&(g=O.toString()===_.toString(),a=0),f=0;f{r?.on(Y,U=>{b[Y].apply(this,[U])})}),this.eventsAdded=!0),!p&&r.d||!l?.length?r&&(l?(r.show(),r.animate({d:l})):r.d&&(r.hide(),n&&(this.label=n=n.destroy()))):r.attr({d:l}),o&&(le(o.text)||le(o.formatter))&&l?.length&&L.width>0&&L.height>0&&!l.isFlat?(o=te({align:I&&C&&"center",x:I?!C&&4:10,verticalAlign:!I&&C&&"middle",y:I?C?16:10:C?6:-4,rotation:I&&!C&&90},o),this.renderLabel(o,l,C,T)):n&&n.hide(),this}renderLabel(L,D,I,E){let _=this.axis,T=this.label;T||(this.label=T=_.chart.renderer.text(this.getLabelText(L),0,0,L.useHTML).attr({align:L.textAlign||L.align,rotation:L.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label"+(L.className||""),zIndex:E}),_.chart.styledMode||T.css(te({fontSize:"0.8em",textOverflow:"ellipsis"},L.style)),T.add());let z=D.xBounds||[D[0][1],D[1][1],I?D[2][1]:D[0][1]],O=D.yBounds||[D[0][2],D[1][2],I?D[2][2]:D[0][2]],f=ve(z),a=ve(O);T.align(L,!1,{x:f,y:a,width:re(z)-f,height:re(O)-a}),T.alignValue&&"left"!==T.alignValue||T.css({width:(90===T.rotation?_.height-(T.alignAttr.y-_.top):(L.clip?_.width:_.chart.chartWidth)-(T.alignAttr.x-_.left))+"px"}),T.show(!0)}getLabelText(L){return le(L.formatter)?L.formatter.call(this):L.text}destroy(){pe(this.axis.plotLinesAndBands,this),delete this.axis,fe(this)}}return B}),Pe(V,"Core/Tooltip.js",[V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{format:pe}=Z,{composed:J,doc:te,isSafari:$}=ie,{distribute:A}=re,{addEvent:B,clamp:F,css:L,discardElement:D,extend:I,fireEvent:E,isArray:_,isNumber:b,isString:T,merge:z,pick:O,pushUnique:f,splat:a,syncTimeout:g}=le;class y{constructor(n,r,l){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=n,this.init(n,r),this.pointer=l}bodyFormatter(n){return n.map(function(r){let l=r.series.tooltipOptions;return(l[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,l[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(n){this.chart.series.forEach(function(r){let l=r&&r.tt;l&&(!l.isActive||n?r.tt=l.destroy():l.isActive=!1)})}defaultFormatter(n){let r,l=this.points||a(this);return(r=(r=[n.tooltipFooterHeaderFormatter(l[0])]).concat(n.bodyFormatter(l))).push(n.tooltipFooterHeaderFormatter(l[0],!0)),r}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),le.clearTimeout(this.hideTimer),le.clearTimeout(this.tooltipTimeout)}getAnchor(n,r){let l,{chart:d,pointer:C}=this,k=d.inverted,p=d.plotTop,S=d.plotLeft;if((n=a(n))[0].series&&n[0].series.yAxis&&!n[0].series.yAxis.options.reversedStacks&&(n=n.slice().reverse()),this.followPointer&&r)void 0===r.chartX&&(r=C.normalize(r)),l=[r.chartX-S,r.chartY-p];else if(n[0].tooltipPos)l=n[0].tooltipPos;else{let j=0,H=0;n.forEach(function(Y){let U=Y.pos(!0);U&&(j+=U[0],H+=U[1])}),j/=n.length,H/=n.length,this.shared&&n.length>1&&r&&(k?j=r.chartX:H=r.chartY),l=[j-S,H-p]}return l.map(Math.round)}getClassName(n,r,l){let C=n.series,k=C.options;return[this.options.className,"highcharts-label",l&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!l&&"highcharts-color-"+O(n.colorIndex,C.colorIndex),k&&k.className].filter(T).join(" ")}getLabel(){let n=this,r=this.chart.styledMode,l=this.options,d=this.split&&this.allowShared,C=this.container,k=this.chart.renderer;if(this.label){let p=!this.label.hasClass("highcharts-label");(!d&&p||d&&!p)&&this.destroy()}if(!this.label){if(this.outside){let p=this.chart.options.chart.style,S=ve.getRendererType();this.container=C=ie.doc.createElement("div"),C.className="highcharts-tooltip-container",L(C,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(p&&p.zIndex||0)+3)}),this.renderer=k=new S(C,0,0,p,void 0,void 0,k.styledMode)}if(d?this.label=k.g("tooltip"):(this.label=k.label("",0,0,l.shape,void 0,void 0,l.useHTML,void 0,"tooltip").attr({padding:l.padding,r:l.borderRadius}),r||this.label.attr({fill:l.backgroundColor,"stroke-width":l.borderWidth||0}).css(l.style).css({pointerEvents:l.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),n.outside){let p=this.label,{xSetter:S,ySetter:j}=p;p.xSetter=function(H){S.call(p,n.distance),C&&(C.style.left=H+"px")},p.ySetter=function(H){j.call(p,n.distance),C&&(C.style.top=H+"px")}}this.label.attr({zIndex:8}).shadow(l.shadow).add()}return C&&!C.parentElement&&ie.doc.body.appendChild(C),this.label}getPlayingField(){let{body:n,documentElement:r}=te,{chart:l,distance:d,outside:C}=this;return{width:C?Math.max(n.scrollWidth,r.scrollWidth,n.offsetWidth,r.offsetWidth,r.clientWidth)-2*d:l.chartWidth,height:C?Math.max(n.scrollHeight,r.scrollHeight,n.offsetHeight,r.offsetHeight,r.clientHeight):l.chartHeight}}getPosition(n,r,l){let Ce,{distance:d,chart:C,outside:k,pointer:p}=this,{inverted:S,plotLeft:j,plotTop:H,polar:Y}=C,{plotX:U=0,plotY:se=0}=l,w={},X=S&&l.h||0,{height:G,width:x}=this.getPlayingField(),N=p.getChartPosition(),R=de=>de*N.scaleX,K=de=>de*N.scaleY,q=de=>{let ye="x"===de;return[de,ye?x:G,ye?n:r].concat(k?[ye?R(n):K(r),ye?N.left-d+R(U+j):N.top-d+K(se+H),0,ye?x:G]:[ye?n:r,ye?U+j:se+H,ye?j:H,ye?j+C.plotWidth:H+C.plotHeight])},he=q("y"),me=q("x"),Se=!!l.negative;!Y&&C.hoverSeries?.yAxis?.reversed&&(Se=!Se);let Oe=!this.followPointer&&O(l.ttBelow,!Y&&!S===Se),Ae=function(de,ye,Te,_e,Me,Ee,Xe){let Ze=k?"y"===de?K(d):R(d):d,lt=(Te-_e)/2,Qe=_eye?pt:pt+X)}},Fe=function(de,ye,Te,_e,Me){if(Meye-d)return!1;w[de]=Meye-_e/2?ye-_e-2:Me-Te/2},oe=function(de){[he,me]=[me,he],Ce=de},ee=()=>{!1!==Ae.apply(0,he)?!1!==Fe.apply(0,me)||Ce||(oe(!0),ee()):Ce?w.x=w.y=0:(oe(!0),ee())};return(S&&!Y||this.len>1)&&oe(),ee(),w}hide(n){let r=this;le.clearTimeout(this.hideTimer),n=O(n,this.options.hideDelay),this.isHidden||(this.hideTimer=g(function(){let l=r.getLabel();r.getLabel().animate({opacity:0},{duration:n&&150,complete:()=>{l.hide(),r.container&&r.container.remove()}}),r.isHidden=!0},n))}init(n,r){this.chart=n,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!n.inverted&&!n.polar,this.shared=r.shared||this.split,this.outside=O(r.outside,!(!n.scrollablePixelsX&&!n.scrollablePixelsY))}shouldStickOnContact(n){return!(this.followPointer||!this.options.stickOnContact||n&&!this.pointer.inClass(n.target,"highcharts-tooltip"))}move(n,r,l,d){let C=this,k=C.now,p=!1!==C.options.animation&&!C.isHidden&&(Math.abs(n-k.x)>1||Math.abs(r-k.y)>1),S=C.followPointer||C.len>1;I(k,{x:p?(2*k.x+n)/3:n,y:p?(k.y+r)/2:r,anchorX:S?void 0:p?(2*k.anchorX+l)/3:l,anchorY:S?void 0:p?(k.anchorY+d)/2:d}),C.getLabel().attr(k),C.drawTracker(),p&&(le.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){C&&C.move(n,r,l,d)},32))}refresh(n,r){let{chart:l,options:d,pointer:C,shared:k}=this,p=a(n),S=p[0],j=[],H=d.format,Y=d.formatter||this.defaultFormatter,U=l.styledMode,se={};if(!d.enabled||!S.series)return;le.clearTimeout(this.hideTimer),this.allowShared=!(!_(n)&&n.series&&n.series.noSharedTooltip),this.followPointer=!this.split&&S.series.tooltipOptions.followPointer;let w=this.getAnchor(n,r),X=w[0],G=w[1];k&&this.allowShared?(C.applyInactiveState(p),p.forEach(function(R){R.setState("hover"),j.push(R.getLabelConfig())}),(se=S.getLabelConfig()).points=j):se=S.getLabelConfig(),this.len=j.length;let x=T(H)?pe(H,se,l):Y.call(se,this),N=S.series;if(this.distance=O(N.tooltipOptions.distance,16),!1===x)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(x,p);else{let R=X,K=G;if(r&&C.isDirectTouch&&(R=r.chartX-l.plotLeft,K=r.chartY-l.plotTop),!l.polar&&!1!==N.options.clip&&!p.some(q=>C.isDirectTouch||q.series.shouldShowTooltip(R,K)))return void this.hide();{let q=this.getLabel();(!d.style.width||U)&&q.css({width:(this.outside?this.getPlayingField():l.spacingBox).width+"px"}),q.attr({text:x&&x.join?x.join(""):x}),q.addClass(this.getClassName(S),!0),U||q.attr({stroke:d.borderColor||S.color||N.color||"#666666"}),this.updatePosition({plotX:X,plotY:G,negative:S.negative,ttBelow:S.ttBelow,h:w[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}E(this,"refresh")}renderSplit(n,r){let l=this,{chart:d,chart:{chartWidth:C,chartHeight:k,plotHeight:p,plotLeft:S,plotTop:j,scrollablePixelsY:H=0,scrollablePixelsX:Y,styledMode:U},distance:se,options:w,options:{positioner:X},pointer:G}=l,{scrollLeft:x=0,scrollTop:N=0}=d.scrollablePlotArea?.scrollingContainer||{},R=l.outside&&"number"!=typeof Y?te.documentElement.getBoundingClientRect():{left:x,right:x+C,top:N,bottom:N+k},K=l.getLabel(),q=this.renderer||d.renderer,he=!(!d.xAxis[0]||!d.xAxis[0].opposite),{left:me,top:Ce}=G.getChartPosition(),Se=j+N,Oe=0,Ae=p-H;function Fe(_e,Me,Ee,Xe,Ze=!0){let lt,Qe;return Ee?(lt=he?0:Ae,Qe=F(_e-Xe/2,R.left,R.right-Xe-(l.outside?me:0))):(lt=Me-Se,Qe=F(Qe=Ze?_e-Xe-se:_e+se,Ze?Qe:R.left,R.right)),{x:Qe,y:lt}}T(n)&&(n=[!1,n]);let oe=n.slice(0,r.length+1).reduce(function(_e,Me,Ee){if(!1!==Me&&""!==Me){let Xe=r[Ee-1]||{isHeader:!0,plotX:r[0].plotX,plotY:p,series:{}},Ze=Xe.isHeader,lt=Ze?l:Xe.series,Qe=lt.tt=function(Lt,Gt,ti){let Mt=Lt,{isHeader:At,series:_t}=Gt;if(!Mt){let wt={padding:w.padding,r:w.borderRadius};U||(wt.fill=w.backgroundColor,wt["stroke-width"]=w.borderWidth??1),Mt=q.label("",0,0,w[At?"headerShape":"shape"],void 0,void 0,w.useHTML).addClass(l.getClassName(Gt,!0,At)).attr(wt).add(K)}return Mt.isActive=!0,Mt.attr({text:ti}),U||Mt.css(w.style).attr({stroke:w.borderColor||Gt.color||_t.color||"#333333"}),Mt}(lt.tt,Xe,Me.toString()),st=Qe.getBBox(),kt=st.width+Qe.strokeWidth();Ze&&(Oe=st.height,Ae+=Oe,he&&(Se-=Oe));let{anchorX:pt,anchorY:ht}=function(Lt){let Gt,ti,{isHeader:Mt,plotX:At=0,plotY:_t=0,series:wt}=Lt;if(Mt)Gt=Math.max(S+At,S),ti=j+p/2;else{let{xAxis:Jt,yAxis:ui}=wt;Gt=Jt.pos+F(At,-se,Jt.len+se),wt.shouldShowTooltip(0,ui.pos-j+_t,{ignoreX:!0})&&(ti=ui.pos+_t)}return{anchorX:Gt=F(Gt,R.left-se,R.right+se),anchorY:ti}}(Xe);if("number"==typeof ht){let Lt=st.height+1,Gt=X?X.call(l,kt,Lt,Xe):Fe(pt,ht,Ze,kt);_e.push({align:X?0:void 0,anchorX:pt,anchorY:ht,boxWidth:kt,point:Xe,rank:O(Gt.rank,Ze?1:0),size:Lt,target:Gt.y,tt:Qe,x:Gt.x})}else Qe.isActive=!1}return _e},[]);!X&&oe.some(_e=>{let{outside:Me}=l,Ee=(Me?me:0)+_e.anchorX;return EeEe})&&(oe=oe.map(_e=>{let{x:Me,y:Ee}=Fe(_e.anchorX,_e.anchorY,_e.point.isHeader,_e.boxWidth,!1);return I(_e,{target:Ee,x:Me})})),l.cleanSplit(),A(oe,Ae);let ee={left:me,right:me};oe.forEach(function(_e){let{x:Me,boxWidth:Ee,isHeader:Xe}=_e;!Xe&&(l.outside&&me+Meee.right&&(ee.right=me+Me))}),oe.forEach(function(_e){let{x:Me,anchorX:Ee,anchorY:Xe,pos:Ze,point:{isHeader:lt}}=_e,Qe={visibility:void 0===Ze?"hidden":"inherit",x:Me,y:(Ze||0)+Se,anchorX:Ee,anchorY:Xe};if(l.outside&&Me0&&(lt||(Qe.x=Me+st,Qe.anchorX=Ee+st),lt&&(Qe.x=(ee.right-ee.left)/2,Qe.anchorX=Ee+st))}_e.tt.attr(Qe)});let{container:de,outside:ye,renderer:Te}=l;if(ye&&de&&Te){let{width:_e,height:Me,x:Ee,y:Xe}=K.getBBox();Te.setSize(_e+Ee,Me+Xe,!1),de.style.left=ee.left+"px",de.style.top=Ce+"px"}$&&K.attr({opacity:1===K.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let n=this.chart,r=this.label,l=this.shared?n.hoverPoints:n.hoverPoint;if(!r||!l)return;let d={x:0,y:0,width:0,height:0},C=this.getAnchor(l),k=r.getBBox();C[0]+=n.plotLeft-(r.translateX||0),C[1]+=n.plotTop-(r.translateY||0),d.x=Math.min(0,C[0]),d.y=Math.min(0,C[1]),d.width=C[0]<0?Math.max(Math.abs(C[0]),k.width-C[0]):Math.max(Math.abs(C[0]),k.width),d.height=C[1]<0?Math.max(Math.abs(C[1]),k.height-Math.abs(C[1])):Math.max(Math.abs(C[1]),k.height),this.tracker?this.tracker.attr(d):(this.tracker=r.renderer.rect(d).addClass("highcharts-tracker").add(r),n.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(n){return n.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(n,r){let l=n.series,d=l.tooltipOptions,C=l.xAxis,k=C&&C.dateTime,p={isFooter:r,labelConfig:n},S=d.xDateFormat,j=d[r?"footerFormat":"headerFormat"];return E(this,"headerFormatter",p,function(H){k&&!S&&b(n.key)&&(S=k.getXDateFormat(n.key,d.dateTimeLabelFormats)),k&&S&&(n.point&&n.point.tooltipDateKeys||["key"]).forEach(function(Y){j=j.replace("{point."+Y+"}","{point."+Y+":"+S+"}")}),l.chart.styledMode&&(j=this.styledModeFormat(j)),H.text=pe(j,{point:n,series:l},this.chart)}),p.text}update(n){this.destroy(),this.init(this.chart,z(!0,this.options,n))}updatePosition(n){let x,{chart:r,container:l,distance:d,options:C,pointer:k,renderer:p}=this,{height:S=0,width:j=0}=this.getLabel(),{left:H,top:Y,scaleX:U,scaleY:se}=k.getChartPosition(),w=(C.positioner||this.getPosition).call(this,j,S,n),X=(n.plotX||0)+r.plotLeft,G=(n.plotY||0)+r.plotTop;p&&l&&(C.positioner&&(w.x+=H-d,w.y+=Y-d),x=(C.borderWidth||0)+2*d+2,p.setSize(j+x,S+x,!1),(1!==U||1!==se)&&(L(l,{transform:`scale(${U}, ${se})`}),X*=U,G*=se),X+=H-w.x,G+=Y-w.y),this.move(Math.round(w.x),Math.round(w.y||0),X,G)}}return(fe=y||(y={})).compose=function(o){f(J,"Core.Tooltip")&&B(o,"afterInit",function(){let n=this.chart;n.options.tooltip&&(n.tooltip=new fe(n,n.options.tooltip,this))})},y}),Pe(V,"Core/Series/Point.js",[V["Core/Renderer/HTML/AST.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{animObject:fe}=ie,{defaultOptions:pe}=re,{format:J}=ve,{addEvent:te,erase:$,extend:A,fireEvent:B,getNestedProperty:F,isArray:L,isFunction:D,isNumber:I,isObject:E,pick:_,syncTimeout:b,removeEvent:T,uniqueKey:z}=le;class O{animateBeforeDestroy(){let a=this,g={x:a.startXPos,opacity:0},y=a.getGraphicalProps();y.singular.forEach(function(o){a[o]=a[o].animate("dataLabel"===o?{x:a[o].startXPos,y:a[o].startYPos,opacity:0}:g)}),y.plural.forEach(function(o){a[o].forEach(function(n){n.element&&n.animate(A({x:a.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(a,g){let y=this.series,o=y.options.pointValKey||y.pointValKey;return A(this,a=O.prototype.optionsToObject.call(this,a)),this.options=this.options?A(this.options,a):a,a.group&&delete this.group,a.dataLabels&&delete this.dataLabels,o&&(this.y=O.prototype.getNestedProperty.call(this,o)),this.selected&&(this.state="select"),"name"in this&&void 0===g&&y.xAxis&&y.xAxis.hasNames&&(this.x=y.xAxis.nameToX(this)),void 0===this.x&&y?this.x=void 0===g?y.autoIncrement():g:I(a.x)&&y.options.relativeXValue&&(this.x=y.autoIncrement(a.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let a=this,g=a.series,y=g.chart,o=g.options.dataSorting,n=y.hoverPoints,r=fe(a.series.chart.renderer.globalAnimation),l=()=>{for(let d in(a.graphic||a.graphics||a.dataLabel||a.dataLabels)&&(T(a),a.destroyElements()),a)delete a[d]};a.legendItem&&y.legend.destroyItem(a),n&&(a.setState(),$(n,a),n.length||(y.hoverPoints=null)),a===y.hoverPoint&&a.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),b(l,r.duration)):l(),y.pointCount--}this.destroyed=!0}destroyElements(a){let g=this,y=g.getGraphicalProps(a);y.singular.forEach(function(o){g[o]=g[o].destroy()}),y.plural.forEach(function(o){g[o].forEach(function(n){n&&n.element&&n.destroy()}),delete g[o]})}firePointEvent(a,g,y){let o=this,n=this.series.options;o.manageEvent(a),"click"===a&&n.allowPointSelect&&(y=function(r){!o.destroyed&&o.select&&o.select(null,r.ctrlKey||r.metaKey||r.shiftKey)}),B(o,a,g,y)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(a){let g,y,o=this,n=[],r={singular:[],plural:[]};for((a=a||{graphic:1,dataLabel:1}).graphic&&n.push("graphic","connector"),a.dataLabel&&n.push("dataLabel","dataLabelPath","dataLabelUpper"),y=n.length;y--;)o[g=n[y]]&&r.singular.push(g);return["graphic","dataLabel"].forEach(function(l){let d=l+"s";a[l]&&o[d]&&r.plural.push(d)}),r}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(a){return a?0===a.indexOf("custom.")?F(a,this.options):this[a]:void 0}getZone(){let o,a=this.series,g=a.zones,y=a.zoneAxis||"y",n=0;for(o=g[0];this[y]>=o.value;)o=g[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=o&&o.color&&!this.options.color?o.color:this.nonZonedColor,o}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(a,g,y){this.formatPrefix="point",this.visible=!0,this.series=a,this.applyOptions(g,y),this.id??(this.id=z()),this.resolveColor(),a.chart.pointCount++,B(this,"afterInit")}isValid(){return(I(this.x)||this.x instanceof Date)&&I(this.y)}optionsToObject(a){let l,g=this.series,y=g.options.keys,o=y||g.pointArrayMap||["y"],n=o.length,r={},d=0,C=0;if(I(a)||null===a)r[o[0]]=a;else if(L(a))for(!y&&a.length>n&&("string"==(l=typeof a[0])?r.name=a[0]:"number"===l&&(r.x=a[0]),d++);C0?O.prototype.setNestedProperty(r,a[d],o[C]):r[o[C]]=a[d]),d++,C++;else"object"==typeof a&&(r=a,a.dataLabels&&(g.hasDataLabels=()=>!0),a.marker&&(g._hasPointMarkers=!0));return r}pos(a,g=this.plotY){if(!this.destroyed){let{plotX:y,series:o}=this,{chart:n,xAxis:r,yAxis:l}=o,d=0,C=0;if(I(y)&&I(g))return a&&(d=r?r.pos:n.plotLeft,C=l?l.pos:n.plotTop),n.inverted&&r&&l?[l.len-g+C,r.len-y+d]:[y+d,g+C]}}resolveColor(){let o,n,l,a=this.series,y=a.chart.styledMode,r=a.chart.options.chart.colorCount;delete this.nonZonedColor,a.options.colorByPoint?(y||(o=(n=a.options.colors||a.chart.options.colors)[a.colorCounter],r=n.length),l=a.colorCounter,a.colorCounter++,a.colorCounter===r&&(a.colorCounter=0)):(y||(o=a.color),l=a.colorIndex),this.colorIndex=_(this.options.colorIndex,l),this.color=_(this.options.color,o)}setNestedProperty(a,g,y){return y.split(".").reduce(function(o,n,r,l){return o[n]=l.length-1===r?g:E(o[n],!0)?o[n]:{},o[n]},a),a}shouldDraw(){return!this.isNull}tooltipFormatter(a){let g=this.series,y=g.tooltipOptions,o=_(y.valueDecimals,""),n=y.valuePrefix||"",r=y.valueSuffix||"";return g.chart.styledMode&&(a=g.chart.tooltip.styledModeFormat(a)),(g.pointArrayMap||["y"]).forEach(function(l){l="{point."+l,(n||r)&&(a=a.replace(RegExp(l+"}","g"),n+l+"}"+r)),a=a.replace(RegExp(l+"}","g"),l+":,."+o+"f}")}),J(a,{point:this,series:this.series},g.chart)}update(a,g,y,o){let n,r=this,l=r.series,d=r.graphic,C=l.chart,k=l.options;function p(){r.applyOptions(a);let S=d&&r.hasMockGraphic;d&&(null===r.y?!S:S)&&(r.graphic=d.destroy(),delete r.hasMockGraphic),E(a,!0)&&(d&&d.element&&a&&a.marker&&void 0!==a.marker.symbol&&(r.graphic=d.destroy()),a?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),n=r.index,l.updateParallelArrays(r,n),k.data[n]=E(k.data[n],!0)||E(a,!0)?r.options:_(a,k.data[n]),l.isDirty=l.isDirtyData=!0,!l.fixedBox&&l.hasCartesianSeries&&(C.isDirtyBox=!0),"point"===k.legendType&&(C.isDirtyLegend=!0),g&&C.redraw(y)}g=_(g,!0),!1===o?p():r.firePointEvent("update",{options:a},p)}remove(a,g){this.series.removePoint(this.series.data.indexOf(this),a,g)}select(a,g){let y=this,o=y.series,n=o.chart;a=_(a,!y.selected),this.selectedStaging=a,y.firePointEvent(a?"select":"unselect",{accumulate:g},function(){y.selected=y.options.selected=a,o.options.data[o.data.indexOf(y)]=y.options,y.setState(a&&"select"),g||n.getSelectedPoints().forEach(function(r){let l=r.series;r.selected&&r!==y&&(r.selected=r.options.selected=!1,l.options.data[l.data.indexOf(r)]=r.options,r.setState(n.hoverPoints&&l.options.inactiveOtherPoints?"inactive":""),r.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(a){let{inverted:g,pointer:y}=this.series.chart;y&&(a=a?y.normalize(a):y.getChartCoordinatesFromPoint(this,g),y.runPointActions(a,this))}onMouseOut(){let a=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(g){g.setState()}),a.hoverPoints=a.hoverPoint=null}manageEvent(a){let g=this.series.options.point||{},y=g.events?.[a];!D(y)||this.hcEvents?.[a]&&-1!==this.hcEvents?.[a]?.map(o=>o.fn).indexOf(y)?this.hasImportedEvents&&!y&&this.hcEvents?.[a]&&(T(this,a),delete this.hcEvents[a],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1)):(te(this,a,y),this.hasImportedEvents=!0)}setState(a,g){let H,Y,U,w,y=this.series,o=this.state,n=y.options.states[a||"normal"]||{},r=pe.plotOptions[y.type].marker&&y.options.marker,d=r&&r.states&&r.states[a||"normal"]||{},k=this.marker||{},p=y.chart,S=r&&y.markerAttribs,j=y.halo,se=y.stateMarkerGraphic;if((a=a||"")===this.state&&!g||this.selected&&"select"!==a||!1===n.enabled||a&&(!1===d.enabled||r&&!1===r.enabled&&!1===d.enabled)||a&&k.states&&k.states[a]&&!1===k.states[a].enabled)return;if(this.state=a,S&&(H=y.markerAttribs(this,a)),this.graphic&&!this.hasMockGraphic){if(o&&this.graphic.removeClass("highcharts-point-"+o),a&&this.graphic.addClass("highcharts-point-"+a),!p.styledMode){Y=y.pointAttribs(this,a),U=_(p.options.chart.animation,n.animation);let N=Y.opacity;y.options.inactiveOtherPoints&&I(N)&&(this.dataLabels||[]).forEach(function(R){R&&!R.hasClass("highcharts-data-label-hidden")&&(R.animate({opacity:N},U),R.connector&&R.connector.animate({opacity:N},U))}),this.graphic.animate(Y,U)}H&&this.graphic.animate(H,_(p.options.chart.animation,d.animation,r.animation)),se&&se.hide()}else a&&d&&(w=k.symbol||y.symbol,se&&se.currentSymbol!==w&&(se=se.destroy()),H&&(se?se[g?"animate":"attr"]({x:H.x,y:H.y}):w&&(y.stateMarkerGraphic=se=p.renderer.symbol(w,H.x,H.y,H.width,H.height).add(y.markerGroup),se.currentSymbol=w)),!p.styledMode&&se&&"inactive"!==this.state&&se.attr(y.pointAttribs(this,a))),se&&(se[a&&this.isInside?"show":"hide"](),se.element.point=this,se.addClass(this.getClassName(),!0));let X=n.halo,G=this.graphic||se,x=G&&G.visibility||"inherit";X&&X.size&&G&&"hidden"!==x&&!this.isCluster?(j||(y.halo=j=p.renderer.path().add(G.parentGroup)),j.show()[g?"animate":"attr"]({d:this.haloPath(X.size)}),j.attr({class:"highcharts-halo highcharts-color-"+_(this.colorIndex,y.colorIndex)+(this.className?" "+this.className:""),visibility:x,zIndex:-1}),j.point=this,p.styledMode||j.attr(A({fill:this.color||y.color,"fill-opacity":X.opacity},Z.filterUserAttributes(X.attributes||{})))):j&&j.point&&j.point.haloPath&&j.animate({d:j.point.haloPath(0)},null,j.hide),B(this,"afterSetState",{state:a})}haloPath(a){let g=this.pos();return g?this.series.chart.renderer.symbols.circle(Math.floor(g[0])-a,g[1]-a,2*a,2*a):[]}}return O}),Pe(V,"Core/Pointer.js",[V["Core/Color/Color.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve;let{parse:le}=Z,{charts:fe,composed:pe}=ie,{addEvent:J,attr:te,css:$,extend:A,find:B,fireEvent:F,isNumber:L,isObject:D,objectEach:I,offset:E,pick:_,pushUnique:b,splat:T}=re;class z{applyInactiveState(f){let g,a=[];(f||[]).forEach(function(y){g=y.series,a.push(g),g.linkedParent&&a.push(g.linkedParent),g.linkedSeries&&(a=a.concat(g.linkedSeries)),g.navigatorSeries&&a.push(g.navigatorSeries)}),this.chart.series.forEach(function(y){-1===a.indexOf(y)?y.setState("inactive",!0):y.options.inactiveOtherPoints&&y.setAllPointsToState("inactive")})}destroy(){let f=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],!ie.chartCount&&(z.unbindDocumentMouseUp&&(z.unbindDocumentMouseUp=z.unbindDocumentMouseUp()),z.unbindDocumentTouchEnd&&(z.unbindDocumentTouchEnd=z.unbindDocumentTouchEnd())),clearInterval(f.tooltipTimeout),I(f,function(a,g){f[g]=void 0})}getSelectionMarkerAttrs(f,a){let g={args:{chartX:f,chartY:a},attrs:{},shapeType:"rect"};return F(this,"getSelectionMarkerAttrs",g,y=>{let o,{chart:n,zoomHor:r,zoomVert:l}=this,{mouseDownX:d=0,mouseDownY:C=0}=n,k=y.attrs;k.x=n.plotLeft,k.y=n.plotTop,k.width=r?1:n.plotWidth,k.height=l?1:n.plotHeight,r&&(o=f-d,k.width=Math.max(1,Math.abs(o)),k.x=(o>0?0:o)+d),l&&(o=a-C,k.height=Math.max(1,Math.abs(o)),k.y=(o>0?0:o)+C)}),g}drag(f){let Y,{chart:a}=this,{mouseDownX:g=0,mouseDownY:y=0}=a,{panning:o,panKey:n,selectionMarkerFill:r}=a.options.chart,l=a.plotLeft,d=a.plotTop,C=a.plotWidth,k=a.plotHeight,p=D(o)?o.enabled:o,S=n&&f[`${n}Key`],j=f.chartX,H=f.chartY,U=this.selectionMarker;if((!U||!U.touch)&&(jl+C&&(j=l+C),Hd+k&&(H=d+k),this.hasDragged=Math.sqrt(Math.pow(g-j,2)+Math.pow(y-H,2)),this.hasDragged>10)){Y=a.isInsidePlot(g-l,y-d,{visiblePlotOnly:!0});let{shapeType:se,attrs:w}=this.getSelectionMarkerAttrs(j,H);(a.hasCartesianSeries||a.mapView)&&this.hasZoom&&Y&&!S&&!U&&(this.selectionMarker=U=a.renderer[se](),U.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||U.attr({fill:r||le("#334eff").setOpacity(.25).get()})),U&&U.attr(w),Y&&!U&&p&&a.pan(f,o)}}dragStart(f){let a=this.chart;a.mouseIsDown=f.type,a.cancelClick=!1,a.mouseDownX=f.chartX,a.mouseDownY=f.chartY}getSelectionBox(f){let a={args:{marker:f},result:f.getBBox()};return F(this,"getSelectionBox",a),a.result}drop(f){let a,{chart:g,selectionMarker:y}=this;for(let o of g.axes)o.isPanning&&(o.isPanning=!1,(o.options.startOnTick||o.options.endOnTick||o.series.some(n=>n.boosted))&&(o.forceRedraw=!0,o.setExtremes(o.userMin,o.userMax,!1),a=!0));if(a&&g.redraw(),y&&f){if(this.hasDragged){let o=this.getSelectionBox(y);g.transform({axes:g.axes.filter(n=>n.zoomEnabled&&("xAxis"===n.coll&&this.zoomX||"yAxis"===n.coll&&this.zoomY)),selection:{originalEvent:f,xAxis:[],yAxis:[],...o},from:o})}L(g.index)&&(this.selectionMarker=y.destroy())}g&&L(g.index)&&($(g.container,{cursor:g._cursor}),g.cancelClick=this.hasDragged>10,g.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(f,a,g){let y;return f.forEach(function(o){let n=!(o.noSharedTooltip&&a)&&0>o.options.findNearestPointBy.indexOf("y"),r=o.searchPoint(g,n);D(r,!0)&&r.series&&(!D(y,!0)||function(l,d){let C=l.distX-d.distX,k=l.dist-d.dist,p=d.series.group?.zIndex-l.series.group?.zIndex;return 0!==C&&a?C:0!==k?k:0!==p?p:l.series.index>d.series.index?-1:1}(y,r)>0)&&(y=r)}),y}getChartCoordinatesFromPoint(f,a){let{xAxis:g,yAxis:y}=f.series,o=f.shapeArgs;if(g&&y){let n=f.clientX??f.plotX??0,r=f.plotY||0;return f.isNode&&o&&L(o.x)&&L(o.y)&&(n=o.x,r=o.y),a?{chartX:y.len+y.pos-r,chartY:g.len+g.pos-n}:{chartX:n+g.pos,chartY:r+y.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:f}=this.chart,a=E(f);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};let{offsetHeight:g,offsetWidth:y}=f;return y>2&&g>2&&(this.chartPosition.scaleX=a.width/y,this.chartPosition.scaleY=a.height/g),this.chartPosition}getCoordinates(f){let a={xAxis:[],yAxis:[]};for(let g of this.chart.axes)a[g.isXAxis?"xAxis":"yAxis"].push({axis:g,value:g.toValue(f[g.horiz?"chartX":"chartY"])});return a}getHoverData(f,a,g,y,o,n){let C,r=[],l=function(S){return S.visible&&!(!o&&S.directTouch)&&_(S.options.enableMouseTracking,!0)},d=a,k={chartX:n?n.chartX:void 0,chartY:n?n.chartY:void 0,shared:o};F(this,"beforeGetHoverData",k),C=d&&!d.stickyTracking?[d]:g.filter(S=>S.stickyTracking&&(k.filter||l)(S));let p=y&&f||!n?f:this.findNearestKDPoint(C,o,n);return d=p&&p.series,p&&(o&&!d.noSharedTooltip?(C=g.filter(function(S){return k.filter?k.filter(S):l(S)&&!S.noSharedTooltip})).forEach(function(S){let j=B(S.points,function(H){return H.x===p.x&&!H.isNull});D(j)&&(S.boosted&&S.boost&&(j=S.boost.getPoint(j)),r.push(j))}):r.push(p)),F(this,"afterGetHoverData",k={hoverPoint:p}),{hoverPoint:k.hoverPoint,hoverSeries:d,hoverPoints:r}}getPointFromEvent(f){let g,a=f.target;for(;a&&!g;)g=a.point,a=a.parentNode;return g}onTrackerMouseOut(f){let g=f.relatedTarget,y=this.chart.hoverSeries;this.isDirectTouch=!1,!y||!g||y.stickyTracking||this.inClass(g,"highcharts-tooltip")||this.inClass(g,"highcharts-series-"+y.index)&&this.inClass(g,"highcharts-tracker")||y.onMouseOut()}inClass(f,a){let y,g=f;for(;g;){if(y=te(g,"class")){if(-1!==y.indexOf(a))return!0;if(-1!==y.indexOf("highcharts-container"))return!1}g=g.parentElement}}constructor(f,a){this.hasDragged=0,this.eventsToUnbind=[],this.options=a,this.chart=f,this.runChartClick=!!a.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),F(this,"afterInit")}normalize(f,a){let g=f.touches,y=g?g.length?g.item(0):_(g.changedTouches,f.changedTouches)[0]:f;a||(a=this.getChartPosition());let o=y.pageX-a.left,n=y.pageY-a.top;return A(f,{chartX:Math.round(o/=a.scaleX),chartY:Math.round(n/=a.scaleY)})}onContainerClick(f){let a=this.chart,g=a.hoverPoint,y=this.normalize(f),o=a.plotLeft,n=a.plotTop;!a.cancelClick&&(g&&this.inClass(y.target,"highcharts-tracker")?(F(g.series,"click",A(y,{point:g})),a.hoverPoint&&g.firePointEvent("click",y)):(A(y,this.getCoordinates(y)),a.isInsidePlot(y.chartX-o,y.chartY-n,{visiblePlotOnly:!0})&&F(a,"click",y)))}onContainerMouseDown(f){let a=!(1&~(f.buttons||f.button));f=this.normalize(f),ie.isFirefox&&0!==f.button&&this.onContainerMouseMove(f),(void 0===f.button||a)&&(this.zoomOption(f),a&&f.preventDefault?.(),this.dragStart(f))}onContainerMouseLeave(f){let{pointer:a}=fe[_(z.hoverChartIndex,-1)]||{};f=this.normalize(f),this.onContainerMouseMove(f),a&&f.relatedTarget&&!this.inClass(f.relatedTarget,"highcharts-tooltip")&&(a.reset(),a.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(f){let a=this.chart,g=a.tooltip,y=this.normalize(f);this.setHoverChartIndex(f),("mousedown"===a.mouseIsDown||this.touchSelect(y))&&this.drag(y),!a.openMenu&&(this.inClass(y.target,"highcharts-tracker")||a.isInsidePlot(y.chartX-a.plotLeft,y.chartY-a.plotTop,{visiblePlotOnly:!0}))&&(!g||!g.shouldStickOnContact(y))&&(this.inClass(y.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(y))}onDocumentTouchEnd(f){this.onDocumentMouseUp(f)}onContainerTouchMove(f){this.touchSelect(f)?this.onContainerMouseMove(f):this.touch(f)}onContainerTouchStart(f){this.touchSelect(f)?this.onContainerMouseDown(f):(this.zoomOption(f),this.touch(f,!0))}onDocumentMouseMove(f){let a=this.chart,g=a.tooltip,y=this.chartPosition,o=this.normalize(f,y);!y||a.isInsidePlot(o.chartX-a.plotLeft,o.chartY-a.plotTop,{visiblePlotOnly:!0})||g&&g.shouldStickOnContact(o)||this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(f){fe[_(z.hoverChartIndex,-1)]?.pointer?.drop(f)}pinch(f){let a=this,{chart:g,hasZoom:y,lastTouches:o}=a,n=[].map.call(f.touches||[],k=>a.normalize(k)),r=n.length,l=1===r&&(a.inClass(f.target,"highcharts-tracker")&&g.runTrackerClick||a.runChartClick),d=g.tooltip,C=1===r&&_(d?.options.followTouchMove,!0);r>1?a.initiated=!0:C&&(a.initiated=!1),y&&a.initiated&&!l&&!1!==f.cancelable&&f.preventDefault(),"touchstart"===f.type?(a.pinchDown=n,a.res=!0):C?this.runPointActions(a.normalize(f)):o&&(F(g,"touchpan",{originalEvent:f,touches:n},()=>{let k=p=>{let S=p[0],j=p[1]||S;return{x:S.chartX,y:S.chartY,width:j.chartX-S.chartX,height:j.chartY-S.chartY}};g.transform({axes:g.axes.filter(p=>p.zoomEnabled&&(this.zoomHor&&p.horiz||this.zoomVert&&!p.horiz)),to:k(n),from:k(o),trigger:f.type})}),a.res&&(a.res=!1,this.reset(!1,0))),a.lastTouches=n}reset(f,a){let g=this.chart,y=g.hoverSeries,o=g.hoverPoint,n=g.hoverPoints,r=g.tooltip,l=r&&r.shared?n:o;f&&l&&T(l).forEach(function(d){d.series.isCartesian&&void 0===d.plotX&&(f=!1)}),f?r&&l&&T(l).length&&(r.refresh(l),r.shared&&n?n.forEach(function(d){d.setState(d.state,!0),d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):o&&(o.setState(o.state,!0),g.axes.forEach(function(d){d.crosshair&&o.series[d.coll]===d&&d.drawCrosshair(null,o)}))):(o&&o.onMouseOut(),n&&n.forEach(function(d){d.setState()}),y&&y.onMouseOut(),r&&r.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),g.axes.forEach(function(d){d.hideCrosshair()}),g.hoverPoints=g.hoverPoint=void 0)}runPointActions(f,a,g){let y=this.chart,n=y.tooltip&&y.tooltip.options.enabled?y.tooltip:void 0,r=!!n&&n.shared,l=a||y.hoverPoint,d=l&&l.series||y.hoverSeries,k=this.getHoverData(l,d,y.series,(!f||"touchmove"!==f.type)&&(!!a||d&&d.directTouch&&this.isDirectTouch),r,f);l=k.hoverPoint,d=k.hoverSeries;let p=k.hoverPoints,S=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,j=r&&d&&!d.noSharedTooltip;if(l&&(g||l!==y.hoverPoint||n&&n.isHidden)){if((y.hoverPoints||[]).forEach(function(H){-1===p.indexOf(H)&&H.setState()}),y.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(p),(p||[]).forEach(function(H){H.setState("hover")}),y.hoverPoint&&y.hoverPoint.firePointEvent("mouseOut"),!l.series)return;y.hoverPoints=p,y.hoverPoint=l,l.firePointEvent("mouseOver",void 0,()=>{n&&l&&n.refresh(j?p:l,f)})}else if(S&&n&&!n.isHidden){let H=n.getAnchor([{}],f);y.isInsidePlot(H[0],H[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:H[0],plotY:H[1]})}this.unDocMouseMove||(this.unDocMouseMove=J(y.container.ownerDocument,"mousemove",H=>fe[z.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(H)),this.eventsToUnbind.push(this.unDocMouseMove)),y.axes.forEach(function(H){let Y,U=_((H.crosshair||{}).snap,!0);!U||(Y=y.hoverPoint)&&Y.series[H.coll]===H||(Y=B(p,se=>se.series&&se.series[H.coll]===H)),Y||!U?H.drawCrosshair(f,Y):H.hideCrosshair()})}setDOMEvents(){let f=this.chart.container,a=f.ownerDocument;f.onmousedown=this.onContainerMouseDown.bind(this),f.onmousemove=this.onContainerMouseMove.bind(this),f.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(J(f,"mouseenter",this.onContainerMouseEnter.bind(this)),J(f,"mouseleave",this.onContainerMouseLeave.bind(this))),z.unbindDocumentMouseUp||(z.unbindDocumentMouseUp=J(a,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(J(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;this.eventsToUnbind.push(J(f,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),J(f,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),z.unbindDocumentTouchEnd||(z.unbindDocumentTouchEnd=J(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1}))}setHoverChartIndex(f){let a=this.chart,g=ie.charts[_(z.hoverChartIndex,-1)];g&&g!==a&&g.pointer?.onContainerMouseLeave(f||{relatedTarget:a.container}),g&&g.mouseIsDown||(z.hoverChartIndex=a.index)}touch(f,a){let g,{chart:y,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===f.touches.length?(f=this.normalize(f),y.isInsidePlot(f.chartX-y.plotLeft,f.chartY-y.plotTop,{visiblePlotOnly:!0})&&!y.openMenu?(a&&this.runPointActions(f),"touchmove"===f.type&&(g=!!o[0]&&Math.pow(o[0].chartX-f.chartX,2)+Math.pow(o[0].chartY-f.chartY,2)>=16),_(g,!0)&&this.pinch(f)):a&&this.reset()):2===f.touches.length&&this.pinch(f)}touchSelect(f){return!(!this.chart.zooming.singleTouch||!f.touches||1!==f.touches.length)}zoomOption(f){let o,n,a=this.chart,g=a.inverted,y=a.zooming.type||"";/touch/.test(f.type)&&(y=_(a.zooming.pinchType,y)),this.zoomX=o=/x/.test(y),this.zoomY=n=/y/.test(y),this.zoomHor=o&&!g||n&&g,this.zoomVert=n&&!g||o&&g,this.hasZoom=o||n}}return(ve=z||(z={})).compose=function(O){b(pe,"Core.Pointer")&&J(O,"beforeRender",function(){this.pointer=new ve(this,this.options)})},z}),Pe(V,"Core/Legend/Legend.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Templating.js"],V["Core/Globals.js"],V["Core/Series/Point.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){var pe;let{animObject:J,setAnimation:te}=Z,{format:$}=ie,{composed:A,marginNames:B}=re,{distribute:F}=le,{addEvent:L,createElement:D,css:I,defined:E,discardElement:_,find:b,fireEvent:T,isNumber:z,merge:O,pick:f,pushUnique:a,relativeLength:g,stableSort:y,syncTimeout:o}=fe;class n{constructor(l,d){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=l,this.setOptions(d),d.enabled&&(this.render(),L(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),L(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(l){let d=f(l.padding,8);this.options=l,this.chart.styledMode||(this.itemStyle=l.itemStyle,this.itemHiddenStyle=O(this.itemStyle,l.itemHiddenStyle)),this.itemMarginTop=l.itemMarginTop,this.itemMarginBottom=l.itemMarginBottom,this.padding=d,this.initialItemY=d-5,this.symbolWidth=f(l.symbolWidth,16),this.pages=[],this.proximate="proximate"===l.layout&&!this.chart.inverted,this.baseline=void 0}update(l,d){let C=this.chart;this.setOptions(O(!0,this.options,l)),this.destroy(),C.isDirtyLegend=C.isDirtyBox=!0,f(d,!0)&&C.redraw(),T(this,"afterUpdate",{redraw:d})}colorizeItem(l,d){let{area:C,group:k,label:p,line:S,symbol:j}=l.legendItem||{};if(k?.[d?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:H={}}=this,Y=H.color,{fillColor:U,fillOpacity:se,lineColor:w,marker:X}=l.options,G=x=>(!d&&(x.fill&&(x.fill=Y),x.stroke&&(x.stroke=Y)),x);p?.css(O(d?this.itemStyle:H)),S?.attr(G({stroke:w||l.color})),j&&j.attr(G(X&&j.isMarker?l.pointAttribs():{fill:l.color})),C?.attr(G({fill:U||l.color,"fill-opacity":U?1:se??.75}))}T(this,"afterColorizeItem",{item:l,visible:d})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(l){let{group:d,x:C=0,y:k=0}=l.legendItem||{},p=this.options,H=l.checkbox;if(d&&d.element){let Y={translateX:p.rtl?this.legendWidth-C-2*p.symbolPadding-4:C,translateY:k};d[E(d.translateY)?"animate":"attr"](Y,void 0,()=>{T(this,"afterPositionItem",{item:l})})}H&&(H.x=C,H.y=k)}destroyItem(l){let d=l.checkbox,C=l.legendItem||{};for(let k of["group","label","line","symbol"])C[k]&&(C[k]=C[k].destroy());d&&_(d),l.legendItem=void 0}destroy(){for(let l of this.getAllItems())this.destroyItem(l);for(let l of["clipRect","up","down","pager","nav","box","title","group"])this[l]&&(this[l]=this[l].destroy());this.display=null}positionCheckboxes(){let l,d=this.group&&this.group.alignAttr,C=this.clipHeight||this.legendHeight,k=this.titleHeight;d&&(l=d.translateY,this.allItems.forEach(function(p){let S,j=p.checkbox;j&&(S=l+k+j.y+(this.scrollOffset||0)+3,I(j,{left:d.translateX+p.checkboxOffset+j.x-20+"px",top:S+"px",display:this.proximate||S>l-6&&S1.5*Ce?me.height:Ce))}layoutItem(l){let d=this.options,C=this.padding,k="horizontal"===d.layout,p=l.itemHeight,S=this.itemMarginBottom,j=this.itemMarginTop,H=k?f(d.itemDistance,20):0,Y=this.maxLegendWidth,U=d.alignColumns&&this.totalItemWidth>Y?this.maxItemWidth:l.itemWidth,se=l.legendItem||{};k&&this.itemX-C+U>Y&&(this.itemX=C,this.lastLineHeight&&(this.itemY+=j+this.lastLineHeight+S),this.lastLineHeight=0),this.lastItemY=j+this.itemY+S,this.lastLineHeight=Math.max(p,this.lastLineHeight),se.x=this.itemX,se.y=this.itemY,k?this.itemX+=U:(this.itemY+=j+p+S,this.lastLineHeight=p),this.offsetWidth=this.widthOption||Math.max((k?this.itemX-C-(l.checkbox?0:H):U)+C,this.offsetWidth)}getAllItems(){let l=[];return this.chart.series.forEach(function(d){let C=d&&d.options;d&&f(C.showInLegend,!E(C.linkedTo)&&void 0,!0)&&(l=l.concat((d.legendItem||{}).labels||("point"===C.legendType?d.data:d)))}),T(this,"afterGetAllItems",{allItems:l}),l}getAlignment(){let l=this.options;return this.proximate?l.align.charAt(0)+"tv":l.floating?"":l.align.charAt(0)+l.verticalAlign.charAt(0)+l.layout.charAt(0)}adjustMargins(l,d){let C=this.chart,k=this.options,p=this.getAlignment();p&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(S,j){S.test(p)&&!E(l[j])&&(C[B[j]]=Math.max(C[B[j]],C.legend[(j+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][j]*k[j%2?"x":"y"]+f(k.margin,12)+d[j]+(C.titleOffset[j]||0)))})}proximatePositions(){let l,d=this.chart,C=[],k="left"===this.options.align;for(let p of(this.allItems.forEach(function(S){let j,H,U,se,Y=k;S.yAxis&&(S.xAxis.options.reversed&&(Y=!Y),S.points&&(j=b(Y?S.points:S.points.slice(0).reverse(),function(w){return z(w.plotY)})),H=this.itemMarginTop+S.legendItem.label.getBBox().height+this.itemMarginBottom,se=S.yAxis.top-d.plotTop,U=S.visible?(j?j.plotY:S.yAxis.height)+(se-.3*H):se+S.yAxis.height,C.push({target:U,size:H,item:S}))},this),F(C,d.plotHeight)))l=p.item.legendItem||{},z(p.pos)&&(l.y=d.plotTop-d.spacing[0]+p.pos)}render(){let S,j,H,U,l=this.chart,d=l.renderer,C=this.options,k=this.padding,p=this.getAllItems(),Y=this.group,se=this.box;this.itemX=k,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=g(C.width,l.spacingBox.width-k),U=l.spacingBox.width-2*k-C.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(U/=2),this.maxLegendWidth=this.widthOption||U,Y||(this.group=Y=d.g("legend").addClass(C.className||"").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(Y),this.scrollGroup=d.g().add(this.contentGroup)),this.renderTitle(),y(p,(w,X)=>(w.options&&w.options.legendIndex||0)-(X.options&&X.options.legendIndex||0)),C.reversed&&p.reverse(),this.allItems=p,this.display=S=!!p.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,p.forEach(this.renderItem,this),p.forEach(this.layoutItem,this),j=(this.widthOption||this.offsetWidth)+k,H=this.lastItemY+this.lastLineHeight+this.titleHeight,H=this.handleOverflow(H)+k,se||(this.box=se=d.rect().addClass("highcharts-legend-box").attr({r:C.borderRadius}).add(Y)),l.styledMode||se.attr({stroke:C.borderColor,"stroke-width":C.borderWidth||0,fill:C.backgroundColor||"none"}).shadow(C.shadow),j>0&&H>0&&se[se.placed?"animate":"attr"](se.crisp.call({},{x:0,y:0,width:j,height:H},se.strokeWidth())),Y[S?"show":"hide"](),l.styledMode&&"none"===Y.getStyle("display")&&(j=H=0),this.legendWidth=j,this.legendHeight=H,S&&this.align(),this.proximate||this.positionItems(),T(this,"afterRender")}align(l=this.chart.spacingBox){let d=this.chart,C=this.options,k=l.y;/(lth|ct|rth)/.test(this.getAlignment())&&d.titleOffset[0]>0?k+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&d.titleOffset[2]>0&&(k-=d.titleOffset[2]),k!==l.y&&(l=O(l,{y:k})),d.hasRendered||(this.group.placed=!1),this.group.align(O(C,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":C.verticalAlign}),!0,l)}handleOverflow(l){let R,K,q,d=this,C=this.chart,k=C.renderer,p=this.options,S=p.y,j="top"===p.verticalAlign,H=this.padding,Y=p.maxHeight,U=p.navigation,se=f(U.animation,!0),w=U.arrowSize||12,X=this.pages,G=this.allItems,x=function(Se){"number"==typeof Se?Ce.attr({height:Se}):Ce&&(d.clipRect=Ce.destroy(),d.contentGroup.clip()),d.contentGroup.div&&(d.contentGroup.div.style.clip=Se?"rect("+H+"px,9999px,"+(H+Se)+"px,0)":"auto")},N=function(Se){return d[Se]=k.circle(0,0,1.3*w).translate(w/2,w/2).add(me),C.styledMode||d[Se].attr("fill","rgba(0,0,0,0.0001)"),d[Se]},he=C.spacingBox.height+(j?-S:S)-H,me=this.nav,Ce=this.clipRect;return"horizontal"!==p.layout||"middle"===p.verticalAlign||p.floating||(he/=2),Y&&(he=Math.min(he,Y)),X.length=0,l&&he>0&&l>he&&!1!==U.enabled?(this.clipHeight=R=Math.max(he-20-this.titleHeight-H,0),this.currentPage=f(this.currentPage,1),this.fullHeight=l,G.forEach((Se,Oe)=>{let Ae=(q=Se.legendItem||{}).y||0,Fe=Math.round(q.label.getBBox().height),oe=X.length;(!oe||Ae-X[oe-1]>R&&(K||Ae)!==X[oe-1])&&(X.push(K||Ae),oe++),q.pageIx=oe-1,K&&((G[Oe-1].legendItem||{}).pageIx=oe-1),Oe===G.length-1&&Ae+Fe-X[oe-1]>R&&Ae>X[oe-1]&&(X.push(Ae),q.pageIx=oe),Ae!==K&&(K=Ae)}),Ce||(Ce=d.clipRect=k.clipRect(0,H-2,9999,0),d.contentGroup.clip(Ce)),x(R),me||(this.nav=me=k.g().attr({zIndex:1}).add(this.group),this.up=k.symbol("triangle",0,0,w,w).add(me),N("upTracker").on("click",function(){d.scroll(-1,se)}),this.pager=k.text("",15,10).addClass("highcharts-legend-navigation"),!C.styledMode&&U.style&&this.pager.css(U.style),this.pager.add(me),this.down=k.symbol("triangle-down",0,0,w,w).add(me),N("downTracker").on("click",function(){d.scroll(1,se)})),d.scroll(0),l=he):me&&(x(),this.nav=me.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),l}scroll(l,d){let C=this.chart,k=this.pages,p=k.length,S=this.clipHeight,j=this.options.navigation,H=this.pager,Y=this.padding,U=this.currentPage+l;U>p&&(U=p),U>0&&(void 0!==d&&te(d,C),this.nav.attr({translateX:Y,translateY:S+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(se){se.attr({class:1===U?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),H.attr({text:U+"/"+p}),[this.down,this.downTracker].forEach(function(se){se.attr({x:18+this.pager.getBBox().width,class:U===p?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),C.styledMode||(this.up.attr({fill:1===U?j.inactiveColor:j.activeColor}),this.upTracker.css({cursor:1===U?"default":"pointer"}),this.down.attr({fill:U===p?j.inactiveColor:j.activeColor}),this.downTracker.css({cursor:U===p?"default":"pointer"})),this.scrollOffset=-k[U-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=U,this.positionCheckboxes(),o(()=>{T(this,"afterScroll",{currentPage:U})},J(f(d,C.renderer.globalAnimation,!0)).duration))}setItemEvents(l,d,C){let k=this,p=l.legendItem||{},S=k.chart.renderer.boxWrapper,j=l instanceof ve,H="highcharts-legend-"+(j?"point":"series")+"-active",Y=k.chart.styledMode,U=C?[d,p.symbol]:[p.group],se=w=>{k.allItems.forEach(X=>{l!==X&&[X].concat(X.linkedSeries||[]).forEach(G=>{G.setState(w,!j)})})};for(let w of U)w&&w.on("mouseover",function(){l.visible&&se("inactive"),l.setState("hover"),l.visible&&S.addClass(H),Y||d.css(k.options.itemHoverStyle)}).on("mouseout",function(){k.chart.styledMode||d.css(O(l.visible?k.itemStyle:k.itemHiddenStyle)),se(""),S.removeClass(H),l.setState()}).on("click",function(X){let G="legendItemClick",x=function(){l.setVisible&&l.setVisible(),se(l.visible?"inactive":"")};S.removeClass(H),X={browserEvent:X},l.firePointEvent?l.firePointEvent(G,X,x):T(l,G,X,x)})}createCheckboxForItem(l){l.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:l.selected,defaultChecked:l.selected},this.options.itemCheckboxStyle,this.chart.container),L(l.checkbox,"click",function(d){T(l.series||l,"checkboxClick",{checked:d.target.checked,item:l},function(){l.select()})})}}return(pe=n||(n={})).compose=function(r){a(A,"Core.Legend")&&L(r,"beforeMargins",function(){this.legend=new pe(this,this.options.legend)})},n}),Pe(V,"Core/Legend/LegendSymbol.js",[V["Core/Utilities.js"]],function(Z){var ie;let{extend:re,merge:ve,pick:le}=Z;return function(fe){function pe(J,te,$){let f,A=this.legendItem=this.legendItem||{},{chart:B,options:F}=this,{baseline:L=0,symbolWidth:D,symbolHeight:I}=J,E=this.symbol||"circle",_=I/2,b=B.renderer,T=A.group,z=L-Math.round(I*($?.4:.3)),O={},a=F.marker,g=0;if(B.styledMode||(O["stroke-width"]=Math.min(F.lineWidth||0,24),F.dashStyle?O.dashstyle=F.dashStyle:"square"===F.linecap||(O["stroke-linecap"]="round")),A.line=b.path().addClass("highcharts-graph").attr(O).add(T),$&&(A.area=b.path().addClass("highcharts-area").add(T)),O["stroke-linecap"]&&(g=Math.min(A.line.strokeWidth(),D)/2),D){let y=[["M",g,z],["L",D-g,z]];A.line.attr({d:y}),A.area?.attr({d:[...y,["L",D-g,L],["L",g,L]]})}if(a&&!1!==a.enabled&&D){let y=Math.min(le(a.radius,_),_);0===E.indexOf("url")&&(a=ve(a,{width:I,height:I}),y=0),A.symbol=f=b.symbol(E,D/2-y,z-y,2*y,2*y,re({context:"legend"},a)).addClass("highcharts-point").add(T),f.isMarker=!0}}fe.areaMarker=function(J,te){pe.call(this,J,te,!0)},fe.lineMarker=pe,fe.rectangle=function(J,te){let $=te.legendItem||{},B=J.symbolHeight,F=J.options.squareSymbol;$.symbol=this.chart.renderer.rect(F?(J.symbolWidth-B)/2:0,J.baseline-B+1,F?B:J.symbolWidth,B,le(J.options.symbolRadius,B/2)).addClass("highcharts-point").attr({zIndex:3}).add($.group)}}(ie||(ie={})),ie}),Pe(V,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:Z}=this.series.chart;return"number"!=typeof this.y?"":Z(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),Pe(V,"Core/Series/SeriesRegistry.js",[V["Core/Globals.js"],V["Core/Defaults.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{defaultOptions:fe}=ie,{extend:pe,extendClass:J,merge:te}=ve;return function($){function A(B,F){let L=fe.plotOptions||{},D=F.defaultOptions,I=F.prototype;return I.type=B,I.pointClass||(I.pointClass=re),!$.seriesTypes[B]&&(D&&(L[B]=D),$.seriesTypes[B]=F,!0)}$.seriesTypes=Z.seriesTypes,$.registerSeriesType=A,$.seriesType=function(B,F,L,D,I){let E=fe.plotOptions||{};if(E[B]=te(E[F=F||""],L),delete $.seriesTypes[B],A(B,J($.seriesTypes[F]||function(){},D)),$.seriesTypes[B].prototype.type=B,I){class _ extends re{}pe(_.prototype,I),$.seriesTypes[B].prototype.pointClass=_}return $.seriesTypes[B]}}(le||(le={})),le}),Pe(V,"Core/Series/Series.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Defaults.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Series/Point.js"],V["Core/Series/SeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$){let{animObject:A,setAnimation:B}=Z,{defaultOptions:F}=ie,{registerEventOptions:L}=re,{svg:D,win:I}=ve,{seriesTypes:E}=J,{arrayMax:_,arrayMin:b,clamp:T,correctFloat:z,defined:O,destroyObjectProperties:f,diffObjects:a,erase:g,error:y,extend:o,find:n,fireEvent:r,getClosestDistance:l,getNestedProperty:d,insertItem:C,isArray:k,isNumber:p,isString:S,merge:j,objectEach:H,pick:Y,removeEvent:U,splat:se,syncTimeout:w}=$;class X{constructor(){this.zoneAxis="y"}init(x,N){let R;r(this,"init",{options:N});let K=this,q=x.series;this.eventsToUnbind=[],K.chart=x,K.options=K.setOptions(N);let he=K.options,me=!1!==he.visible;K.linkedSeries=[],K.bindAxes(),o(K,{name:he.name,state:"",visible:me,selected:!0===he.selected}),L(this,he);let Ce=he.events;(Ce&&Ce.click||he.point&&he.point.events&&he.point.events.click||he.allowPointSelect)&&(x.runTrackerClick=!0),K.getColor(),K.getSymbol(),K.parallelArrays.forEach(function(Se){K[Se+"Data"]||(K[Se+"Data"]=[])}),K.isCartesian&&(x.hasCartesianSeries=!0),q.length&&(R=q[q.length-1]),K._i=Y(R&&R._i,-1)+1,K.opacity=K.options.opacity,x.orderItems("series",C(this,q)),he.dataSorting&&he.dataSorting.enabled?K.setDataSortingOptions():K.points||K.data||K.setData(he.data,!1),r(this,"afterInit")}is(x){return E[x]&&this instanceof E[x]}bindAxes(){let x,N=this,R=N.options,K=N.chart;r(this,"bindAxes",null,function(){(N.axisTypes||[]).forEach(function(q){K[q].forEach(function(he){x=he.options,(Y(R[q],0)===he.index||void 0!==R[q]&&R[q]===x.id)&&(C(N,he.series),N[q]=he,he.isDirty=!0)}),N[q]||N.optionalAxis===q||y(18,!0,K)})}),r(this,"afterBindAxes")}updateParallelArrays(x,N,R){let K=x.series,q=p(N)?function(he){let me="y"===he&&K.toYData?K.toYData(x):x[he];K[he+"Data"][N]=me}:function(he){Array.prototype[N].apply(K[he+"Data"],R)};K.parallelArrays.forEach(q)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(x,N){let R=x.marker,K=N.marker||{};return R&&(K.enabled&&!R.enabled||K.symbol!==R.symbol||K.height!==R.height||K.width!==R.width)}autoIncrement(x){let me,Ce,N=this.options,R=N.pointIntervalUnit,K=N.relativeXValue,q=this.chart.time,he=this.xIncrement;return he=Y(he,N.pointStart,0),this.pointInterval=Ce=Y(this.pointInterval,N.pointInterval,1),K&&p(x)&&(Ce*=x),R&&(me=new q.Date(he),"day"===R?q.set("Date",me,q.get("Date",me)+Ce):"month"===R?q.set("Month",me,q.get("Month",me)+Ce):"year"===R&&q.set("FullYear",me,q.get("FullYear",me)+Ce),Ce=me.getTime()-he),K&&p(x)?he+Ce:(this.xIncrement=he+Ce,he)}setDataSortingOptions(){let x=this.options;o(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),O(x.pointRange)||(x.pointRange=1)}setOptions(x){let N,R=this.chart,K=R.options.plotOptions,q=R.userOptions||{},he=j(x),me=R.styledMode,Ce={plotOptions:K,userOptions:he};r(this,"setOptions",Ce);let Se=Ce.plotOptions[this.type],Oe=q.plotOptions||{},Ae=Oe.series||{},Fe=F.plotOptions[this.type]||{},oe=Oe[this.type]||{};this.userOptions=Ce.userOptions;let ee=j(Se,K.series,oe,he);this.tooltipOptions=j(F.tooltip,F.plotOptions.series?.tooltip,Fe?.tooltip,R.userOptions.tooltip,Oe.series?.tooltip,oe.tooltip,he.tooltip),this.stickyTracking=Y(he.stickyTracking,oe.stickyTracking,Ae.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||ee.stickyTracking),null===Se.marker&&delete ee.marker,this.zoneAxis=ee.zoneAxis||"y";let de=this.zones=(ee.zones||[]).map(ye=>({...ye}));return(ee.negativeColor||ee.negativeFillColor)&&!ee.zones&&(N={value:ee[this.zoneAxis+"Threshold"]||ee.threshold||0,className:"highcharts-negative"},me||(N.color=ee.negativeColor,N.fillColor=ee.negativeFillColor),de.push(N)),de.length&&O(de[de.length-1].value)&&de.push(me?{}:{color:this.color,fillColor:this.fillColor}),r(this,"afterSetOptions",{options:ee}),ee}getName(){return Y(this.options.name,"Series "+(this.index+1))}getCyclic(x,N,R){let K,q,he=this.chart,me=`${x}Index`,Ce=`${x}Counter`,Se=R?.length||he.options.chart.colorCount;!N&&(O(q=Y("color"===x?this.options.colorIndex:void 0,this[me]))?K=q:(he.series.length||(he[Ce]=0),K=he[Ce]%Se,he[Ce]+=1),R&&(N=R[K])),void 0!==K&&(this[me]=K),this[x]=N}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||F.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(x,N){let R,K,q,he=x.id,me=x.x,Ce=this.points,Se=this.options.dataSorting;if(he){let Oe=this.chart.get(he);Oe instanceof fe&&(R=Oe)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Oe=Ae=>!Ae.touched&&Ae.index===x.index;if(Se&&Se.matchByName?Oe=Ae=>!Ae.touched&&Ae.name===x.name:this.options.relativeXValue&&(Oe=Ae=>!Ae.touched&&Ae.options.x===x.x),!(R=n(Ce,Oe)))return}return R&&void 0!==(q=R&&R.index)&&(K=!0),void 0===q&&p(me)&&(q=this.xData.indexOf(me,N)),-1!==q&&void 0!==q&&this.cropped&&(q=q>=this.cropStart?q-this.cropStart:q),!K&&p(q)&&Ce[q]&&Ce[q].touched&&(q=void 0),q}updateData(x,N){let Se,Oe,Ae,Fe,R=this.options,K=R.dataSorting,q=this.points,he=[],me=this.requireSorting,Ce=x.length===q.length,oe=!0;if(this.xIncrement=null,x.forEach(function(ee,de){let ye,Te=O(ee)&&this.pointClass.prototype.optionsToObject.call({series:this},ee)||{};Te.id||p(Te.x)?(-1===(ye=this.findPointIndex(Te,Fe))||void 0===ye?he.push(ee):q[ye]&&ee!==R.data[ye]?(q[ye].update(ee,!1,null,!1),q[ye].touched=!0,me&&(Fe=ye+1)):q[ye]&&(q[ye].touched=!0),(!Ce||de!==ye||K&&K.enabled||this.hasDerivedData)&&(Se=!0)):he.push(ee)},this),Se)for(Oe=q.length;Oe--;)(Ae=q[Oe])&&!Ae.touched&&Ae.remove&&Ae.remove(!1,N);else!Ce||K&&K.enabled?oe=!1:(x.forEach(function(ee,de){ee===q[de].y||q[de].destroyed||q[de].update(ee,!1,null,!1)}),he.length=0);return q.forEach(function(ee){ee&&(ee.touched=!1)}),!!oe&&(he.forEach(function(ee){this.addPoint(ee,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=_(this.xData),this.autoIncrement()),!0)}setData(x,N=!0,R,K){let _e,Me,Ee,Qe,q=this,he=q.points,me=he&&he.length||0,Ce=q.options,Se=q.chart,Oe=Ce.dataSorting,Ae=q.xAxis,Fe=Ce.turboThreshold,oe=this.xData,ee=this.yData,de=q.pointArrayMap,ye=de&&de.length,Te=Ce.keys,Xe=0,Ze=1,lt=null;Se.options.chart.allowMutatingData||(Ce.data&&delete q.options.data,q.userOptions.data&&delete q.userOptions.data,Qe=j(!0,x));let st=(x=Qe||x||[]).length;if(Oe&&Oe.enabled&&(x=this.sortData(x)),Se.options.chart.allowMutatingData&&!1!==K&&st&&me&&!q.cropped&&!q.hasGroupedData&&q.visible&&!q.boosted&&(Ee=this.updateData(x,R)),!Ee){if(q.xIncrement=null,q.colorCounter=0,this.parallelArrays.forEach(function(kt){q[kt+"Data"].length=0}),Fe&&st>Fe)if(p(lt=q.getFirstValidPoint(x)))for(_e=0;_e=0?Xe:0,Ze=Ze>=0?Ze:1),1===lt.length&&(Ze=0),Xe===Ze)for(_e=0;_e{let me=d(R,q),Ce=d(R,he);return Ceme?1:0}).forEach(function(q,he){q.x=he},this),N.linkedSeries&&N.linkedSeries.forEach(function(q){let he=q.options,me=he.data;he.dataSorting&&he.dataSorting.enabled||!me||(me.forEach(function(Ce,Se){me[Se]=K(q,Ce),x[Se]&&(me[Se].x=x[Se].x,me[Se].index=Se)}),q.setData(me,!1))}),x}getProcessedData(x){let Se,Oe,Fe,oe,ee,N=this,R=N.xAxis,K=N.options,q=K.cropThreshold,he=x||N.getExtremesFromAll||K.getExtremesFromAll,me=R?.logarithmic,Ce=N.isCartesian,Ae=0,de=N.xData,ye=N.yData,Te=!1,_e=de.length;R&&(oe=(Fe=R.getExtremes()).min,ee=Fe.max,Te=!(!R.categories||R.names.length)),Ce&&N.sorted&&!he&&(!q||_e>q||N.forceCrop)&&(de[_e-1]ee?(de=[],ye=[]):N.yData&&(de[0]ee)&&(de=(Se=this.cropData(N.xData,N.yData,oe,ee)).xData,ye=Se.yData,Ae=Se.start,Oe=!0));let Me=l([me?de.map(me.log2lin):de],()=>N.requireSorting&&!Te&&y(15,!1,N.chart));return{xData:de,yData:ye,cropped:Oe,cropStart:Ae,closestPointRange:Me}}processData(x){if(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!x)return!1;let R=this.getProcessedData();this.cropped=R.cropped,this.cropStart=R.cropStart,this.processedXData=R.xData,this.processedYData=R.yData,this.closestPointRange=this.basePointRange=R.closestPointRange,r(this,"afterProcessData")}cropData(x,N,R,K){let he,me,q=x.length,Ce=0,Se=q;for(he=0;he=R){Ce=Math.max(0,he-1);break}for(me=he;meK){Se=me+1;break}return{xData:x.slice(Ce,Se),yData:N.slice(Ce,Se),start:Ce,end:Se}}generatePoints(){let Fe,oe,ee,de,x=this.options,N=this.processedData||x.data,R=this.processedXData,K=this.processedYData,q=this.pointClass,he=R.length,me=this.cropStart||0,Ce=this.hasGroupedData,Se=x.keys,Oe=[],Ae=x.dataGrouping&&x.dataGrouping.groupAll?me:0,ye=this.data;if(!ye&&!Ce){let Te=[];Te.length=N.length,ye=this.data=Te}for(Se&&Ce&&(this.options.keys=!1),de=0;de0:oe.length)||!Ce),Ae=N||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!R||(q[ee+me]||Fe)>=ye&&(q[ee-me]||Fe)<=Te,Oe&&Ae)if(de=oe.length)for(;de--;)p(oe[de])&&(he[_e++]=oe[de]);else he[_e++]=oe;let Ee={activeYData:he,dataMin:b(he),dataMax:_(he)};return r(this,"afterGetExtremes",{dataExtremes:Ee}),Ee}applyExtremes(){let x=this.getExtremes();return this.dataMin=x.dataMin,this.dataMax=x.dataMax,x}getFirstValidPoint(x){let N=x.length,R=0,K=null;for(;null===K&&R1)&&(he.step=function(Fe,oe){Ae&&Ae.apply(oe,arguments),"width"===oe.prop&&Se?.element&&Se.attr(q?"height":"width",Fe+99)}),Ce.addClass("highcharts-animating").animate(Oe,he)}}afterAnimate(){this.setClip(),H(this.chart.sharedClips,(x,N,R)=>{x&&!this.chart.container.querySelector(`[clip-path="url(#${x.id})"]`)&&(x.destroy(),delete R[N])}),this.finishedAnimating=!0,r(this,"afterAnimate")}drawPoints(x=this.points){let N,R,K,q,he,me,Ce,Se=this.chart,Oe=Se.styledMode,{colorAxis:Ae,options:Fe}=this,oe=Fe.marker,ee=this[this.specialGroup||"markerGroup"],de=this.xAxis,ye=Y(oe.enabled,!de||!!de.isRadial||null,this.closestPointRangePx>=oe.enabledThreshold*oe.radius);if(!1!==oe.enabled||this._hasPointMarkers)for(N=0;N0||R.hasImage)&&(R.graphic=K=Se.renderer.symbol(Te,Ce.x,Ce.y,Ce.width,Ce.height,me?he:oe).add(ee),this.enabledDataSorting&&Se.hasRendered&&(K.attr({x:R.startXPos}),q="animate")),K&&"animate"===q&&K[_e?"show":"hide"](_e).animate(Ce),K){let Me=this.pointAttribs(R,Oe||!R.selected?void 0:"select");Oe?Ae&&K.css({fill:Me.fill}):K[q](Me)}K&&K.addClass(R.getClassName(),!0)}else K&&(R.graphic=K.destroy())}markerAttribs(x,N){let Ce,Se,R=this.options,K=R.marker,q=x.marker||{},he=q.symbol||K.symbol,me={},Oe=Y(q.radius,K&&K.radius);N&&(Ce=K.states[N],Oe=Y((Se=q.states&&q.states[N])&&Se.radius,Ce&&Ce.radius,Oe&&Oe+(Ce&&Ce.radiusPlus||0))),x.hasImage=he&&0===he.indexOf("url"),x.hasImage&&(Oe=0);let Ae=x.pos();return p(Oe)&&Ae&&(me.x=Ae[0]-Oe,me.y=Ae[1]-Oe,R.crisp&&(me.x=Math.floor(me.x))),Oe&&(me.width=me.height=2*Oe),me}pointAttribs(x,N){let Se,Oe,Fe,oe,R=this.options.marker,K=x&&x.options,q=K&&K.marker||{},he=K&&K.color,me=x&&x.color,Ce=x&&x.zone&&x.zone.color,Ae=this.color,ee=Y(q.lineWidth,R.lineWidth),de=1;return Ae=he||Ce||me||Ae,Fe=q.fillColor||R.fillColor||Ae,oe=q.lineColor||R.lineColor||Ae,Se=R.states[N=N||"normal"]||{},ee=Y((Oe=q.states&&q.states[N]||{}).lineWidth,Se.lineWidth,ee+Y(Oe.lineWidthPlus,Se.lineWidthPlus,0)),Fe=Oe.fillColor||Se.fillColor||Fe,{stroke:oe=Oe.lineColor||Se.lineColor||oe,"stroke-width":ee,fill:Fe,opacity:de=Y(Oe.opacity,Se.opacity,de)}}destroy(x){let N,R,K,q=this,he=q.chart,me=/AppleWebKit\/533/.test(I.navigator.userAgent),Ce=q.data||[];for(r(q,"destroy",{keepEventsForUpdate:x}),this.removeEvents(x),(q.axisTypes||[]).forEach(function(Se){(K=q[Se])&&K.series&&(g(K.series,q),K.isDirty=K.forceRedraw=!0)}),q.legendItem&&q.chart.legend.destroyItem(q),N=Ce.length;N--;)(R=Ce[N])&&R.destroy&&R.destroy();for(let Se of q.zones)f(Se,void 0,!0);$.clearTimeout(q.animationTimeout),H(q,function(Se,Oe){Se instanceof te&&!Se.survive&&Se[me&&"group"===Oe?"hide":"destroy"]()}),he.hoverSeries===q&&(he.hoverSeries=void 0),g(he.series,q),he.orderItems("series"),H(q,function(Se,Oe){x&&"hcEvents"===Oe||delete q[Oe]})}applyZones(){let{area:x,chart:N,graph:R,zones:K,points:q,xAxis:he,yAxis:me,zoneAxis:Ce}=this,{inverted:Se,renderer:Oe}=N,Ae=this[`${Ce}Axis`],{isXAxis:Fe,len:oe=0}=Ae||{},ee=(R?.strokeWidth()||0)/2+1,de=(ye,Te=0,_e=0)=>{Se&&(_e=oe-_e);let{translated:Me=0,lineClip:Ee}=ye,Xe=_e-Me;Ee?.push(["L",Te,Math.abs(Xe){Ee.forEach((Xe,Ze)=>{("M"===Xe[0]||"L"===Xe[0])&&(Ee[Ze]=[Xe[0],Fe?oe-Xe[1]:Xe[1],Fe?Xe[2]:oe-Xe[2]])})};if(K.forEach(Ee=>{Ee.lineClip=[],Ee.translated=T(Ae.toPixels(Y(Ee.value,ye),!0)||0,0,oe)}),R&&!this.showLine&&R.hide(),x&&x.hide(),"y"===Ce&&q.length{let Xe=Ee.lineClip||[],Ze=Math.round(Ee.translated||0);he.reversed&&Xe.reverse();let{clip:lt,simpleClip:Qe}=Ee,st=0,kt=0,pt=he.len,ht=me.len;Fe?(st=Ze,pt=Me):(kt=Ze,ht=Me);let Lt=[["M",st,kt],["L",pt,kt],["L",pt,ht],["L",st,ht],["Z"]],Gt=[Lt[0],...Xe,Lt[1],Lt[2],..._e,Lt[3],Lt[4]];_e=Xe.reverse(),Me=Ze,Se&&(Te(Gt),x&&Te(Lt)),lt?(lt.animate({d:Gt}),Qe?.animate({d:Lt})):(lt=Ee.clip=Oe.path(Gt),x&&(Qe=Ee.simpleClip=Oe.path(Lt))),R&&Ee.graph?.clip(lt),x&&Ee.area?.clip(Qe)})}else this.visible&&(R&&R.show(),x&&x.show())}plotGroup(x,N,R,K,q){let he=this[x],me=!he,Ce={visibility:R,zIndex:K||.1};return O(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(Ce.opacity=this.opacity),he||(this[x]=he=this.chart.renderer.g().add(q)),he.addClass("highcharts-"+N+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(O(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(he.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),he.attr(Ce)[me?"attr":"animate"](this.getPlotBox(N)),he}getPlotBox(x){let N=this.xAxis,R=this.yAxis,K=this.chart,q=K.inverted&&!K.polar&&N&&this.invertible&&"series"===x;return K.inverted&&(N=R,R=this.xAxis),{translateX:N?N.left:K.plotLeft,translateY:R?R.top:K.plotTop,rotation:q?90:0,rotationOriginX:q?(N.len-R.len)/2:0,rotationOriginY:q?(N.len+R.len)/2:0,scaleX:q?-1:1,scaleY:1}}removeEvents(x){let{eventsToUnbind:N}=this;x||U(this),N.length&&(N.forEach(R=>{R()}),N.length=0)}render(){let x=this,{chart:N,options:R,hasRendered:K}=x,q=A(R.animation),he=x.visible?"inherit":"hidden",me=R.zIndex,Ce=N.seriesGroup,Se=x.finishedAnimating?0:q.duration;r(this,"render"),x.plotGroup("group","series",he,me,Ce),x.markerGroup=x.plotGroup("markerGroup","markers",he,me,Ce),!1!==R.clip&&x.setClip(),Se&&x.animate?.(!0),x.drawGraph&&(x.drawGraph(),x.applyZones()),x.visible&&x.drawPoints(),x.drawDataLabels?.(),x.redrawPoints?.(),R.enableMouseTracking&&x.drawTracker?.(),Se&&x.animate?.(),K||(Se&&q.defer&&(Se+=q.defer),x.animationTimeout=w(()=>{x.afterAnimate()},Se||0)),x.isDirty=!1,x.hasRendered=!0,r(x,"afterRender")}redraw(){let x=this.isDirty||this.isDirtyData;this.translate(),this.render(),x&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(x,N){let{xAxis:R,yAxis:K}=this,q=this.chart.inverted;return this.searchKDTree({clientX:q?R.len-x.chartY+R.pos:x.chartX-R.pos,plotY:q?K.len-x.chartX+K.pos:x.chartY-K.pos},N,x)}buildKDTree(x){this.buildingKdTree=!0;let N=this,R=N.options.findNearestPointBy.indexOf("y")>-1?2:1;delete N.kdTree,w(function(){N.kdTree=function K(q,he,me){let Ce,Se,Oe=q?.length;if(Oe)return Ce=N.kdAxisArray[he%me],q.sort((Ae,Fe)=>(Ae[Ce]||0)-(Fe[Ce]||0)),{point:q[Se=Math.floor(Oe/2)],left:K(q.slice(0,Se),he+1,me),right:K(q.slice(Se+1),he+1,me)}}(N.getValidPoints(void 0,!N.directTouch),R,R),N.buildingKdTree=!1},N.options.kdNow||"touchstart"===x?.type?0:1)}searchKDTree(x,N,R){let K=this,[q,he]=this.kdAxisArray,me=N?"distX":"dist",Ce=(K.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Se=!!K.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(R),this.kdTree)return function Oe(Ae,Fe,oe,ee){let Te,_e,de=Fe.point,ye=K.kdAxisArray[oe%ee],Me=de;!function(lt,Qe){let st=lt[q],kt=Qe[q],pt=O(st)&&O(kt)?st-kt:null,ht=lt[he],Lt=Qe[he],Gt=O(ht)&&O(Lt)?ht-Lt:0,ti=Se&&Qe.marker?.radius||0;Qe.dist=Math.sqrt((pt&&pt*pt||0)+Gt*Gt)-ti,Qe.distX=O(pt)?Math.abs(pt)-ti:Number.MAX_VALUE}(Ae,de);let Ee=(Ae[ye]||0)-(de[ye]||0)+(Se&&de.marker?.radius||0),Xe=Ee<0?"left":"right",Ze=Ee<0?"right":"left";return Fe[Xe]&&(Me=(Te=Oe(Ae,Fe[Xe],oe+1,ee))[me]=0&&he<=(K?K.len:N.plotHeight)&&q>=0&&q<=(R?R.len:N.plotWidth)}drawTracker(){let x=this,N=x.options,R=N.trackByArea,K=[].concat((R?x.areaPath:x.graphPath)||[]),q=x.chart,he=q.pointer,me=q.renderer,Ce=q.options.tooltip?.snap||0,Se=()=>{N.enableMouseTracking&&q.hoverSeries!==x&&x.onMouseOver()},Oe="rgba(192,192,192,"+(D?1e-4:.002)+")",Ae=x.tracker;Ae?Ae.attr({d:K}):x.graph&&(x.tracker=Ae=me.path(K).attr({visibility:x.visible?"inherit":"hidden",zIndex:2}).addClass(R?"highcharts-tracker-area":"highcharts-tracker-line").add(x.group),q.styledMode||Ae.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Oe,fill:R?Oe:"none","stroke-width":x.graph.strokeWidth()+(R?0:2*Ce)}),[x.tracker,x.markerGroup,x.dataLabelsGroup].forEach(Fe=>{Fe&&(Fe.addClass("highcharts-tracker").on("mouseover",Se).on("mouseout",oe=>{he?.onTrackerMouseOut(oe)}),N.cursor&&!q.styledMode&&Fe.css({cursor:N.cursor}),Fe.on("touchstart",Se))})),r(this,"afterDrawTracker")}addPoint(x,N,R,K,q){let he,me,Ce=this.options,Se=this.data,Oe=this.chart,Ae=this.xAxis,Fe=Ae&&Ae.hasNames&&Ae.names,oe=Ce.data,ee=this.xData;N=Y(N,!0);let de={series:this};this.pointClass.prototype.applyOptions.apply(de,[x]);let ye=de.x;if(me=ee.length,this.requireSorting&&yeye;)me--;this.updateParallelArrays(de,"splice",[me,0,0]),this.updateParallelArrays(de,me),Fe&&de.name&&(Fe[ye]=de.name),oe.splice(me,0,x),(he||this.processedData)&&(this.data.splice(me,0,null),this.processData()),"point"===Ce.legendType&&this.generatePoints(),R&&(Se[0]&&Se[0].remove?Se[0].remove(!1):(Se.shift(),this.updateParallelArrays(de,"shift"),oe.shift())),!1!==q&&r(this,"addPoint",{point:de}),this.isDirty=!0,this.isDirtyData=!0,N&&Oe.redraw(K)}removePoint(x,N,R){let K=this,q=K.data,he=q[x],me=K.points,Ce=K.chart,Se=function(){me&&me.length===q.length&&me.splice(x,1),q.splice(x,1),K.options.data.splice(x,1),K.updateParallelArrays(he||{series:K},"splice",[x,1]),he&&he.destroy(),K.isDirty=!0,K.isDirtyData=!0,N&&Ce.redraw()};B(R,Ce),N=Y(N,!0),he?he.firePointEvent("remove",null,Se):Se()}remove(x,N,R,K){let q=this,he=q.chart;function me(){q.destroy(K),he.isDirtyLegend=he.isDirtyBox=!0,he.linkSeries(K),Y(x,!0)&&he.redraw(N)}!1!==R?r(q,"remove",null,me):me()}update(x,N){r(this,"update",{options:x=a(x,this.userOptions)});let Ae,Fe,R=this,K=R.chart,q=R.userOptions,he=R.initialType||R.type,me=K.options.plotOptions,Ce=E[he].prototype,Se=R.finishedAnimating&&{animation:!1},Oe={},oe=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],ee=x.type||q.type||K.options.chart.type,de=!(this.hasDerivedData||ee&&ee!==this.type||void 0!==x.pointStart||void 0!==x.pointInterval||void 0!==x.relativeXValue||x.joinBy||x.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(Te=>R.hasOptionChanged(Te)));ee=ee||he,de&&(oe.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),!1!==x.visible&&oe.push("area","graph"),R.parallelArrays.forEach(function(Te){oe.push(Te+"Data")}),x.data&&(x.dataSorting&&o(R.options.dataSorting,x.dataSorting),this.setData(x.data,!1))),x=j(q,{index:void 0===q.index?R.index:q.index,pointStart:me?.series?.pointStart??q.pointStart??R.xData?.[0]},!de&&{data:R.options.data},x,Se),de&&x.data&&(x.data=R.options.data),(oe=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(oe)).forEach(function(Te){oe[Te]=R[Te],delete R[Te]});let ye=!1;if(E[ee]){if(ye=ee!==R.type,R.remove(!1,!1,!1,!0),ye)if(K.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(R,E[ee].prototype);else{let Te=Object.hasOwnProperty.call(R,"hcEvents")&&R.hcEvents;for(Fe in Ce)R[Fe]=void 0;o(R,E[ee].prototype),Te?R.hcEvents=Te:delete R.hcEvents}}else y(17,!0,K,{missingModuleFor:ee});if(oe.forEach(function(Te){R[Te]=oe[Te]}),R.init(K,x),de&&this.points)for(let Te of(!1===(Ae=R.options).visible?(Oe.graphic=1,Oe.dataLabel=1):(this.hasMarkerChanged(Ae,q)&&(Oe.graphic=1),R.hasDataLabels?.()||(Oe.dataLabel=1)),this.points))Te&&Te.series&&(Te.resolveColor(),Object.keys(Oe).length&&Te.destroyElements(Oe),!1===Ae.showInLegend&&Te.legendItem&&K.legend.destroyItem(Te));R.initialType=he,K.linkSeries(),K.setSortedData(),ye&&R.linkedSeries.length&&(R.isDirtyData=!0),r(this,"afterUpdate"),Y(N,!0)&&K.redraw(!!de&&void 0)}setName(x){this.name=this.options.name=this.userOptions.name=x,this.chart.isDirtyLegend=!0}hasOptionChanged(x){let R=this.options[x],K=this.chart.options.plotOptions,q=this.userOptions[x],he=Y(K?.[this.type]?.[x],K?.series?.[x]);return q&&!O(he)?R!==q:R!==Y(he,R)}onMouseOver(){let x=this.chart,N=x.hoverSeries;x.pointer?.setHoverChartIndex(),N&&N!==this&&N.onMouseOut(),this.options.events.mouseOver&&r(this,"mouseOver"),this.setState("hover"),x.hoverSeries=this}onMouseOut(){let x=this.options,N=this.chart,R=N.tooltip,K=N.hoverPoint;N.hoverSeries=null,K&&K.onMouseOut(),this&&x.events.mouseOut&&r(this,"mouseOut"),R&&!this.stickyTracking&&(!R.shared||this.noSharedTooltip)&&R.hide(),N.series.forEach(function(q){q.setState("",!0)})}setState(x,N){let R=this,K=R.options,q=R.graph,he=K.inactiveOtherPoints,me=K.states,Ce=Y(me[x||"normal"]&&me[x||"normal"].animation,R.chart.options.chart.animation),Se=K.lineWidth,Oe=K.opacity;if(R.state!==(x=x||"")&&([R.group,R.markerGroup,R.dataLabelsGroup].forEach(function(Ae){Ae&&(R.state&&Ae.removeClass("highcharts-series-"+R.state),x&&Ae.addClass("highcharts-series-"+x))}),R.state=x,!R.chart.styledMode)){if(me[x]&&!1===me[x].enabled)return;if(x&&(Se=me[x].lineWidth||Se+(me[x].lineWidthPlus||0),Oe=Y(me[x].opacity,Oe)),q&&!q.dashstyle&&p(Se))for(let Ae of[q,...this.zones.map(Fe=>Fe.graph)])Ae?.animate({"stroke-width":Se},Ce);he||[R.group,R.markerGroup,R.dataLabelsGroup,R.labelBySeries].forEach(function(Ae){Ae&&Ae.animate({opacity:Oe},Ce)})}N&&he&&R.points&&R.setAllPointsToState(x||void 0)}setAllPointsToState(x){this.points.forEach(function(N){N.setState&&N.setState(x)})}setVisible(x,N){let R=this,K=R.chart,q=K.options.chart.ignoreHiddenSeries;R.visible=x=R.options.visible=R.userOptions.visible=void 0===x?!R.visible:x;let me=x?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(Ce=>{R[Ce]?.[me]()}),(K.hoverSeries===R||K.hoverPoint?.series===R)&&R.onMouseOut(),R.legendItem&&K.legend.colorizeItem(R,x),R.isDirty=!0,R.options.stacking&&K.series.forEach(Ce=>{Ce.options.stacking&&Ce.visible&&(Ce.isDirty=!0)}),R.linkedSeries.forEach(Ce=>{Ce.setVisible(x,!1)}),q&&(K.isDirtyBox=!0),r(R,me),!1!==N&&K.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(x){this.selected=x=this.options.selected=void 0===x?!this.selected:x,this.checkbox&&(this.checkbox.checked=x),r(this,x?"select":"unselect")}shouldShowTooltip(x,N,R={}){return R.series=this,R.visiblePlotOnly=!0,this.chart.isInsidePlot(x,N,R)}drawLegendSymbol(x,N){le[this.options.legendSymbol||"rectangle"]?.call(this,x,N)}}return X.defaultOptions=pe,X.types=J.seriesTypes,X.registerType=J.registerSeriesType,o(X.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:fe,requireSorting:!0,sorted:!0}),J.series=X,X}),Pe(V,"Core/Chart/Chart.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Templating.js"],V["Core/Foundation.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Time.js"],V["Core/Utilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Axis/Tick.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L){let{animate:D,animObject:I,setAnimation:E}=Z,{defaultOptions:_,defaultTime:b}=re,{numberFormat:T}=ve,{registerEventOptions:z}=le,{charts:O,doc:f,marginNames:a,svg:g,win:y}=fe,{seriesTypes:o}=te,{addEvent:n,attr:r,createElement:l,css:d,defined:C,diffObjects:k,discardElement:p,erase:S,error:j,extend:H,find:Y,fireEvent:U,getStyle:se,isArray:w,isNumber:X,isObject:G,isString:x,merge:N,objectEach:R,pick:K,pInt:q,relativeLength:he,removeEvent:me,splat:Ce,syncTimeout:Se,uniqueKey:Oe}=B;class Ae{static chart(oe,ee,de){return new Ae(oe,ee,de)}constructor(oe,ee,de){this.sharedClips={};let ye=[...arguments];(x(oe)||oe.nodeName)&&(this.renderTo=ye.shift()),this.init(ye[0],ye[1])}setZoomOptions(){let oe=this.options.chart,ee=oe.zooming;this.zooming={...ee,type:K(oe.zoomType,ee.type),key:K(oe.zoomKey,ee.key),pinchType:K(oe.pinchType,ee.pinchType),singleTouch:K(oe.zoomBySingleTouch,ee.singleTouch,!1),resetButton:N(ee.resetButton,oe.resetZoomButton)}}init(oe,ee){U(this,"init",{args:arguments},function(){let de=N(_,oe),ye=de.chart;this.userOptions=H({},oe),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=ee,this.isResizing=0,this.options=de,this.axes=[],this.series=[],this.time=oe.time&&Object.keys(oe.time).length?new A(oe.time):fe.time,this.numberFormatter=ye.numberFormatter||T,this.styledMode=ye.styledMode,this.hasCartesianSeries=ye.showAxes,this.index=O.length,O.push(this),fe.chartCount++,z(this,ye),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),U(this,"afterInit"),this.firstRender()})}initSeries(oe){let de=oe.type||this.options.chart.type,ye=o[de];ye||j(17,!0,this,{missingModuleFor:de});let Te=new ye;return"function"==typeof Te.init&&Te.init(this,oe),Te}setSortedData(){this.getSeriesOrderByLinks().forEach(function(oe){oe.points||oe.data||!oe.enabledDataSorting||oe.setData(oe.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(oe,ee){return oe.linkedSeries.length||ee.linkedSeries.length?ee.linkedSeries.length-oe.linkedSeries.length:0})}orderItems(oe,ee=0){let de=this[oe],ye=this.options[oe]=Ce(this.options[oe]).slice(),Te=this.userOptions[oe]=this.userOptions[oe]?Ce(this.userOptions[oe]).slice():[];if(this.hasRendered&&(ye.splice(ee),Te.splice(ee)),de)for(let _e=ee,Me=de.length;_e=Math.max(Xe+_e,ht.pos)&&Lt<=Math.min(Xe+_e+Qe.width,ht.pos+ht.len)||(pt.isInsidePlot=!1)}if(!de.ignoreY&&pt.isInsidePlot){let ht=!ye&&de.axis&&!de.axis.isXAxis&&de.axis||lt&&(ye?lt.xAxis:lt.yAxis)||{pos:Me,len:1/0},Lt=de.paneCoordinates?ht.pos+kt:Me+kt;Lt>=Math.max(Ze+Me,ht.pos)&&Lt<=Math.min(Ze+Me+Qe.height,ht.pos+ht.len)||(pt.isInsidePlot=!1)}return U(this,"afterIsInsidePlot",pt),pt.isInsidePlot}redraw(oe){U(this,"beforeRedraw");let Ze,lt,Qe,pt,ee=this.hasCartesianSeries?this.axes:this.colorAxis||[],de=this.series,ye=this.pointer,Te=this.legend,_e=this.userOptions.legend,Me=this.renderer,Ee=Me.isHidden(),Xe=[],st=this.isDirtyBox,kt=this.isDirtyLegend;for(Me.rootFontSize=Me.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),E(!!this.hasRendered&&oe,this),Ee&&this.temporaryDisplay(),this.layOutTitles(!1),Qe=de.length;Qe--;)if(((pt=de[Qe]).options.stacking||pt.options.centerInCategory)&&(lt=!0,pt.isDirty)){Ze=!0;break}if(Ze)for(Qe=de.length;Qe--;)(pt=de[Qe]).options.stacking&&(pt.isDirty=!0);de.forEach(function(ht){ht.isDirty&&("point"===ht.options.legendType?("function"==typeof ht.updateTotals&&ht.updateTotals(),kt=!0):_e&&(_e.labelFormatter||_e.labelFormat)&&(kt=!0)),ht.isDirtyData&&U(ht,"updatedData")}),kt&&Te&&Te.options.enabled&&(Te.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),ee.forEach(function(ht){ht.updateNames(),ht.setScale()}),this.getMargins(),ee.forEach(function(ht){ht.isDirty&&(st=!0)}),ee.forEach(function(ht){let Lt=ht.min+","+ht.max;ht.extKey!==Lt&&(ht.extKey=Lt,Xe.push(function(){U(ht,"afterSetExtremes",H(ht.eventArgs,ht.getExtremes())),delete ht.eventArgs})),(st||lt)&&ht.redraw()}),st&&this.drawChartBox(),U(this,"predraw"),de.forEach(function(ht){(st||ht.isDirty)&&ht.visible&&ht.redraw(),ht.isDirtyData=!1}),ye&&ye.reset(!0),Me.draw(),U(this,"redraw"),U(this,"render"),Ee&&this.temporaryDisplay(!0),Xe.forEach(function(ht){ht.call()})}get(oe){let ee=this.series;function de(Te){return Te.id===oe||Te.options&&Te.options.id===oe}let ye=Y(this.axes,de)||Y(this.series,de);for(let Te=0;!ye&&Te(ee.getPointsCollection().forEach(de=>{K(de.selectedStaging,de.selected)&&oe.push(de)}),oe),[])}getSelectedSeries(){return this.series.filter(function(oe){return oe.selected})}setTitle(oe,ee,de){this.applyDescription("title",oe),this.applyDescription("subtitle",ee),this.applyDescription("caption",void 0),this.layOutTitles(de)}applyDescription(oe,ee){let de=this,ye=this.options[oe]=N(this.options[oe],ee),Te=this[oe];Te&&ee&&(this[oe]=Te=Te.destroy()),ye&&!Te&&((Te=this.renderer.text(ye.text,0,0,ye.useHTML).attr({align:ye.align,class:"highcharts-"+oe,zIndex:ye.zIndex||4}).add()).update=function(_e,Me){de.applyDescription(oe,_e),de.layOutTitles(Me)},this.styledMode||Te.css(H("title"===oe?{fontSize:this.options.isStock?"1em":"1.2em"}:{},ye.style)),this[oe]=Te)}layOutTitles(oe=!0){let ee=[0,0,0],de=this.renderer,ye=this.spacingBox;["title","subtitle","caption"].forEach(function(_e){let Me=this[_e],Ee=this.options[_e],Xe=Ee.verticalAlign||"top",Ze="title"===_e?"top"===Xe?-3:0:"top"===Xe?ee[0]+2:0;if(Me){Me.css({width:(Ee.width||ye.width+(Ee.widthAdjust||0))+"px"});let lt=de.fontMetrics(Me).b,Qe=Math.round(Me.getBBox(Ee.useHTML).height);Me.align(H({y:"bottom"===Xe?lt:Ze+lt,height:Qe},Ee),!1,"spacingBox"),Ee.floating||("top"===Xe?ee[0]=Math.ceil(ee[0]+Qe):"bottom"===Xe&&(ee[2]=Math.ceil(ee[2]+Qe)))}},this),ee[0]&&"top"===(this.options.title.verticalAlign||"top")&&(ee[0]+=this.options.title.margin),ee[2]&&"bottom"===this.options.caption.verticalAlign&&(ee[2]+=this.options.caption.margin);let Te=!this.titleOffset||this.titleOffset.join(",")!==ee.join(",");this.titleOffset=ee,U(this,"afterLayOutTitles"),!this.isDirtyBox&&Te&&(this.isDirtyBox=this.isDirtyLegend=Te,this.hasRendered&&oe&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:se(this.renderTo,"width",!0)||0,height:se(this.renderTo,"height",!0)||0}}getChartSize(){let oe=this.options.chart,ee=oe.width,de=oe.height,ye=this.getContainerBox();this.chartWidth=Math.max(0,ee||ye.width||600),this.chartHeight=Math.max(0,he(de,this.chartWidth)||(ye.height>1?ye.height:400)),this.containerBox=ye}temporaryDisplay(oe){let de,ee=this.renderTo;if(oe)for(;ee&&ee.style;)ee.hcOrigStyle&&(d(ee,ee.hcOrigStyle),delete ee.hcOrigStyle),ee.hcOrigDetached&&(f.body.removeChild(ee),ee.hcOrigDetached=!1),ee=ee.parentNode;else for(;ee&&ee.style&&(f.body.contains(ee)||ee.parentNode||(ee.hcOrigDetached=!0,f.body.appendChild(ee)),("none"===se(ee,"display",!1)||ee.hcOricDetached)&&(ee.hcOrigStyle={display:ee.style.display,height:ee.style.height,overflow:ee.style.overflow},de={display:"block",overflow:"hidden"},ee!==this.renderTo&&(de.height=0),d(ee,de),ee.offsetWidth||ee.style.setProperty("display","block","important")),(ee=ee.parentNode)!==f.body););}setClassName(oe){this.container.className="highcharts-container "+(oe||"")}getContainer(){let Te,oe=this.options,ee=oe.chart,de="data-highcharts-chart",ye=Oe(),_e=this.renderTo;_e||(this.renderTo=_e=ee.renderTo),x(_e)&&(this.renderTo=_e=f.getElementById(_e)),_e||j(13,!0,this);let Me=q(r(_e,de));X(Me)&&O[Me]&&O[Me].hasRendered&&O[Me].destroy(),r(_e,de,this.index),_e.innerHTML=F.emptyHTML,ee.skipClone||_e.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ee=this.chartHeight,Xe=this.chartWidth;d(_e,{overflow:"hidden"}),this.styledMode||(Te=H({position:"relative",overflow:"hidden",width:Xe+"px",height:Ee+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},ee.style||{}));let Ze=l("div",{id:ye},Te,_e);this.container=Ze,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||d(Ze,{width:K(ee.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=Ze.style.cursor;let lt=ee.renderer||!g?pe.getRendererType(ee.renderer):$;if(this.renderer=new lt(Ze,Xe,Ee,void 0,ee.forExport,oe.exporting&&oe.exporting.allowHTML,this.styledMode),E(void 0,this),this.setClassName(ee.className),this.styledMode)for(let Qe in oe.defs)this.renderer.definition(oe.defs[Qe]);else this.renderer.setStyle(ee.style);this.renderer.chartIndex=this.index,U(this,"afterGetContainer")}getMargins(oe){let{spacing:ee,margin:de,titleOffset:ye}=this;this.resetMargins(),ye[0]&&!C(de[0])&&(this.plotTop=Math.max(this.plotTop,ye[0]+ee[0])),ye[2]&&!C(de[2])&&(this.marginBottom=Math.max(this.marginBottom,ye[2]+ee[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(de,ee),U(this,"getMargins"),oe||this.getAxisMargins()}getAxisMargins(){let oe=this,ee=oe.axisOffset=[0,0,0,0],de=oe.colorAxis,ye=oe.margin,Te=function(_e){_e.forEach(function(Me){Me.visible&&Me.getOffset()})};oe.hasCartesianSeries?Te(oe.axes):de&&de.length&&Te(de),a.forEach(function(_e,Me){C(ye[Me])||(oe[_e]+=ee[Me])}),oe.setChartSize()}getOptions(){return k(this.userOptions,_)}reflow(oe){let ee=this,de=ee.containerBox,ye=ee.getContainerBox();delete ee.pointer?.chartPosition,!ee.isPrinting&&!ee.isResizing&&de&&ye.width&&((ye.width!==de.width||ye.height!==de.height)&&(B.clearTimeout(ee.reflowTimeout),ee.reflowTimeout=Se(function(){ee.container&&ee.setSize(void 0,void 0,!1)},oe?100:0)),ee.containerBox=ye)}setReflow(){let oe=this,ee=de=>{oe.options?.chart.reflow&&oe.hasLoaded&&oe.reflow(de)};if("function"==typeof ResizeObserver)new ResizeObserver(ee).observe(oe.renderTo);else{let de=n(y,"resize",ee);n(this,"destroy",de)}}setSize(oe,ee,de){let ye=this,Te=ye.renderer;ye.isResizing+=1,E(de,ye);let _e=Te.globalAnimation;ye.oldChartHeight=ye.chartHeight,ye.oldChartWidth=ye.chartWidth,void 0!==oe&&(ye.options.chart.width=oe),void 0!==ee&&(ye.options.chart.height=ee),ye.getChartSize();let{chartWidth:Me,chartHeight:Ee,scrollablePixelsX:Xe=0,scrollablePixelsY:Ze=0}=ye;(ye.isDirtyBox||Me!==ye.oldChartWidth||Ee!==ye.oldChartHeight)&&(ye.styledMode||(_e?D:d)(ye.container,{width:`${Me+Xe}px`,height:`${Ee+Ze}px`},_e),ye.setChartSize(!0),Te.setSize(Me,Ee,_e),ye.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),ye.isDirtyLegend=!0,ye.isDirtyBox=!0,ye.layOutTitles(),ye.getMargins(),ye.redraw(_e),ye.oldChartHeight=void 0,U(ye,"resize"),setTimeout(()=>{ye&&U(ye,"endResize",void 0,()=>{ye.isResizing-=1})},I(_e).duration))}setChartSize(oe){let ee,de,ye,Te,_e=this.inverted,Me=this.renderer,Ee=this.chartWidth,Xe=this.chartHeight,Ze=this.options.chart,lt=this.spacing,Qe=this.clipOffset;this.plotLeft=ee=Math.round(this.plotLeft),this.plotTop=de=Math.round(this.plotTop),this.plotWidth=ye=Math.max(0,Math.round(Ee-ee-this.marginRight)),this.plotHeight=Te=Math.max(0,Math.round(Xe-de-this.marginBottom)),this.plotSizeX=_e?Te:ye,this.plotSizeY=_e?ye:Te,this.plotBorderWidth=Ze.plotBorderWidth||0,this.spacingBox=Me.spacingBox={x:lt[3],y:lt[0],width:Ee-lt[3]-lt[1],height:Xe-lt[0]-lt[2]},this.plotBox=Me.plotBox={x:ee,y:de,width:ye,height:Te};let st=2*Math.floor(this.plotBorderWidth/2),kt=Math.ceil(Math.max(st,Qe[3])/2),pt=Math.ceil(Math.max(st,Qe[0])/2);this.clipBox={x:kt,y:pt,width:Math.floor(this.plotSizeX-Math.max(st,Qe[1])/2-kt),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(st,Qe[2])/2-pt))},oe||(this.axes.forEach(function(ht){ht.setAxisSize(),ht.setAxisTranslation()}),Me.alignElements()),U(this,"afterSetChartSize",{skipAxes:oe})}resetMargins(){U(this,"resetMargins");let oe=this,ee=oe.options.chart;["margin","spacing"].forEach(function(de){let ye=ee[de],Te=G(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(_e,Me){oe[de][Me]=K(ee[de+_e],Te[Me])})}),a.forEach(function(de,ye){oe[de]=K(oe.margin[ye],oe.spacing[ye])}),oe.axisOffset=[0,0,0,0],oe.clipOffset=[0,0,0,0]}drawChartBox(){let Mt,At,_t,oe=this.options.chart,ee=this.renderer,de=this.chartWidth,ye=this.chartHeight,Te=this.styledMode,_e=this.plotBGImage,Me=oe.backgroundColor,Ee=oe.plotBackgroundColor,Xe=oe.plotBackgroundImage,Ze=this.plotLeft,lt=this.plotTop,Qe=this.plotWidth,st=this.plotHeight,kt=this.plotBox,pt=this.clipRect,ht=this.clipBox,Lt=this.chartBackground,Gt=this.plotBackground,ti=this.plotBorder,wt="animate";Lt||(this.chartBackground=Lt=ee.rect().addClass("highcharts-background").add(),wt="attr"),Te?Mt=At=Lt.strokeWidth():(At=(Mt=oe.borderWidth||0)+(oe.shadow?8:0),_t={fill:Me||"none"},(Mt||Lt["stroke-width"])&&(_t.stroke=oe.borderColor,_t["stroke-width"]=Mt),Lt.attr(_t).shadow(oe.shadow)),Lt[wt]({x:At/2,y:At/2,width:de-At-Mt%2,height:ye-At-Mt%2,r:oe.borderRadius}),wt="animate",Gt||(wt="attr",this.plotBackground=Gt=ee.rect().addClass("highcharts-plot-background").add()),Gt[wt](kt),!Te&&(Gt.attr({fill:Ee||"none"}).shadow(oe.plotShadow),Xe&&(_e?(Xe!==_e.attr("href")&&_e.attr("href",Xe),_e.animate(kt)):this.plotBGImage=ee.image(Xe,Ze,lt,Qe,st).add())),pt?pt.animate({width:ht.width,height:ht.height}):this.clipRect=ee.clipRect(ht),wt="animate",ti||(wt="attr",this.plotBorder=ti=ee.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Te||ti.attr({stroke:oe.plotBorderColor,"stroke-width":oe.plotBorderWidth||0,fill:"none"}),ti[wt](ti.crisp({x:Ze,y:lt,width:Qe,height:st},-ti.strokeWidth())),this.isDirtyBox=!1,U(this,"afterDrawChartBox")}propFromSeries(){let oe,ee,de,ye=this,Te=ye.options.chart,_e=ye.options.series;["inverted","angular","polar"].forEach(function(Me){for(ee=o[Te.type],de=Te[Me]||ee&&ee.prototype[Me],oe=_e&&_e.length;!de&&oe--;)(ee=o[_e[oe].type])&&ee.prototype[Me]&&(de=!0);ye[Me]=de})}linkSeries(oe){let ee=this,de=ee.series;de.forEach(function(ye){ye.linkedSeries.length=0}),de.forEach(function(ye){let{linkedTo:Te}=ye.options;if(x(Te)){let _e;(_e=":previous"===Te?ee.series[ye.index-1]:ee.get(Te))&&_e.linkedParent!==ye&&(_e.linkedSeries.push(ye),ye.linkedParent=_e,_e.enabledDataSorting&&ye.setDataSortingOptions(),ye.visible=K(ye.options.visible,_e.options.visible,ye.visible))}}),U(this,"afterLinkSeries",{isUpdating:oe})}renderSeries(){this.series.forEach(function(oe){oe.translate(),oe.render()})}render(){let Ee,oe=this.axes,ee=this.colorAxis,de=this.renderer,ye=this.options.chart.axisLayoutRuns||2,Te=Ze=>{Ze.forEach(lt=>{lt.visible&<.render()})},_e=0,Me=!0,Xe=0;for(let Ze of(this.setTitle(),U(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),oe)){let{options:lt}=Ze,{labels:Qe}=lt;if(Ze.horiz&&Ze.visible&&Qe.enabled&&Ze.series.length&&"colorAxis"!==Ze.coll&&!this.polar){_e=lt.tickLength,Ze.createGroups();let st=new L(Ze,0,"",!0),kt=st.createLabel("x",Qe);if(st.destroy(),kt&&K(Qe.reserveSpace,!X(lt.crossing))&&(_e=kt.getBBox().height+Qe.distance+Math.max(lt.offset||0,0)),_e){kt?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-_e,0);(Me||Ee||ye>1)&&Xe(Xe?1:1.1),Ee=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Te(oe):ee&&ee.length&&Te(ee),this.seriesGroup||(this.seriesGroup=de.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(oe){let ee=this,de=N(!0,this.options.credits,oe);de.enabled&&!this.credits&&(this.credits=this.renderer.text(de.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){de.href&&(y.location.href=de.href)}).attr({align:de.position.align,zIndex:8}),ee.styledMode||this.credits.css(de.style),this.credits.add().align(de.position),this.credits.update=function(ye){ee.credits=ee.credits.destroy(),ee.addCredits(ye)})}destroy(){let oe,ee=this,de=ee.axes,ye=ee.series,Te=ee.container,_e=Te&&Te.parentNode;for(U(ee,"destroy"),ee.renderer.forExport?S(O,ee):O[ee.index]=void 0,fe.chartCount--,ee.renderTo.removeAttribute("data-highcharts-chart"),me(ee),oe=de.length;oe--;)de[oe]=de[oe].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),oe=ye.length;oe--;)ye[oe]=ye[oe].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(Me){let Ee=ee[Me];Ee&&Ee.destroy&&(ee[Me]=Ee.destroy())}),Te&&(Te.innerHTML=F.emptyHTML,me(Te),_e&&p(Te)),R(ee,function(Me,Ee){delete ee[Ee]})}firstRender(){let oe=this,ee=oe.options;oe.getContainer(),oe.resetMargins(),oe.setChartSize(),oe.propFromSeries(),oe.getAxes();let de=w(ee.series)?ee.series:[];ee.series=[],de.forEach(function(ye){oe.initSeries(ye)}),oe.linkSeries(),oe.setSortedData(),U(oe,"beforeRender"),oe.render(),oe.pointer?.getChartPosition(),oe.renderer.imgCount||oe.hasLoaded||oe.onload(),oe.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(oe){oe&&void 0!==this.index&&oe.apply(this,[this])},this),U(this,"load"),U(this,"render"),C(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:oe,title:ee}=this;!oe||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(ee&&ee.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(oe,ee){let de=this,ye="object"==typeof ee?ee:{enabled:ee,type:"x"},Te=ye.type,_e=Te&&de[{x:"xAxis",xy:"axes",y:"yAxis"}[Te]].filter(Ee=>Ee.options.panningEnabled&&!Ee.options.isInternal),Me=de.options.chart;Me?.panning&&(Me.panning=ye),U(this,"pan",{originalEvent:oe},()=>{de.transform({axes:_e,event:oe,to:{x:oe.chartX-(de.mouseDownX||0),y:oe.chartY-(de.mouseDownY||0)},trigger:"pan"}),d(de.container,{cursor:"move"})})}transform(oe){let Qe,{axes:ee=this.axes,event:de,from:ye={},reset:Te,selection:_e,to:Me={},trigger:Ee}=oe,{inverted:Xe,resetZoomButton:Ze}=this,lt=!1;for(let st of(this.hoverPoints?.forEach(kt=>kt.setState()),ee)){let{horiz:kt,len:pt,minPointOffset:ht=0,options:Lt,reversed:Gt}=st,ti=kt?"width":"height",Mt=kt?"x":"y",At=Me[ti]||st.len,_t=ye[ti]||st.len,wt=10>Math.abs(At)?1:At/_t,Jt=(ye[Mt]||0)+_t/2-st.pos,ui=Jt-((Me[Mt]??st.pos)+At/2-st.pos)/wt,Fi=Gt&&!Xe||!Gt&&Xe?-1:1;if(!Te&&(Jt<0||Jt>st.len))continue;let mi=st.toValue(ui,!0)+ht*Fi,vi=st.toValue(ui+pt/wt,!0)-(ht*Fi||0),Gi=st.allExtremes;if(mi>vi&&([mi,vi]=[vi,mi]),1===wt&&!Te&&"yAxis"===st.coll&&!Gi){for(let ws of st.series){let kn=ws.getExtremes(ws.getProcessedData(!0).yData,!0);Gi??(Gi={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),X(kn.dataMin)&&X(kn.dataMax)&&(Gi.dataMin=Math.min(kn.dataMin,Gi.dataMin),Gi.dataMax=Math.max(kn.dataMax,Gi.dataMax))}st.allExtremes=Gi}let{dataMin:_s,dataMax:Fn,min:ls,max:fs}=H(st.getExtremes(),Gi||{}),zn=_s??Lt.min,dn=Fn??Lt.max,Di=vi-mi,Cs=st.categories?0:Math.min(Di,dn-zn),On=zn-Cs*(C(Lt.min)?0:Lt.minPadding),Pn=dn+Cs*(C(Lt.max)?0:Lt.maxPadding),As=st.allowZoomOutside||1===wt||"zoom"!==Ee&&wt>1,$n=Math.min(Lt.min??On,On,As?ls:On),$i=Math.max(Lt.max??Pn,Pn,As?fs:Pn);(!st.isOrdinal||1!==wt||Te)&&(mi<$n&&(mi=$n,wt>=1&&(vi=mi+Di)),vi>$i&&(vi=$i,wt>=1&&(mi=vi-Di)),(Te||st.series.length&&(mi!==ls||vi!==fs)&&mi>=$n&&vi<=$i)&&(_e?_e[st.coll].push({axis:st,min:mi,max:vi}):(st.isPanning="zoom"!==Ee,st.setExtremes(Te?void 0:mi,Te?void 0:vi,!1,!1,{move:ui,trigger:Ee,scale:wt}),!Te&&(mi>$n||vi<$i)&&"mousewheel"!==Ee&&(Qe=!0)),lt=!0),de&&(this[kt?"mouseDownX":"mouseDownY"]=de[kt?"chartX":"chartY"]))}return lt&&(_e?U(this,"selection",_e,()=>{delete oe.selection,oe.trigger="zoom",this.transform(oe)}):(Qe&&!Ze?this.showResetZoom():!Qe&&Ze&&(this.resetZoomButton=Ze.destroy()),this.redraw("zoom"===Ee&&(this.options.chart.animation??this.pointCount<100)))),lt}}return H(Ae.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ae.prototype.addAxis,[!0]],yAxis:[Ae.prototype.addAxis,[!1]],series:[Ae.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ae}),Pe(V,"Extensions/ScrollablePlotArea.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Globals.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{stop:le}=Z,{composed:fe}=ie,{addEvent:pe,createElement:J,css:te,defined:$,merge:A,pushUnique:B}=ve;function F(){let I=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!I&&(this.scrollablePlotArea=I=new D(this)),I?.applyFixed()}function L(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class D{static compose(E,_,b){B(fe,this.compose)&&(pe(E,"afterInit",L),pe(_,"afterSetChartSize",T=>this.afterSetSize(T.target,T)),pe(_,"render",F),pe(b,"show",L))}static afterSetSize(E,_){let b,T,z,{minWidth:O,minHeight:f}=E.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:g,inverted:y,renderer:o}=E;if(!o.forExport&&(O?(E.scrollablePixelsX=b=Math.max(0,O-E.chartWidth),b&&(E.scrollablePlotBox=A(E.plotBox),g.width=E.plotWidth+=b,a[y?"height":"width"]+=b,z=!0)):f&&(E.scrollablePixelsY=T=Math.max(0,f-E.chartHeight),$(T)&&(E.scrollablePlotBox=A(E.plotBox),g.height=E.plotHeight+=T,a[y?"width":"height"]+=T,z=!1)),$(z)&&!_.skipAxes))for(let n of E.axes)n.horiz===z&&(n.setAxisSize(),n.setAxisTranslation())}constructor(E){let _,b=E.options.chart,T=re.getRendererType(),z=b.scrollablePlotArea||{},O=this.moveFixedElements.bind(this),f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};E.scrollablePixelsX&&(f.overflowX="auto"),E.scrollablePixelsY&&(f.overflowY="auto"),this.chart=E;let a=this.parentDiv=J("div",{className:"highcharts-scrolling-parent"},{position:"relative"},E.renderTo),g=this.scrollingContainer=J("div",{className:"highcharts-scrolling"},f,a),y=this.innerContainer=J("div",{className:"highcharts-inner-container"},void 0,g),o=this.fixedDiv=J("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style?.zIndex||0)+2,top:0},void 0,!0),n=this.fixedRenderer=new T(o,E.chartWidth,E.chartHeight,b.style);this.mask=n.path().attr({fill:b.backgroundColor||"#fff","fill-opacity":z.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),g.parentNode.insertBefore(o,g),te(E.renderTo,{overflow:"visible"}),pe(E,"afterShowResetZoom",O),pe(E,"afterApplyDrilldown",O),pe(E,"afterLayOutTitles",O),pe(g,"scroll",()=>{let{pointer:r,hoverPoint:l}=E;r&&(delete r.chartPosition,l&&(_=l),r.runPointActions(void 0,_,!0))}),y.appendChild(E.container)}applyFixed(){let{chart:E,fixedRenderer:_,isDirty:b,scrollingContainer:T}=this,{axisOffset:z,chartWidth:O,chartHeight:f,container:a,plotHeight:g,plotLeft:y,plotTop:o,plotWidth:n,scrollablePixelsX:r=0,scrollablePixelsY:l=0}=E,{scrollPositionX:d=0,scrollPositionY:C=0}=E.options.chart.scrollablePlotArea||{},k=O+r,p=f+l;_.setSize(O,f),(b??!0)&&(this.isDirty=!1,this.moveFixedElements()),le(E.container),te(a,{width:`${k}px`,height:`${p}px`}),E.renderer.boxWrapper.attr({width:k,height:p,viewBox:[0,0,k,p].join(" ")}),E.chartBackground?.attr({width:k,height:p}),te(T,{width:`${O}px`,height:`${f}px`}),$(b)||(T.scrollLeft=r*d,T.scrollTop=l*C);let S=o-z[0]-1,j=y-z[3]-1,H=o+g+z[2]+1,Y=y+n+z[1]+1,U=y+n-r,se=o+g-l,w=[["M",0,0]];r?w=[["M",0,S],["L",y-1,S],["L",y-1,H],["L",0,H],["Z"],["M",U,S],["L",O,S],["L",O,H],["L",U,H],["Z"]]:l&&(w=[["M",j,0],["L",j,o-1],["L",Y,o-1],["L",Y,0],["Z"],["M",j,se],["L",j,f],["L",Y,f],["L",Y,se],["Z"]]),"adjustHeight"!==E.redrawTrigger&&this.mask.attr({d:w})}moveFixedElements(){let E,{container:_,inverted:b,scrollablePixelsX:T,scrollablePixelsY:z}=this.chart,O=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];for(let a of(T&&!b?E=".highcharts-yaxis":T&&b||z&&!b?E=".highcharts-xaxis":z&&b&&(E=".highcharts-yaxis"),E&&f.push(`${E}:not(.highcharts-radial-axis)`,`${E}-labels:not(.highcharts-radial-axis-labels)`),f))[].forEach.call(_.querySelectorAll(a),g=>{(g.namespaceURI===O.SVG_NS?O.box:O.box.parentNode).appendChild(g),g.style.pointerEvents="auto"})}}return D}),Pe(V,"Core/Axis/Stacking/StackItem.js",[V["Core/Templating.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{format:ve}=Z,{series:le}=ie,{destroyObjectProperties:fe,fireEvent:pe,isNumber:J,pick:te}=re;return class{constructor($,A,B,F,L){let D=$.chart.inverted,I=$.reversed;this.axis=$;let E=this.isNegative=!!B!=!!I;this.options=A=A||{},this.x=F,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=L,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:A.align||(D?E?"left":"right":"center"),verticalAlign:A.verticalAlign||(D?"middle":E?"bottom":"top"),y:A.y,x:A.x},this.textAlign=A.textAlign||(D?E?"right":"left":"center")}destroy(){fe(this,this.axis)}render($){let A=this.axis.chart,B=this.options,F=B.format,L=F?ve(F,this,A):B.formatter.call(this);if(this.label)this.label.attr({text:L,visibility:"hidden"});else{this.label=A.renderer.label(L,null,void 0,B.shape,void 0,void 0,B.useHTML,!1,"stack-labels");let D={r:B.borderRadius||0,text:L,padding:te(B.padding,5),visibility:"hidden"};A.styledMode||(D.fill=B.backgroundColor,D.stroke=B.borderColor,D["stroke-width"]=B.borderWidth,this.label.css(B.style||{})),this.label.attr(D),this.label.added||this.label.add($)}this.label.labelrank=A.plotSizeY,pe(this,"afterRender")}setOffset($,A,B,F,L,D){let{alignOptions:I,axis:E,label:_,options:b,textAlign:T}=this,z=E.chart,O=this.getStackBox({xOffset:$,width:A,boxBottom:B,boxTop:F,defaultX:L,xAxis:D}),{verticalAlign:f}=I;if(_&&O){let o,a=_.getBBox(void 0,0),g=_.padding,y="justify"===te(b.overflow,"justify");I.x=b.x||0,I.y=b.y||0;let{x:n,y:r}=this.adjustStackPosition({labelBox:a,verticalAlign:f,textAlign:T});O.x-=n,O.y-=r,_.align(I,!1,O),(o=z.isInsidePlot(_.alignAttr.x+I.x+n,_.alignAttr.y+I.y+r))||(y=!1),y&&le.prototype.justifyDataLabel.call(E,_,I,_.alignAttr,a,O),_.attr({x:_.alignAttr.x,y:_.alignAttr.y,rotation:b.rotation,rotationOriginX:a.width*{left:0,center:.5,right:1}[b.textAlign||"center"],rotationOriginY:a.height/2}),te(!y&&b.crop,!0)&&(o=J(_.x)&&J(_.y)&&z.isInsidePlot(_.x-g+(_.width||0),_.y)&&z.isInsidePlot(_.x+g,_.y)),_[o?"show":"hide"]()}pe(this,"afterSetOffset",{xOffset:$,width:A})}adjustStackPosition({labelBox:$,verticalAlign:A,textAlign:B}){let F={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:$.width/2+$.width/2*F[B],y:$.height/2*F[A]}}getStackBox($){let A=this.axis,B=A.chart,{boxTop:F,defaultX:L,xOffset:D,width:I,boxBottom:E}=$,_=A.stacking.usePercentage?100:te(F,this.total,0),b=A.toPixels(_),T=$.xAxis||B.xAxis[0],z=te(L,T.translate(this.x))+D,O=Math.abs(b-A.toPixels(E||J(A.min)&&A.logarithmic&&A.logarithmic.lin2log(A.min)||0)),a=this.isNegative;return B.inverted?{x:(a?b:b-O)-B.plotLeft,y:T.height-z-I,width:O,height:I}:{x:z+T.transB-B.plotLeft,y:(a?b-O:b)-B.plotTop,width:I,height:O}}}}),Pe(V,"Core/Axis/Stacking/StackingAxis.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Axis/Axis.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{getDeferredAnimation:pe}=Z,{series:{prototype:J}}=re,{addEvent:te,correctFloat:$,defined:A,destroyObjectProperties:B,fireEvent:F,isArray:L,isNumber:D,objectEach:I,pick:E}=le;function _(){let o=this.inverted;this.axes.forEach(n=>{n.stacking&&n.stacking.stacks&&n.hasVisibleSeries&&(n.stacking.oldStacks=n.stacking.stacks)}),this.series.forEach(n=>{let r=n.xAxis&&n.xAxis.options||{};n.options.stacking&&n.reserveSpace()&&(n.stackKey=[n.type,E(n.options.stack,""),o?r.top:r.left,o?r.height:r.width].join(","))})}function b(){let o=this.stacking;if(o){let n=o.stacks;I(n,(r,l)=>{B(r),delete n[l]}),o.stackTotalGroup?.destroy()}}function T(){this.stacking||(this.stacking=new y(this))}function z(o,n,r,l){return!A(o)||o.x!==n||l&&o.stackKey!==l?o={x:n,index:0,key:l,stackKey:l}:o.index++,o.key=[r,n,o.index].join(","),o}function O(){let o,n=this,l=n.stackKey||"",d=n.yAxis.stacking.stacks,C=n.processedXData,p=n[n.options.stacking+"Stacker"];p&&[l,"-"+l].forEach(S=>{let H,Y,U,j=C.length;for(;j--;)H=C[j],o=n.getStackIndicator(o,H,n.index,S),Y=d[S]?.[H],(U=Y?.points[o.key||""])&&p.call(n,U,Y,j)})}function f(o,n,r){let l=n.total?100/n.total:0;o[0]=$(o[0]*l),o[1]=$(o[1]*l),this.stackedYData[r]=o[1]}function a(o){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?J.setStackedPoints.call(this,o,"group"):o.stacking.resetStacks())}function g(o,n){let r,l,d,C,k,p,S,j,H,Y=n||this.options.stacking;if(!Y||!this.reserveSpace()||({group:"xAxis"}[Y]||"yAxis")!==o.coll)return;let U=this.processedXData,se=this.processedYData,w=[],X=se.length,G=this.options,x=G.threshold||0,N=G.startFromThreshold?x:0,R=G.stack,K=n?`${this.type},${Y}`:this.stackKey||"",q="-"+K,he=this.negStacks,me=o.stacking,Ce=me.stacks,Se=me.oldStacks;for(me.stacksTouched+=1,S=0;S0&&!1===this.singleStacks&&(d.points[p][0]=d.points[this.index+","+j+",0"][0])):(delete d.points[p],delete d.points[this.index]);let Oe=d.total||0;"percent"===Y?(C=l?K:q,Oe=he&&Ce[C]?.[j]?(C=Ce[C][j]).total=Math.max(C.total||0,Oe)+Math.abs(H)||0:$(Oe+(Math.abs(H)||0))):"group"===Y?(L(H)&&(H=H[0]),null!==H&&Oe++):Oe=$(Oe+(H||0)),d.cumulative="group"===Y?(Oe||1)-1:$(E(d.cumulative,N)+(H||0)),d.total=Oe,null!==H&&(d.points[p].push(d.cumulative),w[S]=d.cumulative,d.hasValidPoints=!0)}"percent"===Y&&(me.usePercentage=!0),"group"!==Y&&(this.stackedYData=w),me.oldStacks={}}class y{constructor(n){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=n}buildStacks(){let n,r,l=this.axis,d=l.series,C="xAxis"===l.coll,k=l.options.reversedStacks,p=d.length;for(this.resetStacks(),this.usePercentage=!1,r=p;r--;)n=d[k?r:p-r-1],C&&n.setGroupedPoints(l),n.setStackedPoints(l);if(!C)for(r=0;r{I(n,r=>{r.cumulative=r.total})}))}resetStacks(){I(this.stacks,n=>{I(n,(r,l)=>{D(r.touched)&&r.touched{I(p,S=>{S.render(k)})}),k.animate({opacity:1},C)}}return(fe||(fe={})).compose=function(o,n,r){let l=n.prototype,d=r.prototype;l.getStacks||(te(o,"init",T),te(o,"destroy",b),l.getStacks=_,d.getStackIndicator=z,d.modifyStacks=O,d.percentStacker=f,d.setGroupedPoints=a,d.setStackedPoints=g)},fe}),Pe(V,"Series/Line/LineSeries.js",[V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defined:ve,merge:le,isObject:fe}=re;class pe extends Z{drawGraph(){let te=this.options,$=(this.gappedPath||this.getGraphPath).call(this),A=this.chart.styledMode;[this,...this.zones].forEach((B,F)=>{let L,D=B.graph,I=D?"animate":"attr",E=B.dashStyle||te.dashStyle;D?(D.endX=this.preventGraphAnimation?null:$.xMap,D.animate({d:$})):$.length&&(B.graph=D=this.chart.renderer.path($).addClass("highcharts-graph"+(F?` highcharts-zone-graph-${F-1} `:" ")+(F&&B.className||"")).attr({zIndex:1}).add(this.group)),D&&!A&&(L={stroke:!F&&te.lineColor||B.color||this.color||"#cccccc","stroke-width":te.lineWidth||0,fill:this.fillGraph&&this.color||"none"},E?L.dashstyle=E:"square"!==te.linecap&&(L["stroke-linecap"]=L["stroke-linejoin"]="round"),D[I](L).shadow(F<2&&te.shadow&&le({filterUnits:"userSpaceOnUse"},fe(te.shadow)?te.shadow:{}))),D&&(D.startX=$.xMap,D.isArea=$.isArea)})}getGraphPath(te,$,A){let I,B=this,F=B.options,L=[],D=[],E=F.step,_=(te=te||B.points).reversed;return _&&te.reverse(),(E={right:1,center:2}[E]||E&&3)&&_&&(E=4-E),(te=this.getValidPoints(te,!1,!(F.connectNulls&&!$&&!A))).forEach(function(b,T){let z,O=b.plotX,f=b.plotY,a=te[T-1],g=b.isNull||"number"!=typeof f;(b.leftCliff||a&&a.rightCliff)&&!A&&(I=!0),g&&!ve($)&&T>0?I=!F.connectNulls:g&&!$?I=!0:(0===T||I?z=[["M",b.plotX,b.plotY]]:B.getPointSpline?z=[B.getPointSpline(te,b,T)]:E?(z=1===E?[["L",a.plotX,f]]:2===E?[["L",(a.plotX+O)/2,a.plotY],["L",(a.plotX+O)/2,f]]:[["L",O,a.plotY]]).push(["L",O,f]):z=[["L",O,f]],D.push(b.x),E&&(D.push(b.x),2===E&&D.push(b.x)),L.push.apply(L,z),I=!1)}),L.xMap=D,B.graphPath=L,L}}return pe.defaultOptions=le(Z.defaultOptions,{legendSymbol:"lineMarker"}),ie.registerSeriesType("line",pe),pe}),Pe(V,"Series/Area/AreaSeries.js",[V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie){let{seriesTypes:{line:re}}=Z,{extend:ve,merge:le,objectEach:fe,pick:pe}=ie;class J extends re{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:$,options:A}=this;[this,...this.zones].forEach((B,F)=>{let L={},D=B.fillColor||A.fillColor,I=B.area,E=I?"animate":"attr";I?(I.endX=this.preventGraphAnimation?null:$.xMap,I.animate({d:$})):(L.zIndex=0,(I=B.area=this.chart.renderer.path($).addClass("highcharts-area"+(F?` highcharts-zone-area-${F-1} `:" ")+(F&&B.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(L.fill=D||B.color||this.color,L["fill-opacity"]=D?1:A.fillOpacity??.75,I.css({pointerEvents:this.stickyTracking?"none":"auto"})),I[E](L),I.startX=$.xMap,I.shiftUnit=A.step?2:1})}getGraphPath($){let A,B,F,L=re.prototype.getGraphPath,D=this.options,I=D.stacking,E=this.yAxis,_=[],b=[],T=this.index,z=E.stacking.stacks[this.stackKey],O=D.threshold,f=Math.round(E.getThreshold(D.threshold)),a=pe(D.connectNulls,"percent"===I),g=function(d,C,k){let Y,U,p=$[d],S=I&&z[p.x].points[T],j=p[k+"Null"]||0,H=p[k+"Cliff"]||0,se=!0;H||j?(Y=(j?S[0]:S[1])+H,U=S[0]+H,se=!!j):!I&&$[C]&&$[C].isNull&&(Y=U=O),void 0!==Y&&(b.push({plotX:A,plotY:null===Y?f:E.getThreshold(Y),isNull:se,isCliff:!0}),_.push({plotX:A,plotY:null===U?f:E.getThreshold(U),doCurve:!1}))};$=$||this.points,I&&($=this.getStackPoints($));for(let d=0,C=$.length;df.visible);F.forEach(function(f,a){let y,o,g=0;if(E[f]&&!E[f].isNull)B.push(E[f]),[-1,1].forEach(function(n){let r=1===n?"rightNull":"leftNull",l=I[F[a+n]],d=0;if(l){let C=z;for(;C>=0&&C=0&&nO&&B>I?(B=Math.max(O,I),L=2*I-B):Ba&&L>I?(L=Math.max(a,I),B=2*I-L):L=Math.abs(f)&&r>.5;return g=r-(f=Math.round(f)+n),l&&g&&(f-=1,g+=1),{x:O,y:f,width:a,height:g}}adjustForMissingColumns(O,f,a,g){if(!a.isNull&&g.columnCount>1){let y=this.xAxis.series.filter(l=>l.visible).map(l=>l.index),o=0,n=0;b(this.xAxis.stacking?.stacks,l=>{if("number"==typeof a.x){let d=l[a.x.toString()];if(d&&D(d.points[this.index])){let C=Object.keys(d.points).filter(k=>!k.match(",")&&d.points[k]&&d.points[k].length>1).map(parseFloat).filter(k=>-1!==y.indexOf(k)).sort((k,p)=>p-k);o=C.indexOf(this.index),n=C.length}}}),o=this.xAxis.reversed?n-1-o:o,O=(a.plotX||0)+((n-1)*g.paddedWidth+f)/2-f-o*g.paddedWidth}return O}translate(){let O=this,f=O.chart,a=O.options,g=O.dense=O.closestPointRange*O.xAxis.transA<2,y=O.borderWidth=_(a.borderWidth,g?0:1),o=O.xAxis,n=O.yAxis,r=a.threshold,l=_(a.minPointLength,5),d=O.getColumnMetrics(),C=d.width,k=O.pointXOffset=d.offset,p=O.dataMin,S=O.dataMax,j=O.barW=Math.max(C,1+2*y),H=O.translatedThreshold=n.getThreshold(r);f.inverted&&(H-=.5),a.pointPadding&&(j=Math.ceil(j)),le.prototype.translate.apply(O),O.points.forEach(function(Y){let G,U=_(Y.yBottom,H),se=999+Math.abs(U),w=Y.plotX||0,X=A(Y.plotY,-se,n.len+se),x=Math.min(X,U),N=Math.max(X,U)-x,R=C,K=w+k,q=j;l&&Math.abs(N)l?U-l:H-(G?l:0)),B(Y.options.pointWidth)&&(K-=Math.round(((R=q=Math.ceil(Y.options.pointWidth))-C)/2)),a.centerInCategory&&!a.stacking&&(K=O.adjustForMissingColumns(K,R,Y,d)),Y.barX=K,Y.pointWidth=R,Y.tooltipPos=f.inverted?[A(n.len+n.pos-f.plotLeft-X,n.pos-f.plotLeft,n.len+n.pos-f.plotLeft),o.len+o.pos-f.plotTop-K-q/2,N]:[o.left-f.plotLeft+K+q/2,A(X+n.pos-f.plotTop,n.pos-f.plotTop,n.len+n.pos-f.plotTop),N],Y.shapeType=O.pointClass.prototype.shapeType||"roundedRect",Y.shapeArgs=O.crispCol(K,Y.isNull?H:x,q,Y.isNull?0:N)}),L(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(O,f){let n,r,l,a=this.options,g=this.pointAttrToOptions||{},y=g.stroke||"borderColor",o=g["stroke-width"]||"borderWidth",d=O&&O.color||this.color,C=O&&O[y]||a[y]||d,k=O&&O.options.dashStyle||a.dashStyle,p=O&&O[o]||a[o]||this[o]||0,S=_(O&&O.opacity,a.opacity,1);O&&this.zones.length&&(r=O.getZone(),d=O.options.color||r&&(r.color||O.nonZonedColor)||this.color,r&&(C=r.borderColor||C,k=r.dashStyle||k,p=r.borderWidth||p)),f&&O&&(l=(n=E(a.states[f],O.options.states&&O.options.states[f]||{})).brightness,d=n.color||void 0!==l&&te(d).brighten(n.brightness).get()||d,C=n[y]||C,p=n[o]||p,k=n.dashStyle||k,S=_(n.opacity,S));let j={fill:d,stroke:C,"stroke-width":p,opacity:S};return k&&(j.dashstyle=k),j}drawPoints(O=this.points){let f,a=this,g=this.chart,y=a.options,o=g.renderer,n=y.animationLimit||250;O.forEach(function(r){let d=r.graphic,C=!!d,k=d&&g.pointCounto?.enabled)}function b(o,n,r,l,d){let C=this.chart,k=this.isCartesian&&C.inverted,p=this.enabledDataSorting,S=o.plotX,j=o.plotY,H=r.rotation||0,Y=pe(S)&&pe(j)&&C.isInsidePlot(S,Math.round(j),{inverted:k,paneCoordinates:!0,series:this}),U=0===H&&"justify"===L(r.overflow,p?"none":"justify"),se=this.visible&&!1!==o.visible&&pe(S)&&(o.series.forceDL||p&&!U||Y||L(r.inside,!!this.options.stacking)&&l&&C.isInsidePlot(S,k?l.x+1:l.y+l.height-1,{inverted:k,paneCoordinates:!0,series:this})),w=o.pos();if(se&&w){let G=n.getBBox(),x=n.getBBox(void 0,0),N={right:1,center:.5}[r.align||0]||0,R={bottom:1,middle:.5}[r.verticalAlign||0]||0;if(l=J({x:w[0],y:Math.round(w[1]),width:0,height:0},l||{}),J(r,{width:G.width,height:G.height}),p&&this.xAxis&&!U&&this.setDataLabelStartPos(o,n,d,Y,l),n.align(B(r,{width:x.width,height:x.height}),!1,l,!1),n.alignAttr.x+=N*(x.width-G.width),n.alignAttr.y+=R*(x.height-G.height),n[n.placed?"animate":"attr"]({x:n.alignAttr.x+(G.width-x.width)/2,y:n.alignAttr.y+(G.height-x.height)/2,rotationOriginX:(n.width||0)/2,rotationOriginY:(n.height||0)/2}),U&&l.height>=0)this.justifyDataLabel(n,r,n.alignAttr,G,l,d);else if(L(r.crop,!0)){let{x:K,y:q}=n.alignAttr;se=C.isInsidePlot(K,q,{paneCoordinates:!0,series:this})&&C.isInsidePlot(K+G.width-1,q+G.height-1,{paneCoordinates:!0,series:this})}r.shape&&!H&&n[d?"attr":"animate"]({anchorX:w[0],anchorY:w[1]})}d&&p&&(n.placed=!1),se||p&&!U?(n.show(),n.placed=!0):(n.hide(),n.placed=!1)}function T(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function z(o){let n=this.hasRendered||0,r=this.initDataLabelsGroup().attr({opacity:+n});return!n&&r&&(this.visible&&r.show(),this.options.animation?r.animate({opacity:1},o):r.attr({opacity:1})),r}function O(o){let n;o=o||this.points;let r=this,l=r.chart,d=r.options,C=l.renderer,{backgroundColor:k,plotBackgroundColor:p}=l.options.chart,S=C.getContrast(A(p)&&p||A(k)&&k||"#000000"),j=g(r),{animation:H,defer:Y}=j[0],U=Y?le(l,H,r):{defer:0,duration:0};te(this,"drawDataLabels"),r.hasDataLabels?.()&&(n=this.initDataLabels(U),o.forEach(se=>{let w=se.dataLabels||[];I(a(j,se.dlOptions||se.options?.dataLabels)).forEach((G,x)=>{let me,Ce,Se,Oe,ee,N=G.enabled&&(se.visible||se.dataLabelOnHidden)&&(!se.isNull||se.dataLabelOnNull)&&function(de,ye){let Te=ye.filter;if(Te){let _e=Te.operator,Me=de[Te.property],Ee=Te.value;return">"===_e&&Me>Ee||"<"===_e&&Me="===_e&&Me>=Ee||"<="===_e&&Me<=Ee||"=="===_e&&Me==Ee||"==="===_e&&Me===Ee||"!="===_e&&Me!=Ee||"!=="===_e&&Me!==Ee}return!0}(se,G),{backgroundColor:R,borderColor:K,distance:q,style:he={}}=G,Ae={},Fe=w[x],oe=!Fe;if(N&&(Ce=L(G[se.formatPrefix+"Format"],G.format),me=se.getLabelConfig(),Se=pe(Ce)?fe(Ce,me,l):(G[se.formatPrefix+"Formatter"]||G.formatter).call(me,G),Oe=G.rotation,!l.styledMode&&(he.color=L(G.color,he.color,A(r.color)?r.color:void 0,"#000000"),"contrast"===he.color?("none"!==R&&(ee=R),se.contrastColor=C.getContrast("auto"!==ee&&ee||se.color||r.color),he.color=ee||!pe(q)&&G.inside||0>D(q||0)||d.stacking?se.contrastColor:S):delete se.contrastColor,d.cursor&&(he.cursor=d.cursor)),Ae={r:G.borderRadius||0,rotation:Oe,padding:G.padding,zIndex:1},l.styledMode||(Ae.fill="auto"===R?se.color:R,Ae.stroke="auto"===K?se.color:K,Ae["stroke-width"]=G.borderWidth),F(Ae,(de,ye)=>{void 0===de&&delete Ae[ye]})),!Fe||N&&pe(Se)&&!!Fe.div==!!G.useHTML&&(Fe.rotation&&G.rotation||Fe.rotation===G.rotation)||(Fe=void 0,oe=!0),N&&pe(Se)&&(Fe?Ae.text=Se:(Fe=C.label(Se,0,0,G.shape,void 0,void 0,G.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+se.colorIndex+" "+(G.className||"")+(G.useHTML?" highcharts-tracker":"")),Fe)){Fe.options=G,Fe.attr(Ae),l.styledMode||Fe.css(he).shadow(G.shadow);let de=G[se.formatPrefix+"TextPath"]||G.textPath;de&&!G.useHTML&&(Fe.setTextPath(se.getDataLabelPath?.(Fe)||se.graphic,de),se.dataLabelPath&&!de.enabled&&(se.dataLabelPath=se.dataLabelPath.destroy())),Fe.added||Fe.add(n),r.alignDataLabel(se,Fe,G,void 0,oe),Fe.isActive=!0,w[x]&&w[x]!==Fe&&w[x].destroy(),w[x]=Fe}});let X=w.length;for(;X--;)w[X]&&w[X].isActive?w[X].isActive=!1:(w[X]?.destroy(),w.splice(X,1));se.dataLabel=w[0],se.dataLabels=w})),te(this,"afterDrawDataLabels")}function f(o,n,r,l,d,C){let U,se,k=this.chart,p=n.align,S=n.verticalAlign,j=o.box?0:o.padding||0,{x:H=0,y:Y=0}=n;return(U=(r.x||0)+j)<0&&("right"===p&&H>=0?(n.align="left",n.inside=!0):H-=U,se=!0),(U=(r.x||0)+l.width-j)>k.plotWidth&&("left"===p&&H<=0?(n.align="right",n.inside=!0):H+=k.plotWidth-U,se=!0),(U=r.y+j)<0&&("bottom"===S&&Y>=0?(n.verticalAlign="top",n.inside=!0):Y-=U,se=!0),(U=(r.y||0)+l.height-j)>k.plotHeight&&("top"===S&&Y<=0?(n.verticalAlign="bottom",n.inside=!0):Y+=k.plotHeight-U,se=!0),se&&(n.x=H,n.y=Y,o.placed=!C,o.align(n,void 0,d)),se}function a(o,n){let l,r=[];if($(o)&&!$(n))r=o.map(function(d){return B(d,n)});else if($(n)&&!$(o))r=n.map(function(d){return B(o,d)});else if($(o)||$(n)){if($(o)&&$(n))for(l=Math.max(o.length,n.length);l--;)r[l]=B(o[l],n[l])}else r=B(o,n);return r}function g(o){let n=o.chart.options.plotOptions;return I(a(a(n?.series?.dataLabels,n?.[o.type]?.dataLabels),o.options.dataLabels))}function y(o,n,r,l,d){let C=this.chart,k=C.inverted,p=this.xAxis,S=p.reversed,j=((k?n.height:n.width)||0)/2,H=o.pointWidth,Y=H?H/2:0;n.startXPos=k?d.x:S?-j-Y:p.width-j+Y,n.startYPos=k?S?this.yAxis.height-j+Y:-j-Y:d.y,l?"hidden"===n.visibility&&(n.show(),n.attr({opacity:0}).animate({opacity:1})):n.attr({opacity:1}).animate({opacity:0},void 0,n.hide),C.hasRendered&&(r&&n.attr({x:n.startXPos,y:n.startYPos}),n.placed=!0)}E.compose=function(o){let n=o.prototype;n.initDataLabels||(n.initDataLabels=z,n.initDataLabelsGroup=T,n.alignDataLabel=b,n.drawDataLabels=O,n.justifyDataLabel=f,n.setDataLabelStartPos=y,n.hasDataLabels=_)}}(ve||(ve={})),ve}),Pe(V,"Series/Column/ColumnDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{series:pe}=re,{merge:J,pick:te,pushUnique:$}=ve;return function(A){function B(F,L,D,I,E){let _=this.chart.inverted,b=F.series,T=(b.xAxis?b.xAxis.len:this.chart.plotSizeX)||0,z=(b.yAxis?b.yAxis.len:this.chart.plotSizeY)||0,O=F.dlBox||F.shapeArgs,f=te(F.below,F.plotY>te(this.translatedThreshold,z)),a=te(D.inside,!!this.options.stacking);if(O){if(I=J(O),"allow"!==D.overflow||!1!==D.crop){I.y<0&&(I.height+=I.y,I.y=0);let g=I.y+I.height-z;g>0&&g\u25cf {series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    "}}}),Pe(V,"Series/Scatter/ScatterSeries.js",[V["Series/Scatter/ScatterSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{column:ve,line:le}=ie.seriesTypes,{addEvent:fe,extend:pe,merge:J}=re;class te extends le{applyJitter(){let A=this,B=this.options.jitter,F=this.points.length;B&&this.points.forEach(function(L,D){["x","y"].forEach(function(I,E){let _,T,z,O,b="plot"+I.toUpperCase();B[I]&&!L.isNull&&(_=A[I+"Axis"],O=B[I]*_.transA,_&&!_.isLog&&(T=Math.max(0,L[b]-O),z=Math.min(_.len,L[b]+O),L[b]=T+(z-T)*function(f){let a=1e4*Math.sin(f);return a-Math.floor(a)}(D+E*F),"x"===I&&(L.clientX=L.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return te.defaultOptions=J(le.defaultOptions,Z),pe(te.prototype,{drawTracker:ve.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),fe(te,"afterTranslate",function(){this.applyJitter()}),ie.registerSeriesType("scatter",te),te}),Pe(V,"Series/CenteredUtilities.js",[V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re){var ve,le;let{deg2rad:fe}=Z,{fireEvent:pe,isNumber:J,pick:te,relativeLength:$}=re;return(le=ve||(ve={})).getCenter=function(){let b,O,f,A=this.options,B=this.chart,F=2*(A.slicedOffset||0),L=B.plotWidth-2*F,D=B.plotHeight-2*F,I=A.center,E=Math.min(L,D),_=A.thickness,T=A.size,z=A.innerSize||0;"string"==typeof T&&(T=parseFloat(T)),"string"==typeof z&&(z=parseFloat(z));let a=[te(I[0],"50%"),te(I[1],"50%"),te(T&&T<0?void 0:A.size,"100%"),te(z&&z<0?void 0:A.innerSize||0,"0%")];for(!B.angular||this instanceof ie||(a[3]=0),O=0;O<4;++O)f=a[O],b=O<2||2===O&&/%$/.test(f),a[O]=$(f,[L,D,E,a[2]][O])+(b?F:0);return a[3]>a[2]&&(a[3]=a[2]),J(_)&&2*_0&&(a[3]=a[2]-2*_),pe(this,"afterGetCenter",{positions:a}),a},le.getStartAndEndRadians=function(A,B){let F=J(A)?A:0,L=J(B)&&B>F&&B-F<360?B:F+360;return{start:fe*(F+-90),end:fe*(L+-90)}},ve}),Pe(V,"Series/Pie/PiePoint.js",[V["Core/Animation/AnimationUtilities.js"],V["Core/Series/Point.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{setAnimation:ve}=Z,{addEvent:le,defined:fe,extend:pe,isNumber:J,pick:te,relativeLength:$}=re;class A extends ie{getConnectorPath(F){let L=F.dataLabelPosition,D=F.options||{},I=D.connectorShape;return L&&(this.connectorShapes[I]||I).call(this,{...L.computed,alignment:L.alignment},L.connectorPosition,D)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(F){let L=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(L.x,L.y,L.r+F,L.r+F,{innerR:L.r-1,start:L.start,end:L.end,borderRadius:L.borderRadius})}constructor(F,L,D){super(F,L,D),this.half=0,this.name??(this.name="Slice");let I=E=>{this.slice("select"===E.type)};le(this,"select",I),le(this,"unselect",I)}isValid(){return J(this.y)&&this.y>=0}setVisible(F,L=!0){F!==this.visible&&this.update({visible:F??!this.visible},L,void 0,!1)}slice(F,L,D){let I=this.series;ve(D,I.chart),L=te(L,!0),this.sliced=this.options.sliced=F=fe(F)?F:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return pe(A.prototype,{connectorShapes:{fixedOffset:function(B,F,L){let D=F.breakAt,I=F.touchingSliceAt;return[["M",B.x,B.y],L.softConnector?["C",B.x+("left"===B.alignment?-5:5),B.y,2*D.x-I.x,2*D.y-I.y,D.x,D.y]:["L",D.x,D.y],["L",I.x,I.y]]},straight:function(B,F){let L=F.touchingSliceAt;return[["M",B.x,B.y],["L",L.x,L.y]]},crookedLine:function(B,F,L){let{breakAt:D,touchingSliceAt:I}=F,{series:E}=this,[_,b,T]=E.center,z=T/2,{plotLeft:O,plotWidth:f}=E.chart,a="left"===B.alignment,{x:g,y}=B,o=D.x;if(L.crookDistance){let r=$(L.crookDistance,1);o=a?_+z+(f+O-_-z)*(1-r):O+(_-z)*r}else o=_+(b-y)*Math.tan((this.angle||0)-Math.PI/2);let n=[["M",g,y]];return(a?o<=g&&o>=D.x:o>=g&&o<=D.x)&&n.push(["L",o,y]),n.push(["L",D.x,D.y],["L",I.x,I.y]),n}}}),A}),Pe(V,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),Pe(V,"Series/Pie/PieSeries.js",[V["Series/CenteredUtilities.js"],V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Series/Pie/PiePoint.js"],V["Series/Pie/PieSeriesDefaults.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/Symbols.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{getStartAndEndRadians:$}=Z,{noop:A}=re,{clamp:B,extend:F,fireEvent:L,merge:D,pick:I}=te;class E extends fe{animate(b){let T=this,O=T.startAngleRad;b||T.points.forEach(function(f){let a=f.graphic,g=f.shapeArgs;a&&g&&(a.attr({r:I(f.startR,T.center&&T.center[3]/2),start:O,end:O}),a.animate({r:g.r,start:g.start,end:g.end},T.options.animation))})}drawEmpty(){let b,T,z=this.startAngleRad,O=this.endAngleRad,f=this.options;0===this.total&&this.center?(b=this.center[0],T=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(b,T,this.center[1]/2,0,z,O).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:J.arc(b,T,this.center[2]/2,0,{start:z,end:O,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":f.borderWidth,fill:f.fillColor||"none",stroke:f.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let b=this.chart.renderer;this.points.forEach(function(T){T.graphic&&T.hasNewShapeType()&&(T.graphic=T.graphic.destroy()),T.graphic||(T.graphic=b[T.shapeType](T.shapeArgs).add(T.series.group),T.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,T,z,O){let f=this.center,a=this.radii?this.radii[z.index]||0:f[2]/2,g=O.dataLabelPosition,y=g?.distance||0,o=Math.asin(B((b-f[1])/(a+y),-1,1));return f[0]+Math.cos(o)*(a+y)*(T?-1:1)+(y>0?(T?-1:1)*(O.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let b,T,z,O,f=this,a=f.chart;this.drawEmpty(),f.group&&!a.styledMode&&f.group.shadow(f.options.shadow),f.points.forEach(function(g){let y={};T=g.graphic,!g.isNull&&T?(O=g.shapeArgs,b=g.getTranslate(),a.styledMode||(z=f.pointAttribs(g,g.selected&&"select")),g.delayedRendering?(T.setRadialReference(f.center).attr(O).attr(b),a.styledMode||T.attr(z).attr({"stroke-linejoin":"round"}),g.delayedRendering=!1):(T.setRadialReference(f.center),a.styledMode||D(!0,y,z),D(!0,y,O,b),T.animate(y)),T.attr({visibility:g.visible?"inherit":"hidden"}),T.addClass(g.getClassName(),!0)):T&&(g.graphic=T.destroy())})}sortByAngle(b,T){b.sort(function(z,O){return void 0!==z.angle&&(O.angle-z.angle)*T})}translate(b){L(this,"translate"),this.generatePoints();let n,r,l,d,C,k,p,T=this.options,z=T.slicedOffset,O=$(T.startAngle,T.endAngle),f=this.startAngleRad=O.start,a=(this.endAngleRad=O.end)-f,g=this.points,y=T.ignoreHiddenPoint,o=g.length,S=0;for(b||(this.center=b=this.getCenter()),k=0;k1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(l)*z),translateY:Math.round(Math.sin(l)*z)},d=Math.cos(l)*b[2]/2,C=Math.sin(l)*b[2]/2,p.tooltipPos=[b[0]+.7*d,b[1]+.7*C],p.half=l<-Math.PI/2||l>Math.PI/2?1:0,p.angle=l}L(this,"afterTranslate")}updateTotals(){let O,f,b=this.points,T=b.length,z=this.options.ignoreHiddenPoint,a=0;for(O=0;O0&&(f.visible||!z)?f.y/a*100:0,f.total=a}}return E.defaultOptions=D(fe.defaultOptions,le),F(E.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:ie.prototype.drawTracker,getCenter:Z.getCenter,getSymbol:A,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:ie.prototype.pointAttribs,pointClass:ve,requireSorting:!1,searchPoint:A,trackerGroups:["group","dataLabelsGroup"]}),pe.registerSeriesType("pie",E),E}),Pe(V,"Series/Pie/PieDataLabel.js",[V["Core/Series/DataLabel.js"],V["Core/Globals.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){var fe;let{composed:pe,noop:J}=ie,{distribute:te}=re,{series:$}=ve,{arrayMax:A,clamp:B,defined:F,pick:L,pushUnique:D,relativeLength:I}=le;return function(E){let _={radialDistributionY:function(f,a){return(a.dataLabelPosition?.top||0)+f.distributeBox.pos},radialDistributionX:function(f,a,g,y,o){let n=o.dataLabelPosition;return f.getX(g<(n?.top||0)+2||g>(n?.bottom||0)-2?y:g,a.half,a,o)},justify:function(f,a,g,y){return y[0]+(f.half?-1:1)*(g+(a.dataLabelPosition?.distance||0))},alignToPlotEdges:function(f,a,g,y){let o=f.getBBox().width;return a?o+y:g-o-y},alignToConnectors:function(f,a,g,y){let n,o=0;return f.forEach(function(r){(n=r.dataLabel.getBBox().width)>o&&(o=n)}),a?o+y:g-o-y}};function b(f,a){let{center:g,options:y}=this,o=g[2]/2,n=f.angle||0,r=Math.cos(n),l=Math.sin(n),d=g[0]+r*o,C=g[1]+l*o,k=Math.min((y.slicedOffset||0)+(y.borderWidth||0),a/5);return{natural:{x:d+r*a,y:C+l*a},computed:{},alignment:a<0?"center":f.half?"right":"left",connectorPosition:{breakAt:{x:d+r*k,y:C+l*k},touchingSliceAt:{x:d,y:C}},distance:a}}function T(){let j,H,Y,f=this,a=f.points,g=f.chart,y=g.plotWidth,o=g.plotHeight,n=g.plotLeft,r=Math.round(g.chartWidth/3),l=f.center,d=l[2]/2,C=l[1],k=[[],[]],p=[0,0,0,0],S=f.dataLabelPositioners,U=0;f.visible&&f.hasDataLabels?.()&&(a.forEach(se=>{(se.dataLabels||[]).forEach(w=>{w.shortened&&(w.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),w.shortened=!1)})}),$.prototype.drawDataLabels.apply(f),a.forEach(se=>{(se.dataLabels||[]).forEach((w,X)=>{let G=l[2]/2,x=w.options,N=I(x?.distance||0,G);0===X&&k[se.half].push(se),!F(x?.style?.width)&&w.getBBox().width>r&&(w.css({width:Math.round(.7*r)+"px"}),w.shortened=!0),w.dataLabelPosition=this.getDataLabelPosition(se,N),U=Math.max(U,N)})}),k.forEach((se,w)=>{let x,N,K,G=[],R=0;se.length&&(f.sortByAngle(se,w-.5),U>0&&(x=Math.max(0,C-d-U),N=Math.min(C+d+U,g.plotHeight),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.dataLabelPosition;me&&me.distance>0&&(me.top=Math.max(0,C-d-me.distance),me.bottom=Math.min(C+d+me.distance,g.plotHeight),R=he.getBBox().height||21,q.distributeBox={target:(he.dataLabelPosition?.natural.y||0)-me.top+R/2,size:R,rank:q.y},G.push(q.distributeBox))})}),te(G,K=N+R-x,K/5)),se.forEach(q=>{(q.dataLabels||[]).forEach(he=>{let me=he.options||{},Ce=q.distributeBox,Se=he.dataLabelPosition,Oe=Se?.natural.y||0,Ae=me.connectorPadding||0,Fe=0,oe=Oe,ee="inherit";if(Se){if(G&&F(Ce)&&Se.distance>0&&(void 0===Ce.pos?ee="hidden":(Y=Ce.size,oe=S.radialDistributionY(q,he))),me.justify)Fe=S.justify(q,he,d,l);else switch(me.alignTo){case"connectors":Fe=S.alignToConnectors(se,w,y,n);break;case"plotEdges":Fe=S.alignToPlotEdges(he,w,y,n);break;default:Fe=S.radialDistributionX(f,q,oe,Oe,he)}if(Se.attribs={visibility:ee,align:Se.alignment},Se.posAttribs={x:Fe+(me.x||0)+({left:Ae,right:-Ae}[Se.alignment]||0),y:oe+(me.y||0)-he.getBBox().height/2},Se.computed.x=Fe,Se.computed.y=oe,L(me.crop,!0)){let de;Fe-(H=he.getBBox().width)y-Ae&&0===w&&(de=Math.round(Fe+H-y+Ae),p[1]=Math.max(de,p[1])),oe-Y/2<0?p[0]=Math.max(Math.round(Y/2-oe),p[0]):oe+Y/2>o&&(p[2]=Math.max(Math.round(oe+Y/2-o),p[2])),Se.sideOverflow=de}}})}))}),(0===A(p)||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),this.points.forEach(se=>{(se.dataLabels||[]).forEach(w=>{let{connectorColor:X,connectorWidth:G=1}=w.options||{},x=w.dataLabelPosition;if(G){let N;j=w.connector,x&&x.distance>0?(N=!j,j||(w.connector=j=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+se.colorIndex+(se.className?" "+se.className:"")).add(f.dataLabelsGroup)),g.styledMode||j.attr({"stroke-width":G,stroke:X||se.color||"#666666"}),j[N?"attr":"animate"]({d:se.getConnectorPath(w)}),j.attr({visibility:x.attribs?.visibility})):j&&(w.connector=j.destroy())}})})))}function z(){this.points.forEach(f=>{(f.dataLabels||[]).forEach(a=>{let g=a.dataLabelPosition;g?(g.sideOverflow&&(a.css({width:Math.max(a.getBBox().width-g.sideOverflow,0)+"px",textOverflow:(a.options?.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(g.attribs),a[a.moved?"animate":"attr"](g.posAttribs),a.moved=!0):a&&a.attr({y:-9999})}),delete f.distributeBox},this)}function O(f){let a=this.center,g=this.options,y=g.center,o=g.minSize||80,n=o,r=null!==g.size;return!r&&(null!==y[0]?n=Math.max(a[2]-Math.max(f[1],f[3]),o):(n=Math.max(a[2]-f[1]-f[3],o),a[0]+=(f[3]-f[1])/2),null!==y[1]?n=B(n,o,a[2]-Math.max(f[0],f[2])):(n=B(n,o,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2),n!(b.x>=_.x+_.width||b.x+b.width<=_.x||b.y>=_.y+_.height||b.y+b.height<=_.y),E=!1;for(let _=0;_<$;_++)(B=te[_])&&(B.oldOpacity=B.opacity,B.newOpacity=1,B.absoluteBox=function(b){if(b&&(!b.alignAttr||b.placed)){let T=b.box?0:b.padding||0,z=b.alignAttr||{x:b.attr("x"),y:b.attr("y")},O=b.getBBox();return b.width=O.width,b.height=O.height,{x:z.x+(b.parentGroup?.translateX||0)+T,y:z.y+(b.parentGroup?.translateY||0)+T,width:(b.width||0)-2*T,height:(b.height||0)-2*T}}}(B));te.sort((_,b)=>(b.labelrank||0)-(_.labelrank||0));for(let _=0;_<$;++_){D=(F=te[_])&&F.absoluteBox;for(let b=_+1;b<$;++b)I=(L=te[b])&&L.absoluteBox,D&&I&&F!==L&&0!==F.newOpacity&&0!==L.newOpacity&&"hidden"!==F.visibility&&"hidden"!==L.visibility&&A(D,I)&&((F.labelrank{ve(B,F=>{F.label&&$.push(F.label)})});for(let A of te.series||[])if(A.visible&&A.hasDataLabels?.()){let B=F=>{for(let L of F)L.visible&&(L.dataLabels||[]).forEach(D=>{let I=D.options||{};D.labelrank=le(I.labelrank,L.labelrank,L.shapeArgs?.height),I.allowOverlap??Number(I.distance)>0?(D.oldOpacity=D.opacity,D.newOpacity=1,pe(D,te)):$.push(D)})};B(A.nodes||[]),B(A.points)}this.hideOverlappingLabels($)}return{compose:function(te){let $=te.prototype;$.hideOverlappingLabels||($.hideOverlappingLabels=fe,ie(te,"render",J))}}}),Pe(V,"Extensions/BorderRadius.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie,re){let{defaultOptions:ve}=Z,{noop:le}=ie,{addEvent:fe,extend:pe,isObject:J,merge:te,relativeLength:$}=re,A={radius:0,scope:"stack",where:void 0},B=le,F=le;function L(b,T,z,O,f={}){let a=B(b,T,z,O,f),{innerR:g=0,r:y=z,start:o=0,end:n=0}=f;if(f.open||!f.borderRadius)return a;let r=n-o,l=Math.sin(r/2),d=Math.max(Math.min($(f.borderRadius||0,y-g),(y-g)/2,y*l/(1+l)),0),C=Math.min(d,r/Math.PI*2*g),k=a.length-1;for(;k--;)!function(p,S,j){let H,Y,U,se=p[S],w=p[S+1];if("Z"===w[0]&&(w=p[0]),"M"!==se[0]&&"L"!==se[0]||"A"!==w[0]?"A"===se[0]&&("M"===w[0]||"L"===w[0])&&(H=w,Y=se):(H=se,Y=w,U=!0),H&&Y&&Y.params){let X=Y[1],G=Y[5],x=Y.params,{start:N,end:R,cx:K,cy:q}=x,he=G?X-j:X+j,me=he?Math.asin(j/he):0,Ce=G?me:-me,Se=Math.cos(me)*he;U?(x.start=N+Ce,H[1]=K+Se*Math.cos(N),H[2]=q+Se*Math.sin(N),p.splice(S+1,0,["A",j,j,0,0,1,K+X*Math.cos(x.start),q+X*Math.sin(x.start)])):(x.end=R-Ce,Y[6]=K+X*Math.cos(x.end),Y[7]=q+X*Math.sin(x.end),p.splice(S+1,0,["A",j,j,0,0,1,K+Se*Math.cos(R),q+Se*Math.sin(R)])),Y[4]=Math.abs(x.end-x.start)1?C:d);return a}function D(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:b,yAxis:T}=this,z="percent"===b.stacking,O=ve.plotOptions?.[this.type]?.borderRadius,f=I(b.borderRadius,J(O)?O:{}),a=T.options.reversed;for(let g of this.points){let{shapeArgs:y}=g;if("roundedRect"===g.shapeType&&y){let{width:o=0,height:n=0,y:r=0}=y,l=r,d=n;if("stack"===f.scope&&g.stackTotal){let S=T.translate(z?100:g.stackTotal,!1,!0,!1,!0),j=T.translate(b.threshold||0,!1,!0,!1,!0),H=this.crispCol(0,Math.min(S,j),0,Math.abs(S-j));l=H.y,d=H.height}let C=(g.negative?-1:1)*(a?-1:1)==-1,k=f.where;!k&&this.is("waterfall")&&Math.abs((g.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(k="all"),k||(k="end");let p=Math.min($(f.radius,o),o/2,"all"===k?n/2:1/0)||0;"end"===k&&(C&&(l-=p),d+=p),pe(y,{brBoxHeight:d,brBoxY:l,r:p})}}}}function I(b,T){return J(b)||(b={radius:b||0}),te(A,T,b)}function E(){let b=I(this.options.borderRadius);for(let T of this.points){let z=T.shapeArgs;z&&(z.borderRadius=$(b.radius,(z.r||0)-(z.innerR||0)))}}function _(b,T,z,O,f={}){let a=F(b,T,z,O,f),{r:g=0,brBoxHeight:y=O,brBoxY:o=T}=f,n=T-o,r=o+y-(T+O),l=n-g>-.1?0:g,d=r-g>-.1?0:g,C=Math.max(l&&n,0),k=Math.max(d&&r,0),p=[b+l,T],S=[b+z-l,T],j=[b+z,T+l],H=[b+z,T+O-d],Y=[b+z-d,T+O],U=[b+d,T+O],se=[b,T+O-d],w=[b,T+l],X=(G,x)=>Math.sqrt(Math.pow(G,2)-Math.pow(x,2));if(C){let G=X(l,l-C);p[0]-=G,S[0]+=G,j[1]=w[1]=T+l-C}if(O=pe(L.minWidth,0)&&this.chartHeight>=pe(L.minHeight,0)}).call(this)&&F.push(B._id)}function A(B,F){let E,L=this.options.responsive,D=this.currentResponsive,I=[];!F&&L&&L.rules&&L.rules.forEach(T=>{void 0===T._id&&(T._id=J()),this.matchResponsiveRule(T,I)},this);let _=fe(...I.map(T=>le((L||{}).rules||[],z=>z._id===T)).map(T=>T&&T.chartOptions));_.isResponsiveOptions=!0,I=I.toString()||void 0,I!==(D&&D.ruleIds)&&(D&&this.update(D.undoOptions,B,!0),I?((E=re(_,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:I,mergedOptions:_,undoOptions:E},this.update(_,B,!0)):this.currentResponsive=void 0)}te.compose=function(B){let F=B.prototype;return F.matchResponsiveRule||ve(F,{matchResponsiveRule:$,setResponsive:A}),B}}(ie||(ie={})),ie}),Pe(V,"masters/highcharts.src.js",[V["Core/Globals.js"],V["Core/Utilities.js"],V["Core/Defaults.js"],V["Core/Animation/Fx.js"],V["Core/Animation/AnimationUtilities.js"],V["Core/Renderer/HTML/AST.js"],V["Core/Templating.js"],V["Core/Renderer/RendererRegistry.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Renderer/SVG/SVGRenderer.js"],V["Core/Renderer/HTML/HTMLElement.js"],V["Core/Axis/Axis.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Axis/LogarithmicAxis.js"],V["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],V["Core/Axis/Tick.js"],V["Core/Tooltip.js"],V["Core/Series/Point.js"],V["Core/Pointer.js"],V["Core/Legend/Legend.js"],V["Core/Legend/LegendSymbol.js"],V["Core/Chart/Chart.js"],V["Extensions/ScrollablePlotArea.js"],V["Core/Axis/Stacking/StackingAxis.js"],V["Core/Axis/Stacking/StackItem.js"],V["Core/Series/Series.js"],V["Core/Series/SeriesRegistry.js"],V["Series/Column/ColumnDataLabel.js"],V["Series/Pie/PieDataLabel.js"],V["Core/Series/DataLabel.js"],V["Extensions/OverlappingDataLabels.js"],V["Extensions/BorderRadius.js"],V["Core/Responsive.js"],V["Core/Color/Color.js"],V["Core/Time.js"]],function(Z,ie,re,ve,le,fe,pe,J,te,$,A,B,F,L,D,I,E,_,b,T,z,O,f,a,g,y,o,n,r,l,d,C,k,p,S,j){return Z.AST=fe,Z.Axis=F,Z.Chart=f,Z.Color=S,Z.DataLabel=d,Z.Fx=ve,Z.HTMLElement=B,Z.Legend=z,Z.LegendSymbol=O,Z.OverlappingDataLabels=Z.OverlappingDataLabels||C,Z.PlotLineOrBand=I,Z.Point=b,Z.Pointer=T,Z.RendererRegistry=J,Z.Series=o,Z.SeriesRegistry=n,Z.StackItem=y,Z.SVGElement=$,Z.SVGRenderer=A,Z.Templating=pe,Z.Tick=E,Z.Time=j,Z.Tooltip=_,Z.animate=le.animate,Z.animObject=le.animObject,Z.chart=f.chart,Z.color=S.parse,Z.dateFormat=pe.dateFormat,Z.defaultOptions=re.defaultOptions,Z.distribute=te.distribute,Z.format=pe.format,Z.getDeferredAnimation=le.getDeferredAnimation,Z.getOptions=re.getOptions,Z.numberFormat=pe.numberFormat,Z.seriesType=n.seriesType,Z.setAnimation=le.setAnimation,Z.setOptions=re.setOptions,Z.stop=le.stop,Z.time=re.defaultTime,Z.timers=ve.timers,k.compose(Z.Series,Z.SVGElement,Z.SVGRenderer),r.compose(Z.Series.types.column),d.compose(Z.Series),L.compose(Z.Axis),B.compose(Z.SVGRenderer),z.compose(Z.Chart),D.compose(Z.Axis),C.compose(Z.Chart),l.compose(Z.Series.types.pie),I.compose(Z.Axis),T.compose(Z.Chart),p.compose(Z.Chart),a.compose(Z.Axis,Z.Chart,Z.Series),g.compose(Z.Axis,Z.Chart,Z.Series),_.compose(Z.Pointer),ie.extend(Z,ie),Z}),Pe(V,"Series/DataModifyComposition.js",[V["Core/Axis/Axis.js"],V["Core/Series/Point.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{tooltipFormatter:fe}=ie.prototype,{addEvent:pe,arrayMax:J,arrayMin:te,correctFloat:$,defined:A,isArray:B,isNumber:F,isString:L,pick:D}=ve;return function(I){function E(o,n,r){!this.isXAxis&&(this.series.forEach(function(l){"compare"===o&&"boolean"!=typeof n?l.setCompare(n,!1):"cumulative"!==o||L(n)||l.setCumulative(n,!1)}),D(r,!0)&&this.chart.redraw())}function _(o){let n=this,{numberFormatter:r}=n.series.chart,l=function(d){o=o.replace("{point."+d+"}",(n[d]>0&&"change"===d?"+":"")+r(n[d],D(n.series.tooltipOptions.changeDecimals,2)))};return A(n.change)&&l("change"),A(n.cumulativeSum)&&l("cumulativeSum"),fe.apply(this,[o])}function b(){let o,n=this.options.compare;("percent"===n||"value"===n||this.options.cumulative)&&(o=new y(this),"percent"===n||"value"===n?o.initCompare(n):o.initCumulative()),this.dataModify=o}function T(o){let n=o.dataExtremes,r=n.activeYData;if(this.dataModify&&n){let l;this.options.compare?l=[this.dataModify.modifyValue(n.dataMin),this.dataModify.modifyValue(n.dataMax)]:this.options.cumulative&&B(r)&&r.length>=2&&(l=y.getCumulativeExtremes(r)),l&&(n.dataMin=te(l),n.dataMax=J(l))}}function z(o,n){this.options.compare=this.userOptions.compare=o,this.update({},D(n,!0)),!this.dataModify||"value"!==o&&"percent"!==o?this.points.forEach(r=>{delete r.change}):this.dataModify.initCompare(o)}function O(){if(this.xAxis&&this.processedYData&&this.dataModify){let C,o=this.processedXData,n=this.processedYData,r=n.length,l=!0===this.options.compareStart?0:1,d=-1;for(this.pointArrayMap&&(d=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),C=0;C-1?n[C][d]:n[C];if(F(k)&&0!==k&&o[C+l]>=(this.xAxis.min||0)){this.dataModify.compareValue=k;break}}}}function f(o,n){this.setModifier("compare",o,n)}function a(o,n){o=D(o,!1),this.options.cumulative=this.userOptions.cumulative=o,this.update({},D(n,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(r=>{delete r.cumulativeSum})}function g(o,n){this.setModifier("cumulative",o,n)}I.compose=function(o,n,r){let l=n.prototype,d=r.prototype,C=o.prototype;return C.setCompare||(C.setCompare=z,C.setCumulative=a,pe(o,"afterInit",b),pe(o,"afterGetExtremes",T),pe(o,"afterProcessData",O)),l.setCompare||(l.setCompare=f,l.setModifier=E,l.setCumulative=g,d.tooltipFormatter=_),o};class y{constructor(n){this.series=n}modifyValue(){return 0}static getCumulativeExtremes(n){let r=1/0,l=-1/0;return n.reduce((d,C)=>{let k=d+C;return r=Math.min(r,k,d),l=Math.max(l,k,d),k}),[r,l]}initCompare(n){this.modifyValue=function(r,l){null===r&&(r=0);let d=this.compareValue;if(void 0!==r&&void 0!==d){if("value"===n?r-=d:r=r/d*100-(100===this.series.options.compareBase?0:100),void 0!==l){let C=this.series.points[l];C&&(C.change=r)}return r}return 0}}initCumulative(){this.modifyValue=function(n,r){if(null===n&&(n=0),void 0!==n&&void 0!==r){let l=r>0?this.series.points[r-1]:null;l&&l.cumulativeSum&&(n=$(l.cumulativeSum+n));let d=this.series.points[r];return d&&(d.cumulativeSum=n),n}return 0}}}I.Additions=y}(le||(le={})),le}),Pe(V,"Stock/Navigator/ChartNavigatorComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let re,{isTouchDevice:ve}=Z,{addEvent:le,merge:fe,pick:pe}=ie,J=[];function te(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function $(){let I,E,_,b=this.legend,T=this.navigator;if(T){I=b&&b.options,E=T.xAxis,_=T.yAxis;let{scrollbarHeight:z,scrollButtonSize:O}=T;this.inverted?(T.left=T.opposite?this.chartWidth-z-T.height:this.spacing[3]+z,T.top=this.plotTop+O):(T.left=pe(E.left,this.plotLeft+O),T.top=T.navigatorOptions.top||this.chartHeight-T.height-z-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(I&&"bottom"===I.verticalAlign&&"proximate"!==I.layout&&I.enabled&&!I.floating?b.legendHeight+pe(I.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),E&&_&&(this.inverted?E.options.left=_.options.left=T.left:E.options.top=_.options.top=T.top,E.setAxisSize(),_.setAxisSize())}}function A(I){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this),pe(I.redraw,!0)&&this.redraw(I.animation))}function B(){let I=this.options;(I.navigator.enabled||I.scrollbar.enabled)&&(this.scroller=this.navigator=new re(this))}function F(){let I=this.options,E=I.navigator,_=I.rangeSelector;if((E&&E.enabled||_&&_.enabled)&&(!ve&&"x"===this.zooming.type||ve&&"x"===this.zooming.pinchType))return!1}function L(I){let E=I.navigator;if(E&&I.xAxis[0]){let _=I.xAxis[0].getExtremes();E.render(_.min,_.max)}}function D(I){let E=I.options.navigator||{},_=I.options.scrollbar||{};!this.navigator&&!this.scroller&&(E.enabled||_.enabled)&&(fe(!0,this.options.navigator,E),fe(!0,this.options.scrollbar,_),delete I.options.navigator,delete I.options.scrollbar)}return{compose:function(I,E){ie.pushUnique(J,I)&&(re=E,I.prototype.callbacks.push(L),le(I,"afterAddSeries",te),le(I,"afterSetChartSize",$),le(I,"afterUpdate",A),le(I,"beforeRender",B),le(I,"beforeShowResetZoom",F),le(I,"update",D))}}}),Pe(V,"Core/Axis/NavigatorAxisComposition.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){let{isTouchDevice:re}=Z,{addEvent:ve,correctFloat:le,defined:fe,isNumber:pe,pick:J}=ie;function te(){this.navigatorAxis||(this.navigatorAxis=new A(this))}function $(B){let F,L=this.chart,D=L.options,I=D.navigator,E=this.navigatorAxis,_=L.zooming.pinchType,b=D.rangeSelector,T=L.zooming.type;if(this.isXAxis&&(I?.enabled||b?.enabled))if("y"===T&&"zoom"===B.trigger)F=!1;else if(("zoom"===B.trigger&&"xy"===T||re&&"xy"===_)&&this.options.range){let z=E.previousZoom;fe(B.min)?E.previousZoom=[this.min,this.max]:z&&(B.min=z[0],B.max=z[1],E.previousZoom=void 0)}void 0!==F&&B.preventDefault()}class A{static compose(F){F.keepProps.includes("navigatorAxis")||(F.keepProps.push("navigatorAxis"),ve(F,"init",te),ve(F,"setExtremes",$))}constructor(F){this.axis=F}destroy(){this.axis=void 0}toFixedRange(F,L,D,I){let E=this.axis,_=E.chart,b=J(E.ordinal?.convertOverscroll(E.options.overscroll),0),T=J(D,E.translate(F,!0,!E.horiz)),z=J(I,E.translate(L,!0,!E.horiz)),O=_&&_.fixedRange,f=(E.pointRange||0)/2;if(fe(D)||(T=le(T+f)),fe(I)||(z=le(z-f)),O&&E.dataMin&&E.dataMax){let a=E.dataMax+b;z>=a&&(T=le(a-O),z=le(a)),T<=E.dataMin&&(z=le(E.dataMin+O))}return pe(T)&&pe(z)||(T=z=void 0),{min:T,max:z}}}return A}),Pe(V,"Stock/Navigator/NavigatorDefaults.js",[V["Core/Color/Color.js"],V["Core/Series/SeriesRegistry.js"]],function(Z,ie){let{parse:re}=Z,{seriesTypes:ve}=ie;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:re("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===ve.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),Pe(V,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(Z,ie,re,ve,le={}){let fe=le.width?le.width/2:re,pe=Math.round(fe/3)+.5;return[["M",-fe-1,.5],["L",fe,.5],["L",fe,(ve=le.height||ve)+.5],["L",-fe-1,ve+.5],["L",-fe-1,.5],["M",-pe,4],["L",-pe,ve-3],["M",pe-1,4],["L",pe-1,ve-3]]}}}),Pe(V,"Stock/Utilities/StockUtilities.js",[V["Core/Utilities.js"]],function(Z){let{defined:ie}=Z;return{setFixedRange:function(re){let ve=this.xAxis[0];this.fixedRange=ie(ve.dataMax)&&ie(ve.dataMin)&&re?Math.min(re,ve.dataMax-ve.dataMin):re}}}),Pe(V,"Stock/Navigator/NavigatorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/Navigator/NavigatorSymbols.js"],V["Core/Renderer/RendererRegistry.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{setOptions:te}=Z,{composed:$}=ie,{getRendererType:A}=fe,{setFixedRange:B}=pe,{addEvent:F,extend:L,pushUnique:D}=J;function I(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(E,_,b){re.compose(_),D($,"Navigator")&&(E.prototype.setFixedRange=B,L(A().prototype.symbols,le),F(b,"afterUpdate",I),te({navigator:ve}))}}}),Pe(V,"Core/Axis/ScrollbarAxis.js",[V["Core/Globals.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{composed:ve}=Z,{addEvent:le,defined:fe,pick:pe,pushUnique:J}=ie;return function(te){let $;function A(D){let I=pe(D.options&&D.options.min,D.min),E=pe(D.options&&D.options.max,D.max);return{axisMin:I,axisMax:E,scrollMin:fe(D.dataMin)?Math.min(I,D.min,D.dataMin,pe(D.threshold,1/0)):I,scrollMax:fe(D.dataMax)?Math.max(E,D.max,D.dataMax,pe(D.threshold,-1/0)):E}}function B(){let D=this.scrollbar,E=this.horiz?2:D&&!D.options.opposite?3:1;D&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[E]+=D.size+(D.options.margin||0))}function F(){let D=this;D.options&&D.options.scrollbar&&D.options.scrollbar.enabled&&(D.options.scrollbar.vertical=!D.horiz,D.options.startOnTick=D.options.endOnTick=!1,D.scrollbar=new $(D.chart.renderer,D.options.scrollbar,D.chart),le(D.scrollbar,"changed",function(I){let E,_,{axisMin:b,axisMax:T,scrollMin:z,scrollMax:O}=A(D),f=O-z;fe(b)&&fe(T)&&(D.horiz&&!D.reversed||!D.horiz&&D.reversed?(E=z+f*this.to,_=z+f*this.from):(E=z+f*(1-this.from),_=z+f*(1-this.to)),this.shouldUpdateExtremes(I.DOMType)?D.setExtremes(_,E,!0,"mousemove"!==I.DOMType&&"touchmove"!==I.DOMType&&void 0,I):this.setRange(this.from,this.to))}))}function L(){let D,I,E,{scrollMin:_,scrollMax:b}=A(this),T=this.scrollbar,z=this.axisTitleMargin+(this.titleOffset||0),O=this.chart.scrollbarsOffsets,f=this.options.margin||0;if(T&&O){if(this.horiz)this.opposite||(O[1]+=z),T.position(this.left,this.top+this.height+2+O[1]-(this.opposite?f:0),this.width,this.height),this.opposite||(O[1]+=f),D=1;else{let a;this.opposite&&(O[0]+=z),a=T.options.opposite?this.left+this.width+2+O[0]-(this.opposite?0:f):this.opposite?0:f,T.position(a,this.top,this.width,this.height),this.opposite&&(O[0]+=f),D=0}O[D]+=T.size+(T.options.margin||0),isNaN(_)||isNaN(b)||!fe(this.min)||!fe(this.max)||this.min===this.max?T.setRange(0,1):(I=(this.min-_)/(b-_),E=(this.max-_)/(b-_),this.horiz&&!this.reversed||!this.horiz&&this.reversed?T.setRange(I,E):T.setRange(1-E,1-I))}}te.compose=function(D,I){J(ve,"Axis.Scrollbar")&&($=I,le(D,"afterGetOffset",B),le(D,"afterInit",F),le(D,"afterRender",L))}}(re||(re={})),re}),Pe(V,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),Pe(V,"Stock/Scrollbar/Scrollbar.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/ScrollbarAxis.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{defaultOptions:fe}=Z,{addEvent:pe,correctFloat:J,defined:te,destroyObjectProperties:$,fireEvent:A,merge:B,pick:F,removeEvent:L}=le;class D{static compose(E){re.compose(E,D)}static swapXY(E,_){return _&&E.forEach(b=>{let T,z=b.length;for(let O=0;Othis.calculatedWidth?_.minWidth:0;return{chartX:(E.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(E.chartY-this.y-this.yOffset)/(this.barWidth-b)}}destroy(){let E=this,_=E.chart.scroller;E.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){E[b]&&E[b].destroy&&(E[b]=E[b].destroy())}),_&&E===_.scrollbar&&(_.scrollbar=null,$(_.scrollbarButtons))}drawScrollbarButton(E){let _=this.renderer,b=this.scrollbarButtons,T=this.options,z=this.size,O=_.g().add(this.group);if(b.push(O),T.buttonsEnabled){let f=_.rect().addClass("highcharts-scrollbar-button").add(O);this.chart.styledMode||f.attr({stroke:T.buttonBorderColor,"stroke-width":T.buttonBorderWidth,fill:T.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:z+1,height:z+1,r:T.buttonBorderRadius},f.strokeWidth()));let a=_.path(D.swapXY([["M",z/2+(E?-1:1),z/2-3],["L",z/2+(E?-1:1),z/2+3],["L",z/2+(E?2:-2),z/2]],T.vertical)).addClass("highcharts-scrollbar-arrow").add(b[E]);this.chart.styledMode||a.attr({fill:T.buttonArrowColor})}}init(E,_,b){this.scrollbarButtons=[],this.renderer=E,this.userOptions=_,this.options=B(ve,fe.scrollbar,_),this.options.margin=F(this.options.margin,10),this.chart=b,this.size=F(this.options.size,this.options.height),_.enabled&&(this.render(),this.addEvents())}mouseDownHandler(E){let _=this.chart.pointer?.normalize(E)||E,b=this.cursorToScrollbarPosition(_);this.chartX=b.chartX,this.chartY=b.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(E){let _,b=this.chart.pointer?.normalize(E)||E,T=this.options.vertical?"chartY":"chartX",z=this.initPositions||[];this.grabbedCenter&&(!E.touches||0!==E.touches[0][T])&&(_=this.cursorToScrollbarPosition(b)[T]-this[T],this.hasDragged=!0,this.updatePosition(z[0]+_,z[1]+_),this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}))}mouseUpHandler(E){this.hasDragged&&A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:E.type,DOMEvent:E}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(E,_,b,T){let{buttonsEnabled:z,margin:O=0,vertical:f}=this.options,a=this.rendered?"animate":"attr",g=T,y=0;this.group.show(),this.x=E,this.y=_+this.trackBorderWidth,this.width=b,this.height=T,this.xOffset=g,this.yOffset=y,f?(this.width=this.yOffset=b=y=this.size,this.xOffset=g=0,this.yOffset=y=z?this.size:0,this.barWidth=T-(z?2*b:0),this.x=E+=O):(this.height=T=this.size,this.xOffset=g=z?this.size:0,this.barWidth=b-(z?2*T:0),this.y=this.y+O),this.group[a]({translateX:E,translateY:this.y}),this.track[a]({width:b,height:T}),this.scrollbarButtons[1][a]({translateX:f?0:b-g,translateY:f?T-y:0})}removeEvents(){this._events.forEach(function(E){L.apply(null,E)}),this._events.length=0}render(){let E=this.renderer,_=this.options,b=this.size,T=this.chart.styledMode,z=E.g("scrollbar").attr({zIndex:_.zIndex}).hide().add();this.group=z,this.track=E.rect().addClass("highcharts-scrollbar-track").attr({r:_.trackBorderRadius||0,height:b,width:b}).add(z),T||this.track.attr({fill:_.trackBackgroundColor,stroke:_.trackBorderColor,"stroke-width":_.trackBorderWidth});let O=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-O%2/2,y:-O%2/2}),this.scrollbarGroup=E.g().add(z),this.scrollbar=E.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-O,width:b-O,r:_.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=E.path(D.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],_.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),T||(this.scrollbar.attr({fill:_.barBackgroundColor,stroke:_.barBorderColor,"stroke-width":_.barBorderWidth}),this.scrollbarRifles.attr({stroke:_.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(E,_){let b,T,z=this.options,O=z.vertical,f=z.minWidth,a=this.barWidth,g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!te(a))return;let y=a*Math.min(_,1);b=Math.ceil(a*(E=Math.max(E,0))),this.calculatedWidth=T=J(y-b),T=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(E){return F(this.options.liveRedraw,ie.svg&&!ie.isTouchDevice&&!this.chart.boosted)||"mouseup"===E||"touchend"===E||!te(E)}trackClick(E){let _=this.chart.pointer?.normalize(E)||E,b=this.to-this.from;this.options.vertical&&_.chartY>this.y+this.scrollbarTop||!this.options.vertical&&_.chartX>this.x+this.scrollbarLeft?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b),A(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:E})}update(E){this.destroy(),this.init(this.chart.renderer,B(!0,this.options,E),this.chart)}updatePosition(E,_){_>1&&(E=J(1-J(_-E)),_=1),E<0&&(_=J(_-E),E=0),this.from=E,this.to=_}}return D.defaultOptions=ve,fe.scrollbar=B(!0,D.defaultOptions,fe.scrollbar),D}),Pe(V,"Stock/Navigator/Navigator.js",[V["Core/Axis/Axis.js"],V["Stock/Navigator/ChartNavigatorComposition.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Core/Axis/NavigatorAxisComposition.js"],V["Stock/Navigator/NavigatorComposition.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{defaultOptions:te}=re,{isTouchDevice:$}=ve,{addEvent:A,clamp:B,correctFloat:F,defined:L,destroyObjectProperties:D,erase:I,extend:E,find:_,fireEvent:b,isArray:T,isNumber:z,merge:O,pick:f,removeEvent:a,splat:g}=J;function y(n,...r){let l=[].filter.call(r,z);if(l.length)return Math[n].apply(0,l)}class o{static compose(r,l,d){ie.compose(r,o),fe.compose(r,l,d)}constructor(r){this.scrollbarHeight=0,this.init(r)}drawHandle(r,l,d,C){let k=this.navigatorOptions.handles.height;this.handles[l][C](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(r,10)+.5-k)}:{translateX:Math.round(this.left+parseInt(r,10)),translateY:Math.round(this.top+this.height/2-k/2-1)})}drawOutline(r,l,d,C){let x,N,k=this.navigatorOptions.maskInside,p=this.outline.strokeWidth(),S=p/2,j=p%2/2,H=this.scrollButtonSize,Y=this.size,U=this.top,se=this.height,w=U-S,X=U+se,G=this.left;d?(x=U+l+j,N=[["M",G+se,U-H-j],["L",G+se,x],["L",G,x],["M",G,l=U+r+j],["L",G+se,l],["L",G+se,U+Y+H]],k&&N.push(["M",G+se,x-S],["L",G+se,l+S])):(G-=H,N=[["M",G,w],["L",r+=G+H-j,w],["L",r,X],["M",l+=G+H-j,X],["L",l,w],["L",G+Y+2*H,U+S]],k&&N.push(["M",r-S,w],["L",l+S,w])),this.outline[C]({d:N})}drawMasks(r,l,d,C){let k,p,S,j,H=this.left,Y=this.top,U=this.height;d?(S=[H,H,H],j=[Y,Y+r,Y+l],p=[U,U,U],k=[r,l-r,this.size-l]):(S=[H,H+r,H+l],j=[Y,Y,Y],p=[r,l-r,this.size-l],k=[U,U,U]),this.shades.forEach((se,w)=>{se[C]({x:S[w],y:j[w],width:p[w],height:k[w]})})}renderElements(){let r=this,l=r.navigatorOptions,d=l.maskInside,C=r.chart,p=C.renderer,S={cursor:C.inverted?"ns-resize":"ew-resize"},j=r.navigatorGroup=p.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!d,d,!d].forEach((H,Y)=>{let U=p.rect().addClass("highcharts-navigator-mask"+(1===Y?"-inside":"-outside")).add(j);C.styledMode||(U.attr({fill:H?l.maskFill:"rgba(0,0,0,0)"}),1===Y&&U.css(S)),r.shades[Y]=U}),r.outline=p.path().addClass("highcharts-navigator-outline").add(j),C.styledMode||r.outline.attr({"stroke-width":l.outlineWidth,stroke:l.outlineColor}),l.handles&&l.handles.enabled){let H=l.handles,{height:Y,width:U}=H;[0,1].forEach(se=>{r.handles[se]=p.symbol(H.symbols[se],-U/2-1,0,U,Y,H),C.inverted&&r.handles[se].attr({rotation:90,rotationOriginX:Math.floor(-U/2),rotationOriginY:(Y+U)/2}),r.handles[se].attr({zIndex:7-se}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][se]).add(j),C.styledMode||r.handles[se].attr({fill:H.backgroundColor,stroke:H.borderColor,"stroke-width":H.lineWidth}).css(S)})}}update(r){(this.series||[]).forEach(l=>{l.baseSeries&&delete l.baseSeries.navigatorSeries}),this.destroy(),O(!0,this.chart.options.navigator,r),this.init(this.chart)}render(r,l,d,C){let G,x,N,K,q,k=this.chart,p=this.xAxis,S=p.pointRange||0,j=p.navigatorAxis.fake?k.xAxis[0]:p,H=this.navigatorEnabled,Y=this.rendered,U=k.inverted,se=k.xAxis[0].minRange,w=k.xAxis[0].options.maxRange,X=this.scrollButtonSize,R=this.scrollbarHeight;if(this.hasDragged&&!L(d))return;if(r=F(r-S/2),l=F(l+S/2),!z(r)||!z(l)){if(!Y)return;d=0,C=f(p.width,j.width)}this.left=f(p.left,k.plotLeft+X+(U?k.plotWidth:0));let he=this.size=K=f(p.len,(U?k.plotHeight:k.plotWidth)-2*X);G=U?R:K+2*X,d=f(d,p.toPixels(r,!0)),C=f(C,p.toPixels(l,!0)),z(d)&&Math.abs(d)!==1/0||(d=0,C=G);let me=p.toValue(d,!0),Ce=p.toValue(C,!0),Se=Math.abs(F(Ce-me));Sew&&(this.grabbedLeft?d=p.toPixels(Ce-w-S,!0):this.grabbedRight&&(C=p.toPixels(me+w+S,!0))),this.zoomedMax=B(Math.max(d,C),0,he),this.zoomedMin=B(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,C),0,he),this.range=this.zoomedMax-this.zoomedMin,he=Math.round(this.zoomedMax);let Oe=Math.round(this.zoomedMin);H&&(this.navigatorGroup.attr({visibility:"inherit"}),q=Y&&!this.hasDragged?"animate":"attr",this.drawMasks(Oe,he,U,q),this.drawOutline(Oe,he,U,q),this.navigatorOptions.handles.enabled&&(this.drawHandle(Oe,0,U,q),this.drawHandle(he,1,U,q))),this.scrollbar&&(U?(N=this.top-X,x=this.left-R+(H||!j.opposite?0:(j.titleOffset||0)+j.axisTitleMargin),R=K+2*X):(N=this.top+(H?this.height:-R),x=this.left-X),this.scrollbar.position(x,N,G,R),this.scrollbar.setRange(this.zoomedMin/(K||1),this.zoomedMax/(K||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let k,p,r=this,l=r.chart,d=l.container,C=[];r.mouseMoveHandler=k=function(S){r.onMouseMove(S)},r.mouseUpHandler=p=function(S){r.onMouseUp(S)},(C=r.getPartsEvents("mousedown")).push(A(l.renderTo,"mousemove",k),A(d.ownerDocument,"mouseup",p),A(l.renderTo,"touchmove",k),A(d.ownerDocument,"touchend",p)),C.concat(r.getPartsEvents("touchstart")),r.eventsToUnbind=C,r.series&&r.series[0]&&C.push(A(r.series[0].xAxis,"foundExtremes",function(){l.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(r){let l=this,d=[];return["shades","handles"].forEach(function(C){l[C].forEach(function(k,p){d.push(A(k.element,r,function(S){l[C+"Mousedown"](S,p)}))})}),d}shadesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let Y,U,se,w,C=this.xAxis,k=this.zoomedMin,p=this.size,S=this.range,j=this.left,H=r.chartX;this.chart.inverted&&(H=r.chartY,j=this.top),1===l?(this.grabbedCenter=H,this.fixedWidth=S,this.dragOffset=H-k):(w=H-j-S/2,0===l?w=Math.max(0,w):2===l&&w+S>=p&&(w=p-S,this.reversedExtremes?(w-=S,U=this.getUnionExtremes().dataMin):Y=this.getUnionExtremes().dataMax),w!==k&&(this.fixedWidth=S,L((se=C.navigatorAxis.toFixedRange(w,w+S,U,Y)).min)&&b(this,"setRange",{min:Math.min(se.min,se.max),max:Math.max(se.min,se.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(r,l){r=this.chart.pointer?.normalize(r)||r;let d=this.chart,C=d.xAxis[0],k=this.reversedExtremes;0===l?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?C.min:C.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?C.max:C.min),d.setFixedRange(void 0)}onMouseMove(r){let H,l=this,d=l.chart,C=l.navigatorSize,k=l.range,p=l.dragOffset,S=d.inverted,j=l.left;(!r.touches||0!==r.touches[0].pageX)&&(H=(r=d.pointer?.normalize(r)||r).chartX,S&&(j=l.top,H=r.chartY),l.grabbedLeft?(l.hasDragged=!0,l.render(0,0,H-j,l.otherHandlePos)):l.grabbedRight?(l.hasDragged=!0,l.render(0,0,l.otherHandlePos,H-j)):l.grabbedCenter&&(l.hasDragged=!0,HC+p-k&&(H=C+p-k),l.render(0,0,H-p,H-p+k)),l.hasDragged&&l.scrollbar&&f(l.scrollbar.options.liveRedraw,!$&&!this.chart.boosted)&&(r.DOMType=r.type,setTimeout(function(){l.onMouseUp(r)},0)))}onMouseUp(r){let l,d,C,k,p,S,H=this.xAxis,Y=this.scrollbar,U=r.DOMEvent||r,se=this.chart.inverted,w=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!Y||!Y.hasDragged)||"scrollbar"===r.trigger)&&(C=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?k=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?C.dataMin:C.dataMax),0===this.zoomedMin&&(k=this.reversedExtremes?C.dataMax:C.dataMin),L((S=H.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,k,p)).min)&&b(this,"setRange",{min:Math.min(S.min,S.max),max:Math.max(S.min,S.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:U}})),"mousemove"!==r.DOMType&&"touchmove"!==r.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&z(this.zoomedMin)&&z(this.zoomedMax)&&(d=Math.round(this.zoomedMin),l=Math.round(this.zoomedMax),this.shades&&this.drawMasks(d,l,se,w),this.outline&&this.drawOutline(d,l,se,w),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(d,0,se,w),this.drawHandle(l,1,se,w)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(r){r()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let r=this.baseSeries||[];this.navigatorEnabled&&r[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&r.forEach(function(l){a(l,"updatedData",this.updatedDataHandler)},this),r[0].xAxis&&a(r[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(r){let l=r.options,d=l.navigator||{},C=d.enabled,k=l.scrollbar||{},p=k.enabled,S=C&&d.height||0,j=p&&k.height||0,H=k.buttonsEnabled&&j||0;this.handles=[],this.shades=[],this.chart=r,this.setBaseSeries(),this.height=S,this.scrollbarHeight=j,this.scrollButtonSize=H,this.scrollbarEnabled=p,this.navigatorEnabled=C,this.navigatorOptions=d,this.scrollbarOptions=k,this.opposite=f(d.opposite,!(C||!r.inverted));let Y=this,U=Y.baseSeries,se=r.xAxis.length,w=r.yAxis.length,X=U&&U[0]&&U[0].xAxis||r.xAxis[0]||{options:{}};if(r.isDirtyBox=!0,Y.navigatorEnabled?(Y.xAxis=new Z(r,O({breaks:X.options.breaks,ordinal:X.options.ordinal,overscroll:X.options.overscroll},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:se,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},r.inverted?{offsets:[H,0,-H,0],width:S}:{offsets:[0,-H,0,H],height:S}),"xAxis"),Y.yAxis=new Z(r,O(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:w,isInternal:!0,reversed:f(d.yAxis&&d.yAxis.reversed,r.yAxis[0]&&r.yAxis[0].reversed,!1),zoomEnabled:!1},r.inverted?{width:S}:{height:S}),"yAxis"),U||d.series.data?Y.updateNavigatorSeries(!1):0===r.series.length&&(Y.unbindRedraw=A(r,"beforeRedraw",function(){r.series.length>0&&!Y.series&&(Y.setBaseSeries(),Y.unbindRedraw())})),Y.reversedExtremes=r.inverted&&!Y.xAxis.reversed||!r.inverted&&Y.xAxis.reversed,Y.renderElements(),Y.addMouseEvents()):(Y.xAxis={chart:r,navigatorAxis:{fake:!0},translate:function(G,x){let N=r.xAxis[0],R=N.getExtremes(),K=N.len-2*H,q=y("min",N.options.min,R.dataMin),he=y("max",N.options.max,R.dataMax)-q;return x?G*he/K+q:K*(G-q)/he},toPixels:function(G){return this.translate(G)},toValue:function(G){return this.translate(G,!0)}},Y.xAxis.navigatorAxis.axis=Y.xAxis,Y.xAxis.navigatorAxis.toFixedRange=le.prototype.toFixedRange.bind(Y.xAxis.navigatorAxis)),r.options.scrollbar.enabled){let G=O(r.options.scrollbar,{vertical:r.inverted});!z(G.margin)&&Y.navigatorEnabled&&(G.margin=r.inverted?-3:3),r.scrollbar=Y.scrollbar=new pe(r.renderer,G,r),A(Y.scrollbar,"changed",function(x){let N=Y.size,R=N*this.to,K=N*this.from;Y.hasDragged=Y.scrollbar.hasDragged,Y.render(0,0,K,R),this.shouldUpdateExtremes(x.DOMType)&&setTimeout(function(){Y.onMouseUp(x)})})}Y.addBaseSeriesEvents(),Y.addChartEvents()}getUnionExtremes(r){let l,d=this.chart.xAxis[0],C=this.xAxis,k=C.options,p=d.options;return r&&null===d.dataMin||(l={dataMin:f(k&&k.min,y("min",p.min,d.dataMin,C.dataMin,C.min)),dataMax:f(k&&k.max,y("max",p.max,d.dataMax,C.dataMax,C.max))}),l}setBaseSeries(r,l){let d=this.chart,C=this.baseSeries=[];r=r||d.options&&d.options.navigator.baseSeries||(d.series.length?_(d.series,k=>!k.options.isInternal).index:0),(d.series||[]).forEach((k,p)=>{!k.options.isInternal&&(k.options.showInNavigator||(p===r||k.options.id===r)&&!1!==k.options.showInNavigator)&&C.push(k)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,l)}updateNavigatorSeries(r,l){let j,H,U,d=this,C=d.chart,k=d.baseSeries,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},S=d.series=(d.series||[]).filter(se=>{let w=se.baseSeries;return!(0>k.indexOf(w)&&(w&&(a(w,"updatedData",d.updatedDataHandler),delete w.navigatorSeries),se.chart&&se.destroy(),1))}),Y=d.navigatorOptions.series;k&&k.length&&k.forEach(se=>{let w=se.navigatorSeries,X=E({color:se.color,visible:se.visible},T(Y)?te.navigator.series:Y);if(w&&!1===d.navigatorOptions.adaptToUpdatedData)return;p.name="Navigator "+k.length,U=(j=se.options||{}).navigatorOptions||{},X.dataLabels=g(X.dataLabels),(H=O(j,p,X,U)).pointRange=f(X.pointRange,U.pointRange,te.plotOptions[H.type||"line"].pointRange);let G=U.data||X.data;d.hasNavigatorData=d.hasNavigatorData||!!G,H.data=G||j.data&&j.data.slice(0),w&&w.options?w.update(H,l):(se.navigatorSeries=C.initSeries(H),C.setSortedData(),se.navigatorSeries.baseSeries=se,S.push(se.navigatorSeries))}),(Y.data&&!(k&&k.length)||T(Y))&&(d.hasNavigatorData=!1,(Y=g(Y)).forEach((se,w)=>{p.name="Navigator "+(S.length+1),(H=O(te.navigator.series,{color:C.series[w]&&!C.series[w].options.isInternal&&C.series[w].color||C.options.colors[w]||C.options.colors[0]},p,se)).data=se.data,H.data&&(d.hasNavigatorData=!0,S.push(C.initSeries(H)))})),r&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let r=this,l=r.baseSeries||[];l[0]&&l[0].xAxis&&l[0].eventsToUnbind.push(A(l[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),l.forEach(d=>{d.eventsToUnbind.push(A(d,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),d.eventsToUnbind.push(A(d,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&d.xAxis&&d.eventsToUnbind.push(A(d,"updatedData",this.updatedDataHandler)),d.eventsToUnbind.push(A(d,"remove",function(){this.navigatorSeries&&(I(r.series,this.navigatorSeries),L(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(r){return this.baseSeries.reduce(function(l,d){return Math.min(l,d.xData&&d.xData.length?d.xData[0]:l)},r)}modifyNavigatorAxisExtremes(){let r=this.xAxis;if(void 0!==r.getExtremes){let l=this.getUnionExtremes(!0);l&&(l.dataMin!==r.min||l.dataMax!==r.max)&&(r.min=l.dataMin,r.max=l.dataMax)}}modifyBaseAxisExtremes(){let r,l,d=this.chart.navigator,C=this.getExtremes(),S=C.dataMin,j=C.dataMax,H=C.max-C.min,Y=d.stickToMin,U=d.stickToMax,se=f(this.ordinal?.convertOverscroll(this.options.overscroll),0),w=d.series&&d.series[0],X=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(Y&&(r=(l=S)+H),U&&(r=j+se,Y||(l=Math.max(S,r-H,d.getBaseSeriesMin(w&&w.xData?w.xData[0]:-Number.MAX_VALUE)))),X&&(Y||U)&&z(l)&&(this.min=this.userMin=l,this.max=this.userMax=r)),d.stickToMin=d.stickToMax=null}updatedDataHandler(){let r=this.chart.navigator,l=this.navigatorSeries,d=r.reversedExtremes?0===Math.round(r.zoomedMin):Math.round(r.zoomedMax)>=Math.round(r.size);r.stickToMax=f(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,d),r.stickToMin=r.shouldStickToMin(this,r),l&&!r.hasNavigatorData&&(l.options.pointStart=this.xData[0],l.setData(this.options.data,!1,null,!1))}shouldStickToMin(r,l){let d=l.getBaseSeriesMin(r.xData[0]),C=r.xAxis,k=C.max,p=C.min,S=C.options.range;return!(!z(k)||!z(p))&&(S&&k-d>0?k-d{r.destroy&&r.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(r=>{this[r]&&this[r].destroy&&this[r].destroy(),this[r]=null}),[this.handles].forEach(r=>{D(r)})}}return o}),Pe(V,"Core/Axis/OrdinalAxis.js",[V["Core/Axis/Axis.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{addEvent:fe,correctFloat:pe,css:J,defined:te,error:$,isNumber:A,pick:B,timeUnits:F,isString:L}=ve;return function(D){function I(n,r,l,d,C=[],k=0,p){let U,se,w,X,G,S={},j=this.options.tickPixelInterval,H=this.chart.time,Y=[],x=0,N=[],R=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!C||C.length<3||void 0===r)return H.getTimeTicks.apply(H,arguments);let K=C.length;for(U=0;Ul,C[U]5*k||G){if(C[U]>R){for(se=H.getTimeTicks(n,C[x],C[U],d);se.length&&se[0]<=R;)se.shift();se.length&&(R=se[se.length-1]),Y.push(N.length),N=N.concat(se)}x=U+1}if(G)break}if(se){if(X=se.info,p&&X.unitRange<=F.hour){for(x=1,U=N.length-1;xl?q-1:q,Oe=void 0;oe--;)Fe=Math.abs(Oe-(Se=he[oe])),Oe&&Fe<.8*j&&(null===Ae||Fe<.8*Ae)?(S[N[oe]]&&!S[N[oe+1]]?(Ce=oe+1,Oe=Se):Ce=oe,N.splice(Ce,1)):Oe=Se}return N}function E(n){let r=this.ordinal.positions;if(!r)return n;let d,l=r.length-1;return n<0?n=r[0]:n>l?n=r[l]:(l=Math.floor(n),d=n-l),void 0!==d&&void 0!==r[l]?r[l]+(d?d*(r[l+1]-r[l]):0):n}function _(n){let r=this.ordinal,l=this.old?this.old.min:this.min,d=this.old?this.old.transA:this.transA,C=r.getExtendedPositions();if(C&&C.length){let k=pe((n-l)*d+this.minPixelPadding),p=pe(r.getIndexOfPoint(k,C)),S=pe(p%1);if(p>=0&&p<=C.length-1){let j=C[Math.floor(p)],H=C[Math.ceil(p)];return C[Math.floor(p)]+S*(H-j)}}return n}function b(n,r){let l=D.Additions.findIndexOf(n,r,!0);return n[l]===r?l:l+(r-n[l])/(n[l+1]-n[l])}function T(){this.ordinal||(this.ordinal=new D.Additions(this))}function z(){let{eventArgs:n,options:r}=this;if(this.isXAxis&&te(r.overscroll)&&0!==r.overscroll&&A(this.max)&&A(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&("pan"!==n?.trigger||this.isInternal)&&"navigator"!==n?.trigger)){let l=this.ordinal.convertOverscroll(r.overscroll);this.max+=l,!this.isInternal&&te(this.userMin)&&"mousewheel"!==n?.trigger&&(this.min+=l)}}function O(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function f(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function a(n){let r=this.xAxis[0],l=r.ordinal.convertOverscroll(r.options.overscroll),d=n.originalEvent.chartX,C=this.options.chart.panning,k=!1;if(C&&"y"!==C.type&&r.options.ordinal&&r.series.length){let p,S,j=this.mouseDownX,H=r.getExtremes(),Y=H.dataMax,U=H.min,se=H.max,w=this.hoverPoints,G=Math.round((j-d)/(r.translationSlope*(r.ordinal.slope||r.closestPointRange||r.ordinal&&r.ordinal.overscrollPointsRange))),x=r.ordinal.getExtendedPositions(),N={ordinal:{positions:x,extendedOrdinalPositions:x}},R=r.index2val,K=r.val2lin;N.ordinal.positions?Math.abs(G)>1&&(w&&w.forEach(function(q){q.setState()}),Y>(S=N.ordinal.positions)[S.length-1]&&S.push(Y),this.setFixedRange(se-U),(p=r.navigatorAxis.toFixedRange(void 0,void 0,R.apply(N,[K.apply(N,[U,!0])+G]),R.apply(N,[K.apply(N,[se,!0])+G]))).min>=Math.min(H.dataMin,U)&&p.max<=Math.max(Y,se)+l&&r.setExtremes(p.min,p.max,!0,!1,{trigger:"pan"}),this.mouseDownX=d,J(this.container,{cursor:"move"})):k=!0}else k=!0;k||C&&/y/.test(C.type)?l&&(r.max=r.dataMax+l):n.preventDefault()}function g(){let n=this.xAxis;n&&n.options.ordinal&&(delete n.ordinal.index,delete n.ordinal.originalOrdinalRange)}function y(n,r){let l,p,d=this.ordinal,C=d.positions,k=d.slope;if(!C)return n;if(C[0]<=n&&C[C.length-1]>=n)l=b(C,n);else{if(!(p=d.getExtendedPositions&&d.getExtendedPositions())||!p.length)return n;let j=p.length;k||(k=(p[j-1]-p[0])/j);let H=b(p,C[0]);if(n>=p[0]&&n<=p[j-1])l=b(p,n)-H;else{if(!r)return n;l=n0&&"highcharts-navigator-series"!==he.options.id&&he.processedXData.length>1&&(R=q!==he.processedXData[1]-he.processedXData[0]),q=he.processedXData[1]-he.processedXData[0],he.boosted&&(K=he.boosted),he.reserveSpace()&&(!1!==he.takeOrdinalPosition||p)&&(j=(G=G.concat(he.processedXData)).length,G.sort(function(Ce,Se){return Ce-Se}),x=Math.min(x,B(he.closestPointRange,x)),j)){for(me=0;me2){for(Y=G[1]-G[0],X=j-1;X--&&!N;)G[X+1]-G[X]!==Y&&(N=!0);!r.options.keepOrdinalPadding&&(G[0]-C>Y||k-G[G.length-1]>Y)&&(N=!0)}else r.options.overscroll&&(2===j?x=G[1]-G[0]:1===j?(x=r.ordinal.convertOverscroll(r.options.overscroll),G=[G[0],G[0]+x]):x=l.overscrollPointsRange);N||r.forceOrdinal?(r.options.overscroll&&(l.overscrollPointsRange=x,G=G.concat(l.getOverscrollPositions())),l.positions=G,U=r.ordinal2lin(Math.max(C,G[0]),!0),se=Math.max(r.ordinal2lin(Math.min(k,G[G.length-1]),!0),1),l.slope=w=(k-C)/(se-U),l.offset=C-U*w):(l.overscrollPointsRange=B(r.closestPointRange,l.overscrollPointsRange),l.positions=r.ordinal.slope=l.offset=void 0)}r.isOrdinal=S&&N,l.groupIntervalFactor=null}static findIndexOf(r,l,d){let p,C=0,k=r.length-1;for(;C{let Y=H.points?.[0];te(Y?.plotX)&&(Y.plotXse.x>=Y&&se.x<=U)}(H)&&(d=Y.plotX,k=Y.x)}),d??(d=C.minPixelPadding);let j=pe((r-d)/(C.translationSlope*(this.slope||C.closestPointRange||this.overscrollPointsRange)));return o.findIndexOf(l,k,!0)+j}getOverscrollPositions(){let r=this.axis,l=this.convertOverscroll(r.options.overscroll),d=this.overscrollPointsRange,C=[],k=r.dataMax;if(te(d))for(;k<=r.dataMax+l;)C.push(k+=d);return C}postProcessTickInterval(r){let l=this.axis,d=this.slope;return d?l.options.breaks?l.closestPointRange||r:r/(d/l.closestPointRange):r}convertOverscroll(r=0){let l=this,d=l.axis,C=function(k){return B(l.originalOrdinalRange,te(d.dataMax)&&te(d.dataMin)?d.dataMax-d.dataMin:0)*k};if(L(r)){let k=parseInt(r,10);if(/%$/.test(r))return C(k/100);if(/px/.test(r)){let p=Math.min(k,.9*d.len)/d.len;return C(p/(1-p))}return 0}return r}}D.Additions=o}(le||(le={})),le}),Pe(V,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),Pe(V,"Stock/RangeSelector/RangeSelectorComposition.js",[V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let le,{defaultOptions:fe}=Z,{composed:pe}=ie,{addEvent:J,defined:te,extend:$,find:A,isNumber:B,merge:F,pick:L,pushUnique:D}=ve,I=[];function E(){let g,y,o=this.range,n=o.type,r=this.max,l=this.chart.time,d=function(k,p){let S="year"===n?"FullYear":"Month",j=new l.Date(k),H=l.get(S,j);return l.set(S,j,H+p),H===l.get(S,j)&&l.set("Date",j,0),j.getTime()-k};B(o)?(g=r-o,y=o):o&&(g=r+d(r,-(o.count||1)),this.chart&&this.chart.setFixedRange(r-g));let C=L(this.dataMin,Number.MIN_VALUE);return B(g)||(g=C),g<=C&&(g=C,void 0===y&&(y=d(g,o.count)),this.newMax=Math.min(g+y,L(this.dataMax,Number.MAX_VALUE))),B(r)?!B(o)&&o&&o._offsetMin&&(g+=o._offsetMin):g=void 0,g}function _(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new le(this))}function b(){let g=this.axes,y=this.rangeSelector;if(y){B(y.deferredYTDClick)&&(y.clickButton(y.deferredYTDClick),delete y.deferredYTDClick),g.forEach(n=>{n.updateNames(),n.setScale()}),this.getAxisMargins(),y.render();let o=y.options.verticalAlign;y.options.floating||("bottom"===o?this.extraBottomMargin=!0:"middle"===o||(this.extraTopMargin=!0))}}function T(g){let y,o,n,r,l=g.rangeSelector,d=()=>{l&&(y=g.xAxis[0].getExtremes(),o=g.legend,r=l&&l.options.verticalAlign,B(y.min)&&l.render(y.min,y.max),o.display&&"top"===r&&r===o.options.verticalAlign&&(n=F(g.spacingBox),"vertical"===o.options.layout?n.y=g.plotTop:n.y+=l.getHeight(),o.group.placed=!1,o.align(n)))};l&&(A(I,C=>C[0]===g)||I.push([g,[J(g.xAxis[0],"afterSetExtremes",function(C){l&&l.render(C.min,C.max)}),J(g,"redraw",d)]]),d())}function z(){for(let g=0,y=I.length;gn()),void I.splice(g,1)}}function O(){let g=this.rangeSelector;if(g){let y=g.getHeight();this.extraTopMargin&&(this.plotTop+=y),this.extraBottomMargin&&(this.marginBottom+=y)}}function f(){let g=this.rangeSelector;if(g&&!g.options.floating){g.render();let y=g.options.verticalAlign;"bottom"===y?this.extraBottomMargin=!0:"middle"!==y&&(this.extraTopMargin=!0)}}function a(g){let y=g.options.rangeSelector,o=this.extraBottomMargin,n=this.extraTopMargin,r=this.rangeSelector;if(y&&y.enabled&&!te(r)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=r=new le(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,r){T(this);let l=y&&y.verticalAlign||r.options&&r.options.verticalAlign;r.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"===l||(this.extraTopMargin=!0)),(this.extraBottomMargin!==o||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:function(g,y,o){if(le=o,D(pe,"RangeSelector")){let n=y.prototype;g.prototype.minFromRange=E,J(y,"afterGetContainer",_),J(y,"beforeRender",b),J(y,"destroy",z),J(y,"getMargins",O),J(y,"render",f),J(y,"update",a),n.callbacks.push(T),$(fe,{rangeSelector:re.rangeSelector}),$(fe.lang,re.lang)}}}}),Pe(V,"Stock/RangeSelector/RangeSelector.js",[V["Core/Axis/Axis.js"],V["Core/Defaults.js"],V["Core/Globals.js"],V["Stock/RangeSelector/RangeSelectorComposition.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{defaultOptions:pe}=ie,{addEvent:J,createElement:te,css:$,defined:A,destroyObjectProperties:B,discardElement:F,extend:L,fireEvent:D,isNumber:I,merge:E,objectEach:_,pad:b,pick:T,pInt:z,splat:O}=fe;class f{static compose(g,y){ve.compose(g,y,f)}constructor(g){this.buttonOptions=f.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.chart=g,this.init(g)}clickButton(g,y){let S,H,U,se,w,X,G,o=this.chart,n=this.buttonOptions[g],r=o.xAxis[0],l=o.scroller&&o.scroller.getUnionExtremes()||r||{},d=n.type,C=n.dataGrouping,k=l.dataMin,p=l.dataMax,j=r&&Math.round(Math.min(r.max,T(p,r.max))),Y=n._range,x=!0;if(null!==k&&null!==p){if(this.setSelected(g),C&&(this.forcedDataGrouping=!0,Z.prototype.setDataGrouping.call(r||{chart:this.chart},C,!1),this.frozenStates=n.preserveDataGrouping),"month"===d||"year"===d)r?(X={range:n,max:j,chart:o,dataMin:k,dataMax:p},S=r.minFromRange.call(X),I(X.newMax)&&(j=X.newMax),x=!1):Y=n;else if(Y)j=Math.min((S=Math.max(j-Y,k))+Y,p),x=!1;else if("ytd"===d){if(!r)return void(this.deferredYTDClick=g);(void 0===p||void 0===k)&&(k=Number.MAX_VALUE,p=Number.MIN_VALUE,o.series.forEach(N=>{let R=N.xData;R&&(k=Math.min(R[0],k),p=Math.max(R[R.length-1],p))}),y=!1),S=U=(G=this.getYTDExtremes(p,k,o.time.useUTC)).min,j=G.max}else"all"===d&&r&&(o.navigator&&o.navigator.baseSeries[0]&&(o.navigator.baseSeries[0].xAxis.options.range=void 0),S=k,j=p);x&&n._offsetMin&&A(S)&&(S+=n._offsetMin),n._offsetMax&&A(j)&&(j+=n._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=g+1),r?(r.setExtremes(S,j,T(y,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:n}),o.setFixedRange(n._range)):(w=(H=O(o.options.xAxis)[0]).range,H.range=Y,se=H.min,H.min=U,J(o,"load",function(){o.setFixedRange(n._range),H.range=w,H.min=se})),D(this,"afterBtnClick")}}setSelected(g){this.selected=this.options.selected=g}init(g){let y=this,o=g.options.rangeSelector,n=o.buttons||y.defaultButtons.slice(),r=o.selected,l=function(){let d=y.minInput,C=y.maxInput;d&&d.blur&&D(d,"blur"),C&&C.blur&&D(C,"blur")};y.chart=g,y.options=o,y.buttons=[],y.buttonOptions=n,this.eventsToUnbind=[],this.eventsToUnbind.push(J(g.container,"mousedown",l)),this.eventsToUnbind.push(J(g,"resize",l)),n.forEach(y.computeButtonRange),void 0!==r&&n[r]&&this.clickButton(r,!1),this.eventsToUnbind.push(J(g,"load",function(){g.xAxis&&g.xAxis[0]&&J(g.xAxis[0],"setExtremes",function(d){I(this.max)&&I(this.min)&&this.max-this.min!==g.fixedRange&&"rangeSelectorButton"!==d.trigger&&"updatedData"!==d.trigger&&y.forcedDataGrouping&&!y.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){let g=this,y=this.chart,o=this.dropdown,n=y.xAxis[0],r=Math.round(n.max-n.min),l=!n.hasVisibleSeries,d=864e5,C=y.scroller&&y.scroller.getUnionExtremes()||n,k=C.dataMin,p=C.dataMax,S=g.getYTDExtremes(p,k,y.time.useUTC),j=S.min,H=S.max,Y=g.selected,U=g.options.allButtonsEnabled,se=g.buttons,w=I(Y),X=!1;g.buttonOptions.forEach((G,x)=>{let N=G._range,R=G.type,K=G.count||1,q=se[x],he=G._offsetMax-G._offsetMin,me=x===Y,Ce=N>p-k,Se=NN&&(oe=!0)}else("month"===R||"year"===R)&&r+36e5>={month:28,year:365}[R]*d*K-he&&r-36e5<={month:31,year:366}[R]*d*K+he?oe=!0:"ytd"===R?(oe=H-j+he===r,Ae=!me):"all"===R&&(oe=n.max-n.min>=p-k,Fe=!me&&w&&oe);let ee=!U&&!(X&&"all"===R)&&(Ce||Se||Fe||l);ee?Oe=3:(X&&"all"===R||me&&oe||oe&&!w&&!Ae||me&&g.frozenStates)&&(w=!0,Oe=2),q.state!==Oe&&(q.setState(Oe),o&&(o.options[x+1].disabled=ee,2===Oe&&(o.selectedIndex=x+1)),0===Oe&&Y===x?g.setSelected():(2===Oe&&!A(Y)||X)&&g.setSelected(x))})}computeButtonRange(g){let y=g.type,o=g.count||1,n={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};n[y]?g._range=n[y]*o:("month"===y||"year"===y)&&(g._range=24*{month:30,year:365}[y]*36e5*o),g._offsetMin=T(g.offsetMin,0),g._offsetMax=T(g.offsetMax,0),g._range+=g._offsetMax-g._offsetMin}getInputValue(g){let y="min"===g?this.minInput:this.maxInput,n=this.chart.time;return y?("text"===y.type&&this.chart.options.rangeSelector.inputDateParser||this.defaultInputDateParser)(y.value,n.useUTC,n):0}setInputValue(g,y){let o=this.options,n=this.chart.time,r="min"===g?this.minInput:this.maxInput,l="min"===g?this.minDateBox:this.maxDateBox;if(r){let d=r.getAttribute("data-hc-time"),C=A(d)?Number(d):void 0;if(A(y)){let k=C;A(k)&&r.setAttribute("data-hc-time-previous",k),r.setAttribute("data-hc-time",y),C=y}r.value=n.dateFormat(this.inputTypeFormats[r.type]||o.inputEditDateFormat,C),l&&l.attr({text:n.dateFormat(o.inputDateFormat,C)})}}setInputExtremes(g,y,o){let n="min"===g?this.minInput:this.maxInput;if(n){let r=this.inputTypeFormats[n.type],l=this.chart.time;if(r){let d=l.dateFormat(r,y);n.min!==d&&(n.min=d);let C=l.dateFormat(r,o);n.max!==C&&(n.max=C)}}}showInput(g){let y="min"===g?this.minDateBox:this.maxDateBox,o="min"===g?this.minInput:this.maxInput;if(o&&y&&this.inputGroup){let n="text"===o.type,{translateX:r=0,translateY:l=0}=this.inputGroup,{x:d=0,width:C=0,height:k=0}=y,{inputBoxWidth:p}=this.options;$(o,{width:n?C+(p?-2:20)+"px":"auto",height:k-2+"px",border:"2px solid silver"}),$(o,n&&p?{left:r+d+"px",top:l+"px"}:{left:Math.min(Math.round(d+r-(o.offsetWidth-C)/2),this.chart.chartWidth-o.offsetWidth)+"px",top:l-(o.offsetHeight-k)/2+"px"})}}hideInput(g){let y="min"===g?this.minInput:this.maxInput;y&&$(y,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(g,y,o){let n=g.split("/").join("-").split(" ").join("T");if(-1===n.indexOf("T")&&(n+="T00:00"),y)n+="Z";else{let l;if(re.isSafari&&(!((l=n).length>6)||l.lastIndexOf("-")!==l.length-6&&l.lastIndexOf("+")!==l.length-6)){let d=new Date(n).getTimezoneOffset()/60;n+=d<=0?`+${b(-d)}:00`:`-${b(d)}:00`}}let r=Date.parse(n);if(!I(r)){let l=g.split("-");r=Date.UTC(z(l[0]),z(l[1])-1,z(l[2]))}return o&&y&&I(r)&&(r+=o.getTimezoneOffset(r)),r}drawInput(g){let{chart:y,div:o,inputGroup:n}=this,r=this,l=y.renderer.style||{},d=y.renderer,C=y.options.rangeSelector,p="min"===g;function S(){let{maxInput:w,minInput:X}=r,G=y.xAxis[0],x=y.scroller&&y.scroller.getUnionExtremes()||G,N=x.dataMin,R=x.dataMax,K=r.getInputValue(g);K!==Number(U.getAttribute("data-hc-time-previous"))&&I(K)&&(U.setAttribute("data-hc-time-previous",K),p&&w&&I(N)?K>Number(w.getAttribute("data-hc-time"))?K=void 0:KR&&(K=R)),void 0!==K&&G.setExtremes(p?K:G.min,p?G.max:K,void 0,void 0,{trigger:"rangeSelectorInput"}))}let j=pe.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"",H=d.label(j,0).addClass("highcharts-range-label").attr({padding:j?2:0,height:j?C.inputBoxHeight:0}).add(n),Y=d.label("",0).addClass("highcharts-range-input").attr({padding:2,width:C.inputBoxWidth,height:C.inputBoxHeight,"text-align":"center"}).on("click",function(){r.showInput(g),r[g+"Input"].focus()});y.styledMode||Y.attr({stroke:C.inputBoxBorderColor,"stroke-width":1}),Y.add(n);let U=te("input",{name:g,className:"highcharts-range-selector"},void 0,o);U.setAttribute("type",function(w){if(-1!==w.indexOf("%L"))return"text";let X=["a","A","d","e","w","b","B","m","o","y","Y"].some(x=>-1!==w.indexOf("%"+x)),G=["H","k","I","l","M","S"].some(x=>-1!==w.indexOf("%"+x));return X&&G?"datetime-local":X?"date":G?"time":"text"}(C.inputDateFormat||"%e %b %Y")),y.styledMode||(H.css(E(l,C.labelStyle)),Y.css(E({color:"#333333"},l,C.inputStyle)),$(U,L({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:l.fontSize,fontFamily:l.fontFamily,top:"-9999em"},C.inputStyle))),U.onfocus=()=>{r.showInput(g)},U.onblur=()=>{U===re.doc.activeElement&&S(),r.hideInput(g),r.setInputValue(g),U.blur()};let se=!1;return U.onchange=()=>{se||(S(),r.hideInput(g),U.blur())},U.onkeypress=w=>{13===w.keyCode&&S()},U.onkeydown=w=>{se=!0,(38===w.keyCode||40===w.keyCode)&&S()},U.onkeyup=()=>{se=!1},{dateBox:Y,input:U,label:H}}getPosition(){let g=this.chart,y=g.options.rangeSelector,o="top"===y.verticalAlign?g.plotTop-g.axisOffset[0]:0;return{buttonTop:o+y.buttonPosition.y,inputTop:o+y.inputPosition.y-10}}getYTDExtremes(g,y,o){let n=this.chart.time,r=new n.Date(g),l=n.get("FullYear",r),d=Math.max(y,o?n.Date.UTC(l,0,1):+new n.Date(l,0,1)),C=r.getTime();return{max:Math.min(g||C,C),min:d}}render(g,y){let o=this.chart,n=o.renderer,r=o.container,l=o.options,d=l.rangeSelector,C=T(l.chart.style&&l.chart.style.zIndex,0)+1,k=d.inputEnabled;if(!1!==d.enabled){if(!this.rendered&&(this.group=n.g("range-selector-group").attr({zIndex:7}).add(),this.div=te("div",void 0,{position:"relative",height:0,zIndex:C}),this.buttonOptions.length&&this.renderButtons(),r.parentNode&&r.parentNode.insertBefore(this.div,r),k)){this.inputGroup=n.g("input-group").add(this.group);let S=this.drawInput("min");this.minDateBox=S.dateBox,this.minLabel=S.label,this.minInput=S.input;let j=this.drawInput("max");this.maxDateBox=j.dateBox,this.maxLabel=j.label,this.maxInput=j.input}if(k){this.setInputValue("min",g),this.setInputValue("max",y);let S=o.scroller&&o.scroller.getUnionExtremes()||o.xAxis[0]||{};if(A(S.dataMin)&&A(S.dataMax)){let j=o.xAxis[0].minRange||0;this.setInputExtremes("min",S.dataMin,Math.min(S.dataMax,this.getInputValue("max"))-j),this.setInputExtremes("max",Math.max(S.dataMin,this.getInputValue("min"))+j,S.dataMax)}if(this.inputGroup){let j=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(H=>{if(H){let{width:Y}=H.getBBox();Y&&(H.attr({x:j}),j+=Y+d.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){let{buttons:g,chart:y,options:o}=this,n=pe.lang,r=y.renderer,l=E(o.buttonTheme),d=l&&l.states,C=l.width||28;delete l.width,delete l.states,this.buttonGroup=r.g("range-selector-buttons").add(this.group);let k=this.dropdown=te("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);J(k,"touchstart",()=>{k.style.fontSize="16px"}),[[re.isMS?"mouseover":"mouseenter"],[re.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([p,S])=>{J(k,p,()=>{let j=g[this.currentButtonIndex()];j&&D(j.element,S||p)})}),this.zoomText=r.label(n&&n.rangeSelectorZoom||"",0).attr({padding:o.buttonTheme.padding,height:o.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(o.labelStyle),l["stroke-width"]=T(l["stroke-width"],0)),te("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,k),this.buttonOptions.forEach((p,S)=>{te("option",{textContent:p.title||p.text},void 0,k),g[S]=r.button(p.text,0,0,j=>{let H,Y=p.events&&p.events.click;Y&&(H=Y.call(p,j)),!1!==H&&this.clickButton(S),this.isActive=!0},l,d&&d.hover,d&&d.select,d&&d.disabled).attr({"text-align":"center",width:C}).add(this.buttonGroup),p.title&&g[S].attr("title",p.title)})}alignElements(){let{buttonGroup:g,buttons:y,chart:o,group:n,inputGroup:r,options:l,zoomText:d}=this,C=o.options,k=C.exporting&&!1!==C.exporting.enabled&&C.navigation&&C.navigation.buttonOptions,{buttonPosition:p,inputPosition:S,verticalAlign:j}=l,H=(U,se)=>k&&this.titleCollision(o)&&"top"===j&&"right"===se.align&&se.y-U.getBBox().height-12<(k.y||0)+(k.height||0)+o.spacing[0]?-40:0,Y=o.plotLeft;if(n&&p&&S){let U=p.x-o.spacing[3];if(g){if(this.positionButtons(),!this.initialButtonGroupWidth){let q=0;d&&(q+=d.getBBox().width+5),y.forEach((he,me)=>{q+=he.width||0,me!==y.length-1&&(q+=l.buttonSpacing)}),this.initialButtonGroupWidth=q}Y-=o.spacing[3],this.updateButtonStates();let K=H(g,p);this.alignButtonGroup(K),n.placed=g.placed=o.hasLoaded}let se=0;r&&(se=H(r,S),"left"===S.align?U=Y:"right"===S.align&&(U=-Math.max(o.axisOffset[1],-se)),r.align({y:S.y,width:r.getBBox().width,align:S.align,x:S.x+U-2},!0,o.spacingBox),r.placed=o.hasLoaded),this.handleCollision(se),n.align({verticalAlign:j},!0,o.spacingBox);let w=n.alignAttr.translateY,X=n.getBBox().height+20,G=0;if("bottom"===j){let K=o.legend&&o.legend.options;G=w-(X=X+(K&&"bottom"===K.verticalAlign&&K.enabled&&!K.floating?o.legend.legendHeight+T(K.margin,10):0)-20)-(l.floating?0:l.y)-(o.titleOffset?o.titleOffset[2]:0)-10}"top"===j?(l.floating&&(G=0),o.titleOffset&&o.titleOffset[0]&&(G=o.titleOffset[0]),G+=o.margin[0]-o.spacing[0]||0):"middle"===j&&(S.y===p.y?G=w:(S.y||p.y)&&(S.y<0||p.y<0?G-=Math.min(S.y,p.y):G=w-X)),n.translate(l.x,l.y+Math.floor(G));let{minInput:x,maxInput:N,dropdown:R}=this;l.inputEnabled&&x&&N&&(x.style.marginTop=n.translateY+"px",N.style.marginTop=n.translateY+"px"),R&&(R.style.marginTop=n.translateY+"px")}}alignButtonGroup(g,y){let{chart:o,options:n,buttonGroup:r}=this,{buttonPosition:l}=n,d=o.plotLeft-o.spacing[3],C=l.x-o.spacing[3];"right"===l.align?C+=g-d:"center"===l.align&&(C-=d/2),r&&r.align({y:l.y,width:T(y,this.initialButtonGroupWidth),align:l.align,x:C},!0,o.spacingBox)}positionButtons(){let{buttons:g,chart:y,options:o,zoomText:n}=this,r=y.hasLoaded?"animate":"attr",{buttonPosition:l}=o,d=y.plotLeft,C=d;n&&"hidden"!==n.visibility&&(n[r]({x:T(d+l.x,d)}),C+=l.x+n.getBBox().width+5);for(let k=0,p=this.buttonOptions.length;k{let S=0;return this.buttons.forEach(j=>{let H=j.getBBox();H.width>S&&(S=H.width)}),S},k=S=>{if(n&&o){let j=n.alignAttr.translateX+n.alignOptions.x-g+n.getBBox().x+2,H=n.alignOptions.width,Y=o.alignAttr.translateX+o.getBBox().x;return Y+S>j&&j+H>Y&&r.y{n&&o&&n.attr({translateX:n.alignAttr.translateX+(y.axisOffset[1]>=-g?0:-g),translateY:n.alignAttr.translateY+o.getBBox().height+10})};if(o){if("always"===l)return this.collapseButtons(g),void(k(C())&&p());"never"===l&&this.expandButtons()}n&&o?d.align===r.align||k(this.initialButtonGroupWidth+20)?"responsive"===l?(this.collapseButtons(g),k(C())&&p()):p():"responsive"===l&&this.expandButtons():o&&"responsive"===l&&(this.initialButtonGroupWidth>y.plotWidth?this.collapseButtons(g):this.expandButtons())}collapseButtons(g){let{buttons:y,buttonOptions:o,chart:n,dropdown:r,options:l,zoomText:d}=this;if(!0===this.isCollapsed)return;this.isCollapsed=!0;let C=n.userOptions.rangeSelector&&n.userOptions.rangeSelector.buttonTheme||{},k=j=>({text:j?`${j} \u25be`:"\u25be",width:"auto",paddingLeft:T(l.buttonTheme.paddingLeft,C.padding,8),paddingRight:T(l.buttonTheme.paddingRight,C.padding,8)});d&&d.hide();let p=!1;o.forEach((j,H)=>{let Y=y[H];2!==Y.state?Y.hide():(Y.show(),Y.attr(k(j.text)),p=!0)}),p||(r&&(r.selectedIndex=0),y[0].show(),y[0].attr(k(this.zoomText&&this.zoomText.textStr)));let{align:S}=l.buttonPosition;this.positionButtons(),("right"===S||"center"===S)&&this.alignButtonGroup(g,y[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){let{buttons:g,buttonOptions:y,options:o,zoomText:n}=this;this.hideDropdown(),!1!==this.isCollapsed&&(this.isCollapsed=!1,n&&n.show(),y.forEach((r,l)=>{let d=g[l];d.show(),d.attr({text:r.text,width:o.buttonTheme.width||28,paddingLeft:T(o.buttonTheme.paddingLeft,"unset"),paddingRight:T(o.buttonTheme.paddingRight,"unset")}),d.state<2&&d.setState(0)}),this.positionButtons())}currentButtonIndex(){let{dropdown:g}=this;return g&&g.selectedIndex>0?g.selectedIndex-1:0}showDropdown(){let{buttonGroup:g,buttons:y,chart:o,dropdown:n}=this;if(g&&n){let{translateX:r=0,translateY:l=0}=g,d=y[this.currentButtonIndex()].getBBox();$(n,{left:o.plotLeft+r+"px",top:l+.5+"px",width:d.width+"px",height:d.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:g}=this;g&&($(g,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let g=this.options,y=this.group,r=g.y,l=g.buttonPosition.y,d=g.inputPosition.y,C=0;if(g.height)return g.height;this.alignElements(),C=y?y.getBBox(!0).height+13+r:0;let k=Math.min(d,l);return(d<0&&l<0||d>0&&l>0)&&(C+=Math.abs(k)),C}titleCollision(g){return!(g.options.title.text||g.options.subtitle.text)}update(g){let y=this.chart;E(!0,y.options.rangeSelector,g),this.destroy(),this.init(y),this.render()}destroy(){let g=this,y=g.minInput,o=g.maxInput;g.eventsToUnbind&&(g.eventsToUnbind.forEach(n=>n()),g.eventsToUnbind=void 0),B(g.buttons),y&&(y.onfocus=y.onblur=y.onchange=null),o&&(o.onfocus=o.onblur=o.onchange=null),_(g,function(n,r){n&&"chart"!==r&&(n instanceof le?n.destroy():n instanceof e.HTMLElement&&F(n)),n!==f.prototype[r]&&(g[r]=null)},this)}}return L(f.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),f}),Pe(V,"Core/Chart/StockChart.js",[V["Core/Chart/Chart.js"],V["Core/Templating.js"],V["Core/Defaults.js"],V["Stock/Navigator/NavigatorDefaults.js"],V["Stock/RangeSelector/RangeSelectorDefaults.js"],V["Stock/Scrollbar/ScrollbarDefaults.js"],V["Stock/Utilities/StockUtilities.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J){let{format:te}=ie,{getOptions:$}=re,{setFixedRange:A}=pe,{addEvent:B,clamp:F,defined:L,extend:D,find:I,isNumber:E,isString:_,merge:b,pick:T,splat:z}=J;function O(g,y,o){return"xAxis"===g?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:"yAxis"===g?{labels:{y:-2},opposite:o.opposite??y.opposite??!0,showLastLabel:!(!y.categories&&"category"!==y.type),title:{text:"Values"!==o.title?.text?o.title?.text:null}}:{}}function f(g,y){if("xAxis"===g){let n={type:"datetime",categories:void 0};return T(y.navigator&&y.navigator.enabled,ve.enabled,!0)&&(n.startOnTick=!1,n.endOnTick=!1),n}return{}}class a extends Z{init(y,o){let n=$(),r=y.xAxis,l=y.yAxis,d=T(y.navigator&&y.navigator.enabled,ve.enabled,!0);y.xAxis=y.yAxis=void 0;let C=b({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:d},scrollbar:{enabled:T(fe.enabled,!0)},rangeSelector:{enabled:T(le.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:T(n.tooltip&&n.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},y,{isStock:!0});y.xAxis=r,y.yAxis=l,C.xAxis=z(y.xAxis||{}).map(k=>b(O("xAxis",k,n.xAxis),k,f("xAxis",y))),C.yAxis=z(y.yAxis||{}).map(k=>b(O("yAxis",k,n.yAxis),k)),super.init(C,o)}createAxis(y,o){return o.axis=b(O(y,o.axis,$()[y]),o.axis,f(y,this.userOptions)),super.createAxis(y,o)}}return B(Z,"update",function(g){let y=g.options;"scrollbar"in y&&this.navigator&&(b(!0,this.options.scrollbar,y.scrollbar),this.navigator.update({}),delete y.scrollbar)}),function(g){function y(p){if(!(this.crosshair&&this.crosshair.label&&this.crosshair.label.enabled&&this.cross&&E(this.min)&&E(this.max)))return;let q,he,Se,S=this.chart,j=this.logarithmic,H=this.crosshair.label,Y=this.horiz,U=this.opposite,se=this.left,w=this.top,X=this.width,G="inside"===this.options.tickPosition,x=!1!==this.crosshair.snap,N=p.e||this.cross&&this.cross.e,R=p.point,K=this.crossLabel,me=H.format,Ce="",Oe=0,Ae=this.min,Fe=this.max;j&&(Ae=j.lin2log(this.min),Fe=j.lin2log(this.max));let oe=Y?"center":U?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";K||(K=this.crossLabel=S.renderer.label("",0,void 0,H.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(R&&R.series?R.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:H.align||oe,padding:T(H.padding,8),r:T(H.borderRadius,3),zIndex:2}).add(this.labelGroup),S.styledMode||K.attr({fill:H.backgroundColor||R&&R.series&&R.series.color||"#666666",stroke:H.borderColor||"","stroke-width":H.borderWidth||0}).css(D({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},H.style||{}))),Y?(q=x?(R.plotX||0)+se:N.chartX,he=w+(U?0:this.height)):(q=se+this.offset+(U?X:0),he=x?(R.plotY||0)+w:N.chartY),me||H.formatter||(this.dateTime&&(Ce="%b %d, %Y"),me="{value"+(Ce?":"+Ce:"")+"}");let ee=x?this.isXAxis?R.x:R.y:this.toValue(Y?N.chartX:N.chartY),de=R&&R.series?R.series.isPointInside(R):E(ee)&&ee>Ae&&ee=Se.right&&(Oe=-(_e+Te.width-Se.right)),K.attr({x:q+Oe,y:he,anchorX:Y?q:this.opposite?0:S.chartWidth,anchorY:Y?this.opposite?S.chartHeight:0:he+Te.height/2})}function o(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function n(p){let S=this.chart,j=this.options,H=S._labelPanes=S._labelPanes||{},Y=j.labels;if(S.options.isStock&&"yAxis"===this.coll){let U=j.top+","+j.height;!H[U]&&Y.enabled&&(15===Y.distance&&1===this.side&&(Y.distance=0),void 0===Y.align&&(Y.align="right"),H[U]=this,p.align="right",p.preventDefault())}}function r(){let p=this.chart,S=this.options&&this.options.top+","+this.options.height;S&&p._labelPanes&&p._labelPanes[S]===this&&delete p._labelPanes[S]}function l(p){let N,R,K,q,me,Ce,S=this,j=S.isLinked&&!S.series&&S.linkedParent?S.linkedParent.series:S.series,H=S.chart,Y=H.renderer,U=S.left,se=S.top,w=[],X=p.translatedValue,G=p.value,x=p.force,he=[];if(H.options.isStock&&!1!==p.acrossPanes&&"xAxis"===S.coll||"yAxis"===S.coll){for(let Se of(p.preventDefault(),he=(Oe=>{let Ae="xAxis"===Oe?"yAxis":"xAxis",Fe=S.options[Ae];return E(Fe)?[H[Ae][Fe]]:_(Fe)?[H.get(Fe)]:j.map(oe=>oe[Ae])})(S.coll),S.isXAxis?H.yAxis:H.xAxis))if(!L(Se.options.id)||-1===Se.options.id.indexOf("navigator")){let Oe=Se.isXAxis?"yAxis":"xAxis";S===(L(Se.options[Oe])?H[Oe][Se.options[Oe]]:H[Oe][0])&&he.push(Se)}for(let Se of(me=he.length?[]:[S.isXAxis?H.yAxis[0]:H.xAxis[0]],he))-1!==me.indexOf(Se)||I(me,Oe=>Oe.pos===Se.pos&&Oe.len===Se.len)||me.push(Se);if(E(Ce=T(X,S.translate(G||0,void 0,void 0,p.old))))if(S.horiz)for(let Se of me){let Oe;q=(R=Se.pos)+Se.len,N=K=Math.round(Ce+S.transB),"pass"!==x&&(NU+S.width)&&(x?N=K=F(N,U,U+S.width):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}else for(let Se of me){let Oe;K=(N=Se.pos)+Se.len,R=q=Math.round(se+S.height-Ce),"pass"!==x&&(Rse+S.height)&&(x?R=q=F(R,se,se+S.height):Oe=!0),Oe||w.push(["M",N,R],["L",K,q])}p.path=w.length>0?Y.crispPolyLine(w,p.lineWidth||1):void 0}}function d(p){if(this.chart.options.isStock){let S;this.is("column")||this.is("columnrange")?S={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(S={marker:{enabled:!1,radius:2}}),S&&(p.plotOptions[this.type]=b(p.plotOptions[this.type],S))}}function C(){let S=this.options.dataGrouping;return!1!==this.allowDG&&S&&T(S.enabled,this.chart.options.isStock)}function k(p,S){for(let j=0;j\u25cf {series.name}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),Pe(V,"Series/HLC/HLCSeries.js",[V["Series/HLC/HLCPoint.js"],V["Series/HLC/HLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){let{column:le}=re.seriesTypes,{extend:fe,merge:pe}=ve;class J extends le{extendStem($,A,B){let F=$[0],L=$[1];"number"==typeof F[2]&&(F[2]=Math.max(B+A,F[2])),"number"==typeof L[2]&&(L[2]=Math.min(B-A,L[2]))}getPointPath($,A){let B=A.strokeWidth(),F=$.series,L=B%2/2,D=Math.round($.plotX)-L,I=Math.round($.shapeArgs.width/2),E=$.plotClose,_=[["M",D,Math.round($.yBottom)],["L",D,Math.round($.plotHigh)]];return null!==$.close&&(E=Math.round($.plotClose)+L,_.push(["M",D,E],["L",D+I,E]),F.extendStem(_,B/2,E)),_}drawSinglePoint($){let F,A=$.series,B=A.chart,L=$.graphic;void 0!==$.plotY&&(L||($.graphic=L=B.renderer.path().add(A.group)),B.styledMode||L.attr(A.pointAttribs($,$.selected&&"select")),F=A.getPointPath($,L),L[L?"animate":"attr"]({d:F}).addClass($.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs($,A){let B=super.pointAttribs.call(this,$,A);return delete B.fill,B}toYData($){return[$.high,$.low,$.close]}translate(){let $=this,A=$.yAxis,B=this.pointArrayMap&&this.pointArrayMap.slice()||[],F=B.map(L=>`plot${L.charAt(0).toUpperCase()+L.slice(1)}`);F.push("yBottom"),B.push("low"),super.translate.apply($),$.points.forEach(function(L){B.forEach(function(D,I){let E=L[D];null!==E&&($.dataModify&&(E=$.dataModify.modifyValue(E)),L[F[I]]=A.toPixels(E,!0))}),L.tooltipPos[1]=L.plotHigh+A.pos-$.chart.plotTop})}}return J.defaultOptions=pe(le.defaultOptions,ie),fe(J.prototype,{pointClass:Z,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),re.registerSeriesType("hlc",J),J}),Pe(V,"Series/OHLC/OHLCPoint.js",[V["Core/Series/SeriesRegistry.js"]],function(Z){let{seriesTypes:{hlc:ie}}=Z;return class re extends ie.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}}}),Pe(V,"Series/OHLC/OHLCSeries.js",[V["Core/Globals.js"],V["Series/OHLC/OHLCPoint.js"],V["Series/OHLC/OHLCSeriesDefaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le){let{composed:fe}=Z,{hlc:pe}=ve.seriesTypes,{addEvent:J,extend:te,merge:$,pushUnique:A}=le;function B(D){let I=D.options,E=I.dataGrouping;E&&I.useOhlcData&&"highcharts-navigator-series"!==I.id&&(E.approximation="ohlc")}function F(D){let I=D.options;I.useOhlcData&&"highcharts-navigator-series"!==I.id&&te(this,{pointValKey:L.prototype.pointValKey,pointArrayMap:L.prototype.pointArrayMap,toYData:L.prototype.toYData})}class L extends pe{static compose(I,...E){A(fe,"OHLCSeries")&&(J(I,"afterSetOptions",B),J(I,"init",F))}getPointPath(I,E){let _=super.getPointPath(I,E),b=E.strokeWidth(),T=b%2/2,z=Math.round(I.plotX)-T,O=Math.round(I.shapeArgs.width/2),f=I.plotOpen;return null!==I.open&&(f=Math.round(I.plotOpen)+T,_.push(["M",z,f],["L",z-O,f]),super.extendStem(_,b/2,f)),_}pointAttribs(I,E){let _=super.pointAttribs.call(this,I,E),b=this.options;return delete _.fill,!I.options.color&&b.upColor&&I.openA&&(te-=Math.round((B-A)/2),A=B),L=pe[J](te,$,A,B),D&&I){let E=D;if("circle"===J)E=te+A/2;else{let b=L[0],T=L[1];"M"===b[0]&&"L"===T[0]&&(E=(b[1]+T[1])/2)}L.push(["M",E,$>I?$:$+B],["L",D,I]),L=L.concat(pe.circle(D-1,I-1,2,2))}return L}}re.compose=function(pe){if(-1===ve.indexOf(pe)){ve.push(pe);let te=pe.prototype.symbols;te.flag=le,fe(te,"circle"),fe(te,"square")}let J=Z.getRendererType();ve.indexOf(J)&&ve.push(J)}}(ie||(ie={})),ie}),Pe(V,"Series/OnSeriesComposition.js",[V["Series/Column/ColumnSeries.js"],V["Core/Globals.js"],V["Core/Series/Series.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve){var le;let{composed:fe}=ie,{prototype:pe}=Z,{prototype:J}=re,{defined:te,pushUnique:$,stableSort:A}=ve;return function(B){function F(D){return J.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,D)}function L(){pe.translate.apply(this);let o,n,C,k,p,S,j,D=this,I=D.options,E=D.chart,_=D.points,b=I.onSeries,T=b&&E.get(b),z=T&&T.options.step,O=T&&T.points,f=E.inverted,a=D.xAxis,g=D.yAxis,y=_.length-1,r=I.onKey||"y",l=O&&O.length,d=0;if(T&&T.visible&&l)for(d=(T.pointXOffset||0)+(T.barW||0)/2,S=T.currentDataGrouping,k=O[l-1].x+(S?S.totalRange:0),A(_,(H,Y)=>H.x-Y.x),r="plot"+r[0].toUpperCase()+r.substr(1);l--&&_[y];)if(C=O[l],(o=_[y]).y=C.y,C.x<=o.x&&void 0!==C[r]){if(o.x<=k&&(o.plotY=C[r],C.xMath.pow(1-N,3)*H[R]+3*(1-N)*(1-N)*N*U[R]+3*(1-N)*N*N*se[R]+N*N*N*Y[R],X=0,G=1;for(let N=0;N<100;N++){let R=(X+G)/2,K=w(R,0);if(null===K)break;if(.25>Math.abs(K-o.plotX)){x=R;break}K{let U;H.plotX+=d,(void 0===H.plotY||f)&&(H.plotX>=0&&H.plotX<=a.len?f?(H.plotY=a.translate(H.x,0,1,0,1),H.plotX=te(H.y)?g.translate(H.y,0,0,0,1):0):H.plotY=(a.opposite?0:D.yAxis.len)+a.offset:H.shapeArgs={}),(n=_[Y-1])&&n.plotX===H.plotX&&(void 0===n.stackIndex&&(n.stackIndex=0),U=n.stackIndex+1),H.stackIndex=U}),this.onSeries=T}B.compose=function(D){if($(fe,"OnSeries")){let I=D.prototype;I.getPlotBox=F,I.translate=L}return D},B.getPlotBox=F,B.translate=L}(le||(le={})),le}),Pe(V,"Series/Flags/FlagsSeries.js",[V["Series/Flags/FlagsPoint.js"],V["Series/Flags/FlagsSeriesDefaults.js"],V["Series/Flags/FlagsSymbols.js"],V["Core/Globals.js"],V["Series/OnSeriesComposition.js"],V["Core/Renderer/RendererUtilities.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Renderer/SVG/SVGElement.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){let{noop:$}=ve,{distribute:A}=fe,{series:B,seriesTypes:{column:F}}=pe,{addEvent:L,defined:D,extend:I,merge:E,objectEach:_,wrap:b}=te;class T extends F{animate(O){O&&this.setClip()}drawPoints(){let O,f,a,g,y,o,n,r,l,d,C,k=this.points,p=this.chart,S=p.renderer,j=p.inverted,H=this.options,Y=H.y,U=this.yAxis,se={},w=[];for(g=k.length;g--;)y=k[g],d=(j?y.plotY:y.plotX)>this.xAxis.len,O=y.plotX,n=y.stackIndex,a=y.options.shape||H.shape,void 0!==(f=y.plotY)&&(f=y.plotY+Y-(void 0!==n&&n*H.stackDistance)),y.anchorX=n?void 0:y.plotX,r=n?void 0:y.plotY,C="flag"!==a,o=y.graphic,void 0!==f&&O>=0&&!d?(o&&y.hasNewShapeType()&&(o=o.destroy()),o||(o=y.graphic=S.label("",null,null,a,null,null,H.useHTML).addClass("highcharts-point").add(this.markerGroup),y.graphic.div&&(y.graphic.div.point=y),o.isNew=!0),o.attr({align:C?"center":"left",width:H.width,height:H.height,"text-align":H.textAlign}),p.styledMode||o.attr(this.pointAttribs(y)).css(E(H.style,y.style)).shadow(H.shadow),O>0&&(O-=o.strokeWidth()%2),l={y:f,anchorY:r},H.allowOverlapX&&(l.x=O,l.anchorX=y.anchorX),o.attr({text:y.options.title||H.title||"A"})[o.isNew?"attr":"animate"](l),H.allowOverlapX||(se[y.plotX]?se[y.plotX].size=Math.max(se[y.plotX].size,o.width||0):se[y.plotX]={align:C?.5:0,size:o.width||0,target:O,anchorX:O}),y.tooltipPos=[O,f+U.pos-p.plotTop]):o&&(y.graphic=o.destroy());if(!H.allowOverlapX){let X=100;for(let G of(_(se,function(x){x.plotX=x.anchorX,w.push(x),X=Math.max(x.size,X)}),A(w,j?U.len:this.xAxis.len,X),k)){let N=G.graphic,R=N&&se[G.plotX];R&&N&&(D(R.pos)?N[N.isNew?"attr":"animate"]({x:R.pos+(R.align||0)*R.size,anchorX:G.anchorX}).show().isNew=!1:N.hide().isNew=!0)}}H.useHTML&&this.markerGroup&&b(this.markerGroup,"on",function(X){return J.prototype.on.apply(X.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let O=this.points;for(let f of(super.drawTracker(),O)){let a=f.graphic;a&&(f.unbindMouseOver&&f.unbindMouseOver(),f.unbindMouseOver=L(a.element,"mouseover",function(){for(let g of(f.stackIndex>0&&!f.raised&&(f._y=a.y,a.attr({y:f._y-8}),f.raised=!0),O))g!==f&&g.raised&&g.graphic&&(g.graphic.attr({y:g._y}),g.raised=!1)}))}}pointAttribs(O,f){let a=this.options,g=O&&O.color||this.color,y=a.lineColor,o=O&&O.lineWidth,n=O&&O.fillColor||a.fillColor;return f&&(n=a.states[f].fillColor,y=a.states[f].lineColor,o=a.states[f].lineWidth),{fill:n||g,stroke:y||g,"stroke-width":o||a.lineWidth||0}}setClip(){B.prototype.setClip.apply(this,arguments),!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=re.compose,T.defaultOptions=E(F.defaultOptions,ie),le.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:Z,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:$,init:B.prototype.init}),pe.registerSeriesType("flags",T),T}),Pe(V,"Core/Axis/BrokenAxis.js",[V["Core/Axis/Stacking/StackItem.js"],V["Core/Utilities.js"]],function(Z,ie){var re;let{addEvent:ve,find:le,fireEvent:fe,isArray:pe,isNumber:J,pick:te}=ie;return function($){function A(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function B(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function F(){let T=this.brokenAxis;if(T?.hasBreaks){let z=this.tickPositions,O=this.tickPositions.info,f=[];for(let a=0;ad.to||f>d.from&&ad.from&&ad.from&&a>d.to&&a0){let y,o;for("value"!==this.options.gapUnit&&(a*=this.basePointRange),z&&z>a&&z>=this.basePointRange&&(a=z);g--;)if(o&&!1!==o.visible||(o=O[g+1]),y=O[g],!1!==o.visible&&!1!==y.visible){if(o.x-y.x>a){let n=(y.x+o.x)/2;O.splice(g+1,0,{isNull:!0,x:n}),f.stacking&&this.options.stacking&&((f.stacking.stacks[this.stackKey][n]=new Z(f,f.options.stackLabels,!1,n,this.stack)).total=0)}o=y}}return this.getGraphPath(O)}$.compose=function(T,z){if(!T.keepProps.includes("brokenAxis")){T.keepProps.push("brokenAxis"),ve(T,"init",L),ve(T,"afterInit",A),ve(T,"afterSetTickPositions",F),ve(T,"afterSetOptions",B);let O=z.prototype;O.drawBreaks=E,O.gappedPath=_,ve(z,"afterGeneratePoints",D),ve(z,"afterRender",I)}return T};class b{static isInBreak(z,O){let f=z.repeat||1/0,a=z.from,g=z.to-z.from,y=O>=a?(O-a)%f:f-(a-O)%f;return z.inclusive?y<=g:y=a);y++)(g.to=z)break;if(b.isInBreak(g,z)){a-=z-g.from;break}}return a}constructor(z){this.hasBreaks=!1,this.axis=z}findBreakAt(z,O){return le(O,function(f){return f.fromk;)S-=C;for(;Sthis.chart.plotSizeX/L||I&&E.forced)&&(D=!0));return D?L:0}function $(){this.series.forEach(function(B){B.hasProcessed=!1})}function A(B,F){let L;if(F=pe(F,!0),B||(B={forced:!1,units:null}),this instanceof re)for(L=this.series.length;L--;)this.series[L].update({dataGrouping:B},!1);else this.chart.options.series.forEach(function(D){D.dataGrouping="boolean"==typeof B?B:fe(B,D.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),F&&this.chart.redraw()}return{compose:function(B){re=B;let F=B.prototype;F.applyGrouping||(ve(B,"afterSetScale",$),ve(B,"postProcessData",J),le(F,{applyGrouping:J,getGroupPixelWidth:te,setDataGrouping:A}))}}}),Pe(V,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[V["Extensions/DataGrouping/ApproximationRegistry.js"],V["Extensions/DataGrouping/DataGroupingDefaults.js"],V["Core/Axis/DateTimeAxis.js"],V["Core/Defaults.js"],V["Core/Series/SeriesRegistry.js"],V["Core/Utilities.js"]],function(Z,ie,re,ve,le,fe){let{series:{prototype:pe}}=le,{addEvent:J,defined:te,error:$,extend:A,isNumber:B,merge:F,pick:L}=fe,D=pe.generatePoints;function I(O){var f;let a,g,d,C,y=this.chart,o=this.options.dataGrouping,n=!1!==this.allowDG&&o&&L(o.enabled,y.options.isStock),r=this.reserveSpace(),l=this.currentDataGrouping,k=!1;n&&!this.requireSorting&&(this.requireSorting=k=!0);let p=!(!this.isCartesian||this.isDirty||this.xAxis.isDirty||this.yAxis.isDirty||O)||!n;if(k&&(this.requireSorting=!1),p)return;this.destroyGroupedData();let S=o.groupAll?this.xData:this.processedXData,j=o.groupAll?this.yData:this.processedYData,H=y.plotSizeX,Y=this.xAxis,U=Y.options.ordinal,se=this.groupPixelWidth;if(se&&S&&S.length&&H){g=!0,this.isDirty=!0,this.points=null;let w=Y.getExtremes(),X=w.min,G=w.max,x=U&&Y.ordinal&&Y.ordinal.getGroupIntervalFactor(X,G,this)||1,R=Y.getTimeTicks(re.Additions.prototype.normalizeTimeTickInterval(se*(G-X)/H*x,o.units||ie.units),Math.min(X,S[0]),Math.max(G,S[S.length-1]),Y.options.startOfWeek,S,this.closestPointRange),K=pe.groupData.apply(this,[S,j,R,o.approximation]),q=K.groupedXData,he=K.groupedYData,me=0;for(o&&o.smoothed&&q.length&&(o.firstAnchor="firstPoint",o.anchor="middle",o.lastAnchor="lastPoint",$(32,!1,y,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),a=1;a=Se[0]){let Me;_e++;let Ee=Ce.groupMap[0].start,Xe=Ce.groupMap[0].length;B(Ee)&&B(Xe)&&(Me=Ee+(Xe-1)),Se[0]={start:Se[0],middle:Se[0]+.5*Fe,end:Se[0]+Fe,firstPoint:Ce.xData[0],lastPoint:Me&&Ce.xData[Me]}[de]}if(oe>0&&ye&&Fe&&Se[oe]>=Oe-Fe){Te--;let Me=Ce.groupMap[Ce.groupMap.length-1].start;Se[oe]={start:Se[oe],middle:Se[oe]+.5*Fe,end:Se[oe]+Fe,firstPoint:Me&&Ce.xData[Me],lastPoint:Ce.xData[Ce.xData.length-1]}[ye]}if(ee&&"start"!==ee){let Me=Fe*{middle:.5,end:1}[ee];for(;Te>=_e;)Se[Te]+=Me,Te--}}(this,q,G),r&&(te((f=q)[0])&&B(Y.min)&&B(Y.dataMin)&&f[0]Y.max&&((!te(Y.options.max)&&B(Y.dataMax)&&Y.max>=Y.dataMax||Y.max===Y.dataMax)&&(Y.max=Math.max(f[f.length-1],Y.max)),Y.dataMax=Math.max(f[f.length-1],Y.dataMax))),o.groupAll&&(this.allGroupedData=he,q=(C=this.cropData(q,he,Y.min,Y.max)).xData,he=C.yData,this.cropStart=C.start),this.processedXData=q,this.processedYData=he}else this.groupMap=null;this.hasGroupedData=g,this.preventGraphAnimation=(l&&l.totalRange)!==(d&&d.totalRange)}function E(){this.groupedData&&(this.groupedData.forEach(function(O,f){O&&(this.groupedData[f]=O.destroy?O.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function _(){D.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function b(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function T(O,f,a,g){let U,se,w,y=this,o=y.data,n=y.options&&y.options.data,r=[],l=[],d=[],C=O.length,k=!!f,p=[],S=y.pointArrayMap,j=S&&S.length,H=["x"].concat(S||["y"]),Y=this.options.dataGrouping&&this.options.dataGrouping.groupAll,X=0,G=0,x="function"==typeof g?g:g&&Z[g]?Z[g]:Z[y.getDGApproximation&&y.getDGApproximation()||"average"];if(j){let R=S.length;for(;R--;)p.push([])}else p.push([]);let N=j||1;for(let R=0;R<=C;R++)if(!(O[R]=a[X+1]||R===C;){U=a[X],y.dataGroupInfo={start:Y?G:y.cropStart+G,length:p[0].length,groupStart:U},w=x.apply(y,p),y.pointClass&&!te(y.dataGroupInfo.options)&&(y.dataGroupInfo.options=F(y.pointClass.prototype.optionsToObject.call({series:y},y.options.data[y.cropStart+G])),H.forEach(function(K){delete y.dataGroupInfo.options[K]})),void 0!==w&&(r.push(U),l.push(w),d.push(y.dataGroupInfo)),G=R;for(let K=0;K{let J=pe.axis.getExtremes(),te=J.min,$=J.max,A=ve(pe.axis.minPointOffset,0);return re(te)&&re($)&&pe.value>=te-A&&pe.value<=$+A&&!pe.axis.options.isInternal})[0]},getFieldType:function(fe,pe){let J=le[fe],te=typeof pe;return ie(J)&&(te=J),{string:"text",number:"number",boolean:"checkbox"}[te]}}}),Pe(V,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[V["Core/Utilities.js"],V["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(Z,ie){let re,{addEvent:ve,isObject:le,pick:fe,defined:pe,merge:J}=Z,{getAssignedAxis:te}=ie,$=[],A={enabled:!0,sensitivity:1.1};function L(){let D=(D=>(le(D)||(D={enabled:D??!0}),J(A,D)))(this.zooming.mouseWheel);D.enabled&&ve(this.container,"wheel",I=>{I=this.pointer?.normalize(I)||I;let{pointer:E}=this,_=E&&!E.inClass(I.target,"highcharts-no-mousewheel");if(this.isInsidePlot(I.chartX-this.plotLeft,I.chartY-this.plotTop)&&_){let b=D.sensitivity||1.1,T=I.detail||(I.deltaY||0)/120,z=te(E.getCoordinates(I).xAxis),O=te(E.getCoordinates(I).yAxis);(function(D,I,E,_,b,T,z){let O=fe(z.type,D.zooming.type,""),f=[];"x"===O?f=E:"y"===O?f=_:"xy"===O&&(f=D.axes);let a=D.transform({axes:f,to:{x:b-5,y:T-5,width:10,height:10},from:{x:b-5*I,y:T-5*I,width:10*I,height:10*I},trigger:"mousewheel"});return a&&(pe(re)&&clearTimeout(re),re=setTimeout(()=>{D.pointer?.drop()},400)),a})(this,Math.pow(b,T),z?[z.axis]:this.xAxis,O?[O.axis]:this.yAxis,I.chartX,I.chartY,D)&&I.preventDefault?.()}})}return{compose:function(D){-1===$.indexOf(D)&&($.push(D),ve(D,"afterGetContainer",L))}}}),Pe(V,"masters/modules/mouse-wheel-zoom.src.js",[V["Core/Globals.js"],V["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(Z,ie){return Z.MouseWheelZoom=Z.MouseWheelZoom||ie,Z.MouseWheelZoom.compose(Z.Chart),Z}),Pe(V,"masters/modules/stock.src.js",[V["Core/Globals.js"],V["Series/DataModifyComposition.js"],V["Stock/Navigator/Navigator.js"],V["Core/Axis/OrdinalAxis.js"],V["Stock/RangeSelector/RangeSelector.js"],V["Stock/Scrollbar/Scrollbar.js"],V["Core/Chart/StockChart.js"],V["Series/OHLC/OHLCSeries.js"],V["Series/Flags/FlagsSeries.js"]],function(Z,ie,re,ve,le,fe,pe,J,te){return Z.Navigator=Z.Navigator||re,Z.OrdinalAxis=Z.OrdinalAxis||ve,Z.RangeSelector=Z.RangeSelector||le,Z.Scrollbar=Z.Scrollbar||fe,Z.stockChart=Z.stockChart||pe.stockChart,Z.StockChart=Z.StockChart||Z.stockChart,Z.extend(Z.StockChart,pe),ie.compose(Z.Series,Z.Axis,Z.Point),te.compose(Z.Renderer),J.compose(Z.Series),Z.Navigator.compose(Z.Chart,Z.Axis,Z.Series),Z.OrdinalAxis.compose(Z.Axis,Z.Series,Z.Chart),Z.RangeSelector.compose(Z.Axis,Z.Chart),Z.Scrollbar.compose(Z.Axis),Z.StockChart.compose(Z.Chart,Z.Axis,Z.Series,Z.SVGRenderer),Z}),Pe(V,"masters/highstock.src.js",[V["masters/highcharts.src.js"]],function(Z){return Z.product="Highstock",Z}),V["masters/highstock.src.js"]._modules=V,V["masters/highstock.src.js"]},ri.exports?(V.default=V,ri.exports=e&&e.document?V(e):V):void 0!==(M=function(){return V(e)}.call(Ft,He,Ft,ri))&&(ri.exports=M)},38833:(ri,Ft,He)=>{var M,e,V;V=function(V){"use strict";var Pe=V?V._modules:{};function Z(ie,re,ve,le){ie.hasOwnProperty(re)||(ie[re]=le.apply(null,ve),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:re,module:ie[re]}})))}Z(Pe,"Core/Chart/ChartNavigationComposition.js",[],function(){var ie;return function(re){re.compose=function ve(fe){return fe.navigation||(fe.navigation=new le(fe)),fe};class le{constructor(pe){this.updates=[],this.chart=pe}addUpdate(pe){this.chart.navigation.updates.push(pe)}update(pe,J){this.updates.forEach(te=>{te.call(this.chart,pe,J)})}}re.Additions=le}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/ExportingDefaults.js",[Pe["Core/Globals.js"]],function(ie){const{isTouchDevice:re}=ie;return{exporting:{allowTableSorting:!0,type:"image/png",url:"https://export.highcharts.com/",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadPDF","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:3,height:28,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:re?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}}}),Z(Pe,"Extensions/Exporting/ExportingSymbols.js",[],function(){var ie;return function(re){const ve=[];function fe(J,te,$,A){return[["M",J,te+2.5],["L",J+$,te+2.5],["M",J,te+A/2+.5],["L",J+$,te+A/2+.5],["M",J,te+A-1.5],["L",J+$,te+A-1.5]]}function pe(J,te,$,A){const B=A/3-2;let F=[];return F=F.concat(this.circle($-B,te,B,B),this.circle($-B,te+B+4,B,B),this.circle($-B,te+2*(B+4),B,B)),F}re.compose=function le(J){if(-1===ve.indexOf(J)){ve.push(J);const te=J.prototype.symbols;te.menu=fe,te.menuball=pe.bind(te)}}}(ie||(ie={})),ie}),Z(Pe,"Extensions/Exporting/Fullscreen.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re,ve){const{composed:le}=re,{addEvent:fe,fireEvent:pe,pushUnique:J}=ve;function te(){this.fullscreen=new $(this)}class ${static compose(B){J(le,"Fullscreen")&&fe(B,"beforeRender",te)}constructor(B){this.chart=B,this.isOpen=!1;const F=B.renderTo;this.browserProps||("function"==typeof F.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:F.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:F.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:F.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenClose",null,function(){B.isOpen&&B.browserProps&&F.container.ownerDocument instanceof Document&&F.container.ownerDocument[B.browserProps.exitFullscreen](),B.unbindFullscreenEvent&&(B.unbindFullscreenEvent=B.unbindFullscreenEvent()),F.setSize(B.origWidth,B.origHeight,!1),B.origWidth=void 0,B.origHeight=void 0,L.width=B.origWidthOption,L.height=B.origHeightOption,B.origWidthOption=void 0,B.origHeightOption=void 0,B.isOpen=!1,B.setButtonText()})}open(){const B=this,F=B.chart,L=F.options.chart;pe(F,"fullscreenOpen",null,function(){if(L&&(B.origWidthOption=L.width,B.origHeightOption=L.height),B.origWidth=F.chartWidth,B.origHeight=F.chartHeight,B.browserProps){const D=fe(F.container.ownerDocument,B.browserProps.fullscreenChange,function(){B.isOpen?(B.isOpen=!1,B.close()):(F.setSize(null,null,!1),B.isOpen=!0,B.setButtonText())}),I=fe(F,"destroy",D);B.unbindFullscreenEvent=()=>{D(),I()};const E=F.renderTo[B.browserProps.requestFullscreen]();E&&E.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){const B=this.chart,F=B.exportDivElements,L=B.options.exporting,D=L&&L.buttons&&L.buttons.contextButton.menuItems,I=B.options.lang;if(L&&L.menuItemDefinitions&&I&&I.exitFullscreen&&I.viewFullscreen&&D&&F){const E=F[D.indexOf("viewFullscreen")];E&&ie.setElementHTML(E,this.isOpen?I.exitFullscreen:L.menuItemDefinitions.viewFullscreen.text||I.viewFullscreen)}}toggle(){const B=this;B.isOpen?B.close():B.open()}}return $}),Z(Pe,"Core/HttpUtilities.js",[Pe["Core/Globals.js"],Pe["Core/Utilities.js"]],function(ie,re){const{win:ve}=ie,{discardElement:le,objectEach:fe}=re,$={ajax:function pe(A){const B={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},F=new XMLHttpRequest;function L(D,I){A.error&&A.error(D,I)}if(!A.url)return!1;F.open((A.type||"get").toUpperCase(),A.url,!0),(!A.headers||!A.headers["Content-Type"])&&F.setRequestHeader("Content-Type",B[A.dataType||"json"]||B.text),fe(A.headers,function(D,I){F.setRequestHeader(I,D)}),A.responseType&&(F.responseType=A.responseType),F.onreadystatechange=function(){let D;if(4===F.readyState){if(200===F.status){if("blob"!==A.responseType&&(D=F.responseText,"json"===A.dataType))try{D=JSON.parse(D)}catch(I){if(I instanceof Error)return L(F,I)}return A.success&&A.success(D,F)}L(F,F.responseText)}},A.data&&"string"!=typeof A.data&&(A.data=JSON.stringify(A.data)),F.send(A.data)},getJSON:function J(A,B){$.ajax({url:A,success:B,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function te(A,B,F){const L=new ve.FormData;fe(B,function(E,_){L.append(_,E)}),L.append("b64","true");const{filename:D,type:I}=B;return ve.fetch(A,{method:"POST",body:L,...F}).then(E=>{E.ok&&E.text().then(_=>{const b=document.createElement("a");b.href=`data:${I};base64,${_}`,b.download=D,b.click(),le(b)})})}};return $}),Z(Pe,"Extensions/Exporting/Exporting.js",[Pe["Core/Renderer/HTML/AST.js"],Pe["Core/Chart/Chart.js"],Pe["Core/Chart/ChartNavigationComposition.js"],Pe["Core/Defaults.js"],Pe["Extensions/Exporting/ExportingDefaults.js"],Pe["Extensions/Exporting/ExportingSymbols.js"],Pe["Extensions/Exporting/Fullscreen.js"],Pe["Core/Globals.js"],Pe["Core/HttpUtilities.js"],Pe["Core/Utilities.js"]],function(ie,re,ve,le,fe,pe,J,te,$,A){const{defaultOptions:B}=le,{doc:F,SVG_NS:L,win:D}=te,{addEvent:I,css:E,createElement:_,discardElement:b,extend:T,find:z,fireEvent:O,isObject:f,merge:a,objectEach:g,pick:y,removeEvent:o,uniqueKey:n}=A;var r;return function(l){const d=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^[0-9]+$/],C=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];l.inlineAllowlist=[];const k=["clipPath","defs","desc"];let p;function S(Ae){const Fe=this,oe=Fe.renderer,ee=a(Fe.options.navigation.buttonOptions,Ae),de=ee.onclick,ye=ee.menuItems,Te=ee.symbolSize||12;let _e;if(Fe.btnCount||(Fe.btnCount=0),Fe.exportDivElements||(Fe.exportDivElements=[],Fe.exportSVGElements=[]),!1===ee.enabled||!ee.theme)return;const Me=ee.theme;let Ee;Fe.styledMode||(Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none")),de?Ee=function(Ze){Ze&&Ze.stopPropagation(),de.call(Fe,Ze)}:ye&&(Ee=function(Ze){Ze&&Ze.stopPropagation(),Fe.contextMenu(Xe.menuClassName,ye,Xe.translateX||0,Xe.translateY||0,Xe.width||0,Xe.height||0,Xe),Xe.setState(2)}),ee.text&&ee.symbol?Me.paddingLeft=y(Me.paddingLeft,30):ee.text||T(Me,{width:ee.width,height:ee.height,padding:0}),Fe.styledMode||(Me["stroke-linecap"]="round",Me.fill=y(Me.fill,"#ffffff"),Me.stroke=y(Me.stroke,"none"));const Xe=oe.button(ee.text,0,0,Ee,Me,void 0,void 0,void 0,void 0,ee.useHTML).addClass(Ae.className).attr({title:y(Fe.options.lang[ee._titleKey||ee.titleKey],"")});Xe.menuClassName=Ae.menuClassName||"highcharts-menu-"+Fe.btnCount++,ee.symbol&&(_e=oe.symbol(ee.symbol,ee.symbolX-Te/2,ee.symbolY-Te/2,Te,Te,{width:Te,height:Te}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(Xe),Fe.styledMode||_e.attr({stroke:ee.symbolStroke,fill:ee.symbolFill,"stroke-width":ee.symbolStrokeWidth||1})),Xe.add(Fe.exportingGroup).align(T(ee,{width:Xe.width,x:y(ee.x,Fe.buttonOffset)}),!0,"spacingBox"),Fe.buttonOffset+=((Xe.width||0)+ee.buttonSpacing)*("right"===ee.align?-1:1),Fe.exportSVGElements.push(Xe,_e)}function j(){const Ae=this;if(!Ae.printReverseInfo)return;const{childNodes:Fe,origDisplay:oe,resetParams:ee}=Ae.printReverseInfo;Ae.moveContainers(Ae.renderTo),[].forEach.call(Fe,function(de,ye){1===de.nodeType&&(de.style.display=oe[ye]||"")}),Ae.isPrinting=!1,ee&&Ae.setSize.apply(Ae,ee),delete Ae.printReverseInfo,p=void 0,O(Ae,"afterPrint")}function H(){const Ae=this,Fe=F.body,oe=Ae.options.exporting.printMaxWidth,ee={childNodes:Fe.childNodes,origDisplay:[],resetParams:void 0};Ae.isPrinting=!0,Ae.pointer?.reset(void 0,0),O(Ae,"beforePrint"),oe&&Ae.chartWidth>oe&&(ee.resetParams=[Ae.options.chart.width,void 0,!1],Ae.setSize(oe,void 0,!1)),[].forEach.call(ee.childNodes,function(ye,Te){1===ye.nodeType&&(ee.origDisplay[Te]=ye.style.display,ye.style.display="none")}),Ae.moveContainers(Fe),Ae.printReverseInfo=ee}function Y(Ae){const Fe=Ae;Fe.renderExporting(),I(Ae,"redraw",Fe.renderExporting),I(Ae,"destroy",Fe.destroyExport)}function se(Ae,Fe,oe,ee,de,ye,Te){const _e=this,Me=_e.options.navigation,Ee=_e.chartWidth,Xe=_e.chartHeight,Ze="cache-"+Ae,lt=Math.max(de,ye);let Qe,st=_e[Ze];st||(_e.exportContextMenu=_e[Ze]=st=_("div",{className:Ae},{position:"absolute",zIndex:1e3,padding:lt+"px",pointerEvents:"auto",..._e.renderer.style},_e.scrollablePlotArea?.fixedDiv||_e.container),Qe=_("ul",{className:"highcharts-menu"},_e.styledMode?{}:{listStyle:"none",margin:0,padding:0},st),_e.styledMode||E(Qe,T({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},Me.menuStyle)),st.hideMenu=function(){E(st,{display:"none"}),Te&&Te.setState(0),_e.openMenu=!1,E(_e.renderTo,{overflow:"hidden"}),E(_e.container,{overflow:"hidden"}),A.clearTimeout(st.hideTimer),O(_e,"exportMenuHidden")},_e.exportEvents.push(I(st,"mouseleave",function(){st.hideTimer=D.setTimeout(st.hideMenu,500)}),I(st,"mouseenter",function(){A.clearTimeout(st.hideTimer)}),I(F,"mouseup",function(pt){_e.pointer?.inClass(pt.target,Ae)||st.hideMenu()}),I(st,"click",function(){_e.openMenu&&st.hideMenu()})),Fe.forEach(function(pt){if("string"==typeof pt&&(pt=_e.options.exporting.menuItemDefinitions[pt]),f(pt,!0)){let ht;pt.separator?ht=_("hr",void 0,void 0,Qe):("viewData"===pt.textKey&&_e.isDataTableVisible&&(pt.textKey="hideData"),ht=_("li",{className:"highcharts-menu-item",onclick:function(Lt){Lt&&Lt.stopPropagation(),st.hideMenu(),"string"!=typeof pt&&pt.onclick&&pt.onclick.apply(_e,arguments)}},void 0,Qe),ie.setElementHTML(ht,pt.text||_e.options.lang[pt.textKey]),_e.styledMode||(ht.onmouseover=function(){E(this,Me.menuItemHoverStyle)},ht.onmouseout=function(){E(this,Me.menuItemStyle)},E(ht,T({cursor:"pointer"},Me.menuItemStyle||{})))),_e.exportDivElements.push(ht)}}),_e.exportDivElements.push(Qe,st),_e.exportMenuWidth=st.offsetWidth,_e.exportMenuHeight=st.offsetHeight);const kt={display:"block"};oe+_e.exportMenuWidth>Ee?kt.right=Ee-oe-de-lt+"px":kt.left=oe-lt+"px",ee+ye+_e.exportMenuHeight>Xe&&"top"!==Te.alignOptions.verticalAlign?kt.bottom=Xe-ee-lt+"px":kt.top=ee+ye-lt+"px",E(st,kt),E(_e.renderTo,{overflow:""}),E(_e.container,{overflow:""}),_e.openMenu=!0,O(_e,"exportMenuShown")}function w(Ae){const Fe=Ae?Ae.target:this,oe=Fe.exportSVGElements,ee=Fe.exportDivElements,de=Fe.exportEvents;let ye;oe&&(oe.forEach((Te,_e)=>{Te&&(Te.onclick=Te.ontouchstart=null,ye="cache-"+Te.menuClassName,Fe[ye]&&delete Fe[ye],oe[_e]=Te.destroy())}),oe.length=0),Fe.exportingGroup&&(Fe.exportingGroup.destroy(),delete Fe.exportingGroup),ee&&(ee.forEach(function(Te,_e){Te&&(A.clearTimeout(Te.hideTimer),o(Te,"mouseleave"),ee[_e]=Te.onmouseout=Te.onmouseover=Te.ontouchstart=Te.onclick=null,b(Te))}),ee.length=0),de&&(de.forEach(function(Te){Te()}),de.length=0)}function X(Ae,Fe){const oe=this.getSVGForExport(Ae,Fe);Ae=a(this.options.exporting,Ae),$.post(Ae.url,{filename:Ae.filename?Ae.filename.replace(/\//g,"-"):this.getFilename(),type:Ae.type,width:Ae.width,scale:Ae.scale,svg:oe},Ae.fetchOptions)}function G(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function x(){const Ae=this.userOptions.title&&this.userOptions.title.text;let Fe=this.options.exporting.filename;return Fe?Fe.replace(/\//g,"-"):("string"==typeof Ae&&(Fe=Ae.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!Fe||Fe.length<5)&&(Fe="chart"),Fe)}function N(Ae){const Fe=this;let oe,ee,de=a(Fe.options,Ae);de.plotOptions=a(Fe.userOptions.plotOptions,Ae&&Ae.plotOptions),de.time=a(Fe.userOptions.time,Ae&&Ae.time);const ye=_("div",null,{position:"absolute",top:"-9999em",width:Fe.chartWidth+"px",height:Fe.chartHeight+"px"},F.body),Te=Fe.renderTo.style.width,_e=Fe.renderTo.style.height,Me=de.exporting.sourceWidth||de.chart.width||/px$/.test(Te)&&parseInt(Te,10)||(de.isGantt?800:600),Ee=de.exporting.sourceHeight||de.chart.height||/px$/.test(_e)&&parseInt(_e,10)||400;T(de.chart,{animation:!1,renderTo:ye,forExport:!0,renderer:"SVGRenderer",width:Me,height:Ee}),de.exporting.enabled=!1,delete de.data,de.series=[],Fe.series.forEach(function(lt){ee=a(lt.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:lt.visible}),ee.isInternal||de.series.push(ee)});const Xe={};Fe.axes.forEach(function(lt){lt.userOptions.internalKey||(lt.userOptions.internalKey=n()),lt.options.isInternal||(Xe[lt.coll]||(Xe[lt.coll]=!0,de[lt.coll]=[]),de[lt.coll].push(a(lt.userOptions,{visible:lt.visible})))}),de.colorAxis=Fe.userOptions.colorAxis;const Ze=new Fe.constructor(de,Fe.callback);return Ae&&["xAxis","yAxis","series"].forEach(function(lt){const Qe={};Ae[lt]&&(Qe[lt]=Ae[lt],Ze.update(Qe))}),Fe.axes.forEach(function(lt){const Qe=z(Ze.axes,function(ht){return ht.options.internalKey===lt.userOptions.internalKey}),st=lt.getExtremes(),kt=st.userMin,pt=st.userMax;Qe&&(typeof kt<"u"&&kt!==Qe.min||typeof pt<"u"&&pt!==Qe.max)&&Qe.setExtremes(kt,pt,!0,!1)}),oe=Ze.getChartHTML(),O(this,"getSVG",{chartCopy:Ze}),oe=Fe.sanitizeSVG(oe,de),de=null,Ze.destroy(),b(ye),oe}function R(Ae,Fe){const oe=this.options.exporting;return this.getSVG(a({chart:{borderRadius:0}},oe.chartOptions,Fe,{exporting:{sourceWidth:Ae&&Ae.sourceWidth||oe.sourceWidth,sourceHeight:Ae&&Ae.sourceHeight||oe.sourceHeight}}))}function q(){const Ae=d,Fe=l.inlineAllowlist,oe={};let ee;const de=F.createElement("iframe");E(de,{width:"1px",height:"1px",visibility:"hidden"}),F.body.appendChild(de);const ye=de.contentWindow&&de.contentWindow.document;ye&&ye.body.appendChild(ye.createElementNS(L,"svg")),function Te(Me){const Ee={};let Xe,Ze,lt,Qe,st,kt;function pt(ht,Lt){if(Qe=st=!1,Fe.length){for(kt=Fe.length;kt--&&!st;)st=Fe[kt].test(Lt);Qe=!st}for("transform"===Lt&&"none"===ht&&(Qe=!0),kt=Ae.length;kt--&&!Qe;)Qe=Ae[kt].test(Lt)||"function"==typeof ht;Qe||(Ze[Lt]!==ht||"svg"===Me.nodeName)&&oe[Me.nodeName][Lt]!==ht&&(C&&-1===C.indexOf(Lt)?Ee[Lt]=ht:ht&&Me.setAttribute(function K(Ae){return Ae.replace(/([A-Z])/g,function(Fe,oe){return"-"+oe.toLowerCase()})}(Lt),ht))}if(ye&&1===Me.nodeType&&-1===k.indexOf(Me.nodeName)){if(Xe=D.getComputedStyle(Me,null),Ze="svg"===Me.nodeName?{}:D.getComputedStyle(Me.parentNode,null),!oe[Me.nodeName]){ee=ye.getElementsByTagName("svg")[0],lt=ye.createElementNS(Me.namespaceURI,Me.nodeName),ee.appendChild(lt);const ht=D.getComputedStyle(lt,null),Lt={};for(const Gt in ht)"string"==typeof ht[Gt]&&!/^[0-9]+$/.test(Gt)&&(Lt[Gt]=ht[Gt]);oe[Me.nodeName]=Lt,"text"===Me.nodeName&&delete oe.text.fill,ee.removeChild(lt)}for(const ht in Xe)(te.isFirefox||te.isMS||te.isSafari||Object.hasOwnProperty.call(Xe,ht))&&pt(Xe[ht],ht);if(E(Me,Ee),"svg"===Me.nodeName&&Me.setAttribute("stroke-width","1px"),"text"===Me.nodeName)return;[].forEach.call(Me.children||Me.childNodes,Te)}}(this.container.querySelector("svg")),function _e(){ee.parentNode.removeChild(ee),de.parentNode.removeChild(de)}()}function he(Ae){const{scrollablePlotArea:Fe}=this;(Fe?[Fe.fixedDiv,Fe.scrollingContainer]:[this.container]).forEach(function(oe){Ae.appendChild(oe)})}function me(){const Ae=this,Fe=(oe,ee,de)=>{Ae.isDirtyExporting=!0,a(!0,Ae.options[oe],ee),y(de,!0)&&Ae.redraw()};Ae.exporting={update:function(oe,ee){Fe("exporting",oe,ee)}},ve.compose(Ae).navigation.addUpdate((oe,ee)=>{Fe("navigation",oe,ee)})}function Ce(){const Ae=this;Ae.isPrinting||(p=Ae,te.isSafari||Ae.beforePrint(),setTimeout(()=>{D.focus(),D.print(),te.isSafari||setTimeout(()=>{Ae.afterPrint()},1e3)},1))}function Se(){const Ae=this,Fe=Ae.options.exporting,oe=Fe.buttons,ee=Ae.isDirtyExporting||!Ae.exportSVGElements;Ae.buttonOffset=0,Ae.isDirtyExporting&&Ae.destroyExport(),ee&&!1!==Fe.enabled&&(Ae.exportEvents=[],Ae.exportingGroup=Ae.exportingGroup||Ae.renderer.g("exporting-group").attr({zIndex:3}).add(),g(oe,function(de){Ae.addButton(de)}),Ae.isDirtyExporting=!1)}function Oe(Ae,Fe){const oe=Ae.indexOf("")+6;let ee=Ae.substr(oe);return Ae=Ae.substr(0,oe),Fe&&Fe.exporting&&Fe.exporting.allowHTML&&ee&&(ee=''+ee.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",Ae=Ae.replace("",ee+"")),Ae.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/{"use strict";function Ft(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}ri.exports=function He(e){return(e=e||{}).circles?function M(e){var V=[],Pe=[];return e.proto?function re(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,re);if(ve instanceof Map)return new Map(Z(Array.from(ve),re));if(ve instanceof Set)return new Set(Z(Array.from(ve),re));var le={};for(var fe in V.push(ve),Pe.push(le),ve){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),re));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),re));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:re(pe)}}return V.pop(),Pe.pop(),le}:function ie(ve){if("object"!=typeof ve||null===ve)return ve;if(ve instanceof Date)return new Date(ve);if(Array.isArray(ve))return Z(ve,ie);if(ve instanceof Map)return new Map(Z(Array.from(ve),ie));if(ve instanceof Set)return new Set(Z(Array.from(ve),ie));var le={};for(var fe in V.push(ve),Pe.push(le),ve)if(!1!==Object.hasOwnProperty.call(ve,fe)){var pe=ve[fe];if("object"!=typeof pe||null===pe)le[fe]=pe;else if(pe instanceof Date)le[fe]=new Date(pe);else if(pe instanceof Map)le[fe]=new Map(Z(Array.from(pe),ie));else if(pe instanceof Set)le[fe]=new Set(Z(Array.from(pe),ie));else if(ArrayBuffer.isView(pe))le[fe]=Ft(pe);else{var J=V.indexOf(pe);le[fe]=-1!==J?Pe[J]:ie(pe)}}return V.pop(),Pe.pop(),le};function Z(ve,le){for(var fe=Object.keys(ve),pe=new Array(fe.length),J=0;J{"use strict";He.d(Ft,{t:()=>e});var M=He(21413);class e extends M.B{constructor(Pe){super(),this._value=Pe}get value(){return this.getValue()}_subscribe(Pe){const Z=super._subscribe(Pe);return!Z.closed&&Pe.next(this._value),Z}getValue(){const{hasError:Pe,thrownError:Z,_value:ie}=this;if(Pe)throw Z;return this._throwIfClosed(),ie}next(Pe){super.next(this._value=Pe)}}},71985:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>ve});var M=He(47707),e=He(18359),V=He(3494),Pe=He(71203),Z=He(41026),ie=He(98071),re=He(49786);let ve=(()=>{class J{constructor($){$&&(this._subscribe=$)}lift($){const A=new J;return A.source=this,A.operator=$,A}subscribe($,A,B){const F=function pe(J){return J&&J instanceof M.vU||function fe(J){return J&&(0,ie.T)(J.next)&&(0,ie.T)(J.error)&&(0,ie.T)(J.complete)}(J)&&(0,e.Uv)(J)}($)?$:new M.Ms($,A,B);return(0,re.Y)(()=>{const{operator:L,source:D}=this;F.add(L?L.call(F,D):D?this._subscribe(F):this._trySubscribe(F))}),F}_trySubscribe($){try{return this._subscribe($)}catch(A){$.error(A)}}forEach($,A){return new(A=le(A))((B,F)=>{const L=new M.Ms({next:D=>{try{$(D)}catch(I){F(I),L.unsubscribe()}},error:F,complete:B});this.subscribe(L)})}_subscribe($){var A;return null===(A=this.source)||void 0===A?void 0:A.subscribe($)}[V.s](){return this}pipe(...$){return(0,Pe.m)($)(this)}toPromise($){return new($=le($))((A,B)=>{let F;this.subscribe(L=>F=L,L=>B(L),()=>A(F))})}}return J.create=te=>new J(te),J})();function le(J){var te;return null!==(te=J??Z.$.Promise)&&void 0!==te?te:Promise}},21413:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>re});var M=He(71985),e=He(18359);const Pe=(0,He(81853).L)(le=>function(){le(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Z=He(57908),ie=He(49786);let re=(()=>{class le extends M.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(pe){const J=new ve(this,this);return J.operator=pe,J}_throwIfClosed(){if(this.closed)throw new Pe}next(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const J of this.currentObservers)J.next(pe)}})}error(pe){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=pe;const{observers:J}=this;for(;J.length;)J.shift().error(pe)}})}complete(){(0,ie.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:pe}=this;for(;pe.length;)pe.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var pe;return(null===(pe=this.observers)||void 0===pe?void 0:pe.length)>0}_trySubscribe(pe){return this._throwIfClosed(),super._trySubscribe(pe)}_subscribe(pe){return this._throwIfClosed(),this._checkFinalizedStatuses(pe),this._innerSubscribe(pe)}_innerSubscribe(pe){const{hasError:J,isStopped:te,observers:$}=this;return J||te?e.Kn:(this.currentObservers=null,$.push(pe),new e.yU(()=>{this.currentObservers=null,(0,Z.o)($,pe)}))}_checkFinalizedStatuses(pe){const{hasError:J,thrownError:te,isStopped:$}=this;J?pe.error(te):$&&pe.complete()}asObservable(){const pe=new M.c;return pe.source=this,pe}}return le.create=(fe,pe)=>new ve(fe,pe),le})();class ve extends re{constructor(fe,pe){super(),this.destination=fe,this.source=pe}next(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.next)||void 0===J||J.call(pe,fe)}error(fe){var pe,J;null===(J=null===(pe=this.destination)||void 0===pe?void 0:pe.error)||void 0===J||J.call(pe,fe)}complete(){var fe,pe;null===(pe=null===(fe=this.destination)||void 0===fe?void 0:fe.complete)||void 0===pe||pe.call(fe)}_subscribe(fe){var pe,J;return null!==(J=null===(pe=this.source)||void 0===pe?void 0:pe.subscribe(fe))&&void 0!==J?J:e.Kn}}},47707:(ri,Ft,He)=>{"use strict";He.d(Ft,{Ms:()=>B,vU:()=>J});var M=He(98071),e=He(18359),V=He(41026),Pe=He(45334),Z=He(85343);const ie=le("C",void 0,void 0);function le(E,_,b){return{kind:E,value:_,error:b}}var fe=He(19270),pe=He(49786);class J extends e.yU{constructor(_){super(),this.isStopped=!1,_?(this.destination=_,(0,e.Uv)(_)&&_.add(this)):this.destination=I}static create(_,b,T){return new B(_,b,T)}next(_){this.isStopped?D(function ve(E){return le("N",E,void 0)}(_),this):this._next(_)}error(_){this.isStopped?D(function re(E){return le("E",void 0,E)}(_),this):(this.isStopped=!0,this._error(_))}complete(){this.isStopped?D(ie,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(_){this.destination.next(_)}_error(_){try{this.destination.error(_)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const te=Function.prototype.bind;function $(E,_){return te.call(E,_)}class A{constructor(_){this.partialObserver=_}next(_){const{partialObserver:b}=this;if(b.next)try{b.next(_)}catch(T){F(T)}}error(_){const{partialObserver:b}=this;if(b.error)try{b.error(_)}catch(T){F(T)}else F(_)}complete(){const{partialObserver:_}=this;if(_.complete)try{_.complete()}catch(b){F(b)}}}class B extends J{constructor(_,b,T){let z;if(super(),(0,M.T)(_)||!_)z={next:_??void 0,error:b??void 0,complete:T??void 0};else{let O;this&&V.$.useDeprecatedNextContext?(O=Object.create(_),O.unsubscribe=()=>this.unsubscribe(),z={next:_.next&&$(_.next,O),error:_.error&&$(_.error,O),complete:_.complete&&$(_.complete,O)}):z=_}this.destination=new A(z)}}function F(E){V.$.useDeprecatedSynchronousErrorHandling?(0,pe.l)(E):(0,Pe.m)(E)}function D(E,_){const{onStoppedNotification:b}=V.$;b&&fe.f.setTimeout(()=>b(E,_))}const I={closed:!0,next:Z.l,error:function L(E){throw E},complete:Z.l}},18359:(ri,Ft,He)=>{"use strict";He.d(Ft,{Kn:()=>ie,yU:()=>Z,Uv:()=>re});var M=He(98071);const V=(0,He(81853).L)(le=>function(pe){le(this),this.message=pe?`${pe.length} errors occurred during unsubscription:\n${pe.map((J,te)=>`${te+1}) ${J.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=pe});var Pe=He(57908);class Z{constructor(fe){this.initialTeardown=fe,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let fe;if(!this.closed){this.closed=!0;const{_parentage:pe}=this;if(pe)if(this._parentage=null,Array.isArray(pe))for(const $ of pe)$.remove(this);else pe.remove(this);const{initialTeardown:J}=this;if((0,M.T)(J))try{J()}catch($){fe=$ instanceof V?$.errors:[$]}const{_finalizers:te}=this;if(te){this._finalizers=null;for(const $ of te)try{ve($)}catch(A){fe=fe??[],A instanceof V?fe=[...fe,...A.errors]:fe.push(A)}}if(fe)throw new V(fe)}}add(fe){var pe;if(fe&&fe!==this)if(this.closed)ve(fe);else{if(fe instanceof Z){if(fe.closed||fe._hasParent(this))return;fe._addParent(this)}(this._finalizers=null!==(pe=this._finalizers)&&void 0!==pe?pe:[]).push(fe)}}_hasParent(fe){const{_parentage:pe}=this;return pe===fe||Array.isArray(pe)&&pe.includes(fe)}_addParent(fe){const{_parentage:pe}=this;this._parentage=Array.isArray(pe)?(pe.push(fe),pe):pe?[pe,fe]:fe}_removeParent(fe){const{_parentage:pe}=this;pe===fe?this._parentage=null:Array.isArray(pe)&&(0,Pe.o)(pe,fe)}remove(fe){const{_finalizers:pe}=this;pe&&(0,Pe.o)(pe,fe),fe instanceof Z&&fe._removeParent(this)}}Z.EMPTY=(()=>{const le=new Z;return le.closed=!0,le})();const ie=Z.EMPTY;function re(le){return le instanceof Z||le&&"closed"in le&&(0,M.T)(le.remove)&&(0,M.T)(le.add)&&(0,M.T)(le.unsubscribe)}function ve(le){(0,M.T)(le)?le():le.unsubscribe()}},41026:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>M});const M={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},84572:(ri,Ft,He)=>{"use strict";He.d(Ft,{z:()=>fe});var M=He(71985),e=He(93073),V=He(86648),Pe=He(33669),Z=He(6450),ie=He(9326),re=He(58496),ve=He(54360),le=He(45225);function fe(...te){const $=(0,ie.lI)(te),A=(0,ie.ms)(te),{args:B,keys:F}=(0,e.D)(te);if(0===B.length)return(0,V.H)([],$);const L=new M.c(function pe(te,$,A=Pe.D){return B=>{J($,()=>{const{length:F}=te,L=new Array(F);let D=F,I=F;for(let E=0;E{const _=(0,V.H)(te[E],$);let b=!1;_.subscribe((0,ve._)(B,T=>{L[E]=T,b||(b=!0,I--),I||B.next(A(L.slice()))},()=>{--D||B.complete()}))},B)},B)}}(B,$,F?D=>(0,re.e)(F,D):Pe.D));return A?L.pipe((0,Z.I)(A)):L}function J(te,$,A){te?(0,le.N)(A,te,$):$()}},28793:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>Z});var M=He(26365),V=He(9326),Pe=He(86648);function Z(...ie){return function e(){return(0,M.U)(1)}()((0,Pe.H)(ie,(0,V.lI)(ie)))}},59030:(ri,Ft,He)=>{"use strict";He.d(Ft,{v:()=>V});var M=He(71985),e=He(58750);function V(Pe){return new M.c(Z=>{(0,e.Tg)(Pe()).subscribe(Z)})}},983:(ri,Ft,He)=>{"use strict";He.d(Ft,{w:()=>e});const e=new(He(71985).c)(Z=>Z.complete())},27468:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>ve});var M=He(71985),e=He(93073),V=He(58750),Pe=He(9326),Z=He(54360),ie=He(6450),re=He(58496);function ve(...le){const fe=(0,Pe.ms)(le),{args:pe,keys:J}=(0,e.D)(le),te=new M.c($=>{const{length:A}=pe;if(!A)return void $.complete();const B=new Array(A);let F=A,L=A;for(let D=0;D{I||(I=!0,L--),B[D]=E},()=>F--,void 0,()=>{(!F||!I)&&(L||$.next(J?(0,re.e)(J,B):B),$.complete())}))}});return fe?te.pipe((0,ie.I)(fe)):te}},86648:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>T});var M=He(58750),e=He(45225),V=He(39974),Pe=He(54360);function Z(z,O=0){return(0,V.N)((f,a)=>{f.subscribe((0,Pe._)(a,g=>(0,e.N)(a,z,()=>a.next(g),O),()=>(0,e.N)(a,z,()=>a.complete(),O),g=>(0,e.N)(a,z,()=>a.error(g),O)))})}function ie(z,O=0){return(0,V.N)((f,a)=>{a.add(z.schedule(()=>f.subscribe(a),O))})}var le=He(71985),pe=He(4761),J=He(98071);function $(z,O){if(!z)throw new Error("Iterable cannot be null");return new le.c(f=>{(0,e.N)(f,O,()=>{const a=z[Symbol.asyncIterator]();(0,e.N)(f,O,()=>{a.next().then(g=>{g.done?f.complete():f.next(g.value)})},0,!0)})})}var A=He(55055),B=He(59858),F=He(47441),L=He(85397),D=He(37953),I=He(50591),E=He(15196);function T(z,O){return O?function b(z,O){if(null!=z){if((0,A.l)(z))return function re(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,F.X)(z))return function fe(z,O){return new le.c(f=>{let a=0;return O.schedule(function(){a===z.length?f.complete():(f.next(z[a++]),f.closed||this.schedule())})})}(z,O);if((0,B.y)(z))return function ve(z,O){return(0,M.Tg)(z).pipe(ie(O),Z(O))}(z,O);if((0,D.T)(z))return $(z,O);if((0,L.x)(z))return function te(z,O){return new le.c(f=>{let a;return(0,e.N)(f,O,()=>{a=z[pe.l](),(0,e.N)(f,O,()=>{let g,y;try{({value:g,done:y}=a.next())}catch(o){return void f.error(o)}y?f.complete():f.next(g)},0,!0)}),()=>(0,J.T)(a?.return)&&a.return()})}(z,O);if((0,E.U)(z))return function _(z,O){return $((0,E.C)(z),O)}(z,O)}throw(0,I.L)(z)}(z,O):(0,M.Tg)(z)}},33726:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>fe});var M=He(58750),e=He(71985),V=He(73028),Pe=He(47441),Z=He(98071),ie=He(6450);const re=["addListener","removeListener"],ve=["addEventListener","removeEventListener"],le=["on","off"];function fe(A,B,F,L){if((0,Z.T)(F)&&(L=F,F=void 0),L)return fe(A,B,F).pipe((0,ie.I)(L));const[D,I]=function $(A){return(0,Z.T)(A.addEventListener)&&(0,Z.T)(A.removeEventListener)}(A)?ve.map(E=>_=>A[E](B,_,F)):function J(A){return(0,Z.T)(A.addListener)&&(0,Z.T)(A.removeListener)}(A)?re.map(pe(A,B)):function te(A){return(0,Z.T)(A.on)&&(0,Z.T)(A.off)}(A)?le.map(pe(A,B)):[];if(!D&&(0,Pe.X)(A))return(0,V.Z)(E=>fe(E,B,F))((0,M.Tg)(A));if(!D)throw new TypeError("Invalid event target");return new e.c(E=>{const _=(...b)=>E.next(1I(_)})}function pe(A,B){return F=>L=>A[F](B,L)}},58750:(ri,Ft,He)=>{"use strict";He.d(Ft,{Sx:()=>B,Tg:()=>te});var M=He(31635),e=He(47441),V=He(59858),Pe=He(71985),Z=He(55055),ie=He(37953),re=He(50591),ve=He(85397),le=He(15196),fe=He(98071),pe=He(45334),J=He(3494);function te(E){if(E instanceof Pe.c)return E;if(null!=E){if((0,Z.l)(E))return function $(E){return new Pe.c(_=>{const b=E[J.s]();if((0,fe.T)(b.subscribe))return b.subscribe(_);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(E);if((0,e.X)(E))return function A(E){return new Pe.c(_=>{for(let b=0;b{for(const b of E)if(_.next(b),_.closed)return;_.complete()})}(E);if((0,le.U)(E))return function D(E){return L((0,le.C)(E))}(E)}throw(0,re.L)(E)}function B(E){return new Pe.c(_=>{E.then(b=>{_.closed||(_.next(b),_.complete())},b=>_.error(b)).then(null,pe.m)})}function L(E){return new Pe.c(_=>{(function I(E,_){var b,T,z,O;return(0,M.sH)(this,void 0,void 0,function*(){try{for(b=(0,M.xN)(E);!(T=yield b.next()).done;)if(_.next(T.value),_.closed)return}catch(f){z={error:f}}finally{try{T&&!T.done&&(O=b.return)&&(yield O.call(b))}finally{if(z)throw z.error}}_.complete()})})(E,_).catch(b=>_.error(b))})}},57786:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>ie});var M=He(26365),e=He(58750),V=He(983),Pe=He(9326),Z=He(86648);function ie(...re){const ve=(0,Pe.lI)(re),le=(0,Pe.R0)(re,1/0),fe=re;return fe.length?1===fe.length?(0,e.Tg)(fe[0]):(0,M.U)(le)((0,Z.H)(fe,ve)):V.w}},7673:(ri,Ft,He)=>{"use strict";He.d(Ft,{of:()=>V});var M=He(9326),e=He(86648);function V(...Pe){const Z=(0,M.lI)(Pe);return(0,e.H)(Pe,Z)}},18810:(ri,Ft,He)=>{"use strict";He.d(Ft,{$:()=>V});var M=He(71985),e=He(98071);function V(Pe,Z){const ie=(0,e.T)(Pe)?Pe:()=>Pe,re=ve=>ve.error(ie());return new M.c(Z?ve=>Z.schedule(re,0,ve):re)}},41584:(ri,Ft,He)=>{"use strict";He.d(Ft,{O:()=>Z});var M=He(71985),e=He(43236),V=He(79470);function Z(ie=0,re,ve=e.b){let le=-1;return null!=re&&((0,V.m)(re)?ve=re:le=re),new M.c(fe=>{let pe=function Pe(ie){return ie instanceof Date&&!isNaN(ie)}(ie)?+ie-ve.now():ie;pe<0&&(pe=0);let J=0;return ve.schedule(function(){fe.closed||(fe.next(J++),0<=le?this.schedule(void 0,le):fe.complete())},pe)})}},54360:(ri,Ft,He)=>{"use strict";He.d(Ft,{_:()=>e});var M=He(47707);function e(Pe,Z,ie,re,ve){return new V(Pe,Z,ie,re,ve)}class V extends M.vU{constructor(Z,ie,re,ve,le,fe){super(Z),this.onFinalize=le,this.shouldUnsubscribe=fe,this._next=ie?function(pe){try{ie(pe)}catch(J){Z.error(J)}}:super._next,this._error=ve?function(pe){try{ve(pe)}catch(J){Z.error(J)}finally{this.unsubscribe()}}:super._error,this._complete=re?function(){try{re()}catch(pe){Z.error(pe)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var Z;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:ie}=this;super.unsubscribe(),!ie&&(null===(Z=this.onFinalize)||void 0===Z||Z.call(this))}}}},99437:(ri,Ft,He)=>{"use strict";He.d(Ft,{W:()=>Pe});var M=He(58750),e=He(54360),V=He(39974);function Pe(Z){return(0,V.N)((ie,re)=>{let fe,ve=null,le=!1;ve=ie.subscribe((0,e._)(re,void 0,void 0,pe=>{fe=(0,M.Tg)(Z(pe,Pe(Z)(ie))),ve?(ve.unsubscribe(),ve=null,fe.subscribe(re)):le=!0})),le&&(ve.unsubscribe(),ve=null,fe.subscribe(re))})}},70274:(ri,Ft,He)=>{"use strict";He.d(Ft,{H:()=>V});var M=He(73028),e=He(98071);function V(Pe,Z){return(0,e.T)(Z)?(0,M.Z)(Pe,Z,1):(0,M.Z)(Pe,1)}},70152:(ri,Ft,He)=>{"use strict";He.d(Ft,{B:()=>Pe});var M=He(43236),e=He(39974),V=He(54360);function Pe(Z,ie=M.E){return(0,e.N)((re,ve)=>{let le=null,fe=null,pe=null;const J=()=>{if(le){le.unsubscribe(),le=null;const $=fe;fe=null,ve.next($)}};function te(){const $=pe+Z,A=ie.now();if(A<$)return le=this.schedule(void 0,$-A),void ve.add(le);J()}re.subscribe((0,V._)(ve,$=>{fe=$,pe=ie.now(),le||(le=ie.schedule(te,Z),ve.add(le))},()=>{J(),ve.complete()},void 0,()=>{fe=le=null}))})}},39901:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(39974),e=He(54360);function V(Pe){return(0,M.N)((Z,ie)=>{let re=!1;Z.subscribe((0,e._)(ie,ve=>{re=!0,ie.next(ve)},()=>{re||ie.next(Pe),ie.complete()}))})}},91986:(ri,Ft,He)=>{"use strict";He.d(Ft,{c:()=>te});var M=He(43236),e=He(28793),V=He(96697),Pe=He(39974),Z=He(54360),ie=He(85343),ve=He(73703),le=He(73028),fe=He(58750);function pe($,A){return A?B=>(0,e.x)(A.pipe((0,V.s)(1),function re(){return(0,Pe.N)(($,A)=>{$.subscribe((0,Z._)(A,ie.l))})}()),B.pipe(pe($))):(0,le.Z)((B,F)=>(0,fe.Tg)($(B,F)).pipe((0,V.s)(1),(0,ve.u)(B)))}var J=He(41584);function te($,A=M.E){const B=(0,J.O)($,A);return pe(()=>B)}},23294:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>Pe});var M=He(33669),e=He(39974),V=He(54360);function Pe(ie,re=M.D){return ie=ie??Z,(0,e.N)((ve,le)=>{let fe,pe=!0;ve.subscribe((0,V._)(le,J=>{const te=re(J);(pe||!ie(fe,te))&&(pe=!1,fe=te,le.next(J))}))})}function Z(ie,re){return ie===re}},5964:(ri,Ft,He)=>{"use strict";He.d(Ft,{p:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>Pe.call(Z,le,ve++)&&re.next(le)))})}},70980:(ri,Ft,He)=>{"use strict";He.d(Ft,{j:()=>e});var M=He(39974);function e(V){return(0,M.N)((Pe,Z)=>{try{Pe.subscribe(Z)}finally{Z.add(V)}})}},96354:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>V});var M=He(39974),e=He(54360);function V(Pe,Z){return(0,M.N)((ie,re)=>{let ve=0;ie.subscribe((0,e._)(re,le=>{re.next(Pe.call(Z,le,ve++))}))})}},73703:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>e});var M=He(96354);function e(V){return(0,M.T)(()=>V)}},26365:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>V});var M=He(73028),e=He(33669);function V(Pe=1/0){return(0,M.Z)(e.D,Pe)}},85412:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(58750),e=He(45225),V=He(54360);function Pe(Z,ie,re,ve,le,fe,pe,J){const te=[];let $=0,A=0,B=!1;const F=()=>{B&&!te.length&&!$&&ie.complete()},L=I=>${fe&&ie.next(I),$++;let E=!1;(0,M.Tg)(re(I,A++)).subscribe((0,V._)(ie,_=>{le?.(_),fe?L(_):ie.next(_)},()=>{E=!0},void 0,()=>{if(E)try{for($--;te.length&&$D(_)):D(_)}F()}catch(_){ie.error(_)}}))};return Z.subscribe((0,V._)(ie,L,()=>{B=!0,F()})),()=>{J?.()}}},73028:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie});var M=He(96354),e=He(58750),V=He(39974),Pe=He(85412),Z=He(98071);function ie(re,ve,le=1/0){return(0,Z.T)(ve)?ie((fe,pe)=>(0,M.T)((J,te)=>ve(fe,J,pe,te))((0,e.Tg)(re(fe,pe))),le):("number"==typeof ve&&(le=ve),(0,V.N)((fe,pe)=>(0,Pe.h)(fe,pe,re,le)))}},97647:(ri,Ft,He)=>{"use strict";He.d(Ft,{u:()=>Z});var M=He(58750),e=He(21413),V=He(47707),Pe=He(39974);function Z(re={}){const{connector:ve=(()=>new e.B),resetOnError:le=!0,resetOnComplete:fe=!0,resetOnRefCountZero:pe=!0}=re;return J=>{let te,$,A,B=0,F=!1,L=!1;const D=()=>{$?.unsubscribe(),$=void 0},I=()=>{D(),te=A=void 0,F=L=!1},E=()=>{const _=te;I(),_?.unsubscribe()};return(0,Pe.N)((_,b)=>{B++,!L&&!F&&D();const T=A=A??ve();b.add(()=>{B--,0===B&&!L&&!F&&($=ie(E,pe))}),T.subscribe(b),!te&&B>0&&(te=new V.Ms({next:z=>T.next(z),error:z=>{L=!0,D(),$=ie(I,le,z),T.error(z)},complete:()=>{F=!0,D(),$=ie(I,fe),T.complete()}}),(0,M.Tg)(_).subscribe(te))})(J)}}function ie(re,ve,...le){if(!0===ve)return void re();if(!1===ve)return;const fe=new V.Ms({next:()=>{fe.unsubscribe(),re()}});return(0,M.Tg)(ve(...le)).subscribe(fe)}},99172:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>Pe});var M=He(28793),e=He(9326),V=He(39974);function Pe(...Z){const ie=(0,e.lI)(Z);return(0,V.N)((re,ve)=>{(ie?(0,M.x)(Z,re,ie):(0,M.x)(Z,re)).subscribe(ve)})}},25558:(ri,Ft,He)=>{"use strict";He.d(Ft,{n:()=>Pe});var M=He(58750),e=He(39974),V=He(54360);function Pe(Z,ie){return(0,e.N)((re,ve)=>{let le=null,fe=0,pe=!1;const J=()=>pe&&!le&&ve.complete();re.subscribe((0,V._)(ve,te=>{le?.unsubscribe();let $=0;const A=fe++;(0,M.Tg)(Z(te,A)).subscribe(le=(0,V._)(ve,B=>ve.next(ie?ie(te,B,A,$++):B),()=>{le=null,J()}))},()=>{pe=!0,J()}))})}},96697:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>Pe});var M=He(983),e=He(39974),V=He(54360);function Pe(Z){return Z<=0?()=>M.w:(0,e.N)((ie,re)=>{let ve=0;ie.subscribe((0,V._)(re,le=>{++ve<=Z&&(re.next(le),Z<=ve&&re.complete())}))})}},56977:(ri,Ft,He)=>{"use strict";He.d(Ft,{Q:()=>Z});var M=He(39974),e=He(54360),V=He(58750),Pe=He(85343);function Z(ie){return(0,M.N)((re,ve)=>{(0,V.Tg)(ie).subscribe((0,e._)(ve,()=>ve.complete(),Pe.l)),!ve.closed&&re.subscribe(ve)})}},88141:(ri,Ft,He)=>{"use strict";He.d(Ft,{M:()=>Z});var M=He(98071),e=He(39974),V=He(54360),Pe=He(33669);function Z(ie,re,ve){const le=(0,M.T)(ie)||re||ve?{next:ie,error:re,complete:ve}:ie;return le?(0,e.N)((fe,pe)=>{var J;null===(J=le.subscribe)||void 0===J||J.call(le);let te=!0;fe.subscribe((0,V._)(pe,$=>{var A;null===(A=le.next)||void 0===A||A.call(le,$),pe.next($)},()=>{var $;te=!1,null===($=le.complete)||void 0===$||$.call(le),pe.complete()},$=>{var A;te=!1,null===(A=le.error)||void 0===A||A.call(le,$),pe.error($)},()=>{var $,A;te&&(null===($=le.unsubscribe)||void 0===$||$.call(le)),null===(A=le.finalize)||void 0===A||A.call(le)}))}):Pe.D}},96780:(ri,Ft,He)=>{"use strict";He.d(Ft,{R:()=>Z});var M=He(18359);class e extends M.yU{constructor(re,ve){super()}schedule(re,ve=0){return this}}const V={setInterval(ie,re,...ve){const{delegate:le}=V;return le?.setInterval?le.setInterval(ie,re,...ve):setInterval(ie,re,...ve)},clearInterval(ie){const{delegate:re}=V;return(re?.clearInterval||clearInterval)(ie)},delegate:void 0};var Pe=He(57908);class Z extends e{constructor(re,ve){super(re,ve),this.scheduler=re,this.work=ve,this.pending=!1}schedule(re,ve=0){var le;if(this.closed)return this;this.state=re;const fe=this.id,pe=this.scheduler;return null!=fe&&(this.id=this.recycleAsyncId(pe,fe,ve)),this.pending=!0,this.delay=ve,this.id=null!==(le=this.id)&&void 0!==le?le:this.requestAsyncId(pe,this.id,ve),this}requestAsyncId(re,ve,le=0){return V.setInterval(re.flush.bind(re,this),le)}recycleAsyncId(re,ve,le=0){if(null!=le&&this.delay===le&&!1===this.pending)return ve;null!=ve&&V.clearInterval(ve)}execute(re,ve){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const le=this._execute(re,ve);if(le)return le;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(re,ve){let fe,le=!1;try{this.work(re)}catch(pe){le=!0,fe=pe||new Error("Scheduled action threw falsy error")}if(le)return this.unsubscribe(),fe}unsubscribe(){if(!this.closed){const{id:re,scheduler:ve}=this,{actions:le}=ve;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Pe.o)(le,this),null!=re&&(this.id=this.recycleAsyncId(ve,re,null)),this.delay=null,super.unsubscribe()}}}},39687:(ri,Ft,He)=>{"use strict";He.d(Ft,{q:()=>V});var M=He(86129);class e{constructor(Z,ie=e.now){this.schedulerActionCtor=Z,this.now=ie}schedule(Z,ie=0,re){return new this.schedulerActionCtor(this,Z).schedule(re,ie)}}e.now=M.U.now;class V extends e{constructor(Z,ie=e.now){super(Z,ie),this.actions=[],this._active=!1}flush(Z){const{actions:ie}=this;if(this._active)return void ie.push(Z);let re;this._active=!0;do{if(re=Z.execute(Z.state,Z.delay))break}while(Z=ie.shift());if(this._active=!1,re){for(;Z=ie.shift();)Z.unsubscribe();throw re}}}},30536:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>re});var M=He(96780),e=He(18359);const V={schedule(le){let fe=requestAnimationFrame,pe=cancelAnimationFrame;const{delegate:J}=V;J&&(fe=J.requestAnimationFrame,pe=J.cancelAnimationFrame);const te=fe($=>{pe=void 0,le($)});return new e.yU(()=>pe?.(te))},requestAnimationFrame(...le){const{delegate:fe}=V;return(fe?.requestAnimationFrame||requestAnimationFrame)(...le)},cancelAnimationFrame(...le){const{delegate:fe}=V;return(fe?.cancelAnimationFrame||cancelAnimationFrame)(...le)},delegate:void 0};var Z=He(39687);const re=new class ie extends Z.q{flush(fe){this._active=!0;const pe=this._scheduled;this._scheduled=void 0;const{actions:J}=this;let te;fe=fe||J.shift();do{if(te=fe.execute(fe.state,fe.delay))break}while((fe=J[0])&&fe.id===pe&&J.shift());if(this._active=!1,te){for(;(fe=J[0])&&fe.id===pe&&J.shift();)fe.unsubscribe();throw te}}}(class Pe extends M.R{constructor(fe,pe){super(fe,pe),this.scheduler=fe,this.work=pe}requestAsyncId(fe,pe,J=0){return null!==J&&J>0?super.requestAsyncId(fe,pe,J):(fe.actions.push(this),fe._scheduled||(fe._scheduled=V.requestAnimationFrame(()=>fe.flush(void 0))))}recycleAsyncId(fe,pe,J=0){var te;if(null!=J?J>0:this.delay>0)return super.recycleAsyncId(fe,pe,J);const{actions:$}=fe;null!=pe&&(null===(te=$[$.length-1])||void 0===te?void 0:te.id)!==pe&&(V.cancelAnimationFrame(pe),fe._scheduled=void 0)}})},43236:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>V,b:()=>Pe});var M=He(96780);const V=new(He(39687).q)(M.R),Pe=V},86129:(ri,Ft,He)=>{"use strict";He.d(Ft,{U:()=>M});const M={now:()=>(M.delegate||Date).now(),delegate:void 0}},19270:(ri,Ft,He)=>{"use strict";He.d(Ft,{f:()=>M});const M={setTimeout(e,V,...Pe){const{delegate:Z}=M;return Z?.setTimeout?Z.setTimeout(e,V,...Pe):setTimeout(e,V,...Pe)},clearTimeout(e){const{delegate:V}=M;return(V?.clearTimeout||clearTimeout)(e)},delegate:void 0}},4761:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>e});const e=function M(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},3494:(ri,Ft,He)=>{"use strict";He.d(Ft,{s:()=>M});const M="function"==typeof Symbol&&Symbol.observable||"@@observable"},9326:(ri,Ft,He)=>{"use strict";He.d(Ft,{R0:()=>ie,lI:()=>Z,ms:()=>Pe});var M=He(98071),e=He(79470);function V(re){return re[re.length-1]}function Pe(re){return(0,M.T)(V(re))?re.pop():void 0}function Z(re){return(0,e.m)(V(re))?re.pop():void 0}function ie(re,ve){return"number"==typeof V(re)?re.pop():ve}},93073:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>Z});const{isArray:M}=Array,{getPrototypeOf:e,prototype:V,keys:Pe}=Object;function Z(re){if(1===re.length){const ve=re[0];if(M(ve))return{args:ve,keys:null};if(function ie(re){return re&&"object"==typeof re&&e(re)===V}(ve)){const le=Pe(ve);return{args:le.map(fe=>ve[fe]),keys:le}}}return{args:re,keys:null}}},57908:(ri,Ft,He)=>{"use strict";function M(e,V){if(e){const Pe=e.indexOf(V);0<=Pe&&e.splice(Pe,1)}}He.d(Ft,{o:()=>M})},81853:(ri,Ft,He)=>{"use strict";function M(e){const Pe=e(Z=>{Error.call(Z),Z.stack=(new Error).stack});return Pe.prototype=Object.create(Error.prototype),Pe.prototype.constructor=Pe,Pe}He.d(Ft,{L:()=>M})},58496:(ri,Ft,He)=>{"use strict";function M(e,V){return e.reduce((Pe,Z,ie)=>(Pe[Z]=V[ie],Pe),{})}He.d(Ft,{e:()=>M})},49786:(ri,Ft,He)=>{"use strict";He.d(Ft,{Y:()=>V,l:()=>Pe});var M=He(41026);let e=null;function V(Z){if(M.$.useDeprecatedSynchronousErrorHandling){const ie=!e;if(ie&&(e={errorThrown:!1,error:null}),Z(),ie){const{errorThrown:re,error:ve}=e;if(e=null,re)throw ve}}else Z()}function Pe(Z){M.$.useDeprecatedSynchronousErrorHandling&&e&&(e.errorThrown=!0,e.error=Z)}},45225:(ri,Ft,He)=>{"use strict";function M(e,V,Pe,Z=0,ie=!1){const re=V.schedule(function(){Pe(),ie?e.add(this.schedule(null,Z)):this.unsubscribe()},Z);if(e.add(re),!ie)return re}He.d(Ft,{N:()=>M})},33669:(ri,Ft,He)=>{"use strict";function M(e){return e}He.d(Ft,{D:()=>M})},47441:(ri,Ft,He)=>{"use strict";He.d(Ft,{X:()=>M});const M=e=>e&&"number"==typeof e.length&&"function"!=typeof e},37953:(ri,Ft,He)=>{"use strict";He.d(Ft,{T:()=>e});var M=He(98071);function e(V){return Symbol.asyncIterator&&(0,M.T)(V?.[Symbol.asyncIterator])}},98071:(ri,Ft,He)=>{"use strict";function M(e){return"function"==typeof e}He.d(Ft,{T:()=>M})},55055:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>V});var M=He(3494),e=He(98071);function V(Pe){return(0,e.T)(Pe[M.s])}},85397:(ri,Ft,He)=>{"use strict";He.d(Ft,{x:()=>V});var M=He(4761),e=He(98071);function V(Pe){return(0,e.T)(Pe?.[M.l])}},74402:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(71985),e=He(98071);function V(Pe){return!!Pe&&(Pe instanceof M.c||(0,e.T)(Pe.lift)&&(0,e.T)(Pe.subscribe))}},59858:(ri,Ft,He)=>{"use strict";He.d(Ft,{y:()=>e});var M=He(98071);function e(V){return(0,M.T)(V?.then)}},15196:(ri,Ft,He)=>{"use strict";He.d(Ft,{C:()=>V,U:()=>Pe});var M=He(31635),e=He(98071);function V(Z){return(0,M.AQ)(this,arguments,function*(){const re=Z.getReader();try{for(;;){const{value:ve,done:le}=yield(0,M.N3)(re.read());if(le)return yield(0,M.N3)(void 0);yield yield(0,M.N3)(ve)}}finally{re.releaseLock()}})}function Pe(Z){return(0,e.T)(Z?.getReader)}},79470:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>e});var M=He(98071);function e(V){return V&&(0,M.T)(V.schedule)}},39974:(ri,Ft,He)=>{"use strict";He.d(Ft,{N:()=>V,S:()=>e});var M=He(98071);function e(Pe){return(0,M.T)(Pe?.lift)}function V(Pe){return Z=>{if(e(Z))return Z.lift(function(ie){try{return Pe(ie,this)}catch(re){this.error(re)}});throw new TypeError("Unable to lift unknown Observable type")}}},6450:(ri,Ft,He)=>{"use strict";He.d(Ft,{I:()=>Pe});var M=He(96354);const{isArray:e}=Array;function Pe(Z){return(0,M.T)(ie=>function V(Z,ie){return e(ie)?Z(...ie):Z(ie)}(Z,ie))}},85343:(ri,Ft,He)=>{"use strict";function M(){}He.d(Ft,{l:()=>M})},71203:(ri,Ft,He)=>{"use strict";He.d(Ft,{F:()=>e,m:()=>V});var M=He(33669);function e(...Pe){return V(Pe)}function V(Pe){return 0===Pe.length?M.D:1===Pe.length?Pe[0]:function(ie){return Pe.reduce((re,ve)=>ve(re),ie)}}},45334:(ri,Ft,He)=>{"use strict";He.d(Ft,{m:()=>V});var M=He(41026),e=He(19270);function V(Pe){e.f.setTimeout(()=>{const{onUnhandledError:Z}=M.$;if(!Z)throw Pe;Z(Pe)})}},50591:(ri,Ft,He)=>{"use strict";function M(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}He.d(Ft,{L:()=>M})},49969:(ri,Ft,He)=>{"use strict";He.d(Ft,{FX:()=>O,If:()=>M,K2:()=>ie,hZ:()=>V,i0:()=>Pe,iF:()=>re,kY:()=>fe,kp:()=>e,lY:()=>pe,sM:()=>te,sf:()=>T,ui:()=>z,wk:()=>ve});var M=function(f){return f[f.State=0]="State",f[f.Transition=1]="Transition",f[f.Sequence=2]="Sequence",f[f.Group=3]="Group",f[f.Animate=4]="Animate",f[f.Keyframes=5]="Keyframes",f[f.Style=6]="Style",f[f.Trigger=7]="Trigger",f[f.Reference=8]="Reference",f[f.AnimateChild=9]="AnimateChild",f[f.AnimateRef=10]="AnimateRef",f[f.Query=11]="Query",f[f.Stagger=12]="Stagger",f}(M||{});const e="*";function V(f,a){return{type:M.Trigger,name:f,definitions:a,options:{}}}function Pe(f,a=null){return{type:M.Animate,styles:a,timings:f}}function ie(f,a=null){return{type:M.Sequence,steps:f,options:a}}function re(f){return{type:M.Style,styles:f,offset:null}}function ve(f,a,g){return{type:M.State,name:f,styles:a,options:g}}function fe(f,a,g=null){return{type:M.Transition,expr:f,animation:a,options:g}}function pe(f,a=null){return{type:M.Reference,animation:f,options:a}}function te(f,a=null){return{type:M.AnimateRef,animation:f,options:a}}class T{constructor(a=0,g=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=a+g}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}onStart(a){this._originalOnStartFns.push(a),this._onStartFns.push(a)}onDone(a){this._originalOnDoneFns.push(a),this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(a=>a()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(a){this._position=this.totalTime?a*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}class z{constructor(a){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=a;let g=0,y=0,o=0;const n=this.players.length;0==n?queueMicrotask(()=>this._onFinish()):this.players.forEach(r=>{r.onDone(()=>{++g==n&&this._onFinish()}),r.onDestroy(()=>{++y==n&&this._onDestroy()}),r.onStart(()=>{++o==n&&this._onStart()})}),this.totalTime=this.players.reduce((r,l)=>Math.max(r,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(a=>a()),this._onDoneFns=[])}init(){this.players.forEach(a=>a.init())}onStart(a){this._onStartFns.push(a)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(a=>a()),this._onStartFns=[])}onDone(a){this._onDoneFns.push(a)}onDestroy(a){this._onDestroyFns.push(a)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(a=>a.play())}pause(){this.players.forEach(a=>a.pause())}restart(){this.players.forEach(a=>a.restart())}finish(){this._onFinish(),this.players.forEach(a=>a.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(a=>a.destroy()),this._onDestroyFns.forEach(a=>a()),this._onDestroyFns=[])}reset(){this.players.forEach(a=>a.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(a){const g=a*this.totalTime;this.players.forEach(y=>{const o=y.totalTime?Math.min(1,g/y.totalTime):1;y.setPosition(o)})}getPosition(){const a=this.players.reduce((g,y)=>null===g||y.totalTime>g.totalTime?y:g,null);return null!=a?a.getPosition():0}beforeDestroy(){this.players.forEach(a=>{a.beforeDestroy&&a.beforeDestroy()})}triggerCallback(a){const g="start"==a?this._onStartFns:this._onDoneFns;g.forEach(y=>y()),g.length=0}}const O="!"},83801:(ri,Ft,He)=>{"use strict";He.d(Ft,{B0:()=>Pe,FQ:()=>re});var M=He(60177),e=He(54438);class V{constructor(le,fe){this._document=fe;const pe=this._textarea=this._document.createElement("textarea"),J=pe.style;J.position="fixed",J.top=J.opacity="0",J.left="-999em",pe.setAttribute("aria-hidden","true"),pe.value=le,pe.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(pe)}copy(){const le=this._textarea;let fe=!1;try{if(le){const pe=this._document.activeElement;le.select(),le.setSelectionRange(0,le.value.length),fe=this._document.execCommand("copy"),pe&&pe.focus()}}catch{}return fe}destroy(){const le=this._textarea;le&&(le.remove(),this._textarea=void 0)}}let Pe=(()=>{class ve{constructor(fe){this._document=fe}copy(fe){const pe=this.beginCopy(fe),J=pe.copy();return pe.destroy(),J}beginCopy(fe){return new V(fe,this._document)}static#e=this.\u0275fac=function(pe){return new(pe||ve)(e.KVO(M.qQ))};static#t=this.\u0275prov=e.jDH({token:ve,factory:ve.\u0275fac,providedIn:"root"})}return ve})(),re=(()=>{class ve{static#e=this.\u0275fac=function(pe){return new(pe||ve)};static#t=this.\u0275mod=e.$C({type:ve});static#i=this.\u0275inj=e.G2t({})}return ve})()},60177:(ri,Ft,He)=>{"use strict";He.d(Ft,{AJ:()=>mo,B3:()=>Ki,Jj:()=>bn,MD:()=>ga,N0:()=>ba,QT:()=>V,Sm:()=>B,Sq:()=>si,T3:()=>Tn,UE:()=>er,VF:()=>Z,Vy:()=>ll,XO:()=>r,Xr:()=>sr,YU:()=>$e,Yq:()=>ye,ZD:()=>Pe,_b:()=>Nt,aZ:()=>L,bT:()=>Hi,cH:()=>f,e1:()=>Js,fG:()=>ns,fw:()=>F,hb:()=>$,hj:()=>le,kB:()=>A,lG:()=>xr,oV:()=>O,qQ:()=>re,tL:()=>l,ux:()=>os,vh:()=>Hs});var M=He(54438);let e=null;function V(){return e}function Pe(Ge){e??=Ge}class Z{}const re=new M.nKC("");let ve=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(fe),providedIn:"platform"})}return Ge})();const le=new M.nKC("");let fe=(()=>{class Ge extends ve{constructor(){super(),this._doc=(0,M.WQX)(re),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return V().getBaseHref(this._doc)}onPopState(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("popstate",Ke,!1),()=>at.removeEventListener("popstate",Ke)}onHashChange(Ke){const at=V().getGlobalEventTarget(this._doc,"window");return at.addEventListener("hashchange",Ke,!1),()=>at.removeEventListener("hashchange",Ke)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(Ke){this._location.pathname=Ke}pushState(Ke,at,Et){this._history.pushState(Ke,at,Et)}replaceState(Ke,at,Et){this._history.replaceState(Ke,at,Et)}forward(){this._history.forward()}back(){this._history.back()}historyGo(Ke=0){this._history.go(Ke)}getState(){return this._history.state}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>new Ge,providedIn:"platform"})}return Ge})();function pe(Ge,ut){if(0==Ge.length)return ut;if(0==ut.length)return Ge;let Ke=0;return Ge.endsWith("/")&&Ke++,ut.startsWith("/")&&Ke++,2==Ke?Ge+ut.substring(1):1==Ke?Ge+ut:Ge+"/"+ut}function J(Ge){const ut=Ge.match(/#|\?|$/),Ke=ut&&ut.index||Ge.length;return Ge.slice(0,Ke-("/"===Ge[Ke-1]?1:0))+Ge.slice(Ke)}function te(Ge){return Ge&&"?"!==Ge[0]?"?"+Ge:Ge}let $=(()=>{class Ge{historyGo(Ke){throw new Error("")}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275prov=M.jDH({token:Ge,factory:()=>(0,M.WQX)(B),providedIn:"root"})}return Ge})();const A=new M.nKC("");let B=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._removeListenerFns=[],this._baseHref=at??this._platformLocation.getBaseHrefFromDOM()??(0,M.WQX)(re).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}prepareExternalUrl(Ke){return pe(this._baseHref,Ke)}path(Ke=!1){const at=this._platformLocation.pathname+te(this._platformLocation.search),Et=this._platformLocation.hash;return Et&&Ke?`${at}${Et}`:at}pushState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){const ci=this.prepareExternalUrl(Et+te(qt));this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac,providedIn:"root"})}return Ge})(),F=(()=>{class Ge extends ${constructor(Ke,at){super(),this._platformLocation=Ke,this._baseHref="",this._removeListenerFns=[],null!=at&&(this._baseHref=at)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(Ke){this._removeListenerFns.push(this._platformLocation.onPopState(Ke),this._platformLocation.onHashChange(Ke))}getBaseHref(){return this._baseHref}path(Ke=!1){const at=this._platformLocation.hash??"#";return at.length>0?at.substring(1):at}prepareExternalUrl(Ke){const at=pe(this._baseHref,Ke);return at.length>0?"#"+at:at}pushState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.pushState(Ke,at,ci)}replaceState(Ke,at,Et,qt){let ci=this.prepareExternalUrl(Et+te(qt));0==ci.length&&(ci=this._platformLocation.pathname),this._platformLocation.replaceState(Ke,at,ci)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(Ke=0){this._platformLocation.historyGo?.(Ke)}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.KVO(ve),M.KVO(A,8))};static#t=this.\u0275prov=M.jDH({token:Ge,factory:Ge.\u0275fac})}return Ge})(),L=(()=>{class Ge{constructor(Ke){this._subject=new M.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=Ke;const at=this._locationStrategy.getBaseHref();this._basePath=function _(Ge){if(new RegExp("^(https?:)?//").test(Ge)){const[,Ke]=Ge.split(/\/\/[^\/]+/);return Ke}return Ge}(J(E(at))),this._locationStrategy.onPopState(Et=>{this._subject.emit({url:this.path(!0),pop:!0,state:Et.state,type:Et.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(Ke=!1){return this.normalize(this._locationStrategy.path(Ke))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(Ke,at=""){return this.path()==this.normalize(Ke+te(at))}normalize(Ke){return Ge.stripTrailingSlash(function I(Ge,ut){if(!Ge||!ut.startsWith(Ge))return ut;const Ke=ut.substring(Ge.length);return""===Ke||["/",";","?","#"].includes(Ke[0])?Ke:ut}(this._basePath,E(Ke)))}prepareExternalUrl(Ke){return Ke&&"/"!==Ke[0]&&(Ke="/"+Ke),this._locationStrategy.prepareExternalUrl(Ke)}go(Ke,at="",Et=null){this._locationStrategy.pushState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}replaceState(Ke,at="",Et=null){this._locationStrategy.replaceState(Et,"",Ke,at),this._notifyUrlChangeListeners(this.prepareExternalUrl(Ke+te(at)),Et)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(Ke=0){this._locationStrategy.historyGo?.(Ke)}onUrlChange(Ke){return this._urlChangeListeners.push(Ke),this._urlChangeSubscription??=this.subscribe(at=>{this._notifyUrlChangeListeners(at.url,at.state)}),()=>{const at=this._urlChangeListeners.indexOf(Ke);this._urlChangeListeners.splice(at,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(Ke="",at){this._urlChangeListeners.forEach(Et=>Et(Ke,at))}subscribe(Ke,at,Et){return this._subject.subscribe({next:Ke,error:at,complete:Et})}static#e=this.normalizeQueryParams=te;static#t=this.joinWithSlash=pe;static#i=this.stripTrailingSlash=J;static#n=this.\u0275fac=function(at){return new(at||Ge)(M.KVO($))};static#s=this.\u0275prov=M.jDH({token:Ge,factory:()=>function D(){return new L((0,M.KVO)($))}(),providedIn:"root"})}return Ge})();function E(Ge){return Ge.replace(/\/index.html$/,"")}var O=function(Ge){return Ge[Ge.Format=0]="Format",Ge[Ge.Standalone=1]="Standalone",Ge}(O||{}),f=function(Ge){return Ge[Ge.Narrow=0]="Narrow",Ge[Ge.Abbreviated=1]="Abbreviated",Ge[Ge.Wide=2]="Wide",Ge[Ge.Short=3]="Short",Ge}(f||{}),a=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.Medium=1]="Medium",Ge[Ge.Long=2]="Long",Ge[Ge.Full=3]="Full",Ge}(a||{});const g={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function r(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.DaysFormat],at[M.KH2.DaysStandalone]],ut);return q(qt,Ke)}function l(Ge,ut,Ke){const at=(0,M.H5H)(Ge),qt=q([at[M.KH2.MonthsFormat],at[M.KH2.MonthsStandalone]],ut);return q(qt,Ke)}function p(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateFormat],ut)}function S(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.TimeFormat],ut)}function j(Ge,ut){return q((0,M.H5H)(Ge)[M.KH2.DateTimeFormat],ut)}function H(Ge,ut){const Ke=(0,M.H5H)(Ge),at=Ke[M.KH2.NumberSymbols][ut];if(typeof at>"u"){if(ut===g.CurrencyDecimal)return Ke[M.KH2.NumberSymbols][g.Decimal];if(ut===g.CurrencyGroup)return Ke[M.KH2.NumberSymbols][g.Group]}return at}function x(Ge){if(!Ge[M.KH2.ExtraData])throw new Error(`Missing extra locale data for the locale "${Ge[M.KH2.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function q(Ge,ut){for(let Ke=ut;Ke>-1;Ke--)if(typeof Ge[Ke]<"u")return Ge[Ke];throw new Error("Locale data API: locale data undefined")}function he(Ge){const[ut,Ke]=Ge.split(":");return{hours:+ut,minutes:+Ke}}const Oe=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ae={},Fe=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var oe=function(Ge){return Ge[Ge.Short=0]="Short",Ge[Ge.ShortGMT=1]="ShortGMT",Ge[Ge.Long=2]="Long",Ge[Ge.Extended=3]="Extended",Ge}(oe||{}),ee=function(Ge){return Ge[Ge.FullYear=0]="FullYear",Ge[Ge.Month=1]="Month",Ge[Ge.Date=2]="Date",Ge[Ge.Hours=3]="Hours",Ge[Ge.Minutes=4]="Minutes",Ge[Ge.Seconds=5]="Seconds",Ge[Ge.FractionalSeconds=6]="FractionalSeconds",Ge[Ge.Day=7]="Day",Ge}(ee||{}),de=function(Ge){return Ge[Ge.DayPeriods=0]="DayPeriods",Ge[Ge.Days=1]="Days",Ge[Ge.Months=2]="Months",Ge[Ge.Eras=3]="Eras",Ge}(de||{});function ye(Ge,ut,Ke,at){let Et=function Fi(Ge){if(vi(Ge))return Ge;if("number"==typeof Ge&&!isNaN(Ge))return new Date(Ge);if("string"==typeof Ge){if(Ge=Ge.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(Ge)){const[Et,qt=1,ci=1]=Ge.split("-").map(Oi=>+Oi);return Te(Et,qt-1,ci)}const Ke=parseFloat(Ge);if(!isNaN(Ge-Ke))return new Date(Ke);let at;if(at=Ge.match(Oe))return function mi(Ge){const ut=new Date(0);let Ke=0,at=0;const Et=Ge[8]?ut.setUTCFullYear:ut.setFullYear,qt=Ge[8]?ut.setUTCHours:ut.setHours;Ge[9]&&(Ke=Number(Ge[9]+Ge[10]),at=Number(Ge[9]+Ge[11])),Et.call(ut,Number(Ge[1]),Number(Ge[2])-1,Number(Ge[3]));const ci=Number(Ge[4]||0)-Ke,Oi=Number(Ge[5]||0)-at,Xn=Number(Ge[6]||0),es=Math.floor(1e3*parseFloat("0."+(Ge[7]||0)));return qt.call(ut,ci,Oi,Xn,es),ut}(at)}const ut=new Date(Ge);if(!vi(ut))throw new Error(`Unable to convert "${Ge}" into a date`);return ut}(Ge);ut=_e(Ke,ut)||ut;let Oi,ci=[];for(;ut;){if(Oi=Fe.exec(ut),!Oi){ci.push(ut);break}{ci=ci.concat(Oi.slice(1));const as=ci.pop();if(!as)break;ut=as}}let Xn=Et.getTimezoneOffset();at&&(Xn=wt(at,Xn),Et=function ui(Ge,ut,Ke){const at=Ke?-1:1,Et=Ge.getTimezoneOffset();return function Jt(Ge,ut){return(Ge=new Date(Ge.getTime())).setMinutes(Ge.getMinutes()+ut),Ge}(Ge,at*(wt(ut,Et)-Et))}(Et,at,!0));let es="";return ci.forEach(as=>{const Sn=function _t(Ge){if(At[Ge])return At[Ge];let ut;switch(Ge){case"G":case"GG":case"GGG":ut=Qe(de.Eras,f.Abbreviated);break;case"GGGG":ut=Qe(de.Eras,f.Wide);break;case"GGGGG":ut=Qe(de.Eras,f.Narrow);break;case"y":ut=Ze(ee.FullYear,1,0,!1,!0);break;case"yy":ut=Ze(ee.FullYear,2,0,!0,!0);break;case"yyy":ut=Ze(ee.FullYear,3,0,!1,!0);break;case"yyyy":ut=Ze(ee.FullYear,4,0,!1,!0);break;case"Y":ut=Mt(1);break;case"YY":ut=Mt(2,!0);break;case"YYY":ut=Mt(3);break;case"YYYY":ut=Mt(4);break;case"M":case"L":ut=Ze(ee.Month,1,1);break;case"MM":case"LL":ut=Ze(ee.Month,2,1);break;case"MMM":ut=Qe(de.Months,f.Abbreviated);break;case"MMMM":ut=Qe(de.Months,f.Wide);break;case"MMMMM":ut=Qe(de.Months,f.Narrow);break;case"LLL":ut=Qe(de.Months,f.Abbreviated,O.Standalone);break;case"LLLL":ut=Qe(de.Months,f.Wide,O.Standalone);break;case"LLLLL":ut=Qe(de.Months,f.Narrow,O.Standalone);break;case"w":ut=ti(1);break;case"ww":ut=ti(2);break;case"W":ut=ti(1,!0);break;case"d":ut=Ze(ee.Date,1);break;case"dd":ut=Ze(ee.Date,2);break;case"c":case"cc":ut=Ze(ee.Day,1);break;case"ccc":ut=Qe(de.Days,f.Abbreviated,O.Standalone);break;case"cccc":ut=Qe(de.Days,f.Wide,O.Standalone);break;case"ccccc":ut=Qe(de.Days,f.Narrow,O.Standalone);break;case"cccccc":ut=Qe(de.Days,f.Short,O.Standalone);break;case"E":case"EE":case"EEE":ut=Qe(de.Days,f.Abbreviated);break;case"EEEE":ut=Qe(de.Days,f.Wide);break;case"EEEEE":ut=Qe(de.Days,f.Narrow);break;case"EEEEEE":ut=Qe(de.Days,f.Short);break;case"a":case"aa":case"aaa":ut=Qe(de.DayPeriods,f.Abbreviated);break;case"aaaa":ut=Qe(de.DayPeriods,f.Wide);break;case"aaaaa":ut=Qe(de.DayPeriods,f.Narrow);break;case"b":case"bb":case"bbb":ut=Qe(de.DayPeriods,f.Abbreviated,O.Standalone,!0);break;case"bbbb":ut=Qe(de.DayPeriods,f.Wide,O.Standalone,!0);break;case"bbbbb":ut=Qe(de.DayPeriods,f.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":ut=Qe(de.DayPeriods,f.Abbreviated,O.Format,!0);break;case"BBBB":ut=Qe(de.DayPeriods,f.Wide,O.Format,!0);break;case"BBBBB":ut=Qe(de.DayPeriods,f.Narrow,O.Format,!0);break;case"h":ut=Ze(ee.Hours,1,-12);break;case"hh":ut=Ze(ee.Hours,2,-12);break;case"H":ut=Ze(ee.Hours,1);break;case"HH":ut=Ze(ee.Hours,2);break;case"m":ut=Ze(ee.Minutes,1);break;case"mm":ut=Ze(ee.Minutes,2);break;case"s":ut=Ze(ee.Seconds,1);break;case"ss":ut=Ze(ee.Seconds,2);break;case"S":ut=Ze(ee.FractionalSeconds,1);break;case"SS":ut=Ze(ee.FractionalSeconds,2);break;case"SSS":ut=Ze(ee.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":ut=kt(oe.Short);break;case"ZZZZZ":ut=kt(oe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":ut=kt(oe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":ut=kt(oe.Long);break;default:return null}return At[Ge]=ut,ut}(as);es+=Sn?Sn(Et,Ke,Xn):"''"===as?"'":as.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),es}function Te(Ge,ut,Ke){const at=new Date(0);return at.setFullYear(Ge,ut,Ke),at.setHours(0,0,0),at}function _e(Ge,ut){const Ke=function o(Ge){return(0,M.H5H)(Ge)[M.KH2.LocaleId]}(Ge);if(Ae[Ke]??={},Ae[Ke][ut])return Ae[Ke][ut];let at="";switch(ut){case"shortDate":at=p(Ge,a.Short);break;case"mediumDate":at=p(Ge,a.Medium);break;case"longDate":at=p(Ge,a.Long);break;case"fullDate":at=p(Ge,a.Full);break;case"shortTime":at=S(Ge,a.Short);break;case"mediumTime":at=S(Ge,a.Medium);break;case"longTime":at=S(Ge,a.Long);break;case"fullTime":at=S(Ge,a.Full);break;case"short":const Et=_e(Ge,"shortTime"),qt=_e(Ge,"shortDate");at=Me(j(Ge,a.Short),[Et,qt]);break;case"medium":const ci=_e(Ge,"mediumTime"),Oi=_e(Ge,"mediumDate");at=Me(j(Ge,a.Medium),[ci,Oi]);break;case"long":const Xn=_e(Ge,"longTime"),es=_e(Ge,"longDate");at=Me(j(Ge,a.Long),[Xn,es]);break;case"full":const as=_e(Ge,"fullTime"),Sn=_e(Ge,"fullDate");at=Me(j(Ge,a.Full),[as,Sn])}return at&&(Ae[Ke][ut]=at),at}function Me(Ge,ut){return ut&&(Ge=Ge.replace(/\{([^}]+)}/g,function(Ke,at){return null!=ut&&at in ut?ut[at]:Ke})),Ge}function Ee(Ge,ut,Ke="-",at,Et){let qt="";(Ge<0||Et&&Ge<=0)&&(Et?Ge=1-Ge:(Ge=-Ge,qt=Ke));let ci=String(Ge);for(;ci.length0||Oi>-Ke)&&(Oi+=Ke),Ge===ee.Hours)0===Oi&&-12===Ke&&(Oi=12);else if(Ge===ee.FractionalSeconds)return function Xe(Ge,ut){return Ee(Ge,3).substring(0,ut)}(Oi,ut);const Xn=H(ci,g.MinusSign);return Ee(Oi,ut,Xn,at,Et)}}function Qe(Ge,ut,Ke=O.Format,at=!1){return function(Et,qt){return function st(Ge,ut,Ke,at,Et,qt){switch(Ke){case de.Months:return l(ut,Et,at)[Ge.getMonth()];case de.Days:return r(ut,Et,at)[Ge.getDay()];case de.DayPeriods:const ci=Ge.getHours(),Oi=Ge.getMinutes();if(qt){const es=function N(Ge){const ut=(0,M.H5H)(Ge);return x(ut),(ut[M.KH2.ExtraData][2]||[]).map(at=>"string"==typeof at?he(at):[he(at[0]),he(at[1])])}(ut),as=function R(Ge,ut,Ke){const at=(0,M.H5H)(Ge);x(at);const qt=q([at[M.KH2.ExtraData][0],at[M.KH2.ExtraData][1]],ut)||[];return q(qt,Ke)||[]}(ut,Et,at),Sn=es.findIndex(us=>{if(Array.isArray(us)){const[ss,Bs]=us,Rr=ci>=ss.hours&&Oi>=ss.minutes,Gn=ci0?Math.floor(Et/60):Math.ceil(Et/60);switch(Ge){case oe.Short:return(Et>=0?"+":"")+Ee(ci,2,qt)+Ee(Math.abs(Et%60),2,qt);case oe.ShortGMT:return"GMT"+(Et>=0?"+":"")+Ee(ci,1,qt);case oe.Long:return"GMT"+(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);case oe.Extended:return 0===at?"Z":(Et>=0?"+":"")+Ee(ci,2,qt)+":"+Ee(Math.abs(Et%60),2,qt);default:throw new Error(`Unknown zone width "${Ge}"`)}}}const pt=0,ht=4;function Gt(Ge){const ut=Ge.getDay(),Ke=0===ut?-3:ht-ut;return Te(Ge.getFullYear(),Ge.getMonth(),Ge.getDate()+Ke)}function ti(Ge,ut=!1){return function(Ke,at){let Et;if(ut){const qt=new Date(Ke.getFullYear(),Ke.getMonth(),1).getDay()-1,ci=Ke.getDate();Et=1+Math.floor((ci+qt)/7)}else{const qt=Gt(Ke),ci=function Lt(Ge){const ut=Te(Ge,pt,1).getDay();return Te(Ge,0,1+(ut<=ht?ht:ht+7)-ut)}(qt.getFullYear()),Oi=qt.getTime()-ci.getTime();Et=1+Math.round(Oi/6048e5)}return Ee(Et,Ge,H(at,g.MinusSign))}}function Mt(Ge,ut=!1){return function(Ke,at){return Ee(Gt(Ke).getFullYear(),Ge,H(at,g.MinusSign),ut)}}const At={};function wt(Ge,ut){Ge=Ge.replace(/:/g,"");const Ke=Date.parse("Jan 01, 1970 00:00:00 "+Ge)/6e4;return isNaN(Ke)?ut:Ke}function vi(Ge){return Ge instanceof Date&&!isNaN(Ge.valueOf())}function Nt(Ge,ut){ut=encodeURIComponent(ut);for(const Ke of Ge.split(";")){const at=Ke.indexOf("="),[Et,qt]=-1==at?[Ke,""]:[Ke.slice(0,at),Ke.slice(at+1)];if(Et.trim()===ut)return decodeURIComponent(qt)}return null}const bt=/\s+/,xt=[];let $e=(()=>{class Ge{constructor(Ke,at){this._ngEl=Ke,this._renderer=at,this.initialClasses=xt,this.stateMap=new Map}set klass(Ke){this.initialClasses=null!=Ke?Ke.trim().split(bt):xt}set ngClass(Ke){this.rawClass="string"==typeof Ke?Ke.trim().split(bt):Ke}ngDoCheck(){for(const at of this.initialClasses)this._updateState(at,!0);const Ke=this.rawClass;if(Array.isArray(Ke)||Ke instanceof Set)for(const at of Ke)this._updateState(at,!0);else if(null!=Ke)for(const at of Object.keys(Ke))this._updateState(at,!!Ke[at]);this._applyStateDiff()}_updateState(Ke,at){const Et=this.stateMap.get(Ke);void 0!==Et?(Et.enabled!==at&&(Et.changed=!0,Et.enabled=at),Et.touched=!0):this.stateMap.set(Ke,{enabled:at,changed:!0,touched:!0})}_applyStateDiff(){for(const Ke of this.stateMap){const at=Ke[0],Et=Ke[1];Et.changed?(this._toggleClass(at,Et.enabled),Et.changed=!1):Et.touched||(Et.enabled&&this._toggleClass(at,!1),this.stateMap.delete(at)),Et.touched=!1}}_toggleClass(Ke,at){(Ke=Ke.trim()).length>0&&Ke.split(bt).forEach(Et=>{at?this._renderer.addClass(this._ngEl.nativeElement,Et):this._renderer.removeClass(this._ngEl.nativeElement,Et)})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngClass",""]],inputs:{klass:[M.Mj6.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return Ge})();class $t{constructor(ut,Ke,at,Et){this.$implicit=ut,this.ngForOf=Ke,this.index=at,this.count=Et}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let si=(()=>{class Ge{set ngForOf(Ke){this._ngForOf=Ke,this._ngForOfDirty=!0}set ngForTrackBy(Ke){this._trackByFn=Ke}get ngForTrackBy(){return this._trackByFn}constructor(Ke,at,Et){this._viewContainer=Ke,this._template=at,this._differs=Et,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(Ke){Ke&&(this._template=Ke)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const Ke=this._ngForOf;!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create(this.ngForTrackBy))}if(this._differ){const Ke=this._differ.diff(this._ngForOf);Ke&&this._applyChanges(Ke)}}_applyChanges(Ke){const at=this._viewContainer;Ke.forEachOperation((Et,qt,ci)=>{if(null==Et.previousIndex)at.createEmbeddedView(this._template,new $t(Et.item,this._ngForOf,-1,-1),null===ci?void 0:ci);else if(null==ci)at.remove(null===qt?void 0:qt);else if(null!==qt){const Oi=at.get(qt);at.move(Oi,ci),Ti(Oi,Et)}});for(let Et=0,qt=at.length;Et{Ti(at.get(Et.currentIndex),Et)})}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(M._q3))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return Ge})();function Ti(Ge,ut){Ge.context.$implicit=ut.item}let Hi=(()=>{class Ge{constructor(Ke,at){this._viewContainer=Ke,this._context=new rs,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=at}set ngIf(Ke){this._context.$implicit=this._context.ngIf=Ke,this._updateView()}set ngIfThen(Ke){un("ngIfThen",Ke),this._thenTemplateRef=Ke,this._thenViewRef=null,this._updateView()}set ngIfElse(Ke){un("ngIfElse",Ke),this._elseTemplateRef=Ke,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(Ke,at){return!0}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return Ge})();class rs{constructor(){this.$implicit=null,this.ngIf=null}}function un(Ge,ut){if(ut&&!ut.createEmbeddedView)throw new Error(`${Ge} must be a TemplateRef, but received '${(0,M.Tbb)(ut)}'.`)}class cn{constructor(ut,Ke){this._viewContainerRef=ut,this._templateRef=Ke,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(ut){ut&&!this._created?this.create():!ut&&this._created&&this.destroy()}}let os=(()=>{class Ge{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(Ke){this._ngSwitch=Ke,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(Ke){this._defaultViews.push(Ke)}_matchCase(Ke){const at=Ke===this._ngSwitch;return this._lastCasesMatched||=at,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),at}_updateDefaultCases(Ke){if(this._defaultViews.length>0&&Ke!==this._defaultUsed){this._defaultUsed=Ke;for(const at of this._defaultViews)at.enforceState(Ke)}}static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return Ge})(),Js=(()=>{class Ge{constructor(Ke,at,Et){this.ngSwitch=Et,Et._addCase(),this._view=new cn(Ke,at)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return Ge})(),ns=(()=>{class Ge{constructor(Ke,at,Et){Et._addDefault(new cn(Ke,at))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b),M.rXU(M.C4Q),M.rXU(os,9))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return Ge})(),Ki=(()=>{class Ge{constructor(Ke,at,Et){this._ngEl=Ke,this._differs=at,this._renderer=Et,this._ngStyle=null,this._differ=null}set ngStyle(Ke){this._ngStyle=Ke,!this._differ&&Ke&&(this._differ=this._differs.find(Ke).create())}ngDoCheck(){if(this._differ){const Ke=this._differ.diff(this._ngStyle);Ke&&this._applyChanges(Ke)}}_setStyle(Ke,at){const[Et,qt]=Ke.split("."),ci=-1===Et.indexOf("-")?void 0:M.czy.DashCase;null!=at?this._renderer.setStyle(this._ngEl.nativeElement,Et,qt?`${at}${qt}`:at,ci):this._renderer.removeStyle(this._ngEl.nativeElement,Et,ci)}_applyChanges(Ke){Ke.forEachRemovedItem(at=>this._setStyle(at.key,null)),Ke.forEachAddedItem(at=>this._setStyle(at.key,at.currentValue)),Ke.forEachChangedItem(at=>this._setStyle(at.key,at.currentValue))}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.aKT),M.rXU(M.MKu),M.rXU(M.sFG))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return Ge})(),Tn=(()=>{class Ge{constructor(Ke){this._viewContainerRef=Ke,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(Ke){if(this._shouldRecreateView(Ke)){const at=this._viewContainerRef;if(this._viewRef&&at.remove(at.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const Et=this._createContextForwardProxy();this._viewRef=at.createEmbeddedView(this.ngTemplateOutlet,Et,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(Ke){return!!Ke.ngTemplateOutlet||!!Ke.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(Ke,at,Et)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,at,Et),get:(Ke,at,Et)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,at,Et)}})}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.c1b))};static#t=this.\u0275dir=M.FsC({type:Ge,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[M.OA$]})}return Ge})();function pr(Ge,ut){return new M.wOt(2100,!1)}class Oa{createSubscription(ut,Ke){return(0,M.O8t)(()=>ut.subscribe({next:Ke,error:at=>{throw at}}))}dispose(ut){(0,M.O8t)(()=>ut.unsubscribe())}}class Pa{createSubscription(ut,Ke){return ut.then(Ke,at=>{throw at})}dispose(ut){}}const La=new Pa,Jr=new Oa;let bn=(()=>{class Ge{constructor(Ke){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=Ke}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(Ke){if(!this._obj){if(Ke)try{this.markForCheckOnValueUpdate=!1,this._subscribe(Ke)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return Ke!==this._obj?(this._dispose(),this.transform(Ke)):this._latestValue}_subscribe(Ke){this._obj=Ke,this._strategy=this._selectStrategy(Ke),this._subscription=this._strategy.createSubscription(Ke,at=>this._updateLatestValue(Ke,at))}_selectStrategy(Ke){if((0,M.jNT)(Ke))return La;if((0,M.zjR)(Ke))return Jr;throw pr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(Ke,at){Ke===this._obj&&(this._latestValue=at,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.gRc,16))};static#t=this.\u0275pipe=M.EJ8({name:"async",type:Ge,pure:!1,standalone:!0})}return Ge})();const rl=new M.nKC(""),vr=new M.nKC("");let Hs=(()=>{class Ge{constructor(Ke,at,Et){this.locale=Ke,this.defaultTimezone=at,this.defaultOptions=Et}transform(Ke,at,Et,qt){if(null==Ke||""===Ke||Ke!=Ke)return null;try{return ye(Ke,at??this.defaultOptions?.dateFormat??"mediumDate",qt||this.locale,Et??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(ci){throw pr()}}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.xe9,16),M.rXU(rl,24),M.rXU(vr,24))};static#t=this.\u0275pipe=M.EJ8({name:"date",type:Ge,pure:!0,standalone:!0})}return Ge})(),xr=(()=>{class Ge{constructor(Ke){this.differs=Ke,this.keyValues=[],this.compareFn=pa}transform(Ke,at=pa){if(!Ke||!(Ke instanceof Map)&&"object"!=typeof Ke)return null;this.differ??=this.differs.find(Ke).create();const Et=this.differ.diff(Ke),qt=at!==this.compareFn;return Et&&(this.keyValues=[],Et.forEachItem(ci=>{this.keyValues.push(function go(Ge,ut){return{key:Ge,value:ut}}(ci.key,ci.currentValue))})),(Et||qt)&&(this.keyValues.sort(at),this.compareFn=at),this.keyValues}static#e=this.\u0275fac=function(at){return new(at||Ge)(M.rXU(M.MKu,16))};static#t=this.\u0275pipe=M.EJ8({name:"keyvalue",type:Ge,pure:!1,standalone:!0})}return Ge})();function pa(Ge,ut){const Ke=Ge.key,at=ut.key;if(Ke===at)return 0;if(void 0===Ke)return 1;if(void 0===at)return-1;if(null===Ke)return 1;if(null===at)return-1;if("string"==typeof Ke&&"string"==typeof at)return Ke{class Ge{static#e=this.\u0275fac=function(at){return new(at||Ge)};static#t=this.\u0275mod=M.$C({type:Ge});static#i=this.\u0275inj=M.G2t({})}return Ge})();const mo="browser",ma="server";function er(Ge){return Ge===mo}function ll(Ge){return Ge===ma}let sr=(()=>{class Ge{static#e=this.\u0275prov=(0,M.jDH)({token:Ge,providedIn:"root",factory:()=>er((0,M.WQX)(M.Agw))?new cs((0,M.WQX)(re),window):new Zo})}return Ge})();class cs{constructor(ut,Ke){this.document=ut,this.window=Ke,this.offset=()=>[0,0]}setOffset(ut){this.offset=Array.isArray(ut)?()=>ut:ut}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(ut){this.window.scrollTo(ut[0],ut[1])}scrollToAnchor(ut){const Ke=function Ar(Ge,ut){const Ke=Ge.getElementById(ut)||Ge.getElementsByName(ut)[0];if(Ke)return Ke;if("function"==typeof Ge.createTreeWalker&&Ge.body&&"function"==typeof Ge.body.attachShadow){const at=Ge.createTreeWalker(Ge.body,NodeFilter.SHOW_ELEMENT);let Et=at.currentNode;for(;Et;){const qt=Et.shadowRoot;if(qt){const ci=qt.getElementById(ut)||qt.querySelector(`[name="${ut}"]`);if(ci)return ci}Et=at.nextNode()}}return null}(this.document,ut);Ke&&(this.scrollToElement(Ke),Ke.focus())}setHistoryScrollRestoration(ut){this.window.history.scrollRestoration=ut}scrollToElement(ut){const Ke=ut.getBoundingClientRect(),at=Ke.left+this.window.pageXOffset,Et=Ke.top+this.window.pageYOffset,qt=this.offset();this.window.scrollTo(at-qt[0],Et-qt[1])}}class Zo{setOffset(ut){}getScrollPosition(){return[0,0]}scrollToPosition(ut){}scrollToAnchor(ut){}setHistoryScrollRestoration(ut){}}class ba{}},21626:(ri,Ft,He)=>{"use strict";He.d(Ft,{Lr:()=>$,Qq:()=>p,cS:()=>l,hR:()=>J,q1:()=>fs}),He(10467);var e=He(54438),V=He(7673),Pe=He(71985),Z=He(86648),ie=He(70274),re=He(5964),ve=He(96354),le=He(70980),fe=He(25558),pe=He(60177);class J{}class te{}class ${constructor(Rt){this.normalizedNames=new Map,this.lazyUpdate=null,Rt?"string"==typeof Rt?this.lazyInit=()=>{this.headers=new Map,Rt.split("\n").forEach(Nt=>{const bt=Nt.indexOf(":");if(bt>0){const xt=Nt.slice(0,bt),$e=xt.toLowerCase(),yt=Nt.slice(bt+1).trim();this.maybeSetNormalizedName(xt,$e),this.headers.has($e)?this.headers.get($e).push(yt):this.headers.set($e,[yt])}})}:typeof Headers<"u"&&Rt instanceof Headers?(this.headers=new Map,Rt.forEach((Nt,bt)=>{this.setHeaderEntries(bt,Nt)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(Rt).forEach(([Nt,bt])=>{this.setHeaderEntries(Nt,bt)})}:this.headers=new Map}has(Rt){return this.init(),this.headers.has(Rt.toLowerCase())}get(Rt){this.init();const Nt=this.headers.get(Rt.toLowerCase());return Nt&&Nt.length>0?Nt[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(Rt){return this.init(),this.headers.get(Rt.toLowerCase())||null}append(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"a"})}set(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({name:Rt,value:Nt,op:"d"})}maybeSetNormalizedName(Rt,Nt){this.normalizedNames.has(Nt)||this.normalizedNames.set(Nt,Rt)}init(){this.lazyInit&&(this.lazyInit instanceof $?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(Rt=>this.applyUpdate(Rt)),this.lazyUpdate=null))}copyFrom(Rt){Rt.init(),Array.from(Rt.headers.keys()).forEach(Nt=>{this.headers.set(Nt,Rt.headers.get(Nt)),this.normalizedNames.set(Nt,Rt.normalizedNames.get(Nt))})}clone(Rt){const Nt=new $;return Nt.lazyInit=this.lazyInit&&this.lazyInit instanceof $?this.lazyInit:this,Nt.lazyUpdate=(this.lazyUpdate||[]).concat([Rt]),Nt}applyUpdate(Rt){const Nt=Rt.name.toLowerCase();switch(Rt.op){case"a":case"s":let bt=Rt.value;if("string"==typeof bt&&(bt=[bt]),0===bt.length)return;this.maybeSetNormalizedName(Rt.name,Nt);const xt=("a"===Rt.op?this.headers.get(Nt):void 0)||[];xt.push(...bt),this.headers.set(Nt,xt);break;case"d":const $e=Rt.value;if($e){let yt=this.headers.get(Nt);if(!yt)return;yt=yt.filter(It=>-1===$e.indexOf(It)),0===yt.length?(this.headers.delete(Nt),this.normalizedNames.delete(Nt)):this.headers.set(Nt,yt)}else this.headers.delete(Nt),this.normalizedNames.delete(Nt)}}setHeaderEntries(Rt,Nt){const bt=(Array.isArray(Nt)?Nt:[Nt]).map($e=>$e.toString()),xt=Rt.toLowerCase();this.headers.set(xt,bt),this.maybeSetNormalizedName(Rt,xt)}forEach(Rt){this.init(),Array.from(this.normalizedNames.keys()).forEach(Nt=>Rt(this.normalizedNames.get(Nt),this.headers.get(Nt)))}}class B{encodeKey(Rt){return I(Rt)}encodeValue(Rt){return I(Rt)}decodeKey(Rt){return decodeURIComponent(Rt)}decodeValue(Rt){return decodeURIComponent(Rt)}}const L=/%(\d[a-f0-9])/gi,D={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function I(St){return encodeURIComponent(St).replace(L,(Rt,Nt)=>D[Nt]??Rt)}function E(St){return`${St}`}class _{constructor(Rt={}){if(this.updates=null,this.cloneFrom=null,this.encoder=Rt.encoder||new B,Rt.fromString){if(Rt.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function F(St,Rt){const Nt=new Map;return St.length>0&&St.replace(/^\?/,"").split("&").forEach(xt=>{const $e=xt.indexOf("="),[yt,It]=-1==$e?[Rt.decodeKey(xt),""]:[Rt.decodeKey(xt.slice(0,$e)),Rt.decodeValue(xt.slice($e+1))],$t=Nt.get(yt)||[];$t.push(It),Nt.set(yt,$t)}),Nt}(Rt.fromString,this.encoder)}else Rt.fromObject?(this.map=new Map,Object.keys(Rt.fromObject).forEach(Nt=>{const bt=Rt.fromObject[Nt],xt=Array.isArray(bt)?bt.map(E):[E(bt)];this.map.set(Nt,xt)})):this.map=null}has(Rt){return this.init(),this.map.has(Rt)}get(Rt){this.init();const Nt=this.map.get(Rt);return Nt?Nt[0]:null}getAll(Rt){return this.init(),this.map.get(Rt)||null}keys(){return this.init(),Array.from(this.map.keys())}append(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"a"})}appendAll(Rt){const Nt=[];return Object.keys(Rt).forEach(bt=>{const xt=Rt[bt];Array.isArray(xt)?xt.forEach($e=>{Nt.push({param:bt,value:$e,op:"a"})}):Nt.push({param:bt,value:xt,op:"a"})}),this.clone(Nt)}set(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"s"})}delete(Rt,Nt){return this.clone({param:Rt,value:Nt,op:"d"})}toString(){return this.init(),this.keys().map(Rt=>{const Nt=this.encoder.encodeKey(Rt);return this.map.get(Rt).map(bt=>Nt+"="+this.encoder.encodeValue(bt)).join("&")}).filter(Rt=>""!==Rt).join("&")}clone(Rt){const Nt=new _({encoder:this.encoder});return Nt.cloneFrom=this.cloneFrom||this,Nt.updates=(this.updates||[]).concat(Rt),Nt}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(Rt=>this.map.set(Rt,this.cloneFrom.map.get(Rt))),this.updates.forEach(Rt=>{switch(Rt.op){case"a":case"s":const Nt=("a"===Rt.op?this.map.get(Rt.param):void 0)||[];Nt.push(E(Rt.value)),this.map.set(Rt.param,Nt);break;case"d":if(void 0===Rt.value){this.map.delete(Rt.param);break}{let bt=this.map.get(Rt.param)||[];const xt=bt.indexOf(E(Rt.value));-1!==xt&&bt.splice(xt,1),bt.length>0?this.map.set(Rt.param,bt):this.map.delete(Rt.param)}}}),this.cloneFrom=this.updates=null)}}class T{constructor(){this.map=new Map}set(Rt,Nt){return this.map.set(Rt,Nt),this}get(Rt){return this.map.has(Rt)||this.map.set(Rt,Rt.defaultValue()),this.map.get(Rt)}delete(Rt){return this.map.delete(Rt),this}has(Rt){return this.map.has(Rt)}keys(){return this.map.keys()}}function O(St){return typeof ArrayBuffer<"u"&&St instanceof ArrayBuffer}function f(St){return typeof Blob<"u"&&St instanceof Blob}function a(St){return typeof FormData<"u"&&St instanceof FormData}class y{constructor(Rt,Nt,bt,xt){let $e;if(this.url=Nt,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=Rt.toUpperCase(),function z(St){switch(St){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||xt?(this.body=void 0!==bt?bt:null,$e=xt):$e=bt,$e&&(this.reportProgress=!!$e.reportProgress,this.withCredentials=!!$e.withCredentials,$e.responseType&&(this.responseType=$e.responseType),$e.headers&&(this.headers=$e.headers),$e.context&&(this.context=$e.context),$e.params&&(this.params=$e.params),this.transferCache=$e.transferCache),this.headers??=new $,this.context??=new T,this.params){const yt=this.params.toString();if(0===yt.length)this.urlWithParams=Nt;else{const It=Nt.indexOf("?");this.urlWithParams=Nt+(-1===It?"?":ItSi.set(Hi,Rt.setHeaders[Hi]),$t)),Rt.setParams&&(si=Object.keys(Rt.setParams).reduce((Si,Hi)=>Si.set(Hi,Rt.setParams[Hi]),si)),new y(Nt,bt,$e,{params:si,headers:$t,context:Ti,reportProgress:It,responseType:xt,withCredentials:yt})}}var o=function(St){return St[St.Sent=0]="Sent",St[St.UploadProgress=1]="UploadProgress",St[St.ResponseHeader=2]="ResponseHeader",St[St.DownloadProgress=3]="DownloadProgress",St[St.Response=4]="Response",St[St.User=5]="User",St}(o||{});class n{constructor(Rt,Nt=C.Ok,bt="OK"){this.headers=Rt.headers||new $,this.status=void 0!==Rt.status?Rt.status:Nt,this.statusText=Rt.statusText||bt,this.url=Rt.url||null,this.ok=this.status>=200&&this.status<300}}class r extends n{constructor(Rt={}){super(Rt),this.type=o.ResponseHeader}clone(Rt={}){return new r({headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class l extends n{constructor(Rt={}){super(Rt),this.type=o.Response,this.body=void 0!==Rt.body?Rt.body:null}clone(Rt={}){return new l({body:void 0!==Rt.body?Rt.body:this.body,headers:Rt.headers||this.headers,status:void 0!==Rt.status?Rt.status:this.status,statusText:Rt.statusText||this.statusText,url:Rt.url||this.url||void 0})}}class d extends n{constructor(Rt){super(Rt,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${Rt.url||"(unknown url)"}`:`Http failure response for ${Rt.url||"(unknown url)"}: ${Rt.status} ${Rt.statusText}`,this.error=Rt.error||null}}var C=function(St){return St[St.Continue=100]="Continue",St[St.SwitchingProtocols=101]="SwitchingProtocols",St[St.Processing=102]="Processing",St[St.EarlyHints=103]="EarlyHints",St[St.Ok=200]="Ok",St[St.Created=201]="Created",St[St.Accepted=202]="Accepted",St[St.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",St[St.NoContent=204]="NoContent",St[St.ResetContent=205]="ResetContent",St[St.PartialContent=206]="PartialContent",St[St.MultiStatus=207]="MultiStatus",St[St.AlreadyReported=208]="AlreadyReported",St[St.ImUsed=226]="ImUsed",St[St.MultipleChoices=300]="MultipleChoices",St[St.MovedPermanently=301]="MovedPermanently",St[St.Found=302]="Found",St[St.SeeOther=303]="SeeOther",St[St.NotModified=304]="NotModified",St[St.UseProxy=305]="UseProxy",St[St.Unused=306]="Unused",St[St.TemporaryRedirect=307]="TemporaryRedirect",St[St.PermanentRedirect=308]="PermanentRedirect",St[St.BadRequest=400]="BadRequest",St[St.Unauthorized=401]="Unauthorized",St[St.PaymentRequired=402]="PaymentRequired",St[St.Forbidden=403]="Forbidden",St[St.NotFound=404]="NotFound",St[St.MethodNotAllowed=405]="MethodNotAllowed",St[St.NotAcceptable=406]="NotAcceptable",St[St.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",St[St.RequestTimeout=408]="RequestTimeout",St[St.Conflict=409]="Conflict",St[St.Gone=410]="Gone",St[St.LengthRequired=411]="LengthRequired",St[St.PreconditionFailed=412]="PreconditionFailed",St[St.PayloadTooLarge=413]="PayloadTooLarge",St[St.UriTooLong=414]="UriTooLong",St[St.UnsupportedMediaType=415]="UnsupportedMediaType",St[St.RangeNotSatisfiable=416]="RangeNotSatisfiable",St[St.ExpectationFailed=417]="ExpectationFailed",St[St.ImATeapot=418]="ImATeapot",St[St.MisdirectedRequest=421]="MisdirectedRequest",St[St.UnprocessableEntity=422]="UnprocessableEntity",St[St.Locked=423]="Locked",St[St.FailedDependency=424]="FailedDependency",St[St.TooEarly=425]="TooEarly",St[St.UpgradeRequired=426]="UpgradeRequired",St[St.PreconditionRequired=428]="PreconditionRequired",St[St.TooManyRequests=429]="TooManyRequests",St[St.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",St[St.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",St[St.InternalServerError=500]="InternalServerError",St[St.NotImplemented=501]="NotImplemented",St[St.BadGateway=502]="BadGateway",St[St.ServiceUnavailable=503]="ServiceUnavailable",St[St.GatewayTimeout=504]="GatewayTimeout",St[St.HttpVersionNotSupported=505]="HttpVersionNotSupported",St[St.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",St[St.InsufficientStorage=507]="InsufficientStorage",St[St.LoopDetected=508]="LoopDetected",St[St.NotExtended=510]="NotExtended",St[St.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",St}(C||{});function k(St,Rt){return{body:Rt,headers:St.headers,context:St.context,observe:St.observe,params:St.params,reportProgress:St.reportProgress,responseType:St.responseType,withCredentials:St.withCredentials,transferCache:St.transferCache}}let p=(()=>{class St{constructor(Nt){this.handler=Nt}request(Nt,bt,xt={}){let $e;if(Nt instanceof y)$e=Nt;else{let $t,si;$t=xt.headers instanceof $?xt.headers:new $(xt.headers),xt.params&&(si=xt.params instanceof _?xt.params:new _({fromObject:xt.params})),$e=new y(Nt,bt,void 0!==xt.body?xt.body:null,{headers:$t,context:xt.context,params:si,reportProgress:xt.reportProgress,responseType:xt.responseType||"json",withCredentials:xt.withCredentials,transferCache:xt.transferCache})}const yt=(0,V.of)($e).pipe((0,ie.H)($t=>this.handler.handle($t)));if(Nt instanceof y||"events"===xt.observe)return yt;const It=yt.pipe((0,re.p)($t=>$t instanceof l));switch(xt.observe||"body"){case"body":switch($e.responseType){case"arraybuffer":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return $t.body}));case"blob":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&!($t.body instanceof Blob))throw new Error("Response is not a Blob.");return $t.body}));case"text":return It.pipe((0,ve.T)($t=>{if(null!==$t.body&&"string"!=typeof $t.body)throw new Error("Response is not a string.");return $t.body}));default:return It.pipe((0,ve.T)($t=>$t.body))}case"response":return It;default:throw new Error(`Unreachable: unhandled observe type ${xt.observe}}`)}}delete(Nt,bt={}){return this.request("DELETE",Nt,bt)}get(Nt,bt={}){return this.request("GET",Nt,bt)}head(Nt,bt={}){return this.request("HEAD",Nt,bt)}jsonp(Nt,bt){return this.request("JSONP",Nt,{params:(new _).append(bt,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Nt,bt={}){return this.request("OPTIONS",Nt,bt)}patch(Nt,bt,xt={}){return this.request("PATCH",Nt,k(xt,bt))}post(Nt,bt,xt={}){return this.request("POST",Nt,k(xt,bt))}put(Nt,bt,xt={}){return this.request("PUT",Nt,k(xt,bt))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(J))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function X(St,Rt){return Rt(St)}function G(St,Rt){return(Nt,bt)=>Rt.intercept(Nt,{handle:xt=>St(xt,bt)})}const N=new e.nKC(""),R=new e.nKC(""),K=new e.nKC(""),q=new e.nKC("");function he(){let St=null;return(Rt,Nt)=>{null===St&&(St=((0,e.WQX)(N,{optional:!0})??[]).reduceRight(G,X));const bt=(0,e.WQX)(e.TgB),xt=bt.add();return St(Rt,Nt).pipe((0,le.j)(()=>bt.remove(xt)))}}let Se=(()=>{class St extends J{constructor(Nt,bt){super(),this.backend=Nt,this.injector=bt,this.chain=null,this.pendingTasks=(0,e.WQX)(e.TgB);const xt=(0,e.WQX)(q,{optional:!0});this.backend=xt??Nt}handle(Nt){if(null===this.chain){const xt=Array.from(new Set([...this.injector.get(R),...this.injector.get(K,[])]));this.chain=xt.reduceRight(($e,yt)=>function x(St,Rt,Nt){return(bt,xt)=>(0,e.N4e)(Nt,()=>Rt(bt,$e=>St($e,xt)))}($e,yt,this.injector),X)}const bt=this.pendingTasks.add();return this.chain(Nt,xt=>this.backend.handle(xt)).pipe((0,le.j)(()=>this.pendingTasks.remove(bt)))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(te),e.KVO(e.uvJ))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Xe=/^\)\]\}',?\n/;let lt=(()=>{class St{constructor(Nt){this.xhrFactory=Nt}handle(Nt){if("JSONP"===Nt.method)throw new e.wOt(-2800,!1);const bt=this.xhrFactory;return(bt.\u0275loadImpl?(0,Z.H)(bt.\u0275loadImpl()):(0,V.of)(null)).pipe((0,fe.n)(()=>new Pe.c($e=>{const yt=bt.build();if(yt.open(Nt.method,Nt.urlWithParams),Nt.withCredentials&&(yt.withCredentials=!0),Nt.headers.forEach((Xi,cn)=>yt.setRequestHeader(Xi,cn.join(","))),Nt.headers.has("Accept")||yt.setRequestHeader("Accept","application/json, text/plain, */*"),!Nt.headers.has("Content-Type")){const Xi=Nt.detectContentTypeHeader();null!==Xi&&yt.setRequestHeader("Content-Type",Xi)}if(Nt.responseType){const Xi=Nt.responseType.toLowerCase();yt.responseType="json"!==Xi?Xi:"text"}const It=Nt.serializeBody();let $t=null;const si=()=>{if(null!==$t)return $t;const Xi=yt.statusText||"OK",cn=new $(yt.getAllResponseHeaders()),os=function Ze(St){return"responseURL"in St&&St.responseURL?St.responseURL:/^X-Request-URL:/m.test(St.getAllResponseHeaders())?St.getResponseHeader("X-Request-URL"):null}(yt)||Nt.url;return $t=new r({headers:cn,status:yt.status,statusText:Xi,url:os}),$t},Ti=()=>{let{headers:Xi,status:cn,statusText:os,url:Js}=si(),ns=null;cn!==C.NoContent&&(ns=typeof yt.response>"u"?yt.responseText:yt.response),0===cn&&(cn=ns?C.Ok:0);let Qr=cn>=200&&cn<300;if("json"===Nt.responseType&&"string"==typeof ns){const nr=ns;ns=ns.replace(Xe,"");try{ns=""!==ns?JSON.parse(ns):null}catch(Ls){ns=nr,Qr&&(Qr=!1,ns={error:Ls,text:ns})}}Qr?($e.next(new l({body:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0})),$e.complete()):$e.error(new d({error:ns,headers:Xi,status:cn,statusText:os,url:Js||void 0}))},Si=Xi=>{const{url:cn}=si(),os=new d({error:Xi,status:yt.status||0,statusText:yt.statusText||"Unknown Error",url:cn||void 0});$e.error(os)};let Hi=!1;const rs=Xi=>{Hi||($e.next(si()),Hi=!0);let cn={type:o.DownloadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),"text"===Nt.responseType&&yt.responseText&&(cn.partialText=yt.responseText),$e.next(cn)},un=Xi=>{let cn={type:o.UploadProgress,loaded:Xi.loaded};Xi.lengthComputable&&(cn.total=Xi.total),$e.next(cn)};return yt.addEventListener("load",Ti),yt.addEventListener("error",Si),yt.addEventListener("timeout",Si),yt.addEventListener("abort",Si),Nt.reportProgress&&(yt.addEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.addEventListener("progress",un)),yt.send(It),$e.next({type:o.Sent}),()=>{yt.removeEventListener("error",Si),yt.removeEventListener("abort",Si),yt.removeEventListener("load",Ti),yt.removeEventListener("timeout",Si),Nt.reportProgress&&(yt.removeEventListener("progress",rs),null!==It&&yt.upload&&yt.upload.removeEventListener("progress",un)),yt.readyState!==yt.DONE&&yt.abort()}})))}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.N0))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();const Qe=new e.nKC(""),kt=new e.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),ht=new e.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Lt{}let Gt=(()=>{class St{constructor(Nt,bt,xt){this.doc=Nt,this.platform=bt,this.cookieName=xt,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Nt=this.doc.cookie||"";return Nt!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,pe._b)(Nt,this.cookieName),this.lastCookieString=Nt),this.lastToken}static#e=this.\u0275fac=function(bt){return new(bt||St)(e.KVO(pe.qQ),e.KVO(e.Agw),e.KVO(kt))};static#t=this.\u0275prov=e.jDH({token:St,factory:St.\u0275fac})}return St})();function ti(St,Rt){const Nt=St.url.toLowerCase();if(!(0,e.WQX)(Qe)||"GET"===St.method||"HEAD"===St.method||Nt.startsWith("http://")||Nt.startsWith("https://"))return Rt(St);const bt=(0,e.WQX)(Lt).getToken(),xt=(0,e.WQX)(ht);return null!=bt&&!St.headers.has(xt)&&(St=St.clone({headers:St.headers.set(xt,bt)})),Rt(St)}var At=function(St){return St[St.Interceptors=0]="Interceptors",St[St.LegacyInterceptors=1]="LegacyInterceptors",St[St.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",St[St.NoXsrfProtection=3]="NoXsrfProtection",St[St.JsonpSupport=4]="JsonpSupport",St[St.RequestsMadeViaParent=5]="RequestsMadeViaParent",St[St.Fetch=6]="Fetch",St}(At||{});function wt(...St){const Rt=[p,lt,Se,{provide:J,useExisting:Se},{provide:te,useExisting:lt},{provide:R,useValue:ti,multi:!0},{provide:Qe,useValue:!0},{provide:Lt,useClass:Gt}];for(const Nt of St)Rt.push(...Nt.\u0275providers);return(0,e.EmA)(Rt)}const ui=new e.nKC("");function Fi(){return function _t(St,Rt){return{\u0275kind:St,\u0275providers:Rt}}(At.LegacyInterceptors,[{provide:ui,useFactory:he},{provide:R,useExisting:ui,multi:!0}])}let fs=(()=>{class St{static#e=this.\u0275fac=function(bt){return new(bt||St)};static#t=this.\u0275mod=e.$C({type:St});static#i=this.\u0275inj=e.G2t({providers:[wt(Fi())]})}return St})()},54438:(ri,Ft,He)=>{"use strict";function e(t,s){return Object.is(t,s)}He.d(Ft,{bc$:()=>fd,iLQ:()=>gw,sZ2:()=>rh,hnV:()=>Jk,Hbi:()=>uA,o8S:()=>qu,BIS:()=>Kl,gRc:()=>uM,Ql9:()=>BE,OM3:()=>lf,Ocv:()=>$E,abz:()=>yc,Z63:()=>Io,aKT:()=>hu,uvJ:()=>xo,zcH:()=>Za,bkB:()=>aa,$GK:()=>bn,nKC:()=>$e,zZn:()=>zo,_q3:()=>ww,MKu:()=>Tw,xe9:()=>Yy,Co$:()=>w1,Vns:()=>Dd,SKi:()=>kr,Xx1:()=>er,Agw:()=>jh,PLl:()=>fu,sFG:()=>R_,_9s:()=>Qm,czy:()=>yg,WPN:()=>dh,kdw:()=>Gr,C4Q:()=>Mu,NYb:()=>IE,giA:()=>qk,RxE:()=>Hk,c1b:()=>zg,gXe:()=>Oo,mal:()=>Fg,Af3:()=>Ge,tdH:()=>dv,L39:()=>zA,EWP:()=>UA,a0P:()=>ZA,Ol2:()=>_0,w6W:()=>T1,oH4:()=>lM,QZP:()=>HM,SmG:()=>qE,Rfq:()=>ti,WQX:()=>Qi,hFB:()=>Dp,QuC:()=>vo,EmA:()=>za,Udg:()=>GA,fpN:()=>dA,HJs:()=>qA,N4e:()=>Ha,vPA:()=>r1,O8t:()=>WA,An2:()=>Au,H3F:()=>Uk,H8p:()=>Ns,KH2:()=>Lf,TgB:()=>gf,wOt:()=>me,WHO:()=>Kk,e01:()=>Zk,lNU:()=>he,h9k:()=>lb,$MX:()=>cg,ZF7:()=>lh,Kcf:()=>lg,e5t:()=>rx,UyX:()=>nx,cWb:()=>ix,osQ:()=>sx,H5H:()=>z0,Zy3:()=>Ce,mq5:()=>fC,JZv:()=>Ze,LfX:()=>fo,plB:()=>Td,jNT:()=>pw,zjR:()=>Qk,TL$:()=>Ap,Tbb:()=>pt,rcV:()=>Al,nM4:()=>Gv,Vt3:()=>v0,Mj6:()=>Zi,GFd:()=>C1,OA$:()=>wl,Jv_:()=>ek,aNF:()=>tk,R7$:()=>Up,BMQ:()=>ay,HbH:()=>by,ZvI:()=>aC,AVh:()=>Qg,vxM:()=>Af,wni:()=>Qs,VBU:()=>Ac,FsC:()=>Lr,jDH:()=>$i,G2t:()=>kn,$C:()=>Fl,EJ8:()=>Ic,rXU:()=>Cu,nrm:()=>j0,eu8:()=>Ey,bVm:()=>nm,qex:()=>Pf,k0s:()=>im,j41:()=>Xu,RV6:()=>pC,xGo:()=>Jd,Mr5:()=>Iy,pXf:()=>ce,KVO:()=>Is,kS0:()=>th,QTQ:()=>yd,bIt:()=>gt,lsd:()=>ji,joV:()=>xp,qSk:()=>yp,XpG:()=>di,nI1:()=>Tk,bMT:()=>Sk,i5U:()=>kk,SdG:()=>ki,NAR:()=>gi,Y8G:()=>Hn,FS9:()=>Bi,Mz_:()=>Mi,lJ4:()=>hk,eq3:()=>dk,l_i:()=>uk,sMw:()=>pk,ziG:()=>fk,s1E:()=>gk,l4e:()=>mk,sGs:()=>bk,zJS:()=>vk,mGM:()=>Ei,sdS:()=>Yr,Dyx:()=>F0,Z7z:()=>N0,fX1:()=>If,Njj:()=>Hc,EBC:()=>Ix,tSv:()=>bg,eBV:()=>Ka,npT:()=>cb,f$h:()=>dg,B4B:()=>Pp,n$t:()=>To,Aen:()=>hr,xc7:()=>qg,zvX:()=>Oy,DNE:()=>bf,C5r:()=>Mk,EFF:()=>WS,JRh:()=>ZC,SpI:()=>Gy,Lme:()=>qC,E5c:()=>QC,LHq:()=>JC,DH7:()=>QS,mxI:()=>tw,R50:()=>ew,GBs:()=>yi}),He(10467);let V=null,Pe=!1,Z=1;const ie=Symbol("SIGNAL");function re(t){const s=V;return V=t,s}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(Pe)throw new Error("");if(null===V)return;V.consumerOnSignalRead(t);const s=V.nextProducerIndex++;z(V),st.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function I(t){z(t);for(let s=0;s0}function z(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function O(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const a=Symbol("UNSET"),g=Symbol("COMPUTING"),y=Symbol("ERRORED"),o={...pe,value:a,dirty:!0,error:null,equal:e,producerMustRecompute:t=>t.value===a||t.value===g,producerRecomputeValue(t){if(t.value===g)throw new Error("Detected cycle in computations.");const s=t.value;t.value=g;const h=L(t);let P;try{P=t.computation()}catch(Q){P=y,t.error=Q}finally{D(t,h)}s!==a&&s!==y&&P!==y&&t.equal(s,P)?t.value=s:(t.value=P,t.version++)}};let r=function n(){throw new Error};function l(){r()}let C=null;function j(t,s){B()||l(),t.equal(t.value,s)||(t.value=s,function U(t){t.version++,function te(){Z++}(),A(t),C?.()}(t))}const Y={...pe,equal:e,value:void 0};const w=()=>{},X={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:w};var x=He(21413),N=He(18359),R=He(84412),K=He(96354);const he="https://g.co/ng/security#xss";class me extends Error{constructor(s,h){super(Ce(s,h)),this.code=s}}function Ce(t,s){return`NG0${Math.abs(t)}${s?": "+s:""}`}const Se=Symbol("InputSignalNode#UNSET"),Oe={...Y,transformFn:void 0,applyValueToInputSignal(t,s){j(t,s)}};function oe(t,s){const h=Object.create(Oe);function P(){if(J(h),h.value===Se)throw new me(-950,!1);return h.value}return h.value=t,h.transformFn=s?.transform,P[ie]=h,P}function ee(t){return{toString:t}.toString()}const ye="__parameters__";function Ee(t,s,h){return ee(()=>{const P=function Me(t){return function(...h){if(t){const P=t(...h);for(const Q in P)this[Q]=P[Q]}}}(s);function Q(...ge){if(this instanceof Q)return P.apply(this,ge),this;const ke=new Q(...ge);return Le.annotation=ke,Le;function Le(ze,Je,dt){const Ct=ze.hasOwnProperty(ye)?ze[ye]:Object.defineProperty(ze,ye,{value:[]})[ye];for(;Ct.length<=dt;)Ct.push(null);return(Ct[dt]=Ct[dt]||[]).push(ke),ze}}return h&&(Q.prototype=Object.create(h.prototype)),Q.prototype.ngMetadataName=t,Q.annotationCls=Q,Q})}const Ze=globalThis;function st(t){for(let s in t)if(t[s]===st)return s;throw Error("Could not find renamed property on target object.")}function kt(t,s){for(const h in s)s.hasOwnProperty(h)&&!t.hasOwnProperty(h)&&(t[h]=s[h])}function pt(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(pt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const s=t.toString();if(null==s)return""+s;const h=s.indexOf("\n");return-1===h?s:s.substring(0,h)}function ht(t,s){return null==t||""===t?null===s?"":s:null==s||""===s?t:t+" "+s}const Gt=st({__forward_ref__:st});function ti(t){return t.__forward_ref__=ti,t.toString=function(){return pt(this())},t}function Mt(t){return At(t)?t():t}function At(t){return"function"==typeof t&&t.hasOwnProperty(Gt)&&t.__forward_ref__===ti}function Fi(t,s,h){t!=s&&function Di(t,s,h,P){throw new Error(`ASSERTION ERROR: ${t}`+(null==P?"":` [Expected=> ${h} ${P} ${s} <=Actual]`))}(h,t,s,"==")}function $i(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function kn(t){return{providers:t.providers||[],imports:t.imports||[]}}function jr(t){return qr(t,Rt)||qr(t,bt)}function fo(t){return null!==jr(t)}function qr(t,s){return t.hasOwnProperty(s)?t[s]:null}function St(t){return t&&(t.hasOwnProperty(Nt)||t.hasOwnProperty(xt))?t[Nt]:null}const Rt=st({\u0275prov:st}),Nt=st({\u0275inj:st}),bt=st({ngInjectableDef:st}),xt=st({ngInjectorDef:st});class $e{constructor(s,h){this._desc=s,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof h?this.__NG_ELEMENT_ID__=h:void 0!==h&&(this.\u0275prov=$i({token:this,providedIn:h.providedIn||"root",factory:h.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function cn(t){return t&&!!t.\u0275providers}const os=st({\u0275cmp:st}),Js=st({\u0275dir:st}),ns=st({\u0275pipe:st}),Qr=st({\u0275mod:st}),nr=st({\u0275fac:st}),Ls=st({__NG_ELEMENT_ID__:st}),Vr=st({__NG_ENV_ID__:st});function Ki(t){return"string"==typeof t?t:null==t?"":String(t)}function Jr(t,s){throw new me(-201,!1)}var bn=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(bn||{});let Ko;function nl(){return Ko}function Gs(t){const s=Ko;return Ko=t,s}function eo(t,s,h){const P=jr(t);return P&&"root"==P.providedIn?void 0===P.value?P.value=P.factory():P.value:h&bn.Optional?null:void 0!==s?s:void Jr()}const vr={},Hs="__NG_DI_FLAG__",yr="ngTempTokenPath",ua=/\n/gm,go="__source";let xr;function Dr(t){const s=xr;return xr=t,s}function fa(t,s=bn.Default){if(void 0===xr)throw new me(-203,!1);return null===xr?eo(t,void 0,s):xr.get(t,s&bn.Optional?null:void 0,s)}function Is(t,s=bn.Default){return(nl()||fa)(Mt(t),s)}function Qi(t,s=bn.Default){return Is(t,zr(s))}function zr(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Do(t){const s=[];for(let h=0;hArray.isArray(h)?Ar(h,s):s(h))}function Zo(t,s,h){s>=t.length?t.push(h):t.splice(s,0,h)}function ba(t,s){return s>=t.length-1?t.pop():t.splice(s,1)[0]}function Xs(t,s,h){let P=Hr(t,s);return P>=0?t[1|P]=h:(P=~P,function Ba(t,s,h,P){let Q=t.length;if(Q==s)t.push(h,P);else if(1===Q)t.push(P,t[0]),t[0]=h;else{for(Q--,t.push(t[Q-1],t[Q]);Q>s;)t[Q]=t[Q-2],Q--;t[s]=h,t[s+1]=P}}(t,P,s,h)),P}function to(t,s){const h=Hr(t,s);if(h>=0)return t[1|h]}function Hr(t,s){return function ec(t,s,h){let P=0,Q=t.length>>h;for(;Q!==P;){const ge=P+(Q-P>>1),ke=t[ge<s?Q=ge:P=ge+1}return~(Q<s){ke=ge-1;break}}}for(;ge-1){let ge;for(;++Qge?"":Q[dt+1].toLowerCase(),2&P&&Je!==Ct){if(Ks(P))return!1;ke=!0}}}}else{if(!ke&&!Ks(P)&&!Ks(ze))return!1;if(ke&&Ks(ze))continue;ke=!1,P=ze|1&P}}return Ks(P)||ke}function Ks(t){return!(1&t)}function Or(t,s,h,P){if(null===s)return-1;let Q=0;if(P||!h){let ge=!1;for(;Q-1)for(h++;h0?'="'+Le+'"':"")+"]"}else 8&P?Q+="."+ke:4&P&&(Q+=" "+ke);else""!==Q&&!Ks(ke)&&(s+=tc(ge,Q),Q=""),P=ke,ge=ge||!Ks(P);h++}return""!==Q&&(s+=tc(ge,Q)),s}function Ac(t){return ee(()=>{const s=dl(t),h={...s,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===hl.OnPush,directiveDefs:null,pipeDefs:null,dependencies:s.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Oo.Emulated,styles:t.styles||Mn,_:null,schemas:t.schemas||null,tView:null,id:""};ul(h);const P=t.dependencies;return h.directiveDefs=pl(P,!1),h.pipeDefs=pl(P,!0),h.id=function ic(t){let s=0;const h=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const Q of h)s=Math.imul(31,s)+Q.charCodeAt(0)|0;return s+=2147483648,"c"+s}(h),h})}function so(t){return hn(t)||Rs(t)}function Kh(t){return null!==t}function Fl(t){return ee(()=>({type:t.type,bootstrap:t.bootstrap||Mn,declarations:t.declarations||Mn,imports:t.imports||Mn,exports:t.exports||Mn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Va(t,s){if(null==t)return Ys;const h={};for(const P in t)if(t.hasOwnProperty(P)){const Q=t[P];let ge,ke,Le=Zi.None;Array.isArray(Q)?(Le=Q[0],ge=Q[1],ke=Q[2]??ge):(ge=Q,ke=Q),s?(h[ge]=Le!==Zi.None?[P,Le]:P,s[ge]=ke):h[ge]=P}return h}function Lr(t){return ee(()=>{const s=dl(t);return ul(s),s})}function Ic(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function hn(t){return t[os]||null}function Rs(t){return t[Js]||null}function Ss(t){return t[ns]||null}function vo(t){const s=hn(t)||Rs(t)||Ss(t);return null!==s&&s.standalone}function Zs(t,s){const h=t[Qr]||null;if(!h&&!0===s)throw new Error(`Type ${pt(t)} does not have '\u0275mod' property.`);return h}function dl(t){const s={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:s,inputTransforms:null,inputConfig:t.inputs||Ys,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Mn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Va(t.inputs,s),outputs:Va(t.outputs),debugInfo:null}}function ul(t){t.features?.forEach(s=>s(t))}function pl(t,s){if(!t)return null;const h=s?Ss:so;return()=>("function"==typeof t?t():t).map(P=>h(P)).filter(Kh)}function za(t){return{\u0275providers:t}}function Bl(...t){return{\u0275providers:fl(0,t),\u0275fromNgModule:!0}}function fl(t,...s){const h=[],P=new Set;let Q;const ge=ke=>{h.push(ke)};return Ar(s,ke=>{const Le=ke;nc(Le,ge,[],P)&&(Q||=[],Q.push(Le))}),void 0!==Q&&Pc(Q,ge),h}function Pc(t,s){for(let h=0;h{s(ge,P)})}}function nc(t,s,h,P){if(!(t=Mt(t)))return!1;let Q=null,ge=St(t);const ke=!ge&&hn(t);if(ge||ke){if(ke&&!ke.standalone)return!1;Q=t}else{const ze=t.ngModule;if(ge=St(ze),!ge)return!1;Q=ze}const Le=P.has(Q);if(ke){if(Le)return!1;if(P.add(Q),ke.dependencies){const ze="function"==typeof ke.dependencies?ke.dependencies():ke.dependencies;for(const Je of ze)nc(Je,s,h,P)}}else{if(!ge)return!1;{if(null!=ge.imports&&!Le){let Je;P.add(Q);try{Ar(ge.imports,dt=>{nc(dt,s,h,P)&&(Je||=[],Je.push(dt))})}finally{}void 0!==Je&&Pc(Je,s)}if(!Le){const Je=Er(Q)||(()=>new Q);s({provide:Q,useFactory:Je,deps:Mn},Q),s({provide:qo,useValue:Q,multi:!0},Q),s({provide:Io,useValue:()=>Is(Q),multi:!0},Q)}const ze=ge.providers;if(null!=ze&&!Le){const Je=t;Po(ze,dt=>{s(dt,Je)})}}}return Q!==t&&void 0!==t.providers}function Po(t,s){for(let h of t)cn(h)&&(h=h.\u0275providers),Array.isArray(h)?Po(h,s):s(h)}const Rc=st({provide:String,useValue:st});function jl(t){return null!==t&&"object"==typeof t&&Rc in t}function Lo(t){return"function"==typeof t}const Ns=new $e(""),Fs={},ea={};let gl;function yo(){return void 0===gl&&(gl=new bo),gl}class xo{}class _a extends xo{get destroyed(){return this._destroyed}constructor(s,h,P,Q){super(),this.parent=h,this.source=P,this.scopes=Q,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ia(s,ke=>this.processProvider(ke)),this.records.set(ya,_r(void 0,this)),Q.has("environment")&&this.records.set(xo,_r(void 0,this));const ge=this.records.get(Ns);null!=ge&&"string"==typeof ge.value&&this.scopes.add(ge.value),this.injectorDefTypes=new Set(this.get(qo,Mn,bn.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const s=re(null);try{for(const P of this._ngOnDestroyHooks)P.ngOnDestroy();const h=this._onDestroyHooks;this._onDestroyHooks=[];for(const P of h)P()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),re(s)}}onDestroy(s){return this.assertNotDestroyed(),this._onDestroyHooks.push(s),()=>this.removeOnDestroy(s)}runInContext(s){this.assertNotDestroyed();const h=Dr(this),P=Gs(void 0);try{return s()}finally{Dr(h),Gs(P)}}get(s,h=vr,P=bn.Default){if(this.assertNotDestroyed(),s.hasOwnProperty(Vr))return s[Vr](this);P=zr(P);const ge=Dr(this),ke=Gs(void 0);try{if(!(P&bn.SkipSelf)){let ze=this.records.get(s);if(void 0===ze){const Je=function Ur(t){return"function"==typeof t||"object"==typeof t&&t instanceof $e}(s)&&jr(s);ze=Je&&this.injectableDefInScope(Je)?_r(Ca(s),Fs):null,this.records.set(s,ze)}if(null!=ze)return this.hydrate(s,ze)}return(P&bn.Self?yo():this.parent).get(s,h=P&bn.Optional&&h===vr?null:h)}catch(Le){if("NullInjectorError"===Le.name){if((Le[yr]=Le[yr]||[]).unshift(pt(s)),ge)throw Le;return function ma(t,s,h,P){const Q=t[yr];throw s[go]&&Q.unshift(s[go]),t.message=function al(t,s,h,P=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let Q=pt(s);if(Array.isArray(s))Q=s.map(pt).join(" -> ");else if("object"==typeof s){let ge=[];for(let ke in s)if(s.hasOwnProperty(ke)){let Le=s[ke];ge.push(ke+":"+("string"==typeof Le?JSON.stringify(Le):pt(Le)))}Q=`{${ge.join(", ")}}`}return`${h}${P?"("+P+")":""}[${Q}]: ${t.replace(ua,"\n ")}`}("\n"+t.message,Q,h,P),t.ngTokenPath=Q,t[yr]=null,t}(Le,s,"R3InjectorError",this.source)}throw Le}finally{Gs(ke),Dr(ge)}}resolveInjectorInitializers(){const s=re(null),h=Dr(this),P=Gs(void 0);try{const ge=this.get(Io,Mn,bn.Self);for(const ke of ge)ke()}finally{Dr(h),Gs(P),re(s)}}toString(){const s=[],h=this.records;for(const P of h.keys())s.push(pt(P));return`R3Injector[${s.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new me(205,!1)}processProvider(s){let h=Lo(s=Mt(s))?s:Mt(s&&s.provide);const P=function Fc(t){return jl(t)?_r(void 0,t.useValue):_r(ml(t),Fs)}(s);if(!Lo(s)&&!0===s.multi){let Q=this.records.get(h);Q||(Q=_r(void 0,Fs,!0),Q.factory=()=>Do(Q.multi),this.records.set(h,Q)),h=s,Q.multi.push(s)}this.records.set(h,P)}hydrate(s,h){const P=re(null);try{return h.value===Fs&&(h.value=ea,h.value=h.factory()),"object"==typeof h.value&&h.value&&function ta(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(h.value)&&this._ngOnDestroyHooks.add(h.value),h.value}finally{re(P)}}injectableDefInScope(s){if(!s.providedIn)return!1;const h=Mt(s.providedIn);return"string"==typeof h?"any"===h||this.scopes.has(h):this.injectorDefTypes.has(h)}removeOnDestroy(s){const h=this._onDestroyHooks.indexOf(s);-1!==h&&this._onDestroyHooks.splice(h,1)}}function Ca(t){const s=jr(t),h=null!==s?s.factory:Er(t);if(null!==h)return h;if(t instanceof $e)throw new me(204,!1);if(t instanceof Function)return function Vl(t){if(t.length>0)throw new me(204,!1);const h=function ir(t){return t&&(t[Rt]||t[bt])||null}(t);return null!==h?()=>h.factory(t):()=>new t}(t);throw new me(204,!1)}function ml(t,s,h){let P;if(Lo(t)){const Q=Mt(t);return Er(Q)||Ca(Q)}if(jl(t))P=()=>Mt(t.useValue);else if(function Nc(t){return!(!t||!t.useFactory)}(t))P=()=>t.useFactory(...Do(t.deps||[]));else if(function tr(t){return!(!t||!t.useExisting)}(t))P=()=>Is(Mt(t.useExisting));else{const Q=Mt(t&&(t.useClass||t.provide));if(!function Ga(t){return!!t.deps}(t))return Er(Q)||Ca(Q);P=()=>new Q(...Do(t.deps))}return P}function _r(t,s,h=!1){return{factory:t,value:s,multi:h?[]:void 0}}function ia(t,s){for(const h of t)Array.isArray(h)?ia(h,s):h&&cn(h)?ia(h.\u0275providers,s):s(h)}function Ha(t,s){t instanceof _a&&t.assertNotDestroyed();const P=Dr(t),Q=Gs(void 0);try{return s()}finally{Dr(P),Gs(Q)}}function na(){return void 0!==nl()||null!=function pa(){return xr}()}function Ge(t){if(!na())throw new me(-203,!1)}const Gn=0,pi=1,zi=2,Yn=3,gs=4,ks=5,or=6,wa=7,ms=8,gr=9,_o=10,en=11,Ro=12,sc=13,bs=14,Kn=15,Ta=16,zl=17,Co=18,rc=19,Sa=20,No=21,bl=22,Ua=23,sn=25,oc=1,Fo=7,yl=9,js=10;var lc=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(lc||{});function mr(t){return Array.isArray(t)&&"object"==typeof t[oc]}function Vs(t){return Array.isArray(t)&&!0===t[oc]}function Gl(t){return!!(4&t.flags)}function sa(t){return t.componentOffset>-1}function xl(t){return!(1&~t.flags)}function Wr(t){return!!t.template}function Bc(t){return!!(512&t[zi])}class Hl{constructor(s,h,P){this.previousValue=s,this.currentValue=h,this.firstChange=P}isFirstChange(){return this.firstChange}}function Cl(t,s,h,P){null!==s?s.applyValueToInputSignal(s,P):t[h]=P}function wl(){return cc}function cc(t){return t.type.prototype.ngOnChanges&&(t.setInput=tp),Wa}function Wa(){const t=ip(this),s=t?.current;if(s){const h=t.previous;if(h===Ys)t.previous=s;else for(let P in s)h[P]=s[P];t.current=null,this.ngOnChanges(s)}}function tp(t,s,h,P,Q){const ge=this.declaredInputs[P],ke=ip(t)||function np(t,s){return t[ed]=s}(t,{previous:Ys,current:null}),Le=ke.current||(ke.current={}),ze=ke.previous,Je=ze[ge];Le[ge]=new Hl(Je&&Je.currentValue,h,ze===Ys),Cl(t,s,Q,h)}wl.ngInherit=!0;const ed="__ngSimpleChanges__";function ip(t){return t[ed]||null}const Bo=function(t,s,h){},yh="svg";let op=!1;function Ts(t){for(;Array.isArray(t);)t=t[Gn];return t}function jc(t,s){return Ts(s[t])}function $r(t,s){return Ts(s[t.index])}function xh(t,s){return t.data[s]}function Vc(t,s){return t[s]}function jo(t,s){const h=s[t];return mr(h)?h:h[Gn]}function td(t){return!(128&~t[zi])}function $a(t,s){return null==s?null:t[s]}function ap(t){t[zl]=0}function lp(t){1024&t[zi]||(t[zi]|=1024,td(t)&&Ch(t))}function Gc(t){return!!(9216&t[zi]||t[Ua]?.dirty)}function _h(t){t[_o].changeDetectionScheduler?.notify(1),Gc(t)?Ch(t):64&t[zi]&&(function Vf(){return op}()?(t[zi]|=1024,Ch(t)):t[_o].changeDetectionScheduler?.notify())}function Ch(t){t[_o].changeDetectionScheduler?.notify();let s=Xa(t);for(;null!==s&&!(8192&s[zi])&&(s[zi]|=8192,td(s));)s=Xa(s)}function ro(t,s){if(!(256&~t[zi]))throw new me(911,!1);null===t[No]&&(t[No]=[]),t[No].push(s)}function Xa(t){const s=t[Yn];return Vs(s)?s[Yn]:s}const on={lFrame:sd(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function hc(){return on.bindingsEnabled}function Ya(){return null!==on.skipHydrationRootTNode}function ni(){return on.lFrame.lView}function xn(){return on.lFrame.tView}function Ka(t){return on.lFrame.contextLView=t,t[ms]}function Hc(t){return on.lFrame.contextLView=null,t}function hs(){let t=Uc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Uc(){return on.lFrame.currentTNode}function ra(){const t=on.lFrame,s=t.currentTNode;return t.isParent?s:s.parent}function oa(t,s){const h=on.lFrame;h.currentTNode=t,h.isParent=s}function Bd(){return on.lFrame.isParent}function jd(){on.lFrame.isParent=!1}function oo(){const t=on.lFrame;let s=t.bindingRootIndex;return-1===s&&(s=t.bindingRootIndex=t.tView.bindingStartIndex),s}function Sl(){return on.lFrame.bindingIndex}function ka(){return on.lFrame.bindingIndex++}function kl(t){const s=on.lFrame,h=s.bindingIndex;return s.bindingIndex=s.bindingIndex+t,h}function mp(t){on.lFrame.inI18n=t}function bp(t,s){const h=on.lFrame;h.bindingIndex=h.bindingRootIndex=t,Sh(s)}function Sh(t){on.lFrame.currentDirectiveIndex=t}function kh(t){const s=on.lFrame.currentDirectiveIndex;return-1===s?null:t[s]}function nd(){return on.lFrame.currentQueryIndex}function Wc(t){on.lFrame.currentQueryIndex=t}function Xf(t){const s=t[pi];return 2===s.type?s.declTNode:1===s.type?t[ks]:null}function Mh(t,s,h){if(h&bn.SkipSelf){let Q=s,ge=t;for(;!(Q=Q.parent,null!==Q||h&bn.Host||(Q=Xf(ge),null===Q||(ge=ge[bs],10&Q.type))););if(null===Q)return!1;s=Q,t=ge}const P=on.lFrame=vp();return P.currentTNode=s,P.lView=t,!0}function Vd(t){const s=vp(),h=t[pi];on.lFrame=s,s.currentTNode=h.firstChild,s.lView=t,s.tView=h,s.contextLView=t,s.bindingIndex=h.bindingStartIndex,s.inI18n=!1}function vp(){const t=on.lFrame,s=null===t?null:t.child;return null===s?sd(t):s}function sd(t){const s={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=s),s}function zd(){const t=on.lFrame;return on.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Gd=zd;function rd(){const t=zd();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Xr(){return on.lFrame.selectedIndex}function uc(t){on.lFrame.selectedIndex=t}function Os(){const t=on.lFrame;return xh(t.tView,t.selectedIndex)}function yp(){on.lFrame.currentNamespace=yh}function xp(){!function Hd(){on.lFrame.currentNamespace=null}()}let $c=!0;function Xc(){return $c}function Vo(t){$c=t}function Yc(t,s){for(let h=s.directiveStart,P=s.directiveEnd;h=P)break}else s[ze]<0&&(t[zl]+=65536),(Le>14>16&&(3&t[zi])===s&&(t[zi]+=16384,Ml(Le,ge)):Ml(Le,ge)}const pc=-1;class Kc{constructor(s,h,P){this.factory=s,this.resolving=!1,this.canSeeViewProviders=h,this.injectImpl=P}}function qc(t){return t!==pc}function br(t){return 32767&t}function fc(t,s){let h=function Xd(t){return t>>16}(t),P=s;for(;h>0;)P=P[bs],h--;return P}let Wl=!0;function Cr(t){const s=Wl;return Wl=t,s}const Qc=255,Dl=5;let Oh=0;const Ma={};function Jc(t,s){const h=gc(t,s);if(-1!==h)return h;const P=s[pi];P.firstCreatePass&&(t.injectorIndex=s.length,Kd(P.data,t),Kd(s,null),Kd(P.blueprint,null));const Q=Zd(t,s),ge=t.injectorIndex;if(qc(Q)){const ke=br(Q),Le=fc(Q,s),ze=Le[pi].data;for(let Je=0;Je<8;Je++)s[ge+Je]=Le[ke+Je]|ze[ke+Je]}return s[ge+8]=Q,ge}function Kd(t,s){t.push(0,0,0,0,0,0,0,0,s)}function gc(t,s){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===s[t.injectorIndex+8]?-1:t.injectorIndex}function Zd(t,s){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let h=0,P=null,Q=s;for(;null!==Q;){if(P=cd(Q),null===P)return pc;if(h++,Q=Q[bs],-1!==P.injectorIndex)return P.injectorIndex|h<<16}return pc}function Ph(t,s,h){!function Yd(t,s,h){let P;"string"==typeof h?P=h.charCodeAt(0)||0:h.hasOwnProperty(Ls)&&(P=h[Ls]),null==P&&(P=h[Ls]=Oh++);const Q=P&Qc;s.data[t+(Q>>Dl)]|=1<=0?s&Qc:wp:s}(h);if("function"==typeof ge){if(!Mh(s,t,P))return P&bn.Host?Qd(Q,0,P):eh(s,h,P,Q);try{let ke;if(ke=ge(P),null!=ke||P&bn.Optional)return ke;Jr()}finally{Gd()}}else if("number"==typeof ge){let ke=null,Le=gc(t,s),ze=pc,Je=P&bn.Host?s[Kn][ks]:null;for((-1===Le||P&bn.SkipSelf)&&(ze=-1===Le?Zd(t,s):s[Le+8],ze!==pc&&Cp(P,!1)?(ke=s[pi],Le=br(ze),s=fc(ze,s)):Le=-1);-1!==Le;){const dt=s[pi];if(Da(ge,Le,dt.data)){const Ct=mc(Le,s,h,ke,P,Je);if(Ct!==Ma)return Ct}ze=s[Le+8],ze!==pc&&Cp(P,s[pi].data[Le+8]===Je)&&Da(ge,Le,s)?(ke=dt,Le=br(ze),s=fc(ze,s)):Le=-1}}return Q}function mc(t,s,h,P,Q,ge){const ke=s[pi],Le=ke.data[t+8],dt=El(Le,ke,h,null==P?sa(Le)&&Wl:P!=ke&&!!(3&Le.type),Q&bn.Host&&ge===Le);return null!==dt?wo(s,ke,dt,Le):Ma}function El(t,s,h,P,Q){const ge=t.providerIndexes,ke=s.data,Le=1048575&ge,ze=t.directiveStart,dt=ge>>20,jt=Q?Le+dt:t.directiveEnd;for(let Ht=P?Le:Le+dt;Ht=ze&&Kt.type===h)return Ht}if(Q){const Ht=ke[ze];if(Ht&&Wr(Ht)&&Ht.type===h)return ze}return null}function wo(t,s,h,P){let Q=t[h];const ge=s.data;if(function Ah(t){return t instanceof Kc}(Q)){const ke=Q;ke.resolving&&function Oa(t,s){throw s&&s.join(" > "),new me(-200,t)}(function Tn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():Ki(t)}(ge[h]));const Le=Cr(ke.canSeeViewProviders);ke.resolving=!0;const Je=ke.injectImpl?Gs(ke.injectImpl):null;Mh(t,P,bn.Default);try{Q=t[h]=ke.factory(void 0,ge,t,P),s.firstCreatePass&&h>=P.directiveStart&&function Dh(t,s,h){const{ngOnChanges:P,ngOnInit:Q,ngDoCheck:ge}=s.type.prototype;if(P){const ke=cc(s);(h.preOrderHooks??=[]).push(t,ke),(h.preOrderCheckHooks??=[]).push(t,ke)}Q&&(h.preOrderHooks??=[]).push(0-t,Q),ge&&((h.preOrderHooks??=[]).push(t,ge),(h.preOrderCheckHooks??=[]).push(t,ge))}(h,ge[h],s)}finally{null!==Je&&Gs(Je),Cr(Le),ke.resolving=!1,Gd()}}return Q}function Da(t,s,h){return!!(h[s+(t>>Dl)]&1<{const s=t.prototype.constructor,h=s[nr]||ld(s),P=Object.prototype;let Q=Object.getPrototypeOf(t.prototype).constructor;for(;Q&&Q!==P;){const ge=Q[nr]||ld(Q);if(ge&&ge!==h)return ge;Q=Object.getPrototypeOf(Q)}return ge=>new ge})}function ld(t){return At(t)?()=>{const s=ld(Mt(t));return s&&s()}:Er(t)}function cd(t){const s=t[pi],h=s.type;return 2===h?s.declTNode:1===h?t[ks]:null}function th(t){return function qd(t,s){if("class"===s)return t.classes;if("style"===s)return t.styles;const h=t.attrs;if(h){const P=h.length;let Q=0;for(;Q{class t{static#e=this.THROW_IF_NOT_FOUND=vr;static#t=this.NULL=new bo;static create(h,P){if(Array.isArray(h))return Tp({name:""},P,h,"");{const Q=h.name??"";return Tp({name:Q},h.parent,h.providers,Q)}}static#i=this.\u0275prov=$i({token:t,providedIn:"any",factory:()=>Is(ya)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function dd(t){return t.ngOriginalError}class Za{constructor(){this._console=console}handleError(s){const h=this._findOriginalError(s);this._console.error("ERROR",s),h&&this._console.error("ORIGINAL ERROR",h)}_findOriginalError(s){let h=s&&dd(s);for(;h&&dd(h);)h=dd(h);return h||null}}const ou=new $e("",{providedIn:"root",factory:()=>Qi(Za).handleError.bind(void 0)});let yc=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=tg;static#t=this.__NG_ENV_ID__=h=>h}return t})();class au extends yc{constructor(s){super(),this._lView=s}onDestroy(s){return ro(this._lView,s),()=>function Ms(t,s){if(null===t[No])return;const h=t[No].indexOf(s);-1!==h&&t[No].splice(h,1)}(this._lView,s)}}function tg(){return new au(ni())}function lu(t,s){return oe(t,s)}const Dp=(lu.required=function cu(t){return oe(Se,t)},lu);function bm(){return xc(hs(),ni())}function xc(t,s){return new hu($r(t,s))}let hu=(()=>{class t{constructor(h){this.nativeElement=h}static#e=this.__NG_ELEMENT_ID__=bm}return t})();function du(t){return t instanceof hu?t.nativeElement:t}function Go(t){return s=>{setTimeout(t,void 0,s)}}const aa=class ng extends x.B{constructor(s=!1){super(),this.destroyRef=void 0,this.__isAsync=s,na()&&(this.destroyRef=Qi(yc,{optional:!0})??void 0)}emit(s){const h=re(null);try{super.next(s)}finally{re(h)}}subscribe(s,h,P){let Q=s,ge=h||(()=>null),ke=P;if(s&&"object"==typeof s){const ze=s;Q=ze.next?.bind(ze),ge=ze.error?.bind(ze),ke=ze.complete?.bind(ze)}this.__isAsync&&(ge=Go(ge),Q&&(Q=Go(Q)),ke&&(ke=Go(ke)));const Le=super.subscribe({next:Q,error:ge,complete:ke});return s instanceof N.yU&&s.add(Le),Le}};function uu(){return this._results[Symbol.iterator]()}class Nh{static#e=Symbol.iterator;get changes(){return this._changes??=new aa}constructor(s=!1){this._emitDistinctChangesOnly=s,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const h=Nh.prototype;h[Symbol.iterator]||(h[Symbol.iterator]=uu)}get(s){return this._results[s]}map(s){return this._results.map(s)}filter(s){return this._results.filter(s)}find(s){return this._results.find(s)}reduce(s,h){return this._results.reduce(s,h)}forEach(s){this._results.forEach(s)}some(s){return this._results.some(s)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(s,h){this.dirty=!1;const P=function cs(t){return t.flat(Number.POSITIVE_INFINITY)}(s);(this._changesDetected=!function sr(t,s,h){if(t.length!==s.length)return!1;for(let P=0;Poh}),oh="ng",fu=new $e(""),jh=new $e("",{providedIn:"platform",factory:()=>"unknown"}),fd=new $e(""),Kl=new $e("",{providedIn:"root",factory:()=>Ho().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let vs=()=>null;function An(t,s,h=!1){return vs(t,s,h)}const qi=new $e("",{providedIn:"root",factory:()=>!1});let tn,cr;function nn(t){return function Cn(){if(void 0===tn&&(tn=null,Ze.trustedTypes))try{tn=Ze.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return tn}()?.createHTML(t)||t}function co(){if(void 0===cr&&(cr=null,Ze.trustedTypes))try{cr=Ze.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return cr}function Uo(t){return co()?.createHTML(t)||t}function Aa(t){return co()?.createScriptURL(t)||t}class Sr{constructor(s){this.changingThisBreaksApplicationSecurity=s}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${he})`}}class la extends Sr{getTypeName(){return"HTML"}}class gu extends Sr{getTypeName(){return"Style"}}class rg extends Sr{getTypeName(){return"Script"}}class og extends Sr{getTypeName(){return"URL"}}class Ip extends Sr{getTypeName(){return"ResourceURL"}}function Al(t){return t instanceof Sr?t.changingThisBreaksApplicationSecurity:t}function lh(t,s){const h=function ag(t){return t instanceof Sr&&t.getTypeName()||null}(t);if(null!=h&&h!==s){if("ResourceURL"===h&&"URL"===s)return!0;throw new Error(`Required a safe ${s}, got a ${h} (see ${he})`)}return h===s}function lg(t){return new la(t)}function ix(t){return new gu(t)}function nx(t){return new rg(t)}function sx(t){return new og(t)}function rx(t){return new Ip(t)}function ib(t){const s=new ax(t);return function lx(){try{return!!(new window.DOMParser).parseFromString(nn(""),"text/html")}catch{return!1}}()?new ox(s):s}class ox{constructor(s){this.inertDocumentHelper=s}getInertBodyElement(s){s=""+s;try{const h=(new window.DOMParser).parseFromString(nn(s),"text/html").body;return null===h?this.inertDocumentHelper.getInertBodyElement(s):(h.removeChild(h.firstChild),h)}catch{return null}}}class ax{constructor(s){this.defaultDoc=s,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(s){const h=this.inertDocument.createElement("template");return h.innerHTML=nn(s),h}}const cx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function cg(t){return(t=String(t)).match(cx)?t:"unsafe:"+t}function Cc(t){const s={};for(const h of t.split(","))s[h]=!0;return s}function Op(...t){const s={};for(const h of t)for(const P in h)h.hasOwnProperty(P)&&(s[P]=!0);return s}const nb=Cc("area,br,col,hr,img,wbr"),sb=Cc("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rb=Cc("rp,rt"),vm=Op(nb,Op(sb,Cc("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Op(rb,Cc("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Op(rb,sb)),ym=Cc("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),ob=Op(ym,Cc("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Cc("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),hx=Cc("script,style,template");class dx{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(s){let h=s.firstChild,P=!0,Q=[];for(;h;)if(h.nodeType===Node.ELEMENT_NODE?P=this.startElement(h):h.nodeType===Node.TEXT_NODE?this.chars(h.nodeValue):this.sanitizedSomething=!0,P&&h.firstChild)Q.push(h),h=ch(h);else for(;h;){h.nodeType===Node.ELEMENT_NODE&&this.endElement(h);let ge=px(h);if(ge){h=ge;break}h=Q.pop()}return this.buf.join("")}startElement(s){const h=ab(s).toLowerCase();if(!vm.hasOwnProperty(h))return this.sanitizedSomething=!0,!hx.hasOwnProperty(h);this.buf.push("<"),this.buf.push(h);const P=s.attributes;for(let Q=0;Q"),!0}endElement(s){const h=ab(s).toLowerCase();vm.hasOwnProperty(h)&&!nb.hasOwnProperty(h)&&(this.buf.push(""))}chars(s){this.buf.push(fx(s))}}function px(t){const s=t.nextSibling;if(s&&t!==s.previousSibling)throw xm(s);return s}function ch(t){const s=t.firstChild;if(s&&function ux(t,s){return(t.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,s))throw xm(s);return s}function ab(t){const s=t.nodeName;return"string"==typeof s?s:"FORM"}function xm(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const hh=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ow=/([^\#-~ |!])/g;function fx(t){return t.replace(/&/g,"&").replace(hh,function(s){return"&#"+(1024*(s.charCodeAt(0)-55296)+(s.charCodeAt(1)-56320)+65536)+";"}).replace(Ow,function(s){return"&#"+s.charCodeAt(0)+";"}).replace(//g,">")}let hg;function lb(t,s){let h=null;try{hg=hg||ib(t);let P=s?String(s):"";h=hg.getInertBodyElement(P);let Q=5,ge=P;do{if(0===Q)throw new Error("Failed to sanitize html because the input is unstable");Q--,P=ge,ge=h.innerHTML,h=hg.getInertBodyElement(P)}while(P!==ge);return nn((new dx).sanitizeChildren(_m(h)||h))}finally{if(h){const P=_m(h)||h;for(;P.firstChild;)P.removeChild(P.firstChild)}}}function _m(t){return"content"in t&&function gx(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var dh=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(dh||{});function cb(t){const s=gd();return s?Uo(s.sanitize(dh.HTML,t)||""):lh(t,"HTML")?Uo(Al(t)):lb(Ho(),Ki(t))}function Pp(t){const s=gd();return s?s.sanitize(dh.URL,t)||"":lh(t,"URL")?Al(t):cg(Ki(t))}function dg(t){const s=gd();if(s)return Aa(s.sanitize(dh.RESOURCE_URL,t)||"");if(lh(t,"ResourceURL"))return Aa(Al(t));throw new me(904,!1)}function To(t,s,h){return function hb(t,s){return"src"===s&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===s&&("base"===t||"link"===t)?dg:Pp}(s,h)(t)}function gd(){const t=ni();return t&&t[_o].sanitizer}const ug=/^>|^->||--!>|)/g,vx="\u200b$1\u200b";const md=new Map;let _x=0;const Lp="__ngContext__";function Nr(t,s){mr(s)?(t[Lp]=s[rc],function wx(t){md.set(t[rc],t)}(s)):t[Lp]=s}function bg(t){return t.ownerDocument.defaultView}function Ix(t){return t.ownerDocument}function ha(t){return t instanceof Function?t():t}var yg=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(yg||{});let Dm;function Em(t,s){return Dm(t,s)}function jp(t,s,h,P,Q){if(null!=P){let ge,ke=!1;Vs(P)?ge=P:mr(P)&&(ke=!0,P=P[Gn]);const Le=Ts(P);0===t&&null!==h?null==Q?Bx(s,h,Le):_u(s,h,Le,Q||null,!0):1===t&&null!==h?_u(s,h,Le,Q||null,!0):2===t?function vd(t,s,h){const P=zp(t,s);P&&function Om(t,s,h,P){t.removeChild(s,h,P)}(t,P,s,h)}(s,Le,ke):3===t&&s.destroyNode(Le),null!=ge&&function Hp(t,s,h,P,Q){const ge=h[Fo];ge!==Ts(h)&&jp(s,t,P,ge,Q);for(let Le=js;Les.replace(pg,vx))}(s))}function Am(t,s,h){return t.createElement(s,h)}function zh(t,s){s[_o].changeDetectionScheduler?.notify(1),Nm(t,s,s[en],2,null,null)}function Sb(t,s){const h=t[yl],P=h.indexOf(s);h.splice(P,1)}function Vp(t,s){if(t.length<=js)return;const h=js+s,P=t[h];if(P){const Q=P[Ta];null!==Q&&Q!==t&&Sb(Q,P),s>0&&(t[h-1][gs]=P[gs]);const ge=ba(t,js+s);!function Rw(t,s){zh(t,s),s[Gn]=null,s[ks]=null}(P[pi],P);const ke=ge[Co];null!==ke&&ke.detachView(ge[pi]),P[Yn]=null,P[gs]=null,P[zi]&=-129}return P}function xg(t,s){if(!(256&s[zi])){const h=s[en];h.destroyNode&&Nm(t,s,h,3,null,null),function Tb(t){let s=t[Ro];if(!s)return Im(t[pi],t);for(;s;){let h=null;if(mr(s))h=s[Ro];else{const P=s[js];P&&(h=P)}if(!h){for(;s&&!s[gs]&&s!==t;)mr(s)&&Im(s[pi],s),s=s[Yn];null===s&&(s=t),mr(s)&&Im(s[pi],s),h=s&&s[gs]}s=h}}(s)}}function Im(t,s){if(256&s[zi])return;const h=re(null);try{s[zi]&=-129,s[zi]|=256,s[Ua]&&E(s[Ua]),function Bw(t,s){let h;if(null!=t&&null!=(h=t.destroyHooks))for(let P=0;P=0?P[ke]():P[-ke].unsubscribe(),ge+=2}else h[ge].call(P[h[ge+1]]);null!==P&&(s[wa]=null);const Q=s[No];if(null!==Q){s[No]=null;for(let ge=0;ge-1){const{encapsulation:ge}=t.data[P.directiveStart+Q];if(ge===Oo.None||ge===Oo.Emulated)return null}return $r(P,h)}}function _u(t,s,h,P,Q){t.insertBefore(s,h,P,Q)}function Bx(t,s,h){t.appendChild(s,h)}function jx(t,s,h,P,Q){null!==P?_u(t,s,h,P,Q):Bx(t,s,h)}function zp(t,s){return t.parentNode(s)}function Gp(t,s,h){return _g(t,s,h)}function Vx(t,s,h){return 40&t.type?$r(t,h):null}let Mb,_g=Vx;function Pm(t,s){_g=t,Mb=s}function Lm(t,s,h,P){const Q=kb(t,P,s),ge=s[en],Le=Gp(P.parent||s[ks],P,s);if(null!=Q)if(Array.isArray(h))for(let ze=0;zesn&&Ab(t,s,sn,!1),Bo(ke?2:0,Q),h(P,Q)}finally{uc(ge),Bo(ke?3:1,Q)}}function Pb(t,s,h){if(Gl(s)){const P=re(null);try{const ge=s.directiveEnd;for(let ke=s.directiveStart;kenull;function Yx(t,s,h,P,Q){for(let ge in s){if(!s.hasOwnProperty(ge))continue;const ke=s[ge];if(void 0===ke)continue;P??={};let Le,ze=Zi.None;Array.isArray(ke)?(Le=ke[0],ze=ke[1]):Le=ke;let Je=ge;if(null!==Q){if(!Q.hasOwnProperty(ge))continue;Je=Q[ge]}0===t?Kx(P,h,Je,Le,ze):Kx(P,h,Je,Le)}return P}function Kx(t,s,h,P,Q){let ge;t.hasOwnProperty(h)?(ge=t[h]).push(s,P):ge=t[h]=[s,P],void 0!==Q&&ge.push(Q)}function Qa(t,s,h,P,Q,ge,ke,Le){const ze=$r(s,h);let dt,Je=s.inputs;!Le&&null!=Je&&(dt=Je[P])?(Wm(t,h,dt,P,Q),sa(s)&&function Hw(t,s){const h=jo(s,t);16&h[zi]||(h[zi]|=64)}(h,s.index)):3&s.type&&(P=function Gw(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(P),Q=null!=ke?ke(Q,s.value||"",P):Q,ge.setProperty(ze,P,Q))}function Mg(t,s,h,P){if(hc()){const Q=null===P?null:{"":-1},ge=function $w(t,s){const h=t.directiveRegistry;let P=null,Q=null;if(h)for(let ge=0;ge0;){const h=t[--s];if("number"==typeof h&&h<0)return h}return 0})(ke)!=Le&&ke.push(Le),ke.push(h,P,ge)}}(t,s,P,Tg(t,h,Q.hostVars,In),Q)}function Tc(t,s,h,P,Q,ge){const ke=$r(t,s);!function Gm(t,s,h,P,Q,ge,ke){if(null==ge)t.removeAttribute(s,Q,h);else{const Le=null==ke?Ki(ge):ke(ge,P||"",Q);t.setAttribute(s,Q,Le,h)}}(s[en],ke,ge,t.value,h,P,Q)}function ys(t,s,h,P,Q,ge){const ke=ge[s];if(null!==ke)for(let Le=0;Le0&&(h[Q-1][gs]=s),P{Ch(t.lView)},consumerOnSignalRead(){this.lView[Ua]=this}};function $b(t){return Yb(t[Ro])}function Xb(t){return Yb(t[gs])}function Yb(t){for(;null!==t&&!Vs(t);)t=t[gs];return t}const Kb=100;function ef(t,s=!0,h=0){const P=t[_o],Q=P.rendererFactory;Q.begin?.();try{!function o_(t,s){Ag(t,s);let h=0;for(;Gc(t);){if(h===Kb)throw new me(103,!1);h++,Ag(t,1)}}(t,h)}catch(ke){throw s&&Zp(t,ke),ke}finally{Q.end?.(),P.inlineEffectRunner?.flush()}}function a_(t,s,h,P){const Q=s[zi];if(!(256&~Q))return;s[_o].inlineEffectRunner?.flush(),Vd(s);let ke=null,Le=null;(function l_(t){return 2!==t.type})(t)&&(Le=function t_(t){return t[Ua]??function i_(t){const s=Ym.pop()??Object.create(Wb);return s.lView=t,s}(t)}(s),ke=L(Le));try{ap(s),function dc(t){return on.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==h&&Ux(t,s,h,2,P);const ze=!(3&~Q);if(ze){const Ct=t.preOrderCheckHooks;null!==Ct&&Ul(s,Ct,null)}else{const Ct=t.preOrderHooks;null!==Ct&&od(s,Ct,0,null),Eh(s,0)}if(function c_(t){for(let s=$b(t);null!==s;s=Xb(s)){if(!(s[zi]&lc.HasTransplantedViews))continue;const h=s[yl];for(let P=0;P-1&&(Vp(s,P),ba(h,P))}this._attachedToViewContainer=!1}xg(this._lView[pi],this._lView)}onDestroy(s){ro(this._lView,s)}markForCheck(){tf(this._cdRefInjectingView||this._lView)}detach(){this._lView[zi]&=-129}reattach(){_h(this._lView),this._lView[zi]|=128}detectChanges(){this._lView[zi]|=1024,ef(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new me(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,zh(this._lView[pi],this._lView)}attachToAppRef(s){if(this._attachedToViewContainer)throw new me(902,!1);this._appRef=s,_h(this._lView)}}let Mu=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=p_}return t})();const d_=Mu,u_=class extends d_{constructor(s,h,P){super(),this._declarationLView=s,this._declarationTContainer=h,this.elementRef=P}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(s,h){return this.createEmbeddedViewImpl(s,h)}createEmbeddedViewImpl(s,h,P){const Q=qp(this._declarationLView,this._declarationTContainer,s,{injector:h,dehydratedView:P});return new nf(Q)}};function p_(){return Ig(hs(),ni())}function Ig(t,s){return 4&t.type?new u_(s,t,xc(t,s)):null}let qm=()=>null;function gh(t,s){return qm(t,s)}class Au{}class P_{}class af{}class L_{resolveComponentFactory(s){throw function Iu(t){const s=Error(`No component factory found for ${pt(t)}.`);return s.ngComponent=t,s}(s)}}let lf=(()=>{class t{static#e=this.NULL=new L_}return t})();class Qm{}let R_=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function cv(){const t=ni(),h=jo(hs().index,t);return(mr(h)?h:t)[en]}()}return t})(),hv=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>null})}return t})();const Rg={};function dv(t,s){if(null!==function ve(){return V}())throw new me(-602,!1)}const Jm=new Set;function Sc(t){Jm.has(t)||(Jm.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function cf(...t){}class kr{constructor({enableLongStackTrace:s=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:P=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new aa(!1),this.onMicrotaskEmpty=new aa(!1),this.onStable=new aa(!1),this.onError=new aa(!1),typeof Zone>"u")throw new me(908,!1);Zone.assertZonePatched();const Q=this;Q._nesting=0,Q._outer=Q._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(Q._inner=Q._inner.fork(new Zone.TaskTrackingZoneSpec)),s&&Zone.longStackTraceZoneSpec&&(Q._inner=Q._inner.fork(Zone.longStackTraceZoneSpec)),Q.shouldCoalesceEventChangeDetection=!P&&h,Q.shouldCoalesceRunChangeDetection=P,Q.lastRequestAnimationFrameId=-1,Q.nativeRequestAnimationFrame=function uv(){const t="function"==typeof Ze.requestAnimationFrame;let s=Ze[t?"requestAnimationFrame":"setTimeout"],h=Ze[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&s&&h){const P=s[Zone.__symbol__("OriginalDelegate")];P&&(s=P);const Q=h[Zone.__symbol__("OriginalDelegate")];Q&&(h=Q)}return{nativeRequestAnimationFrame:s,nativeCancelAnimationFrame:h}}().nativeRequestAnimationFrame,function j_(t){const s=()=>{!function B_(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(Ze,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,wd(t),t.isCheckStableRunning=!0,e0(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),wd(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(h,P,Q,ge,ke,Le)=>{if(function s0(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(Le))return h.invokeTask(Q,ge,ke,Le);try{return t0(t),h.invokeTask(Q,ge,ke,Le)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===ge.type||t.shouldCoalesceRunChangeDetection)&&s(),n0(t)}},onInvoke:(h,P,Q,ge,ke,Le,ze)=>{try{return t0(t),h.invoke(Q,ge,ke,Le,ze)}finally{t.shouldCoalesceRunChangeDetection&&s(),n0(t)}},onHasTask:(h,P,Q,ge)=>{h.hasTask(Q,ge),P===Q&&("microTask"==ge.change?(t._hasPendingMicrotasks=ge.microTask,wd(t),e0(t)):"macroTask"==ge.change&&(t.hasPendingMacrotasks=ge.macroTask))},onHandleError:(h,P,Q,ge)=>(h.handleError(Q,ge),t.runOutsideAngular(()=>t.onError.emit(ge)),!1)})}(Q)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kr.isInAngularZone())throw new me(909,!1)}static assertNotInAngularZone(){if(kr.isInAngularZone())throw new me(909,!1)}run(s,h,P){return this._inner.run(s,h,P)}runTask(s,h,P,Q){const ge=this._inner,ke=ge.scheduleEventTask("NgZoneEvent: "+Q,s,F_,cf,cf);try{return ge.runTask(ke,h,P)}finally{ge.cancelTask(ke)}}runGuarded(s,h,P){return this._inner.runGuarded(s,h,P)}runOutsideAngular(s){return this._outer.run(s)}}const F_={};function e0(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function wd(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function t0(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function n0(t){t._nesting--,e0(t)}class V_{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new aa,this.onMicrotaskEmpty=new aa,this.onStable=new aa,this.onError=new aa}run(s,h,P){return s.apply(h,P)}runGuarded(s,h,P){return s.apply(h,P)}runOutsideAngular(s){return s()}runTask(s,h,P,Q){return s.apply(h,P)}}var Wh=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Wh||{});const r0={destroy(){}};function Fg(t,s){!s&&Ge();const h=s?.injector??Qi(zo);if(!function bd(t){return"browser"===(t??Qi(zo)).get(jh)}(h))return r0;Sc("NgAfterNextRender");const P=h.get(Bg),Q=P.handler??=new fv,ge=s?.phase??Wh.MixedReadWrite,ke=()=>{Q.unregister(ze),Le()},Le=h.get(yc).onDestroy(ke),ze=Ha(h,()=>new a0(ge,()=>{ke(),t()}));return Q.register(ze),{destroy:ke}}class a0{constructor(s,h){this.phase=s,this.callbackFn=h,this.zone=Qi(kr),this.errorHandler=Qi(Za,{optional:!0}),Qi(Au,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(s){this.errorHandler?.handleError(s)}}}class fv{constructor(){this.executingCallbacks=!1,this.buckets={[Wh.EarlyRead]:new Set,[Wh.Write]:new Set,[Wh.MixedReadWrite]:new Set,[Wh.Read]:new Set},this.deferredCallbacks=new Set}register(s){(this.executingCallbacks?this.deferredCallbacks:this.buckets[s.phase]).add(s)}unregister(s){this.buckets[s.phase].delete(s),this.deferredCallbacks.delete(s)}execute(){this.executingCallbacks=!0;for(const s of Object.values(this.buckets))for(const h of s)h.invoke();this.executingCallbacks=!1;for(const s of this.deferredCallbacks)this.buckets[s.phase].add(s);this.deferredCallbacks.clear()}destroy(){for(const s of Object.values(this.buckets))s.clear();this.deferredCallbacks.clear()}}let Bg=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const h=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const P of h)P()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new t})}return t})();function Td(t){return!!Zs(t)}function $h(t,s,h){let P=h?t.styles:null,Q=h?t.classes:null,ge=0;if(null!==s)for(let ke=0;ke0&&Gx(t,h,ge.join(" "))}}(Ht,Mo,li,P),void 0!==h&&function U_(t,s,h){const P=t.projection=[];for(let Q=0;Q{class t{static#e=this.__NG_ELEMENT_ID__=W_}return t})();function W_(){return yv(hs(),ni())}const $_=zg,bv=class extends $_{constructor(s,h,P){super(),this._lContainer=s,this._hostTNode=h,this._hostLView=P}get element(){return xc(this._hostTNode,this._hostLView)}get injector(){return new ar(this._hostTNode,this._hostLView)}get parentInjector(){const s=Zd(this._hostTNode,this._hostLView);if(qc(s)){const h=fc(s,this._hostLView),P=br(s);return new ar(h[pi].data[P+8],h)}return new ar(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(s){const h=vv(this._lContainer);return null!==h&&h[s]||null}get length(){return this._lContainer.length-js}createEmbeddedView(s,h,P){let Q,ge;"number"==typeof P?Q=P:null!=P&&(Q=P.index,ge=P.injector);const ke=gh(this._lContainer,s.ssrId),Le=s.createEmbeddedViewImpl(h||{},ge,ke);return this.insertImpl(Le,Q,ku(this._hostTNode,ke)),Le}createComponent(s,h,P,Q,ge){const ke=s&&!function Oi(t){return"function"==typeof t}(s);let Le;if(ke)Le=h;else{const Kt=h||{};Le=Kt.index,P=Kt.injector,Q=Kt.projectableNodes,ge=Kt.environmentInjector||Kt.ngModuleRef}const ze=ke?s:new kd(hn(s)),Je=P||this.parentInjector;if(!ge&&null==ze.ngModule){const li=(ke?Je:this.parentInjector).get(xo,null);li&&(ge=li)}const dt=hn(ze.componentType??{}),Ct=gh(this._lContainer,dt?.id??null),Ht=ze.create(Je,Q,Ct?.firstChild??null,ge);return this.insertImpl(Ht.hostView,Le,ku(this._hostTNode,Ct)),Ht}insert(s,h){return this.insertImpl(s,h,!0)}insertImpl(s,h,P){const Q=s._lView;if(function Hf(t){return Vs(t[Yn])}(Q)){const Le=this.indexOf(s);if(-1!==Le)this.detach(Le);else{const ze=Q[Yn],Je=new bv(ze,ze[ks],ze[Yn]);Je.detach(Je.indexOf(s))}}const ge=this._adjustIndex(h),ke=this._lContainer;return Qp(ke,Q,ge,P),s.attachToViewContainerRef(),Zo(d0(ke),ge,s),s}move(s,h){return this.insert(s,h)}indexOf(s){const h=vv(this._lContainer);return null!==h?h.indexOf(s):-1}remove(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);P&&(ba(d0(this._lContainer),h),xg(P[pi],P))}detach(s){const h=this._adjustIndex(s,-1),P=Vp(this._lContainer,h);return P&&null!=ba(d0(this._lContainer),h)?new nf(P):null}_adjustIndex(s,h=0){return s??this.length+h}};function vv(t){return t[8]}function d0(t){return t[8]||(t[8]=[])}function yv(t,s){let h;const P=s[t.index];return Vs(P)?h=P:(h=Tu(P,s,null,t),s[t.index]=h,Eg(s,h)),Hg(h,s,t,P),new bv(h,t,s)}let Hg=function Cv(t,s,h,P){if(t[Fo])return;let Q;Q=8&h.type?Ts(P):function Gg(t,s){const h=t[en],P=h.createComment(""),Q=$r(s,t);return _u(h,zp(h,Q),P,function jw(t,s){return t.nextSibling(s)}(h,Q),!1),P}(s,h),t[Fo]=Q},xv=()=>!1;class u0{constructor(s){this.queryList=s,this.matches=null}clone(){return new u0(this.queryList)}setDirty(){this.queryList.setDirty()}}class p0{constructor(s=[]){this.queries=s}createEmbeddedView(s){const h=s.queries;if(null!==h){const P=null!==s.contentQueries?s.contentQueries[0]:h.length,Q=[];for(let ge=0;ges.trim())}(s):s}}class f0{constructor(s=[]){this.queries=s}elementStart(s,h){for(let P=0;P0)P.push(ke[Le/2]);else{const Je=ge[Le+1],dt=s[-ze];for(let Ct=js;Ct(J(s),s.value);return h[ie]=s,h}(t),P=h[ie];return s?.equal&&(P.equal=s.equal),h.set=Q=>j(P,Q),h.update=Q=>function H(t,s){B()||l(),j(t,s(t.value))}(P,Q),h.asReadonly=o1.bind(h),h}function o1(){const t=this[ie];if(void 0===t.readonlyFn){const s=()=>this();s[ie]=t,t.readonlyFn=s}return t.readonlyFn}function a1(t){return function s1(t){return"function"==typeof t&&void 0!==t[ie]}(t)&&"function"==typeof t.set}function v0(t){let s=function zv(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),h=!0;const P=[t];for(;s;){let Q;if(Wr(t))Q=s.\u0275cmp||s.\u0275dir;else{if(s.\u0275cmp)throw new me(903,!1);Q=s.\u0275dir}if(Q){if(h){P.push(Q);const ke=t;ke.inputs=y0(t.inputs),ke.inputTransforms=y0(t.inputTransforms),ke.declaredInputs=y0(t.declaredInputs),ke.outputs=y0(t.outputs);const Le=Q.hostBindings;Le&&ff(t,Le);const ze=Q.viewQuery,Je=Q.contentQueries;if(ze&&y1(t,ze),Je&&bT(t,Je),b1(t,Q),kt(t.outputs,Q.outputs),Wr(Q)&&Q.data.animation){const dt=t.data;dt.animation=(dt.animation||[]).concat(Q.data.animation)}}const ge=Q.features;if(ge)for(let ke=0;ke=0;P--){const Q=t[P];Q.hostVars=s+=Q.hostVars,Q.hostAttrs=Ye(Q.hostAttrs,h=Ye(h,Q.hostAttrs))}}(P)}function b1(t,s){for(const h in s.inputs){if(!s.inputs.hasOwnProperty(h)||t.inputs.hasOwnProperty(h))continue;const P=s.inputs[h];if(void 0!==P&&(t.inputs[h]=P,t.declaredInputs[h]=s.declaredInputs[h],null!==s.inputTransforms)){const Q=Array.isArray(P)?P[0]:P;if(!s.inputTransforms.hasOwnProperty(Q))continue;t.inputTransforms??={},t.inputTransforms[Q]=s.inputTransforms[Q]}}}function y0(t){return t===Ys?{}:t===Mn?[]:t}function y1(t,s){const h=t.viewQuery;t.viewQuery=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function bT(t,s){const h=t.contentQueries;t.contentQueries=h?(P,Q,ge)=>{s(P,Q,ge),h(P,Q,ge)}:s}function ff(t,s){const h=t.hostBindings;t.hostBindings=h?(P,Q)=>{s(P,Q),h(P,Q)}:s}function Gv(t){const s=h=>{const P=(Array.isArray(t)?t:t()).map(Q=>"function"==typeof Q?{directive:Mt(Q),inputs:Ys,outputs:Ys}:{directive:Mt(Q.directive),inputs:Hv(Q.inputs),outputs:Hv(Q.outputs)});null===h.hostDirectives?(h.findHostDirectiveDefs=x1,h.hostDirectives=P):h.hostDirectives.unshift(...P)};return s.ngInherit=!0,s}function x1(t,s,h){if(null!==t.hostDirectives)for(const P of t.hostDirectives){const Q=Rs(P.directive);_T(Q.declaredInputs,P.inputs),x1(Q,s,h),h.set(Q,P),s.push(Q)}}function Hv(t){if(void 0===t||0===t.length)return Ys;const s={};for(let h=0;hh()),this.destroyCbs=null}onDestroy(s){this.destroyCbs.push(s)}}class Uv extends w1{constructor(s){super(),this.moduleType=s}create(s){return new x0(this.moduleType,s,[])}}class S1 extends Dd{constructor(s){super(),this.componentFactoryResolver=new df(this),this.instance=null;const h=new _a([...s.providers,{provide:Dd,useValue:this},{provide:lf,useValue:this.componentFactoryResolver}],s.parent||yo(),s.debugName,new Set(["environment"]));this.injector=h,s.runEnvironmentInitializers&&h.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(s){this.injector.onDestroy(s)}}function _0(t,s,h=null){return new S1({providers:t,parent:s,debugName:h,runEnvironmentInitializers:!0}).injector}let gf=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new R.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const h=this.taskId++;return this.pendingTasks.add(h),h}remove(h){this.pendingTasks.delete(h),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $g(t){return!!Wv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Wv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function mh(t,s,h){return t[s]=h}function mf(t,s){return t[s]}function Fr(t,s,h){return!Object.is(t[s],h)&&(t[s]=h,!0)}function Ed(t,s,h,P){const Q=Fr(t,s,h);return Fr(t,s+1,P)||Q}function C0(t,s,h,P,Q){const ge=Ed(t,s,h,P);return Fr(t,s+2,Q)||ge}function Ql(t,s,h,P,Q,ge){const ke=Ed(t,s,h,P);return Ed(t,s+2,Q,ge)||ke}function bf(t,s,h,P,Q,ge,ke,Le){const ze=ni(),Je=xn(),dt=t+sn,Ct=Je.firstCreatePass?function k1(t,s,h,P,Q,ge,ke,Le,ze){const Je=s.consts,dt=Wp(s,t,4,ke||null,$a(Je,Le));Mg(s,h,dt,$a(Je,ze)),Yc(s,dt);const Ct=dt.tView=Rb(2,dt,P,Q,ge,s.directiveRegistry,s.pipeRegistry,null,s.schemas,Je,null);return null!==s.queries&&(s.queries.template(s,dt),Ct.queries=s.queries.embeddedTView(dt)),dt}(dt,Je,ze,s,h,P,Q,ge,ke):Je.data[dt];oa(Ct,!1);const jt=$v(Je,ze,Ct,t);Xc()&&Lm(Je,ze,jt,Ct),Nr(jt,ze);const Ht=Tu(jt,ze,jt,Ct);return ze[dt]=Ht,Eg(ze,Ht),function _v(t,s,h){return xv(t,s,h)}(Ht,Ct,ze),xl(Ct)&&Lb(Je,ze,Ct),null!=ke&&Sg(ze,Ct,Le),bf}let $v=function M1(t,s,h,P){return Vo(!0),s[en].createComment("")};function ay(t,s,h,P){const Q=ni();return Fr(Q,ka(),s)&&(xn(),Tc(Os(),Q,t,s,h,P)),ay}function Tf(t,s,h,P){return Fr(t,ka(),h)?s+Ki(h)+P:In}function D0(t,s){return t<<17|s<<2}function Id(t){return t>>17&32767}function py(t){return 2|t}function Hu(t){return(131068&t)>>2}function E0(t,s){return-131069&t|s<<2}function fy(t){return 1|t}function eC(t,s,h,P){const Q=t[h+1],ge=null===s;let ke=P?Id(Q):Hu(Q),Le=!1;for(;0!==ke&&(!1===Le||ge);){const Je=t[ke+1];sS(t[ke],s)&&(Le=!0,t[ke+1]=P?fy(Je):py(Je)),ke=P?Id(Je):Hu(Je)}Le&&(t[h+1]=P?py(Q):fy(Q))}function sS(t,s){return null===t||null==s||(Array.isArray(t)?t[1]:t)===s||!(!Array.isArray(t)||"string"!=typeof s)&&Hr(t,s)>=0}const po={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function tC(t){return t.substring(po.key,po.keyEnd)}function rS(t){return t.substring(po.value,po.valueEnd)}function iC(t,s){const h=po.textEnd;return h===s?-1:(s=po.keyEnd=function lS(t,s,h){for(;s32;)s++;return s}(t,po.key=s,h),Mf(t,s,h))}function nC(t,s){const h=po.textEnd;let P=po.key=Mf(t,s,h);return h===P?-1:(P=po.keyEnd=function cS(t,s,h){let P;for(;s=65&&(-33&P)<=90||P>=48&&P<=57);)s++;return s}(t,P,h),P=gy(t,P,h),P=po.value=Mf(t,P,h),P=po.valueEnd=function hS(t,s,h){let P=-1,Q=-1,ge=-1,ke=s,Le=ke;for(;ke32&&(Le=ke),ge=Q,Q=P,P=-33&ze}return Le}(t,P,h),gy(t,P,h))}function sC(t){po.key=0,po.keyEnd=0,po.value=0,po.valueEnd=0,po.textEnd=t.length}function Mf(t,s,h){for(;s=0;h=nC(s,h))xy(t,tC(s),rS(s))}function by(t){el(_y,Dc,t,!0)}function Dc(t,s){for(let h=function oS(t){return sC(t),iC(t,Mf(t,0,po.textEnd))}(s);h>=0;h=iC(s,h))Xs(t,tC(s),!0)}function Pl(t,s,h,P){const Q=ni(),ge=xn(),ke=kl(2);ge.firstUpdatePass&&Uu(ge,t,ke,P),s!==In&&Fr(Q,ke,s)&&I0(ge,ge.data[Xr()],Q,Q[en],t,Q[ke+1]=function wy(t,s){return null==t||""===t||("string"==typeof s?t+=s:"object"==typeof t&&(t=pt(Al(t)))),t}(s,h),P,ke)}function el(t,s,h,P){const Q=xn(),ge=kl(2);Q.firstUpdatePass&&Uu(Q,null,ge,P);const ke=ni();if(h!==In&&Fr(ke,ge,h)){const Le=Q.data[Xr()];if(oC(Le,P)&&!Od(Q,ge)){let ze=P?Le.classesWithoutHost:Le.stylesWithoutHost;null!==ze&&(h=ht(ze,h||"")),Mc(Q,Le,ke,h,P)}else!function uS(t,s,h,P,Q,ge,ke,Le){Q===In&&(Q=Mn);let ze=0,Je=0,dt=0=t.expandoStartIndex}function Uu(t,s,h,P){const Q=t.data;if(null===Q[h+1]){const ge=Q[Xr()],ke=Od(t,h);oC(ge,P)&&null===s&&!ke&&(s=!1),s=function wn(t,s,h,P){const Q=kh(t);let ge=P?s.residualClasses:s.residualStyles;if(null===Q)0===(P?s.classBindings:s.styleBindings)&&(h=Wu(h=Jg(null,t,s,h,P),s.attrs,P),ge=null);else{const ke=s.directiveStylingLast;if(-1===ke||t[ke]!==Q)if(h=Jg(Q,t,s,h,P),null===ge){let ze=function vy(t,s,h){const P=h?s.classBindings:s.styleBindings;if(0!==Hu(P))return t[Id(P)]}(t,s,P);void 0!==ze&&Array.isArray(ze)&&(ze=Jg(null,t,s,ze[1],P),ze=Wu(ze,s.attrs,P),function Df(t,s,h,P){t[Id(h?s.classBindings:s.styleBindings)]=P}(t,s,P,ze))}else ge=function A0(t,s,h){let P;const Q=s.directiveEnd;for(let ge=1+s.directiveStylingLast;ge0)&&(Je=!0)):dt=h,Q)if(0!==ze){const jt=Id(t[Le+1]);t[P+1]=D0(jt,Le),0!==jt&&(t[jt+1]=E0(t[jt+1],P)),t[Le+1]=function tS(t,s){return 131071&t|s<<17}(t[Le+1],P)}else t[P+1]=D0(Le,0),0!==Le&&(t[Le+1]=E0(t[Le+1],P)),Le=P;else t[P+1]=D0(ze,0),0===Le?Le=P:t[ze+1]=E0(t[ze+1],P),ze=P;Je&&(t[P+1]=py(t[P+1])),eC(t,dt,P,!0),eC(t,dt,P,!1),function nS(t,s,h,P,Q){const ge=Q?t.residualClasses:t.residualStyles;null!=ge&&"string"==typeof s&&Hr(ge,s)>=0&&(h[P+1]=fy(h[P+1]))}(s,dt,t,P,ge),ke=D0(Le,ze),ge?s.classBindings=ke:s.styleBindings=ke}(Q,ge,s,h,ke,P)}}function Jg(t,s,h,P,Q){let ge=null;const ke=h.directiveEnd;let Le=h.directiveStylingLast;for(-1===Le?Le=h.directiveStart:Le++;Le0;){const ze=t[Q],Je=Array.isArray(ze),dt=Je?ze[1]:ze,Ct=null===dt;let jt=h[Q+1];jt===In&&(jt=Ct?Mn:void 0);let Ht=Ct?to(jt,P):dt===P?jt:void 0;if(Je&&!O0(Ht)&&(Ht=to(ze,P)),O0(Ht)&&(Le=Ht,ke))return Le;const Kt=t[Q+1];Q=ke?Id(Kt):Hu(Kt)}if(null!==s){let ze=ge?s.residualClasses:s.residualStyles;null!=ze&&(Le=to(ze,P))}return Le}function O0(t){return void 0!==t}function oC(t,s){return!!(t.flags&(s?8:16))}function aC(t,s,h){el(Xs,Dc,Tf(ni(),t,s,h),!0)}class L0{destroy(s){}updateValue(s,h){}swap(s,h){const P=Math.min(s,h),Q=Math.max(s,h),ge=this.detach(Q);if(Q-P>1){const ke=this.detach(P);this.attach(P,ge),this.attach(Q,ke)}else this.attach(P,ge)}move(s,h){this.attach(h,this.detach(s))}}function em(t,s,h,P,Q){return t===h&&Object.is(s,P)?1:Object.is(Q(t,s),Q(h,P))?-1:0}function Pd(t,s,h,P){return!(void 0===s||!s.has(P)||(t.attach(h,s.get(P)),s.delete(P),0))}function Ec(t,s,h,P,Q){if(Pd(t,s,P,h(P,Q)))t.updateValue(P,Q);else{const ge=t.create(P,Q);t.attach(P,ge)}}function tm(t,s,h,P){const Q=new Set;for(let ge=s;ge<=h;ge++)Q.add(P(ge,t.at(ge)));return Q}class R0{constructor(){this.kvMap=new Map,this._vMap=void 0}has(s){return this.kvMap.has(s)}delete(s){if(!this.has(s))return!1;const h=this.kvMap.get(s);return void 0!==this._vMap&&this._vMap.has(h)?(this.kvMap.set(s,this._vMap.get(h)),this._vMap.delete(h)):this.kvMap.delete(s),!0}get(s){return this.kvMap.get(s)}set(s,h){if(this.kvMap.has(s)){let P=this.kvMap.get(s);void 0===this._vMap&&(this._vMap=new Map);const Q=this._vMap;for(;Q.has(P);)P=Q.get(P);Q.set(P,h)}else this.kvMap.set(s,h)}forEach(s){for(let[h,P]of this.kvMap)if(s(P,h),void 0!==this._vMap){const Q=this._vMap;for(;Q.has(P);)P=Q.get(P),s(P,h)}}}function Af(t,s,h){Sc("NgControlFlow");const P=ni(),Q=ka(),ge=B0(P,sn+t);if(Fr(P,Q,s)){const Le=re(null);try{if(Xm(ge,0),-1!==s){const ze=Of(P[pi],sn+s),Je=gh(ge,ze.tView.ssrId);Qp(ge,qp(P,ze,h,{dehydratedView:Je}),0,ku(ze,Je))}}finally{re(Le)}}else{const Le=Hb(ge,0);void 0!==Le&&(Le[ms]=h)}}class lC{constructor(s,h,P){this.lContainer=s,this.$implicit=h,this.$index=P}get $count(){return this.lContainer.length-js}}function If(t,s){return s}class cC{constructor(s,h,P){this.hasEmptyBlock=s,this.trackByFn=h,this.liveCollection=P}}function N0(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct,jt){Sc("NgControlFlow");const Ht=void 0!==ze,Kt=ni(),li=Le?ke.bind(Kt[Kn][ms]):ke,bi=new cC(Ht,li);Kt[sn+t]=bi,bf(t+1,s,h,P,Q,ge),Ht&&bf(t+2,ze,Je,dt,Ct,jt)}class hC extends L0{constructor(s,h,P){super(),this.lContainer=s,this.hostLView=h,this.templateTNode=P,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-js}at(s){return this.getLView(s)[ms].$implicit}attach(s,h){const P=h[or];this.needsIndexUpdate||=s!==this.length,Qp(this.lContainer,h,s,ku(this.templateTNode,P))}detach(s){return this.needsIndexUpdate||=s!==this.length-1,function dC(t,s){return Vp(t,s)}(this.lContainer,s)}create(s,h){const P=gh(this.lContainer,this.templateTNode.tView.ssrId);return qp(this.hostLView,this.templateTNode,new lC(this.lContainer,h,s),{dehydratedView:P})}destroy(s){xg(s[pi],s)}updateValue(s,h){this.getLView(s)[ms].$implicit=h}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let s=0;s{t.destroy(Le)})}(ke,t,ge.trackByFn),ke.updateIndexes(),ge.hasEmptyBlock){const Le=ka(),ze=0===ke.length;if(Fr(P,Le,ze)){const Je=h+2,dt=B0(P,Je);if(ze){const Ct=Of(Q,Je),jt=gh(dt,Ct.tView.ssrId);Qp(dt,qp(P,Ct,void 0,{dehydratedView:jt}),0,ku(Ct,jt))}else Xm(dt,0)}}}finally{re(s)}}function B0(t,s){return t[s]}function Of(t,s){return xh(t,s)}function Xu(t,s,h,P){const Q=ni(),ge=xn(),ke=sn+t,Le=Q[en],ze=ge.firstCreatePass?function Dy(t,s,h,P,Q,ge){const ke=s.consts,ze=Wp(s,t,2,P,$a(ke,Q));return Mg(s,h,ze,$a(ke,ge)),null!==ze.attrs&&$h(ze,ze.attrs,!1),null!==ze.mergedAttrs&&$h(ze,ze.mergedAttrs,!0),null!==s.queries&&s.queries.elementStart(s,ze),ze}(ke,ge,Q,s,h,P):ge.data[ke],Je=V0(ge,Q,ze,Le,s,t);Q[ke]=Je;const dt=xl(ze);return oa(ze,!0),Gh(Le,Je,ze),!function Xg(t){return!(32&~t.flags)}(ze)&&Xc()&&Lm(ge,Q,Je,ze),0===function Tl(){return on.lFrame.elementDepthCount}()&&Nr(Je,Q),function id(){on.lFrame.elementDepthCount++}(),dt&&(Lb(ge,Q,ze),Pb(ge,ze,Q)),null!==P&&Sg(Q,ze),Xu}function im(){let t=hs();Bd()?jd():(t=t.parent,oa(t,!1));const s=t;(function Fd(t){return on.skipHydrationRootTNode===t})(s)&&function pp(){on.skipHydrationRootTNode=null}(),function Wf(){on.lFrame.elementDepthCount--}();const h=xn();return h.firstCreatePass&&(Yc(h,t),Gl(t)&&h.queries.elementEnd(t)),null!=s.classesWithoutHost&&function $d(t){return!!(8&t.flags)}(s)&&Mc(h,s,ni(),s.classesWithoutHost,!0),null!=s.stylesWithoutHost&&function Ih(t){return!!(16&t.flags)}(s)&&Mc(h,s,ni(),s.stylesWithoutHost,!1),im}function j0(t,s,h,P){return Xu(t,s,h,P),im(),j0}let V0=(t,s,h,P,Q,ge)=>(Vo(!0),Am(P,Q,function Ud(){return on.lFrame.currentNamespace}()));function Pf(t,s,h){const P=ni(),Q=xn(),ge=t+sn,ke=Q.firstCreatePass?function uC(t,s,h,P,Q){const ge=s.consts,ke=$a(ge,P),Le=Wp(s,t,8,"ng-container",ke);return null!==ke&&$h(Le,ke,!0),Mg(s,h,Le,$a(ge,Q)),null!==s.queries&&s.queries.elementStart(s,Le),Le}(ge,Q,P,s,h):Q.data[ge];oa(ke,!0);const Le=Ay(Q,P,ke,t);return P[ge]=Le,Xc()&&Lm(Q,P,Le,ke),Nr(Le,P),xl(ke)&&(Lb(Q,P,ke),Pb(Q,ke,P)),null!=h&&Sg(P,ke),Pf}function nm(){let t=hs();const s=xn();return Bd()?jd():(t=t.parent,oa(t,!1)),s.firstCreatePass&&(Yc(s,t),Gl(t)&&s.queries.elementEnd(t)),nm}function Ey(t,s,h){return Pf(t,s,h),nm(),Ey}let Ay=(t,s,h,P)=>(Vo(!0),wb(s[en],""));function pC(){return ni()}function Iy(t,s,h){const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!0),Iy}function Oy(t,s,h){const P=ni();if(Fr(P,ka(),s)){const ge=xn(),ke=Os();Qa(ge,ke,P,t,s,Um(kh(ge.data),ke,P),h,!0)}return Oy}const Yu=void 0;var CS=["en",[["a","p"],["AM","PM"],Yu],[["AM","PM"],Yu,Yu],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yu,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yu,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yu,"{1} 'at' {0}",Yu],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function _S(t){const h=Math.floor(Math.abs(t)),P=t.toString().replace(/^[^.]*\.?/,"").length;return 1===h&&0===P?1:5}];let Ku={};function z0(t){const s=function TS(t){return t.toLowerCase().replace(/_/g,"-")}(t);let h=gC(s);if(h)return h;const P=s.split("-")[0];if(h=gC(P),h)return h;if("en"===P)return CS;throw new me(701,!1)}function fC(t){return z0(t)[Lf.PluralCase]}function gC(t){return t in Ku||(Ku[t]=Ze.ng&&Ze.ng.common&&Ze.ng.common.locales&&Ze.ng.common.locales[t]),Ku[t]}var Lf=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}(Lf||{});const Rf="en-US",G0={marker:"element"},H0={marker:"ICU"};var da=function(t){return t[t.SHIFT=2]="SHIFT",t[t.APPEND_EAGERLY=1]="APPEND_EAGERLY",t[t.COMMENT=2]="COMMENT",t}(da||{});let mC=Rf;function vC(t,s,h){const P=s.insertBeforeIndex,Q=Array.isArray(P)?P[0]:P;return null===Q?Vx(t,0,h):Ts(h[Q])}function Py(t,s,h,P,Q){const ge=s.insertBeforeIndex;if(Array.isArray(ge)){let ke=P,Le=null;if(3&s.type||(Le=ke,ke=Q),null!==ke&&-1===s.componentOffset)for(let ze=1;ze1)for(let h=t.length-2;h>=0;h--){const P=t[h];xC(P)||ES(P,s)&&null===AS(P)&&_C(P,s.index)}}function xC(t){return!(64&t.type)}function ES(t,s){return xC(s)||t.index>s.index}function AS(t){const s=t.insertBeforeIndex;return Array.isArray(s)?s[0]:s}function _C(t,s){const h=t.insertBeforeIndex;Array.isArray(h)?h[0]=s:(Pm(vC,Py),t.insertBeforeIndex=s)}function CC(t,s,h){const P=Ob(t,h,64,null,null);return yC(s,P),P}let Nf=(t,s,h,P)=>(Vo(!0),function Ly(t,s,h){const P=t[en];switch(h){case Node.COMMENT_NODE:return wb(P,s);case Node.TEXT_NODE:return Cb(P,s);case Node.ELEMENT_NODE:return Am(P,s,null)}}(t,h,P));function FS(){const t=[];let h,P,s=-1;function ge(Le,ze){s=0;const Je=function U0(t,s){const h=s[t.currentCaseLViewIndex];return null===h?h:h<0?~h:h}(Le,ze);P=null!==Je?Le.remove[Je]:Mn}function ke(){if(s0?h[Le]:(t.push(s,P),ge(h[pi].data[~Le],h),ke())}return 0===t.length?null:(P=t.pop(),s=t.pop(),ke())}return function Q(Le,ze){for(h=ze;t.length;)t.pop();return ge(Le.value,ze),ke}}const X0=/\ufffd(\d+):?\d*\ufffd/gi,jS=/\ufffd(\d+)\ufffd/,OC=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,am="\ufffd",PC=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,LC=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,VS=/\uE500/g;function Fy(t,s,h,P,Q,ge,ke){const Le=Tg(t,P,1,null);let ze=Le<h.length&&h.push(ze)}return{type:P,mainBinding:Q,cases:s,values:h}}function Y0(t){if(!t)return[];let s=0;const h=[],P=[],Q=/[{}]/g;let ge;for(Q.lastIndex=0;ge=Q.exec(t);){const Le=ge.index;if("}"==ge[0]){if(h.pop(),0==h.length){const ze=t.substring(s,Le);OC.test(ze)?P.push(jC(ze)):P.push(ze),s=Le+1}}else{if(0==h.length){const ze=t.substring(s,Le);P.push(ze),s=Le+1}h.push("{")}}const ke=t.substring(s);return P.push(ke),P}function VC(t,s,h,P,Q,ge,ke,Le,ze){const Je=[],dt=[],Ct=[];h.cases.push(ke),h.create.push(Je),h.remove.push(dt),h.update.push(Ct);const Ht=ib(Ho()).getInertBodyElement(Le),Kt=_m(Ht)||Ht;return Kt?jy(t,s,h,P,Q,Je,dt,Ct,Kt,ge,ze,0):0}function jy(t,s,h,P,Q,ge,ke,Le,ze,Je,dt,Ct){let jt=0,Ht=ze.firstChild;for(;Ht;){const Kt=Tg(s,P,1,null);switch(Ht.nodeType){case Node.ELEMENT_NODE:const li=Ht,bi=li.tagName.toLowerCase();if(vm.hasOwnProperty(bi)){K0(ge,G0,bi,Je,Kt),s.data[Kt]=bi;const xs=li.attributes;for(let Mo=0;Mo>>da.SHIFT;let Ct=t[dt],jt=!1;null===Ct&&(Ct=t[dt]=Nf(t,dt,s[ge],(ke&da.COMMENT)===da.COMMENT?Node.COMMENT_NODE:Node.TEXT_NODE),jt=Xc()),Je&&null!==h&&jt&&_u(Q,h,Ct,P,!1)}})(Q,ze.create,dt,Le&&8&Le.type?Q[Le.index]:null),mp(!0)}function ce(t,s,h){m(t,s,h),function W(){mp(!1)}()}function gt(t,s,h,P){const Q=ni(),ge=xn(),ke=hs();return Ut(ge,Q,Q[en],ke,t,s,P),gt}function Ut(t,s,h,P,Q,ge,ke){const Le=xl(P),Je=t.firstCreatePass&&Vb(t),dt=s[ms],Ct=jb(s);let jt=!0;if(3&P.type||ke){const li=$r(P,s),bi=ke?ke(li):li,Ni=Ct.length,fi=ke?xs=>ke(Ts(xs[P.index])):P.index;let yn=null;if(!ke&&Le&&(yn=function Pt(t,s,h,P){const Q=t.cleanup;if(null!=Q)for(let ge=0;geze?Le[ze]:null}"string"==typeof ke&&(ge+=2)}return null}(t,s,Q,P.index)),null!==yn)(yn.__ngLastListenerFn__||yn).__ngNextListenerFn__=ge,yn.__ngLastListenerFn__=ge,jt=!1;else{ge=hi(P,s,dt,ge,!1);const xs=h.listen(bi,Q,ge);Ct.push(ge,xs),Je&&Je.push(Q,fi,Ni,Ni+1)}}else ge=hi(P,s,dt,ge,!1);const Ht=P.outputs;let Kt;if(jt&&null!==Ht&&(Kt=Ht[Q])){const li=Kt.length;if(li)for(let bi=0;bi-1?jo(t.index,s):s);let ze=Zt(s,h,P,ke),Je=ge.__ngNextListenerFn__;for(;Je;)ze=Zt(s,h,Je,ke)&&ze,Je=Je.__ngNextListenerFn__;return Q&&!1===ze&&ke.preventDefault(),ze}}function di(t=1){return function Yf(t){return(on.lFrame.contextLView=function cp(t,s){for(;t>0;)s=s[bs],t--;return s}(t,on.lFrame.contextLView))[ms]}(t)}function wi(t,s){let h=null;const P=function Pr(t){const s=t.attrs;if(null!=s){const h=s.indexOf(5);if(!(1&h))return s[h+1]}return null}(t);for(let Q=0;Q(Vo(!0),Cb(s[en],P));function ZC(t){return Gy("",t,""),ZC}function Gy(t,s,h){const P=ni(),Q=Tf(P,t,s,h);return Q!==In&&fh(P,Xr(),Q),Gy}function qC(t,s,h,P,Q){const ge=ni(),ke=function Bu(t,s,h,P,Q,ge){const Le=Ed(t,Sl(),h,Q);return kl(2),Le?s+Ki(h)+P+Ki(Q)+ge:In}(ge,t,s,h,P,Q);return ke!==In&&fh(ge,Xr(),ke),qC}function QC(t,s,h,P,Q,ge,ke){const Le=ni(),ze=function ju(t,s,h,P,Q,ge,ke,Le){const Je=C0(t,Sl(),h,Q,ke);return kl(3),Je?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le:In}(Le,t,s,h,P,Q,ge,ke);return ze!==In&&fh(Le,Xr(),ze),QC}function JC(t,s,h,P,Q,ge,ke,Le,ze){const Je=ni(),dt=function Vu(t,s,h,P,Q,ge,ke,Le,ze,Je){const Ct=Ql(t,Sl(),h,Q,ke,ze);return kl(4),Ct?s+Ki(h)+P+Ki(Q)+ge+Ki(ke)+Le+Ki(ze)+Je:In}(Je,t,s,h,P,Q,ge,ke,Le,ze);return dt!==In&&fh(Je,Xr(),dt),JC}function ew(t,s,h){a1(s)&&(s=s());const P=ni();return Fr(P,ka(),s)&&Qa(xn(),Os(),P,t,s,P[en],h,!1),ew}function QS(t,s){const h=a1(t);return h&&t.set(s),h}function tw(t,s){const h=ni(),P=xn(),Q=hs();return Ut(P,h,h[en],Q,t,s),tw}function iw(t,s,h,P,Q){if(t=Mt(t),Array.isArray(t))for(let ge=0;ge>20;if(Lo(t)||!t.multi){const Ht=new Kc(Je,Q,Cu),Kt=sw(ze,s,Q?dt:dt+jt,Ct);-1===Kt?(Ph(Jc(Le,ke),ge,ze),nw(ge,t,s.length),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ht),ke.push(Ht)):(h[Kt]=Ht,ke[Kt]=Ht)}else{const Ht=sw(ze,s,dt+jt,Ct),Kt=sw(ze,s,dt,dt+jt),bi=Kt>=0&&h[Kt];if(Q&&!bi||!Q&&!(Ht>=0&&h[Ht])){Ph(Jc(Le,ke),ge,ze);const Ni=function wD(t,s,h,P,Q){const ge=new Kc(t,h,Cu);return ge.multi=[],ge.index=s,ge.componentProviders=0,JS(ge,Q,P&&!h),ge}(Q?CD:_D,h.length,Q,P,Je);!Q&&bi&&(h[Kt].providerFactory=Ni),nw(ge,t,s.length,0),s.push(ze),Le.directiveStart++,Le.directiveEnd++,Q&&(Le.providerIndexes+=1048576),h.push(Ni),ke.push(Ni)}else nw(ge,t,Ht>-1?Ht:Kt,JS(h[Q?Kt:Ht],Je,!Q&&P));!Q&&P&&bi&&h[Kt].componentProviders++}}}function nw(t,s,h,P){const Q=Lo(s),ge=function xa(t){return!!t.useClass}(s);if(Q||ge){const ze=(ge?Mt(s.useClass):s).prototype.ngOnDestroy;if(ze){const Je=t.destroyHooks||(t.destroyHooks=[]);if(!Q&&s.multi){const dt=Je.indexOf(h);-1===dt?Je.push(h,[P,ze]):Je[dt+1].push(P,ze)}else Je.push(h,ze)}}}function JS(t,s,h){return h&&t.componentProviders++,t.multi.push(s)-1}function sw(t,s,h,P){for(let Q=h;Q{h.providersResolver=(P,Q)=>function xD(t,s,h){const P=xn();if(P.firstCreatePass){const Q=Wr(t);iw(h,P.data,P.blueprint,Q,!0),iw(s,P.data,P.blueprint,Q,!1)}}(P,Q?Q(t):t,s)}}let TD=(()=>{class t{constructor(h){this._injector=h,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(h){if(!h.standalone)return null;if(!this.cachedInjectors.has(h)){const P=fl(0,h.type),Q=P.length>0?_0([P],this._injector,`Standalone[${h.type.name}]`):null;this.cachedInjectors.set(h,Q)}return this.cachedInjectors.get(h)}ngOnDestroy(){try{for(const h of this.cachedInjectors.values())null!==h&&h.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=$i({token:t,providedIn:"environment",factory:()=>new t(Is(xo))})}return t})();function tk(t){Sc("NgStandalone"),t.getStandaloneInjector=s=>s.get(TD).getOrCreateStandaloneInjector(t)}function hk(t,s,h){const P=oo()+t,Q=ni();return Q[P]===In?mh(Q,P,h?s.call(h):s()):mf(Q,P)}function dk(t,s,h,P){return yk(ni(),oo(),t,s,h,P)}function uk(t,s,h,P,Q){return xk(ni(),oo(),t,s,h,P,Q)}function pk(t,s,h,P,Q,ge){return function _k(t,s,h,P,Q,ge,ke,Le){const ze=s+h;return C0(t,ze,Q,ge,ke)?mh(t,ze+3,Le?P.call(Le,Q,ge,ke):P(Q,ge,ke)):Z0(t,ze+3)}(ni(),oo(),t,s,h,P,Q,ge)}function fk(t,s,h,P,Q,ge,ke){return function Ck(t,s,h,P,Q,ge,ke,Le,ze){const Je=s+h;return Ql(t,Je,Q,ge,ke,Le)?mh(t,Je+4,ze?P.call(ze,Q,ge,ke,Le):P(Q,ge,ke,Le)):Z0(t,Je+4)}(ni(),oo(),t,s,h,P,Q,ge,ke)}function gk(t,s,h,P,Q,ge,ke,Le){const ze=oo()+t,Je=ni(),dt=Ql(Je,ze,h,P,Q,ge);return Fr(Je,ze+4,ke)||dt?mh(Je,ze+5,Le?s.call(Le,h,P,Q,ge,ke):s(h,P,Q,ge,ke)):mf(Je,ze+5)}function mk(t,s,h,P,Q,ge,ke,Le,ze){const Je=oo()+t,dt=ni(),Ct=Ql(dt,Je,h,P,Q,ge);return Ed(dt,Je+4,ke,Le)||Ct?mh(dt,Je+6,ze?s.call(ze,h,P,Q,ge,ke,Le):s(h,P,Q,ge,ke,Le)):mf(dt,Je+6)}function bk(t,s,h,P,Q,ge,ke,Le,ze,Je){const dt=oo()+t,Ct=ni();let jt=Ql(Ct,dt,h,P,Q,ge);return C0(Ct,dt+4,ke,Le,ze)||jt?mh(Ct,dt+7,Je?s.call(Je,h,P,Q,ge,ke,Le,ze):s(h,P,Q,ge,ke,Le,ze)):mf(Ct,dt+7)}function vk(t,s,h,P){return function wk(t,s,h,P,Q,ge){let ke=s+h,Le=!1;for(let ze=0;ze=0;h--){const P=s[h];if(t===P.name)return P}}(s,h.pipeRegistry),h.data[Q]=P,P.onDestroy&&(h.destroyHooks??=[]).push(Q,P.onDestroy)):P=h.data[Q];const ge=P.factory||(P.factory=Er(P.type)),Le=Gs(Cu);try{const ze=Cr(!1),Je=ge();return Cr(ze),function Wn(t,s,h,P){h>=t.data.length&&(t.data[h]=null,t.blueprint[h]=null),s[h]=P}(h,ni(),Q,Je),Je}finally{Gs(Le)}}function Sk(t,s,h){const P=t+sn,Q=ni(),ge=Vc(Q,P);return q0(Q,P)?yk(Q,oo(),s,ge.transform,h,ge):ge.transform(h)}function kk(t,s,h,P){const Q=t+sn,ge=ni(),ke=Vc(ge,Q);return q0(ge,Q)?xk(ge,oo(),s,ke.transform,h,P,ke):ke.transform(h,P)}function q0(t,s){return t[pi].data[s].pure}function Mk(t,s){return Ig(t,s)}class Hk{constructor(s){this.full=s;const h=s.split(".");this.major=h[0],this.minor=h[1],this.patch=h.slice(2).join(".")}}let Uk=(()=>{class t{log(h){console.log(h)}warn(h){console.warn(h)}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const Kk=new $e(""),Zk=new $e("");let uw,IE=(()=>{class t{constructor(h,P,Q){this._ngZone=h,this.registry=P,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,uw||(function OE(t){uw=t}(Q),Q.addToWindow(P)),this._watchAngularEvents(),h.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let h=this._callbacks.pop();clearTimeout(h.timeoutId),h.doneCb()}});else{let h=this.getPendingTasks();this._callbacks=this._callbacks.filter(P=>!P.updateCb||!P.updateCb(h)||(clearTimeout(P.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(h=>({source:h.source,creationLocation:h.creationLocation,data:h.data})):[]}addCallback(h,P,Q){let ge=-1;P&&P>0&&(ge=setTimeout(()=>{this._callbacks=this._callbacks.filter(ke=>ke.timeoutId!==ge),h()},P)),this._callbacks.push({doneCb:h,timeoutId:ge,updateCb:Q})}whenStable(h,P,Q){if(Q&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(h,P,Q),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(h){this.registry.registerApplication(h,this)}unregisterApplication(h){this.registry.unregisterApplication(h)}findProviders(h,P,Q){return[]}static#e=this.\u0275fac=function(P){return new(P||t)(Is(kr),Is(qk),Is(Zk))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac})}return t})(),qk=(()=>{class t{constructor(){this._applications=new Map}registerApplication(h,P){this._applications.set(h,P)}unregisterApplication(h){this._applications.delete(h)}unregisterAllApplications(){this._applications.clear()}getTestability(h){return this._applications.get(h)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(h,P=!0){return uw?.findTestabilityInTree(this,h,P)??null}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pw(t){return!!t&&"function"==typeof t.then}function Qk(t){return!!t&&"function"==typeof t.subscribe}const Jk=new $e("");let fw=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((h,P)=>{this.resolve=h,this.reject=P}),this.appInits=Qi(Jk,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const h=[];for(const Q of this.appInits){const ge=Q();if(pw(ge))h.push(ge);else if(Qk(ge)){const ke=new Promise((Le,ze)=>{ge.subscribe({complete:Le,error:ze})});h.push(ke)}}const P=()=>{this.done=!0,this.resolve()};Promise.all(h).then(()=>{P()}).catch(Q=>{this.reject(Q)}),0===h.length&&P(),this.initialized=!0}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const gw=new $e("");function iM(t,s){return Array.isArray(s)?s.reduce(iM,t):{...t,...s}}let qu=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qi(ou),this.afterRenderEffectManager=Qi(Bg),this.externalTestViews=new Set,this.beforeRender=new x.B,this.afterTick=new x.B,this.componentTypes=[],this.components=[],this.isStable=Qi(gf).hasPendingTasks.pipe((0,K.T)(h=>!h)),this._injector=Qi(xo)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(h,P){const Q=h instanceof af;if(!this._injector.get(fw).done)throw!Q&&vo(h),new me(405,!1);let ke;ke=Q?h:this._injector.get(lf).resolveComponentFactory(h),this.componentTypes.push(ke.componentType);const Le=function PE(t){return t.isBoundToModule}(ke)?void 0:this._injector.get(Dd),Je=ke.create(zo.NULL,[],P||ke.selector,Le),dt=Je.location.nativeElement,Ct=Je.injector.get(Kk,null);return Ct?.registerApplication(dt),Je.onDestroy(()=>{this.detachView(Je.hostView),$y(this.components,Je),Ct?.unregisterApplication(dt)}),this._loadComponent(Je),Je}tick(){this._tick(!0)}_tick(h){if(this._runningTick)throw new me(101,!1);const P=re(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(h)}catch(Q){this.internalErrorHandler(Q)}finally{this.afterTick.next(),this._runningTick=!1,re(P)}}detectChangesInAttachedViews(h){let P=0;const Q=this.afterRenderEffectManager;for(;;){if(P===Kb)throw new me(103,!1);if(h){const ge=0===P;this.beforeRender.next(ge);for(let{_lView:ke,notifyErrorHandler:Le}of this._views)RE(ke,ge,Le)}if(P++,Q.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))&&(Q.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:ge})=>mw(ge))))break}}attachView(h){const P=h;this._views.push(P),P.attachToAppRef(this)}detachView(h){const P=h;$y(this._views,P),P.detachFromAppRef()}_loadComponent(h){this.attachView(h.hostView),this.tick(),this.components.push(h);const P=this._injector.get(gw,[]);[...this._bootstrapListeners,...P].forEach(Q=>Q(h))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(h=>h()),this._views.slice().forEach(h=>h.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(h){return this._destroyListeners.push(h),()=>$y(this._destroyListeners,h)}destroy(){if(this._destroyed)throw new me(406,!1);const h=this._injector;h.destroy&&!h.destroyed&&h.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function $y(t,s){const h=t.indexOf(s);h>-1&&t.splice(h,1)}function RE(t,s,h){!s&&!mw(t)||function NE(t,s,h){let P;h?(P=0,t[zi]|=1024):P=64&t[zi]?0:1,ef(t,s,P)}(t,h,s)}function mw(t){return Gc(t)}class FE{constructor(s,h){this.ngModuleFactory=s,this.componentFactories=h}}let BE=(()=>{class t{compileModuleSync(h){return new Uv(h)}compileModuleAsync(h){return Promise.resolve(this.compileModuleSync(h))}compileModuleAndAllComponentsSync(h){const P=this.compileModuleSync(h),ge=ha(Zs(h).declarations).reduce((ke,Le)=>{const ze=hn(Le);return ze&&ke.push(new kd(ze)),ke},[]);return new FE(P,ge)}compileModuleAndAllComponentsAsync(h){return Promise.resolve(this.compileModuleAndAllComponentsSync(h))}clearCache(){}clearCacheFor(h){}getModuleId(h){}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),zE=(()=>{class t{constructor(){this.zone=Qi(kr),this.applicationRef=Qi(qu)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function GE(){const t=Qi(kr),s=Qi(Za);return h=>t.runOutsideAngular(()=>s.handleError(h))}let UE=(()=>{class t{constructor(){this.subscription=new N.yU,this.initialized=!1,this.zone=Qi(kr),this.pendingTasks=Qi(gf)}initialize(){if(this.initialized)return;this.initialized=!0;let h=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(h=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kr.assertNotInAngularZone(),queueMicrotask(()=>{null!==h&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(h),h=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kr.assertInAngularZone(),h??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(P){return new(P||t)};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yy=new $e("",{providedIn:"root",factory:()=>Qi(Yy,bn.Optional|bn.SkipSelf)||function WE(){return typeof $localize<"u"&&$localize.locale||Rf}()}),$E=new $e("",{providedIn:"root",factory:()=>"USD"}),bw=new $e("");let oM=(()=>{class t{constructor(h){this._injector=h,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(h,P){const Q=function pv(t="zone.js",s){return"noop"===t?new V_:"zone.js"===t?new kr(s):t}(P?.ngZone,function rM(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:P?.ngZoneEventCoalescing,runCoalescing:P?.ngZoneRunCoalescing}));return Q.run(()=>{const ge=function CT(t,s,h){return new x0(t,s,h)}(h.moduleType,this.injector,function sM(t){return[{provide:kr,useFactory:t},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(zE,{optional:!0});return()=>s.initialize()}},{provide:Io,multi:!0,useFactory:()=>{const s=Qi(UE);return()=>{s.initialize()}}},{provide:ou,useFactory:GE}]}(()=>Q)),ke=ge.injector.get(Za,null);return Q.runOutsideAngular(()=>{const Le=Q.onError.subscribe({next:ze=>{ke.handleError(ze)}});ge.onDestroy(()=>{$y(this._modules,ge),Le.unsubscribe()})}),function tM(t,s,h){try{const P=h();return pw(P)?P.catch(Q=>{throw s.runOutsideAngular(()=>t.handleError(Q)),Q}):P}catch(P){throw s.runOutsideAngular(()=>t.handleError(P)),P}}(ke,Q,()=>{const Le=ge.injector.get(fw);return Le.runInitializers(),Le.donePromise.then(()=>(function bC(t){"string"==typeof t&&(mC=t.toLowerCase().replace(/_/g,"-"))}(ge.injector.get(Yy,Rf)||Rf),this._moduleDoBootstrap(ge),ge))})})}bootstrapModule(h,P=[]){const Q=iM({},P);return function VE(t,s,h){const P=new Uv(h);return Promise.resolve(P)}(0,0,h).then(ge=>this.bootstrapModuleFactory(ge,Q))}_moduleDoBootstrap(h){const P=h.injector.get(qu);if(h._bootstrapComponents.length>0)h._bootstrapComponents.forEach(Q=>P.bootstrap(Q));else{if(!h.instance.ngDoBootstrap)throw new me(-403,!1);h.instance.ngDoBootstrap(P)}this._modules.push(h)}onDestroy(h){this._destroyListeners.push(h)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new me(404,!1);this._modules.slice().forEach(P=>P.destroy()),this._destroyListeners.forEach(P=>P());const h=this._injector.get(bw,null);h&&(h.forEach(P=>P()),h.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(P){return new(P||t)(Is(zo))};static#t=this.\u0275prov=$i({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Qu=null;const aM=new $e("");function lM(t,s,h=[]){const P=`Platform: ${s}`,Q=new $e(P);return(ge=[])=>{let ke=vw();if(!ke||ke.injector.get(aM,!1)){const Le=[...h,...ge,{provide:Q,useValue:!0}];t?t(Le):function YE(t){if(Qu&&!Qu.get(aM,!1))throw new me(400,!1);(function eM(){!function d(t){r=t}(()=>{throw new me(600,!1)})})(),Qu=t;const s=t.get(oM);(function hM(t){t.get(fu,null)?.forEach(h=>h())})(t)}(function cM(t=[],s){return zo.create({name:s,providers:[{provide:Ns,useValue:"platform"},{provide:bw,useValue:new Set([()=>Qu=null])},...t]})}(Le,P))}return function KE(t){const s=vw();if(!s)throw new me(401,!1);return s}()}}function vw(){return Qu?.get(oM)??null}function qE(){}let uM=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=QE}return t})();function QE(t){return function JE(t,s,h){if(sa(t)&&!h){const P=jo(t.index,s);return new nf(P,P)}return 47&t.type?new nf(s[Kn],s):null}(hs(),ni(),!(16&~t))}class mM{constructor(){}supports(s){return $g(s)}create(s){return new sA(s)}}const nA=(t,s)=>s;class sA{constructor(s){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=s||nA}forEachItem(s){let h;for(h=this._itHead;null!==h;h=h._next)s(h)}forEachOperation(s){let h=this._itHead,P=this._removalsHead,Q=0,ge=null;for(;h||P;){const ke=!P||h&&h.currentIndex{ke=this._trackByFn(Q,Le),null!==h&&Object.is(h.trackById,ke)?(P&&(h=this._verifyReinsertion(h,Le,ke,Q)),Object.is(h.item,Le)||this._addIdentityChange(h,Le)):(h=this._mismatch(h,Le,ke,Q),P=!0),h=h._next,Q++}),this.length=Q;return this._truncate(h),this.collection=s,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let s;for(s=this._previousItHead=this._itHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._additionsHead;null!==s;s=s._nextAdded)s.previousIndex=s.currentIndex;for(this._additionsHead=this._additionsTail=null,s=this._movesHead;null!==s;s=s._nextMoved)s.previousIndex=s.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(s,h,P,Q){let ge;return null===s?ge=this._itTail:(ge=s._prev,this._remove(s)),null!==(s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._reinsertAfter(s,ge,Q)):null!==(s=null===this._linkedRecords?null:this._linkedRecords.get(P,Q))?(Object.is(s.item,h)||this._addIdentityChange(s,h),this._moveAfter(s,ge,Q)):s=this._addAfter(new rA(h,P),ge,Q),s}_verifyReinsertion(s,h,P,Q){let ge=null===this._unlinkedRecords?null:this._unlinkedRecords.get(P,null);return null!==ge?s=this._reinsertAfter(ge,s._prev,Q):s.currentIndex!=Q&&(s.currentIndex=Q,this._addToMoves(s,Q)),s}_truncate(s){for(;null!==s;){const h=s._next;this._addToRemovals(this._unlink(s)),s=h}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(s,h,P){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(s);const Q=s._prevRemoved,ge=s._nextRemoved;return null===Q?this._removalsHead=ge:Q._nextRemoved=ge,null===ge?this._removalsTail=Q:ge._prevRemoved=Q,this._insertAfter(s,h,P),this._addToMoves(s,P),s}_moveAfter(s,h,P){return this._unlink(s),this._insertAfter(s,h,P),this._addToMoves(s,P),s}_addAfter(s,h,P){return this._insertAfter(s,h,P),this._additionsTail=null===this._additionsTail?this._additionsHead=s:this._additionsTail._nextAdded=s,s}_insertAfter(s,h,P){const Q=null===h?this._itHead:h._next;return s._next=Q,s._prev=h,null===Q?this._itTail=s:Q._prev=s,null===h?this._itHead=s:h._next=s,null===this._linkedRecords&&(this._linkedRecords=new bM),this._linkedRecords.put(s),s.currentIndex=P,s}_remove(s){return this._addToRemovals(this._unlink(s))}_unlink(s){null!==this._linkedRecords&&this._linkedRecords.remove(s);const h=s._prev,P=s._next;return null===h?this._itHead=P:h._next=P,null===P?this._itTail=h:P._prev=h,s}_addToMoves(s,h){return s.previousIndex===h||(this._movesTail=null===this._movesTail?this._movesHead=s:this._movesTail._nextMoved=s),s}_addToRemovals(s){return null===this._unlinkedRecords&&(this._unlinkedRecords=new bM),this._unlinkedRecords.put(s),s.currentIndex=null,s._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=s,s._prevRemoved=null):(s._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=s),s}_addIdentityChange(s,h){return s.item=h,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=s:this._identityChangesTail._nextIdentityChange=s,s}}class rA{constructor(s,h){this.item=s,this.trackById=h,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class oA{constructor(){this._head=null,this._tail=null}add(s){null===this._head?(this._head=this._tail=s,s._nextDup=null,s._prevDup=null):(this._tail._nextDup=s,s._prevDup=this._tail,s._nextDup=null,this._tail=s)}get(s,h){let P;for(P=this._head;null!==P;P=P._nextDup)if((null===h||h<=P.currentIndex)&&Object.is(P.trackById,s))return P;return null}remove(s){const h=s._prevDup,P=s._nextDup;return null===h?this._head=P:h._nextDup=P,null===P?this._tail=h:P._prevDup=h,null===this._head}}class bM{constructor(){this.map=new Map}put(s){const h=s.trackById;let P=this.map.get(h);P||(P=new oA,this.map.set(h,P)),P.add(s)}get(s,h){const Q=this.map.get(s);return Q?Q.get(s,h):null}remove(s){const h=s.trackById;return this.map.get(h).remove(s)&&this.map.delete(h),s}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function vM(t,s,h){const P=t.previousIndex;if(null===P)return P;let Q=0;return h&&P{if(h&&h.key===Q)this._maybeAddToChanges(h,P),this._appendAfter=h,h=h._next;else{const ge=this._getOrCreateRecordForKey(Q,P);h=this._insertBeforeOrAppend(h,ge)}}),h){h._prev&&(h._prev._next=null),this._removalsHead=h;for(let P=h;null!==P;P=P._nextRemoved)P===this._mapHead&&(this._mapHead=null),this._records.delete(P.key),P._nextRemoved=P._next,P.previousValue=P.currentValue,P.currentValue=null,P._prev=null,P._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(s,h){if(s){const P=s._prev;return h._next=s,h._prev=P,s._prev=h,P&&(P._next=h),s===this._mapHead&&(this._mapHead=h),this._appendAfter=s,s}return this._appendAfter?(this._appendAfter._next=h,h._prev=this._appendAfter):this._mapHead=h,this._appendAfter=h,null}_getOrCreateRecordForKey(s,h){if(this._records.has(s)){const Q=this._records.get(s);this._maybeAddToChanges(Q,h);const ge=Q._prev,ke=Q._next;return ge&&(ge._next=ke),ke&&(ke._prev=ge),Q._next=null,Q._prev=null,Q}const P=new lA(s);return this._records.set(s,P),P.currentValue=h,this._addToAdditions(P),P}_reset(){if(this.isDirty){let s;for(this._previousMapHead=this._mapHead,s=this._previousMapHead;null!==s;s=s._next)s._nextPrevious=s._next;for(s=this._changesHead;null!==s;s=s._nextChanged)s.previousValue=s.currentValue;for(s=this._additionsHead;null!=s;s=s._nextAdded)s.previousValue=s.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(s,h){Object.is(h,s.currentValue)||(s.previousValue=s.currentValue,s.currentValue=h,this._addToChanges(s))}_addToAdditions(s){null===this._additionsHead?this._additionsHead=this._additionsTail=s:(this._additionsTail._nextAdded=s,this._additionsTail=s)}_addToChanges(s){null===this._changesHead?this._changesHead=this._changesTail=s:(this._changesTail._nextChanged=s,this._changesTail=s)}_forEach(s,h){s instanceof Map?s.forEach(h):Object.keys(s).forEach(P=>h(s[P],P))}}class lA{constructor(s){this.key=s,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function xM(){return new ww([new mM])}let ww=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:xM});constructor(h){this.factories=h}static create(h,P){if(null!=P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||xM()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(null!=P)return P;throw new me(901,!1)}}return t})();function _M(){return new Tw([new yM])}let Tw=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:_M});constructor(h){this.factories=h}static create(h,P){if(P){const Q=P.factories.slice();h=h.concat(Q)}return new t(h)}static extend(h){return{provide:t,useFactory:P=>t.create(h,P||_M()),deps:[[t,new Gr,new er]]}}find(h){const P=this.factories.find(Q=>Q.supports(h));if(P)return P;throw new me(901,!1)}}return t})();const dA=lM(null,"core",[]);let uA=(()=>{class t{constructor(h){}static#e=this.\u0275fac=function(P){return new(P||t)(Is(qu))};static#t=this.\u0275mod=Fl({type:t});static#i=this.\u0275inj=kn({})}return t})();function zA(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function GA(t,s=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?s:Number(t)}function UA(t,s){Sc("NgSignals");const h=function f(t){const s=Object.create(o);s.computation=t;const h=()=>{if($(s),J(s),s.value===y)throw s.error;return s.value};return h[ie]=s,h}(t);return s?.equal&&(h[ie].equal=s.equal),h}function WA(t){const s=re(null);try{return t()}finally{re(s)}}const $A=new $e("",{providedIn:"root",factory:()=>Qi(XA)});let XA=(()=>{class t{static#e=this.\u0275prov=$i({token:t,providedIn:"root",factory:()=>new YA})}return t})();class YA{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Qi(gf),this.taskId=null}scheduleEffect(s){if(this.enqueue(s),null===this.taskId){const h=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(h),this.taskId=null})}}enqueue(s){const h=s.creationZone;this.queues.has(h)||this.queues.set(h,new Set);const P=this.queues.get(h);P.has(s)||(this.queuedEffectCount++,P.add(s))}flush(){for(;this.queuedEffectCount>0;)for(const[s,h]of this.queues)null===s?this.flushQueue(h):s.run(()=>this.flushQueue(h))}flushQueue(s){for(const h of s)s.delete(h),this.queuedEffectCount--,h.run()}}class KA{constructor(s,h,P,Q,ge,ke){this.scheduler=s,this.effectFn=h,this.creationZone=P,this.injector=ge,this.watcher=function se(t,s,h){const P=Object.create(X);h&&(P.consumerAllowSignalWrites=!0),P.fn=t,P.schedule=s;const Q=ze=>{P.cleanupFn=ze};return P.ref={notify:()=>F(P),run:()=>{if(null===P.fn)return;if(function le(){return Pe}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(P.dirty=!1,P.hasRun&&!I(P))return;P.hasRun=!0;const ze=L(P);try{P.cleanupFn(),P.cleanupFn=w,P.fn(Q)}finally{D(P,ze)}},cleanup:()=>P.cleanupFn(),destroy:()=>function ke(ze){(function ge(ze){return null===ze.fn&&null===ze.schedule})(ze)||(E(ze),ze.cleanupFn(),ze.fn=null,ze.schedule=null,ze.cleanupFn=w)}(P),[ie]:P},P.ref}(Le=>this.runEffect(Le),()=>this.schedule(),ke),this.unregisterOnDestroy=Q?.onDestroy(()=>this.destroy())}runEffect(s){try{this.effectFn(s)}catch(h){this.injector.get(Za,null,{optional:!0})?.handleError(h)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function HM(t,s){Sc("NgSignals"),!s?.injector&&Ge();const h=s?.injector??Qi(zo),P=!0!==s?.manualCleanup?h.get(yc):null,Q=new KA(h.get($A),t,typeof Zone>"u"?null:Zone.current,P,h,s?.allowSignalWrites??!1),ge=h.get(uM,null,{optional:!0});return ge&&8&ge._lView[zi]?(ge._lView[bl]??=[]).push(Q.watcher.notify):Q.watcher.notify(),Q}function ZA(t,s){const h=hn(t),P=s.elementInjector||yo();return new kd(h).create(P,s.projectableNodes,s.hostElement,s.environmentInjector)}function qA(t){const s=hn(t);if(!s)return null;const h=new kd(s);return{get selector(){return h.selector},get type(){return h.componentType},get inputs(){return h.inputs},get outputs(){return h.outputs},get ngContentSelectors(){return h.ngContentSelectors},get isStandalone(){return s.standalone},get isSignal(){return s.signals}}}},89079:(ri,Ft,He)=>{"use strict";He.d(Ft,{ot:()=>le,pQ:()=>Pe});var M=He(54438),e=He(71985),V=He(56977);function Pe(fe){fe||((0,M.Af3)(Pe),fe=(0,M.WQX)(M.abz));const pe=new e.c(J=>fe.onDestroy(J.next.bind(J)));return J=>J.pipe((0,V.Q)(pe))}function le(fe,pe){const J=!pe?.manualCleanup;J&&!pe?.injector&&(0,M.Af3)(le);const te=J?pe?.injector?.get(M.abz)??(0,M.WQX)(M.abz):null;let $;$=(0,M.vPA)(pe?.requireSync?{kind:0}:{kind:1,value:pe?.initialValue});const A=fe.subscribe({next:B=>$.set({kind:1,value:B}),error:B=>{if(pe?.rejectErrors)throw B;$.set({kind:2,error:B})}});return te?.onDestroy(A.unsubscribe.bind(A)),(0,M.EWP)(()=>{const B=$();switch(B.kind){case 1:return B.value;case 2:throw B.error;case 0:throw new M.wOt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}},89417:(ri,Ft,He)=>{"use strict";He.d(Ft,{$R:()=>yr,BC:()=>he,JD:()=>xr,Q0:()=>Oa,VZ:()=>Er,X1:()=>ja,YN:()=>Qo,ZU:()=>x,Zm:()=>fe,cb:()=>me,cz:()=>F,j4:()=>vr,k0:()=>I,kq:()=>ve,me:()=>$,ok:()=>bo,qT:()=>Jl,vO:()=>N,vS:()=>Tn});var M=He(54438),e=He(60177),V=He(86648),Pe=He(27468),Z=He(96354);let ie=(()=>{class ot{constructor(Ye,vt){this._renderer=Ye,this._elementRef=vt,this.onChange=Bt=>{},this.onTouched=()=>{}}setProperty(Ye,vt){this._renderer.setProperty(this._elementRef.nativeElement,Ye,vt)}registerOnTouched(Ye){this.onTouched=Ye}registerOnChange(Ye){this.onChange=Ye}setDisabledState(Ye){this.setProperty("disabled",Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:ot})}return ot})(),re=(()=>{class ot extends ie{static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const ve=new M.nKC(""),le={provide:ve,useExisting:(0,M.Rfq)(()=>fe),multi:!0};let fe=(()=>{class ot extends re{writeValue(Ye){this.setProperty("checked",Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("change",function(vn){return Bt.onChange(vn.target.checked)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([le]),M.Vt3]})}return ot})();const pe={provide:ve,useExisting:(0,M.Rfq)(()=>$),multi:!0},te=new M.nKC("");let $=(()=>{class ot extends ie{constructor(Ye,vt,Bt){super(Ye,vt),this._compositionMode=Bt,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function J(){const ot=(0,e.QT)()?(0,e.QT)().getUserAgent():"";return/android (\d+)/.test(ot.toLowerCase())}())}writeValue(Ye){this.setProperty("value",Ye??"")}_handleInput(Ye){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(Ye)}_compositionStart(){this._composing=!0}_compositionEnd(Ye){this._composing=!1,this._compositionMode&&this.onChange(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(te,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt._handleInput(vn.target.value)})("blur",function(){return Bt.onTouched()})("compositionstart",function(){return Bt._compositionStart()})("compositionend",function(vn){return Bt._compositionEnd(vn.target.value)})},features:[M.Jv_([pe]),M.Vt3]})}return ot})();function A(ot){return null==ot||("string"==typeof ot||Array.isArray(ot))&&0===ot.length}function B(ot){return null!=ot&&"number"==typeof ot.length}const F=new M.nKC(""),L=new M.nKC(""),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class I{static min(ct){return E(ct)}static max(ct){return function _(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye>ot?{max:{max:ot,actual:ct.value}}:null}}(ct)}static required(ct){return function b(ot){return A(ot.value)?{required:!0}:null}(ct)}static requiredTrue(ct){return function T(ot){return!0===ot.value?null:{required:!0}}(ct)}static email(ct){return function z(ot){return A(ot.value)||D.test(ot.value)?null:{email:!0}}(ct)}static minLength(ct){return function O(ot){return ct=>A(ct.value)||!B(ct.value)?null:ct.value.lengthB(ct.value)&&ct.value.length>ot?{maxlength:{requiredLength:ot,actualLength:ct.value.length}}:null}(ct)}static pattern(ct){return function a(ot){if(!ot)return g;let ct,Ye;return"string"==typeof ot?(Ye="","^"!==ot.charAt(0)&&(Ye+="^"),Ye+=ot,"$"!==ot.charAt(ot.length-1)&&(Ye+="$"),ct=new RegExp(Ye)):(Ye=ot.toString(),ct=ot),vt=>{if(A(vt.value))return null;const Bt=vt.value;return ct.test(Bt)?null:{pattern:{requiredPattern:Ye,actualValue:Bt}}}}(ct)}static nullValidator(ct){return null}static compose(ct){return C(ct)}static composeAsync(ct){return p(ct)}}function E(ot){return ct=>{if(A(ct.value)||A(ot))return null;const Ye=parseFloat(ct.value);return!isNaN(Ye)&&Ye{ct=null!=Ye?{...ct,...Ye}:ct}),0===Object.keys(ct).length?null:ct}function r(ot,ct){return ct.map(Ye=>Ye(ot))}function d(ot){return ot.map(ct=>function l(ot){return!ot.validate}(ct)?ct:Ye=>ct.validate(Ye))}function C(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){return n(r(Ye,ct))}}function k(ot){return null!=ot?C(d(ot)):null}function p(ot){if(!ot)return null;const ct=ot.filter(y);return 0==ct.length?null:function(Ye){const vt=r(Ye,ct).map(o);return(0,Pe.p)(vt).pipe((0,Z.T)(n))}}function S(ot){return null!=ot?p(d(ot)):null}function j(ot,ct){return null===ot?[ct]:Array.isArray(ot)?[...ot,ct]:[ot,ct]}function H(ot){return ot._rawValidators}function Y(ot){return ot._rawAsyncValidators}function U(ot){return ot?Array.isArray(ot)?ot:[ot]:[]}function se(ot,ct){return Array.isArray(ot)?ot.includes(ct):ot===ct}function w(ot,ct){const Ye=U(ct);return U(ot).forEach(Bt=>{se(Ye,Bt)||Ye.push(Bt)}),Ye}function X(ot,ct){return U(ct).filter(Ye=>!se(ot,Ye))}class G{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(ct){this._rawValidators=ct||[],this._composedValidatorFn=k(this._rawValidators)}_setAsyncValidators(ct){this._rawAsyncValidators=ct||[],this._composedAsyncValidatorFn=S(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(ct){this._onDestroyCallbacks.push(ct)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(ct=>ct()),this._onDestroyCallbacks=[]}reset(ct=void 0){this.control&&this.control.reset(ct)}hasError(ct,Ye){return!!this.control&&this.control.hasError(ct,Ye)}getError(ct,Ye){return this.control?this.control.getError(ct,Ye):null}}class x extends G{get formDirective(){return null}get path(){return null}}class N extends G{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class R{constructor(ct){this._cd=ct}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let he=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(N,2))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)},features:[M.Vt3]})}return ot})(),me=(()=>{class ot extends R{constructor(Ye){super(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(vt,Bt){2&vt&&M.AVh("ng-untouched",Bt.isUntouched)("ng-touched",Bt.isTouched)("ng-pristine",Bt.isPristine)("ng-dirty",Bt.isDirty)("ng-valid",Bt.isValid)("ng-invalid",Bt.isInvalid)("ng-pending",Bt.isPending)("ng-submitted",Bt.isSubmitted)},features:[M.Vt3]})}return ot})();const st="VALID",kt="INVALID",pt="PENDING",ht="DISABLED";function Lt(ot){return(At(ot)?ot.validators:ot)||null}function ti(ot,ct){return(At(ct)?ct.asyncValidators:ot)||null}function At(ot){return null!=ot&&!Array.isArray(ot)&&"object"==typeof ot}function _t(ot,ct,Ye){const vt=ot.controls;if(!(ct?Object.keys(vt):vt).length)throw new M.wOt(1e3,"");if(!vt[Ye])throw new M.wOt(1001,"")}function wt(ot,ct,Ye){ot._forEachChild((vt,Bt)=>{if(void 0===Ye[Bt])throw new M.wOt(1002,"")})}class Jt{constructor(ct,Ye){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(ct),this._assignAsyncValidators(Ye)}get validator(){return this._composedValidatorFn}set validator(ct){this._rawValidators=this._composedValidatorFn=ct}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(ct){this._rawAsyncValidators=this._composedAsyncValidatorFn=ct}get parent(){return this._parent}get valid(){return this.status===st}get invalid(){return this.status===kt}get pending(){return this.status==pt}get disabled(){return this.status===ht}get enabled(){return this.status!==ht}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(ct){this._assignValidators(ct)}setAsyncValidators(ct){this._assignAsyncValidators(ct)}addValidators(ct){this.setValidators(w(ct,this._rawValidators))}addAsyncValidators(ct){this.setAsyncValidators(w(ct,this._rawAsyncValidators))}removeValidators(ct){this.setValidators(X(ct,this._rawValidators))}removeAsyncValidators(ct){this.setAsyncValidators(X(ct,this._rawAsyncValidators))}hasValidator(ct){return se(this._rawValidators,ct)}hasAsyncValidator(ct){return se(this._rawAsyncValidators,ct)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(ct={}){this.touched=!0,this._parent&&!ct.onlySelf&&this._parent.markAsTouched(ct)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(ct=>ct.markAllAsTouched())}markAsUntouched(ct={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(Ye=>{Ye.markAsUntouched({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}markAsDirty(ct={}){this.pristine=!1,this._parent&&!ct.onlySelf&&this._parent.markAsDirty(ct)}markAsPristine(ct={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(Ye=>{Ye.markAsPristine({onlySelf:!0})}),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}markAsPending(ct={}){this.status=pt,!1!==ct.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!ct.onlySelf&&this._parent.markAsPending(ct)}disable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=ht,this.errors=null,this._forEachChild(vt=>{vt.disable({...ct,onlySelf:!0})}),this._updateValue(),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!0))}enable(ct={}){const Ye=this._parentMarkedDirty(ct.onlySelf);this.status=st,this._forEachChild(vt=>{vt.enable({...ct,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent}),this._updateAncestors({...ct,skipPristineCheck:Ye}),this._onDisabledChange.forEach(vt=>vt(!1))}_updateAncestors(ct){this._parent&&!ct.onlySelf&&(this._parent.updateValueAndValidity(ct),ct.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(ct){this._parent=ct}getRawValue(){return this.value}updateValueAndValidity(ct={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===st||this.status===pt)&&this._runAsyncValidator(ct.emitEvent)),!1!==ct.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!ct.onlySelf&&this._parent.updateValueAndValidity(ct)}_updateTreeValidity(ct={emitEvent:!0}){this._forEachChild(Ye=>Ye._updateTreeValidity(ct)),this.updateValueAndValidity({onlySelf:!0,emitEvent:ct.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ht:st}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(ct){if(this.asyncValidator){this.status=pt,this._hasOwnPendingAsyncValidator=!0;const Ye=o(this.asyncValidator(this));this._asyncValidationSubscription=Ye.subscribe(vt=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(vt,{emitEvent:ct})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(ct,Ye={}){this.errors=ct,this._updateControlsErrors(!1!==Ye.emitEvent)}get(ct){let Ye=ct;return null==Ye||(Array.isArray(Ye)||(Ye=Ye.split(".")),0===Ye.length)?null:Ye.reduce((vt,Bt)=>vt&&vt._find(Bt),this)}getError(ct,Ye){const vt=Ye?this.get(Ye):this;return vt&&vt.errors?vt.errors[ct]:null}hasError(ct,Ye){return!!this.getError(ct,Ye)}get root(){let ct=this;for(;ct._parent;)ct=ct._parent;return ct}_updateControlsErrors(ct){this.status=this._calculateStatus(),ct&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(ct)}_initObservables(){this.valueChanges=new M.bkB,this.statusChanges=new M.bkB}_calculateStatus(){return this._allControlsDisabled()?ht:this.errors?kt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(pt)?pt:this._anyControlsHaveStatus(kt)?kt:st}_anyControlsHaveStatus(ct){return this._anyControls(Ye=>Ye.status===ct)}_anyControlsDirty(){return this._anyControls(ct=>ct.dirty)}_anyControlsTouched(){return this._anyControls(ct=>ct.touched)}_updatePristine(ct={}){this.pristine=!this._anyControlsDirty(),this._parent&&!ct.onlySelf&&this._parent._updatePristine(ct)}_updateTouched(ct={}){this.touched=this._anyControlsTouched(),this._parent&&!ct.onlySelf&&this._parent._updateTouched(ct)}_registerOnCollectionChange(ct){this._onCollectionChange=ct}_setUpdateStrategy(ct){At(ct)&&null!=ct.updateOn&&(this._updateOn=ct.updateOn)}_parentMarkedDirty(ct){return!ct&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(ct){return null}_assignValidators(ct){this._rawValidators=Array.isArray(ct)?ct.slice():ct,this._composedValidatorFn=function Gt(ot){return Array.isArray(ot)?k(ot):ot||null}(this._rawValidators)}_assignAsyncValidators(ct){this._rawAsyncValidators=Array.isArray(ct)?ct.slice():ct,this._composedAsyncValidatorFn=function Mt(ot){return Array.isArray(ot)?S(ot):ot||null}(this._rawAsyncValidators)}}class ui extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(ct,Ye){return this.controls[ct]?this.controls[ct]:(this.controls[ct]=Ye,Ye.setParent(this),Ye._registerOnCollectionChange(this._onCollectionChange),Ye)}addControl(ct,Ye,vt={}){this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}removeControl(ct,Ye={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}setControl(ct,Ye,vt={}){this.controls[ct]&&this.controls[ct]._registerOnCollectionChange(()=>{}),delete this.controls[ct],Ye&&this.registerControl(ct,Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}contains(ct){return this.controls.hasOwnProperty(ct)&&this.controls[ct].enabled}setValue(ct,Ye={}){wt(this,0,ct),Object.keys(ct).forEach(vt=>{_t(this,!0,vt),this.controls[vt].setValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(Object.keys(ct).forEach(vt=>{const Bt=this.controls[vt];Bt&&Bt.patchValue(ct[vt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct={},Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct?ct[Bt]:null,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this._reduceChildren({},(ct,Ye,vt)=>(ct[vt]=Ye.getRawValue(),ct))}_syncPendingControls(){let ct=this._reduceChildren(!1,(Ye,vt)=>!!vt._syncPendingControls()||Ye);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){Object.keys(this.controls).forEach(Ye=>{const vt=this.controls[Ye];vt&&ct(vt,Ye)})}_setUpControls(){this._forEachChild(ct=>{ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(ct){for(const[Ye,vt]of Object.entries(this.controls))if(this.contains(Ye)&&ct(vt))return!0;return!1}_reduceValue(){return this._reduceChildren({},(Ye,vt,Bt)=>((vt.enabled||this.disabled)&&(Ye[Bt]=vt.value),Ye))}_reduceChildren(ct,Ye){let vt=ct;return this._forEachChild((Bt,Vi)=>{vt=Ye(vt,Bt,Vi)}),vt}_allControlsDisabled(){for(const ct of Object.keys(this.controls))if(this.controls[ct].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(ct){return this.controls.hasOwnProperty(ct)?this.controls[ct]:null}}class Gi extends ui{}const Fn=new M.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>ls}),ls="always";function fs(ot,ct){return[...ct.path,ot]}function zn(ot,ct,Ye=ls){On(ot,ct),ct.valueAccessor.writeValue(ot.value),(ot.disabled||"always"===Ye)&&ct.valueAccessor.setDisabledState?.(ot.disabled),function As(ot,ct){ct.valueAccessor.registerOnChange(Ye=>{ot._pendingValue=Ye,ot._pendingChange=!0,ot._pendingDirty=!0,"change"===ot.updateOn&&$i(ot,ct)})}(ot,ct),function ws(ot,ct){const Ye=(vt,Bt)=>{ct.valueAccessor.writeValue(vt),Bt&&ct.viewToModelUpdate(vt)};ot.registerOnChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnChange(Ye)})}(ot,ct),function $n(ot,ct){ct.valueAccessor.registerOnTouched(()=>{ot._pendingTouched=!0,"blur"===ot.updateOn&&ot._pendingChange&&$i(ot,ct),"submit"!==ot.updateOn&&ot.markAsTouched()})}(ot,ct),function Cs(ot,ct){if(ct.valueAccessor.setDisabledState){const Ye=vt=>{ct.valueAccessor.setDisabledState(vt)};ot.registerOnDisabledChange(Ye),ct._registerOnDestroy(()=>{ot._unregisterOnDisabledChange(Ye)})}}(ot,ct)}function dn(ot,ct,Ye=!0){const vt=()=>{};ct.valueAccessor&&(ct.valueAccessor.registerOnChange(vt),ct.valueAccessor.registerOnTouched(vt)),Pn(ot,ct),ot&&(ct._invokeOnDestroyCallbacks(),ot._registerOnCollectionChange(()=>{}))}function Di(ot,ct){ot.forEach(Ye=>{Ye.registerOnValidatorChange&&Ye.registerOnValidatorChange(ct)})}function On(ot,ct){const Ye=H(ot);null!==ct.validator?ot.setValidators(j(Ye,ct.validator)):"function"==typeof Ye&&ot.setValidators([Ye]);const vt=Y(ot);null!==ct.asyncValidator?ot.setAsyncValidators(j(vt,ct.asyncValidator)):"function"==typeof vt&&ot.setAsyncValidators([vt]);const Bt=()=>ot.updateValueAndValidity();Di(ct._rawValidators,Bt),Di(ct._rawAsyncValidators,Bt)}function Pn(ot,ct){let Ye=!1;if(null!==ot){if(null!==ct.validator){const Bt=H(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.validator);Vi.length!==Bt.length&&(Ye=!0,ot.setValidators(Vi))}}if(null!==ct.asyncValidator){const Bt=Y(ot);if(Array.isArray(Bt)&&Bt.length>0){const Vi=Bt.filter(vn=>vn!==ct.asyncValidator);Vi.length!==Bt.length&&(Ye=!0,ot.setAsyncValidators(Vi))}}}const vt=()=>{};return Di(ct._rawValidators,vt),Di(ct._rawAsyncValidators,vt),Ye}function $i(ot,ct){ot._pendingDirty&&ot.markAsDirty(),ot.setValue(ot._pendingValue,{emitModelToViewChange:!1}),ct.viewToModelUpdate(ot._pendingValue),ot._pendingChange=!1}function Nt(ot,ct){if(!ot.hasOwnProperty("model"))return!1;const Ye=ot.model;return!!Ye.isFirstChange()||!Object.is(ct,Ye.currentValue)}function $e(ot,ct){if(!ct)return null;let Ye,vt,Bt;return Array.isArray(ct),ct.forEach(Vi=>{Vi.constructor===$?Ye=Vi:function bt(ot){return Object.getPrototypeOf(ot.constructor)===re}(Vi)?vt=Vi:Bt=Vi}),Bt||vt||Ye||null}function Si(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}function Hi(ot){return"object"==typeof ot&&null!==ot&&2===Object.keys(ot).length&&"value"in ot&&"disabled"in ot}Promise.resolve();const rs=class extends Jt{constructor(ct=null,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(ct),this._setUpdateStrategy(Ye),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),At(Ye)&&(Ye.nonNullable||Ye.initialValueIsDefault)&&(this.defaultValue=Hi(ct)?ct.value:ct)}setValue(ct,Ye={}){this.value=this._pendingValue=ct,this._onChange.length&&!1!==Ye.emitModelToViewChange&&this._onChange.forEach(vt=>vt(this.value,!1!==Ye.emitViewToModelChange)),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){this.setValue(ct,Ye)}reset(ct=this.defaultValue,Ye={}){this._applyFormState(ct),this.markAsPristine(Ye),this.markAsUntouched(Ye),this.setValue(this.value,Ye),this._pendingChange=!1}_updateValue(){}_anyControls(ct){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(ct){this._onChange.push(ct)}_unregisterOnChange(ct){Si(this._onChange,ct)}registerOnDisabledChange(ct){this._onDisabledChange.push(ct)}_unregisterOnDisabledChange(ct){Si(this._onDisabledChange,ct)}_forEachChild(ct){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(ct){Hi(ct)?(this.value=this._pendingValue=ct.value,ct.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=ct}};let cn=(()=>{class ot extends x{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,features:[M.Vt3]})}return ot})();const Vr={provide:N,useExisting:(0,M.Rfq)(()=>Tn)},Ki=Promise.resolve();let Tn=(()=>{class ot extends N{constructor(Ye,vt,Bt,Vi,vn,no){super(),this._changeDetectorRef=vn,this.callSetDisabledState=no,this.control=new rs,this._registered=!1,this.name="",this.update=new M.bkB,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){if(this._checkForErrors(),!this._registered||"name"in Ye){if(this._registered&&(this._checkName(),this.formDirective)){const vt=Ye.name.previousValue;this.formDirective.removeControl({name:vt,path:this._getPath(vt)})}this._setUpControl()}"isDisabled"in Ye&&this._updateDisabled(Ye),Nt(Ye,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){zn(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(Ye){Ki.then(()=>{this.control.setValue(Ye,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(Ye){const vt=Ye.isDisabled.currentValue,Bt=0!==vt&&(0,M.L39)(vt);Ki.then(()=>{Bt&&!this.control.disabled?this.control.disable():!Bt&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(Ye){return this._parent?fs(Ye,this._parent):[Ye]}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,9),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(M.gRc,8),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"],options:[M.Mj6.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[M.Jv_([Vr]),M.Vt3,M.OA$]})}return ot})(),Jl=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return ot})();const pr={provide:ve,useExisting:(0,M.Rfq)(()=>Oa),multi:!0};let Oa=(()=>{class ot extends re{writeValue(Ye){this.setProperty("value",Ye??"")}registerOnChange(Ye){this.onChange=vt=>{Ye(""==vt?null:parseFloat(vt))}}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("input",function(vn){return Bt.onChange(vn.target.value)})("blur",function(){return Bt.onTouched()})},features:[M.Jv_([pr]),M.Vt3]})}return ot})();const Gs=new M.nKC(""),rl={provide:x,useExisting:(0,M.Rfq)(()=>vr)};let vr=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.callSetDisabledState=Bt,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new M.bkB,this._setValidators(Ye),this._setAsyncValidators(vt)}ngOnChanges(Ye){this._checkFormPresent(),Ye.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Pn(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(Ye){const vt=this.form.get(Ye.path);return zn(vt,Ye,this.callSetDisabledState),vt.updateValueAndValidity({emitEvent:!1}),this.directives.push(Ye),vt}getControl(Ye){return this.form.get(Ye.path)}removeControl(Ye){dn(Ye.control||null,Ye,!1),function yt(ot,ct){const Ye=ot.indexOf(ct);Ye>-1&&ot.splice(Ye,1)}(this.directives,Ye)}addFormGroup(Ye){this._setUpFormContainer(Ye)}removeFormGroup(Ye){this._cleanUpFormContainer(Ye)}getFormGroup(Ye){return this.form.get(Ye.path)}addFormArray(Ye){this._setUpFormContainer(Ye)}removeFormArray(Ye){this._cleanUpFormContainer(Ye)}getFormArray(Ye){return this.form.get(Ye.path)}updateModel(Ye,vt){this.form.get(Ye.path).setValue(vt)}onSubmit(Ye){return this.submitted=!0,function xt(ot,ct){ot._syncPendingControls(),ct.forEach(Ye=>{const vt=Ye.control;"submit"===vt.updateOn&&vt._pendingChange&&(Ye.viewToModelUpdate(vt._pendingValue),vt._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(Ye),"dialog"===Ye?.target?.method}onReset(){this.resetForm()}resetForm(Ye=void 0){this.form.reset(Ye),this.submitted=!1}_updateDomValue(){this.directives.forEach(Ye=>{const vt=Ye.control,Bt=this.form.get(Ye.path);vt!==Bt&&(dn(vt||null,Ye),(ot=>ot instanceof rs)(Bt)&&(zn(Bt,Ye,this.callSetDisabledState),Ye.control=Bt))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(Ye){const vt=this.form.get(Ye.path);(function kn(ot,ct){On(ot,ct)})(vt,Ye),vt.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(Ye){if(this.form){const vt=this.form.get(Ye.path);vt&&function jr(ot,ct){return Pn(ot,ct)}(vt,Ye)&&vt.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){On(this.form,this),this._oldForm&&Pn(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(F,10),M.rXU(L,10),M.rXU(Fn,8))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroup",""]],hostBindings:function(vt,Bt){1&vt&&M.bIt("submit",function(vn){return Bt.onSubmit(vn)})("reset",function(){return Bt.onReset()})},inputs:{form:[M.Mj6.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[M.Jv_([rl]),M.Vt3,M.OA$]})}return ot})();const Hs={provide:x,useExisting:(0,M.Rfq)(()=>yr)};let yr=(()=>{class ot extends cn{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formGroupName",""]],inputs:{name:[M.Mj6.None,"formGroupName","name"]},features:[M.Jv_([Hs]),M.Vt3]})}return ot})();const ol={provide:x,useExisting:(0,M.Rfq)(()=>ua)};let ua=(()=>{class ot extends x{constructor(Ye,vt,Bt){super(),this.name=null,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){Ra(this._parent)}static#e=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10))};static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["","formArrayName",""]],inputs:{name:[M.Mj6.None,"formArrayName","name"]},features:[M.Jv_([ol]),M.Vt3]})}return ot})();function Ra(ot){return!(ot instanceof yr||ot instanceof vr||ot instanceof ua)}const go={provide:N,useExisting:(0,M.Rfq)(()=>xr)};let xr=(()=>{class ot extends N{set isDisabled(Ye){}static#e=this._ngModelWarningSentOnce=!1;constructor(Ye,vt,Bt,Vi,vn){super(),this._ngModelWarningConfig=vn,this._added=!1,this.name=null,this.update=new M.bkB,this._ngModelWarningSent=!1,this._parent=Ye,this._setValidators(vt),this._setAsyncValidators(Bt),this.valueAccessor=$e(0,Vi)}ngOnChanges(Ye){this._added||this._setUpControl(),Nt(Ye,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(Ye){this.viewModel=Ye,this.update.emit(Ye)}get path(){return fs(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(vt){return new(vt||ot)(M.rXU(x,13),M.rXU(F,10),M.rXU(L,10),M.rXU(ve,10),M.rXU(Gs,8))};static#i=this.\u0275dir=M.FsC({type:ot,selectors:[["","formControlName",""]],inputs:{name:[M.Mj6.None,"formControlName","name"],isDisabled:[M.Mj6.None,"disabled","isDisabled"],model:[M.Mj6.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[M.Jv_([go]),M.Vt3,M.OA$]})}return ot})();let er=(()=>{class ot{constructor(){this._validator=g}ngOnChanges(Ye){if(this.inputName in Ye){const vt=this.normalizeInput(Ye[this.inputName].currentValue);this._enabled=this.enabled(vt),this._validator=this._enabled?this.createValidator(vt):g,this._onChange&&this._onChange()}}validate(Ye){return this._validator(Ye)}registerOnValidatorChange(Ye){this._onChange=Ye}enabled(Ye){return null!=Ye}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275dir=M.FsC({type:ot,features:[M.OA$]})}return ot})();const cl={provide:F,useExisting:(0,M.Rfq)(()=>Er),multi:!0};let Er=(()=>{class ot extends er{constructor(){super(...arguments),this.inputName="min",this.normalizeInput=Ye=>function Eo(ot){return"number"==typeof ot?ot:parseFloat(ot)}(Ye),this.createValidator=Ye=>E(Ye)}static#e=this.\u0275fac=(()=>{let Ye;return function(Bt){return(Ye||(Ye=M.xGo(ot)))(Bt||ot)}})();static#t=this.\u0275dir=M.FsC({type:ot,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(vt,Bt){2&vt&&M.BMQ("min",Bt._enabled?Bt.min:null)},inputs:{min:"min"},features:[M.Jv_([cl]),M.Vt3]})}return ot})(),Ys=(()=>{class ot{static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({})}return ot})();class Mn extends Jt{constructor(ct,Ye,vt){super(Lt(Ye),ti(vt,Ye)),this.controls=ct,this._initObservables(),this._setUpdateStrategy(Ye),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(ct){return this.controls[this._adjustIndex(ct)]}push(ct,Ye={}){this.controls.push(ct),this._registerControl(ct),this.updateValueAndValidity({emitEvent:Ye.emitEvent}),this._onCollectionChange()}insert(ct,Ye,vt={}){this.controls.splice(ct,0,Ye),this._registerControl(Ye),this.updateValueAndValidity({emitEvent:vt.emitEvent})}removeAt(ct,Ye={}){let vt=this._adjustIndex(ct);vt<0&&(vt=0),this.controls[vt]&&this.controls[vt]._registerOnCollectionChange(()=>{}),this.controls.splice(vt,1),this.updateValueAndValidity({emitEvent:Ye.emitEvent})}setControl(ct,Ye,vt={}){let Bt=this._adjustIndex(ct);Bt<0&&(Bt=0),this.controls[Bt]&&this.controls[Bt]._registerOnCollectionChange(()=>{}),this.controls.splice(Bt,1),Ye&&(this.controls.splice(Bt,0,Ye),this._registerControl(Ye)),this.updateValueAndValidity({emitEvent:vt.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(ct,Ye={}){wt(this,0,ct),ct.forEach((vt,Bt)=>{_t(this,!1,Bt),this.at(Bt).setValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye)}patchValue(ct,Ye={}){null!=ct&&(ct.forEach((vt,Bt)=>{this.at(Bt)&&this.at(Bt).patchValue(vt,{onlySelf:!0,emitEvent:Ye.emitEvent})}),this.updateValueAndValidity(Ye))}reset(ct=[],Ye={}){this._forEachChild((vt,Bt)=>{vt.reset(ct[Bt],{onlySelf:!0,emitEvent:Ye.emitEvent})}),this._updatePristine(Ye),this._updateTouched(Ye),this.updateValueAndValidity(Ye)}getRawValue(){return this.controls.map(ct=>ct.getRawValue())}clear(ct={}){this.controls.length<1||(this._forEachChild(Ye=>Ye._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:ct.emitEvent}))}_adjustIndex(ct){return ct<0?ct+this.length:ct}_syncPendingControls(){let ct=this.controls.reduce((Ye,vt)=>!!vt._syncPendingControls()||Ye,!1);return ct&&this.updateValueAndValidity({onlySelf:!0}),ct}_forEachChild(ct){this.controls.forEach((Ye,vt)=>{ct(Ye,vt)})}_updateValue(){this.value=this.controls.filter(ct=>ct.enabled||this.disabled).map(ct=>ct.value)}_anyControls(ct){return this.controls.some(Ye=>Ye.enabled&&ct(Ye))}_setUpControls(){this._forEachChild(ct=>this._registerControl(ct))}_allControlsDisabled(){for(const ct of this.controls)if(ct.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(ct){ct.setParent(this),ct._registerOnCollectionChange(this._onCollectionChange)}_find(ct){return this.at(ct)??null}}function qo(ot){return!!ot&&(void 0!==ot.asyncValidators||void 0!==ot.validators||void 0!==ot.updateOn)}let bo=(()=>{class ot{constructor(){this.useNonNullable=!1}get nonNullable(){const Ye=new ot;return Ye.useNonNullable=!0,Ye}group(Ye,vt=null){const Bt=this._reduceControls(Ye);let Vi={};return qo(vt)?Vi=vt:null!==vt&&(Vi.validators=vt.validator,Vi.asyncValidators=vt.asyncValidator),new ui(Bt,Vi)}record(Ye,vt=null){const Bt=this._reduceControls(Ye);return new Gi(Bt,vt)}control(Ye,vt,Bt){let Vi={};return this.useNonNullable?(qo(vt)?Vi=vt:(Vi.validators=vt,Vi.asyncValidators=Bt),new rs(Ye,{...Vi,nonNullable:!0})):new rs(Ye,vt,Bt)}array(Ye,vt,Bt){const Vi=Ye.map(vn=>this._createControl(vn));return new Mn(Vi,vt,Bt)}_reduceControls(Ye){const vt={};return Object.keys(Ye).forEach(Bt=>{vt[Bt]=this._createControl(Ye[Bt])}),vt}_createControl(Ye){return Ye instanceof rs||Ye instanceof Jt?Ye:Array.isArray(Ye)?this.control(Ye[0],Ye.length>1?Ye[1]:null,Ye.length>2?Ye[2]:null):this.control(Ye)}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275prov=M.jDH({token:ot,factory:ot.\u0275fac,providedIn:"root"})}return ot})(),Qo=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})(),ja=(()=>{class ot{static withConfig(Ye){return{ngModule:ot,providers:[{provide:Gs,useValue:Ye.warnOnNgModelWithFormControl??"always"},{provide:Fn,useValue:Ye.callSetDisabledState??ls}]}}static#e=this.\u0275fac=function(vt){return new(vt||ot)};static#t=this.\u0275mod=M.$C({type:ot});static#i=this.\u0275inj=M.G2t({imports:[Ys]})}return ot})()},345:(ri,Ft,He)=>{"use strict";He.d(Ft,{B7:()=>z,Bb:()=>R,EU:()=>pe,hE:()=>he,sG:()=>X,up:()=>Xe});var M=He(54438),e=He(60177);class V extends e.VF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Pe extends V{static makeCurrent(){(0,e.ZD)(new Pe)}onAndCancel(At,_t,wt){return At.addEventListener(_t,wt),()=>{At.removeEventListener(_t,wt)}}dispatchEvent(At,_t){At.dispatchEvent(_t)}remove(At){At.parentNode&&At.parentNode.removeChild(At)}createElement(At,_t){return(_t=_t||this.getDefaultDocument()).createElement(At)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(At){return At.nodeType===Node.ELEMENT_NODE}isShadowRoot(At){return At instanceof DocumentFragment}getGlobalEventTarget(At,_t){return"window"===_t?window:"document"===_t?At:"body"===_t?At.body:null}getBaseHref(At){const _t=function ie(){return Z=Z||document.querySelector("base"),Z?Z.getAttribute("href"):null}();return null==_t?null:function re(Mt){return new URL(Mt,document.baseURI).pathname}(_t)}resetBaseElement(){Z=null}getUserAgent(){return window.navigator.userAgent}getCookie(At){return(0,e._b)(document.cookie,At)}}let Z=null,le=(()=>{class Mt{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const fe=new M.nKC("");let pe=(()=>{class Mt{constructor(_t,wt){this._zone=wt,this._eventNameToPlugin=new Map,_t.forEach(Jt=>{Jt.manager=this}),this._plugins=_t.slice().reverse()}addEventListener(_t,wt,Jt){return this._findPluginFor(wt).addEventListener(_t,wt,Jt)}getZone(){return this._zone}_findPluginFor(_t){let wt=this._eventNameToPlugin.get(_t);if(wt)return wt;if(wt=this._plugins.find(ui=>ui.supports(_t)),!wt)throw new M.wOt(5101,!1);return this._eventNameToPlugin.set(_t,wt),wt}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(fe),M.KVO(M.SKi))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class J{constructor(At){this._doc=At}}const te="ng-app-id";let $=(()=>{class Mt{constructor(_t,wt,Jt,ui={}){this.doc=_t,this.appId=wt,this.nonce=Jt,this.platformId=ui,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=(0,e.Vy)(ui),this.resetHostNodes()}addStyles(_t){for(const wt of _t)1===this.changeUsageCount(wt,1)&&this.onStyleAdded(wt)}removeStyles(_t){for(const wt of _t)this.changeUsageCount(wt,-1)<=0&&this.onStyleRemoved(wt)}ngOnDestroy(){const _t=this.styleNodesInDOM;_t&&(_t.forEach(wt=>wt.remove()),_t.clear());for(const wt of this.getAllStyles())this.onStyleRemoved(wt);this.resetHostNodes()}addHost(_t){this.hostNodes.add(_t);for(const wt of this.getAllStyles())this.addStyleToHost(_t,wt)}removeHost(_t){this.hostNodes.delete(_t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(_t){for(const wt of this.hostNodes)this.addStyleToHost(wt,_t)}onStyleRemoved(_t){const wt=this.styleRef;wt.get(_t)?.elements?.forEach(Jt=>Jt.remove()),wt.delete(_t)}collectServerRenderedStyles(){const _t=this.doc.head?.querySelectorAll(`style[${te}="${this.appId}"]`);if(_t?.length){const wt=new Map;return _t.forEach(Jt=>{null!=Jt.textContent&&wt.set(Jt.textContent,Jt)}),wt}return null}changeUsageCount(_t,wt){const Jt=this.styleRef;if(Jt.has(_t)){const ui=Jt.get(_t);return ui.usage+=wt,ui.usage}return Jt.set(_t,{usage:wt,elements:[]}),wt}getStyleElement(_t,wt){const Jt=this.styleNodesInDOM,ui=Jt?.get(wt);if(ui?.parentNode===_t)return Jt.delete(wt),ui.removeAttribute(te),ui;{const Fi=this.doc.createElement("style");return this.nonce&&Fi.setAttribute("nonce",this.nonce),Fi.textContent=wt,this.platformIsServer&&Fi.setAttribute(te,this.appId),_t.appendChild(Fi),Fi}}addStyleToHost(_t,wt){const Jt=this.getStyleElement(_t,wt),ui=this.styleRef,Fi=ui.get(wt)?.elements;Fi?Fi.push(Jt):ui.set(wt,{elements:[Jt],usage:1})}resetHostNodes(){const _t=this.hostNodes;_t.clear(),_t.add(this.doc.head)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ),M.KVO(M.sZ2),M.KVO(M.BIS,8),M.KVO(M.Agw))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const A={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},B=/%COMP%/g,F="%COMP%",L=`_nghost-${F}`,D=`_ngcontent-${F}`,E=new M.nKC("",{providedIn:"root",factory:()=>!0});function T(Mt,At){return At.map(_t=>_t.replace(B,Mt))}let z=(()=>{class Mt{constructor(_t,wt,Jt,ui,Fi,mi,vi,Gi=null){this.eventManager=_t,this.sharedStylesHost=wt,this.appId=Jt,this.removeStylesOnCompDestroy=ui,this.doc=Fi,this.platformId=mi,this.ngZone=vi,this.nonce=Gi,this.rendererByCompId=new Map,this.platformIsServer=(0,e.Vy)(mi),this.defaultRenderer=new O(_t,Fi,vi,this.platformIsServer)}createRenderer(_t,wt){if(!_t||!wt)return this.defaultRenderer;this.platformIsServer&&wt.encapsulation===M.gXe.ShadowDom&&(wt={...wt,encapsulation:M.gXe.Emulated});const Jt=this.getOrCreateRenderer(_t,wt);return Jt instanceof n?Jt.applyToHost(_t):Jt instanceof o&&Jt.applyStyles(),Jt}getOrCreateRenderer(_t,wt){const Jt=this.rendererByCompId;let ui=Jt.get(wt.id);if(!ui){const Fi=this.doc,mi=this.ngZone,vi=this.eventManager,Gi=this.sharedStylesHost,_s=this.removeStylesOnCompDestroy,Fn=this.platformIsServer;switch(wt.encapsulation){case M.gXe.Emulated:ui=new n(vi,Gi,wt,this.appId,_s,Fi,mi,Fn);break;case M.gXe.ShadowDom:return new y(vi,Gi,_t,wt,Fi,mi,this.nonce,Fn);default:ui=new o(vi,Gi,wt,_s,Fi,mi,Fn)}Jt.set(wt.id,ui)}return ui}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(pe),M.KVO($),M.KVO(M.sZ2),M.KVO(E),M.KVO(e.qQ),M.KVO(M.Agw),M.KVO(M.SKi),M.KVO(M.BIS))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();class O{constructor(At,_t,wt,Jt){this.eventManager=At,this.doc=_t,this.ngZone=wt,this.platformIsServer=Jt,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(At,_t){return _t?this.doc.createElementNS(A[_t]||_t,At):this.doc.createElement(At)}createComment(At){return this.doc.createComment(At)}createText(At){return this.doc.createTextNode(At)}appendChild(At,_t){(g(At)?At.content:At).appendChild(_t)}insertBefore(At,_t,wt){At&&(g(At)?At.content:At).insertBefore(_t,wt)}removeChild(At,_t){At&&At.removeChild(_t)}selectRootElement(At,_t){let wt="string"==typeof At?this.doc.querySelector(At):At;if(!wt)throw new M.wOt(-5104,!1);return _t||(wt.textContent=""),wt}parentNode(At){return At.parentNode}nextSibling(At){return At.nextSibling}setAttribute(At,_t,wt,Jt){if(Jt){_t=Jt+":"+_t;const ui=A[Jt];ui?At.setAttributeNS(ui,_t,wt):At.setAttribute(_t,wt)}else At.setAttribute(_t,wt)}removeAttribute(At,_t,wt){if(wt){const Jt=A[wt];Jt?At.removeAttributeNS(Jt,_t):At.removeAttribute(`${wt}:${_t}`)}else At.removeAttribute(_t)}addClass(At,_t){At.classList.add(_t)}removeClass(At,_t){At.classList.remove(_t)}setStyle(At,_t,wt,Jt){Jt&(M.czy.DashCase|M.czy.Important)?At.style.setProperty(_t,wt,Jt&M.czy.Important?"important":""):At.style[_t]=wt}removeStyle(At,_t,wt){wt&M.czy.DashCase?At.style.removeProperty(_t):At.style[_t]=""}setProperty(At,_t,wt){null!=At&&(At[_t]=wt)}setValue(At,_t){At.nodeValue=_t}listen(At,_t,wt){if("string"==typeof At&&!(At=(0,e.QT)().getGlobalEventTarget(this.doc,At)))throw new Error(`Unsupported event target ${At} for event ${_t}`);return this.eventManager.addEventListener(At,_t,this.decoratePreventDefault(wt))}decoratePreventDefault(At){return _t=>{if("__ngUnwrap__"===_t)return At;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>At(_t)):At(_t))&&_t.preventDefault()}}}function g(Mt){return"TEMPLATE"===Mt.tagName&&void 0!==Mt.content}class y extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,vi),this.sharedStylesHost=_t,this.hostEl=wt,this.shadowRoot=wt.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Gi=T(Jt.id,Jt.styles);for(const _s of Gi){const Fn=document.createElement("style");mi&&Fn.setAttribute("nonce",mi),Fn.textContent=_s,this.shadowRoot.appendChild(Fn)}}nodeOrShadowRoot(At){return At===this.hostEl?this.shadowRoot:At}appendChild(At,_t){return super.appendChild(this.nodeOrShadowRoot(At),_t)}insertBefore(At,_t,wt){return super.insertBefore(this.nodeOrShadowRoot(At),_t,wt)}removeChild(At,_t){return super.removeChild(this.nodeOrShadowRoot(At),_t)}parentNode(At){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(At)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class o extends O{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){super(At,ui,Fi,mi),this.sharedStylesHost=_t,this.removeStylesOnCompDestroy=Jt,this.styles=vi?T(vi,wt.styles):wt.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class n extends o{constructor(At,_t,wt,Jt,ui,Fi,mi,vi){const Gi=Jt+"-"+wt.id;super(At,_t,wt,ui,Fi,mi,vi,Gi),this.contentAttr=function _(Mt){return D.replace(B,Mt)}(Gi),this.hostAttr=function b(Mt){return L.replace(B,Mt)}(Gi)}applyToHost(At){this.applyStyles(),this.setAttribute(At,this.hostAttr,"")}createElement(At,_t){const wt=super.createElement(At,_t);return super.setAttribute(wt,this.contentAttr,""),wt}}let r=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return!0}addEventListener(_t,wt,Jt){return _t.addEventListener(wt,Jt,!1),()=>this.removeEventListener(_t,wt,Jt)}removeEventListener(_t,wt,Jt){return _t.removeEventListener(wt,Jt)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const l=["alt","control","meta","shift"],d={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},C={alt:Mt=>Mt.altKey,control:Mt=>Mt.ctrlKey,meta:Mt=>Mt.metaKey,shift:Mt=>Mt.shiftKey};let k=(()=>{class Mt extends J{constructor(_t){super(_t)}supports(_t){return null!=Mt.parseEventName(_t)}addEventListener(_t,wt,Jt){const ui=Mt.parseEventName(wt),Fi=Mt.eventCallback(ui.fullKey,Jt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,e.QT)().onAndCancel(_t,ui.domEventName,Fi))}static parseEventName(_t){const wt=_t.toLowerCase().split("."),Jt=wt.shift();if(0===wt.length||"keydown"!==Jt&&"keyup"!==Jt)return null;const ui=Mt._normalizeKey(wt.pop());let Fi="",mi=wt.indexOf("code");if(mi>-1&&(wt.splice(mi,1),Fi="code."),l.forEach(Gi=>{const _s=wt.indexOf(Gi);_s>-1&&(wt.splice(_s,1),Fi+=Gi+".")}),Fi+=ui,0!=wt.length||0===ui.length)return null;const vi={};return vi.domEventName=Jt,vi.fullKey=Fi,vi}static matchEventFullKeyCode(_t,wt){let Jt=d[_t.key]||_t.key,ui="";return wt.indexOf("code.")>-1&&(Jt=_t.code,ui="code."),!(null==Jt||!Jt)&&(Jt=Jt.toLowerCase()," "===Jt?Jt="space":"."===Jt&&(Jt="dot"),l.forEach(Fi=>{Fi!==Jt&&(0,C[Fi])(_t)&&(ui+=Fi+".")}),ui+=Jt,ui===wt)}static eventCallback(_t,wt,Jt){return ui=>{Mt.matchEventFullKeyCode(ui,_t)&&Jt.runGuarded(()=>wt(ui))}}static _normalizeKey(_t){return"esc"===_t?"escape":_t}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac})}return Mt})();const X=(0,M.oH4)(M.fpN,"browser",[{provide:M.Agw,useValue:e.AJ},{provide:M.PLl,useValue:function Y(){Pe.makeCurrent()},multi:!0},{provide:e.qQ,useFactory:function se(){return(0,M.TL$)(document),document},deps:[]}]),G=new M.nKC(""),x=[{provide:M.e01,useClass:class ve{addToWindow(At){M.JZv.getAngularTestability=(wt,Jt=!0)=>{const ui=At.findTestabilityInTree(wt,Jt);if(null==ui)throw new M.wOt(5103,!1);return ui},M.JZv.getAllAngularTestabilities=()=>At.getAllTestabilities(),M.JZv.getAllAngularRootElements=()=>At.getAllRootElements(),M.JZv.frameworkStabilizers||(M.JZv.frameworkStabilizers=[]),M.JZv.frameworkStabilizers.push(wt=>{const Jt=M.JZv.getAllAngularTestabilities();let ui=Jt.length;const Fi=function(){ui--,0==ui&&wt()};Jt.forEach(mi=>{mi.whenStable(Fi)})})}findTestabilityInTree(At,_t,wt){return null==_t?null:At.getTestability(_t)??(wt?(0,e.QT)().isShadowRoot(_t)?this.findTestabilityInTree(At,_t.host,!0):this.findTestabilityInTree(At,_t.parentElement,!0):null)}},deps:[]},{provide:M.WHO,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]},{provide:M.NYb,useClass:M.NYb,deps:[M.SKi,M.giA,M.e01]}],N=[{provide:M.H8p,useValue:"root"},{provide:M.zcH,useFactory:function U(){return new M.zcH},deps:[]},{provide:fe,useClass:r,multi:!0,deps:[e.qQ,M.SKi,M.Agw]},{provide:fe,useClass:k,multi:!0,deps:[e.qQ]},z,$,pe,{provide:M._9s,useExisting:z},{provide:e.N0,useClass:le,deps:[]},[]];let R=(()=>{class Mt{constructor(_t){}static withServerTransition(_t){return{ngModule:Mt,providers:[{provide:M.sZ2,useValue:_t.appId}]}}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(G,12))};static#t=this.\u0275mod=M.$C({type:Mt});static#i=this.\u0275inj=M.G2t({providers:[...N,...x],imports:[e.MD,M.Hbi]})}return Mt})(),he=(()=>{class Mt{constructor(_t){this._doc=_t}getTitle(){return this._doc.title}setTitle(_t){this._doc.title=_t||""}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})(),Xe=(()=>{class Mt{static#e=this.\u0275fac=function(wt){return new(wt||Mt)};static#t=this.\u0275prov=M.jDH({token:Mt,factory:function(wt){let Jt=null;return Jt=wt?new(wt||Mt):M.KVO(Ze),Jt},providedIn:"root"})}return Mt})(),Ze=(()=>{class Mt extends Xe{constructor(_t){super(),this._doc=_t}sanitize(_t,wt){if(null==wt)return null;switch(_t){case M.WPN.NONE:return wt;case M.WPN.HTML:return(0,M.ZF7)(wt,"HTML")?(0,M.rcV)(wt):(0,M.h9k)(this._doc,String(wt)).toString();case M.WPN.STYLE:return(0,M.ZF7)(wt,"Style")?(0,M.rcV)(wt):wt;case M.WPN.SCRIPT:if((0,M.ZF7)(wt,"Script"))return(0,M.rcV)(wt);throw new M.wOt(5200,!1);case M.WPN.URL:return(0,M.ZF7)(wt,"URL")?(0,M.rcV)(wt):(0,M.$MX)(String(wt));case M.WPN.RESOURCE_URL:if((0,M.ZF7)(wt,"ResourceURL"))return(0,M.rcV)(wt);throw new M.wOt(5201,!1);default:throw new M.wOt(5202,!1)}}bypassSecurityTrustHtml(_t){return(0,M.Kcf)(_t)}bypassSecurityTrustStyle(_t){return(0,M.cWb)(_t)}bypassSecurityTrustScript(_t){return(0,M.UyX)(_t)}bypassSecurityTrustUrl(_t){return(0,M.osQ)(_t)}bypassSecurityTrustResourceUrl(_t){return(0,M.e5t)(_t)}static#e=this.\u0275fac=function(wt){return new(wt||Mt)(M.KVO(e.qQ))};static#t=this.\u0275prov=M.jDH({token:Mt,factory:Mt.\u0275fac,providedIn:"root"})}return Mt})()},93331:(ri,Ft,He)=>{"use strict";He.d(Ft,{nX:()=>go,wF:()=>un,Kp:()=>ms,b:()=>Oi,Ix:()=>pi,Wk:()=>gs,wQ:()=>ks,iI:()=>xl,n3:()=>Do});var M=He(54438),e=He(74402),V=He(86648),Pe=He(7673),Z=He(84412),ie=He(84572);const ve=(0,He(81853).L)(Re=>function(){Re(this),this.name="EmptyError",this.message="no elements in sequence"});var le=He(28793),fe=He(59030),pe=He(71203),J=He(18810),te=He(983),$=He(71985),A=He(18359),B=He(39974),F=He(54360);function L(){return(0,B.N)((Re,Ue)=>{let Be=null;Re._refCount++;const We=(0,F._)(Ue,void 0,void 0,void 0,()=>{if(!Re||Re._refCount<=0||0<--Re._refCount)return void(Be=null);const rt=Re._connection,mt=Be;Be=null,rt&&(!mt||rt===mt)&&rt.unsubscribe(),Ue.unsubscribe()});Re.subscribe(We),We.closed||(Be=Re.connect())})}class D extends $.c{constructor(Ue,Be){super(),this.source=Ue,this.subjectFactory=Be,this._subject=null,this._refCount=0,this._connection=null,(0,B.S)(Ue)&&(this.lift=Ue.lift)}_subscribe(Ue){return this.getSubject().subscribe(Ue)}getSubject(){const Ue=this._subject;return(!Ue||Ue.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:Ue}=this;this._subject=this._connection=null,Ue?.unsubscribe()}connect(){let Ue=this._connection;if(!Ue){Ue=this._connection=new A.yU;const Be=this.getSubject();Ue.add(this.source.subscribe((0,F._)(Be,void 0,()=>{this._teardown(),Be.complete()},We=>{this._teardown(),Be.error(We)},()=>this._teardown()))),Ue.closed&&(this._connection=null,Ue=A.yU.EMPTY)}return Ue}refCount(){return L()(this)}}var I=He(21413),E=He(60177),_=He(96354),b=He(25558),T=He(96697),z=He(99172),O=He(5964),f=He(73028),a=He(39901);function g(Re=y){return(0,B.N)((Ue,Be)=>{let We=!1;Ue.subscribe((0,F._)(Be,rt=>{We=!0,Be.next(rt)},()=>We?Be.complete():Be.error(Re())))})}function y(){return new ve}var o=He(33669);function n(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,(0,T.s)(1),Be?(0,a.U)(Ue):g(()=>new ve))}var r=He(70274),l=He(88141),d=He(99437);function p(Re){return Re<=0?()=>te.w:(0,B.N)((Ue,Be)=>{let We=[];Ue.subscribe((0,F._)(Be,rt=>{We.push(rt),Re{for(const rt of We)Be.next(rt);Be.complete()},void 0,()=>{We=null}))})}var j=He(73703),H=He(70980),Y=He(56977),U=He(26365),se=He(345);const w="primary",X=Symbol("RouteTitle");class G{constructor(Ue){this.params=Ue||{}}has(Ue){return Object.prototype.hasOwnProperty.call(this.params,Ue)}get(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be[0]:Be}return null}getAll(Ue){if(this.has(Ue)){const Be=this.params[Ue];return Array.isArray(Be)?Be:[Be]}return[]}get keys(){return Object.keys(this.params)}}function x(Re){return new G(Re)}function N(Re,Ue,Be){const We=Be.path.split("/");if(We.length>Re.length||"full"===Be.pathMatch&&(Ue.hasChildren()||We.lengthWe[mt]===rt)}return Re===Ue}function me(Re){return Re.length>0?Re[Re.length-1]:null}function Ce(Re){return(0,e.A)(Re)?Re:(0,M.jNT)(Re)?(0,V.H)(Promise.resolve(Re)):(0,Pe.of)(Re)}const Se={exact:function oe(Re,Ue,Be){if(!Ze(Re.segments,Ue.segments)||!Te(Re.segments,Ue.segments,Be)||Re.numberOfChildren!==Ue.numberOfChildren)return!1;for(const We in Ue.children)if(!Re.children[We]||!oe(Re.children[We],Ue.children[We],Be))return!1;return!0},subset:de},Oe={exact:function Fe(Re,Ue){return K(Re,Ue)},subset:function ee(Re,Ue){return Object.keys(Ue).length<=Object.keys(Re).length&&Object.keys(Ue).every(Be=>he(Re[Be],Ue[Be]))},ignored:()=>!0};function Ae(Re,Ue,Be){return Se[Be.paths](Re.root,Ue.root,Be.matrixParams)&&Oe[Be.queryParams](Re.queryParams,Ue.queryParams)&&!("exact"===Be.fragment&&Re.fragment!==Ue.fragment)}function de(Re,Ue,Be){return ye(Re,Ue,Ue.segments,Be)}function ye(Re,Ue,Be,We){if(Re.segments.length>Be.length){const rt=Re.segments.slice(0,Be.length);return!(!Ze(rt,Be)||Ue.hasChildren()||!Te(rt,Be,We))}if(Re.segments.length===Be.length){if(!Ze(Re.segments,Be)||!Te(Re.segments,Be,We))return!1;for(const rt in Ue.children)if(!Re.children[rt]||!de(Re.children[rt],Ue.children[rt],We))return!1;return!0}{const rt=Be.slice(0,Re.segments.length),mt=Be.slice(Re.segments.length);return!!(Ze(Re.segments,rt)&&Te(Re.segments,rt,We)&&Re.children[w])&&ye(Re.children[w],Ue,mt,We)}}function Te(Re,Ue,Be){return Ue.every((We,rt)=>Oe[Be](Re[rt].parameters,We.parameters))}class _e{constructor(Ue=new Me([],{}),Be={},We=null){this.root=Ue,this.queryParams=Be,this.fragment=We}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return kt.serialize(this)}}class Me{constructor(Ue,Be){this.segments=Ue,this.children=Be,this.parent=null,Object.values(Be).forEach(We=>We.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return pt(this)}}class Ee{constructor(Ue,Be){this.path=Ue,this.parameters=Be}get parameterMap(){return this._parameterMap??=x(this.parameters),this._parameterMap}toString(){return wt(this)}}function Ze(Re,Ue){return Re.length===Ue.length&&Re.every((Be,We)=>Be.path===Ue[We].path)}let Qe=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>new st,providedIn:"root"})}return Re})();class st{parse(Ue){const Be=new zn(Ue);return new _e(Be.parseRootSegment(),Be.parseQueryParams(),Be.parseFragment())}serialize(Ue){const Be=`/${ht(Ue.root,!0)}`,We=function ui(Re){const Ue=Object.entries(Re).map(([Be,We])=>Array.isArray(We)?We.map(rt=>`${Gt(Be)}=${Gt(rt)}`).join("&"):`${Gt(Be)}=${Gt(We)}`).filter(Be=>Be);return Ue.length?`?${Ue.join("&")}`:""}(Ue.queryParams);return`${Be}${We}${"string"==typeof Ue.fragment?`#${function ti(Re){return encodeURI(Re)}(Ue.fragment)}`:""}`}}const kt=new st;function pt(Re){return Re.segments.map(Ue=>wt(Ue)).join("/")}function ht(Re,Ue){if(!Re.hasChildren())return pt(Re);if(Ue){const Be=Re.children[w]?ht(Re.children[w],!1):"",We=[];return Object.entries(Re.children).forEach(([rt,mt])=>{rt!==w&&We.push(`${rt}:${ht(mt,!1)}`)}),We.length>0?`${Be}(${We.join("//")})`:Be}{const Be=function lt(Re,Ue){let Be=[];return Object.entries(Re.children).forEach(([We,rt])=>{We===w&&(Be=Be.concat(Ue(rt,We)))}),Object.entries(Re.children).forEach(([We,rt])=>{We!==w&&(Be=Be.concat(Ue(rt,We)))}),Be}(Re,(We,rt)=>rt===w?[ht(Re.children[w],!1)]:[`${rt}:${ht(We,!1)}`]);return 1===Object.keys(Re.children).length&&null!=Re.children[w]?`${pt(Re)}/${Be[0]}`:`${pt(Re)}/(${Be.join("//")})`}}function Lt(Re){return encodeURIComponent(Re).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Gt(Re){return Lt(Re).replace(/%3B/gi,";")}function Mt(Re){return Lt(Re).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function At(Re){return decodeURIComponent(Re)}function _t(Re){return At(Re.replace(/\+/g,"%20"))}function wt(Re){return`${Mt(Re.path)}${function Jt(Re){return Object.entries(Re).map(([Ue,Be])=>`;${Mt(Ue)}=${Mt(Be)}`).join("")}(Re.parameters)}`}const Fi=/^[^\/()?;#]+/;function mi(Re){const Ue=Re.match(Fi);return Ue?Ue[0]:""}const vi=/^[^\/()?;=#]+/,_s=/^[^=?&#]+/,ls=/^[^&#]+/;class zn{constructor(Ue){this.url=Ue,this.remaining=Ue}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Me([],{}):new Me([],this.parseChildren())}parseQueryParams(){const Ue={};if(this.consumeOptional("?"))do{this.parseQueryParam(Ue)}while(this.consumeOptional("&"));return Ue}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const Ue=[];for(this.peekStartsWith("(")||Ue.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),Ue.push(this.parseSegment());let Be={};this.peekStartsWith("/(")&&(this.capture("/"),Be=this.parseParens(!0));let We={};return this.peekStartsWith("(")&&(We=this.parseParens(!1)),(Ue.length>0||Object.keys(Be).length>0)&&(We[w]=new Me(Ue,Be)),We}parseSegment(){const Ue=mi(this.remaining);if(""===Ue&&this.peekStartsWith(";"))throw new M.wOt(4009,!1);return this.capture(Ue),new Ee(At(Ue),this.parseMatrixParams())}parseMatrixParams(){const Ue={};for(;this.consumeOptional(";");)this.parseParam(Ue);return Ue}parseParam(Ue){const Be=function Gi(Re){const Ue=Re.match(vi);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const rt=mi(this.remaining);rt&&(We=rt,this.capture(We))}Ue[At(Be)]=At(We)}parseQueryParam(Ue){const Be=function Fn(Re){const Ue=Re.match(_s);return Ue?Ue[0]:""}(this.remaining);if(!Be)return;this.capture(Be);let We="";if(this.consumeOptional("=")){const Ot=function fs(Re){const Ue=Re.match(ls);return Ue?Ue[0]:""}(this.remaining);Ot&&(We=Ot,this.capture(We))}const rt=_t(Be),mt=_t(We);if(Ue.hasOwnProperty(rt)){let Ot=Ue[rt];Array.isArray(Ot)||(Ot=[Ot],Ue[rt]=Ot),Ot.push(mt)}else Ue[rt]=mt}parseParens(Ue){const Be={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const We=mi(this.remaining),rt=this.remaining[We.length];if("/"!==rt&&")"!==rt&&";"!==rt)throw new M.wOt(4010,!1);let mt;We.indexOf(":")>-1?(mt=We.slice(0,We.indexOf(":")),this.capture(mt),this.capture(":")):Ue&&(mt=w);const Ot=this.parseChildren();Be[mt]=1===Object.keys(Ot).length?Ot[w]:new Me([],Ot),this.consumeOptional("//")}return Be}peekStartsWith(Ue){return this.remaining.startsWith(Ue)}consumeOptional(Ue){return!!this.peekStartsWith(Ue)&&(this.remaining=this.remaining.substring(Ue.length),!0)}capture(Ue){if(!this.consumeOptional(Ue))throw new M.wOt(4011,!1)}}function dn(Re){return Re.segments.length>0?new Me([],{[w]:Re}):Re}function Di(Re){const Ue={};for(const[We,rt]of Object.entries(Re.children)){const mt=Di(rt);if(We===w&&0===mt.segments.length&&mt.hasChildren())for(const[Ot,ei]of Object.entries(mt.children))Ue[Ot]=ei;else(mt.segments.length>0||mt.hasChildren())&&(Ue[We]=mt)}return function Cs(Re){if(1===Re.numberOfChildren&&Re.children[w]){const Ue=Re.children[w];return new Me(Re.segments.concat(Ue.segments),Ue.children)}return Re}(new Me(Re.segments,Ue))}function On(Re){return Re instanceof _e}function As(Re){let Ue;const rt=dn(function Be(mt){const Ot={};for(const Xt of mt.children){const Li=Be(Xt);Ot[Xt.outlet]=Li}const ei=new Me(mt.url,Ot);return mt===Re&&(Ue=ei),ei}(Re.root));return Ue??rt}function $n(Re,Ue,Be,We){let rt=Re;for(;rt.parent;)rt=rt.parent;if(0===Ue.length)return kn(rt,rt,rt,Be,We);const mt=function qr(Re){if("string"==typeof Re[0]&&1===Re.length&&"/"===Re[0])return new fo(!0,0,Re);let Ue=0,Be=!1;const We=Re.reduce((rt,mt,Ot)=>{if("object"==typeof mt&&null!=mt){if(mt.outlets){const ei={};return Object.entries(mt.outlets).forEach(([Xt,Li])=>{ei[Xt]="string"==typeof Li?Li.split("/"):Li}),[...rt,{outlets:ei}]}if(mt.segmentPath)return[...rt,mt.segmentPath]}return"string"!=typeof mt?[...rt,mt]:0===Ot?(mt.split("/").forEach((ei,Xt)=>{0==Xt&&"."===ei||(0==Xt&&""===ei?Be=!0:".."===ei?Ue++:""!=ei&&rt.push(ei))}),rt):[...rt,mt]},[]);return new fo(Be,Ue,We)}(Ue);if(mt.toRoot())return kn(rt,rt,new Me([],{}),Be,We);const Ot=function St(Re,Ue,Be){if(Re.isAbsolute)return new ir(Ue,!0,0);if(!Be)return new ir(Ue,!1,NaN);if(null===Be.parent)return new ir(Be,!0,0);const We=$i(Re.commands[0])?0:1;return function Rt(Re,Ue,Be){let We=Re,rt=Ue,mt=Be;for(;mt>rt;){if(mt-=rt,We=We.parent,!We)throw new M.wOt(4005,!1);rt=We.segments.length}return new ir(We,!1,rt-mt)}(Be,Be.segments.length-1+We,Re.numberOfDoubleDots)}(mt,rt,Re),ei=Ot.processChildren?xt(Ot.segmentGroup,Ot.index,mt.commands):bt(Ot.segmentGroup,Ot.index,mt.commands);return kn(rt,Ot.segmentGroup,ei,Be,We)}function $i(Re){return"object"==typeof Re&&null!=Re&&!Re.outlets&&!Re.segmentPath}function ws(Re){return"object"==typeof Re&&null!=Re&&Re.outlets}function kn(Re,Ue,Be,We,rt){let Ot,mt={};We&&Object.entries(We).forEach(([Xt,Li])=>{mt[Xt]=Array.isArray(Li)?Li.map(pn=>`${pn}`):`${Li}`}),Ot=Re===Ue?Be:jr(Re,Ue,Be);const ei=dn(Di(Ot));return new _e(ei,mt,rt)}function jr(Re,Ue,Be){const We={};return Object.entries(Re.children).forEach(([rt,mt])=>{We[rt]=mt===Ue?Be:jr(mt,Ue,Be)}),new Me(Re.segments,We)}class fo{constructor(Ue,Be,We){if(this.isAbsolute=Ue,this.numberOfDoubleDots=Be,this.commands=We,Ue&&We.length>0&&$i(We[0]))throw new M.wOt(4003,!1);const rt=We.find(ws);if(rt&&rt!==me(We))throw new M.wOt(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ir{constructor(Ue,Be,We){this.segmentGroup=Ue,this.processChildren=Be,this.index=We}}function bt(Re,Ue,Be){if(Re??=new Me([],{}),0===Re.segments.length&&Re.hasChildren())return xt(Re,Ue,Be);const We=function $e(Re,Ue,Be){let We=0,rt=Ue;const mt={match:!1,pathIndex:0,commandIndex:0};for(;rt=Be.length)return mt;const Ot=Re.segments[rt],ei=Be[We];if(ws(ei))break;const Xt=`${ei}`,Li=We0&&void 0===Xt)break;if(Xt&&Li&&"object"==typeof Li&&void 0===Li.outlets){if(!si(Xt,Li,Ot))return mt;We+=2}else{if(!si(Xt,{},Ot))return mt;We++}rt++}return{match:!0,pathIndex:rt,commandIndex:We}}(Re,Ue,Be),rt=Be.slice(We.commandIndex);if(We.match&&We.pathIndexmt!==w)&&Re.children[w]&&1===Re.numberOfChildren&&0===Re.children[w].segments.length){const mt=xt(Re.children[w],Ue,Be);return new Me(Re.segments,mt.children)}return Object.entries(We).forEach(([mt,Ot])=>{"string"==typeof Ot&&(Ot=[Ot]),null!==Ot&&(rt[mt]=bt(Re.children[mt],Ue,Ot))}),Object.entries(Re.children).forEach(([mt,Ot])=>{void 0===We[mt]&&(rt[mt]=Ot)}),new Me(Re.segments,rt)}}function yt(Re,Ue,Be){const We=Re.segments.slice(0,Ue);let rt=0;for(;rt{"string"==typeof We&&(We=[We]),null!==We&&(Ue[Be]=yt(new Me([],{}),0,We))}),Ue}function $t(Re){const Ue={};return Object.entries(Re).forEach(([Be,We])=>Ue[Be]=`${We}`),Ue}function si(Re,Ue,Be){return Re==Be.path&&K(Ue,Be.parameters)}const Ti="imperative";var Si=function(Re){return Re[Re.NavigationStart=0]="NavigationStart",Re[Re.NavigationEnd=1]="NavigationEnd",Re[Re.NavigationCancel=2]="NavigationCancel",Re[Re.NavigationError=3]="NavigationError",Re[Re.RoutesRecognized=4]="RoutesRecognized",Re[Re.ResolveStart=5]="ResolveStart",Re[Re.ResolveEnd=6]="ResolveEnd",Re[Re.GuardsCheckStart=7]="GuardsCheckStart",Re[Re.GuardsCheckEnd=8]="GuardsCheckEnd",Re[Re.RouteConfigLoadStart=9]="RouteConfigLoadStart",Re[Re.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",Re[Re.ChildActivationStart=11]="ChildActivationStart",Re[Re.ChildActivationEnd=12]="ChildActivationEnd",Re[Re.ActivationStart=13]="ActivationStart",Re[Re.ActivationEnd=14]="ActivationEnd",Re[Re.Scroll=15]="Scroll",Re[Re.NavigationSkipped=16]="NavigationSkipped",Re}(Si||{});class Hi{constructor(Ue,Be){this.id=Ue,this.url=Be}}class rs extends Hi{constructor(Ue,Be,We="imperative",rt=null){super(Ue,Be),this.type=Si.NavigationStart,this.navigationTrigger=We,this.restoredState=rt}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class un extends Hi{constructor(Ue,Be,We){super(Ue,Be),this.urlAfterRedirects=We,this.type=Si.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Xi=function(Re){return Re[Re.Redirect=0]="Redirect",Re[Re.SupersededByNewNavigation=1]="SupersededByNewNavigation",Re[Re.NoDataFromResolver=2]="NoDataFromResolver",Re[Re.GuardRejected=3]="GuardRejected",Re}(Xi||{}),cn=function(Re){return Re[Re.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",Re[Re.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",Re}(cn||{});class os extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Js extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.reason=We,this.code=rt,this.type=Si.NavigationSkipped}}class ns extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.error=We,this.target=rt,this.type=Si.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Qr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ls extends Hi{constructor(Ue,Be,We,rt,mt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.shouldActivate=mt,this.type=Si.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Vr extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ki extends Hi{constructor(Ue,Be,We,rt){super(Ue,Be),this.urlAfterRedirects=We,this.state=rt,this.type=Si.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Tn{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class Jl{constructor(Ue){this.route=Ue,this.type=Si.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class pr{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Oa{constructor(Ue){this.snapshot=Ue,this.type=Si.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Pa{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class La{constructor(Ue){this.snapshot=Ue,this.type=Si.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Jr{constructor(Ue,Be,We){this.routerEvent=Ue,this.position=Be,this.anchor=We,this.type=Si.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class bn{}class Ko{constructor(Ue){this.url=Ue}}class Gs{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new eo,this.attachRef=null}}let eo=(()=>{class Re{constructor(){this.contexts=new Map}onChildOutletCreated(Be,We){const rt=this.getOrCreateContext(Be);rt.outlet=We,this.contexts.set(Be,rt)}onChildOutletDestroyed(Be){const We=this.getContext(Be);We&&(We.outlet=null,We.attachRef=null)}onOutletDeactivated(){const Be=this.contexts;return this.contexts=new Map,Be}onOutletReAttached(Be){this.contexts=Be}getOrCreateContext(Be){let We=this.getContext(Be);return We||(We=new Gs,this.contexts.set(Be,We)),We}getContext(Be){return this.contexts.get(Be)||null}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();class sl{constructor(Ue){this._root=Ue}get root(){return this._root.value}parent(Ue){const Be=this.pathFromRoot(Ue);return Be.length>1?Be[Be.length-2]:null}children(Ue){const Be=rl(Ue,this._root);return Be?Be.children.map(We=>We.value):[]}firstChild(Ue){const Be=rl(Ue,this._root);return Be&&Be.children.length>0?Be.children[0].value:null}siblings(Ue){const Be=vr(Ue,this._root);return Be.length<2?[]:Be[Be.length-2].children.map(rt=>rt.value).filter(rt=>rt!==Ue)}pathFromRoot(Ue){return vr(Ue,this._root).map(Be=>Be.value)}}function rl(Re,Ue){if(Re===Ue.value)return Ue;for(const Be of Ue.children){const We=rl(Re,Be);if(We)return We}return null}function vr(Re,Ue){if(Re===Ue.value)return[Ue];for(const Be of Ue.children){const We=vr(Re,Be);if(We.length)return We.unshift(Ue),We}return[]}class Hs{constructor(Ue,Be){this.value=Ue,this.children=Be}toString(){return`TreeNode(${this.value})`}}function yr(Re){const Ue={};return Re&&Re.children.forEach(Be=>Ue[Be.value.outlet]=Be),Ue}class ol extends sl{constructor(Ue,Be){super(Ue),this.snapshot=Be,fa(this,Ue)}toString(){return this.snapshot.toString()}}function ua(Re){const Ue=function Ra(Re){const mt=new pa([],{},{},"",{},w,Re,null,{});return new Dr("",new Hs(mt,[]))}(Re),Be=new Z.t([new Ee("",{})]),We=new Z.t({}),rt=new Z.t({}),mt=new Z.t({}),Ot=new Z.t(""),ei=new go(Be,We,mt,Ot,rt,w,Re,Ue.root);return ei.snapshot=Ue.root,new ol(new Hs(ei,[]),Ue)}class go{constructor(Ue,Be,We,rt,mt,Ot,ei,Xt){this.urlSubject=Ue,this.paramsSubject=Be,this.queryParamsSubject=We,this.fragmentSubject=rt,this.dataSubject=mt,this.outlet=Ot,this.component=ei,this._futureSnapshot=Xt,this.title=this.dataSubject?.pipe((0,_.T)(Li=>Li[X]))??(0,Pe.of)(void 0),this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe((0,_.T)(Ue=>x(Ue))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe((0,_.T)(Ue=>x(Ue))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function xr(Re,Ue,Be="emptyOnly"){let We;const{routeConfig:rt}=Re;return We=null===Ue||"always"!==Be&&""!==rt?.path&&(Ue.component||Ue.routeConfig?.loadComponent)?{params:{...Re.params},data:{...Re.data},resolve:{...Re.data,...Re._resolvedData??{}}}:{params:{...Ue.params,...Re.params},data:{...Ue.data,...Re.data},resolve:{...Re.data,...Ue.data,...rt?.data,...Re._resolvedData}},rt&&zr(rt)&&(We.resolve[X]=rt.title),We}class pa{get title(){return this.data?.[X]}constructor(Ue,Be,We,rt,mt,Ot,ei,Xt,Li){this.url=Ue,this.params=Be,this.queryParams=We,this.fragment=rt,this.data=mt,this.outlet=Ot,this.component=ei,this.routeConfig=Xt,this._resolve=Li}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=x(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=x(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(We=>We.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Dr extends sl{constructor(Ue,Be){super(Be),this.url=Ue,fa(this,Be)}toString(){return Is(this._root)}}function fa(Re,Ue){Ue.value._routerState=Re,Ue.children.forEach(Be=>fa(Re,Be))}function Is(Re){const Ue=Re.children.length>0?` { ${Re.children.map(Is).join(", ")} } `:"";return`${Re.value}${Ue}`}function Us(Re){if(Re.snapshot){const Ue=Re.snapshot,Be=Re._futureSnapshot;Re.snapshot=Be,K(Ue.queryParams,Be.queryParams)||Re.queryParamsSubject.next(Be.queryParams),Ue.fragment!==Be.fragment&&Re.fragmentSubject.next(Be.fragment),K(Ue.params,Be.params)||Re.paramsSubject.next(Be.params),function R(Re,Ue){if(Re.length!==Ue.length)return!1;for(let Be=0;BeK(Be.parameters,Ue[We].parameters))}(Re.url,Ue.url);return Be&&!(!Re.parent!=!Ue.parent)&&(!Re.parent||Qi(Re.parent,Ue.parent))}function zr(Re){return"string"==typeof Re.title||null===Re.title}let Do=(()=>{class Re{constructor(){this.activated=null,this._activatedRoute=null,this.name=w,this.activateEvents=new M.bkB,this.deactivateEvents=new M.bkB,this.attachEvents=new M.bkB,this.detachEvents=new M.bkB,this.parentContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(M.c1b),this.changeDetector=(0,M.WQX)(M.gRc),this.environmentInjector=(0,M.WQX)(M.uvJ),this.inputBinder=(0,M.WQX)(mo,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(Be){if(Be.name){const{firstChange:We,previousValue:rt}=Be.name;if(We)return;this.isTrackedInParentContexts(rt)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(rt)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(Be){return this.parentContexts.getContext(Be)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const Be=this.parentContexts.getContext(this.name);Be?.route&&(Be.attachRef?this.attach(Be.attachRef,Be.route):this.activateWith(Be.route,Be.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M.wOt(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M.wOt(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M.wOt(4012,!1);this.location.detach();const Be=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(Be.instance),Be}attach(Be,We){this.activated=Be,this._activatedRoute=We,this.location.insert(Be.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(Be.instance)}deactivate(){if(this.activated){const Be=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(Be)}}activateWith(Be,We){if(this.isActivated)throw new M.wOt(4013,!1);this._activatedRoute=Be;const rt=this.location,Ot=Be.snapshot.component,ei=this.parentContexts.getOrCreateContext(this.name).children,Xt=new ga(Be,ei,rt.injector);this.activated=rt.createComponent(Ot,{index:rt.length,injector:Xt,environmentInjector:We??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[M.OA$]})}return Re})();class ga{constructor(Ue,Be,We){this.route=Ue,this.childContexts=Be,this.parent=We}get(Ue,Be){return Ue===go?this.route:Ue===eo?this.childContexts:this.parent.get(Ue,Be)}}const mo=new M.nKC("");let ma=(()=>{class Re{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(Be){this.unsubscribeFromRouteData(Be),this.subscribeToRouteData(Be)}unsubscribeFromRouteData(Be){this.outletDataSubscriptions.get(Be)?.unsubscribe(),this.outletDataSubscriptions.delete(Be)}subscribeToRouteData(Be){const{activatedRoute:We}=Be,rt=(0,ie.z)([We.queryParams,We.params,We.data]).pipe((0,b.n)(([mt,Ot,ei],Xt)=>(ei={...mt,...Ot,...ei},0===Xt?(0,Pe.of)(ei):Promise.resolve(ei)))).subscribe(mt=>{if(!Be.isActivated||!Be.activatedComponentRef||Be.activatedRoute!==We||null===We.component)return void this.unsubscribeFromRouteData(Be);const Ot=(0,M.HJs)(We.component);if(Ot)for(const{templateName:ei}of Ot.inputs)Be.activatedComponentRef.setInput(ei,mt[ei]);else this.unsubscribeFromRouteData(Be)});this.outletDataSubscriptions.set(Be,rt)}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Eo(Re,Ue,Be){if(Be&&Re.shouldReuseRoute(Ue.value,Be.value.snapshot)){const We=Be.value;We._futureSnapshot=Ue.value;const rt=function er(Re,Ue,Be){return Ue.children.map(We=>{for(const rt of Be.children)if(Re.shouldReuseRoute(We.value,rt.value.snapshot))return Eo(Re,We,rt);return Eo(Re,We)})}(Re,Ue,Be);return new Hs(We,rt)}{if(Re.shouldAttach(Ue.value)){const mt=Re.retrieve(Ue.value);if(null!==mt){const Ot=mt.route;return Ot.value._futureSnapshot=Ue.value,Ot.children=Ue.children.map(ei=>Eo(Re,ei)),Ot}}const We=function ll(Re){return new go(new Z.t(Re.url),new Z.t(Re.params),new Z.t(Re.queryParams),new Z.t(Re.fragment),new Z.t(Re.data),Re.outlet,Re.component,Re)}(Ue.value),rt=Ue.children.map(mt=>Eo(Re,mt));return new Hs(We,rt)}}const Gr="ngNavigationCancelingError";function cl(Re,Ue){const{redirectTo:Be,navigationBehaviorOptions:We}=On(Ue)?{redirectTo:Ue,navigationBehaviorOptions:void 0}:Ue,rt=Er(!1,Xi.Redirect);return rt.url=Be,rt.navigationBehaviorOptions=We,rt}function Er(Re,Ue){const Be=new Error(`NavigationCancelingError: ${Re||""}`);return Be[Gr]=!0,Be.cancellationCode=Ue,Be}function cs(Re){return!!Re&&Re[Gr]}let Ar=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275cmp=M.VBU({type:Re,selectors:[["ng-component"]],standalone:!0,features:[M.aNF],decls:1,vars:0,template:function(We,rt){1&We&&M.nrm(0,"router-outlet")},dependencies:[Do],encapsulation:2})}return Re})();function Hr(Re){const Ue=Re.children&&Re.children.map(Hr),Be=Ue?{...Re,children:Ue}:{...Re};return!Be.component&&!Be.loadComponent&&(Ue||Be.loadChildren)&&Be.outlet&&Be.outlet!==w&&(Be.component=Ar),Be}function io(Re){return Re.outlet||w}function Ys(Re){if(!Re)return null;if(Re.routeConfig?._injector)return Re.routeConfig._injector;for(let Ue=Re.parent;Ue;Ue=Ue.parent){const Be=Ue.routeConfig;if(Be?._loadedInjector)return Be._loadedInjector;if(Be?._injector)return Be._injector}return null}class ya{constructor(Ue,Be,We,rt,mt){this.routeReuseStrategy=Ue,this.futureState=Be,this.currState=We,this.forwardEvent=rt,this.inputBindingEnabled=mt}activate(Ue){const Be=this.futureState._root,We=this.currState?this.currState._root:null;this.deactivateChildRoutes(Be,We,Ue),Us(this.futureState.root),this.activateChildRoutes(Be,We,Ue)}deactivateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{const Ot=mt.value.outlet;this.deactivateRoutes(mt,rt[Ot],We),delete rt[Ot]}),Object.values(rt).forEach(mt=>{this.deactivateRouteAndItsChildren(mt,We)})}deactivateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(rt===mt)if(rt.component){const Ot=We.getContext(rt.outlet);Ot&&this.deactivateChildRoutes(Ue,Be,Ot.children)}else this.deactivateChildRoutes(Ue,Be,We);else mt&&this.deactivateRouteAndItsChildren(Be,We)}deactivateRouteAndItsChildren(Ue,Be){Ue.value.component&&this.routeReuseStrategy.shouldDetach(Ue.value.snapshot)?this.detachAndStoreRouteSubtree(Ue,Be):this.deactivateRouteAndOutlet(Ue,Be)}detachAndStoreRouteSubtree(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);if(We&&We.outlet){const Ot=We.outlet.detach(),ei=We.children.onOutletDeactivated();this.routeReuseStrategy.store(Ue.value.snapshot,{componentRef:Ot,route:Ue,contexts:ei})}}deactivateRouteAndOutlet(Ue,Be){const We=Be.getContext(Ue.value.outlet),rt=We&&Ue.value.component?We.children:Be,mt=yr(Ue);for(const Ot of Object.values(mt))this.deactivateRouteAndItsChildren(Ot,rt);We&&(We.outlet&&(We.outlet.deactivate(),We.children.onOutletDeactivated()),We.attachRef=null,We.route=null)}activateChildRoutes(Ue,Be,We){const rt=yr(Be);Ue.children.forEach(mt=>{this.activateRoutes(mt,rt[mt.value.outlet],We),this.forwardEvent(new La(mt.value.snapshot))}),Ue.children.length&&this.forwardEvent(new Oa(Ue.value.snapshot))}activateRoutes(Ue,Be,We){const rt=Ue.value,mt=Be?Be.value:null;if(Us(rt),rt===mt)if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);this.activateChildRoutes(Ue,Be,Ot.children)}else this.activateChildRoutes(Ue,Be,We);else if(rt.component){const Ot=We.getOrCreateContext(rt.outlet);if(this.routeReuseStrategy.shouldAttach(rt.snapshot)){const ei=this.routeReuseStrategy.retrieve(rt.snapshot);this.routeReuseStrategy.store(rt.snapshot,null),Ot.children.onOutletReAttached(ei.contexts),Ot.attachRef=ei.componentRef,Ot.route=ei.route.value,Ot.outlet&&Ot.outlet.attach(ei.componentRef,ei.route.value),Us(ei.route.value),this.activateChildRoutes(Ue,null,Ot.children)}else{const ei=Ys(rt.snapshot);Ot.attachRef=null,Ot.route=rt,Ot.injector=ei,Ot.outlet&&Ot.outlet.activateWith(rt,Ot.injector),this.activateChildRoutes(Ue,null,Ot.children)}}else this.activateChildRoutes(Ue,null,We)}}class qo{constructor(Ue){this.path=Ue,this.route=this.path[this.path.length-1]}}class bo{constructor(Ue,Be){this.component=Ue,this.route=Be}}function hl(Re,Ue,Be){const We=Re._root;return Qo(We,Ue?Ue._root:null,Be,[We.value])}function Zi(Re,Ue){const Be=Symbol(),We=Ue.get(Re,Be);return We===Be?"function"!=typeof Re||(0,M.LfX)(Re)?Ue.get(Re):Re:We}function Qo(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=yr(Ue);return Re.children.forEach(Ot=>{(function ja(Re,Ue,Be,We,rt={canDeactivateChecks:[],canActivateChecks:[]}){const mt=Re.value,Ot=Ue?Ue.value:null,ei=Be?Be.getContext(Re.value.outlet):null;if(Ot&&mt.routeConfig===Ot.routeConfig){const Xt=function ot(Re,Ue,Be){if("function"==typeof Be)return Be(Re,Ue);switch(Be){case"pathParamsChange":return!Ze(Re.url,Ue.url);case"pathParamsOrQueryParamsChange":return!Ze(Re.url,Ue.url)||!K(Re.queryParams,Ue.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Qi(Re,Ue)||!K(Re.queryParams,Ue.queryParams);default:return!Qi(Re,Ue)}}(Ot,mt,mt.routeConfig.runGuardsAndResolvers);Xt?rt.canActivateChecks.push(new qo(We)):(mt.data=Ot.data,mt._resolvedData=Ot._resolvedData),Qo(Re,Ue,mt.component?ei?ei.children:null:Be,We,rt),Xt&&ei&&ei.outlet&&ei.outlet.isActivated&&rt.canDeactivateChecks.push(new bo(ei.outlet.component,Ot))}else Ot&&ct(Ue,ei,rt),rt.canActivateChecks.push(new qo(We)),Qo(Re,null,mt.component?ei?ei.children:null:Be,We,rt)})(Ot,mt[Ot.value.outlet],Be,We.concat([Ot.value]),rt),delete mt[Ot.value.outlet]}),Object.entries(mt).forEach(([Ot,ei])=>ct(ei,Be.getContext(Ot),rt)),rt}function ct(Re,Ue,Be){const We=yr(Re),rt=Re.value;Object.entries(We).forEach(([mt,Ot])=>{ct(Ot,rt.component?Ue?Ue.children.getContext(mt):null:Ue,Be)}),Be.canDeactivateChecks.push(new bo(rt.component&&Ue&&Ue.outlet&&Ue.outlet.isActivated?Ue.outlet.component:null,rt))}function Ye(Re){return"function"==typeof Re}function Ks(Re){return Re instanceof ve||"EmptyError"===Re?.name}const Or=Symbol("INITIAL_VALUE");function rr(){return(0,b.n)(Re=>(0,ie.z)(Re.map(Ue=>Ue.pipe((0,T.s)(1),(0,z.Z)(Or)))).pipe((0,_.T)(Ue=>{for(const Be of Ue)if(!0!==Be){if(Be===Or)return Or;if(!1===Be||Be instanceof _e)return Be}return!0}),(0,O.p)(Ue=>Ue!==Or),(0,T.s)(1)))}function so(Re){return(0,pe.F)((0,l.M)(Ue=>{if(On(Ue))throw cl(0,Ue)}),(0,_.T)(Ue=>!0===Ue))}class Fl{constructor(Ue){this.segmentGroup=Ue||null}}class Va extends Error{constructor(Ue){super(),this.urlTree=Ue}}function Lr(Re){return(0,J.$)(new Fl(Re))}class Ss{constructor(Ue,Be){this.urlSerializer=Ue,this.urlTree=Be}lineralizeSegments(Ue,Be){let We=[],rt=Be.root;for(;;){if(We=We.concat(rt.segments),0===rt.numberOfChildren)return(0,Pe.of)(We);if(rt.numberOfChildren>1||!rt.children[w])return(0,J.$)(new M.wOt(4e3,!1));rt=rt.children[w]}}applyRedirectCommands(Ue,Be,We){const rt=this.applyRedirectCreateUrlTree(Be,this.urlSerializer.parse(Be),Ue,We);if(Be.startsWith("/"))throw new Va(rt);return rt}applyRedirectCreateUrlTree(Ue,Be,We,rt){const mt=this.createSegmentGroup(Ue,Be.root,We,rt);return new _e(mt,this.createQueryParams(Be.queryParams,this.urlTree.queryParams),Be.fragment)}createQueryParams(Ue,Be){const We={};return Object.entries(Ue).forEach(([rt,mt])=>{if("string"==typeof mt&&mt.startsWith(":")){const ei=mt.substring(1);We[rt]=Be[ei]}else We[rt]=mt}),We}createSegmentGroup(Ue,Be,We,rt){const mt=this.createSegments(Ue,Be.segments,We,rt);let Ot={};return Object.entries(Be.children).forEach(([ei,Xt])=>{Ot[ei]=this.createSegmentGroup(Ue,Xt,We,rt)}),new Me(mt,Ot)}createSegments(Ue,Be,We,rt){return Be.map(mt=>mt.path.startsWith(":")?this.findPosParam(Ue,mt,rt):this.findOrReturn(mt,We))}findPosParam(Ue,Be,We){const rt=We[Be.path.substring(1)];if(!rt)throw new M.wOt(4001,!1);return rt}findOrReturn(Ue,Be){let We=0;for(const rt of Be){if(rt.path===Ue.path)return Be.splice(We),rt;We++}return Ue}}const vo={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zs(Re,Ue,Be,We,rt){const mt=dl(Re,Ue,Be);return mt.matched?(We=function Zo(Re,Ue){return Re.providers&&!Re._injector&&(Re._injector=(0,M.Ol2)(Re.providers,Ue,`Route: ${Re.path}`)),Re._injector??Ue}(Ue,We),function Kh(Re,Ue,Be,We){const rt=Ue.canMatch;if(!rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Ir(Re){return Re&&Ye(Re.canMatch)}(ei)?ei.canMatch(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(We,Ue,Be).pipe((0,_.T)(Ot=>!0===Ot?mt:{...vo}))):(0,Pe.of)(mt)}function dl(Re,Ue,Be){if("**"===Ue.path)return function ul(Re){return{matched:!0,parameters:Re.length>0?me(Re).parameters:{},consumedSegments:Re,remainingSegments:[],positionalParamSegments:{}}}(Be);if(""===Ue.path)return"full"===Ue.pathMatch&&(Re.hasChildren()||Be.length>0)?{...vo}:{matched:!0,consumedSegments:[],remainingSegments:Be,parameters:{},positionalParamSegments:{}};const rt=(Ue.matcher||N)(Be,Re,Ue);if(!rt)return{...vo};const mt={};Object.entries(rt.posParams??{}).forEach(([ei,Xt])=>{mt[ei]=Xt.path});const Ot=rt.consumed.length>0?{...mt,...rt.consumed[rt.consumed.length-1].parameters}:mt;return{matched:!0,consumedSegments:rt.consumed,remainingSegments:Be.slice(rt.consumed.length),parameters:Ot,positionalParamSegments:rt.posParams??{}}}function pl(Re,Ue,Be,We){return Be.length>0&&function za(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We)&&io(We)!==w)}(Re,Be,We)?{segmentGroup:new Me(Ue,ic(We,new Me(Be,Re.children))),slicedSegments:[]}:0===Be.length&&function Bl(Re,Ue,Be){return Be.some(We=>fl(Re,Ue,We))}(Re,Be,We)?{segmentGroup:new Me(Re.segments,Oc(Re,Be,We,Re.children)),slicedSegments:Be}:{segmentGroup:new Me(Re.segments,Re.children),slicedSegments:Be}}function Oc(Re,Ue,Be,We){const rt={};for(const mt of Be)if(fl(Re,Ue,mt)&&!We[io(mt)]){const Ot=new Me([],{});rt[io(mt)]=Ot}return{...We,...rt}}function ic(Re,Ue){const Be={};Be[w]=Ue;for(const We of Re)if(""===We.path&&io(We)!==w){const rt=new Me([],{});Be[io(We)]=rt}return Be}function fl(Re,Ue,Be){return(!(Re.hasChildren()||Ue.length>0)||"full"!==Be.pathMatch)&&""===Be.path}class Lc{}class jl{constructor(Ue,Be,We,rt,mt,Ot,ei){this.injector=Ue,this.configLoader=Be,this.rootComponentType=We,this.config=rt,this.urlTree=mt,this.paramsInheritanceStrategy=Ot,this.urlSerializer=ei,this.applyRedirects=new Ss(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(Ue){return new M.wOt(4002,`'${Ue.segmentGroup}'`)}recognize(){const Ue=pl(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(Ue).pipe((0,_.T)(Be=>{const We=new pa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},w,this.rootComponentType,null,{}),rt=new Hs(We,Be),mt=new Dr("",rt),Ot=function Pn(Re,Ue,Be=null,We=null){return $n(As(Re),Ue,Be,We)}(We,[],this.urlTree.queryParams,this.urlTree.fragment);return Ot.queryParams=this.urlTree.queryParams,mt.url=this.urlSerializer.serialize(Ot),this.inheritParamsAndData(mt._root,null),{state:mt,tree:Ot}}))}match(Ue){return this.processSegmentGroup(this.injector,this.config,Ue,w).pipe((0,d.W)(We=>{if(We instanceof Va)return this.urlTree=We.urlTree,this.match(We.urlTree.root);throw We instanceof Fl?this.noMatchError(We):We}))}inheritParamsAndData(Ue,Be){const We=Ue.value,rt=xr(We,Be,this.paramsInheritanceStrategy);We.params=Object.freeze(rt.params),We.data=Object.freeze(rt.data),Ue.children.forEach(mt=>this.inheritParamsAndData(mt,We))}processSegmentGroup(Ue,Be,We,rt){return 0===We.segments.length&&We.hasChildren()?this.processChildren(Ue,Be,We):this.processSegment(Ue,Be,We,We.segments,rt,!0).pipe((0,_.T)(mt=>mt instanceof Hs?[mt]:[]))}processChildren(Ue,Be,We){const rt=[];for(const mt of Object.keys(We.children))"primary"===mt?rt.unshift(mt):rt.push(mt);return(0,V.H)(rt).pipe((0,r.H)(mt=>{const Ot=We.children[mt],ei=function ec(Re,Ue){const Be=Re.filter(We=>io(We)===Ue);return Be.push(...Re.filter(We=>io(We)!==Ue)),Be}(Be,mt);return this.processSegmentGroup(Ue,ei,Ot,mt)}),function k(Re,Ue){return(0,B.N)(function C(Re,Ue,Be,We,rt){return(mt,Ot)=>{let ei=Be,Xt=Ue,Li=0;mt.subscribe((0,F._)(Ot,pn=>{const Dn=Li++;Xt=ei?Re(Xt,pn,Dn):(ei=!0,pn),We&&Ot.next(Xt)},rt&&(()=>{ei&&Ot.next(Xt),Ot.complete()})))}}(Re,Ue,arguments.length>=2,!0))}((mt,Ot)=>(mt.push(...Ot),mt)),(0,a.U)(null),function S(Re,Ue){const Be=arguments.length>=2;return We=>We.pipe(Re?(0,O.p)((rt,mt)=>Re(rt,mt,We)):o.D,p(1),Be?(0,a.U)(Ue):g(()=>new ve))}(),(0,f.Z)(mt=>{if(null===mt)return Lr(We);const Ot=Lo(mt);return function tr(Re){Re.sort((Ue,Be)=>Ue.value.outlet===w?-1:Be.value.outlet===w?1:Ue.value.outlet.localeCompare(Be.value.outlet))}(Ot),(0,Pe.of)(Ot)}))}processSegment(Ue,Be,We,rt,mt,Ot){return(0,V.H)(Be).pipe((0,r.H)(ei=>this.processSegmentAgainstRoute(ei._injector??Ue,Be,ei,We,rt,mt,Ot).pipe((0,d.W)(Xt=>{if(Xt instanceof Fl)return(0,Pe.of)(null);throw Xt}))),n(ei=>!!ei),(0,d.W)(ei=>{if(Ks(ei))return function nc(Re,Ue,Be){return 0===Ue.length&&!Re.children[Be]}(We,rt,mt)?(0,Pe.of)(new Lc):Lr(We);throw ei}))}processSegmentAgainstRoute(Ue,Be,We,rt,mt,Ot,ei){return function Pc(Re,Ue,Be,We){return!!(io(Re)===We||We!==w&&fl(Ue,Be,Re))&&dl(Ue,Re,Be).matched}(We,rt,mt,Ot)?void 0===We.redirectTo?this.matchSegmentAgainstRoute(Ue,rt,We,mt,Ot):this.allowRedirects&&ei?this.expandSegmentAgainstRouteUsingRedirect(Ue,rt,Be,We,mt,Ot):Lr(rt):Lr(rt)}expandSegmentAgainstRouteUsingRedirect(Ue,Be,We,rt,mt,Ot){const{matched:ei,consumedSegments:Xt,positionalParamSegments:Li,remainingSegments:pn}=dl(Be,rt,mt);if(!ei)return Lr(Be);rt.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const Dn=this.applyRedirects.applyRedirectCommands(Xt,rt.redirectTo,Li);return this.applyRedirects.lineralizeSegments(rt,Dn).pipe((0,f.Z)(qs=>this.processSegment(Ue,We,Be,qs.concat(pn),Ot,!1)))}matchSegmentAgainstRoute(Ue,Be,We,rt,mt){const Ot=Zs(Be,We,rt,Ue);return"**"===We.path&&(Be.children={}),Ot.pipe((0,b.n)(ei=>ei.matched?this.getChildConfig(Ue=We._injector??Ue,We,rt).pipe((0,b.n)(({routes:Xt})=>{const Li=We._loadedInjector??Ue,{consumedSegments:pn,remainingSegments:Dn,parameters:qs}=ei,Hl=new pa(pn,qs,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ns(Re){return Re.data||{}}(We),io(We),We.component??We._loadedComponent??null,We,function Fs(Re){return Re.resolve||{}}(We)),{segmentGroup:Cl,slicedSegments:wl}=pl(Be,pn,Dn,Xt);if(0===wl.length&&Cl.hasChildren())return this.processChildren(Li,Xt,Cl).pipe((0,_.T)(Wa=>null===Wa?null:new Hs(Hl,Wa)));if(0===Xt.length&&0===wl.length)return(0,Pe.of)(new Hs(Hl,[]));const cc=io(We)===mt;return this.processSegment(Li,Xt,Cl,wl,cc?w:mt,!0).pipe((0,_.T)(Wa=>new Hs(Hl,Wa instanceof Hs?[Wa]:[])))})):Lr(Be)))}getChildConfig(Ue,Be,We){return Be.children?(0,Pe.of)({routes:Be.children,injector:Ue}):Be.loadChildren?void 0!==Be._loadedRoutes?(0,Pe.of)({routes:Be._loadedRoutes,injector:Be._loadedInjector}):function Ac(Re,Ue,Be,We){const rt=Ue.canLoad;if(void 0===rt||0===rt.length)return(0,Pe.of)(!0);const mt=rt.map(Ot=>{const ei=Zi(Ot,Re);return Ce(function Bt(Re){return Re&&Ye(Re.canLoad)}(ei)?ei.canLoad(Ue,Be):(0,M.N4e)(Re,()=>ei(Ue,Be)))});return(0,Pe.of)(mt).pipe(rr(),so())}(Ue,Be,We).pipe((0,f.Z)(rt=>rt?this.configLoader.loadChildren(Ue,Be).pipe((0,l.M)(mt=>{Be._loadedRoutes=mt.routes,Be._loadedInjector=mt.injector})):function Rs(Re){return(0,J.$)(Er(!1,Xi.GuardRejected))}())):(0,Pe.of)({routes:[],injector:Ue})}}function Nc(Re){const Ue=Re.value.routeConfig;return Ue&&""===Ue.path}function Lo(Re){const Ue=[],Be=new Set;for(const We of Re){if(!Nc(We)){Ue.push(We);continue}const rt=Ue.find(mt=>We.value.routeConfig===mt.value.routeConfig);void 0!==rt?(rt.children.push(...We.children),Be.add(rt)):Ue.push(We)}for(const We of Be){const rt=Lo(We.children);Ue.push(new Hs(We.value,rt))}return Ue.filter(We=>!Be.has(We))}function yo(Re){const Ue=Re.children.map(Be=>yo(Be)).flat();return[Re,...Ue]}function Vl(Re){return(0,b.n)(Ue=>{const Be=Re(Ue);return Be?(0,V.H)(Be).pipe((0,_.T)(()=>Ue)):(0,Pe.of)(Ue)})}let Fc=(()=>{class Re{buildTitle(Be){let We,rt=Be.root;for(;void 0!==rt;)We=this.getResolvedTitleForRoute(rt)??We,rt=rt.children.find(mt=>mt.outlet===w);return We}getResolvedTitleForRoute(Be){return Be.data[X]}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(ml),providedIn:"root"})}return Re})(),ml=(()=>{class Re extends Fc{constructor(Be){super(),this.title=Be}updateTitle(Be){const We=this.buildTitle(Be);void 0!==We&&this.title.setTitle(We)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(se.hE))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const _r=new M.nKC("",{providedIn:"root",factory:()=>({})}),Ga=new M.nKC("");let ta=(()=>{class Re{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=(0,M.WQX)(M.Ql9)}loadComponent(Be){if(this.componentLoaders.get(Be))return this.componentLoaders.get(Be);if(Be._loadedComponent)return(0,Pe.of)(Be._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(Be);const We=Ce(Be.loadComponent()).pipe((0,_.T)(Ha),(0,l.M)(mt=>{this.onLoadEndListener&&this.onLoadEndListener(Be),Be._loadedComponent=mt}),(0,H.j)(()=>{this.componentLoaders.delete(Be)})),rt=new D(We,()=>new I.B).pipe(L());return this.componentLoaders.set(Be,rt),rt}loadChildren(Be,We){if(this.childrenLoaders.get(We))return this.childrenLoaders.get(We);if(We._loadedRoutes)return(0,Pe.of)({routes:We._loadedRoutes,injector:We._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(We);const mt=function Ur(Re,Ue,Be,We){return Ce(Re.loadChildren()).pipe((0,_.T)(Ha),(0,f.Z)(rt=>rt instanceof M.Co$||Array.isArray(rt)?(0,Pe.of)(rt):(0,V.H)(Ue.compileModuleAsync(rt))),(0,_.T)(rt=>{We&&We(Re);let mt,Ot,ei=!1;return Array.isArray(rt)?(Ot=rt,!0):(mt=rt.create(Be).injector,Ot=mt.get(Ga,[],{optional:!0,self:!0}).flat()),{routes:Ot.map(Hr),injector:mt}}))}(We,this.compiler,Be,this.onLoadEndListener).pipe((0,H.j)(()=>{this.childrenLoaders.delete(We)})),Ot=new D(mt,()=>new I.B).pipe(L());return this.childrenLoaders.set(We,Ot),Ot}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function Ha(Re){return function ia(Re){return Re&&"object"==typeof Re&&"default"in Re}(Re)?Re.default:Re}let na=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Ge),providedIn:"root"})}return Re})(),Ge=(()=>{class Re{shouldProcessUrl(Be){return!0}extract(Be){return Be}merge(Be,We){return Be}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const ut=new M.nKC(""),Ke=new M.nKC("");function at(Re,Ue,Be){const We=Re.get(Ke),rt=Re.get(E.qQ);return Re.get(M.SKi).runOutsideAngular(()=>{if(!rt.startViewTransition||We.skipNextTransition)return We.skipNextTransition=!1,Promise.resolve();let mt;const Ot=new Promise(Li=>{mt=Li}),ei=rt.startViewTransition(()=>(mt(),function Et(Re){return new Promise(Ue=>{(0,M.mal)(Ue,{injector:Re})})}(Re))),{onViewTransitionCreated:Xt}=We;return Xt&&(0,M.N4e)(Re,()=>Xt({transition:ei,from:Ue,to:Be})),Ot})}let qt=(()=>{class Re{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new I.B,this.transitionAbortSubject=new I.B,this.configLoader=(0,M.WQX)(ta),this.environmentInjector=(0,M.WQX)(M.uvJ),this.urlSerializer=(0,M.WQX)(Qe),this.rootContexts=(0,M.WQX)(eo),this.location=(0,M.WQX)(E.aZ),this.inputBindingEnabled=null!==(0,M.WQX)(mo,{optional:!0}),this.titleStrategy=(0,M.WQX)(Fc),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=(0,M.WQX)(na),this.createViewTransition=(0,M.WQX)(ut,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>(0,Pe.of)(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=rt=>this.events.next(new Jl(rt)),this.configLoader.onLoadStartListener=rt=>this.events.next(new Tn(rt))}complete(){this.transitions?.complete()}handleNavigationRequest(Be){const We=++this.navigationId;this.transitions?.next({...this.transitions.value,...Be,id:We})}setupNavigations(Be,We,rt){return this.transitions=new Z.t({id:0,currentUrlTree:We,currentRawUrl:We,extractedUrl:this.urlHandlingStrategy.extract(We),urlAfterRedirects:this.urlHandlingStrategy.extract(We),rawUrl:We,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Ti,restoredState:null,currentSnapshot:rt.snapshot,targetSnapshot:null,currentRouterState:rt,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe((0,O.p)(mt=>0!==mt.id),(0,_.T)(mt=>({...mt,extractedUrl:this.urlHandlingStrategy.extract(mt.rawUrl)})),(0,b.n)(mt=>{let Ot=!1,ei=!1;return(0,Pe.of)(mt).pipe((0,b.n)(Xt=>{if(this.navigationId>mt.id)return this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),te.w;this.currentTransition=mt,this.currentNavigation={id:Xt.id,initialUrl:Xt.rawUrl,extractedUrl:Xt.extractedUrl,trigger:Xt.source,extras:Xt.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const Li=!Be.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!Li&&"reload"!==(Xt.extras.onSameUrlNavigation??Be.onSameUrlNavigation)){const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.rawUrl),Dn,cn.IgnoredSameUrlNavigation)),Xt.resolve(null),te.w}if(this.urlHandlingStrategy.shouldProcessUrl(Xt.rawUrl))return(0,Pe.of)(Xt).pipe((0,b.n)(Dn=>{const qs=this.transitions?.getValue();return this.events.next(new rs(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),Dn.source,Dn.restoredState)),qs!==this.transitions?.getValue()?te.w:Promise.resolve(Dn)}),function ea(Re,Ue,Be,We,rt,mt){return(0,f.Z)(Ot=>function Po(Re,Ue,Be,We,rt,mt,Ot="emptyOnly"){return new jl(Re,Ue,Be,We,rt,Ot,mt).recognize()}(Re,Ue,Be,We,Ot.extractedUrl,rt,mt).pipe((0,_.T)(({state:ei,tree:Xt})=>({...Ot,targetSnapshot:ei,urlAfterRedirects:Xt}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,Be.config,this.urlSerializer,this.paramsInheritanceStrategy),(0,l.M)(Dn=>{mt.targetSnapshot=Dn.targetSnapshot,mt.urlAfterRedirects=Dn.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:Dn.urlAfterRedirects};const qs=new Qr(Dn.id,this.urlSerializer.serialize(Dn.extractedUrl),this.urlSerializer.serialize(Dn.urlAfterRedirects),Dn.targetSnapshot);this.events.next(qs)}));if(Li&&this.urlHandlingStrategy.shouldProcessUrl(Xt.currentRawUrl)){const{id:Dn,extractedUrl:qs,source:Hl,restoredState:Cl,extras:wl}=Xt,cc=new rs(Dn,this.urlSerializer.serialize(qs),Hl,Cl);this.events.next(cc);const Wa=ua(this.rootComponentType).snapshot;return this.currentTransition=mt={...Xt,targetSnapshot:Wa,urlAfterRedirects:qs,extras:{...wl,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=qs,(0,Pe.of)(mt)}{const Dn="";return this.events.next(new Js(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),Dn,cn.IgnoredByUrlHandlingStrategy)),Xt.resolve(null),te.w}}),(0,l.M)(Xt=>{const Li=new nr(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot);this.events.next(Li)}),(0,_.T)(Xt=>(this.currentTransition=mt={...Xt,guards:hl(Xt.targetSnapshot,Xt.currentSnapshot,this.rootContexts)},mt)),function Pr(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,currentSnapshot:rt,guards:{canActivateChecks:mt,canDeactivateChecks:Ot}}=Be;return 0===Ot.length&&0===mt.length?(0,Pe.of)({...Be,guardsResult:!0}):function Bn(Re,Ue,Be,We){return(0,V.H)(Re).pipe((0,f.Z)(rt=>function Yh(Re,Ue,Be,We,rt){const mt=Ue&&Ue.routeConfig?Ue.routeConfig.canDeactivate:null;if(!mt||0===mt.length)return(0,Pe.of)(!0);const Ot=mt.map(ei=>{const Xt=Ys(Ue)??rt,Li=Zi(ei,Xt);return Ce(function no(Re){return Re&&Ye(Re.canDeactivate)}(Li)?Li.canDeactivate(Re,Ue,Be,We):(0,M.N4e)(Xt,()=>Li(Re,Ue,Be,We))).pipe(n())});return(0,Pe.of)(Ot).pipe(rr())}(rt.component,rt.route,Be,Ue,We)),n(rt=>!0!==rt,!0))}(Ot,We,rt,Re).pipe((0,f.Z)(ei=>ei&&function vt(Re){return"boolean"==typeof Re}(ei)?function fr(Re,Ue,Be,We){return(0,V.H)(Ue).pipe((0,r.H)(rt=>(0,le.x)(function tc(Re,Ue){return null!==Re&&Ue&&Ue(new pr(Re)),(0,Pe.of)(!0)}(rt.route.parent,We),function Jo(Re,Ue){return null!==Re&&Ue&&Ue(new Pa(Re)),(0,Pe.of)(!0)}(rt.route,We),function Xh(Re,Ue,Be){const We=Ue[Ue.length-1],mt=Ue.slice(0,Ue.length-1).reverse().map(Ot=>function Oo(Re){const Ue=Re.routeConfig?Re.routeConfig.canActivateChild:null;return Ue&&0!==Ue.length?{node:Re,guards:Ue}:null}(Ot)).filter(Ot=>null!==Ot).map(Ot=>(0,fe.v)(()=>{const ei=Ot.guards.map(Xt=>{const Li=Ys(Ot.node)??Be,pn=Zi(Xt,Li);return Ce(function vn(Re){return Re&&Ye(Re.canActivateChild)}(pn)?pn.canActivateChild(We,Re):(0,M.N4e)(Li,()=>pn(We,Re))).pipe(n())});return(0,Pe.of)(ei).pipe(rr())}));return(0,Pe.of)(mt).pipe(rr())}(Re,rt.path,Be),function Nl(Re,Ue,Be){const We=Ue.routeConfig?Ue.routeConfig.canActivate:null;if(!We||0===We.length)return(0,Pe.of)(!0);const rt=We.map(mt=>(0,fe.v)(()=>{const Ot=Ys(Ue)??Be,ei=Zi(mt,Ot);return Ce(function Vi(Re){return Re&&Ye(Re.canActivate)}(ei)?ei.canActivate(Ue,Re):(0,M.N4e)(Ot,()=>ei(Ue,Re))).pipe(n())}));return(0,Pe.of)(rt).pipe(rr())}(Re,rt.route,Be))),n(rt=>!0!==rt,!0))}(We,mt,Re,Ue):(0,Pe.of)(ei)),(0,_.T)(ei=>({...Be,guardsResult:ei})))})}(this.environmentInjector,Xt=>this.events.next(Xt)),(0,l.M)(Xt=>{if(mt.guardsResult=Xt.guardsResult,On(Xt.guardsResult))throw cl(0,Xt.guardsResult);const Li=new Ls(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects),Xt.targetSnapshot,!!Xt.guardsResult);this.events.next(Li)}),(0,O.p)(Xt=>!!Xt.guardsResult||(this.cancelNavigationTransition(Xt,"",Xi.GuardRejected),!1)),Vl(Xt=>{if(Xt.guards.canActivateChecks.length)return(0,Pe.of)(Xt).pipe((0,l.M)(Li=>{const pn=new Vr(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}),(0,b.n)(Li=>{let pn=!1;return(0,Pe.of)(Li).pipe(function gl(Re,Ue){return(0,f.Z)(Be=>{const{targetSnapshot:We,guards:{canActivateChecks:rt}}=Be;if(!rt.length)return(0,Pe.of)(Be);const mt=new Set(rt.map(Xt=>Xt.route)),Ot=new Set;for(const Xt of mt)if(!Ot.has(Xt))for(const Li of yo(Xt))Ot.add(Li);let ei=0;return(0,V.H)(Ot).pipe((0,r.H)(Xt=>mt.has(Xt)?function xo(Re,Ue,Be,We){const rt=Re.routeConfig,mt=Re._resolve;return void 0!==rt?.title&&!zr(rt)&&(mt[X]=rt.title),function _a(Re,Ue,Be,We){const rt=q(Re);if(0===rt.length)return(0,Pe.of)({});const mt={};return(0,V.H)(rt).pipe((0,f.Z)(Ot=>function Ca(Re,Ue,Be,We){const rt=Ys(Ue)??We,mt=Zi(Re,rt);return Ce(mt.resolve?mt.resolve(Ue,Be):(0,M.N4e)(rt,()=>mt(Ue,Be)))}(Re[Ot],Ue,Be,We).pipe(n(),(0,l.M)(ei=>{mt[Ot]=ei}))),p(1),(0,j.u)(mt),(0,d.W)(Ot=>Ks(Ot)?te.w:(0,J.$)(Ot)))}(mt,Re,Ue,We).pipe((0,_.T)(Ot=>(Re._resolvedData=Ot,Re.data=xr(Re,Re.parent,Be).resolve,null)))}(Xt,We,Re,Ue):(Xt.data=xr(Xt,Xt.parent,Re).resolve,(0,Pe.of)(void 0))),(0,l.M)(()=>ei++),p(1),(0,f.Z)(Xt=>ei===Ot.size?(0,Pe.of)(Be):te.w))})}(this.paramsInheritanceStrategy,this.environmentInjector),(0,l.M)({next:()=>pn=!0,complete:()=>{pn||this.cancelNavigationTransition(Li,"",Xi.NoDataFromResolver)}}))}),(0,l.M)(Li=>{const pn=new Ki(Li.id,this.urlSerializer.serialize(Li.extractedUrl),this.urlSerializer.serialize(Li.urlAfterRedirects),Li.targetSnapshot);this.events.next(pn)}))}),Vl(Xt=>{const Li=pn=>{const Dn=[];pn.routeConfig?.loadComponent&&!pn.routeConfig._loadedComponent&&Dn.push(this.configLoader.loadComponent(pn.routeConfig).pipe((0,l.M)(qs=>{pn.component=qs}),(0,_.T)(()=>{})));for(const qs of pn.children)Dn.push(...Li(qs));return Dn};return(0,ie.z)(Li(Xt.targetSnapshot.root)).pipe((0,a.U)(null),(0,T.s)(1))}),Vl(()=>this.afterPreactivation()),(0,b.n)(()=>{const{currentSnapshot:Xt,targetSnapshot:Li}=mt,pn=this.createViewTransition?.(this.environmentInjector,Xt.root,Li.root);return pn?(0,V.H)(pn).pipe((0,_.T)(()=>mt)):(0,Pe.of)(mt)}),(0,_.T)(Xt=>{const Li=function al(Re,Ue,Be){const We=Eo(Re,Ue._root,Be?Be._root:void 0);return new ol(We,Ue)}(Be.routeReuseStrategy,Xt.targetSnapshot,Xt.currentRouterState);return this.currentTransition=mt={...Xt,targetRouterState:Li},this.currentNavigation.targetRouterState=Li,mt}),(0,l.M)(()=>{this.events.next(new bn)}),((Re,Ue,Be,We)=>(0,_.T)(rt=>(new ya(Ue,rt.targetRouterState,rt.currentRouterState,Be,We).activate(Re),rt)))(this.rootContexts,Be.routeReuseStrategy,Xt=>this.events.next(Xt),this.inputBindingEnabled),(0,T.s)(1),(0,l.M)({next:Xt=>{Ot=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new un(Xt.id,this.urlSerializer.serialize(Xt.extractedUrl),this.urlSerializer.serialize(Xt.urlAfterRedirects))),this.titleStrategy?.updateTitle(Xt.targetRouterState.snapshot),Xt.resolve(!0)},complete:()=>{Ot=!0}}),(0,Y.Q)(this.transitionAbortSubject.pipe((0,l.M)(Xt=>{throw Xt}))),(0,H.j)(()=>{!Ot&&!ei&&this.cancelNavigationTransition(mt,"",Xi.SupersededByNewNavigation),this.currentTransition?.id===mt.id&&(this.currentNavigation=null,this.currentTransition=null)}),(0,d.W)(Xt=>{if(ei=!0,cs(Xt))this.events.next(new os(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt.message,Xt.cancellationCode)),function sr(Re){return cs(Re)&&On(Re.url)}(Xt)?this.events.next(new Ko(Xt.url)):mt.resolve(!1);else{this.events.next(new ns(mt.id,this.urlSerializer.serialize(mt.extractedUrl),Xt,mt.targetSnapshot??void 0));try{mt.resolve(Be.errorHandler(Xt))}catch(Li){this.options.resolveNavigationPromiseOnError?mt.resolve(!1):mt.reject(Li)}}return te.w}))}))}cancelNavigationTransition(Be,We,rt){const mt=new os(Be.id,this.urlSerializer.serialize(Be.extractedUrl),We,rt);this.events.next(mt),Be.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();function ci(Re){return Re!==Ti}let Oi=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(es),providedIn:"root"})}return Re})();class Xn{shouldDetach(Ue){return!1}store(Ue,Be){}shouldAttach(Ue){return!1}retrieve(Ue){return null}shouldReuseRoute(Ue,Be){return Ue.routeConfig===Be.routeConfig}}let es=(()=>{class Re extends Xn{static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),as=(()=>{class Re{static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:()=>(0,M.WQX)(Sn),providedIn:"root"})}return Re})(),Sn=(()=>{class Re extends as{constructor(){super(...arguments),this.location=(0,M.WQX)(E.aZ),this.urlSerializer=(0,M.WQX)(Qe),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=(0,M.WQX)(na),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new _e,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=ua(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(Be){return this.location.subscribe(We=>{"popstate"===We.type&&Be(We.url,We.state)})}handleRouterEvent(Be,We){if(Be instanceof rs)this.stateMemento=this.createStateMemento();else if(Be instanceof Js)this.rawUrlTree=We.initialUrl;else if(Be instanceof Qr){if("eager"===this.urlUpdateStrategy&&!We.extras.skipLocationChange){const rt=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl);this.setBrowserUrl(rt,We)}}else Be instanceof bn?(this.currentUrlTree=We.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(We.finalUrl,We.initialUrl),this.routerState=We.targetRouterState,"deferred"===this.urlUpdateStrategy&&(We.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,We))):Be instanceof os&&(Be.code===Xi.GuardRejected||Be.code===Xi.NoDataFromResolver)?this.restoreHistory(We):Be instanceof ns?this.restoreHistory(We,!0):Be instanceof un&&(this.lastSuccessfulId=Be.id,this.currentPageId=this.browserPageId)}setBrowserUrl(Be,We){const rt=this.urlSerializer.serialize(Be);if(this.location.isCurrentPathEqualTo(rt)||We.extras.replaceUrl){const Ot={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId)};this.location.replaceState(rt,"",Ot)}else{const mt={...We.extras.state,...this.generateNgRouterState(We.id,this.browserPageId+1)};this.location.go(rt,"",mt)}}restoreHistory(Be,We=!1){if("computed"===this.canceledNavigationResolution){const mt=this.currentPageId-this.browserPageId;0!==mt?this.location.historyGo(mt):this.currentUrlTree===Be.finalUrl&&0===mt&&(this.resetState(Be),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(We&&this.resetState(Be),this.resetUrlToCurrentUrlTree())}resetState(Be){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Be.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(Be,We){return"computed"===this.canceledNavigationResolution?{navigationId:Be,\u0275routerPageId:We}:{navigationId:Be}}static#e=this.\u0275fac=(()=>{let Be;return function(rt){return(Be||(Be=M.xGo(Re)))(rt||Re)}})();static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();var us=function(Re){return Re[Re.COMPLETE=0]="COMPLETE",Re[Re.FAILED=1]="FAILED",Re[Re.REDIRECTING=2]="REDIRECTING",Re}(us||{});function ss(Re,Ue){Re.events.pipe((0,O.p)(Be=>Be instanceof un||Be instanceof os||Be instanceof ns||Be instanceof Js),(0,_.T)(Be=>Be instanceof un||Be instanceof Js?us.COMPLETE:Be instanceof os&&(Be.code===Xi.Redirect||Be.code===Xi.SupersededByNewNavigation)?us.REDIRECTING:us.FAILED),(0,O.p)(Be=>Be!==us.REDIRECTING),(0,T.s)(1)).subscribe(()=>{Ue()})}function Bs(Re){throw Re}const Rr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Gn={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pi=(()=>{class Re{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=(0,M.WQX)(M.H3F),this.stateManager=(0,M.WQX)(as),this.options=(0,M.WQX)(_r,{optional:!0})||{},this.pendingTasks=(0,M.WQX)(M.TgB),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=(0,M.WQX)(qt),this.urlSerializer=(0,M.WQX)(Qe),this.location=(0,M.WQX)(E.aZ),this.urlHandlingStrategy=(0,M.WQX)(na),this._events=new I.B,this.errorHandler=this.options.errorHandler||Bs,this.navigated=!1,this.routeReuseStrategy=(0,M.WQX)(Oi),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=(0,M.WQX)(Ga,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!(0,M.WQX)(mo,{optional:!0}),this.eventsSubscription=new A.yU,this.isNgZoneEnabled=(0,M.WQX)(M.SKi)instanceof M.SKi&&M.SKi.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:Be=>{this.console.warn(Be)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const Be=this.navigationTransitions.events.subscribe(We=>{try{const rt=this.navigationTransitions.currentTransition,mt=this.navigationTransitions.currentNavigation;if(null!==rt&&null!==mt)if(this.stateManager.handleRouterEvent(We,mt),We instanceof os&&We.code!==Xi.Redirect&&We.code!==Xi.SupersededByNewNavigation)this.navigated=!0;else if(We instanceof un)this.navigated=!0;else if(We instanceof Ko){const Ot=this.urlHandlingStrategy.merge(We.url,rt.currentRawUrl),ei={info:rt.extras.info,skipLocationChange:rt.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ci(rt.source)};this.scheduleNavigation(Ot,Ti,null,ei,{resolve:rt.resolve,reject:rt.reject,promise:rt.promise})}(function Yn(Re){return!(Re instanceof bn||Re instanceof Ko)})(We)&&this._events.next(We)}catch(rt){this.navigationTransitions.transitionAbortSubject.next(rt)}});this.eventsSubscription.add(Be)}resetRootComponentType(Be){this.routerState.root.component=Be,this.navigationTransitions.rootComponentType=Be}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Ti,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((Be,We)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(Be,"popstate",We)},0)})}navigateToSyncWithBrowser(Be,We,rt){const mt={replaceUrl:!0},Ot=rt?.navigationId?rt:null;if(rt){const Xt={...rt};delete Xt.navigationId,delete Xt.\u0275routerPageId,0!==Object.keys(Xt).length&&(mt.state=Xt)}const ei=this.parseUrl(Be);this.scheduleNavigation(ei,We,Ot,mt)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(Be){this.config=Be.map(Hr),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(Be,We={}){const{relativeTo:rt,queryParams:mt,fragment:Ot,queryParamsHandling:ei,preserveFragment:Xt}=We,Li=Xt?this.currentUrlTree.fragment:Ot;let Dn,pn=null;switch(ei){case"merge":pn={...this.currentUrlTree.queryParams,...mt};break;case"preserve":pn=this.currentUrlTree.queryParams;break;default:pn=mt||null}null!==pn&&(pn=this.removeEmptyProps(pn));try{Dn=As(rt?rt.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof Be[0]||!Be[0].startsWith("/"))&&(Be=[]),Dn=this.currentUrlTree.root}return $n(Dn,Be,pn,Li??null)}navigateByUrl(Be,We={skipLocationChange:!1}){const rt=On(Be)?Be:this.parseUrl(Be),mt=this.urlHandlingStrategy.merge(rt,this.rawUrlTree);return this.scheduleNavigation(mt,Ti,null,We)}navigate(Be,We={skipLocationChange:!1}){return function zi(Re){for(let Ue=0;Ue(null!=mt&&(We[rt]=mt),We),{})}scheduleNavigation(Be,We,rt,mt,Ot){if(this.disposed)return Promise.resolve(!1);let ei,Xt,Li;Ot?(ei=Ot.resolve,Xt=Ot.reject,Li=Ot.promise):Li=new Promise((Dn,qs)=>{ei=Dn,Xt=qs});const pn=this.pendingTasks.add();return ss(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(pn))}),this.navigationTransitions.handleNavigationRequest({source:We,restoredState:rt,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:Be,extras:mt,resolve:ei,reject:Xt,promise:Li,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),Li.catch(Dn=>Promise.reject(Dn))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),gs=(()=>{class Re{constructor(Be,We,rt,mt,Ot,ei){this.router=Be,this.route=We,this.tabIndexAttribute=rt,this.renderer=mt,this.el=Ot,this.locationStrategy=ei,this.href=null,this.commands=null,this.onChanges=new I.B,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const Xt=Ot.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===Xt||"area"===Xt,this.isAnchorElement?this.subscription=Be.events.subscribe(Li=>{Li instanceof un&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(Be){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",Be)}ngOnChanges(Be){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(Be){null!=Be?(this.commands=Array.isArray(Be)?Be:[Be],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(Be,We,rt,mt,Ot){const ei=this.urlTree;return!!(null===ei||this.isAnchorElement&&(0!==Be||We||rt||mt||Ot||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(ei,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const Be=this.urlTree;this.href=null!==Be&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(Be)):null;const We=null===this.href?null:(0,M.n$t)(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",We)}applyAttributeValue(Be,We){const rt=this.renderer,mt=this.el.nativeElement;null!==We?rt.setAttribute(mt,Be,We):rt.removeAttribute(mt,Be)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(go),M.kS0("tabindex"),M.rXU(M.sFG),M.rXU(M.aKT),M.rXU(E.hb))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(We,rt){1&We&&M.bIt("click",function(Ot){return rt.onClick(Ot.button,Ot.ctrlKey,Ot.shiftKey,Ot.altKey,Ot.metaKey)}),2&We&&M.BMQ("target",rt.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[M.Mj6.HasDecoratorInputTransform,"preserveFragment","preserveFragment",M.L39],skipLocationChange:[M.Mj6.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",M.L39],replaceUrl:[M.Mj6.HasDecoratorInputTransform,"replaceUrl","replaceUrl",M.L39],routerLink:"routerLink"},standalone:!0,features:[M.GFd,M.OA$]})}return Re})(),ks=(()=>{class Re{get isActive(){return this._isActive}constructor(Be,We,rt,mt,Ot){this.router=Be,this.element=We,this.renderer=rt,this.cdr=mt,this.link=Ot,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new M.bkB,this.routerEventsSubscription=Be.events.subscribe(ei=>{ei instanceof un&&this.update()})}ngAfterContentInit(){(0,Pe.of)(this.links.changes,(0,Pe.of)(null)).pipe((0,U.U)()).subscribe(Be=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const Be=[...this.links.toArray(),this.link].filter(We=>!!We).map(We=>We.onChanges);this.linkInputChangesSubscription=(0,V.H)(Be).pipe((0,U.U)()).subscribe(We=>{this._isActive!==this.isLinkActive(this.router)(We)&&this.update()})}set routerLinkActive(Be){const We=Array.isArray(Be)?Be:Be.split(" ");this.classes=We.filter(rt=>!!rt)}ngOnChanges(Be){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const Be=this.hasActiveLinks();this._isActive!==Be&&(this._isActive=Be,this.cdr.markForCheck(),this.classes.forEach(We=>{Be?this.renderer.addClass(this.element.nativeElement,We):this.renderer.removeClass(this.element.nativeElement,We)}),Be&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(Be))})}isLinkActive(Be){const We=function or(Re){return!!Re.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return rt=>{const mt=rt.urlTree;return!!mt&&Be.isActive(mt,We)}}hasActiveLinks(){const Be=this.isLinkActive(this.router);return this.link&&Be(this.link)||this.links.some(Be)}static#e=this.\u0275fac=function(We){return new(We||Re)(M.rXU(pi),M.rXU(M.aKT),M.rXU(M.sFG),M.rXU(M.gRc),M.rXU(gs,8))};static#t=this.\u0275dir=M.FsC({type:Re,selectors:[["","routerLinkActive",""]],contentQueries:function(We,rt,mt){if(1&We&&M.wni(mt,gs,5),2&We){let Ot;M.mGM(Ot=M.lsd())&&(rt.links=Ot)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[M.OA$]})}return Re})();class wa{}let ms=(()=>{class Re{preload(Be,We){return We().pipe((0,d.W)(()=>(0,Pe.of)(null)))}static#e=this.\u0275fac=function(We){return new(We||Re)};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})(),_o=(()=>{class Re{constructor(Be,We,rt,mt,Ot){this.router=Be,this.injector=rt,this.preloadingStrategy=mt,this.loader=Ot}setUpPreloading(){this.subscription=this.router.events.pipe((0,O.p)(Be=>Be instanceof un),(0,r.H)(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(Be,We){const rt=[];for(const mt of We){mt.providers&&!mt._injector&&(mt._injector=(0,M.Ol2)(mt.providers,Be,`Route: ${mt.path}`));const Ot=mt._injector??Be,ei=mt._loadedInjector??Ot;(mt.loadChildren&&!mt._loadedRoutes&&void 0===mt.canLoad||mt.loadComponent&&!mt._loadedComponent)&&rt.push(this.preloadConfig(Ot,mt)),(mt.children||mt._loadedRoutes)&&rt.push(this.processRoutes(ei,mt.children??mt._loadedRoutes))}return(0,V.H)(rt).pipe((0,U.U)())}preloadConfig(Be,We){return this.preloadingStrategy.preload(We,()=>{let rt;rt=We.loadChildren&&void 0===We.canLoad?this.loader.loadChildren(Be,We):(0,Pe.of)(null);const mt=rt.pipe((0,f.Z)(Ot=>null===Ot?(0,Pe.of)(void 0):(We._loadedRoutes=Ot.routes,We._loadedInjector=Ot.injector,this.processRoutes(Ot.injector??Be,Ot.routes))));if(We.loadComponent&&!We._loadedComponent){const Ot=this.loader.loadComponent(We);return(0,V.H)([mt,Ot]).pipe((0,U.U)())}return mt})}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(pi),M.KVO(M.Ql9),M.KVO(M.uvJ),M.KVO(wa),M.KVO(ta))};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac,providedIn:"root"})}return Re})();const en=new M.nKC("");let Ro=(()=>{class Re{constructor(Be,We,rt,mt,Ot={}){this.urlSerializer=Be,this.transitions=We,this.viewportScroller=rt,this.zone=mt,this.options=Ot,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},Ot.scrollPositionRestoration||="disabled",Ot.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof rs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=Be.navigationTrigger,this.restoredId=Be.restoredState?Be.restoredState.navigationId:0):Be instanceof un?(this.lastId=Be.id,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.urlAfterRedirects).fragment)):Be instanceof Js&&Be.code===cn.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(Be,this.urlSerializer.parse(Be.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(Be=>{Be instanceof Jr&&(Be.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(Be.position):Be.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(Be.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(Be,We){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Jr(Be,"popstate"===this.lastSource?this.store[this.restoredId]:null,We))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(We){M.QTQ()};static#t=this.\u0275prov=M.jDH({token:Re,factory:Re.\u0275fac})}return Re})();function Kn(Re,Ue){return{\u0275kind:Re,\u0275providers:Ue}}function Sa(){const Re=(0,M.WQX)(M.zZn);return Ue=>{const Be=Re.get(M.o8S);if(Ue!==Be.components[0])return;const We=Re.get(pi),rt=Re.get(No);1===Re.get(bl)&&We.initialNavigation(),Re.get(vl,null,M.$GK.Optional)?.setUpPreloading(),Re.get(en,null,M.$GK.Optional)?.init(),We.resetRootComponentType(Be.componentTypes[0]),rt.closed||(rt.next(),rt.complete(),rt.unsubscribe())}}const No=new M.nKC("",{factory:()=>new I.B}),bl=new M.nKC("",{providedIn:"root",factory:()=>1}),vl=new M.nKC("");function Fo(Re){return Kn(0,[{provide:vl,useExisting:_o},{provide:wa,useExisting:Re}])}function mr(Re){return Kn(9,[{provide:ut,useValue:at},{provide:Ke,useValue:{skipNextTransition:!!Re?.skipInitialTransition,...Re}}])}const Gl=new M.nKC("ROUTER_FORROOT_GUARD"),sa=[E.aZ,{provide:Qe,useClass:st},pi,eo,{provide:go,useFactory:function bs(Re){return Re.routerState.root},deps:[pi]},ta,[]];let xl=(()=>{class Re{constructor(Be){}static forRoot(Be,We){return{ngModule:Re,providers:[sa,[],{provide:Ga,multi:!0,useValue:Be},{provide:Gl,useFactory:Zh,deps:[[pi,new M.Xx1,new M.kdw]]},{provide:_r,useValue:We||{}},We?.useHash?{provide:E.hb,useClass:E.fw}:{provide:E.hb,useClass:E.Sm},{provide:en,useFactory:()=>{const Re=(0,M.WQX)(E.Xr),Ue=(0,M.WQX)(M.SKi),Be=(0,M.WQX)(_r),We=(0,M.WQX)(qt),rt=(0,M.WQX)(Qe);return Be.scrollOffset&&Re.setOffset(Be.scrollOffset),new Ro(rt,We,Re,Ue,Be)}},We?.preloadingStrategy?Fo(We.preloadingStrategy).\u0275providers:[],We?.initialNavigation?Qn(We):[],We?.bindToComponentInputs?Kn(8,[ma,{provide:mo,useExisting:ma}]).\u0275providers:[],We?.enableViewTransitions?mr().\u0275providers:[],[{provide:_l,useFactory:Sa},{provide:M.iLQ,multi:!0,useExisting:_l}]]}}static forChild(Be){return{ngModule:Re,providers:[{provide:Ga,multi:!0,useValue:Be}]}}static#e=this.\u0275fac=function(We){return new(We||Re)(M.KVO(Gl,8))};static#t=this.\u0275mod=M.$C({type:Re});static#i=this.\u0275inj=M.G2t({})}return Re})();function Zh(Re){return"guarded"}function Qn(Re){return["disabled"===Re.initialNavigation?Kn(3,[{provide:M.hnV,multi:!0,useFactory:()=>{const Ue=(0,M.WQX)(pi);return()=>{Ue.setUpLocationChangeListener()}}},{provide:bl,useValue:2}]).\u0275providers:[],"enabledBlocking"===Re.initialNavigation?Kn(2,[{provide:bl,useValue:0},{provide:M.hnV,multi:!0,deps:[M.zZn],useFactory:Ue=>{const Be=Ue.get(E.hj,Promise.resolve());return()=>Be.then(()=>new Promise(We=>{const rt=Ue.get(pi),mt=Ue.get(No);ss(rt,()=>{We(!0)}),Ue.get(qt).afterPreactivation=()=>(We(!0),mt.closed?(0,Pe.of)(void 0):mt),rt.initialNavigation()}))}}]).\u0275providers:[]]}const _l=new M.nKC("")},88652:(ri,Ft,He)=>{"use strict";He.d(Ft,{$G:()=>ut,tg:()=>Ul,U0:()=>Vo,do:()=>Yc,Bq:()=>qc,UN:()=>ah,ZM:()=>cd});var M=He(54438),V=(He(89079),He(71985)),Pe=He(983),Z=He(7673),ie=He(21413),re=He(33726),ve=He(41584),le=He(58750);const{isArray:fe}=Array;function pe(be){return 1===be.length&&fe(be[0])?be[0]:be}var J=He(54360);function te(...be){return 1===(be=pe(be)).length?(0,le.Tg)(be[0]):new V.c(function $(be){return je=>{let ae=[];for(let we=0;ae&&!je.closed&&we{if(ae){for(let it=0;it{let Ne=ae.map(()=>[]),it=ae.map(()=>!1);we.add(()=>{Ne=it=null});for(let ft=0;!we.closed&&ft{if(Ne[ft].push(Vt),Ne.every(Wt=>Wt.length)){const Wt=Ne.map(Qt=>Qt.shift());we.next(je?je(...Wt):Wt),Ne.some((Qt,ii)=>!Qt.length&&it[ii])&&we.complete()}},()=>{it[ft]=!0,!Ne[ft].length&&we.complete()}));return()=>{Ne=it=null}}):Pe.w}var L=He(28793),I=He(56977),E=He(5964),_=He(96697),b=He(88141),T=He(96354),z=He(39974),O=He(33669),f=He(85343);function a(...be){const je=(0,B.ms)(be);return(0,z.N)((ae,we)=>{const Ne=be.length,it=new Array(Ne);let ft=be.map(()=>!1),Vt=!1;for(let Wt=0;Wt{it[Wt]=Qt,!Vt&&!ft[Wt]&&(ft[Wt]=!0,(Vt=ft.every(O.D))&&(ft=null))},f.l));ae.subscribe((0,J._)(we,Wt=>{if(Vt){const Qt=[Wt,...it];we.next(je?je(...Qt):Qt)}}))})}var g=He(91986),y=He(73028),o=He(25558);He(99172),He(23294);var d=He(60177),k=(He(89417),{left:"right",right:"left",bottom:"top",top:"bottom"});function p(be){return be.replace(/left|right|bottom|top/g,function(je){return k[je]})}function S(be){return be.split("-")[0]}var j={start:"end",end:"start"};function H(be){return be.replace(/start|end/g,function(je){return j[je]})}var Y="top",U="bottom",se="right",w="left",X="auto",G=[Y,U,se,w],x="start",N="end",K="viewport",q="popper",me=G.reduce(function(be,je){return be.concat([je+"-"+x,je+"-"+N])},[]),Ce=[].concat(G,[X]).reduce(function(be,je){return be.concat([je,je+"-"+x,je+"-"+N])},[]),_e=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Me(be){if(null==be)return window;if("[object Window]"!==be.toString()){var je=be.ownerDocument;return je&&je.defaultView||window}return be}function Ee(be){return be instanceof Me(be).Element||be instanceof Element}function Xe(be){return be instanceof Me(be).HTMLElement||be instanceof HTMLElement}function Ze(be){return!(typeof ShadowRoot>"u")&&(be instanceof Me(be).ShadowRoot||be instanceof ShadowRoot)}function lt(be){return((Ee(be)?be.ownerDocument:be.document)||window.document).documentElement}var Qe=Math.max,st=Math.min,kt=Math.round;function pt(){var be=navigator.userAgentData;return null!=be&&be.brands&&Array.isArray(be.brands)?be.brands.map(function(je){return je.brand+"/"+je.version}).join(" "):navigator.userAgent}function ht(){return!/^((?!chrome|android).)*safari/i.test(pt())}function Lt(be,je,ae){void 0===je&&(je=!1),void 0===ae&&(ae=!1);var we=be.getBoundingClientRect(),Ne=1,it=1;je&&Xe(be)&&(Ne=be.offsetWidth>0&&kt(we.width)/be.offsetWidth||1,it=be.offsetHeight>0&&kt(we.height)/be.offsetHeight||1);var Vt=(Ee(be)?Me(be):window).visualViewport,Wt=!ht()&&ae,Qt=(we.left+(Wt&&Vt?Vt.offsetLeft:0))/Ne,ii=(we.top+(Wt&&Vt?Vt.offsetTop:0))/it,Ci=we.width/Ne,_i=we.height/it;return{width:Ci,height:_i,top:ii,right:Qt+Ci,bottom:ii+_i,left:Qt,x:Qt,y:ii}}function Gt(be){var je=Me(be);return{scrollLeft:je.pageXOffset,scrollTop:je.pageYOffset}}function ti(be){return Lt(lt(be)).left+Gt(be).scrollLeft}function At(be){return Me(be).getComputedStyle(be)}function wt(be){return be?(be.nodeName||"").toLowerCase():null}function Jt(be){return"html"===wt(be)?be:be.assignedSlot||be.parentNode||(Ze(be)?be.host:null)||lt(be)}function ui(be){var je=At(be);return/auto|scroll|overlay|hidden/.test(je.overflow+je.overflowY+je.overflowX)}function Fi(be){return["html","body","#document"].indexOf(wt(be))>=0?be.ownerDocument.body:Xe(be)&&ui(be)?be:Fi(Jt(be))}function mi(be,je){var ae;void 0===je&&(je=[]);var we=Fi(be),Ne=we===(null==(ae=be.ownerDocument)?void 0:ae.body),it=Me(we),ft=Ne?[it].concat(it.visualViewport||[],ui(we)?we:[]):we,Vt=je.concat(ft);return Ne?Vt:Vt.concat(mi(Jt(ft)))}function vi(be){return["table","td","th"].indexOf(wt(be))>=0}function Gi(be){return Xe(be)&&"fixed"!==At(be).position?be.offsetParent:null}function Fn(be){for(var je=Me(be),ae=Gi(be);ae&&vi(ae)&&"static"===At(ae).position;)ae=Gi(ae);return ae&&("html"===wt(ae)||"body"===wt(ae)&&"static"===At(ae).position)?je:ae||function _s(be){var je=/firefox/i.test(pt());if(/Trident/i.test(pt())&&Xe(be)&&"fixed"===At(be).position)return null;var Ne=Jt(be);for(Ze(Ne)&&(Ne=Ne.host);Xe(Ne)&&["html","body"].indexOf(wt(Ne))<0;){var it=At(Ne);if("none"!==it.transform||"none"!==it.perspective||"paint"===it.contain||-1!==["transform","perspective"].indexOf(it.willChange)||je&&"filter"===it.willChange||je&&it.filter&&"none"!==it.filter)return Ne;Ne=Ne.parentNode}return null}(be)||je}function ls(be,je){var ae=je.getRootNode&&je.getRootNode();if(be.contains(je))return!0;if(ae&&Ze(ae)){var we=je;do{if(we&&be.isSameNode(we))return!0;we=we.parentNode||we.host}while(we)}return!1}function fs(be){return Object.assign({},be,{left:be.x,top:be.y,right:be.x+be.width,bottom:be.y+be.height})}function dn(be,je,ae){return je===K?fs(function Mt(be,je){var ae=Me(be),we=lt(be),Ne=ae.visualViewport,it=we.clientWidth,ft=we.clientHeight,Vt=0,Wt=0;if(Ne){it=Ne.width,ft=Ne.height;var Qt=ht();(Qt||!Qt&&"fixed"===je)&&(Vt=Ne.offsetLeft,Wt=Ne.offsetTop)}return{width:it,height:ft,x:Vt+ti(be),y:Wt}}(be,ae)):Ee(je)?function zn(be,je){var ae=Lt(be,!1,"fixed"===je);return ae.top=ae.top+be.clientTop,ae.left=ae.left+be.clientLeft,ae.bottom=ae.top+be.clientHeight,ae.right=ae.left+be.clientWidth,ae.width=be.clientWidth,ae.height=be.clientHeight,ae.x=ae.left,ae.y=ae.top,ae}(je,ae):fs(function _t(be){var je,ae=lt(be),we=Gt(be),Ne=null==(je=be.ownerDocument)?void 0:je.body,it=Qe(ae.scrollWidth,ae.clientWidth,Ne?Ne.scrollWidth:0,Ne?Ne.clientWidth:0),ft=Qe(ae.scrollHeight,ae.clientHeight,Ne?Ne.scrollHeight:0,Ne?Ne.clientHeight:0),Vt=-we.scrollLeft+ti(be),Wt=-we.scrollTop;return"rtl"===At(Ne||ae).direction&&(Vt+=Qe(ae.clientWidth,Ne?Ne.clientWidth:0)-it),{width:it,height:ft,x:Vt,y:Wt}}(lt(be)))}function On(be){return be.split("-")[1]}function Pn(be){return["top","bottom"].indexOf(be)>=0?"x":"y"}function As(be){var Wt,je=be.reference,ae=be.element,we=be.placement,Ne=we?S(we):null,it=we?On(we):null,ft=je.x+je.width/2-ae.width/2,Vt=je.y+je.height/2-ae.height/2;switch(Ne){case Y:Wt={x:ft,y:je.y-ae.height};break;case U:Wt={x:ft,y:je.y+je.height};break;case se:Wt={x:je.x+je.width,y:Vt};break;case w:Wt={x:je.x-ae.width,y:Vt};break;default:Wt={x:je.x,y:je.y}}var Qt=Ne?Pn(Ne):null;if(null!=Qt){var ii="y"===Qt?"height":"width";switch(it){case x:Wt[Qt]=Wt[Qt]-(je[ii]/2-ae[ii]/2);break;case N:Wt[Qt]=Wt[Qt]+(je[ii]/2-ae[ii]/2)}}return Wt}function $i(be){return Object.assign({},{top:0,right:0,bottom:0,left:0},be)}function ws(be,je){return je.reduce(function(ae,we){return ae[we]=be,ae},{})}function kn(be,je){void 0===je&&(je={});var we=je.placement,Ne=void 0===we?be.placement:we,it=je.strategy,ft=void 0===it?be.strategy:it,Vt=je.boundary,Wt=void 0===Vt?"clippingParents":Vt,Qt=je.rootBoundary,ii=void 0===Qt?K:Qt,Ci=je.elementContext,_i=void 0===Ci?q:Ci,Ai=je.altBoundary,_n=void 0!==Ai&&Ai,rn=je.padding,fn=void 0===rn?0:rn,Rn=$i("number"!=typeof fn?fn:ws(fn,G)),vs=be.rects.popper,En=be.elements[_n?_i===q?"reference":q:_i],Zn=function Cs(be,je,ae,we){var Ne="clippingParents"===je?function Di(be){var je=mi(Jt(be)),we=["absolute","fixed"].indexOf(At(be).position)>=0&&Xe(be)?Fn(be):be;return Ee(we)?je.filter(function(Ne){return Ee(Ne)&&ls(Ne,we)&&"body"!==wt(Ne)}):[]}(be):[].concat(je),it=[].concat(Ne,[ae]),Vt=it.reduce(function(Wt,Qt){var ii=dn(be,Qt,we);return Wt.top=Qe(ii.top,Wt.top),Wt.right=st(ii.right,Wt.right),Wt.bottom=st(ii.bottom,Wt.bottom),Wt.left=Qe(ii.left,Wt.left),Wt},dn(be,it[0],we));return Vt.width=Vt.right-Vt.left,Vt.height=Vt.bottom-Vt.top,Vt.x=Vt.left,Vt.y=Vt.top,Vt}(Ee(En)?En:En.contextElement||lt(be.elements.popper),Wt,ii,ft),An=Lt(be.elements.reference),qn=As({reference:An,element:vs,strategy:"absolute",placement:Ne}),Ps=fs(Object.assign({},vs,qn)),lr=_i===q?Ps:An,zs={top:Zn.top-lr.top+Rn.top,bottom:lr.bottom-Zn.bottom+Rn.bottom,left:Zn.left-lr.left+Rn.left,right:lr.right-Zn.right+Rn.right},wr=be.modifiersData.offset;if(_i===q&&wr){var lo=wr[Ne];Object.keys(zs).forEach(function(Tr){var xe=[se,U].indexOf(Tr)>=0?1:-1,tt=[Y,U].indexOf(Tr)>=0?"y":"x";zs[Tr]+=lo[tt]*xe})}return zs}const ir={name:"flip",enabled:!0,phase:"main",fn:function qr(be){var je=be.state,ae=be.options,we=be.name;if(!je.modifiersData[we]._skip){for(var Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0===ft||ft,Wt=ae.fallbackPlacements,Qt=ae.padding,ii=ae.boundary,Ci=ae.rootBoundary,_i=ae.altBoundary,Ai=ae.flipVariations,_n=void 0===Ai||Ai,rn=ae.allowedAutoPlacements,fn=je.options.placement,Rn=S(fn),vs=Wt||(Rn!==fn&&_n?function fo(be){if(S(be)===X)return[];var je=p(be);return[H(be),je,H(je)]}(fn):[p(fn)]),En=[fn].concat(vs).reduce(function(oi,Pi){return oi.concat(S(Pi)===X?function jr(be,je){void 0===je&&(je={});var Ne=je.boundary,it=je.rootBoundary,ft=je.padding,Vt=je.flipVariations,Wt=je.allowedAutoPlacements,Qt=void 0===Wt?Ce:Wt,ii=On(je.placement),Ci=ii?Vt?me:me.filter(function(_n){return On(_n)===ii}):G,_i=Ci.filter(function(_n){return Qt.indexOf(_n)>=0});0===_i.length&&(_i=Ci);var Ai=_i.reduce(function(_n,rn){return _n[rn]=kn(be,{placement:rn,boundary:Ne,rootBoundary:it,padding:ft})[S(rn)],_n},{});return Object.keys(Ai).sort(function(_n,rn){return Ai[_n]-Ai[rn]})}(je,{placement:Pi,boundary:ii,rootBoundary:Ci,padding:Qt,flipVariations:_n,allowedAutoPlacements:rn}):Pi)},[]),Zn=je.rects.reference,An=je.rects.popper,qn=new Map,Ps=!0,lr=En[0],zs=0;zs=0,tt=xe?"width":"height",u=kn(je,{placement:wr,boundary:ii,rootBoundary:Ci,altBoundary:_i,padding:Qt}),ne=xe?Tr?se:w:Tr?U:Y;Zn[tt]>An[tt]&&(ne=p(ne));var ue=p(ne),Ie=[];if(it&&Ie.push(u[lo]<=0),Vt&&Ie.push(u[ne]<=0,u[ue]<=0),Ie.every(function(oi){return oi})){lr=wr,Ps=!1;break}qn.set(wr,Ie)}if(Ps)for(var Tt=function(Pi){var qi=En.find(function(Yi){var tn=qn.get(Yi);if(tn)return tn.slice(0,Pi).every(function(Cn){return Cn})});if(qi)return lr=qi,"break"},zt=_n?3:1;zt>0&&"break"!==Tt(zt);zt--);je.placement!==lr&&(je.modifiersData[we]._skip=!0,je.placement=lr,je.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Rt(be,je,ae){return Qe(be,st(je,ae))}function bt(be){var je=Lt(be),ae=be.offsetWidth,we=be.offsetHeight;return Math.abs(je.width-ae)<=1&&(ae=je.width),Math.abs(je.height-we)<=1&&(we=je.height),{x:be.offsetLeft,y:be.offsetTop,width:ae,height:we}}const $e={name:"preventOverflow",enabled:!0,phase:"main",fn:function xt(be){var je=be.state,ae=be.options,we=be.name,Ne=ae.mainAxis,it=void 0===Ne||Ne,ft=ae.altAxis,Vt=void 0!==ft&&ft,_i=ae.tether,Ai=void 0===_i||_i,_n=ae.tetherOffset,rn=void 0===_n?0:_n,fn=kn(je,{boundary:ae.boundary,rootBoundary:ae.rootBoundary,padding:ae.padding,altBoundary:ae.altBoundary}),Rn=S(je.placement),jn=On(je.placement),vs=!jn,En=Pn(Rn),Zn=function St(be){return"x"===be?"y":"x"}(En),An=je.modifiersData.popperOffsets,qn=je.rects.reference,Ps=je.rects.popper,lr="function"==typeof rn?rn(Object.assign({},je.rects,{placement:je.placement})):rn,zs="number"==typeof lr?{mainAxis:lr,altAxis:lr}:Object.assign({mainAxis:0,altAxis:0},lr),wr=je.modifiersData.offset?je.modifiersData.offset[je.placement]:null,lo={x:0,y:0};if(An){if(it){var Tr,xe="y"===En?Y:w,tt="y"===En?U:se,u="y"===En?"height":"width",ne=An[En],ue=ne+fn[xe],Ie=ne-fn[tt],nt=Ai?-Ps[u]/2:0,Tt=jn===x?qn[u]:Ps[u],zt=jn===x?-Ps[u]:-qn[u],ai=je.elements.arrow,oi=Ai&&ai?bt(ai):{width:0,height:0},Pi=je.modifiersData["arrow#persistent"]?je.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},qi=Pi[xe],Yi=Pi[tt],tn=Rt(0,qn[u],oi[u]),Cn=vs?qn[u]/2-nt-tn-qi-zs.mainAxis:Tt-tn-qi-zs.mainAxis,nn=vs?-qn[u]/2+nt+tn+Yi+zs.mainAxis:zt+tn+Yi+zs.mainAxis,Jn=je.elements.arrow&&Fn(je.elements.arrow),Ds=Jn?"y"===En?Jn.clientTop||0:Jn.clientLeft||0:0,Ws=null!=(Tr=wr?.[En])?Tr:0,co=ne+nn-Ws,Uo=Rt(Ai?st(ue,ne+Cn-Ws-Ds):ue,ne,Ai?Qe(Ie,co):Ie);An[En]=Uo,lo[En]=Uo-ne}if(Vt){var _c,la=An[Zn],gu="y"===Zn?"height":"width",rg=la+fn["x"===En?Y:w],og=la-fn["x"===En?U:se],Ip=-1!==[Y,w].indexOf(Rn),Al=null!=(_c=wr?.[Zn])?_c:0,lh=Ip?rg:la-qn[gu]-Ps[gu]-Al+zs.altAxis,ag=Ip?la+qn[gu]+Ps[gu]-Al-zs.altAxis:og,lg=Ai&&Ip?function Nt(be,je,ae){var we=Rt(be,je,ae);return we>ae?ae:we}(lh,la,ag):Rt(Ai?lh:rg,la,Ai?ag:og);An[Zn]=lg,lo[Zn]=lg-la}je.modifiersData[we]=lo}},requiresIfExists:["offset"]},si={name:"arrow",enabled:!0,phase:"main",fn:function It(be){var je,ae=be.state,we=be.name,Ne=be.options,it=ae.elements.arrow,ft=ae.modifiersData.popperOffsets,Vt=S(ae.placement),Wt=Pn(Vt),ii=[w,se].indexOf(Vt)>=0?"height":"width";if(it&&ft){var Ci=function(je,ae){return $i("number"!=typeof(je="function"==typeof je?je(Object.assign({},ae.rects,{placement:ae.placement})):je)?je:ws(je,G))}(Ne.padding,ae),_i=bt(it),Ai="y"===Wt?Y:w,_n="y"===Wt?U:se,rn=ae.rects.reference[ii]+ae.rects.reference[Wt]-ft[Wt]-ae.rects.popper[ii],fn=ft[Wt]-ae.rects.reference[Wt],Rn=Fn(it),jn=Rn?"y"===Wt?Rn.clientHeight||0:Rn.clientWidth||0:0,An=jn/2-_i[ii]/2+(rn/2-fn/2),qn=Rt(Ci[Ai],An,jn-_i[ii]-Ci[_n]);ae.modifiersData[we]=((je={})[Wt]=qn,je.centerOffset=qn-An,je)}},effect:function $t(be){var je=be.state,we=be.options.element,Ne=void 0===we?"[data-popper-arrow]":we;null!=Ne&&("string"==typeof Ne&&!(Ne=je.elements.popper.querySelector(Ne))||ls(je.elements.popper,Ne)&&(je.elements.arrow=Ne))},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function rs(be,je,ae){void 0===ae&&(ae=!1);var we=Xe(je),Ne=Xe(je)&&function Hi(be){var je=be.getBoundingClientRect(),ae=kt(je.width)/be.offsetWidth||1,we=kt(je.height)/be.offsetHeight||1;return 1!==ae||1!==we}(je),it=lt(je),ft=Lt(be,Ne,ae),Vt={scrollLeft:0,scrollTop:0},Wt={x:0,y:0};return(we||!we&&!ae)&&(("body"!==wt(je)||ui(it))&&(Vt=function Si(be){return be!==Me(be)&&Xe(be)?function Ti(be){return{scrollLeft:be.scrollLeft,scrollTop:be.scrollTop}}(be):Gt(be)}(je)),Xe(je)?((Wt=Lt(je,!0)).x+=je.clientLeft,Wt.y+=je.clientTop):it&&(Wt.x=ti(it))),{x:ft.left+Vt.scrollLeft-Wt.x,y:ft.top+Vt.scrollTop-Wt.y,width:ft.width,height:ft.height}}function un(be){var je=new Map,ae=new Set,we=[];function Ne(it){ae.add(it.name),[].concat(it.requires||[],it.requiresIfExists||[]).forEach(function(Vt){if(!ae.has(Vt)){var Wt=je.get(Vt);Wt&&Ne(Wt)}}),we.push(it)}return be.forEach(function(it){je.set(it.name,it)}),be.forEach(function(it){ae.has(it.name)||Ne(it)}),we}function cn(be){var je;return function(){return je||(je=new Promise(function(ae){Promise.resolve().then(function(){je=void 0,ae(be())})})),je}}var Js={placement:"bottom",modifiers:[],strategy:"absolute"};function ns(){for(var be=arguments.length,je=new Array(be),ae=0;ae=0?-1:1,it="function"==typeof ae?ae(Object.assign({},je,{placement:be})):ae,ft=it[0],Vt=it[1];return ft=ft||0,Vt=(Vt||0)*Ne,[w,se].indexOf(we)>=0?{x:Vt,y:ft}:{x:ft,y:Vt}}(Ci,je.rects,it),ii},{}),Vt=ft[je.placement],Qt=Vt.y;null!=je.modifiersData.popperOffsets&&(je.modifiersData.popperOffsets.x+=Vt.x,je.modifiersData.popperOffsets.y+=Qt),je.modifiersData[we]=ft}},Hs=["*"],Xs=["dialog"];function Jo(be,je){if(1&be&&M.EFF(0),2&be){const ae=M.XpG(2);M.JRh(ae.title)}}function tc(be,je){}function Nl(be,je){if(1&be&&(M.j41(0,"h3",2),M.DNE(1,Jo,1,1,"ng-template",null,0,M.C5r)(3,tc,0,0,"ng-template",4),M.k0s()),2&be){const ae=M.sdS(2),we=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",we.isTitleTemplate()?we.title:ae)("ngTemplateOutletContext",we.context)}}const Lc={animation:!0,transitionTimerDelayMs:5};let Po=(()=>{class be{constructor(){this.animation=Lc.animation}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();function xa(be){return"string"==typeof be}function ea(be){return null!=be}function Ca(be){return(be||document.body).getBoundingClientRect()}function ml(be=document){const je=be?.activeElement;return je?je.shadowRoot?ml(je.shadowRoot):je:null}const _r=()=>{},{transitionTimerDelayMs:Ga}=Lc,ta=new Map,Ur=(be,je,ae,we)=>{let Ne=we.context||{};const it=ta.get(je);if(it)switch(we.runningTransition){case"continue":return Pe.w;case"stop":be.run(()=>it.transition$.complete()),Ne=Object.assign(it.context,Ne),ta.delete(je)}const ft=ae(je,we.animation,Ne)||_r;if(!we.animation||"none"===window.getComputedStyle(je).transitionProperty)return be.run(()=>ft()),(0,Z.of)(void 0).pipe(function Vl(be){return je=>new V.c(ae=>je.subscribe({next:ft=>be.run(()=>ae.next(ft)),error:ft=>be.run(()=>ae.error(ft)),complete:()=>be.run(()=>ae.complete())}))}(be));const Vt=new ie.B,Wt=new ie.B,Qt=Vt.pipe(function D(...be){return je=>(0,L.x)(je,(0,Z.of)(...be))}(!0));ta.set(je,{transition$:Vt,complete:()=>{Wt.next(),Wt.complete()},context:Ne});const ii=function jl(be){const{transitionDelay:je,transitionDuration:ae}=window.getComputedStyle(be);return 1e3*(parseFloat(je)+parseFloat(ae))}(je);return be.runOutsideAngular(()=>{const Ci=(0,re.R)(je,"transitionend").pipe((0,I.Q)(Qt),(0,E.p)(({target:Ai})=>Ai===je));te((0,ve.O)(ii+Ga).pipe((0,I.Q)(Qt)),Ci,Wt).pipe((0,I.Q)(Qt)).subscribe(()=>{ta.delete(je),be.run(()=>{ft(),Vt.next(),Vt.complete()})})}),Vt.asObservable()},na=(be,je,ae)=>{let{direction:we,maxSize:Ne,dimension:it}=ae;const{classList:ft}=be;function Vt(){ft.add("collapse"),"show"===we?ft.add("show"):ft.remove("show")}if(je)return Ne||(Ne=function Ha(be,je){if(typeof navigator>"u")return"0px";const{classList:ae}=be,we=ae.contains("show");we||ae.add("show"),be.style[je]="";const Ne=be.getBoundingClientRect()[je]+"px";return we||ae.remove("show"),Ne}(be,it),ae.maxSize=Ne,be.style[it]="show"!==we?Ne:"0px",ft.remove("collapse"),ft.remove("collapsing"),ft.remove("show"),Ca(be),ft.add("collapsing")),be.style[it]="show"===we?Ne:"0px",()=>{Vt(),ft.remove("collapsing"),be.style[it]=""};Vt()};let Ge=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.horizontal=!1}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ut=(()=>{class be{constructor(){this._config=(0,M.WQX)(Ge),this._element=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this.animation=this._config.animation,this._afterInit=!1,this._isCollapsed=!1,this.ngbCollapseChange=new M.bkB,this.horizontal=this._config.horizontal,this.shown=new M.bkB,this.hidden=new M.bkB}set collapsed(ae){this._isCollapsed!==ae&&(this._isCollapsed=ae,this._afterInit&&this._runTransitionWithEvents(ae,this.animation))}ngOnInit(){this._runTransition(this._isCollapsed,!1),this._afterInit=!0}toggle(ae=this._isCollapsed){this.collapsed=!ae,this.ngbCollapseChange.next(this._isCollapsed)}_runTransition(ae,we){return Ur(this._zone,this._element.nativeElement,na,{animation:we,runningTransition:"stop",context:{direction:ae?"hide":"show",dimension:this.horizontal?"width":"height"}})}_runTransitionWithEvents(ae,we){this._runTransition(ae,we).subscribe(()=>{ae?this.hidden.emit():this.shown.emit()})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbCollapse",""]],hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("collapse-horizontal",Ne.horizontal)},inputs:{animation:"animation",collapsed:[M.Mj6.None,"ngbCollapse","collapsed"],horizontal:"horizontal"},outputs:{ngbCollapseChange:"ngbCollapseChange",shown:"shown",hidden:"hidden"},exportAs:["ngbCollapse"],standalone:!0})}return be})(),Sn=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rr=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ro=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),sc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();var Qn=function(be){return be[be.Tab=9]="Tab",be[be.Enter=13]="Enter",be[be.Escape=27]="Escape",be[be.Space=32]="Space",be[be.PageUp=33]="PageUp",be[be.PageDown=34]="PageDown",be[be.End=35]="End",be[be.Home=36]="Home",be[be.ArrowLeft=37]="ArrowLeft",be[be.ArrowUp=38]="ArrowUp",be[be.ArrowRight=39]="ArrowRight",be[be.ArrowDown=40]="ArrowDown",be}(Qn||{});const Jh=(be,je)=>!!je&&je.some(ae=>ae.contains(be)),Re=(be,je)=>!je||null!=function _a(be,je){return!je||typeof be.closest>"u"?null:be.closest(je)}(be,je),Ue=typeof navigator<"u"&&!!navigator.userAgent&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||/Macintosh/.test(navigator.userAgent)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2||/Android/.test(navigator.userAgent));function We(be,je,ae,we,Ne,it,ft,Vt){ae&&be.runOutsideAngular((be=>Ue?()=>setTimeout(()=>be(),100):be)(()=>{const Qt=(0,re.R)(je,"keydown").pipe((0,I.Q)(Ne),(0,E.p)(_i=>_i.which===Qn.Escape),(0,b.M)(_i=>_i.preventDefault())),ii=(0,re.R)(je,"mousedown").pipe((0,T.T)(_i=>{const Ai=_i.target;return 2!==_i.button&&!Jh(Ai,ft)&&("inside"===ae?Jh(Ai,it)&&Re(Ai,Vt):"outside"===ae?!Jh(Ai,it):Re(Ai,Vt)||!Jh(Ai,it))}),(0,I.Q)(Ne)),Ci=(0,re.R)(je,"mouseup").pipe(a(ii),(0,E.p)(([_i,Ai])=>Ai),(0,g.c)(0),(0,I.Q)(Ne));te([Qt.pipe((0,T.T)(_i=>0)),Ci.pipe((0,T.T)(_i=>1))]).subscribe(_i=>be.run(()=>we(_i)))}))}const rt=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(", ");function mt(be){const je=Array.from(be.querySelectorAll(rt)).filter(ae=>-1!==ae.tabIndex);return[je[0],je[je.length-1]]}let ei=(()=>{class be{constructor(){this._element=(0,M.WQX)(d.qQ).documentElement}isRTL(){return"rtl"===(this._element.getAttribute("dir")||"").toLowerCase()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();const Xt=/\s+/,Li=/ +/gi,pn={top:["top"],bottom:["bottom"],start:["left","right"],left:["left"],end:["right","left"],right:["right"],"top-start":["top-start","top-end"],"top-left":["top-start"],"top-end":["top-end","top-start"],"top-right":["top-end"],"bottom-start":["bottom-start","bottom-end"],"bottom-left":["bottom-start"],"bottom-end":["bottom-end","bottom-start"],"bottom-right":["bottom-end"],"start-top":["left-start","right-start"],"left-top":["left-start"],"start-bottom":["left-end","right-end"],"left-bottom":["left-end"],"end-top":["right-start","left-start"],"right-top":["right-start"],"end-bottom":["right-end","left-end"],"right-bottom":["right-end"]},qs=/^left/,Hl=/^right/,Cl=/^start/,wl=/^end/;function Wa({placement:be,baseClass:je},ae){let we=Array.isArray(be)?be:be.split(Xt),it=we.findIndex(Qt=>"auto"===Qt);it>=0&&["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end","start-top","start-bottom","end-top","end-bottom"].forEach(function(Qt){null==we.find(ii=>-1!==ii.search("^"+Qt))&&we.splice(it++,1,Qt)});const ft=we.map(Qt=>function Dn(be,je){const[ae,we]=pn[be];return je&&we||ae}(Qt,ae.isRTL()));return{placement:ft.shift(),modifiers:[{name:"bootstrapClasses",enabled:!!je,phase:"write",fn({state:Qt}){const ii=new RegExp(je+"(-[a-z]+)*","gi"),Ci=Qt.elements.popper,_i=Qt.placement;let Ai=Ci.className;Ai=Ai.replace(ii,""),Ai+=` ${function cc(be,je){let[ae,we]=je.split("-");const Ne=ae.replace(qs,"start").replace(Hl,"end");let it=[Ne];if(we){let ft=we;("left"===ae||"right"===ae)&&(ft=ft.replace(Cl,"top").replace(wl,"bottom")),it.push(`${Ne}-${ft}`)}return be&&(it=it.map(ft=>`${be}-${ft}`)),it.join(" ")}(je,_i)}`,Ai=Ai.trim().replace(Li," "),Ci.className=Ai}},ir,$e,si,{enabled:!0,name:"flip",options:{fallbackPlacements:ft}},{enabled:!0,name:"preventOverflow",phase:"main",fn:function(){}}]}}function tp(be){return be}function ed(){const be=(0,M.WQX)(ei);let je=null;return{createPopper(ae){if(!je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je=eo(ae.hostElement,ae.targetElement,Ne)}},update(){je&&je.update()},setOptions(ae){if(je){let Ne=(ae.updatePopperOptions||tp)(Wa(ae,be));je.setOptions(Ne)}},destroy(){je&&(je.destroy(),je=null)}}}function Bo(be){return je=>(je.modifiers.push(vr,{name:"offset",options:{offset:()=>be}}),je)}new Date(1882,10,12),new Date(2174,10,25);let Hd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ud=(()=>{class be{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=ae=>ae,this.container=null}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),$c=(()=>{class be{constructor(){this._disabled=!1,this.nativeElement=(0,M.WQX)(M.aKT).nativeElement,this.tabindex=0}set disabled(ae){this._disabled=""===ae||!0===ae}get disabled(){return this._disabled}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.Mr5("tabIndex",Ne.disabled?-1:Ne.tabindex),M.AVh("disabled",Ne.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"},standalone:!0})}return be})(),Vo=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(we,Ne,it){if(1&we&&M.wni(it,$c,4),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne.menuItems=ft)}},hostVars:4,hostBindings:function(we,Ne){1&we&&M.bIt("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Enter",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Space",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&M.AVh("dropdown-menu",!0)("show",Ne.dropdown.isOpen())},standalone:!0})}return be})(),Dh=(()=>{class be{constructor(){this.dropdown=(0,M.WQX)(Ul),this.nativeElement=(0,M.WQX)(M.aKT).nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0})}return be})(),Yc=(()=>{class be extends Dh{static#e=this.\u0275fac=(()=>{let ae;return function(Ne){return(ae||(ae=M.xGo(be)))(Ne||be)}})();static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(we,Ne){1&we&&M.bIt("click",function(){return Ne.dropdown.toggle()})("keydown.ArrowUp",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.ArrowDown",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Home",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.End",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)})("keydown.Shift.Tab",function(ft){return Ne.dropdown.onKeyDown(ft)}),2&we&&(M.BMQ("aria-expanded",Ne.dropdown.isOpen()),M.AVh("show",Ne.dropdown.isOpen()))},standalone:!0,features:[M.Jv_([{provide:Dh,useExisting:(0,M.Rfq)(()=>be)}]),M.Vt3]})}return be})(),Ul=(()=>{class be{constructor(){this._changeDetector=(0,M.WQX)(M.gRc),this._config=(0,M.WQX)(Ud),this._document=(0,M.WQX)(d.qQ),this._ngZone=(0,M.WQX)(M.SKi),this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._destroyCloseHandlers$=new ie.B,this._bodyContainer=null,this._positioning=ed(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M.bkB}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){this._ngZone.onStable.pipe((0,_.s)(1)).subscribe(()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()})}ngOnChanges(ae){if(ae.container&&this._open&&this._applyContainer(this.container),ae.placement&&!ae.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container}),this._applyPlacementClasses()),ae.dropdownClass){const{currentValue:we,previousValue:Ne}=ae.dropdownClass;this._applyCustomDropdownClass(we,Ne)}ae.autoClose&&this._open&&(this.autoClose=ae.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),"dynamic"===this.display&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,appendToBody:"body"===this.container,updatePopperOptions:ae=>this.popperOptions(Bo([0,2])(ae))}),this._applyPlacementClasses(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positionMenu())})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),We(this._ngZone,this._document,this.autoClose,ae=>{this.close(),0===ae&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(ae){const we=ae.which,Ne=this._getMenuElements();let it=-1,ft=null;const Vt=this._isEventFromToggle(ae);if(!Vt&&Ne.length&&Ne.forEach((Wt,Qt)=>{Wt.contains(ae.target)&&(ft=Wt),Wt===ml(this._document)&&(it=Qt)}),we!==Qn.Space&&we!==Qn.Enter){if(we!==Qn.Tab){if(Vt||ft){if(this.open(),Ne.length){switch(we){case Qn.ArrowDown:it=Math.min(it+1,Ne.length-1);break;case Qn.ArrowUp:if(this._isDropup()&&-1===it){it=Ne.length-1;break}it=Math.max(it-1,0);break;case Qn.Home:it=0;break;case Qn.End:it=Ne.length-1}Ne[it].focus()}ae.preventDefault()}}else if(ae.target&&this.isOpen()&&this.autoClose){if(this._anchor.nativeElement===ae.target)return void("body"!==this.container||ae.shiftKey?ae.shiftKey&&this.close():(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")));if("body"===this.container){const Wt=this._menu.nativeElement.querySelectorAll(rt);ae.shiftKey&&ae.target===Wt[0]?(this._anchor.nativeElement.focus(),ae.preventDefault()):!ae.shiftKey&&ae.target===Wt[Wt.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else(0,re.R)(ae.target,"focusout").pipe((0,_.s)(1)).subscribe(({relatedTarget:Wt})=>{this._nativeElement.contains(Wt)||this.close()})}}else ft&&(!0===this.autoClose||"inside"===this.autoClose)&&(0,re.R)(ft,"click").pipe((0,_.s)(1)).subscribe(()=>this.close())}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(ae){return this._anchor.nativeElement.contains(ae.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:ae})=>!ae).map(({nativeElement:ae})=>ae):[]}_positionMenu(){const ae=this._menu;this.isOpen()&&ae&&("dynamic"===this.display?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(ae){return Array.isArray(ae)?ae[0]:ae.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(ae=null){if(this._resetContainer(),"body"===ae){const we=this._menu.nativeElement,Ne=this._bodyContainer=this._bodyContainer||this._document.createElement("div");Ne.style.position="absolute",we.style.position="static",Ne.style.zIndex="1055",Ne.appendChild(we),this._document.body.appendChild(Ne)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(ae,we){const Ne="body"===this.container?this._bodyContainer:this._nativeElement;Ne&&(we&&Ne.classList.remove(we),ae&&Ne.classList.add(ae))}_applyPlacementClasses(ae){if(this._menu){ae||(ae=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),"static"===this.display?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");const we=-1!==ae.search("^top")?"dropup":"dropdown";this._nativeElement.classList.add(we),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(we))}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbDropdown",""]],contentQueries:function(we,Ne,it){if(1&we&&(M.wni(it,Vo,5),M.wni(it,Dh,5)),2&we){let ft;M.mGM(ft=M.lsd())&&(Ne._menu=ft.first),M.mGM(ft=M.lsd())&&(Ne._anchor=ft.first)}},hostVars:2,hostBindings:function(we,Ne){2&we&&M.AVh("show",Ne.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[M.Mj6.None,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],standalone:!0,features:[M.OA$]})}return be})(),Eh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Wd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.backdrop=!0,this.fullscreen=!1,this.keyboard=!0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})();class Ml{constructor(je,ae,we){this.nodes=je,this.viewRef=ae,this.componentRef=we}}class _p{constructor(je){this._componentType=je,this._windowRef=null,this._contentRef=null,this._document=(0,M.WQX)(d.qQ),this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._viewContainerRef=(0,M.WQX)(M.c1b),this._ngZone=(0,M.WQX)(M.SKi)}open(je,ae,we=!1){this._windowRef||(this._contentRef=this._getContentRef(je,ae),this._windowRef=this._viewContainerRef.createComponent(this._componentType,{injector:this._injector,projectableNodes:this._contentRef.nodes}));const{nativeElement:Ne}=this._windowRef.location,it=this._ngZone.onStable.pipe((0,_.s)(1),(0,y.Z)(()=>Ur(this._ngZone,Ne,({classList:ft})=>ft.add("show"),{animation:we,runningTransition:"continue"})));return{windowRef:this._windowRef,transition$:it}}close(je=!1){return this._windowRef?Ur(this._ngZone,this._windowRef.location.nativeElement,({classList:ae})=>ae.remove("show"),{animation:je,runningTransition:"stop"}).pipe((0,b.M)(()=>{this._windowRef&&(this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)),this._windowRef=null),this._contentRef?.viewRef&&(this._applicationRef.detachView(this._contentRef.viewRef),this._contentRef.viewRef.destroy(),this._contentRef=null)})):(0,Z.of)(void 0)}_getContentRef(je,ae){if(je){if(je instanceof M.C4Q){const we=je.createEmbeddedView(ae);return this._applicationRef.attachView(we),new Ml([we.rootNodes],we)}return new Ml([[this._document.createTextNode(`${je}`)]])}return new Ml([])}}let pc=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ)}hide(){const ae=Math.abs(window.innerWidth-this._document.documentElement.clientWidth),we=this._document.body,Ne=we.style,{overflow:it,paddingRight:ft}=Ne;if(ae>0){const Vt=parseFloat(window.getComputedStyle(we).paddingRight);Ne.paddingRight=`${Vt+ae}px`}return Ne.overflow="hidden",()=>{ae>0&&(Ne.paddingRight=ft),Ne.overflow=it}}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),Kc=(()=>{class be{constructor(){this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._zone=(0,M.WQX)(M.SKi)}ngOnInit(){this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{Ur(this._zone,this._nativeElement,(ae,we)=>{we&&Ca(ae),ae.classList.add("show")},{animation:this.animation,runningTransition:"continue"})})}hide(){return Ur(this._zone,this._nativeElement,({classList:ae})=>ae.remove("show"),{animation:this.animation,runningTransition:"stop"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-backdrop"]],hostAttrs:[2,"z-index","1055"],hostVars:6,hostBindings:function(we,Ne){2&we&&(M.HbH("modal-backdrop"+(Ne.backdropClass?" "+Ne.backdropClass:"")),M.AVh("show",!Ne.animation)("fade",Ne.animation))},inputs:{animation:"animation",backdropClass:"backdropClass"},standalone:!0,features:[M.aNF],decls:0,vars:0,template:function(we,Ne){},encapsulation:2})}return be})();class Ah{update(je){}close(je){}dismiss(je){}}const ad=["animation","ariaLabelledBy","ariaDescribedBy","backdrop","centered","fullscreen","keyboard","scrollable","size","windowClass","modalDialogClass"],Zc=["animation","backdropClass"];class $d{_applyWindowOptions(je,ae){ad.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}_applyBackdropOptions(je,ae){Zc.forEach(we=>{ea(ae[we])&&(je[we]=ae[we])})}update(je){this._applyWindowOptions(this._windowCmptRef.instance,je),this._backdropCmptRef&&this._backdropCmptRef.instance&&this._applyBackdropOptions(this._backdropCmptRef.instance,je)}get componentInstance(){if(this._contentRef&&this._contentRef.componentRef)return this._contentRef.componentRef.instance}get closed(){return this._closed.asObservable().pipe((0,I.Q)(this._hidden))}get dismissed(){return this._dismissed.asObservable().pipe((0,I.Q)(this._hidden))}get hidden(){return this._hidden.asObservable()}get shown(){return this._windowCmptRef.instance.shown.asObservable()}constructor(je,ae,we,Ne){this._windowCmptRef=je,this._contentRef=ae,this._backdropCmptRef=we,this._beforeDismiss=Ne,this._closed=new ie.B,this._dismissed=new ie.B,this._hidden=new ie.B,je.instance.dismissEvent.subscribe(it=>{this.dismiss(it)}),this.result=new Promise((it,ft)=>{this._resolve=it,this._reject=ft}),this.result.then(null,()=>{})}close(je){this._windowCmptRef&&(this._closed.next(je),this._resolve(je),this._removeModalElements())}_dismiss(je){this._dismissed.next(je),this._reject(je),this._removeModalElements()}dismiss(je){if(this._windowCmptRef)if(this._beforeDismiss){const ae=this._beforeDismiss();!function gl(be){return be&&be.then}(ae)?!1!==ae&&this._dismiss(je):ae.then(we=>{!1!==we&&this._dismiss(je)},()=>{})}else this._dismiss(je)}_removeModalElements(){const je=this._windowCmptRef.instance.hide(),ae=this._backdropCmptRef?this._backdropCmptRef.instance.hide():(0,Z.of)(void 0);je.subscribe(()=>{const{nativeElement:we}=this._windowCmptRef.location;we.parentNode.removeChild(we),this._windowCmptRef.destroy(),this._contentRef&&this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._windowCmptRef=null,this._contentRef=null}),ae.subscribe(()=>{if(this._backdropCmptRef){const{nativeElement:we}=this._backdropCmptRef.location;we.parentNode.removeChild(we),this._backdropCmptRef.destroy(),this._backdropCmptRef=null}}),F(je,ae).subscribe(()=>{this._hidden.next(),this._hidden.complete()})}}var Ih=function(be){return be[be.BACKDROP_CLICK=0]="BACKDROP_CLICK",be[be.ESC=1]="ESC",be}(Ih||{});let Zf=(()=>{class be{constructor(){this._document=(0,M.WQX)(d.qQ),this._elRef=(0,M.WQX)(M.aKT),this._zone=(0,M.WQX)(M.SKi),this._closed$=new ie.B,this._elWithFocus=null,this.backdrop=!0,this.keyboard=!0,this.dismissEvent=new M.bkB,this.shown=new ie.B,this.hidden=new ie.B}get fullscreenClass(){return!0===this.fullscreen?" modal-fullscreen":xa(this.fullscreen)?` modal-fullscreen-${this.fullscreen}-down`:""}dismiss(ae){this.dismissEvent.emit(ae)}ngOnInit(){this._elWithFocus=this._document.activeElement,this._zone.onStable.asObservable().pipe((0,_.s)(1)).subscribe(()=>{this._show()})}ngOnDestroy(){this._disableEventHandling()}hide(){const{nativeElement:ae}=this._elRef,we={animation:this.animation,runningTransition:"stop"},ft=F(Ur(this._zone,ae,()=>ae.classList.remove("show"),we),Ur(this._zone,this._dialogEl.nativeElement,()=>{},we));return ft.subscribe(()=>{this.hidden.next(),this.hidden.complete()}),this._disableEventHandling(),this._restoreFocus(),ft}_show(){const ae={animation:this.animation,runningTransition:"continue"};F(Ur(this._zone,this._elRef.nativeElement,(it,ft)=>{ft&&Ca(it),it.classList.add("show")},ae),Ur(this._zone,this._dialogEl.nativeElement,()=>{},ae)).subscribe(()=>{this.shown.next(),this.shown.complete()}),this._enableEventHandling(),this._setFocus()}_enableEventHandling(){const{nativeElement:ae}=this._elRef;this._zone.runOutsideAngular(()=>{(0,re.R)(ae,"keydown").pipe((0,I.Q)(this._closed$),(0,E.p)(Ne=>Ne.which===Qn.Escape)).subscribe(Ne=>{this.keyboard?requestAnimationFrame(()=>{Ne.defaultPrevented||this._zone.run(()=>this.dismiss(Ih.ESC))}):"static"===this.backdrop&&this._bumpBackdrop()});let we=!1;(0,re.R)(this._dialogEl.nativeElement,"mousedown").pipe((0,I.Q)(this._closed$),(0,b.M)(()=>we=!1),(0,o.n)(()=>(0,re.R)(ae,"mouseup").pipe((0,I.Q)(this._closed$),(0,_.s)(1))),(0,E.p)(({target:Ne})=>ae===Ne)).subscribe(()=>{we=!0}),(0,re.R)(ae,"click").pipe((0,I.Q)(this._closed$)).subscribe(({target:Ne})=>{ae===Ne&&("static"===this.backdrop?this._bumpBackdrop():!0===this.backdrop&&!we&&this._zone.run(()=>this.dismiss(Ih.BACKDROP_CLICK))),we=!1})})}_disableEventHandling(){this._closed$.next()}_setFocus(){const{nativeElement:ae}=this._elRef;if(!ae.contains(document.activeElement)){const we=ae.querySelector("[ngbAutofocus]"),Ne=mt(ae)[0];(we||Ne||ae).focus()}}_restoreFocus(){const ae=this._document.body,we=this._elWithFocus;let Ne;Ne=we&&we.focus&&ae.contains(we)?we:ae,this._zone.runOutsideAngular(()=>{setTimeout(()=>Ne.focus()),this._elWithFocus=null})}_bumpBackdrop(){"static"===this.backdrop&&Ur(this._zone,this._elRef.nativeElement,({classList:ae})=>(ae.add("modal-static"),()=>ae.remove("modal-static")),{animation:this.animation,runningTransition:"continue"})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-modal-window"]],viewQuery:function(we,Ne){if(1&we&&M.GBs(Xs,7),2&we){let it;M.mGM(it=M.lsd())&&(Ne._dialogEl=it.first)}},hostAttrs:["role","dialog","tabindex","-1"],hostVars:7,hostBindings:function(we,Ne){2&we&&(M.BMQ("aria-modal",!0)("aria-labelledby",Ne.ariaLabelledBy)("aria-describedby",Ne.ariaDescribedBy),M.HbH("modal d-block"+(Ne.windowClass?" "+Ne.windowClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",ariaLabelledBy:"ariaLabelledBy",ariaDescribedBy:"ariaDescribedBy",backdrop:"backdrop",centered:"centered",fullscreen:"fullscreen",keyboard:"keyboard",scrollable:"scrollable",size:"size",windowClass:"windowClass",modalDialogClass:"modalDialogClass"},outputs:{dismissEvent:"dismiss"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:2,consts:[["dialog",""],["role","document"],[1,"modal-content"]],template:function(we,Ne){1&we&&(M.NAR(),M.j41(0,"div",1,0)(2,"div",2),M.SdG(3),M.k0s()()),2&we&&M.HbH("modal-dialog"+(Ne.size?" modal-"+Ne.size:"")+(Ne.centered?" modal-dialog-centered":"")+Ne.fullscreenClass+(Ne.scrollable?" modal-dialog-scrollable":"")+(Ne.modalDialogClass?" "+Ne.modalDialogClass:""))},styles:["ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\n"],encapsulation:2})}return be})(),qf=(()=>{class be{constructor(){this._applicationRef=(0,M.WQX)(M.o8S),this._injector=(0,M.WQX)(M.zZn),this._environmentInjector=(0,M.WQX)(M.uvJ),this._document=(0,M.WQX)(d.qQ),this._scrollBar=(0,M.WQX)(pc),this._activeWindowCmptHasChanged=new ie.B,this._ariaHiddenValues=new Map,this._scrollBarRestoreFn=null,this._modalRefs=[],this._windowCmpts=[],this._activeInstances=new M.bkB;const ae=(0,M.WQX)(M.SKi);this._activeWindowCmptHasChanged.subscribe(()=>{if(this._windowCmpts.length){const we=this._windowCmpts[this._windowCmpts.length-1];((be,je,ae,we=!1)=>{be.runOutsideAngular(()=>{const Ne=(0,re.R)(je,"focusin").pipe((0,I.Q)(ae),(0,T.T)(it=>it.target));(0,re.R)(je,"keydown").pipe((0,I.Q)(ae),(0,E.p)(it=>it.which===Qn.Tab),a(Ne)).subscribe(([it,ft])=>{const[Vt,Wt]=mt(je);(ft===Vt||ft===je)&&it.shiftKey&&(Wt.focus(),it.preventDefault()),ft===Wt&&!it.shiftKey&&(Vt.focus(),it.preventDefault())}),we&&(0,re.R)(je,"click").pipe((0,I.Q)(ae),a(Ne),(0,T.T)(it=>it[1])).subscribe(it=>it.focus())})})(ae,we.location.nativeElement,this._activeWindowCmptHasChanged),this._revertAriaHidden(),this._setAriaHidden(we.location.nativeElement)}})}_restoreScrollBar(){const ae=this._scrollBarRestoreFn;ae&&(this._scrollBarRestoreFn=null,ae())}_hideScrollBar(){this._scrollBarRestoreFn||(this._scrollBarRestoreFn=this._scrollBar.hide())}open(ae,we,Ne){const it=Ne.container instanceof HTMLElement?Ne.container:ea(Ne.container)?this._document.querySelector(Ne.container):this._document.body;if(!it)throw new Error(`The specified modal container "${Ne.container||"body"}" was not found in the DOM.`);this._hideScrollBar();const ft=new Ah,Vt=(ae=Ne.injector||ae).get(M.uvJ,null)||this._environmentInjector,Wt=this._getContentRef(ae,Vt,we,ft,Ne);let Qt=!1!==Ne.backdrop?this._attachBackdrop(it):void 0,ii=this._attachWindowComponent(it,Wt.nodes),Ci=new $d(ii,Wt,Qt,Ne.beforeDismiss);return this._registerModalRef(Ci),this._registerWindowCmpt(ii),Ci.hidden.pipe((0,_.s)(1)).subscribe(()=>Promise.resolve(!0).then(()=>{this._modalRefs.length||(this._document.body.classList.remove("modal-open"),this._restoreScrollBar(),this._revertAriaHidden())})),ft.close=_i=>{Ci.close(_i)},ft.dismiss=_i=>{Ci.dismiss(_i)},ft.update=_i=>{Ci.update(_i)},Ci.update(Ne),1===this._modalRefs.length&&this._document.body.classList.add("modal-open"),Qt&&Qt.instance&&Qt.changeDetectorRef.detectChanges(),ii.changeDetectorRef.detectChanges(),Ci}get activeInstances(){return this._activeInstances}dismissAll(ae){this._modalRefs.forEach(we=>we.dismiss(ae))}hasOpenModals(){return this._modalRefs.length>0}_attachBackdrop(ae){let we=(0,M.a0P)(Kc,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector});return this._applicationRef.attachView(we.hostView),ae.appendChild(we.location.nativeElement),we}_attachWindowComponent(ae,we){let Ne=(0,M.a0P)(Zf,{environmentInjector:this._applicationRef.injector,elementInjector:this._injector,projectableNodes:we});return this._applicationRef.attachView(Ne.hostView),ae.appendChild(Ne.location.nativeElement),Ne}_getContentRef(ae,we,Ne,it,ft){return Ne?Ne instanceof M.C4Q?this._createFromTemplateRef(Ne,it):xa(Ne)?this._createFromString(Ne):this._createFromComponent(ae,we,Ne,it,ft):new Ml([])}_createFromTemplateRef(ae,we){const it=ae.createEmbeddedView({$implicit:we,close(ft){we.close(ft)},dismiss(ft){we.dismiss(ft)}});return this._applicationRef.attachView(it),new Ml([it.rootNodes],it)}_createFromString(ae){const we=this._document.createTextNode(`${ae}`);return new Ml([[we]])}_createFromComponent(ae,we,Ne,it,ft){const Vt=M.zZn.create({providers:[{provide:Ah,useValue:it}],parent:ae}),Wt=(0,M.a0P)(Ne,{environmentInjector:we,elementInjector:Vt}),Qt=Wt.location.nativeElement;return ft.scrollable&&Qt.classList.add("component-host-scrollable"),this._applicationRef.attachView(Wt.hostView),new Ml([[Qt]],Wt.hostView,Wt)}_setAriaHidden(ae){const we=ae.parentElement;we&&ae!==this._document.body&&(Array.from(we.children).forEach(Ne=>{Ne!==ae&&"SCRIPT"!==Ne.nodeName&&(this._ariaHiddenValues.set(Ne,Ne.getAttribute("aria-hidden")),Ne.setAttribute("aria-hidden","true"))}),this._setAriaHidden(we))}_revertAriaHidden(){this._ariaHiddenValues.forEach((ae,we)=>{ae?we.setAttribute("aria-hidden",ae):we.removeAttribute("aria-hidden")}),this._ariaHiddenValues.clear()}_registerModalRef(ae){const we=()=>{const Ne=this._modalRefs.indexOf(ae);Ne>-1&&(this._modalRefs.splice(Ne,1),this._activeInstances.emit(this._modalRefs))};this._modalRefs.push(ae),this._activeInstances.emit(this._modalRefs),ae.result.then(we,we)}_registerWindowCmpt(ae){this._windowCmpts.push(ae),this._activeWindowCmptHasChanged.next(),ae.onDestroy(()=>{const we=this._windowCmpts.indexOf(ae);we>-1&&(this._windowCmpts.splice(we,1),this._activeWindowCmptHasChanged.next())})}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),qc=(()=>{class be{constructor(){this._injector=(0,M.WQX)(M.zZn),this._modalStack=(0,M.WQX)(qf),this._config=(0,M.WQX)(Wd)}open(ae,we={}){const Ne={...this._config,animation:this._config.animation,...we};return this._modalStack.open(this._injector,ae,Ne)}get activeInstances(){return this._modalStack.activeInstances}dismissAll(ae){this._modalStack.dismissAll(ae)}hasOpenModals(){return this._modalStack.hasOpenModals()}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),br=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({providers:[qc]})}return be})(),qd=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Xl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const vc={hover:["mouseenter","mouseleave"],focus:["focusin","focusout"]};let Jd=(()=>{class be{constructor(){this._ngbConfig=(0,M.WQX)(Po),this.autoClose=!0,this.placement="auto",this.popperOptions=ae=>ae,this.triggers="click",this.disablePopover=!1,this.openDelay=0,this.closeDelay=0}get animation(){return this._animation??this._ngbConfig.animation}set animation(ae){this._animation=ae}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275prov=M.jDH({token:be,factory:be.\u0275fac,providedIn:"root"})}return be})(),ld=0,eu=(()=>{class be{isTitleTemplate(){return this.title instanceof M.C4Q}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275cmp=M.VBU({type:be,selectors:[["ngb-popover-window"]],hostAttrs:["role","tooltip",2,"position","absolute"],hostVars:5,hostBindings:function(we,Ne){2&we&&(M.Mr5("id",Ne.id),M.HbH("popover"+(Ne.popoverClass?" "+Ne.popoverClass:"")),M.AVh("fade",Ne.animation))},inputs:{animation:"animation",title:"title",id:"id",popoverClass:"popoverClass",context:"context"},standalone:!0,features:[M.aNF],ngContentSelectors:Hs,decls:4,vars:1,consts:[["simpleTitle",""],["data-popper-arrow","",1,"popover-arrow"],[1,"popover-header"],[1,"popover-body"],[3,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(we,Ne){1&we&&(M.NAR(),M.nrm(0,"div",1),M.DNE(1,Nl,4,2,"h3",2),M.j41(2,"div",3),M.SdG(3),M.k0s()),2&we&&(M.R7$(),M.vxM(1,Ne.title?1:-1))},dependencies:[d.T3],encapsulation:2,changeDetection:0})}return be})(),cd=(()=>{class be{constructor(){this._config=(0,M.WQX)(Jd),this.animation=this._config.animation,this.autoClose=this._config.autoClose,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.triggers=this._config.triggers,this.container=this._config.container,this.disablePopover=this._config.disablePopover,this.popoverClass=this._config.popoverClass,this.openDelay=this._config.openDelay,this.closeDelay=this._config.closeDelay,this.shown=new M.bkB,this.hidden=new M.bkB,this._nativeElement=(0,M.WQX)(M.aKT).nativeElement,this._ngZone=(0,M.WQX)(M.SKi),this._document=(0,M.WQX)(d.qQ),this._changeDetector=(0,M.WQX)(M.gRc),this._ngbPopoverWindowId="ngb-popover-"+ld++,this._popupService=new _p(eu),this._windowRef=null,this._positioning=ed()}open(ae){if(!this._windowRef&&!this._isDisabled()){const{windowRef:we,transition$:Ne}=this._popupService.open(this.ngbPopover,ae??this.popoverContext,this.animation);this._windowRef=we,this._windowRef.setInput("animation",this.animation),this._windowRef.setInput("title",this.popoverTitle),this._windowRef.setInput("context",ae??this.popoverContext),this._windowRef.setInput("popoverClass",this.popoverClass),this._windowRef.setInput("id",this._ngbPopoverWindowId),this._getPositionTargetElement().setAttribute("aria-describedby",this._ngbPopoverWindowId),"body"===this.container&&this._document.body.appendChild(this._windowRef.location.nativeElement),this._windowRef.changeDetectorRef.detectChanges(),this._windowRef.changeDetectorRef.markForCheck(),this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._getPositionTargetElement(),targetElement:this._windowRef.location.nativeElement,placement:this.placement,appendToBody:"body"===this.container,baseClass:"bs-popover",updatePopperOptions:it=>this.popperOptions(Bo([0,8])(it))}),Promise.resolve().then(()=>{this._positioning.update(),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>this._positioning.update())})}),We(this._ngZone,this._document,this.autoClose,()=>this.close(),this.hidden,[this._windowRef.location.nativeElement]),Ne.subscribe(()=>this.shown.emit())}}close(ae=this.animation){this._windowRef&&(this._getPositionTargetElement().removeAttribute("aria-describedby"),this._popupService.close(ae).subscribe(()=>{this._windowRef=null,this._positioning.destroy(),this._zoneSubscription?.unsubscribe(),this.hidden.emit(),this._changeDetector.markForCheck()}))}toggle(){this._windowRef?this.close():this.open()}isOpen(){return null!=this._windowRef}ngOnInit(){this._unregisterListenersFn=function wp(be,je,ae,we,Ne,it=0,ft=0){const Vt=function ar(be){const je=(be||"").trim();if(0===je.length)return[];const ae=je.split(/\s+/).map(Ne=>Ne.split(":")).map(Ne=>vc[Ne[0]]||Ne),we=ae.filter(Ne=>Ne.includes("manual"));if(we.length>1)throw"Triggers parse error: only one manual trigger is allowed";if(1===we.length&&ae.length>1)throw"Triggers parse error: manual trigger can't be mixed with other triggers";return we.length?[]:ae}(je);if(0===Vt.length)return()=>{};const Wt=new Set,Qt=[];let ii;function Ci(Ai,_n){be.addEventListener(Ai,_n),Qt.push(()=>be.removeEventListener(Ai,_n))}function _i(Ai,_n){clearTimeout(ii),_n>0?ii=setTimeout(Ai,_n):Ai()}for(const[Ai,_n]of Vt)_n?(Ci(Ai,()=>{Wt.add(Ai),_i(()=>Wt.size>0&&we(),it)}),Ci(_n,()=>{Wt.delete(Ai),_i(()=>0===Wt.size&&Ne(),ft)})):Ci(Ai,()=>ae()?_i(Ne,ft):_i(we,it));return()=>Qt.forEach(Ai=>Ai())}(this._nativeElement,this.triggers,this.isOpen.bind(this),this.open.bind(this),this.close.bind(this),+this.openDelay,+this.closeDelay)}ngOnChanges({ngbPopover:ae,popoverTitle:we,disablePopover:Ne,popoverClass:it}){it&&this.isOpen()&&this._windowRef.setInput("popoverClass",it.currentValue),(ae||we||Ne)&&this._isDisabled()&&this.close()}ngOnDestroy(){this.close(!1),this._unregisterListenersFn?.()}_isDisabled(){return!!this.disablePopover||!this.ngbPopover&&!this.popoverTitle}_getPositionTargetElement(){return(xa(this.positionTarget)?this._document.querySelector(this.positionTarget):this.positionTarget)||this._nativeElement}static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275dir=M.FsC({type:be,selectors:[["","ngbPopover",""]],inputs:{animation:"animation",autoClose:"autoClose",ngbPopover:"ngbPopover",popoverTitle:"popoverTitle",placement:"placement",popperOptions:"popperOptions",triggers:"triggers",positionTarget:"positionTarget",container:"container",disablePopover:"disablePopover",popoverClass:"popoverClass",popoverContext:"popoverContext",openDelay:"openDelay",closeDelay:"closeDelay"},outputs:{shown:"shown",hidden:"hidden"},exportAs:["ngbPopover"],standalone:!0,features:[M.OA$]})}return be})(),th=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ih=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Rh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Ea=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),ig=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),xc=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),aa=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();new M.nKC("live announcer delay",{providedIn:"root",factory:()=>100});let Bh=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})(),Kl=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({})}return be})();const Vh=[Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh];let ah=(()=>{class be{static#e=this.\u0275fac=function(we){return new(we||be)};static#t=this.\u0275mod=M.$C({type:be});static#i=this.\u0275inj=M.G2t({imports:[Vh,Sn,Rr,Ro,sc,Hd,Eh,br,qd,Kl,Xl,th,ih,Rh,Ea,ig,xc,aa,Bh]})}return be})()},97013:(ri,Ft,He)=>{"use strict";He.d(Ft,{Uq:()=>Jt,vr:()=>ir,MQ:()=>Nt});var M=He(54438),e=He(89417),V=He(56977),Pe=He(43236),Z=He(39974),ie=He(58750),re=He(54360),le=He(41584);var pe=He(99172),J=He(88141),te=He(70152),$=He(5964),A=He(96354),B=He(30536),F=He(96780);let D,L=1;const I={};function E(bt){return bt in I&&(delete I[bt],!0)}const _={setImmediate(bt){const xt=L++;return I[xt]=!0,D||(D=Promise.resolve()),D.then(()=>E(xt)&&bt()),xt},clearImmediate(bt){E(bt)}},{setImmediate:T,clearImmediate:z}=_,O={setImmediate(...bt){const{delegate:xt}=O;return(xt?.setImmediate||T)(...bt)},clearImmediate(bt){const{delegate:xt}=O;return(xt?.clearImmediate||z)(bt)},delegate:void 0};var a=He(39687);const y=new class g extends a.q{flush(xt){this._active=!0;const $e=this._scheduled;this._scheduled=void 0;const{actions:yt}=this;let It;xt=xt||yt.shift();do{if(It=xt.execute(xt.state,xt.delay))break}while((xt=yt[0])&&xt.id===$e&&yt.shift());if(this._active=!1,It){for(;(xt=yt[0])&&xt.id===$e&&yt.shift();)xt.unsubscribe();throw It}}}(class f extends F.R{constructor(xt,$e){super(xt,$e),this.scheduler=xt,this.work=$e}requestAsyncId(xt,$e,yt=0){return null!==yt&&yt>0?super.requestAsyncId(xt,$e,yt):(xt.actions.push(this),xt._scheduled||(xt._scheduled=O.setImmediate(xt.flush.bind(xt,void 0))))}recycleAsyncId(xt,$e,yt=0){var It;if(null!=yt?yt>0:this.delay>0)return super.recycleAsyncId(xt,$e,yt);const{actions:$t}=xt;null!=$e&&(null===(It=$t[$t.length-1])||void 0===It?void 0:It.id)!==$e&&(O.clearImmediate($e),xt._scheduled===$e&&(xt._scheduled=void 0))}});var n=He(21413),r=He(33726),l=He(57786),d=He(60177);const C=["content"],k=["scroll"],p=["padding"],S=["*"],j=bt=>({searchTerm:bt});function H(bt,xt){if(1&bt&&(M.j41(0,"div",6),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.headerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}function Y(bt,xt){if(1&bt&&(M.j41(0,"div",8),M.eu8(1,7),M.k0s()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngTemplateOutlet",$e.footerTemplate)("ngTemplateOutletContext",M.eq3(2,j,$e.filterValue))}}const U=["searchInput"],se=["clearButton"],w=(bt,xt,$e)=>({item:bt,clear:xt,label:$e}),X=(bt,xt)=>({items:bt,clear:xt}),G=(bt,xt,$e,yt)=>({item:bt,item$:xt,index:$e,searchTerm:yt});function x(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"span",22),M.bIt("click",function(){M.eBV($e);const It=M.XpG().$implicit,$t=M.XpG(2);return M.Njj($t.unselect(It))}),M.EFF(1,"\xd7"),M.k0s(),M.nrm(2,"span",23)}if(2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.R7$(2),M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function N(bt,xt){}function R(bt,xt){if(1&bt&&(M.j41(0,"div",20),M.DNE(1,x,3,2,"ng-template",null,1,M.C5r)(3,N,0,0,"ng-template",21),M.k0s()),2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-value-disabled",$e.disabled),M.R7$(3),M.Y8G("ngTemplateOutlet",It.labelTemplate||yt)("ngTemplateOutletContext",M.sMw(4,w,$e.value,It.clearItem,$e.label))}}function K(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,R,4,8,"div",19),M.bVm()),2&bt){const $e=M.XpG();M.R7$(),M.Y8G("ngForOf",$e.selectedItems)("ngForTrackBy",$e.trackByOption)}}function q(bt,xt){}function he(bt,xt){if(1&bt&&M.DNE(0,q,0,0,"ng-template",21),2&bt){const $e=M.XpG();M.Y8G("ngTemplateOutlet",$e.multiLabelTemplate)("ngTemplateOutletContext",M.l_i(2,X,$e.selectedValues,$e.clearItem))}}function me(bt,xt){1&bt&&M.nrm(0,"div",25)}function Ce(bt,xt){}function Se(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,me,1,0,"ng-template",null,2,M.C5r)(3,Ce,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG();M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingSpinnerTemplate||$e)}}function Oe(bt,xt){if(1&bt&&(M.j41(0,"span",26,3)(2,"span",27),M.EFF(3,"\xd7"),M.k0s()()),2&bt){const $e=M.XpG();M.FS9("title",$e.clearAllText)}}function Ae(bt,xt){if(1&bt&&M.nrm(0,"span",32),2&bt){const $e=M.XpG().$implicit,yt=M.XpG(2);M.Y8G("ngItemLabel",$e.label)("escape",yt.escapeHTML)}}function Fe(bt,xt){}function oe(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",31),M.bIt("click",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.toggleItem(It))})("mouseover",function(){const It=M.eBV($e).$implicit,$t=M.XpG(2);return M.Njj($t.onItemHover(It))}),M.DNE(1,Ae,1,2,"ng-template",null,4,M.C5r)(3,Fe,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=xt.$implicit,yt=M.sdS(2),It=M.XpG(2);M.AVh("ng-option-disabled",$e.disabled)("ng-option-selected",$e.selected)("ng-optgroup",$e.children)("ng-option",!$e.children)("ng-option-child",!!$e.parent)("ng-option-marked",$e===It.itemsList.markedItem),M.BMQ("role",$e.children?"group":"option")("aria-selected",$e.selected)("id",null==$e?null:$e.htmlId),M.R7$(3),M.Y8G("ngTemplateOutlet",$e.children?It.optgroupTemplate||yt:It.optionTemplate||yt)("ngTemplateOutletContext",M.ziG(17,G,$e.value,$e,$e.index,It.searchTerm))}}function ee(bt,xt){if(1&bt&&(M.j41(0,"span")(1,"span",34),M.EFF(2),M.k0s(),M.EFF(3),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(2),M.JRh($e.addTagText),M.R7$(),M.SpI('"',$e.searchTerm,'"')}}function de(bt,xt){}function ye(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"div",33),M.bIt("mouseover",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.itemsList.unmarkItem())})("click",function(){M.eBV($e);const It=M.XpG(2);return M.Njj(It.selectTag())}),M.DNE(1,ee,4,2,"ng-template",null,5,M.C5r)(3,de,0,0,"ng-template",21),M.k0s()}if(2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.AVh("ng-option-marked",!yt.itemsList.markedItem),M.R7$(3),M.Y8G("ngTemplateOutlet",yt.tagTemplate||$e)("ngTemplateOutletContext",M.eq3(4,j,yt.searchTerm))}}function Te(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.notFoundText)}}function _e(bt,xt){}function Me(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Te,2,1,"ng-template",null,6,M.C5r)(3,_e,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.notFoundTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function Ee(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.typeToSearchText)}}function Xe(bt,xt){}function Ze(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,Ee,2,1,"ng-template",null,7,M.C5r)(3,Xe,0,0,"ng-template",24),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.typeToSearchTemplate||$e)}}function lt(bt,xt){if(1&bt&&(M.j41(0,"div",35),M.EFF(1),M.k0s()),2&bt){const $e=M.XpG(3);M.R7$(),M.JRh($e.loadingText)}}function Qe(bt,xt){}function st(bt,xt){if(1&bt&&(M.qex(0),M.DNE(1,lt,2,1,"ng-template",null,8,M.C5r)(3,Qe,0,0,"ng-template",21),M.bVm()),2&bt){const $e=M.sdS(2),yt=M.XpG(2);M.R7$(3),M.Y8G("ngTemplateOutlet",yt.loadingTextTemplate||$e)("ngTemplateOutletContext",M.eq3(2,j,yt.searchTerm))}}function kt(bt,xt){if(1&bt){const $e=M.RV6();M.j41(0,"ng-dropdown-panel",28),M.bIt("update",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.viewPortItems=It)})("scroll",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scroll.emit(It))})("scrollToEnd",function(It){M.eBV($e);const $t=M.XpG();return M.Njj($t.scrollToEnd.emit(It))})("outsideClick",function(){M.eBV($e);const It=M.XpG();return M.Njj(It.close())}),M.qex(1),M.DNE(2,oe,4,22,"div",29)(3,ye,4,6,"div",30),M.bVm(),M.DNE(4,Me,4,4,"ng-container",12)(5,Ze,4,1,"ng-container",12)(6,st,4,4,"ng-container",12),M.k0s()}if(2&bt){const $e=M.XpG();M.AVh("ng-select-multiple",$e.multiple),M.Y8G("virtualScroll",$e.virtualScroll)("bufferAmount",$e.bufferAmount)("appendTo",$e.appendTo)("position",$e.dropdownPosition)("headerTemplate",$e.headerTemplate)("footerTemplate",$e.footerTemplate)("filterValue",$e.searchTerm)("items",$e.itemsList.filteredItems)("markedItem",$e.itemsList.markedItem)("ngClass",$e.appendTo?$e.classes:null)("id",$e.dropdownId),M.R7$(2),M.Y8G("ngForOf",$e.viewPortItems)("ngForTrackBy",$e.trackByOption),M.R7$(),M.Y8G("ngIf",$e.showAddTag),M.R7$(),M.Y8G("ngIf",$e.showNoItemsFound()),M.R7$(),M.Y8G("ngIf",$e.showTypeToSearch()),M.R7$(),M.Y8G("ngIf",$e.loading&&0===$e.itemsList.filteredItems.length)}}const pt=/[&<>"']/g,ht=RegExp(pt.source),Lt={"&":"&","<":"<",">":">",'"':""","'":"'"};function ti(bt){return null!=bt}function Mt(bt){return"object"==typeof bt&&ti(bt)}function _t(bt){return bt instanceof Function}let wt=(()=>{class bt{constructor($e){this.element=$e,this.escape=!0}ngOnChanges($e){this.element.nativeElement.innerHTML=this.escape?function Gt(bt){return bt&&ht.test(bt)?bt.replace(pt,xt=>Lt[xt]):bt}(this.ngItemLabel):this.ngItemLabel}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ngItemLabel",""]],inputs:{ngItemLabel:"ngItemLabel",escape:"escape"},features:[M.OA$]})}return bt})(),Jt=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-option-tmp",""]]})}return bt})(),ui=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-optgroup-tmp",""]]})}return bt})(),Fi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-label-tmp",""]]})}return bt})(),mi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-multi-label-tmp",""]]})}return bt})(),vi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-header-tmp",""]]})}return bt})(),Gi=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-footer-tmp",""]]})}return bt})(),_s=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-notfound-tmp",""]]})}return bt})(),Fn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-typetosearch-tmp",""]]})}return bt})(),ls=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingtext-tmp",""]]})}return bt})(),fs=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-tag-tmp",""]]})}return bt})(),zn=(()=>{class bt{constructor($e){this.template=$e}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.C4Q))};static#t=this.\u0275dir=M.FsC({type:bt,selectors:[["","ng-loadingspinner-tmp",""]]})}return bt})();function dn(){return"axxxxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16))}const Di={"\u24b6":"A",\uff21:"A",\u00c0:"A",\u00c1:"A",\u00c2:"A",\u1ea6:"A",\u1ea4:"A",\u1eaa:"A",\u1ea8:"A",\u00c3:"A",\u0100:"A",\u0102:"A",\u1eb0:"A",\u1eae:"A",\u1eb4:"A",\u1eb2:"A",\u0226:"A",\u01e0:"A",\u00c4:"A",\u01de:"A",\u1ea2:"A",\u00c5:"A",\u01fa:"A",\u01cd:"A",\u0200:"A",\u0202:"A",\u1ea0:"A",\u1eac:"A",\u1eb6:"A",\u1e00:"A",\u0104:"A",\u023a:"A",\u2c6f:"A",\ua732:"AA",\u00c6:"AE",\u01fc:"AE",\u01e2:"AE",\ua734:"AO",\ua736:"AU",\ua738:"AV",\ua73a:"AV",\ua73c:"AY","\u24b7":"B",\uff22:"B",\u1e02:"B",\u1e04:"B",\u1e06:"B",\u0243:"B",\u0182:"B",\u0181:"B","\u24b8":"C",\uff23:"C",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u00c7:"C",\u1e08:"C",\u0187:"C",\u023b:"C",\ua73e:"C","\u24b9":"D",\uff24:"D",\u1e0a:"D",\u010e:"D",\u1e0c:"D",\u1e10:"D",\u1e12:"D",\u1e0e:"D",\u0110:"D",\u018b:"D",\u018a:"D",\u0189:"D",\ua779:"D",\u01f1:"DZ",\u01c4:"DZ",\u01f2:"Dz",\u01c5:"Dz","\u24ba":"E",\uff25:"E",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u1ec0:"E",\u1ebe:"E",\u1ec4:"E",\u1ec2:"E",\u1ebc:"E",\u0112:"E",\u1e14:"E",\u1e16:"E",\u0114:"E",\u0116:"E",\u00cb:"E",\u1eba:"E",\u011a:"E",\u0204:"E",\u0206:"E",\u1eb8:"E",\u1ec6:"E",\u0228:"E",\u1e1c:"E",\u0118:"E",\u1e18:"E",\u1e1a:"E",\u0190:"E",\u018e:"E","\u24bb":"F",\uff26:"F",\u1e1e:"F",\u0191:"F",\ua77b:"F","\u24bc":"G",\uff27:"G",\u01f4:"G",\u011c:"G",\u1e20:"G",\u011e:"G",\u0120:"G",\u01e6:"G",\u0122:"G",\u01e4:"G",\u0193:"G",\ua7a0:"G",\ua77d:"G",\ua77e:"G","\u24bd":"H",\uff28:"H",\u0124:"H",\u1e22:"H",\u1e26:"H",\u021e:"H",\u1e24:"H",\u1e28:"H",\u1e2a:"H",\u0126:"H",\u2c67:"H",\u2c75:"H",\ua78d:"H","\u24be":"I",\uff29:"I",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u0128:"I",\u012a:"I",\u012c:"I",\u0130:"I",\u00cf:"I",\u1e2e:"I",\u1ec8:"I",\u01cf:"I",\u0208:"I",\u020a:"I",\u1eca:"I",\u012e:"I",\u1e2c:"I",\u0197:"I","\u24bf":"J",\uff2a:"J",\u0134:"J",\u0248:"J","\u24c0":"K",\uff2b:"K",\u1e30:"K",\u01e8:"K",\u1e32:"K",\u0136:"K",\u1e34:"K",\u0198:"K",\u2c69:"K",\ua740:"K",\ua742:"K",\ua744:"K",\ua7a2:"K","\u24c1":"L",\uff2c:"L",\u013f:"L",\u0139:"L",\u013d:"L",\u1e36:"L",\u1e38:"L",\u013b:"L",\u1e3c:"L",\u1e3a:"L",\u0141:"L",\u023d:"L",\u2c62:"L",\u2c60:"L",\ua748:"L",\ua746:"L",\ua780:"L",\u01c7:"LJ",\u01c8:"Lj","\u24c2":"M",\uff2d:"M",\u1e3e:"M",\u1e40:"M",\u1e42:"M",\u2c6e:"M",\u019c:"M","\u24c3":"N",\uff2e:"N",\u01f8:"N",\u0143:"N",\u00d1:"N",\u1e44:"N",\u0147:"N",\u1e46:"N",\u0145:"N",\u1e4a:"N",\u1e48:"N",\u0220:"N",\u019d:"N",\ua790:"N",\ua7a4:"N",\u01ca:"NJ",\u01cb:"Nj","\u24c4":"O",\uff2f:"O",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u1ed2:"O",\u1ed0:"O",\u1ed6:"O",\u1ed4:"O",\u00d5:"O",\u1e4c:"O",\u022c:"O",\u1e4e:"O",\u014c:"O",\u1e50:"O",\u1e52:"O",\u014e:"O",\u022e:"O",\u0230:"O",\u00d6:"O",\u022a:"O",\u1ece:"O",\u0150:"O",\u01d1:"O",\u020c:"O",\u020e:"O",\u01a0:"O",\u1edc:"O",\u1eda:"O",\u1ee0:"O",\u1ede:"O",\u1ee2:"O",\u1ecc:"O",\u1ed8:"O",\u01ea:"O",\u01ec:"O",\u00d8:"O",\u01fe:"O",\u0186:"O",\u019f:"O",\ua74a:"O",\ua74c:"O",\u01a2:"OI",\ua74e:"OO",\u0222:"OU","\u24c5":"P",\uff30:"P",\u1e54:"P",\u1e56:"P",\u01a4:"P",\u2c63:"P",\ua750:"P",\ua752:"P",\ua754:"P","\u24c6":"Q",\uff31:"Q",\ua756:"Q",\ua758:"Q",\u024a:"Q","\u24c7":"R",\uff32:"R",\u0154:"R",\u1e58:"R",\u0158:"R",\u0210:"R",\u0212:"R",\u1e5a:"R",\u1e5c:"R",\u0156:"R",\u1e5e:"R",\u024c:"R",\u2c64:"R",\ua75a:"R",\ua7a6:"R",\ua782:"R","\u24c8":"S",\uff33:"S",\u1e9e:"S",\u015a:"S",\u1e64:"S",\u015c:"S",\u1e60:"S",\u0160:"S",\u1e66:"S",\u1e62:"S",\u1e68:"S",\u0218:"S",\u015e:"S",\u2c7e:"S",\ua7a8:"S",\ua784:"S","\u24c9":"T",\uff34:"T",\u1e6a:"T",\u0164:"T",\u1e6c:"T",\u021a:"T",\u0162:"T",\u1e70:"T",\u1e6e:"T",\u0166:"T",\u01ac:"T",\u01ae:"T",\u023e:"T",\ua786:"T",\ua728:"TZ","\u24ca":"U",\uff35:"U",\u00d9:"U",\u00da:"U",\u00db:"U",\u0168:"U",\u1e78:"U",\u016a:"U",\u1e7a:"U",\u016c:"U",\u00dc:"U",\u01db:"U",\u01d7:"U",\u01d5:"U",\u01d9:"U",\u1ee6:"U",\u016e:"U",\u0170:"U",\u01d3:"U",\u0214:"U",\u0216:"U",\u01af:"U",\u1eea:"U",\u1ee8:"U",\u1eee:"U",\u1eec:"U",\u1ef0:"U",\u1ee4:"U",\u1e72:"U",\u0172:"U",\u1e76:"U",\u1e74:"U",\u0244:"U","\u24cb":"V",\uff36:"V",\u1e7c:"V",\u1e7e:"V",\u01b2:"V",\ua75e:"V",\u0245:"V",\ua760:"VY","\u24cc":"W",\uff37:"W",\u1e80:"W",\u1e82:"W",\u0174:"W",\u1e86:"W",\u1e84:"W",\u1e88:"W",\u2c72:"W","\u24cd":"X",\uff38:"X",\u1e8a:"X",\u1e8c:"X","\u24ce":"Y",\uff39:"Y",\u1ef2:"Y",\u00dd:"Y",\u0176:"Y",\u1ef8:"Y",\u0232:"Y",\u1e8e:"Y",\u0178:"Y",\u1ef6:"Y",\u1ef4:"Y",\u01b3:"Y",\u024e:"Y",\u1efe:"Y","\u24cf":"Z",\uff3a:"Z",\u0179:"Z",\u1e90:"Z",\u017b:"Z",\u017d:"Z",\u1e92:"Z",\u1e94:"Z",\u01b5:"Z",\u0224:"Z",\u2c7f:"Z",\u2c6b:"Z",\ua762:"Z","\u24d0":"a",\uff41:"a",\u1e9a:"a",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u1ea7:"a",\u1ea5:"a",\u1eab:"a",\u1ea9:"a",\u00e3:"a",\u0101:"a",\u0103:"a",\u1eb1:"a",\u1eaf:"a",\u1eb5:"a",\u1eb3:"a",\u0227:"a",\u01e1:"a",\u00e4:"a",\u01df:"a",\u1ea3:"a",\u00e5:"a",\u01fb:"a",\u01ce:"a",\u0201:"a",\u0203:"a",\u1ea1:"a",\u1ead:"a",\u1eb7:"a",\u1e01:"a",\u0105:"a",\u2c65:"a",\u0250:"a",\ua733:"aa",\u00e6:"ae",\u01fd:"ae",\u01e3:"ae",\ua735:"ao",\ua737:"au",\ua739:"av",\ua73b:"av",\ua73d:"ay","\u24d1":"b",\uff42:"b",\u1e03:"b",\u1e05:"b",\u1e07:"b",\u0180:"b",\u0183:"b",\u0253:"b","\u24d2":"c",\uff43:"c",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u00e7:"c",\u1e09:"c",\u0188:"c",\u023c:"c",\ua73f:"c",\u2184:"c","\u24d3":"d",\uff44:"d",\u1e0b:"d",\u010f:"d",\u1e0d:"d",\u1e11:"d",\u1e13:"d",\u1e0f:"d",\u0111:"d",\u018c:"d",\u0256:"d",\u0257:"d",\ua77a:"d",\u01f3:"dz",\u01c6:"dz","\u24d4":"e",\uff45:"e",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u1ec1:"e",\u1ebf:"e",\u1ec5:"e",\u1ec3:"e",\u1ebd:"e",\u0113:"e",\u1e15:"e",\u1e17:"e",\u0115:"e",\u0117:"e",\u00eb:"e",\u1ebb:"e",\u011b:"e",\u0205:"e",\u0207:"e",\u1eb9:"e",\u1ec7:"e",\u0229:"e",\u1e1d:"e",\u0119:"e",\u1e19:"e",\u1e1b:"e",\u0247:"e",\u025b:"e",\u01dd:"e","\u24d5":"f",\uff46:"f",\u1e1f:"f",\u0192:"f",\ua77c:"f","\u24d6":"g",\uff47:"g",\u01f5:"g",\u011d:"g",\u1e21:"g",\u011f:"g",\u0121:"g",\u01e7:"g",\u0123:"g",\u01e5:"g",\u0260:"g",\ua7a1:"g",\u1d79:"g",\ua77f:"g","\u24d7":"h",\uff48:"h",\u0125:"h",\u1e23:"h",\u1e27:"h",\u021f:"h",\u1e25:"h",\u1e29:"h",\u1e2b:"h",\u1e96:"h",\u0127:"h",\u2c68:"h",\u2c76:"h",\u0265:"h",\u0195:"hv","\u24d8":"i",\uff49:"i",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u0129:"i",\u012b:"i",\u012d:"i",\u00ef:"i",\u1e2f:"i",\u1ec9:"i",\u01d0:"i",\u0209:"i",\u020b:"i",\u1ecb:"i",\u012f:"i",\u1e2d:"i",\u0268:"i",\u0131:"i","\u24d9":"j",\uff4a:"j",\u0135:"j",\u01f0:"j",\u0249:"j","\u24da":"k",\uff4b:"k",\u1e31:"k",\u01e9:"k",\u1e33:"k",\u0137:"k",\u1e35:"k",\u0199:"k",\u2c6a:"k",\ua741:"k",\ua743:"k",\ua745:"k",\ua7a3:"k","\u24db":"l",\uff4c:"l",\u0140:"l",\u013a:"l",\u013e:"l",\u1e37:"l",\u1e39:"l",\u013c:"l",\u1e3d:"l",\u1e3b:"l",\u017f:"l",\u0142:"l",\u019a:"l",\u026b:"l",\u2c61:"l",\ua749:"l",\ua781:"l",\ua747:"l",\u01c9:"lj","\u24dc":"m",\uff4d:"m",\u1e3f:"m",\u1e41:"m",\u1e43:"m",\u0271:"m",\u026f:"m","\u24dd":"n",\uff4e:"n",\u01f9:"n",\u0144:"n",\u00f1:"n",\u1e45:"n",\u0148:"n",\u1e47:"n",\u0146:"n",\u1e4b:"n",\u1e49:"n",\u019e:"n",\u0272:"n",\u0149:"n",\ua791:"n",\ua7a5:"n",\u01cc:"nj","\u24de":"o",\uff4f:"o",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u1ed3:"o",\u1ed1:"o",\u1ed7:"o",\u1ed5:"o",\u00f5:"o",\u1e4d:"o",\u022d:"o",\u1e4f:"o",\u014d:"o",\u1e51:"o",\u1e53:"o",\u014f:"o",\u022f:"o",\u0231:"o",\u00f6:"o",\u022b:"o",\u1ecf:"o",\u0151:"o",\u01d2:"o",\u020d:"o",\u020f:"o",\u01a1:"o",\u1edd:"o",\u1edb:"o",\u1ee1:"o",\u1edf:"o",\u1ee3:"o",\u1ecd:"o",\u1ed9:"o",\u01eb:"o",\u01ed:"o",\u00f8:"o",\u01ff:"o",\u0254:"o",\ua74b:"o",\ua74d:"o",\u0275:"o",\u01a3:"oi",\u0223:"ou",\ua74f:"oo","\u24df":"p",\uff50:"p",\u1e55:"p",\u1e57:"p",\u01a5:"p",\u1d7d:"p",\ua751:"p",\ua753:"p",\ua755:"p","\u24e0":"q",\uff51:"q",\u024b:"q",\ua757:"q",\ua759:"q","\u24e1":"r",\uff52:"r",\u0155:"r",\u1e59:"r",\u0159:"r",\u0211:"r",\u0213:"r",\u1e5b:"r",\u1e5d:"r",\u0157:"r",\u1e5f:"r",\u024d:"r",\u027d:"r",\ua75b:"r",\ua7a7:"r",\ua783:"r","\u24e2":"s",\uff53:"s",\u00df:"s",\u015b:"s",\u1e65:"s",\u015d:"s",\u1e61:"s",\u0161:"s",\u1e67:"s",\u1e63:"s",\u1e69:"s",\u0219:"s",\u015f:"s",\u023f:"s",\ua7a9:"s",\ua785:"s",\u1e9b:"s","\u24e3":"t",\uff54:"t",\u1e6b:"t",\u1e97:"t",\u0165:"t",\u1e6d:"t",\u021b:"t",\u0163:"t",\u1e71:"t",\u1e6f:"t",\u0167:"t",\u01ad:"t",\u0288:"t",\u2c66:"t",\ua787:"t",\ua729:"tz","\u24e4":"u",\uff55:"u",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u0169:"u",\u1e79:"u",\u016b:"u",\u1e7b:"u",\u016d:"u",\u00fc:"u",\u01dc:"u",\u01d8:"u",\u01d6:"u",\u01da:"u",\u1ee7:"u",\u016f:"u",\u0171:"u",\u01d4:"u",\u0215:"u",\u0217:"u",\u01b0:"u",\u1eeb:"u",\u1ee9:"u",\u1eef:"u",\u1eed:"u",\u1ef1:"u",\u1ee5:"u",\u1e73:"u",\u0173:"u",\u1e77:"u",\u1e75:"u",\u0289:"u","\u24e5":"v",\uff56:"v",\u1e7d:"v",\u1e7f:"v",\u028b:"v",\ua75f:"v",\u028c:"v",\ua761:"vy","\u24e6":"w",\uff57:"w",\u1e81:"w",\u1e83:"w",\u0175:"w",\u1e87:"w",\u1e85:"w",\u1e98:"w",\u1e89:"w",\u2c73:"w","\u24e7":"x",\uff58:"x",\u1e8b:"x",\u1e8d:"x","\u24e8":"y",\uff59:"y",\u1ef3:"y",\u00fd:"y",\u0177:"y",\u1ef9:"y",\u0233:"y",\u1e8f:"y",\u00ff:"y",\u1ef7:"y",\u1e99:"y",\u1ef5:"y",\u01b4:"y",\u024f:"y",\u1eff:"y","\u24e9":"z",\uff5a:"z",\u017a:"z",\u1e91:"z",\u017c:"z",\u017e:"z",\u1e93:"z",\u1e95:"z",\u01b6:"z",\u0225:"z",\u0240:"z",\u2c6c:"z",\ua763:"z",\u0386:"\u0391",\u0388:"\u0395",\u0389:"\u0397",\u038a:"\u0399",\u03aa:"\u0399",\u038c:"\u039f",\u038e:"\u03a5",\u03ab:"\u03a5",\u038f:"\u03a9",\u03ac:"\u03b1",\u03ad:"\u03b5",\u03ae:"\u03b7",\u03af:"\u03b9",\u03ca:"\u03b9",\u0390:"\u03b9",\u03cc:"\u03bf",\u03cd:"\u03c5",\u03cb:"\u03c5",\u03b0:"\u03c5",\u03c9:"\u03c9",\u03c2:"\u03c3"};function Cs(bt){return bt.replace(/[^\u0000-\u007E]/g,$e=>Di[$e]||$e)}class On{constructor(xt,$e){this._ngSelect=xt,this._selectionModel=$e,this._items=[],this._filteredItems=[],this._markedIndex=-1}get items(){return this._items}get filteredItems(){return this._filteredItems}get markedIndex(){return this._markedIndex}get selectedItems(){return this._selectionModel.value}get markedItem(){return this._filteredItems[this._markedIndex]}get noItemsToSelect(){return this._ngSelect.hideSelected&&this._items.length===this.selectedItems.length}get maxItemsSelected(){return this._ngSelect.multiple&&this._ngSelect.maxSelectedItems<=this.selectedItems.length}get lastSelectedItem(){let xt=this.selectedItems.length-1;for(;xt>=0;xt--){const $e=this.selectedItems[xt];if(!$e.disabled)return $e}return null}setItems(xt){this._items=xt.map(($e,yt)=>this.mapItem($e,yt)),this._ngSelect.groupBy?(this._groups=this._groupBy(this._items,this._ngSelect.groupBy),this._items=this._flatten(this._groups)):(this._groups=new Map,this._groups.set(void 0,this._items)),this._filteredItems=[...this._items]}select(xt){if(xt.selected||this.maxItemsSelected)return;const $e=this._ngSelect.multiple;$e||this.clearSelected(),this._selectionModel.select(xt,$e,this._ngSelect.selectableGroupAsModel),this._ngSelect.hideSelected&&this._hideSelected(xt)}unselect(xt){xt.selected&&(this._selectionModel.unselect(xt,this._ngSelect.multiple),this._ngSelect.hideSelected&&ti(xt.index)&&this._ngSelect.multiple&&this._showSelected(xt))}findItem(xt){let $e;return $e=this._ngSelect.compareWith?yt=>this._ngSelect.compareWith(yt.value,xt):this._ngSelect.bindValue?yt=>!yt.children&&this.resolveNested(yt.value,this._ngSelect.bindValue)===xt:yt=>yt.value===xt||!yt.children&&yt.label&&yt.label===this.resolveNested(xt,this._ngSelect.bindLabel),this._items.find(yt=>$e(yt))}addItem(xt){const $e=this.mapItem(xt,this._items.length);return this._items.push($e),this._filteredItems.push($e),$e}clearSelected(xt=!1){this._selectionModel.clear(xt),this._items.forEach($e=>{$e.selected=xt&&$e.selected&&$e.disabled,$e.marked=!1}),this._ngSelect.hideSelected&&this.resetFilteredItems()}findByLabel(xt){return xt=Cs(xt).toLocaleLowerCase(),this.filteredItems.find($e=>Cs($e.label).toLocaleLowerCase().substr(0,xt.length)===xt)}filter(xt){if(!xt)return void this.resetFilteredItems();this._filteredItems=[],xt=this._ngSelect.searchFn?xt:Cs(xt).toLocaleLowerCase();const $e=this._ngSelect.searchFn||this._defaultSearchFn,yt=this._ngSelect.hideSelected;for(const It of Array.from(this._groups.keys())){const $t=[];for(const si of this._groups.get(It))yt&&(si.parent&&si.parent.selected||si.selected)||$e(xt,this._ngSelect.searchFn?si.value:si)&&$t.push(si);if($t.length>0){const[si]=$t.slice(-1);if(si.parent){const Ti=this._items.find(Si=>Si===si.parent);this._filteredItems.push(Ti)}this._filteredItems.push(...$t)}}}resetFilteredItems(){this._filteredItems.length!==this._items.length&&(this._filteredItems=this._ngSelect.hideSelected&&this.selectedItems.length>0?this._items.filter(xt=>!xt.selected):this._items)}unmarkItem(){this._markedIndex=-1}markNextItem(){this._stepToItem(1)}markPreviousItem(){this._stepToItem(-1)}markItem(xt){this._markedIndex=this._filteredItems.indexOf(xt)}markSelectedOrDefault(xt){if(0===this._filteredItems.length)return;const $e=this._getLastMarkedIndex();this._markedIndex=$e>-1?$e:xt?this.filteredItems.findIndex(yt=>!yt.disabled):-1}resolveNested(xt,$e){if(!Mt(xt))return xt;if(-1===$e.indexOf("."))return xt[$e];{const yt=$e.split(".");let It=xt;for(let $t=0,si=yt.length;$t-1===this.selectedItems.indexOf($e)))}_showSelected(xt){if(this._filteredItems.push(xt),xt.parent){const $e=xt.parent;this._filteredItems.find(It=>It===$e)||this._filteredItems.push($e)}else if(xt.children)for(const $e of xt.children)$e.selected=!1,this._filteredItems.push($e);this._filteredItems=[...this._filteredItems.sort(($e,yt)=>$e.index-yt.index)]}_hideSelected(xt){this._filteredItems=this._filteredItems.filter($e=>$e!==xt),xt.parent?xt.parent.children.every(yt=>yt.selected)&&(this._filteredItems=this._filteredItems.filter(yt=>yt!==xt.parent)):xt.children&&(this._filteredItems=this.filteredItems.filter($e=>$e.parent!==xt))}_defaultSearchFn(xt,$e){return Cs($e.label).toLocaleLowerCase().indexOf(xt)>-1}_getNextItemIndex(xt){return xt>0?this._markedIndex>=this._filteredItems.length-1?0:this._markedIndex+1:this._markedIndex<=0?this._filteredItems.length-1:this._markedIndex-1}_stepToItem(xt){0===this._filteredItems.length||this._filteredItems.every($e=>$e.disabled)||(this._markedIndex=this._getNextItemIndex(xt),this.markedItem.disabled&&this._stepToItem(xt))}_getLastMarkedIndex(){if(this._ngSelect.hideSelected||this._markedIndex>-1&&void 0===this.markedItem)return-1;const xt=this._filteredItems.indexOf(this.lastSelectedItem);return this.lastSelectedItem&&xt<0?-1:Math.max(this.markedIndex,xt)}_groupBy(xt,$e){const yt=new Map;if(0===xt.length)return yt;if(Array.isArray(xt[0].value[$e])){for(const si of xt){const Ti=(si.value[$e]||[]).map((Si,Hi)=>this.mapItem(Si,Hi));yt.set(si,Ti)}return yt}const It=_t(this._ngSelect.groupBy),$t=si=>{const Ti=It?$e(si.value):si.value[$e];return ti(Ti)?Ti:void 0};for(const si of xt){const Ti=$t(si),Si=yt.get(Ti);Si?Si.push(si):yt.set(Ti,[si])}return yt}_flatten(xt){const $e=_t(this._ngSelect.groupBy),yt=[];for(const It of Array.from(xt.keys())){let $t=yt.length;if(void 0===It){const un=xt.get(void 0)||[];yt.push(...un.map(Xi=>(Xi.index=$t++,Xi)));continue}const si=Mt(It),Ti={label:si?"":String(It),children:void 0,parent:null,index:$t++,disabled:!this._ngSelect.selectableGroup,htmlId:dn()},Si=$e?this._ngSelect.bindLabel:this._ngSelect.groupBy,Hi=this._ngSelect.groupValue||(()=>si?It.value:{[Si]:It}),rs=xt.get(It).map(un=>(un.parent=Ti,un.children=void 0,un.index=$t++,un));Ti.children=rs,Ti.value=Hi(It,rs.map(un=>un.value)),yt.push(Ti),yt.push(...rs)}return yt}}var Pn=function(bt){return bt[bt.Tab=9]="Tab",bt[bt.Enter=13]="Enter",bt[bt.Esc=27]="Esc",bt[bt.Space=32]="Space",bt[bt.ArrowUp=38]="ArrowUp",bt[bt.ArrowDown=40]="ArrowDown",bt[bt.Backspace=8]="Backspace",bt}(Pn||{});let As=(()=>{class bt{constructor(){this._dimensions={itemHeight:0,panelHeight:0,itemsPerViewport:0}}get dimensions(){return this._dimensions}calculateItems($e,yt,It){const $t=this._dimensions,si=$t.itemHeight*yt,Si=Math.max(0,$e)/si*yt;let Hi=Math.min(yt,Math.ceil(Si)+($t.itemsPerViewport+1));const un=Math.max(0,Hi-$t.itemsPerViewport);let Xi=Math.min(un,Math.floor(Si)),cn=$t.itemHeight*Math.ceil(Xi)-$t.itemHeight*Math.min(Xi,It);return cn=isNaN(cn)?0:cn,Xi=isNaN(Xi)?-1:Xi,Hi=isNaN(Hi)?-1:Hi,Xi-=It,Xi=Math.max(0,Xi),Hi+=It,Hi=Math.min(yt,Hi),{topPadding:cn,scrollHeight:si,start:Xi,end:Hi}}setDimensions($e,yt){const It=Math.max(1,Math.floor(yt/$e));this._dimensions={itemHeight:$e,panelHeight:yt,itemsPerViewport:It}}getScrollTo($e,yt,It){const{panelHeight:$t}=this.dimensions,si=$e+yt,Si=It+$t;return $t>=si&&It===$e?null:si>Si?It+si-Si:$e<=It?$e:null}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac})}return bt})();const $n=["top","right","bottom","left"],$i=typeof requestAnimationFrame<"u"?B.X:y;let ws=(()=>{class bt{constructor($e,yt,It,$t,si){this._renderer=$e,this._zone=yt,this._panelService=It,this._document=si,this.items=[],this.position="auto",this.virtualScroll=!1,this.filterValue=null,this.update=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.outsideClick=new M.bkB,this._destroy$=new n.B,this._scrollToEndFired=!1,this._updateScrollHeight=!1,this._lastScrollPosition=0,this._dropdown=$t.nativeElement}get currentPosition(){return this._currentPosition}get itemsLength(){return this._itemsLength}set itemsLength($e){$e!==this._itemsLength&&(this._itemsLength=$e,this._onItemsLengthChanged())}get _startOffset(){if(this.markedItem){const{itemHeight:$e,panelHeight:yt}=this._panelService.dimensions,It=this.markedItem.index*$e;return yt>It?0:It}return 0}ngOnInit(){this._select=this._dropdown.parentElement,this._virtualPadding=this.paddingElementRef.nativeElement,this._scrollablePanel=this.scrollElementRef.nativeElement,this._contentPanel=this.contentElementRef.nativeElement,this._handleScroll(),this._handleOutsideClick(),this._appendDropdown(),this._setupMousedownListener()}ngOnChanges($e){if($e.items){const yt=$e.items;this._onItemsChange(yt.currentValue,yt.firstChange)}}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete(),this._destroy$.unsubscribe(),this.appendTo&&this._renderer.removeChild(this._dropdown.parentNode,this._dropdown)}scrollTo($e,yt=!1){if(!$e)return;const It=this.items.indexOf($e);if(It<0||It>=this.itemsLength)return;let $t;if(this.virtualScroll){const si=this._panelService.dimensions.itemHeight;$t=this._panelService.getScrollTo(It*si,si,this._lastScrollPosition)}else{const si=this._dropdown.querySelector(`#${$e.htmlId}`);$t=this._panelService.getScrollTo(si.offsetTop,si.clientHeight,yt?si.offsetTop:this._lastScrollPosition)}ti($t)&&(this._scrollablePanel.scrollTop=$t)}scrollToTag(){const $e=this._scrollablePanel;$e.scrollTop=$e.scrollHeight-$e.clientHeight}adjustPosition(){this._updateYPosition()}_handleDropdownPosition(){this._currentPosition=this._calculateCurrentPosition(this._dropdown),$n.includes(this._currentPosition)?this._updateDropdownClass(this._currentPosition):this._updateDropdownClass("bottom"),this.appendTo&&this._updateYPosition(),this._dropdown.style.opacity="1"}_updateDropdownClass($e){$n.forEach(It=>{const $t=`ng-select-${It}`;this._renderer.removeClass(this._dropdown,$t),this._renderer.removeClass(this._select,$t)});const yt=`ng-select-${$e}`;this._renderer.addClass(this._dropdown,yt),this._renderer.addClass(this._select,yt)}_handleScroll(){this._zone.runOutsideAngular(()=>{(0,r.R)(this.scrollElementRef.nativeElement,"scroll").pipe((0,V.Q)(this._destroy$),function fe(bt,xt=Pe.E){return function ve(bt){return(0,Z.N)((xt,$e)=>{let yt=!1,It=null,$t=null,si=!1;const Ti=()=>{if($t?.unsubscribe(),$t=null,yt){yt=!1;const Hi=It;It=null,$e.next(Hi)}si&&$e.complete()},Si=()=>{$t=null,si&&$e.complete()};xt.subscribe((0,re._)($e,Hi=>{yt=!0,It=Hi,$t||(0,ie.Tg)(bt(Hi)).subscribe($t=(0,re._)($e,Ti,Si))},()=>{si=!0,(!yt||!$t||$t.closed)&&$e.complete()}))})}(()=>(0,le.O)(bt,xt))}(0,$i)).subscribe($e=>{const yt=$e.path||$e.composedPath&&$e.composedPath();yt&&(0!==yt.length||$e.target)&&this._onContentScrolled(yt&&0!==yt.length?yt[0].scrollTop:$e.target.scrollTop)})})}_handleOutsideClick(){this._document&&this._zone.runOutsideAngular(()=>{(0,l.h)((0,r.R)(this._document,"touchstart",{capture:!0}),(0,r.R)(this._document,"mousedown",{capture:!0})).pipe((0,V.Q)(this._destroy$)).subscribe($e=>this._checkToClose($e))})}_checkToClose($e){if(this._select.contains($e.target)||this._dropdown.contains($e.target))return;const yt=$e.path||$e.composedPath&&$e.composedPath();$e.target&&$e.target.shadowRoot&&yt&&yt[0]&&this._select.contains(yt[0])||this._zone.run(()=>this.outsideClick.emit())}_onItemsChange($e,yt){this.items=$e||[],this._scrollToEndFired=!1,this.itemsLength=$e.length,this.virtualScroll?this._updateItemsRange(yt):(this._setVirtualHeight(),this._updateItems(yt))}_updateItems($e){this.update.emit(this.items),!1!==$e&&this._zone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._panelService.setDimensions(0,this._scrollablePanel.clientHeight),this._handleDropdownPosition(),this.scrollTo(this.markedItem,$e)})})}_updateItemsRange($e){this._zone.runOutsideAngular(()=>{this._measureDimensions().then(()=>{$e?(this._renderItemsRange(this._startOffset),this._handleDropdownPosition()):this._renderItemsRange()})})}_onContentScrolled($e){this.virtualScroll&&this._renderItemsRange($e),this._lastScrollPosition=$e,this._fireScrollToEnd($e)}_updateVirtualHeight($e){this._updateScrollHeight&&(this._virtualPadding.style.height=`${$e}px`,this._updateScrollHeight=!1)}_setVirtualHeight(){this._virtualPadding&&(this._virtualPadding.style.height="0px")}_onItemsLengthChanged(){this._updateScrollHeight=!0}_renderItemsRange($e=null){if($e&&this._lastScrollPosition===$e)return;const yt=this._panelService.calculateItems($e=$e||this._scrollablePanel.scrollTop,this.itemsLength,this.bufferAmount);this._updateVirtualHeight(yt.scrollHeight),this._contentPanel.style.transform=`translateY(${yt.topPadding}px)`,this._zone.run(()=>{this.update.emit(this.items.slice(yt.start,yt.end)),this.scroll.emit({start:yt.start,end:yt.end})}),ti($e)&&0===this._lastScrollPosition&&(this._scrollablePanel.scrollTop=$e,this._lastScrollPosition=$e)}_measureDimensions(){if(this._panelService.dimensions.itemHeight>0||0===this.itemsLength)return Promise.resolve(this._panelService.dimensions);const[$e]=this.items;return this.update.emit([$e]),Promise.resolve().then(()=>{const It=this._dropdown.querySelector(`#${$e.htmlId}`).clientHeight;return this._virtualPadding.style.height=It*this.itemsLength+"px",this._panelService.setDimensions(It,this._scrollablePanel.clientHeight),this._panelService.dimensions})}_fireScrollToEnd($e){this._scrollToEndFired||0===$e||$e+this._dropdown.clientHeight>=(this.virtualScroll?this._virtualPadding:this._contentPanel).clientHeight-1&&(this._zone.run(()=>this.scrollToEnd.emit()),this._scrollToEndFired=!0)}_calculateCurrentPosition($e){if("auto"!==this.position)return this.position;const yt=this._select.getBoundingClientRect(),It=document.documentElement.scrollTop||document.body.scrollTop;return yt.top+window.pageYOffset+yt.height+$e.getBoundingClientRect().height>It+document.documentElement.clientHeight?"top":"bottom"}_appendDropdown(){if(this.appendTo){if(this._parent=document.querySelector(this.appendTo),!this._parent)throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);this._updateXPosition(),this._parent.appendChild(this._dropdown)}}_updateXPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect();this._dropdown.style.left=$e.left-yt.left+"px",this._dropdown.style.width=$e.width+"px",this._dropdown.style.minWidth=$e.width+"px"}_updateYPosition(){const $e=this._select.getBoundingClientRect(),yt=this._parent.getBoundingClientRect(),It=$e.height;"top"===this._currentPosition?(this._dropdown.style.bottom=yt.bottom-$e.bottom+It+"px",this._dropdown.style.top="auto"):"bottom"===this._currentPosition&&(this._dropdown.style.top=$e.top-yt.top+It+"px",this._dropdown.style.bottom="auto")}_setupMousedownListener(){this._zone.runOutsideAngular(()=>{(0,r.R)(this._dropdown,"mousedown").pipe((0,V.Q)(this._destroy$)).subscribe($e=>{"INPUT"!==$e.target.tagName&&$e.preventDefault()})})}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.sFG),M.rXU(M.SKi),M.rXU(As),M.rXU(M.aKT),M.rXU(d.qQ,8))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-dropdown-panel"]],viewQuery:function(yt,It){if(1&yt&&(M.GBs(C,7,M.aKT),M.GBs(k,7,M.aKT),M.GBs(p,7,M.aKT)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.contentElementRef=$t.first),M.mGM($t=M.lsd())&&(It.scrollElementRef=$t.first),M.mGM($t=M.lsd())&&(It.paddingElementRef=$t.first)}},inputs:{items:"items",markedItem:"markedItem",position:"position",appendTo:"appendTo",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",headerTemplate:"headerTemplate",footerTemplate:"footerTemplate",filterValue:"filterValue"},outputs:{update:"update",scroll:"scroll",scrollToEnd:"scrollToEnd",outsideClick:"outsideClick"},features:[M.OA$],ngContentSelectors:S,decls:9,vars:6,consts:[["scroll",""],["padding",""],["content",""],["class","ng-dropdown-header",4,"ngIf"],["role","listbox",1,"ng-dropdown-panel-items","scroll-host"],["class","ng-dropdown-footer",4,"ngIf"],[1,"ng-dropdown-header"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ng-dropdown-footer"]],template:function(yt,It){1&yt&&(M.NAR(),M.DNE(0,H,2,4,"div",3),M.j41(1,"div",4,0),M.nrm(3,"div",null,1),M.j41(5,"div",null,2),M.SdG(7),M.k0s()(),M.DNE(8,Y,2,4,"div",5)),2&yt&&(M.Y8G("ngIf",It.headerTemplate),M.R7$(3),M.AVh("total-padding",It.virtualScroll),M.R7$(2),M.AVh("scrollable-content",It.virtualScroll&&It.items.length),M.R7$(3),M.Y8G("ngIf",It.footerTemplate))},dependencies:[d.bT,d.T3],encapsulation:2,changeDetection:0})}return bt})(),kn=(()=>{class bt{get disabled(){return this._disabled}set disabled($e){this._disabled=this._isDisabled($e)}constructor($e){this.elementRef=$e,this.stateChange$=new n.B,this._disabled=!1}get label(){return(this.elementRef.nativeElement.textContent||"").trim()}ngOnChanges($e){$e.disabled&&this.stateChange$.next({value:this.value,disabled:this._disabled})}ngAfterViewChecked(){this.label!==this._previousLabel&&(this._previousLabel=this.label,this.stateChange$.next({value:this.value,disabled:this._disabled,label:this.elementRef.nativeElement.innerHTML}))}ngOnDestroy(){this.stateChange$.complete()}_isDisabled($e){return null!=$e&&"false"!=`${$e}`}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.rXU(M.aKT))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-option"]],inputs:{value:"value",disabled:"disabled"},features:[M.OA$],ngContentSelectors:S,decls:1,vars:0,template:function(yt,It){1&yt&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return bt})(),jr=(()=>{class bt{constructor(){this.notFoundText="No items found",this.typeToSearchText="Type to search",this.addTagText="Add item",this.loadingText="Loading...",this.clearAllText="Clear all",this.disableVirtualScroll=!0,this.openOnEnter=!0,this.appearance="underline"}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})(),fo=(()=>{class bt{warn($e){console.warn($e)}static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275prov=M.jDH({token:bt,factory:bt.\u0275fac,providedIn:"root"})}return bt})();const qr=new M.nKC("ng-select-selection-model");let ir=(()=>{class bt{get items(){return this._items}set items($e){null===$e&&($e=[]),this._itemsAreUsed=!0,this._items=$e}get compareWith(){return this._compareWith}set compareWith($e){if(null!=$e&&!_t($e))throw Error("`compareWith` must be a function.");this._compareWith=$e}get clearSearchOnAdd(){return ti(this._clearSearchOnAdd)?this._clearSearchOnAdd:ti(this.config.clearSearchOnAdd)?this.config.clearSearchOnAdd:this.closeOnSelect}set clearSearchOnAdd($e){this._clearSearchOnAdd=$e}get deselectOnClick(){return ti(this._deselectOnClick)?this._deselectOnClick:ti(this.config.deselectOnClick)?this.config.deselectOnClick:this.multiple}set deselectOnClick($e){this._deselectOnClick=$e}get disabled(){return this.readonly||this._disabled}get filtered(){return!!this.searchTerm&&this.searchable||this._isComposing}get single(){return!this.multiple}get _editableSearchTerm(){return this.editableSearchTerm&&!this.multiple}constructor($e,yt,It,$t,si,Ti,Si){this.classes=$e,this.autoFocus=yt,this.config=It,this._cd=Ti,this._console=Si,this.markFirst=!0,this.dropdownPosition="auto",this.loading=!1,this.closeOnSelect=!0,this.hideSelected=!1,this.selectOnTab=!1,this.bufferAmount=4,this.selectableGroup=!1,this.selectableGroupAsModel=!0,this.searchFn=null,this.trackByFn=null,this.clearOnBackspace=!0,this.labelForId=null,this.inputAttrs={},this.readonly=!1,this.searchWhileComposing=!0,this.minTermLength=0,this.editableSearchTerm=!1,this.keyDownFn=Hi=>!0,this.multiple=!1,this.addTag=!1,this.searchable=!0,this.clearable=!0,this.isOpen=!1,this.blurEvent=new M.bkB,this.focusEvent=new M.bkB,this.changeEvent=new M.bkB,this.openEvent=new M.bkB,this.closeEvent=new M.bkB,this.searchEvent=new M.bkB,this.clearEvent=new M.bkB,this.addEvent=new M.bkB,this.removeEvent=new M.bkB,this.scroll=new M.bkB,this.scrollToEnd=new M.bkB,this.useDefaultClass=!0,this.viewPortItems=[],this.searchTerm=null,this.dropdownId=dn(),this.escapeHTML=!0,this._items=[],this._defaultLabel="label",this._pressedKeys=[],this._isComposing=!1,this._destroy$=new n.B,this._keyPress$=new n.B,this._onChange=Hi=>{},this._onTouched=()=>{},this.clearItem=Hi=>{const rs=this.selectedItems.find(un=>un.value===Hi);this.unselect(rs)},this.trackByOption=(Hi,rs)=>this.trackByFn?this.trackByFn(rs.value):rs,this._mergeGlobalConfig(It),this.itemsList=new On(this,$t()),this.element=si.nativeElement}get selectedItems(){return this.itemsList.selectedItems}get selectedValues(){return this.selectedItems.map($e=>$e.value)}get hasValue(){return this.selectedItems.length>0}get currentPanelPosition(){if(this.dropdownPanel)return this.dropdownPanel.currentPosition}ngOnInit(){this._handleKeyPresses(),this._setInputAttributes()}ngOnChanges($e){$e.multiple&&this.itemsList.clearSelected(),$e.items&&this._setItems($e.items.currentValue||[]),$e.isOpen&&(this._manualOpen=ti($e.isOpen.currentValue))}ngAfterViewInit(){this._itemsAreUsed||(this.escapeHTML=!1,this._setItemsFromNgOptions()),ti(this.autoFocus)&&this.focus()}ngOnDestroy(){this._destroy$.next(),this._destroy$.complete()}handleKeyDown($e){if(Pn[$e.which]){if(!1===this.keyDownFn($e))return;this.handleKeyCode($e)}else $e.key&&1===$e.key.length&&this._keyPress$.next($e.key.toLocaleLowerCase())}handleKeyCode($e){this.clearButton&&this.clearButton.nativeElement===$e.target?this.handleKeyCodeClear($e):this.handleKeyCodeInput($e)}handleKeyCodeInput($e){switch($e.which){case Pn.ArrowDown:this._handleArrowDown($e);break;case Pn.ArrowUp:this._handleArrowUp($e);break;case Pn.Space:this._handleSpace($e);break;case Pn.Enter:this._handleEnter($e);break;case Pn.Tab:this._handleTab($e);break;case Pn.Esc:this.close(),$e.preventDefault();break;case Pn.Backspace:this._handleBackspace()}}handleKeyCodeClear($e){$e.which===Pn.Enter&&(this.handleClearClick(),$e.preventDefault())}handleMousedown($e){const yt=$e.target;"INPUT"!==yt.tagName&&$e.preventDefault(),yt.classList.contains("ng-clear-wrapper")?this.handleClearClick():yt.classList.contains("ng-arrow-wrapper")?this.handleArrowClick():yt.classList.contains("ng-value-icon")||(this.focused||this.focus(),this.searchable?this.open():this.toggle())}handleArrowClick(){this.isOpen?this.close():this.open()}handleClearClick(){this.hasValue&&(this.itemsList.clearSelected(!0),this._updateNgModel()),this._clearSearch(),this.focus(),this.clearEvent.emit(),this._onSelectionChanged()}clearModel(){this.clearable&&(this.itemsList.clearSelected(),this._updateNgModel())}writeValue($e){this.itemsList.clearSelected(),this._handleWriteValue($e),this._cd.markForCheck()}registerOnChange($e){this._onChange=$e}registerOnTouched($e){this._onTouched=$e}setDisabledState($e){this._disabled=$e,this._cd.markForCheck()}toggle(){this.isOpen?this.close():this.open()}open(){this.disabled||this.isOpen||this._manualOpen||!this._isTypeahead&&!this.addTag&&this.itemsList.noItemsToSelect||(this.isOpen=!0,this.itemsList.markSelectedOrDefault(this.markFirst),this.openEvent.emit(),this.searchTerm||this.focus(),this.detectChanges())}close(){!this.isOpen||this._manualOpen||(this.isOpen=!1,this._isComposing=!1,this._editableSearchTerm?this.itemsList.resetFilteredItems():this._clearSearch(),this.itemsList.unmarkItem(),this._onTouched(),this.closeEvent.emit(),this._cd.markForCheck())}toggleItem($e){!$e||$e.disabled||this.disabled||(this.deselectOnClick&&$e.selected?this.unselect($e):this.select($e),this._editableSearchTerm&&this._setSearchTermFromItems(),this._onSelectionChanged())}select($e){$e.selected||(this.itemsList.select($e),this.clearSearchOnAdd&&!this._editableSearchTerm&&this._clearSearch(),this._updateNgModel(),this.multiple&&this.addEvent.emit($e.value)),(this.closeOnSelect||this.itemsList.noItemsToSelect)&&this.close()}focus(){this.searchInput.nativeElement.focus()}blur(){this.searchInput.nativeElement.blur()}unselect($e){$e&&(this.itemsList.unselect($e),this.focus(),this._updateNgModel(),this.removeEvent.emit($e.value))}selectTag(){let $e;$e=_t(this.addTag)?this.addTag(this.searchTerm):this._primitive?this.searchTerm:{[this.bindLabel]:this.searchTerm};const yt=It=>this._isTypeahead||!this.isOpen?this.itemsList.mapItem(It,null):this.itemsList.addItem(It);!function At(bt){return bt instanceof Promise}($e)?$e&&this.select(yt($e)):$e.then(It=>this.select(yt(It))).catch(()=>{})}showClear(){return this.clearable&&(this.hasValue||this.searchTerm)&&!this.disabled}focusOnClear(){this.blur(),this.clearButton&&this.clearButton.nativeElement.focus()}get showAddTag(){if(!this._validTerm)return!1;const $e=this.searchTerm.toLowerCase().trim();return this.addTag&&!this.itemsList.filteredItems.some(yt=>yt.label.toLowerCase()===$e)&&(!this.hideSelected&&this.isOpen||!this.selectedItems.some(yt=>yt.label.toLowerCase()===$e))&&!this.loading}showNoItemsFound(){const $e=0===this.itemsList.filteredItems.length;return($e&&!this._isTypeahead&&!this.loading||$e&&this._isTypeahead&&this._validTerm&&!this.loading)&&!this.showAddTag}showTypeToSearch(){return 0===this.itemsList.filteredItems.length&&this._isTypeahead&&!this._validTerm&&!this.loading}onCompositionStart(){this._isComposing=!0}onCompositionEnd($e){this._isComposing=!1,!this.searchWhileComposing&&this.filter($e)}filter($e){this._isComposing&&!this.searchWhileComposing||(this.searchTerm=$e,this._isTypeahead&&(this._validTerm||0===this.minTermLength)&&this.typeahead.next($e),this._isTypeahead||(this.itemsList.filter(this.searchTerm),this.isOpen&&this.itemsList.markSelectedOrDefault(this.markFirst)),this.searchEvent.emit({term:$e,items:this.itemsList.filteredItems.map(yt=>yt.value)}),this.open())}onInputFocus($e){this.focused||(this._editableSearchTerm&&this._setSearchTermFromItems(),this.element.classList.add("ng-select-focused"),this.focusEvent.emit($e),this.focused=!0)}onInputBlur($e){this.element.classList.remove("ng-select-focused"),this.blurEvent.emit($e),!this.isOpen&&!this.disabled&&this._onTouched(),this._editableSearchTerm&&this._setSearchTermFromItems(),this.focused=!1}onItemHover($e){$e.disabled||this.itemsList.markItem($e)}detectChanges(){this._cd.destroyed||this._cd.detectChanges()}_setSearchTermFromItems(){const $e=this.selectedItems&&this.selectedItems[0];this.searchTerm=$e&&$e.label||null}_setItems($e){const yt=$e[0];this.bindLabel=this.bindLabel||this._defaultLabel,this._primitive=ti(yt)?!Mt(yt):this._primitive||this.bindLabel===this._defaultLabel,this.itemsList.setItems($e),$e.length>0&&this.hasValue&&this.itemsList.mapSelectedItems(),this.isOpen&&ti(this.searchTerm)&&!this._isTypeahead&&this.itemsList.filter(this.searchTerm),(this._isTypeahead||this.isOpen)&&this.itemsList.markSelectedOrDefault(this.markFirst)}_setItemsFromNgOptions(){const $e=It=>{this.items=It.map($t=>({$ngOptionValue:$t.value,$ngOptionLabel:$t.elementRef.nativeElement.innerHTML,disabled:$t.disabled})),this.itemsList.setItems(this.items),this.hasValue&&this.itemsList.mapSelectedItems(),this.detectChanges()},yt=()=>{const It=(0,l.h)(this.ngOptions.changes,this._destroy$);(0,l.h)(...this.ngOptions.map($t=>$t.stateChange$)).pipe((0,V.Q)(It)).subscribe($t=>{const si=this.itemsList.findItem($t.value);si.disabled=$t.disabled,si.label=$t.label||si.label,this._cd.detectChanges()})};this.ngOptions.changes.pipe((0,pe.Z)(this.ngOptions),(0,V.Q)(this._destroy$)).subscribe(It=>{this.bindLabel=this._defaultLabel,$e(It),yt()})}_isValidWriteValue($e){if(!ti($e)||this.multiple&&""===$e||Array.isArray($e)&&0===$e.length)return!1;const yt=It=>!(!ti(this.compareWith)&&Mt(It)&&this.bindValue&&(this._console.warn(`Setting object(${JSON.stringify(It)}) as your model with bindValue is not allowed unless [compareWith] is used.`),1));return this.multiple?Array.isArray($e)?$e.every(It=>yt(It)):(this._console.warn("Multiple select ngModel should be array."),!1):yt($e)}_handleWriteValue($e){if(!this._isValidWriteValue($e))return;const yt=It=>{let $t=this.itemsList.findItem(It);if($t)this.itemsList.select($t);else{const si=Mt(It);si||!si&&!this.bindValue?this.itemsList.select(this.itemsList.mapItem(It,null)):this.bindValue&&($t={[this.bindLabel]:null,[this.bindValue]:It},this.itemsList.select(this.itemsList.mapItem($t,null)))}};this.multiple?$e.forEach(It=>yt(It)):yt($e)}_handleKeyPresses(){this.searchable||this._keyPress$.pipe((0,V.Q)(this._destroy$),(0,J.M)($e=>this._pressedKeys.push($e)),(0,te.B)(200),(0,$.p)(()=>this._pressedKeys.length>0),(0,A.T)(()=>this._pressedKeys.join(""))).subscribe($e=>{const yt=this.itemsList.findByLabel($e);yt&&(this.isOpen?(this.itemsList.markItem(yt),this._scrollToMarked(),this._cd.markForCheck()):this.select(yt)),this._pressedKeys=[]})}_setInputAttributes(){const $e=this.searchInput.nativeElement,yt={type:"text",autocorrect:"off",autocapitalize:"off",autocomplete:this.labelForId?"off":this.dropdownId,...this.inputAttrs};for(const It of Object.keys(yt))$e.setAttribute(It,yt[It])}_updateNgModel(){const $e=[];for(const It of this.selectedItems)if(this.bindValue){let $t=null;$t=It.children?It.value[(this.groupValue?this.bindValue:this.groupBy)||this.groupBy]:this.itemsList.resolveNested(It.value,this.bindValue),$e.push($t)}else $e.push(It.value);const yt=this.selectedItems.map(It=>It.value);this.multiple?(this._onChange($e),this.changeEvent.emit(yt)):(this._onChange(ti($e[0])?$e[0]:null),this.changeEvent.emit(yt[0])),this._cd.markForCheck()}_clearSearch(){this.searchTerm&&(this._changeSearch(null),this.itemsList.resetFilteredItems())}_changeSearch($e){this.searchTerm=$e,this._isTypeahead&&this.typeahead.next($e)}_scrollToMarked(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollTo(this.itemsList.markedItem)}_scrollToTag(){!this.isOpen||!this.dropdownPanel||this.dropdownPanel.scrollToTag()}_onSelectionChanged(){this.isOpen&&this.deselectOnClick&&this.appendTo&&(this._cd.detectChanges(),this.dropdownPanel.adjustPosition())}_handleTab($e){if(!1===this.isOpen)if(this.showClear())this.focusOnClear(),$e.preventDefault();else if(!this.addTag)return;this.selectOnTab?this.itemsList.markedItem?(this.toggleItem(this.itemsList.markedItem),$e.preventDefault()):this.showAddTag?(this.selectTag(),$e.preventDefault()):this.close():this.close()}_handleEnter($e){if(this.isOpen||this._manualOpen)this.itemsList.markedItem?this.toggleItem(this.itemsList.markedItem):this.showAddTag&&this.selectTag();else{if(!this.openOnEnter)return;this.open()}$e.preventDefault()}_handleSpace($e){this.isOpen||this._manualOpen||(this.open(),$e.preventDefault())}_handleArrowDown($e){this._nextItemIsTag(1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markNextItem(),this._scrollToMarked()),this.open(),$e.preventDefault()}_handleArrowUp($e){this.isOpen&&(this._nextItemIsTag(-1)?(this.itemsList.unmarkItem(),this._scrollToTag()):(this.itemsList.markPreviousItem(),this._scrollToMarked()),$e.preventDefault())}_nextItemIsTag($e){const yt=this.itemsList.markedIndex+$e;return this.addTag&&this.searchTerm&&this.itemsList.markedItem&&(yt<0||yt===this.itemsList.filteredItems.length)}_handleBackspace(){this.searchTerm||!this.clearable||!this.clearOnBackspace||!this.hasValue||(this.multiple?this.unselect(this.itemsList.lastSelectedItem):this.clearModel())}get _isTypeahead(){return this.typeahead&&this.typeahead.observers.length>0}get _validTerm(){const $e=this.searchTerm&&this.searchTerm.trim();return $e&&$e.length>=this.minTermLength}_mergeGlobalConfig($e){this.placeholder=this.placeholder||$e.placeholder,this.notFoundText=this.notFoundText||$e.notFoundText,this.typeToSearchText=this.typeToSearchText||$e.typeToSearchText,this.addTagText=this.addTagText||$e.addTagText,this.loadingText=this.loadingText||$e.loadingText,this.clearAllText=this.clearAllText||$e.clearAllText,this.virtualScroll=ti(this.virtualScroll)?this.virtualScroll:!!ti($e.disableVirtualScroll)&&!$e.disableVirtualScroll,this.openOnEnter=ti(this.openOnEnter)?this.openOnEnter:$e.openOnEnter,this.appendTo=this.appendTo||$e.appendTo,this.bindValue=this.bindValue||$e.bindValue,this.bindLabel=this.bindLabel||$e.bindLabel,this.appearance=this.appearance||$e.appearance}static#e=this.\u0275fac=function(yt){return new(yt||bt)(M.kS0("class"),M.kS0("autofocus"),M.rXU(jr),M.rXU(qr),M.rXU(M.aKT),M.rXU(M.gRc),M.rXU(fo))};static#t=this.\u0275cmp=M.VBU({type:bt,selectors:[["ng-select"]],contentQueries:function(yt,It,$t){if(1&yt&&(M.wni($t,Jt,5,M.C4Q),M.wni($t,ui,5,M.C4Q),M.wni($t,Fi,5,M.C4Q),M.wni($t,mi,5,M.C4Q),M.wni($t,vi,5,M.C4Q),M.wni($t,Gi,5,M.C4Q),M.wni($t,_s,5,M.C4Q),M.wni($t,Fn,5,M.C4Q),M.wni($t,ls,5,M.C4Q),M.wni($t,fs,5,M.C4Q),M.wni($t,zn,5,M.C4Q),M.wni($t,kn,5)),2&yt){let si;M.mGM(si=M.lsd())&&(It.optionTemplate=si.first),M.mGM(si=M.lsd())&&(It.optgroupTemplate=si.first),M.mGM(si=M.lsd())&&(It.labelTemplate=si.first),M.mGM(si=M.lsd())&&(It.multiLabelTemplate=si.first),M.mGM(si=M.lsd())&&(It.headerTemplate=si.first),M.mGM(si=M.lsd())&&(It.footerTemplate=si.first),M.mGM(si=M.lsd())&&(It.notFoundTemplate=si.first),M.mGM(si=M.lsd())&&(It.typeToSearchTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingTextTemplate=si.first),M.mGM(si=M.lsd())&&(It.tagTemplate=si.first),M.mGM(si=M.lsd())&&(It.loadingSpinnerTemplate=si.first),M.mGM(si=M.lsd())&&(It.ngOptions=si)}},viewQuery:function(yt,It){if(1&yt&&(M.GBs(ws,5),M.GBs(U,7),M.GBs(se,5)),2&yt){let $t;M.mGM($t=M.lsd())&&(It.dropdownPanel=$t.first),M.mGM($t=M.lsd())&&(It.searchInput=$t.first),M.mGM($t=M.lsd())&&(It.clearButton=$t.first)}},hostVars:20,hostBindings:function(yt,It){1&yt&&M.bIt("keydown",function(si){return It.handleKeyDown(si)}),2&yt&&M.AVh("ng-select-typeahead",It.typeahead)("ng-select-multiple",It.multiple)("ng-select-taggable",It.addTag)("ng-select-searchable",It.searchable)("ng-select-clearable",It.clearable)("ng-select-opened",It.isOpen)("ng-select",It.useDefaultClass)("ng-select-disabled",It.disabled)("ng-select-filtered",It.filtered)("ng-select-single",It.single)},inputs:{bindLabel:"bindLabel",bindValue:"bindValue",markFirst:"markFirst",placeholder:"placeholder",notFoundText:"notFoundText",typeToSearchText:"typeToSearchText",addTagText:"addTagText",loadingText:"loadingText",clearAllText:"clearAllText",appearance:"appearance",dropdownPosition:"dropdownPosition",appendTo:"appendTo",loading:"loading",closeOnSelect:"closeOnSelect",hideSelected:"hideSelected",selectOnTab:"selectOnTab",openOnEnter:"openOnEnter",maxSelectedItems:"maxSelectedItems",groupBy:"groupBy",groupValue:"groupValue",bufferAmount:"bufferAmount",virtualScroll:"virtualScroll",selectableGroup:"selectableGroup",selectableGroupAsModel:"selectableGroupAsModel",searchFn:"searchFn",trackByFn:"trackByFn",clearOnBackspace:"clearOnBackspace",labelForId:"labelForId",inputAttrs:"inputAttrs",tabIndex:"tabIndex",readonly:"readonly",searchWhileComposing:"searchWhileComposing",minTermLength:"minTermLength",editableSearchTerm:"editableSearchTerm",keyDownFn:"keyDownFn",typeahead:"typeahead",multiple:"multiple",addTag:"addTag",searchable:"searchable",clearable:"clearable",isOpen:"isOpen",items:"items",compareWith:"compareWith",clearSearchOnAdd:"clearSearchOnAdd",deselectOnClick:"deselectOnClick"},outputs:{blurEvent:"blur",focusEvent:"focus",changeEvent:"change",openEvent:"open",closeEvent:"close",searchEvent:"search",clearEvent:"clear",addEvent:"add",removeEvent:"remove",scroll:"scroll",scrollToEnd:"scrollToEnd"},features:[M.Jv_([{provide:e.kq,useExisting:(0,M.Rfq)(()=>bt),multi:!0},As]),M.OA$],decls:14,vars:19,consts:[["searchInput",""],["defaultLabelTemplate",""],["defaultLoadingSpinnerTemplate",""],["clearButton",""],["defaultOptionTemplate",""],["defaultTagTemplate",""],["defaultNotFoundTemplate",""],["defaultTypeToSearchTemplate",""],["defaultLoadingTextTemplate",""],[1,"ng-select-container",3,"mousedown"],[1,"ng-value-container"],[1,"ng-placeholder"],[4,"ngIf"],["role","combobox","aria-haspopup","listbox",1,"ng-input"],["aria-autocomplete","list",3,"input","compositionstart","compositionend","focus","blur","change","readOnly","disabled","value"],["class","ng-clear-wrapper","tabindex","0",3,"title",4,"ngIf"],[1,"ng-arrow-wrapper"],[1,"ng-arrow"],["class","ng-dropdown-panel","role","listbox","aria-label","Options list",3,"virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ng-select-multiple","ngClass","id","update","scroll","scrollToEnd","outsideClick",4,"ngIf"],["class","ng-value",3,"ng-value-disabled",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ng-value"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["aria-hidden","true",1,"ng-value-icon","left",3,"click"],[1,"ng-value-label",3,"ngItemLabel","escape"],[3,"ngTemplateOutlet"],[1,"ng-spinner-loader"],["tabindex","0",1,"ng-clear-wrapper",3,"title"],["aria-hidden","true",1,"ng-clear"],["role","listbox","aria-label","Options list",1,"ng-dropdown-panel",3,"update","scroll","scrollToEnd","outsideClick","virtualScroll","bufferAmount","appendTo","position","headerTemplate","footerTemplate","filterValue","items","markedItem","ngClass","id"],["class","ng-option",3,"ng-option-disabled","ng-option-selected","ng-optgroup","ng-option","ng-option-child","ng-option-marked","click","mouseover",4,"ngFor","ngForOf","ngForTrackBy"],["class","ng-option","role","option",3,"ng-option-marked","mouseover","click",4,"ngIf"],[1,"ng-option",3,"click","mouseover"],[1,"ng-option-label",3,"ngItemLabel","escape"],["role","option",1,"ng-option",3,"mouseover","click"],[1,"ng-tag-label"],[1,"ng-option","ng-option-disabled"]],template:function(yt,It){if(1&yt){const $t=M.RV6();M.j41(0,"div",9),M.bIt("mousedown",function(Ti){return M.eBV($t),M.Njj(It.handleMousedown(Ti))}),M.j41(1,"div",10)(2,"div",11),M.EFF(3),M.k0s(),M.DNE(4,K,2,2,"ng-container",12)(5,he,1,5,null,12),M.j41(6,"div",13)(7,"input",14,0),M.bIt("input",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.filter(Ti.value))})("compositionstart",function(){return M.eBV($t),M.Njj(It.onCompositionStart())})("compositionend",function(){M.eBV($t);const Ti=M.sdS(8);return M.Njj(It.onCompositionEnd(Ti.value))})("focus",function(Ti){return M.eBV($t),M.Njj(It.onInputFocus(Ti))})("blur",function(Ti){return M.eBV($t),M.Njj(It.onInputBlur(Ti))})("change",function(Ti){return M.eBV($t),M.Njj(Ti.stopPropagation())}),M.k0s()()(),M.DNE(9,Se,4,1,"ng-container",12)(10,Oe,4,1,"span",15),M.j41(11,"span",16),M.nrm(12,"span",17),M.k0s()(),M.DNE(13,kt,7,19,"ng-dropdown-panel",18)}2&yt&&(M.AVh("ng-appearance-outline","outline"===It.appearance)("ng-has-value",It.hasValue),M.R7$(3),M.JRh(It.placeholder),M.R7$(),M.Y8G("ngIf",(!It.multiLabelTemplate||!It.multiple)&&It.selectedItems.length>0),M.R7$(),M.Y8G("ngIf",It.multiple&&It.multiLabelTemplate&&It.selectedValues.length>0),M.R7$(),M.BMQ("aria-expanded",It.isOpen)("aria-owns",It.isOpen?It.dropdownId:null),M.R7$(),M.Y8G("readOnly",!It.searchable||It.itemsList.maxItemsSelected)("disabled",It.disabled)("value",It.searchTerm?It.searchTerm:""),M.BMQ("id",It.labelForId)("tabindex",It.tabIndex)("aria-activedescendant",It.isOpen?null==It.itemsList||null==It.itemsList.markedItem?null:It.itemsList.markedItem.htmlId:null)("aria-controls",It.isOpen?It.dropdownId:null),M.R7$(2),M.Y8G("ngIf",It.loading),M.R7$(),M.Y8G("ngIf",It.showClear()),M.R7$(3),M.Y8G("ngIf",It.isOpen))},dependencies:[d.YU,d.Sq,d.bT,d.T3,ws,wt],styles:['@charset "UTF-8";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:"\\200b"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\n'],encapsulation:2,changeDetection:0})}return bt})();function St(){return new Rt}class Rt{constructor(){this._selected=[]}get value(){return this._selected}select(xt,$e,yt){if(xt.selected=!0,(!xt.children||!$e&&yt)&&this._selected.push(xt),$e)if(xt.parent){const It=xt.parent.children.length,$t=xt.parent.children.filter(si=>si.selected).length;xt.parent.selected=It===$t}else xt.children&&(this._setChildrenSelectedState(xt.children,!0),this._removeChildren(xt),this._selected=yt&&this._activeChildren(xt)?[...this._selected.filter(It=>It.parent!==xt),xt]:[...this._selected,...xt.children.filter(It=>!It.disabled)])}unselect(xt,$e){if(this._selected=this._selected.filter(yt=>yt!==xt),xt.selected=!1,$e)if(xt.parent&&xt.parent.selected){const yt=xt.parent.children;this._removeParent(xt.parent),this._removeChildren(xt.parent),this._selected.push(...yt.filter(It=>It!==xt&&!It.disabled)),xt.parent.selected=!1}else xt.children&&(this._setChildrenSelectedState(xt.children,!1),this._removeChildren(xt))}clear(xt){this._selected=xt?this._selected.filter($e=>$e.disabled):[]}_setChildrenSelectedState(xt,$e){for(const yt of xt)yt.disabled||(yt.selected=$e)}_removeChildren(xt){this._selected=[...this._selected.filter($e=>$e.parent!==xt),...xt.children.filter($e=>$e.parent===xt&&$e.disabled&&$e.selected)]}_removeParent(xt){this._selected=this._selected.filter($e=>$e!==xt)}_activeChildren(xt){return xt.children.every($e=>!$e.disabled||$e.selected)}}let Nt=(()=>{class bt{static#e=this.\u0275fac=function(yt){return new(yt||bt)};static#t=this.\u0275mod=M.$C({type:bt});static#i=this.\u0275inj=M.G2t({providers:[{provide:qr,useValue:St}],imports:[d.MD]})}return bt})()},19664:(ri,Ft,He)=>{"use strict";He.d(Ft,{Mm:()=>l,h:()=>C,D9:()=>d,c$:()=>r});var M=He(54438),e=He(7673),V=He(74402),Pe=He(27468),Z=He(28793),ie=He(59030),re=He(96697),ve=He(21413),le=He(86129);class fe extends ve.B{constructor(p=1/0,S=1/0,j=le.U){super(),this._bufferSize=p,this._windowTime=S,this._timestampProvider=j,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=S===1/0,this._bufferSize=Math.max(1,p),this._windowTime=Math.max(1,S)}next(p){const{isStopped:S,_buffer:j,_infiniteTimeWindow:H,_timestampProvider:Y,_windowTime:U}=this;S||(j.push(p),!H&&j.push(Y.now()+U)),this._trimBuffer(),super.next(p)}_subscribe(p){this._throwIfClosed(),this._trimBuffer();const S=this._innerSubscribe(p),{_infiniteTimeWindow:j,_buffer:H}=this,Y=H.slice();for(let U=0;Unew fe(j,p,S),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:H})}var te=He(96354),$=He(70274),A=He(25558);class B{}let F=(()=>{class k extends B{getTranslation(S){return(0,e.of)({})}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class L{}let D=(()=>{class k{handle(S){return S.key}static \u0275fac=function(j){return new(j||k)};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();function I(k,p){if(k===p)return!0;if(null===k||null===p)return!1;if(k!=k&&p!=p)return!0;let H,Y,U,S=typeof k;if(S==typeof p&&"object"==S){if(!Array.isArray(k)){if(Array.isArray(p))return!1;for(Y in U=Object.create(null),k){if(!I(k[Y],p[Y]))return!1;U[Y]=!0}for(Y in p)if(!(Y in U)&&typeof p[Y]<"u")return!1;return!0}if(!Array.isArray(p))return!1;if((H=k.length)==p.length){for(Y=0;Y{_(p[j])?j in k?S[j]=b(k[j],p[j]):Object.assign(S,{[j]:p[j]}):Object.assign(S,{[j]:p[j]})}),S}class T{}let z=(()=>{class k extends T{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(S,j){let H;return H="string"==typeof S?this.interpolateString(S,j):"function"==typeof S?this.interpolateFunction(S,j):S,H}getValue(S,j){let H="string"==typeof j?j.split("."):[j];j="";do{j+=H.shift(),!E(S)||!E(S[j])||"object"!=typeof S[j]&&H.length?H.length?j+=".":S=void 0:(S=S[j],j="")}while(H.length);return S}interpolateFunction(S,j){return S(j)}interpolateString(S,j){return j?S.replace(this.templateMatcher,(H,Y)=>{let U=this.getValue(j,Y);return E(U)?U:H}):S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class O{}let f=(()=>{class k extends O{compile(S,j){return S}compileTranslations(S,j){return S}static \u0275fac=(()=>{let S;return function(H){return(S||(S=M.xGo(k)))(H||k)}})();static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})();class a{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new M.bkB;onLangChange=new M.bkB;onDefaultLangChange=new M.bkB}const g=new M.nKC("USE_STORE"),y=new M.nKC("USE_DEFAULT_LANG"),o=new M.nKC("DEFAULT_LANGUAGE"),n=new M.nKC("USE_EXTEND");let r=(()=>{class k{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new M.bkB;_onLangChange=new M.bkB;_onDefaultLangChange=new M.bkB;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(S){this.isolate?this._defaultLang=S:this.store.defaultLang=S}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(S){this.isolate?this._currentLang=S:this.store.currentLang=S}get langs(){return this.isolate?this._langs:this.store.langs}set langs(S){this.isolate?this._langs=S:this.store.langs=S}get translations(){return this.isolate?this._translations:this.store.translations}set translations(S){this.isolate?this._translations=S:this.store.translations=S}constructor(S,j,H,Y,U,se=!0,w=!1,X=!1,G){this.store=S,this.currentLoader=j,this.compiler=H,this.parser=Y,this.missingTranslationHandler=U,this.useDefaultLang=se,this.isolate=w,this.extend=X,G&&this.setDefaultLang(G)}setDefaultLang(S){if(S===this.defaultLang)return;let j=this.retrieveTranslations(S);typeof j<"u"?(null==this.defaultLang&&(this.defaultLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeDefaultLang(S)})):this.changeDefaultLang(S)}getDefaultLang(){return this.defaultLang}use(S){if(S===this.currentLang)return(0,e.of)(this.translations[S]);let j=this.retrieveTranslations(S);return typeof j<"u"?(this.currentLang||(this.currentLang=S),j.pipe((0,re.s)(1)).subscribe(H=>{this.changeLang(S)}),j):(this.changeLang(S),(0,e.of)(this.translations[S]))}retrieveTranslations(S){let j;return(typeof this.translations[S]>"u"||this.extend)&&(this._translationRequests[S]=this._translationRequests[S]||this.getTranslation(S),j=this._translationRequests[S]),j}getTranslation(S){this.pending=!0;const j=this.currentLoader.getTranslation(S).pipe(J(1),(0,re.s)(1));return this.loadingTranslations=j.pipe((0,te.T)(H=>this.compiler.compileTranslations(H,S)),J(1),(0,re.s)(1)),this.loadingTranslations.subscribe({next:H=>{this.translations[S]=this.extend&&this.translations[S]?{...H,...this.translations[S]}:H,this.updateLangs(),this.pending=!1},error:H=>{this.pending=!1}}),j}setTranslation(S,j,H=!1){j=this.compiler.compileTranslations(j,S),this.translations[S]=(H||this.extend)&&this.translations[S]?b(this.translations[S],j):j,this.updateLangs(),this.onTranslationChange.emit({lang:S,translations:this.translations[S]})}getLangs(){return this.langs}addLangs(S){S.forEach(j=>{-1===this.langs.indexOf(j)&&this.langs.push(j)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(S,j,H){let Y;if(j instanceof Array){let U={},se=!1;for(let w of j)U[w]=this.getParsedResult(S,w,H),(0,V.A)(U[w])&&(se=!0);if(se){const w=j.map(X=>(0,V.A)(U[X])?U[X]:(0,e.of)(U[X]));return(0,Pe.p)(w).pipe((0,te.T)(X=>{let G={};return X.forEach((x,N)=>{G[j[N]]=x}),G}))}return U}if(S&&(Y=this.parser.interpolate(this.parser.getValue(S,j),H)),typeof Y>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(Y=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],j),H)),typeof Y>"u"){let U={key:j,translateService:this};typeof H<"u"&&(U.interpolateParams=H),Y=this.missingTranslationHandler.handle(U)}return typeof Y<"u"?Y:j}get(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe((0,$.H)(H=>(H=this.getParsedResult(H,S,j),(0,V.A)(H)?H:(0,e.of)(H))));{let H=this.getParsedResult(this.translations[this.currentLang],S,j);return(0,V.A)(H)?H:(0,e.of)(H)}}getStreamOnTranslationChange(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onTranslationChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return"function"==typeof Y.subscribe?Y:(0,e.of)(Y)})))}stream(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');return(0,Z.x)((0,ie.v)(()=>this.get(S,j)),this.onLangChange.pipe((0,A.n)(H=>{const Y=this.getParsedResult(H.translations,S,j);return(0,V.A)(Y)?Y:(0,e.of)(Y)})))}instant(S,j){if(!E(S)||!S.length)throw new Error('Parameter "key" required');let H=this.getParsedResult(this.translations[this.currentLang],S,j);if((0,V.A)(H)){if(S instanceof Array){let Y={};return S.forEach((U,se)=>{Y[S[se]]=S[se]}),Y}return S}return H}set(S,j,H=this.currentLang){this.translations[H][S]=this.compiler.compile(j,H),this.updateLangs(),this.onTranslationChange.emit({lang:H,translations:this.translations[H]})}changeLang(S){this.currentLang=S,this.onLangChange.emit({lang:S,translations:this.translations[S]}),null==this.defaultLang&&this.changeDefaultLang(S)}changeDefaultLang(S){this.defaultLang=S,this.onDefaultLangChange.emit({lang:S,translations:this.translations[S]})}reloadLang(S){return this.resetLang(S),this.getTranslation(S)}resetLang(S){this._translationRequests[S]=void 0,this.translations[S]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof S>"u"?void 0:(-1!==S.indexOf("-")&&(S=S.split("-")[0]),-1!==S.indexOf("_")&&(S=S.split("_")[0]),S)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let S=window.navigator.languages?window.navigator.languages[0]:null;return S=S||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,S}static \u0275fac=function(j){return new(j||k)(M.KVO(a),M.KVO(B),M.KVO(O),M.KVO(T),M.KVO(L),M.KVO(y),M.KVO(g),M.KVO(n),M.KVO(o))};static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),l=(()=>{class k{translateService;element;_ref;key;lastParams;currentParams;onLangChangeSub;onDefaultLangChangeSub;onTranslationChangeSub;set translate(S){S&&(this.key=S,this.checkNodes())}set translateParams(S){I(this.currentParams,S)||(this.currentParams=S,this.checkNodes(!0))}constructor(S,j,H){this.translateService=S,this.element=j,this._ref=H,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe(Y=>{Y.lang===this.translateService.currentLang&&this.checkNodes(!0,Y.translations)})),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe(Y=>{this.checkNodes(!0,Y.translations)})),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe(Y=>{this.checkNodes(!0)}))}ngAfterViewChecked(){this.checkNodes()}checkNodes(S=!1,j){let H=this.element.nativeElement.childNodes;H.length||(this.setContent(this.element.nativeElement,this.key),H=this.element.nativeElement.childNodes);for(let Y=0;Y{U!==S&&(j.lastKey=S),j.originalContent||(j.originalContent=this.getContent(j)),j.currentValue=E(U)?U:j.originalContent||S,this.setContent(j,this.key?j.currentValue:j.originalContent.replace(S,j.currentValue)),this._ref.markForCheck()};if(E(H)){let U=this.translateService.getParsedResult(H,S,this.currentParams);(0,V.A)(U)?U.subscribe({next:Y}):Y(U)}else this.translateService.get(S,this.currentParams).subscribe(Y)}}getContent(S){return E(S.textContent)?S.textContent:S.data}setContent(S,j){E(S.textContent)?S.textContent=j:S.data=j}ngOnDestroy(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe()}static \u0275fac=function(j){return new(j||k)(M.rXU(r),M.rXU(M.aKT),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:k,selectors:[["","translate",""],["","ngx-translate",""]],inputs:{translate:"translate",translateParams:"translateParams"}})}return k})(),d=(()=>{class k{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(S,j){this.translate=S,this._ref=j}updateValue(S,j,H){let Y=U=>{this.value=void 0!==U?U:S,this.lastKey=S,this._ref.markForCheck()};if(H){let U=this.translate.getParsedResult(H,S,j);(0,V.A)(U.subscribe)?U.subscribe(Y):Y(U)}this.translate.get(S,j).subscribe(Y)}transform(S,...j){if(!S||!S.length)return S;if(I(S,this.lastKey)&&I(j,this.lastParams))return this.value;let H;if(E(j[0])&&j.length)if("string"==typeof j[0]&&j[0].length){let Y=j[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{H=JSON.parse(Y)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${j[0]}`)}}else"object"==typeof j[0]&&!Array.isArray(j[0])&&(H=j[0]);return this.lastKey=S,this.lastParams=j,this.updateValue(S,H),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(Y=>{this.lastKey&&Y.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(Y=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H,Y.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(S,H))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(j){return new(j||k)(M.rXU(r,16),M.rXU(M.gRc,16))};static \u0275pipe=M.EJ8({name:"translate",type:k,pure:!1});static \u0275prov=M.jDH({token:k,factory:k.\u0275fac})}return k})(),C=(()=>{class k{static forRoot(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},a,{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static forChild(S={}){return{ngModule:k,providers:[S.loader||{provide:B,useClass:F},S.compiler||{provide:O,useClass:f},S.parser||{provide:T,useClass:z},S.missingTranslationHandler||{provide:L,useClass:D},{provide:g,useValue:S.isolate},{provide:y,useValue:S.useDefaultLang},{provide:n,useValue:S.extend},{provide:o,useValue:S.defaultLanguage},r]}}static \u0275fac=function(j){return new(j||k)};static \u0275mod=M.$C({type:k});static \u0275inj=M.G2t({})}return k})()},91346:(ri,Ft,He)=>{"use strict";He.d(Ft,{t1:()=>J,S6:()=>B,Fr:()=>D,SV:()=>F});var M=He(21264),e=He.t(M,2),V=He(21413);class Pe extends V.B{constructor(){super(...arguments),this._value=null,this._hasValue=!1,this._isComplete=!1}_checkFinalizedStatuses(E){const{hasError:_,_hasValue:b,_value:T,thrownError:z,isStopped:O,_isComplete:f}=this;_?E.error(z):(O||f)&&(b&&E.next(T),E.complete())}next(E){this.isStopped||(this._value=E,this._hasValue=!0)}complete(){const{_hasValue:E,_value:_,_isComplete:b}=this;b||(this._isComplete=!0,E&&super.next(_),super.complete())}}var Z=He(54438),ie=He(12146),re=He.t(ie,2),ve=He(84191),le=He.t(ve,2),fe=He(31923),pe=He.t(fe,2);class J{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}addPoint(E,_=0,b=!0,T=!1){this.ref$.subscribe(z=>{z.series.length>_&&z.series[_].addPoint(E,b,T)})}addSeries(E,_=!0,b){this.ref$.subscribe(T=>{T.addSeries(E,_,b)})}removePoint(E,_=0){this.ref$.subscribe(b=>{b.series.length>_&&b.series[_].data.length>E&&b.series[_].removePoint(E,!0)})}removeSeries(E){this.ref$.subscribe(_=>{_.series.length>E&&_.series[E].remove(!0)})}init(E){this.ref||M.chart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class te{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ie.mapChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class ${constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||ve.stockChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}class A{constructor(E={series:[]}){this.options=E,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable()}init(E){this.ref||fe.ganttChart(E.nativeElement,this.options,_=>{this.ref||(this.refSubject.next(_),this.ref=_,this.refSubject.complete())})}destroy(){this.ref&&(this.options=this.ref.options,this.ref.destroy(),this.ref=void 0,this.refSubject=new Pe,this.ref$=this.refSubject.asObservable())}}let B=(()=>{class I{constructor(_){this.el=_}ngOnChanges(_){_.chart?.isFirstChange()||(this.destroy(),this.init())}ngOnInit(){this.init()}ngOnDestroy(){this.destroy()}init(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.init(this.el)}destroy(){(this.chart instanceof J||this.chart instanceof $||this.chart instanceof te||this.chart instanceof A)&&this.chart.destroy()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.rXU(Z.aKT))};static#t=this.\u0275dir=Z.FsC({type:I,selectors:[["","chart",""]],inputs:{chart:"chart"},features:[Z.OA$]})}return I})(),F=new Z.nKC("HighchartsModules"),L=(()=>{class I{constructor(_){this.chartModules=_}initModules(){this.chartModules.forEach(_=>{[e,le,re,pe].forEach(_)})}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(F))};static#t=this.\u0275prov=Z.jDH({token:I,factory:I.\u0275fac})}return I})(),D=(()=>{class I{constructor(_){this.cs=_,this.cs.initModules()}static#e=this.\u0275fac=function(b){return new(b||I)(Z.KVO(L))};static#t=this.\u0275mod=Z.$C({type:I});static#i=this.\u0275inj=Z.G2t({providers:[{provide:F,useValue:[]},L]})}return I})()},37542:(ri,Ft,He)=>{"use strict";He.d(Ft,{HU:()=>pe,JV:()=>F,MH:()=>re,PI:()=>te,kA:()=>o,mP:()=>Fe});var M=He(54438),e=He(60177);function re(de,ye){const Te=ye?function ie(de){return"string"==typeof de?()=>{throw new Error(de)}:de}(ye):()=>{};let _e=!1;return(...Me)=>_e?Te(...Me):(_e=!0,de(...Me))}function ve(de,ye){if(null==de)throw new Error("Unexpected "+de+" value: "+ye);return de}He(345),He(33726),He(57786);const pe=new M.nKC("MATOMO_ROUTER_ENABLED",{factory:()=>!1}),J=new M.nKC("MATOMO_CONFIGURATION"),te=new M.nKC("INTERNAL_MATOMO_CONFIGURATION",{factory:()=>({disabled:!1,enableLinkTracking:!0,trackAppInitialLoad:!(0,M.WQX)(pe),requireConsent:F.NONE,enableJSErrorTracking:!1,runOutsideAngularZone:!1,...ve((0,M.WQX)(J,{optional:!0}),"No Matomo configuration found! Have you included Matomo module using NgxMatomoTrackerModule.forRoot() ?")})}),$=new M.nKC("DEFERRED_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>{const de=(0,M.WQX)(te);let ye;return{configuration:new Promise(_e=>ye=_e),markReady(_e){ve(ye,"resolveFn")({...de,..._e})}}}});new M.nKC("ASYNC_INTERNAL_MATOMO_CONFIGURATION",{factory:()=>(0,M.WQX)($).configuration});var B=function(de){return de[de.AUTO=0]="AUTO",de[de.MANUAL=1]="MANUAL",de[de.AUTO_DEFERRED=2]="AUTO_DEFERRED",de}(B||{}),F=function(de){return de[de.NONE=0]="NONE",de[de.COOKIE=1]="COOKIE",de[de.TRACKING=2]="TRACKING",de}(F||{});function D(de){return null!=de.siteId&&null!=de.trackerUrl}function _(de){return Array.isArray(de.trackers)}function T(){window._paq=window._paq||[]}function f(de){const ye=[...de];for(;ye.length>0&&void 0===ye[ye.length-1];)ye.pop();return ye}let o=(()=>{class de{trackPageView(Te){this.push(["trackPageView",Te])}trackEvent(Te,_e,Me,Ee){this.push(["trackEvent",Te,_e,Me,Ee])}trackSiteSearch(Te,_e,Me){this.push(["trackSiteSearch",Te,_e,Me])}trackGoal(Te,_e){this.push(["trackGoal",Te,_e])}trackLink(Te,_e){this.push(["trackLink",Te,_e])}trackAllContentImpressions(){this.push(["trackAllContentImpressions"])}trackVisibleContentImpressions(Te,_e){this.push(["trackVisibleContentImpressions",Te,_e])}trackContentImpressionsWithinNode(Te){this.push(["trackContentImpressionsWithinNode",Te])}trackContentInteractionNode(Te,_e){this.push(["trackContentInteractionNode",Te,_e])}trackContentImpression(Te,_e,Me){this.push(["trackContentImpression",Te,_e,Me])}trackContentInteraction(Te,_e,Me,Ee){this.push(["trackContentInteraction",Te,_e,Me,Ee])}logAllContentBlocksOnPage(){this.push(["logAllContentBlocksOnPage"])}ping(){this.push(["ping"])}enableHeartBeatTimer(Te){this.push(["enableHeartBeatTimer",Te])}enableLinkTracking(Te=!1){this.push(["enableLinkTracking",Te])}disablePerformanceTracking(){this.push(["disablePerformanceTracking"])}enableCrossDomainLinking(){this.push(["enableCrossDomainLinking"])}setCrossDomainLinkingTimeout(Te){this.push(["setCrossDomainLinkingTimeout",Te])}getCrossDomainLinkingUrlParameter(){return this.get("getCrossDomainLinkingUrlParameter")}setDocumentTitle(Te){this.push(["setDocumentTitle",Te])}setDomains(Te){this.push(["setDomains",Te])}setCustomUrl(Te){this.push(["setCustomUrl",Te])}setReferrerUrl(Te){this.push(["setReferrerUrl",Te])}setSiteId(Te){this.push(["setSiteId",Te])}setApiUrl(Te){this.push(["setApiUrl",Te])}setTrackerUrl(Te){this.push(["setTrackerUrl",Te])}addTracker(Te,_e){this.push(["addTracker",Te,_e])}getMatomoUrl(){return this.get("getMatomoUrl")}getPiwikUrl(){return this.get("getPiwikUrl")}getCurrentUrl(){return this.get("getCurrentUrl")}setDownloadClasses(Te){this.push(["setDownloadClasses",Te])}setDownloadExtensions(Te){this.push(["setDownloadExtensions",Te])}addDownloadExtensions(Te){this.push(["addDownloadExtensions",Te])}removeDownloadExtensions(Te){this.push(["removeDownloadExtensions",Te])}setIgnoreClasses(Te){this.push(["setIgnoreClasses",Te])}setLinkClasses(Te){this.push(["setLinkClasses",Te])}setLinkTrackingTimer(Te){this.push(["setLinkTrackingTimer",Te])}getLinkTrackingTimer(){return this.get("getLinkTrackingTimer")}discardHashTag(Te){this.push(["discardHashTag",Te])}setGenerationTimeMs(Te){this.push(["setGenerationTimeMs",Te])}setPagePerformanceTiming(Te,_e,Me,Ee,Xe,Ze){let lt;"object"==typeof Te&&Te?(lt=Te.networkTimeInMs,_e=Te.serverTimeInMs,Me=Te.transferTimeInMs,Ee=Te.domProcessingTimeInMs,Xe=Te.domCompletionTimeInMs,Ze=Te.onloadTimeInMs):lt=Te,this.push(["setPagePerformanceTiming",lt,_e,Me,Ee,Xe,Ze])}getCustomPagePerformanceTiming(){return this.get("getCustomPagePerformanceTiming")}appendToTrackingUrl(Te){this.push(["appendToTrackingUrl",Te])}setDoNotTrack(Te){this.push(["setDoNotTrack",Te])}killFrame(){this.push(["killFrame"])}redirectFile(Te){this.push(["redirectFile",Te])}setHeartBeatTimer(Te,_e){this.push(["setHeartBeatTimer",Te,_e])}getVisitorId(){return this.get("getVisitorId")}setVisitorId(Te){this.push(["setVisitorId",Te])}getVisitorInfo(){return this.get("getVisitorInfo")}getAttributionInfo(){return this.get("getAttributionInfo")}getAttributionCampaignName(){return this.get("getAttributionCampaignName")}getAttributionCampaignKeyword(){return this.get("getAttributionCampaignKeyword")}getAttributionReferrerTimestamp(){return this.get("getAttributionReferrerTimestamp")}getAttributionReferrerUrl(){return this.get("getAttributionReferrerUrl")}getUserId(){return this.get("getUserId")}setUserId(Te){this.push(["setUserId",Te])}resetUserId(){this.push(["resetUserId"])}setPageViewId(Te){this.push(["setPageViewId",Te])}getPageViewId(){return this.get("getPageViewId")}setCustomVariable(Te,_e,Me,Ee){this.push(["setCustomVariable",Te,_e,Me,Ee])}deleteCustomVariable(Te,_e){this.push(["deleteCustomVariable",Te,_e])}deleteCustomVariables(Te){this.push(["deleteCustomVariables",Te])}getCustomVariable(Te,_e){return this.pushFn(Me=>Me.getCustomVariable(Te,_e))}storeCustomVariablesInCookie(){this.push(["storeCustomVariablesInCookie"])}setCustomDimension(Te,_e){this.push(["setCustomDimension",Te,_e])}deleteCustomDimension(Te){this.push(["deleteCustomDimension",Te])}getCustomDimension(Te){return this.pushFn(_e=>_e.getCustomDimension(Te))}setCampaignNameKey(Te){this.push(["setCampaignNameKey",Te])}setCampaignKeywordKey(Te){this.push(["setCampaignKeywordKey",Te])}setConversionAttributionFirstReferrer(Te){this.push(["setConversionAttributionFirstReferrer",Te])}setEcommerceView(Te,_e,Me,Ee){!function a(de){return"object"==typeof de&&1===Object.keys(de).length&&null!=de.productCategory}(Te)?function g(de){return"object"==typeof de&&"productSKU"in de}(Te)?this.push(["setEcommerceView",Te.productSKU,Te.productName,Te.productCategory,Te.price]):this.push(["setEcommerceView",Te,_e,Me,Ee]):this.push(["setEcommerceView",!1,!1,Te.productCategory])}addEcommerceItem(Te,_e,Me,Ee,Xe){this.push("string"==typeof Te?["addEcommerceItem",Te,_e,Me,Ee,Xe]:["addEcommerceItem",Te.productSKU,Te.productName,Te.productCategory,Te.price,Te.quantity])}removeEcommerceItem(Te){this.push(["removeEcommerceItem",Te])}clearEcommerceCart(){this.push(["clearEcommerceCart"])}getEcommerceItems(){return this.get("getEcommerceItems")}trackEcommerceCartUpdate(Te){this.push(["trackEcommerceCartUpdate",Te])}trackEcommerceOrder(Te,_e,Me,Ee,Xe,Ze){this.push(["trackEcommerceOrder",Te,_e,Me,Ee,Xe,Ze])}requireConsent(){this.push(["requireConsent"])}setConsentGiven(){this.push(["setConsentGiven"])}rememberConsentGiven(Te){this.push(["rememberConsentGiven",Te])}forgetConsentGiven(){this.push(["forgetConsentGiven"])}hasRememberedConsent(){return this.get("hasRememberedConsent")}getRememberedConsent(){return this.get("getRememberedConsent")}isConsentRequired(){return this.get("isConsentRequired")}requireCookieConsent(){this.push(["requireCookieConsent"])}setCookieConsentGiven(){this.push(["setCookieConsentGiven"])}rememberCookieConsentGiven(Te){this.push(["rememberCookieConsentGiven",Te])}forgetCookieConsentGiven(){this.push(["forgetCookieConsentGiven"])}getRememberedCookieConsent(){return this.get("getRememberedCookieConsent")}areCookiesEnabled(){return this.get("areCookiesEnabled")}optUserOut(){this.push(["optUserOut"])}forgetUserOptOut(){this.push(["forgetUserOptOut"])}isUserOptedOut(){return this.get("isUserOptedOut")}disableCookies(){this.push(["disableCookies"])}deleteCookies(){this.push(["deleteCookies"])}hasCookies(){return this.get("hasCookies")}setCookieNamePrefix(Te){this.push(["setCookieNamePrefix",Te])}setCookieDomain(Te){this.push(["setCookieDomain",Te])}setCookiePath(Te){this.push(["setCookiePath",Te])}setSecureCookie(Te){this.push(["setSecureCookie",Te])}setCookieSameSite(Te){this.push(["setCookieSameSite",Te])}setVisitorCookieTimeout(Te){this.push(["setVisitorCookieTimeout",Te])}setReferralCookieTimeout(Te){this.push(["setReferralCookieTimeout",Te])}setSessionCookieTimeout(Te){this.push(["setSessionCookieTimeout",Te])}addListener(Te){this.push(["addListener",Te])}setRequestMethod(Te){this.push(["setRequestMethod",Te])}setCustomRequestProcessing(Te){this.push(["setCustomRequestProcessing",Te])}setRequestContentType(Te){this.push(["setRequestContentType",Te])}disableQueueRequest(){this.push(["disableQueueRequest"])}setRequestQueueInterval(Te){this.push(["setRequestQueueInterval",Te])}disableAlwaysUseSendBeacon(){this.push(["disableAlwaysUseSendBeacon"])}alwaysUseSendBeacon(){this.push(["alwaysUseSendBeacon"])}enableJSErrorTracking(){this.push(["enableJSErrorTracking"])}enableFileTracking(){this.push(["enableFileTracking"])}setExcludedReferrers(...Te){const _e=Te.flat();this.push(["setExcludedReferrers",_e])}getExcludedReferrers(){return this.get("getExcludedReferrers")}disableBrowserFeatureDetection(){this.push(["disableBrowserFeatureDetection"])}enableBrowserFeatureDetection(){this.push(["enableBrowserFeatureDetection"])}get(Te){return this.pushFn(_e=>_e[Te]())}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:function(_e){let Me=null;return Me=_e?new _e:function y(de,ye,Te){return de.disabled||!(0,e.UE)(ye)?new r:new n(Te,de)}(M.KVO(te),M.KVO(M.Agw),M.KVO(M.SKi)),Me},providedIn:"root"})}return de})();class n extends o{constructor(ye,Te){super(),this.ngZone=ye,this.config=Te,T()}pushFn(ye){return new Promise(Te=>{this.push([function(){Te(ye(this))}])})}push(ye){this.config.runOutsideAngularZone?this.ngZone.runOutsideAngular(()=>{window._paq.push(f(ye))}):window._paq.push(f(ye))}}class r extends o{push(ye){}pushFn(ye){return Promise.reject("MatomoTracker is disabled")}}const l=(de,ye)=>{const Te=ye.createElement("script");return Te.type="text/javascript",Te.defer=!0,Te.async=!0,Te.src=de,Te},d=new M.nKC("MATOMO_SCRIPT_FACTORY",{providedIn:"root",factory:()=>l});function C(de){return`${de}`}function k(de){return de.endsWith("/")?de:`${de}/`}function p(de,ye){return null==ye?k(de)+S:de+ye}const S="matomo.php";class Y{initialize(){}initializeTracker(ye){}}let U=(()=>{class de{constructor(){this.config=(0,M.WQX)(te),this.deferredConfig=(0,M.WQX)($),this.tracker=(0,M.WQX)(o),this.scriptFactory=(0,M.WQX)(d),this.injector=(0,M.WQX)(M.uvJ),this.document=(0,M.WQX)(e.qQ),this.initialize=re(()=>{this.runPreInitTasks(),function L(de){return null==de.mode||de.mode===B.AUTO}(this.config)&&this.injectMatomoScript(this.config)},"Matomo has already been initialized"),this.injectMatomoScript=re(Te=>{if(function E(de){return D(de)||_(de)}(Te)){const{scriptUrl:_e}=Te,[Me,...Ee]=function b(de){return _(de)?de.trackers:[{trackerUrl:de.trackerUrl,siteId:de.siteId,trackerUrlSuffix:de.trackerUrlSuffix}]}(Te),Xe=_e??k(Me.trackerUrl)+"matomo.js";this.registerMainTracker(Me),this.registerAdditionalTrackers(Ee),this.injectDOMScript(Xe)}else if(function I(de){return null!=de.scriptUrl&&!D(de)}(Te)){const{scriptUrl:_e,trackers:Me}={trackers:[],...Te};this.registerAdditionalTrackers(Me),this.injectDOMScript(_e)}this.deferredConfig.markReady(Te)},"Matomo trackers have already been initialized"),T()}init(){this.initialize()}initializeTracker(Te){this.injectMatomoScript(Te)}registerMainTracker(Te){const _e=p(Te.trackerUrl,Te.trackerUrlSuffix),Me=C(Te.siteId);this.tracker.setTrackerUrl(_e),this.tracker.setSiteId(Me)}registerAdditionalTrackers(Te){Te.forEach(({trackerUrl:_e,siteId:Me,trackerUrlSuffix:Ee})=>{const Xe=p(_e,Ee),Ze=C(Me);this.tracker.addTracker(Xe,Ze)})}injectDOMScript(Te){const _e=this.injector.runInContext(()=>this.scriptFactory(Te,this.document)),Me=ve(this.document.getElementsByTagName("script")[0],"no existing script found");ve(Me.parentNode,"no script's parent node found").insertBefore(_e,Me)}runPreInitTasks(){this.config.acceptDoNotTrack&&this.tracker.setDoNotTrack(!0),this.config.requireConsent===F.COOKIE?this.tracker.requireCookieConsent():this.config.requireConsent===F.TRACKING&&this.tracker.requireConsent(),this.config.enableJSErrorTracking&&this.tracker.enableJSErrorTracking(),this.config.trackAppInitialLoad&&this.tracker.trackPageView(),this.config.enableLinkTracking&&this.tracker.enableLinkTracking("enable-pseudo"===this.config.enableLinkTracking)}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275prov=M.jDH({token:de,factory:()=>function H(){const de=(0,M.WQX)(te).disabled,ye=(0,e.UE)((0,M.WQX)(M.Agw));return de||!ye?new Y:new U}(),providedIn:"root"})}return de})();const se=Symbol("MATOMO_PROVIDERS");function Ae(de,ye){const Te=[];return ye&&Te.push(function G(de){return function w(de,ye){return{kind:de,[se]:ye}}(0,[{provide:d,useValue:de}])}(ye)),function X(de,...ye){const Te=[{provide:M.Z63,multi:!0,useValue(){(0,M.WQX)(U).initialize()}}],_e=[];Te.push("function"==typeof de?{provide:J,useFactory:de}:{provide:J,useValue:de});for(const Ee of ye)Te.push(...Ee[se]),_e.push(Ee.kind);const Me=[[2,"withRouterInterceptors()"],[3,"withRouteData()"]];for(const[Ee,Xe]of Me)if(_e.includes(Ee)&&!_e.includes(1))throw new Error(`Matomo feature ${Xe} cannot be used without router feature! Did you forget to call withRouter()?`);return(0,M.EmA)(Te)}(de,...Te)}let Fe=(()=>{class de{static forRoot(Te,_e){return{ngModule:de,providers:[Ae(Te,_e)]}}static#e=this.\u0275fac=function(_e){return new(_e||de)};static#t=this.\u0275mod=M.$C({type:de});static#i=this.\u0275inj=M.G2t({})}return de})()},36554:(ri,Ft,He)=>{"use strict";He.d(Ft,{PO:()=>b,et:()=>_,ex:()=>D});var M=He(54438),e=He(84412),V=He(21413),Pe=He(5964),Z=He(56977),ie=He(49969),re=He(60177),ve=He(345);const le=["overlay"],fe=["*"];function pe(T,z){1&T&&M.nrm(0,"div")}function J(T,z){if(1&T&&(M.j41(0,"div"),M.DNE(1,pe,1,0,"div",6),M.k0s()),2&T){const O=M.XpG(2);M.HbH(O.spinner.class),M.xc7("color",O.spinner.color),M.R7$(),M.Y8G("ngForOf",O.spinner.divArray)}}function te(T,z){if(1&T&&(M.nrm(0,"div",7),M.nI1(1,"safeHtml")),2&T){const O=M.XpG(2);M.Y8G("innerHTML",M.bMT(1,1,O.template),M.npT)}}function $(T,z){if(1&T&&(M.j41(0,"div",2,0),M.DNE(2,J,2,5,"div",3)(3,te,2,3,"div",4),M.j41(4,"div",5),M.SdG(5),M.k0s()()),2&T){const O=M.XpG();M.xc7("background-color",O.spinner.bdColor)("z-index",O.spinner.zIndex)("position",O.spinner.fullScreen?"fixed":"absolute"),M.Y8G("@.disabled",O.disableAnimation)("@fadeIn","in"),M.R7$(2),M.Y8G("ngIf",!O.template),M.R7$(),M.Y8G("ngIf",O.template),M.R7$(),M.xc7("z-index",O.spinner.zIndex)}}const A={"ball-8bits":16,"ball-atom":4,"ball-beat":3,"ball-circus":5,"ball-climbing-dot":4,"ball-clip-rotate":1,"ball-clip-rotate-multiple":2,"ball-clip-rotate-pulse":2,"ball-elastic-dots":5,"ball-fall":3,"ball-fussion":4,"ball-grid-beat":9,"ball-grid-pulse":9,"ball-newton-cradle":4,"ball-pulse":3,"ball-pulse-rise":5,"ball-pulse-sync":3,"ball-rotate":1,"ball-running-dots":5,"ball-scale":1,"ball-scale-multiple":3,"ball-scale-pulse":2,"ball-scale-ripple":1,"ball-scale-ripple-multiple":3,"ball-spin":8,"ball-spin-clockwise":8,"ball-spin-clockwise-fade":8,"ball-spin-clockwise-fade-rotating":8,"ball-spin-fade":8,"ball-spin-fade-rotating":8,"ball-spin-rotate":2,"ball-square-clockwise-spin":8,"ball-square-spin":8,"ball-triangle-path":3,"ball-zig-zag":2,"ball-zig-zag-deflect":2,cog:1,"cube-transition":2,fire:3,"line-scale":5,"line-scale-party":5,"line-scale-pulse-out":5,"line-scale-pulse-out-rapid":5,"line-spin-clockwise-fade":8,"line-spin-clockwise-fade-rotating":8,"line-spin-fade":8,"line-spin-fade-rotating":8,pacman:6,"square-jelly-box":2,"square-loader":1,"square-spin":1,timer:1,"triangle-skew-spin":1},F="primary";class L{constructor(z){Object.assign(this,z)}static create(z){return!z?.template&&!z?.type&&console.warn('[ngx-spinner]: Property "type" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file'),new L(z)}}let D=(()=>{class T{constructor(){this.spinnerObservable=new e.t(null)}getSpinner(O){return this.spinnerObservable.asObservable().pipe((0,Pe.p)(f=>f&&f.name===O))}show(O=F,f){return new Promise((a,g)=>{setTimeout(()=>{f&&Object.keys(f).length?(f.name=O,this.spinnerObservable.next(new L({...f,show:!0})),a(!0)):(this.spinnerObservable.next(new L({name:O,show:!0})),a(!0))},10)})}hide(O=F,f=10){return new Promise((a,g)=>{setTimeout(()=>{this.spinnerObservable.next(new L({name:O,show:!1})),a(!0)},f)})}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275prov=M.jDH({token:T,factory:T.\u0275fac,providedIn:"root"})}return T})();const I=new M.nKC("NGX_SPINNER_CONFIG");let E=(()=>{class T{constructor(O){this._sanitizer=O}transform(O){if(O)return this._sanitizer.bypassSecurityTrustHtml(O)}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(ve.up,16))};static#t=this.\u0275pipe=M.EJ8({name:"safeHtml",type:T,pure:!0})}return T})(),_=(()=>{class T{constructor(O,f,a,g){this.spinnerService=O,this.changeDetector=f,this.elementRef=a,this.globalConfig=g,this.disableAnimation=!1,this.spinner=new L,this.ngUnsubscribe=new V.B,this.setDefaultOptions=()=>{const{type:y}=this.globalConfig??{};this.spinner=L.create({name:this.name,bdColor:this.bdColor,size:this.size,color:this.color,type:this.type??y,fullScreen:this.fullScreen,divArray:this.divArray,divCount:this.divCount,show:this.show,zIndex:this.zIndex,template:this.template,showSpinner:this.showSpinner})},this.bdColor="rgba(51,51,51,0.8)",this.zIndex=99999,this.color="#fff",this.size="large",this.fullScreen=!0,this.name=F,this.template=null,this.showSpinner=!1,this.divArray=[],this.divCount=0,this.show=!1}initObservable(){this.spinnerService.getSpinner(this.name).pipe((0,Z.Q)(this.ngUnsubscribe)).subscribe(O=>{this.setDefaultOptions(),Object.assign(this.spinner,O),O.show&&this.onInputChange(),this.changeDetector.detectChanges()})}ngOnInit(){this.setDefaultOptions(),this.initObservable()}isSpinnerZone(O){return O===this.elementRef.nativeElement.parentElement||O.parentNode&&this.isSpinnerZone(O.parentNode)}ngOnChanges(O){for(const f in O)if(f){const a=O[f];if(a.isFirstChange())return;typeof a.currentValue<"u"&&a.currentValue!==a.previousValue&&""!==a.currentValue&&(this.spinner[f]=a.currentValue,"showSpinner"===f&&(a.currentValue?this.spinnerService.show(this.spinner.name,this.spinner):this.spinnerService.hide(this.spinner.name)),"name"===f&&this.initObservable())}}getClass(O,f){this.spinner.divCount=A[O],this.spinner.divArray=Array(this.spinner.divCount).fill(0).map((g,y)=>y);let a="";switch(f.toLowerCase()){case"small":a="la-sm";break;case"medium":a="la-2x";break;case"large":a="la-3x"}return"la-"+O+" "+a}onInputChange(){this.spinner.class=this.getClass(this.spinner.type,this.spinner.size)}ngOnDestroy(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()}static#e=this.\u0275fac=function(f){return new(f||T)(M.rXU(D),M.rXU(M.gRc),M.rXU(M.aKT),M.rXU(I,8))};static#t=this.\u0275cmp=M.VBU({type:T,selectors:[["ngx-spinner"]],viewQuery:function(f,a){if(1&f&&M.GBs(le,5),2&f){let g;M.mGM(g=M.lsd())&&(a.spinnerDOM=g.first)}},inputs:{bdColor:"bdColor",size:"size",color:"color",type:"type",fullScreen:"fullScreen",name:"name",zIndex:"zIndex",template:"template",showSpinner:"showSpinner",disableAnimation:"disableAnimation"},features:[M.OA$],ngContentSelectors:fe,decls:1,vars:1,consts:[["overlay",""],["class","ngx-spinner-overlay",3,"background-color","z-index","position",4,"ngIf"],[1,"ngx-spinner-overlay"],[3,"class","color",4,"ngIf"],[3,"innerHTML",4,"ngIf"],[1,"loading-text"],[4,"ngFor","ngForOf"],[3,"innerHTML"]],template:function(f,a){1&f&&(M.NAR(),M.DNE(0,$,6,12,"div",1)),2&f&&M.Y8G("ngIf",a.spinner.show)},dependencies:[re.Sq,re.bT,E],styles:[".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}"],data:{animation:[(0,ie.hZ)("fadeIn",[(0,ie.wk)("in",(0,ie.iF)({opacity:1})),(0,ie.kY)(":enter",[(0,ie.iF)({opacity:0}),(0,ie.i0)(300)]),(0,ie.kY)(":leave",(0,ie.i0)(200,(0,ie.iF)({opacity:0})))])]},changeDetection:0})}return T})(),b=(()=>{class T{static forRoot(O){return{ngModule:T,providers:[{provide:I,useValue:O}]}}static#e=this.\u0275fac=function(f){return new(f||T)};static#t=this.\u0275mod=M.$C({type:T});static#i=this.\u0275inj=M.G2t({imports:[re.MD]})}return T})()},45794:(ri,Ft,He)=>{"use strict";He.d(Ft,{_B:()=>l,tw:()=>y});var M=He(54438),e=He(49969),V=He(60177),Pe=He(21413),Z=He(345);const ie=["toast-component",""];function re(S,j){if(1&S){const H=M.RV6();M.j41(0,"button",5),M.bIt("click",function(){M.eBV(H);const U=M.XpG();return M.Njj(U.remove())}),M.j41(1,"span",6),M.EFF(2,"\xd7"),M.k0s()()}}function ve(S,j){if(1&S&&(M.qex(0),M.EFF(1),M.bVm()),2&S){const H=M.XpG(2);M.R7$(),M.SpI("[",H.duplicatesCount+1,"]")}}function le(S,j){if(1&S&&(M.j41(0,"div"),M.EFF(1),M.DNE(2,ve,2,1,"ng-container",4),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.titleClass),M.BMQ("aria-label",H.title),M.R7$(),M.SpI(" ",H.title," "),M.R7$(),M.Y8G("ngIf",H.duplicatesCount)}}function fe(S,j){if(1&S&&M.nrm(0,"div",7),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.Y8G("innerHTML",H.message,M.npT)}}function pe(S,j){if(1&S&&(M.j41(0,"div",8),M.EFF(1),M.k0s()),2&S){const H=M.XpG();M.HbH(H.options.messageClass),M.BMQ("aria-label",H.message),M.R7$(),M.SpI(" ",H.message," ")}}function J(S,j){if(1&S&&(M.j41(0,"div"),M.nrm(1,"div",9),M.k0s()),2&S){const H=M.XpG();M.R7$(),M.xc7("width",H.width+"%")}}class I{_attachedHost;component;viewContainerRef;injector;constructor(j,H){this.component=j,this.injector=H}attach(j,H){return this._attachedHost=j,j.attach(this,H)}detach(){const j=this._attachedHost;if(j)return this._attachedHost=void 0,j.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(j){this._attachedHost=j}}class E{_attachedPortal;_disposeFn;attach(j,H){return this._attachedPortal=j,this.attachComponentPortal(j,H)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(j){this._disposeFn=j}}class _{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new Pe.B;_activate=new Pe.B;_manualClose=new Pe.B;_resetTimeout=new Pe.B;_countDuplicate=new Pe.B;constructor(j){this._overlayRef=j}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(j,H){j&&this._resetTimeout.next(),H&&this._countDuplicate.next(++this.duplicatesCount)}}class b{toastId;config;message;title;toastType;toastRef;_onTap=new Pe.B;_onAction=new Pe.B;constructor(j,H,Y,U,se,w){this.toastId=j,this.config=H,this.message=Y,this.title=U,this.toastType=se,this.toastRef=w,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(j){this._onAction.next(j)}onAction(){return this._onAction.asObservable()}}const z=new M.nKC("ToastConfig");class O extends E{_hostDomElement;_componentFactoryResolver;_appRef;constructor(j,H,Y){super(),this._hostDomElement=j,this._componentFactoryResolver=H,this._appRef=Y}attachComponentPortal(j,H){const Y=this._componentFactoryResolver.resolveComponentFactory(j.component);let U;return U=Y.create(j.injector),this._appRef.attachView(U.hostView),this.setDisposeFn(()=>{this._appRef.detachView(U.hostView),U.destroy()}),H?this._hostDomElement.insertBefore(this._getComponentRootNode(U),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(U)),U}_getComponentRootNode(j){return j.hostView.rootNodes[0]}}let f=(()=>{class S{_document=(0,M.WQX)(V.qQ);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const H=this._document.createElement("div");H.classList.add("overlay-container"),H.setAttribute("aria-live","polite"),this._document.body.appendChild(H),this._containerElement=H}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();class a{_portalHost;constructor(j){this._portalHost=j}attach(j,H=!0){return this._portalHost.attach(j,H)}detach(){return this._portalHost.detach()}}let g=(()=>{class S{_overlayContainer=(0,M.WQX)(f);_componentFactoryResolver=(0,M.WQX)(M.OM3);_appRef=(0,M.WQX)(M.o8S);_document=(0,M.WQX)(V.qQ);_paneElements=new Map;create(H,Y){return this._createOverlayRef(this.getPaneElement(H,Y))}getPaneElement(H="",Y){return this._paneElements.get(Y)||this._paneElements.set(Y,{}),this._paneElements.get(Y)[H]||(this._paneElements.get(Y)[H]=this._createPaneElement(H,Y)),this._paneElements.get(Y)[H]}_createPaneElement(H,Y){const U=this._document.createElement("div");return U.id="toast-container",U.classList.add(H),U.classList.add("toast-container"),Y?Y.getContainerElement().appendChild(U):this._overlayContainer.getContainerElement().appendChild(U),U}_createPortalHost(H){return new O(H,this._componentFactoryResolver,this._appRef)}_createOverlayRef(H){return new a(this._createPortalHost(H))}static \u0275fac=function(Y){return new(Y||S)};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})(),y=(()=>{class S{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(H,Y,U,se,w){this.overlay=Y,this._injector=U,this.sanitizer=se,this.ngZone=w,this.toastrConfig={...H.default,...H.config},H.config.iconClasses&&(this.toastrConfig.iconClasses={...H.default.iconClasses,...H.config.iconClasses})}show(H,Y,U={},se=""){return this._preBuildNotification(se,H,Y,this.applyConfig(U))}success(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",H,Y,this.applyConfig(U))}error(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",H,Y,this.applyConfig(U))}info(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",H,Y,this.applyConfig(U))}warning(H,Y,U={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",H,Y,this.applyConfig(U))}clear(H){for(const Y of this.toasts)if(void 0!==H){if(Y.toastId===H)return void Y.toastRef.manualClose()}else Y.toastRef.manualClose()}remove(H){const Y=this._findToast(H);if(!Y||(Y.activeToast.toastRef.close(),this.toasts.splice(Y.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(H,Y,U,se)):this._buildNotification(H,Y,U,se)}_buildNotification(H,Y,U,se){if(!se.toastComponent)throw new Error("toastComponent required");const w=this.findDuplicate(U,Y,this.toastrConfig.resetTimeoutOnDuplicate&&se.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&U||Y)&&this.toastrConfig.preventDuplicates&&null!==w)return w;this.previousToastMessage=Y;let X=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(X=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const G=this.overlay.create(se.positionClass,this.overlayContainer);this.index=this.index+1;let x=Y;Y&&se.enableHtml&&(x=this.sanitizer.sanitize(M.WPN.HTML,Y));const N=new _(G),R=new b(this.index,se,x,U,H,N),q=M.zZn.create({providers:[{provide:b,useValue:R}],parent:this._injector}),he=new I(se.toastComponent,q),me=G.attach(he,se.newestOnTop);N.componentInstance=me.instance;const Ce={toastId:this.index,title:U||"",message:Y||"",toastRef:N,onShown:N.afterActivate(),onHidden:N.afterClosed(),onTap:R.onTap(),onAction:R.onAction(),portal:me};return X||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{Ce.toastRef.activate()})),this.toasts.push(Ce),Ce}static \u0275fac=function(Y){return new(Y||S)(M.KVO(z),M.KVO(g),M.KVO(M.zZn),M.KVO(Z.up),M.KVO(M.SKi))};static \u0275prov=M.jDH({token:S,factory:S.\u0275fac,providedIn:"root"})}return S})();const n={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing",toastComponent:(()=>{class S{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=-1;toastClasses="";state;get displayStyle(){if("inactive"===this.state.value)return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(H,Y,U){this.toastrService=H,this.toastPackage=Y,this.ngZone=U,this.message=Y.message,this.title=Y.title,this.options=Y.config,this.originalTimeout=Y.config.timeOut,this.toastClasses=`${Y.toastType} ${Y.config.toastClass}`,this.sub=Y.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=Y.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=Y.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=Y.toastRef.countDuplicate().subscribe(se=>{this.duplicatesCount=se}),this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}}}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state={...this.state,value:"active"},!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const H=(new Date).getTime();this.width=(this.hideTime-H)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state={...this.state,value:"active"},this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state={...this.state,value:"removed"},this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&"extendedTimeOut"!==this.options.disableTimeOut&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0===this.options.disableTimeOut||"extendedTimeOut"===this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(H),Y)):this.timeout=setTimeout(()=>H(),Y)}outsideInterval(H,Y){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(H),Y)):this.intervalId=setInterval(()=>H(),Y)}runInsideAngular(H){this.ngZone?this.ngZone.run(()=>H()):H()}static \u0275fac=function(Y){return new(Y||S)(M.rXU(y),M.rXU(b),M.rXU(M.SKi))};static \u0275cmp=M.VBU({type:S,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(Y,U){1&Y&&M.bIt("click",function(){return U.tapToast()})("mouseenter",function(){return U.stickAround()})("mouseleave",function(){return U.delayedHideToast()}),2&Y&&(M.zvX("@flyInOut",U.state),M.HbH(U.toastClasses),M.xc7("display",U.displayStyle))},standalone:!0,features:[M.aNF],attrs:ie,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(Y,U){1&Y&&M.DNE(0,re,3,0,"button",0)(1,le,3,5,"div",1)(2,fe,1,3,"div",2)(3,pe,2,4,"div",3)(4,J,2,2,"div",4),2&Y&&(M.Y8G("ngIf",U.options.closeButton),M.R7$(),M.Y8G("ngIf",U.title),M.R7$(),M.Y8G("ngIf",U.message&&U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.message&&!U.options.enableHtml),M.R7$(),M.Y8G("ngIf",U.options.progressBar))},dependencies:[V.bT],encapsulation:2,data:{animation:[(0,e.hZ)("flyInOut",[(0,e.wk)("inactive",(0,e.iF)({opacity:0})),(0,e.wk)("active",(0,e.iF)({opacity:1})),(0,e.wk)("removed",(0,e.iF)({opacity:0})),(0,e.kY)("inactive => active",(0,e.i0)("{{ easeTime }}ms {{ easing }}")),(0,e.kY)("active => removed",(0,e.i0)("{{ easeTime }}ms {{ easing }}"))])]}})}return S})()},r=(S={})=>(0,M.EmA)([{provide:z,useValue:{default:n,config:S}}]);let l=(()=>{class S{static forRoot(H={}){return{ngModule:S,providers:[r(H)]}}static \u0275fac=function(Y){return new(Y||S)};static \u0275mod=M.$C({type:S});static \u0275inj=M.G2t({})}return S})()},5779:(ri,Ft,He)=>{"use strict";He.d(Ft,{E:()=>pe,Ei:()=>L,Gg:()=>D,Rn:()=>le,Y9:()=>B,Yj:()=>I,r1:()=>A,si:()=>te,tl:()=>fe,wi:()=>F});var M=He(54438),e=He(21413),V=He(54420),Pe=He(60177);const Z=["*"];let le=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static IN="in";static LESS_THAN="lt";static LESS_THAN_OR_EQUAL_TO="lte";static GREATER_THAN="gt";static GREATER_THAN_OR_EQUAL_TO="gte";static BETWEEN="between";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static DATE_IS="dateIs";static DATE_IS_NOT="dateIsNot";static DATE_BEFORE="dateBefore";static DATE_AFTER="dateAfter"})(),fe=(()=>class _{static AND="and";static OR="or"})(),pe=(()=>{class _{filter(T,z,O,f,a){let g=[];if(T)for(let y of T)for(let o of z){let n=V.BF.resolveFieldData(y,o);if(this.filters[f](n,O,a)){g.push(y);break}}return g}filters={startsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).slice(0,f.length)===f},contains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1!==V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},notContains:(T,z,O)=>{if(null==z||"string"==typeof z&&""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O);return-1===V.BF.removeAccents(T.toString()).toLocaleLowerCase(O).indexOf(f)},endsWith:(T,z,O)=>{if(null==z||""===z.trim())return!0;if(null==T)return!1;let f=V.BF.removeAccents(z.toString()).toLocaleLowerCase(O),a=V.BF.removeAccents(T.toString()).toLocaleLowerCase(O);return-1!==a.indexOf(f,a.length-f.length)},equals:(T,z,O)=>null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O)),notEquals:(T,z,O)=>!(null==z||"string"==typeof z&&""===z.trim()||null!=T&&(T.getTime&&z.getTime?T.getTime()===z.getTime():V.BF.removeAccents(T.toString()).toLocaleLowerCase(O)==V.BF.removeAccents(z.toString()).toLocaleLowerCase(O))),in:(T,z)=>{if(null==z||0===z.length)return!0;for(let O=0;Onull==z||null==z[0]||null==z[1]||null!=T&&(T.getTime?z[0].getTime()<=T.getTime()&&T.getTime()<=z[1].getTime():z[0]<=T&&T<=z[1]),lt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()<=z.getTime():T<=z),gt:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>z.getTime():T>z),gte:(T,z,O)=>null==z||null!=T&&(T.getTime&&z.getTime?T.getTime()>=z.getTime():T>=z),is:(T,z,O)=>this.filters.equals(T,z,O),isNot:(T,z,O)=>this.filters.notEquals(T,z,O),before:(T,z,O)=>this.filters.lt(T,z,O),after:(T,z,O)=>this.filters.gt(T,z,O),dateIs:(T,z)=>null==z||null!=T&&T.toDateString()===z.toDateString(),dateIsNot:(T,z)=>null==z||null!=T&&T.toDateString()!==z.toDateString(),dateBefore:(T,z)=>null==z||null!=T&&T.getTime()null==z||null!=T&&T.getTime()>z.getTime()};register(T,z){this.filters[T]=z}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),te=(()=>{class _{clickSource=new e.B;clickObservable=this.clickSource.asObservable();add(T){T&&this.clickSource.next(T)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),A=(()=>{class _{ripple=!1;inputStyle="outlined";overlayOptions={};filterMatchModeOptions={text:[le.STARTS_WITH,le.CONTAINS,le.NOT_CONTAINS,le.ENDS_WITH,le.EQUALS,le.NOT_EQUALS],numeric:[le.EQUALS,le.NOT_EQUALS,le.LESS_THAN,le.LESS_THAN_OR_EQUAL_TO,le.GREATER_THAN,le.GREATER_THAN_OR_EQUAL_TO],date:[le.DATE_IS,le.DATE_IS_NOT,le.DATE_BEFORE,le.DATE_AFTER]};translation={startsWith:"Starts with",contains:"Contains",notContains:"Not contains",endsWith:"Ends with",equals:"Equals",notEquals:"Not equals",noFilter:"No Filter",lt:"Less than",lte:"Less than or equal to",gt:"Greater than",gte:"Greater than or equal to",is:"Is",isNot:"Is not",before:"Before",after:"After",dateIs:"Date is",dateIsNot:"Date is not",dateBefore:"Date is before",dateAfter:"Date is after",clear:"Clear",apply:"Apply",matchAll:"Match All",matchAny:"Match Any",addRule:"Add Rule",removeRule:"Remove Rule",accept:"Yes",reject:"No",choose:"Choose",upload:"Upload",cancel:"Cancel",pending:"Pending",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],chooseYear:"Choose Year",chooseMonth:"Choose Month",chooseDate:"Choose Date",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",prevHour:"Previous Hour",nextHour:"Next Hour",prevMinute:"Previous Minute",nextMinute:"Next Minute",prevSecond:"Previous Second",nextSecond:"Next Second",am:"am",pm:"pm",dateFormat:"mm/dd/yy",firstDayOfWeek:0,today:"Today",weekHeader:"Wk",weak:"Weak",medium:"Medium",strong:"Strong",passwordPrompt:"Enter a password",emptyMessage:"No results found",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",emptySelectionMessage:"No selected item",emptySearchMessage:"No results found",emptyFilterMessage:"No results found",aria:{trueLabel:"True",falseLabel:"False",nullLabel:"Not Selected",star:"1 star",stars:"{star} stars",selectAll:"All items selected",unselectAll:"All items unselected",close:"Close",previous:"Previous",next:"Next",navigation:"Navigation",scrollTop:"Scroll Top",moveTop:"Move Top",moveUp:"Move Up",moveDown:"Move Down",moveBottom:"Move Bottom",moveToTarget:"Move to Target",moveToSource:"Move to Source",moveAllToTarget:"Move All to Target",moveAllToSource:"Move All to Source",pageLabel:"{page}",firstPageLabel:"First Page",lastPageLabel:"Last Page",nextPageLabel:"Next Page",prevPageLabel:"Previous Page",rowsPerPageLabel:"Rows per page",previousPageLabel:"Previous Page",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",selectRow:"Row Selected",unselectRow:"Row Unselected",expandRow:"Row Expanded",collapseRow:"Row Collapsed",showFilterMenu:"Show Filter Menu",hideFilterMenu:"Hide Filter Menu",filterOperator:"Filter Operator",filterConstraint:"Filter Constraint",editRow:"Row Edit",saveEdit:"Save Edit",cancelEdit:"Cancel Edit",listView:"List View",gridView:"Grid View",slide:"Slide",slideNumber:"{slideNumber}",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out",rotateRight:"Rotate Right",rotateLeft:"Rotate Left",listLabel:"Option List",selectColor:"Select a color",removeLabel:"Remove"}};zIndex={modal:1100,overlay:1e3,menu:1e3,tooltip:1100};translationSource=new e.B;translationObserver=this.translationSource.asObservable();getTranslation(T){return this.translation[T]}setTranslation(T){this.translation={...this.translation,...T},this.translationSource.next(this.translation)}static \u0275fac=function(z){return new(z||_)};static \u0275prov=M.jDH({token:_,factory:_.\u0275fac,providedIn:"root"})}return _})(),B=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-header"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),F=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275cmp=M.VBU({type:_,selectors:[["p-footer"]],ngContentSelectors:Z,decls:1,vars:0,template:function(z,O){1&z&&(M.NAR(),M.SdG(0))},encapsulation:2})}return _})(),L=(()=>{class _{template;type;name;constructor(T){this.template=T}getType(){return this.name}static \u0275fac=function(z){return new(z||_)(M.rXU(M.C4Q))};static \u0275dir=M.FsC({type:_,selectors:[["","pTemplate",""]],inputs:{type:"type",name:[M.Mj6.None,"pTemplate","name"]}})}return _})(),D=(()=>{class _{static \u0275fac=function(z){return new(z||_)};static \u0275mod=M.$C({type:_});static \u0275inj=M.G2t({imports:[Pe.MD]})}return _})(),I=(()=>class _{static STARTS_WITH="startsWith";static CONTAINS="contains";static NOT_CONTAINS="notContains";static ENDS_WITH="endsWith";static EQUALS="equals";static NOT_EQUALS="notEquals";static NO_FILTER="noFilter";static LT="lt";static LTE="lte";static GT="gt";static GTE="gte";static IS="is";static IS_NOT="isNot";static BEFORE="before";static AFTER="after";static CLEAR="clear";static APPLY="apply";static MATCH_ALL="matchAll";static MATCH_ANY="matchAny";static ADD_RULE="addRule";static REMOVE_RULE="removeRule";static ACCEPT="accept";static REJECT="reject";static CHOOSE="choose";static UPLOAD="upload";static CANCEL="cancel";static PENDING="pending";static FILE_SIZE_TYPES="fileSizeTypes";static DAY_NAMES="dayNames";static DAY_NAMES_SHORT="dayNamesShort";static DAY_NAMES_MIN="dayNamesMin";static MONTH_NAMES="monthNames";static MONTH_NAMES_SHORT="monthNamesShort";static FIRST_DAY_OF_WEEK="firstDayOfWeek";static TODAY="today";static WEEK_HEADER="weekHeader";static WEAK="weak";static MEDIUM="medium";static STRONG="strong";static PASSWORD_PROMPT="passwordPrompt";static EMPTY_MESSAGE="emptyMessage";static EMPTY_FILTER_MESSAGE="emptyFilterMessage";static SHOW_FILTER_MENU="showFilterMenu";static HIDE_FILTER_MENU="hideFilterMenu";static SELECTION_MESSAGE="selectionMessage";static ARIA="aria";static SELECT_COLOR="selectColor"})()},461:(ri,Ft,He)=>{"use strict";He.d(Ft,{h:()=>Pe});var M=He(54438),e=He(54420);const V=["*"];let Pe=(()=>{class Z{label;spin=!1;styleClass;role;ariaLabel;ariaHidden;ngOnInit(){this.getAttributes()}getAttributes(){const re=e.BF.isEmpty(this.label);this.role=re?void 0:"img",this.ariaLabel=re?void 0:this.label,this.ariaHidden=re}getClassNames(){return`p-icon ${this.styleClass?this.styleClass+" ":""}${this.spin?"p-icon-spin":""}`}static \u0275fac=function(ve){return new(ve||Z)};static \u0275cmp=M.VBU({type:Z,selectors:[["ng-component"]],hostAttrs:[1,"p-element","p-icon-wrapper"],inputs:{label:"label",spin:"spin",styleClass:"styleClass"},standalone:!0,features:[M.aNF],ngContentSelectors:V,decls:1,vars:0,template:function(ve,le){1&ve&&(M.NAR(),M.SdG(0))},encapsulation:2,changeDetection:0})}return Z})()},81141:(ri,Ft,He)=>{"use strict";He.d(Ft,{_f:()=>z,tm:()=>f});var M=He(60177),e=He(54438),V=He(5779),Pe=He(81455),Z=He(38757),ie=He(10563),re=He(54420);const T={button:"p-button",component:"p-component",iconOnly:"p-button-icon-only",disabled:"p-disabled",loading:"p-button-loading",labelOnly:"p-button-loading-label-only"};let z=(()=>{class a{el;document;iconPos="left";loadingIcon;get label(){return this._label}set label(y){this._label=y,this.initialized&&(this.updateLabel(),this.updateIcon(),this.setStyleClass())}get icon(){return this._icon}set icon(y){this._icon=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}get loading(){return this._loading}set loading(y){this._loading=y,this.initialized&&(this.updateIcon(),this.setStyleClass())}_label;_icon;_loading=!1;initialized;get htmlElement(){return this.el.nativeElement}_internalClasses=Object.values(T);spinnerIcon='\n \n \n \n \n \n \n \n \n ';constructor(y,o){this.el=y,this.document=o}ngAfterViewInit(){Pe.D.addMultipleClasses(this.htmlElement,this.getStyleClass().join(" ")),this.createIcon(),this.createLabel(),this.initialized=!0}getStyleClass(){const y=[T.button,T.component];return this.icon&&!this.label&&re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly),this.loading&&(y.push(T.disabled,T.loading),!this.icon&&this.label&&y.push(T.labelOnly),this.icon&&!this.label&&!re.BF.isEmpty(this.htmlElement.textContent)&&y.push(T.iconOnly)),y}setStyleClass(){const y=this.getStyleClass();this.htmlElement.classList.remove(...this._internalClasses),this.htmlElement.classList.add(...y)}createLabel(){if(!Pe.D.findSingle(this.htmlElement,".p-button-label")&&this.label){let o=this.document.createElement("span");this.icon&&!this.label&&o.setAttribute("aria-hidden","true"),o.className="p-button-label",o.appendChild(this.document.createTextNode(this.label)),this.htmlElement.appendChild(o)}}createIcon(){if(!Pe.D.findSingle(this.htmlElement,".p-button-icon")&&(this.icon||this.loading)){let o=this.document.createElement("span");o.className="p-button-icon",o.setAttribute("aria-hidden","true");let n=this.label?"p-button-icon-"+this.iconPos:null;n&&Pe.D.addClass(o,n);let r=this.getIconClass();r&&Pe.D.addMultipleClasses(o,r),!this.loadingIcon&&this.loading&&(o.innerHTML=this.spinnerIcon),this.htmlElement.insertBefore(o,this.htmlElement.firstChild)}}updateLabel(){let y=Pe.D.findSingle(this.htmlElement,".p-button-label");this.label?y?y.textContent=this.label:this.createLabel():y&&this.htmlElement.removeChild(y)}updateIcon(){let y=Pe.D.findSingle(this.htmlElement,".p-button-icon"),o=Pe.D.findSingle(this.htmlElement,".p-button-label");this.loading&&!this.loadingIcon&&y?y.innerHTML=this.spinnerIcon:y?.innerHTML&&(y.innerHTML=""),y?y.className=this.iconPos?"p-button-icon "+(o?"p-button-icon-"+this.iconPos:"")+" "+this.getIconClass():"p-button-icon "+this.getIconClass():this.createIcon()}getIconClass(){return this.loading?"p-button-loading-icon "+(this.loadingIcon?this.loadingIcon:"p-icon"):this.icon||"p-hidden"}ngOnDestroy(){this.initialized=!1}static \u0275fac=function(o){return new(o||a)(e.rXU(e.aKT),e.rXU(M.qQ))};static \u0275dir=e.FsC({type:a,selectors:[["","pButton",""]],hostAttrs:[1,"p-element"],inputs:{iconPos:"iconPos",loadingIcon:"loadingIcon",label:"label",icon:"icon",loading:"loading"}})}return a})(),f=(()=>{class a{static \u0275fac=function(o){return new(o||a)};static \u0275mod=e.$C({type:a});static \u0275inj=e.G2t({imports:[M.MD,ie.Z,V.Gg,Z.N,V.Gg]})}return a})()},41570:(ri,Ft,He)=>{"use strict";He.d(Ft,{l:()=>Fe,P:()=>oe});var M=He(49969),e=He(60177),V=He(54438),Pe=He(5779),Z=He(81455);let ie=(()=>{class ee{pFocusTrapDisabled=!1;host=(0,V.WQX)(V.aKT);onkeydown(ye){if(!0!==this.pFocusTrapDisabled){ye.preventDefault();const Te=Z.D.getNextFocusableElement(this.host.nativeElement,ye.shiftKey);Te&&(Te.focus(),Te.select?.())}}static \u0275fac=function(Te){return new(Te||ee)};static \u0275dir=V.FsC({type:ee,selectors:[["","pFocusTrap",""]],hostAttrs:[1,"p-element"],hostBindings:function(Te,_e){1&Te&&V.bIt("keydown.tab",function(Ee){return _e.onkeydown(Ee)})("keydown.shift.tab",function(Ee){return _e.onkeydown(Ee)})},inputs:{pFocusTrapDisabled:"pFocusTrapDisabled"}})}return ee})(),re=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD]})}return ee})();var ve=He(1512),le=He(461),fe=He(54420);let pe=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMaximizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})(),J=(()=>{class ee extends le.h{pathId;ngOnInit(){this.pathId="url(#"+(0,fe._Y)()+")"}static \u0275fac=(()=>{let ye;return function(_e){return(ye||(ye=V.xGo(ee)))(_e||ee)}})();static \u0275cmp=V.VBU({type:ee,selectors:[["WindowMinimizeIcon"]],standalone:!0,features:[V.Vt3,V.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(Te,_e){1&Te&&(V.qSk(),V.j41(0,"svg",0)(1,"g"),V.nrm(2,"path",1),V.k0s(),V.j41(3,"defs")(4,"clipPath",2),V.nrm(5,"rect",3),V.k0s()()()),2&Te&&(V.HbH(_e.getClassNames()),V.BMQ("aria-label",_e.ariaLabel)("aria-hidden",_e.ariaHidden)("role",_e.role),V.R7$(),V.BMQ("clip-path",_e.pathId),V.R7$(3),V.Y8G("id",_e.pathId))},encapsulation:2})}return ee})();var te=He(10563),$=He(81141);const A=["titlebar"],B=["content"],F=["footer"],L=["*",[["p-header"]],[["p-footer"]]],D=["*","p-header","p-footer"],I=(ee,de,ye,Te,_e,Me,Ee,Xe,Ze,lt)=>({"p-dialog-mask":!0,"p-component-overlay p-component-overlay-enter":ee,"p-dialog-mask-scrollblocker":de,"p-dialog-left":ye,"p-dialog-right":Te,"p-dialog-top":_e,"p-dialog-top-left":Me,"p-dialog-top-right":Ee,"p-dialog-bottom":Xe,"p-dialog-bottom-left":Ze,"p-dialog-bottom-right":lt}),E=(ee,de,ye,Te)=>({"p-dialog p-component":!0,"p-dialog-rtl":ee,"p-dialog-draggable":de,"p-dialog-resizable":ye,"p-dialog-maximized":Te}),_=(ee,de)=>({transform:ee,transition:de}),b=ee=>({value:"visible",params:ee}),T=()=>({"p-dialog-header-icon p-dialog-header-maximize p-link":!0}),z=()=>({"p-dialog-header-icon p-dialog-header-close p-link":!0});function O(ee,de){1&ee&&V.eu8(0)}function f(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,O,1,0,"ng-container",10),V.bVm()),2&ee){const ye=V.XpG(3);V.R7$(),V.Y8G("ngTemplateOutlet",ye.headlessTemplate)}}function a(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",15),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initResize(_e))}),V.k0s()}}function g(ee,de){if(1&ee&&(V.j41(0,"span",21),V.EFF(1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy()),V.R7$(),V.JRh(ye.header)}}function y(ee,de){if(1&ee&&(V.j41(0,"span",21),V.SdG(1,1),V.k0s()),2&ee){const ye=V.XpG(5);V.Y8G("id",ye.getAriaLabelledBy())}}function o(ee,de){1&ee&&V.eu8(0)}function n(ee,de){if(1&ee&&V.nrm(0,"span",25),2&ee){const ye=V.XpG(6);V.Y8G("ngClass",ye.maximized?ye.minimizeIcon:ye.maximizeIcon)}}function r(ee,de){1&ee&&V.nrm(0,"WindowMaximizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function l(ee,de){1&ee&&V.nrm(0,"WindowMinimizeIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-maximize-icon")}function d(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,r,1,1,"WindowMaximizeIcon",26)(2,l,1,1,"WindowMinimizeIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",!ye.maximized&&!ye.maximizeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.maximized&&!ye.minimizeIconTemplate)}}function C(ee,de){}function k(ee,de){1&ee&&V.DNE(0,C,0,0,"ng-template")}function p(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,k,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.maximizeIconTemplate)}}function S(ee,de){}function j(ee,de){1&ee&&V.DNE(0,S,0,0,"ng-template")}function H(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,j,1,0,null,10),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.minimizeIconTemplate)}}function Y(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",22),V.bIt("click",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())})("keydown.enter",function(){V.eBV(ye);const _e=V.XpG(5);return V.Njj(_e.maximize())}),V.DNE(1,n,1,1,"span",23)(2,d,3,2,"ng-container",24)(3,p,2,1,"ng-container",24)(4,H,2,1,"ng-container",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(6,T)),V.BMQ("tabindex",ye.maximizable?"0":"-1"),V.R7$(),V.Y8G("ngIf",ye.maximizeIcon&&!ye.maximizeIconTemplate&&!ye.minimizeIconTemplate),V.R7$(),V.Y8G("ngIf",!ye.maximizeIcon),V.R7$(),V.Y8G("ngIf",!ye.maximized),V.R7$(),V.Y8G("ngIf",ye.maximized)}}function U(ee,de){if(1&ee&&V.nrm(0,"span",30),2&ee){const ye=V.XpG(7);V.Y8G("ngClass",ye.closeIcon)}}function se(ee,de){1&ee&&V.nrm(0,"TimesIcon",27),2&ee&&V.Y8G("styleClass","p-dialog-header-close-icon")}function w(ee,de){if(1&ee&&(V.qex(0),V.DNE(1,U,1,1,"span",29)(2,se,1,1,"TimesIcon",26),V.bVm()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngIf",ye.closeIcon),V.R7$(),V.Y8G("ngIf",!ye.closeIcon)}}function X(ee,de){}function G(ee,de){1&ee&&V.DNE(0,X,0,0,"ng-template")}function x(ee,de){if(1&ee&&(V.j41(0,"span"),V.DNE(1,G,1,0,null,10),V.k0s()),2&ee){const ye=V.XpG(6);V.R7$(),V.Y8G("ngTemplateOutlet",ye.closeIconTemplate)}}function N(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"button",28),V.bIt("click",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))})("keydown.enter",function(_e){V.eBV(ye);const Me=V.XpG(5);return V.Njj(Me.close(_e))}),V.DNE(1,w,3,2,"ng-container",24)(2,x,2,1,"span",24),V.k0s()}if(2&ee){const ye=V.XpG(5);V.Y8G("ngClass",V.lJ4(5,z)),V.BMQ("aria-label",ye.closeAriaLabel)("tabindex",ye.closeTabindex),V.R7$(),V.Y8G("ngIf",!ye.closeIconTemplate),V.R7$(),V.Y8G("ngIf",ye.closeIconTemplate)}}function R(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",16,3),V.bIt("mousedown",function(_e){V.eBV(ye);const Me=V.XpG(4);return V.Njj(Me.initDrag(_e))}),V.DNE(2,g,2,2,"span",17)(3,y,2,1,"span",17)(4,o,1,0,"ng-container",10),V.j41(5,"div",18),V.DNE(6,Y,5,7,"button",19)(7,N,3,6,"button",20),V.k0s()()}if(2&ee){const ye=V.XpG(4);V.R7$(2),V.Y8G("ngIf",!ye.headerFacet&&!ye.headerTemplate),V.R7$(),V.Y8G("ngIf",ye.headerFacet),V.R7$(),V.Y8G("ngTemplateOutlet",ye.headerTemplate),V.R7$(2),V.Y8G("ngIf",ye.maximizable),V.R7$(),V.Y8G("ngIf",ye.closable)}}function K(ee,de){1&ee&&V.eu8(0)}function q(ee,de){1&ee&&V.eu8(0)}function he(ee,de){if(1&ee&&(V.j41(0,"div",31,4),V.SdG(2,2),V.DNE(3,q,1,0,"ng-container",10),V.k0s()),2&ee){const ye=V.XpG(4);V.R7$(3),V.Y8G("ngTemplateOutlet",ye.footerTemplate)}}function me(ee,de){if(1&ee&&(V.DNE(0,a,1,0,"div",11)(1,R,8,5,"div",12),V.j41(2,"div",13,2),V.SdG(4),V.DNE(5,K,1,0,"ng-container",10),V.k0s(),V.DNE(6,he,4,1,"div",14)),2&ee){const ye=V.XpG(3);V.Y8G("ngIf",ye.resizable),V.R7$(),V.Y8G("ngIf",ye.showHeader),V.R7$(),V.HbH(ye.contentStyleClass),V.Y8G("ngClass","p-dialog-content")("ngStyle",ye.contentStyle),V.R7$(3),V.Y8G("ngTemplateOutlet",ye.contentTemplate),V.R7$(),V.Y8G("ngIf",ye.footerFacet||ye.footerTemplate)}}function Ce(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",8,0),V.bIt("@animation.start",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationStart(_e))})("@animation.done",function(_e){V.eBV(ye);const Me=V.XpG(2);return V.Njj(Me.onAnimationEnd(_e))}),V.DNE(2,f,2,1,"ng-container",9)(3,me,7,8,"ng-template",null,1,V.C5r),V.k0s()}if(2&ee){const ye=V.sdS(4),Te=V.XpG(2);V.HbH(Te.styleClass),V.Y8G("ngClass",V.ziG(10,E,Te.rtl,Te.draggable,Te.resizable,Te.maximized))("ngStyle",Te.style)("pFocusTrapDisabled",!1===Te.focusTrap)("@animation",V.eq3(18,b,V.l_i(15,_,Te.transformOptions,Te.transitionOptions))),V.BMQ("aria-labelledby",Te.ariaLabelledBy)("aria-modal",!0),V.R7$(2),V.Y8G("ngIf",Te.headlessTemplate)("ngIfElse",ye)}}function Se(ee,de){if(1&ee){const ye=V.RV6();V.j41(0,"div",6),V.bIt("focus",function(_e){V.eBV(ye);const Me=V.XpG();return V.Njj(Me.containerFocus(_e))}),V.DNE(1,Ce,5,20,"div",7),V.k0s()}if(2&ee){const ye=V.XpG();V.Aen(ye.maskStyle),V.HbH(ye.maskStyleClass),V.Y8G("ngClass",V.zJS(6,I,[ye.modal,ye.modal||ye.blockScroll,"left"===ye.position,"right"===ye.position,"top"===ye.position,"topleft"===ye.position||"top-left"===ye.position,"topright"===ye.position||"top-right"===ye.position,"bottom"===ye.position,"bottomleft"===ye.position||"bottom-left"===ye.position,"bottomright"===ye.position||"bottom-right"===ye.position])),V.R7$(),V.Y8G("ngIf",ye.visible)}}const Oe=(0,M.lY)([(0,M.iF)({transform:"{{transform}}",opacity:0}),(0,M.i0)("{{transition}}")]),Ae=(0,M.lY)([(0,M.i0)("{{transition}}",(0,M.iF)({transform:"{{transform}}",opacity:0}))]);let Fe=(()=>{class ee{document;platformId;el;renderer;zone;cd;config;header;draggable=!0;resizable=!0;get positionLeft(){return 0}set positionLeft(ye){console.log("positionLeft property is deprecated.")}get positionTop(){return 0}set positionTop(ye){console.log("positionTop property is deprecated.")}contentStyle;contentStyleClass;modal=!1;closeOnEscape=!0;dismissableMask=!1;rtl=!1;closable=!0;get responsive(){return!1}set responsive(ye){console.log("Responsive property is deprecated.")}appendTo;breakpoints;styleClass;maskStyleClass;maskStyle;showHeader=!0;get breakpoint(){return 649}set breakpoint(ye){console.log("Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.")}blockScroll=!1;autoZIndex=!0;baseZIndex=0;minX=0;minY=0;focusOnShow=!0;maximizable=!1;keepInViewport=!0;focusTrap=!0;transitionOptions="150ms cubic-bezier(0, 0, 0.2, 1)";closeIcon;closeAriaLabel;closeTabindex="0";minimizeIcon;maximizeIcon;get visible(){return this._visible}set visible(ye){this._visible=ye,this._visible&&!this.maskVisible&&(this.maskVisible=!0)}get style(){return this._style}set style(ye){ye&&(this._style={...ye},this.originalStyle=ye)}get position(){return this._position}set position(ye){switch(this._position=ye,ye){case"topleft":case"bottomleft":case"left":this.transformOptions="translate3d(-100%, 0px, 0px)";break;case"topright":case"bottomright":case"right":this.transformOptions="translate3d(100%, 0px, 0px)";break;case"bottom":this.transformOptions="translate3d(0px, 100%, 0px)";break;case"top":this.transformOptions="translate3d(0px, -100%, 0px)";break;default:this.transformOptions="scale(0.7)"}}onShow=new V.bkB;onHide=new V.bkB;visibleChange=new V.bkB;onResizeInit=new V.bkB;onResizeEnd=new V.bkB;onDragEnd=new V.bkB;onMaximize=new V.bkB;headerFacet;footerFacet;templates;headerViewChild;contentViewChild;footerViewChild;headerTemplate;contentTemplate;footerTemplate;maximizeIconTemplate;closeIconTemplate;minimizeIconTemplate;headlessTemplate;_visible=!1;maskVisible;container;wrapper;dragging;ariaLabelledBy;documentDragListener;documentDragEndListener;resizing;documentResizeListener;documentResizeEndListener;documentEscapeListener;maskClickListener;lastPageX;lastPageY;preventVisibleChangePropagation;maximized;preMaximizeContentHeight;preMaximizeContainerWidth;preMaximizeContainerHeight;preMaximizePageX;preMaximizePageY;id=(0,fe._Y)();_style={};_position="center";originalStyle;transformOptions="scale(0.7)";styleElement;window;constructor(ye,Te,_e,Me,Ee,Xe,Ze){this.document=ye,this.platformId=Te,this.el=_e,this.renderer=Me,this.zone=Ee,this.cd=Xe,this.config=Ze,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(ye=>{switch(ye.getType()){case"header":this.headerTemplate=ye.template;break;case"content":default:this.contentTemplate=ye.template;break;case"footer":this.footerTemplate=ye.template;break;case"closeicon":this.closeIconTemplate=ye.template;break;case"maximizeicon":this.maximizeIconTemplate=ye.template;break;case"minimizeicon":this.minimizeIconTemplate=ye.template;break;case"headless":this.headlessTemplate=ye.template}})}ngOnInit(){this.breakpoints&&this.createStyle()}getAriaLabelledBy(){return null!==this.header?(0,fe._Y)()+"_header":null}focus(){let ye=Z.D.findSingle(this.container,"[autofocus]");ye&&this.zone.runOutsideAngular(()=>{setTimeout(()=>ye.focus(),5)})}close(ye){this.visibleChange.emit(!1),ye.preventDefault()}enableModality(){this.closable&&this.dismissableMask&&(this.maskClickListener=this.renderer.listen(this.wrapper,"mousedown",ye=>{this.wrapper&&this.wrapper.isSameNode(ye.target)&&this.close(ye)})),this.modal&&Z.D.blockBodyScroll()}disableModality(){if(this.wrapper){this.dismissableMask&&this.unbindMaskClickListener();const ye=document.querySelectorAll(".p-dialog-mask-scrollblocker");this.modal&&ye&&1==ye.length&&Z.D.unblockBodyScroll(),this.cd.destroyed||this.cd.detectChanges()}}maximize(){this.maximized=!this.maximized,!this.modal&&!this.blockScroll&&(this.maximized?Z.D.blockBodyScroll():Z.D.unblockBodyScroll()),this.onMaximize.emit({maximized:this.maximized})}unbindMaskClickListener(){this.maskClickListener&&(this.maskClickListener(),this.maskClickListener=null)}moveOnTop(){this.autoZIndex&&(fe.Q$.set("modal",this.container,this.baseZIndex+this.config.zIndex.modal),this.wrapper.style.zIndex=String(parseInt(this.container.style.zIndex,10)-1))}createStyle(){if((0,e.UE)(this.platformId)&&!this.styleElement){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement);let ye="";for(let Te in this.breakpoints)ye+=`\n @media screen and (max-width: ${Te}) {\n .p-dialog[${this.id}]:not(.p-dialog-maximized) {\n width: ${this.breakpoints[Te]} !important;\n }\n }\n `;this.renderer.setProperty(this.styleElement,"innerHTML",ye)}}initDrag(ye){Z.D.hasClass(ye.target,"p-dialog-header-icon")||Z.D.hasClass(ye.target.parentElement,"p-dialog-header-icon")||this.draggable&&(this.dragging=!0,this.lastPageX=ye.pageX,this.lastPageY=ye.pageY,this.container.style.margin="0",Z.D.addClass(this.document.body,"p-unselectable-text"))}onKeydown(ye){if(this.focusTrap&&9===ye.which){ye.preventDefault();let Te=Z.D.getFocusableElements(this.container);if(Te&&Te.length>0)if(Te[0].ownerDocument.activeElement){let _e=Te.indexOf(Te[0].ownerDocument.activeElement);ye.shiftKey?-1==_e||0===_e?Te[Te.length-1].focus():Te[_e-1].focus():-1==_e||_e===Te.length-1?Te[0].focus():Te[_e+1].focus()}else Te[0].focus()}}onDrag(ye){if(this.dragging){const Te=Z.D.getOuterWidth(this.container),_e=Z.D.getOuterHeight(this.container),Me=ye.pageX-this.lastPageX,Ee=ye.pageY-this.lastPageY,Xe=this.container.getBoundingClientRect(),Ze=getComputedStyle(this.container),lt=parseFloat(Ze.marginLeft),Qe=parseFloat(Ze.marginTop),st=Xe.left+Me-lt,kt=Xe.top+Ee-Qe,pt=Z.D.getViewport();this.container.style.position="fixed",this.keepInViewport?(st>=this.minX&&st+Te=this.minY&&kt+_eparseInt(Qe))&&kt.left+ZeparseInt(st))&&kt.top+lt{this.documentDragListener=this.renderer.listen(this.window,"mousemove",this.onDrag.bind(this))})}unbindDocumentDragListener(){this.documentDragListener&&(this.documentDragListener(),this.documentDragListener=null)}bindDocumentDragEndListener(){this.documentDragEndListener||this.zone.runOutsideAngular(()=>{this.documentDragEndListener=this.renderer.listen(this.window,"mouseup",this.endDrag.bind(this))})}unbindDocumentDragEndListener(){this.documentDragEndListener&&(this.documentDragEndListener(),this.documentDragEndListener=null)}bindDocumentResizeListeners(){!this.documentResizeListener&&!this.documentResizeEndListener&&this.zone.runOutsideAngular(()=>{this.documentResizeListener=this.renderer.listen(this.window,"mousemove",this.onResize.bind(this)),this.documentResizeEndListener=this.renderer.listen(this.window,"mouseup",this.resizeEnd.bind(this))})}unbindDocumentResizeListeners(){this.documentResizeListener&&this.documentResizeEndListener&&(this.documentResizeListener(),this.documentResizeEndListener(),this.documentResizeListener=null,this.documentResizeEndListener=null)}bindDocumentEscapeListener(){this.documentEscapeListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:"document","keydown",Te=>{27==Te.which&&this.close(Te)})}unbindDocumentEscapeListener(){this.documentEscapeListener&&(this.documentEscapeListener(),this.documentEscapeListener=null)}appendContainer(){this.appendTo&&("body"===this.appendTo?this.renderer.appendChild(this.document.body,this.wrapper):Z.D.appendChild(this.wrapper,this.appendTo))}restoreAppend(){this.container&&this.appendTo&&this.renderer.appendChild(this.el.nativeElement,this.wrapper)}onAnimationStart(ye){switch(ye.toState){case"visible":this.container=ye.element,this.wrapper=this.container?.parentElement,this.appendContainer(),this.moveOnTop(),this.bindGlobalListeners(),this.container?.setAttribute(this.id,""),this.modal&&this.enableModality(),!this.modal&&this.blockScroll&&Z.D.addClass(this.document.body,"p-overflow-hidden"),this.focusOnShow&&this.focus();break;case"void":this.wrapper&&this.modal&&Z.D.addClass(this.wrapper,"p-component-overlay-leave")}}onAnimationEnd(ye){switch(ye.toState){case"void":this.onContainerDestroy(),this.onHide.emit({}),this.cd.markForCheck();break;case"visible":this.onShow.emit({})}}onContainerDestroy(){this.unbindGlobalListeners(),this.dragging=!1,this.maskVisible=!1,this.maximized&&(Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.document.body.style.removeProperty("--scrollbar-width"),this.maximized=!1),this.modal&&this.disableModality(),this.blockScroll&&Z.D.removeClass(this.document.body,"p-overflow-hidden"),this.container&&this.autoZIndex&&fe.Q$.clear(this.container),this.container=null,this.wrapper=null,this._style=this.originalStyle?{...this.originalStyle}:{}}destroyStyle(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.container&&(this.restoreAppend(),this.onContainerDestroy()),this.destroyStyle()}static \u0275fac=function(Te){return new(Te||ee)(V.rXU(e.qQ),V.rXU(V.Agw),V.rXU(V.aKT),V.rXU(V.sFG),V.rXU(V.SKi),V.rXU(V.gRc),V.rXU(Pe.r1))};static \u0275cmp=V.VBU({type:ee,selectors:[["p-dialog"]],contentQueries:function(Te,_e,Me){if(1&Te&&(V.wni(Me,Pe.Y9,5),V.wni(Me,Pe.wi,5),V.wni(Me,Pe.Ei,4)),2&Te){let Ee;V.mGM(Ee=V.lsd())&&(_e.headerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.footerFacet=Ee.first),V.mGM(Ee=V.lsd())&&(_e.templates=Ee)}},viewQuery:function(Te,_e){if(1&Te&&(V.GBs(A,5),V.GBs(B,5),V.GBs(F,5)),2&Te){let Me;V.mGM(Me=V.lsd())&&(_e.headerViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.contentViewChild=Me.first),V.mGM(Me=V.lsd())&&(_e.footerViewChild=Me.first)}},hostAttrs:[1,"p-element"],inputs:{header:"header",draggable:"draggable",resizable:"resizable",positionLeft:"positionLeft",positionTop:"positionTop",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",modal:"modal",closeOnEscape:"closeOnEscape",dismissableMask:"dismissableMask",rtl:"rtl",closable:"closable",responsive:"responsive",appendTo:"appendTo",breakpoints:"breakpoints",styleClass:"styleClass",maskStyleClass:"maskStyleClass",maskStyle:"maskStyle",showHeader:"showHeader",breakpoint:"breakpoint",blockScroll:"blockScroll",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",minX:"minX",minY:"minY",focusOnShow:"focusOnShow",maximizable:"maximizable",keepInViewport:"keepInViewport",focusTrap:"focusTrap",transitionOptions:"transitionOptions",closeIcon:"closeIcon",closeAriaLabel:"closeAriaLabel",closeTabindex:"closeTabindex",minimizeIcon:"minimizeIcon",maximizeIcon:"maximizeIcon",visible:"visible",style:"style",position:"position"},outputs:{onShow:"onShow",onHide:"onHide",visibleChange:"visibleChange",onResizeInit:"onResizeInit",onResizeEnd:"onResizeEnd",onDragEnd:"onDragEnd",onMaximize:"onMaximize"},ngContentSelectors:D,decls:1,vars:1,consts:[["container",""],["notHeadless",""],["content",""],["titlebar",""],["footer",""],[3,"class","style","ngClass","focus",4,"ngIf"],[3,"focus","ngClass"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","class","pFocusTrapDisabled",4,"ngIf"],["pFocusTrap","","role","dialog",3,"ngClass","ngStyle","pFocusTrapDisabled"],[4,"ngIf","ngIfElse"],[4,"ngTemplateOutlet"],["class","p-resizable-handle","style","z-index: 90;",3,"mousedown",4,"ngIf"],["class","p-dialog-header",3,"mousedown",4,"ngIf"],[3,"ngClass","ngStyle"],["class","p-dialog-footer",4,"ngIf"],[1,"p-resizable-handle",2,"z-index","90",3,"mousedown"],[1,"p-dialog-header",3,"mousedown"],["class","p-dialog-title",3,"id",4,"ngIf"],[1,"p-dialog-header-icons"],["role","button","type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],["type","button","pRipple","","pButton","",3,"ngClass","click","keydown.enter",4,"ngIf"],[1,"p-dialog-title",3,"id"],["role","button","type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-maximize-icon",3,"ngClass",4,"ngIf"],[4,"ngIf"],[1,"p-dialog-header-maximize-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],["type","button","pRipple","","pButton","",3,"click","keydown.enter","ngClass"],["class","p-dialog-header-close-icon",3,"ngClass",4,"ngIf"],[1,"p-dialog-header-close-icon",3,"ngClass"],[1,"p-dialog-footer"]],template:function(Te,_e){1&Te&&(V.NAR(L),V.DNE(0,Se,2,17,"div",5)),2&Te&&V.Y8G("ngIf",_e.maskVisible)},dependencies:()=>[e.YU,e.bT,e.T3,e.B3,ie,$._f,te.n,ve.A,pe,J],styles:["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{-webkit-transition:none;transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"],encapsulation:2,data:{animation:[(0,M.hZ)("animation",[(0,M.kY)("void => visible",[(0,M.sM)(Oe)]),(0,M.kY)("visible => void",[(0,M.sM)(Ae)])])]},changeDetection:0})}return ee})(),oe=(()=>{class ee{static \u0275fac=function(Te){return new(Te||ee)};static \u0275mod=V.$C({type:ee});static \u0275inj=V.G2t({imports:[e.MD,re,$.tm,te.Z,ve.A,pe,J,Pe.Gg]})}return ee})()},81455:(ri,Ft,He)=>{"use strict";He.d(Ft,{D:()=>M,b:()=>e});let M=(()=>{class V{static zindex=1e3;static calculatedScrollbarWidth=null;static calculatedScrollbarHeight=null;static browser;static addClass(Z,ie){Z&&ie&&(Z.classList?Z.classList.add(ie):Z.className+=" "+ie)}static addMultipleClasses(Z,ie){if(Z&&ie)if(Z.classList){let re=ie.trim().split(" ");for(let ve=0;vere.split(" ").forEach(ve=>this.removeClass(Z,ve)))}static hasClass(Z,ie){return!(!Z||!ie)&&(Z.classList?Z.classList.contains(ie):new RegExp("(^| )"+ie+"( |$)","gi").test(Z.className))}static siblings(Z){return Array.prototype.filter.call(Z.parentNode.children,function(ie){return ie!==Z})}static find(Z,ie){return Array.from(Z.querySelectorAll(ie))}static findSingle(Z,ie){return this.isElement(Z)?Z.querySelector(ie):null}static index(Z){let ie=Z.parentNode.childNodes,re=0;for(var ve=0;ve{if(I)return"relative"===getComputedStyle(I).getPropertyValue("position")?I:re(I.parentElement)},ve=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),le=ie.offsetHeight,fe=ie.getBoundingClientRect(),pe=this.getWindowScrollTop(),J=this.getWindowScrollLeft(),te=this.getViewport(),A=re(Z)?.getBoundingClientRect()||{top:-1*pe,left:-1*J};let B,F;fe.top+le+ve.height>te.height?(B=fe.top-A.top-ve.height,Z.style.transformOrigin="bottom",fe.top+B<0&&(B=-1*fe.top)):(B=le+fe.top-A.top,Z.style.transformOrigin="top");const L=fe.left+ve.width-te.width;F=ve.width>te.width?-1*(fe.left-A.left):L>0?fe.left-A.left-L:fe.left-A.left,Z.style.top=B+"px",Z.style.left=F+"px"}static absolutePosition(Z,ie){const re=Z.offsetParent?{width:Z.offsetWidth,height:Z.offsetHeight}:this.getHiddenElementDimensions(Z),ve=re.height,le=re.width,fe=ie.offsetHeight,pe=ie.offsetWidth,J=ie.getBoundingClientRect(),te=this.getWindowScrollTop(),$=this.getWindowScrollLeft(),A=this.getViewport();let B,F;J.top+fe+ve>A.height?(B=J.top+te-ve,Z.style.transformOrigin="bottom",B<0&&(B=te)):(B=fe+J.top+te,Z.style.transformOrigin="top"),F=J.left+le>A.width?Math.max(0,J.left+$+pe-le):J.left+$,Z.style.top=B+"px",Z.style.left=F+"px"}static getParents(Z,ie=[]){return null===Z.parentNode?ie:this.getParents(Z.parentNode,ie.concat([Z.parentNode]))}static getScrollableParents(Z){let ie=[];if(Z){let re=this.getParents(Z);const ve=/(auto|scroll)/,le=fe=>{let pe=window.getComputedStyle(fe,null);return ve.test(pe.getPropertyValue("overflow"))||ve.test(pe.getPropertyValue("overflowX"))||ve.test(pe.getPropertyValue("overflowY"))};for(let fe of re){let pe=1===fe.nodeType&&fe.dataset.scrollselectors;if(pe){let J=pe.split(",");for(let te of J){let $=this.findSingle(fe,te);$&&le($)&&ie.push($)}}9!==fe.nodeType&&le(fe)&&ie.push(fe)}}return ie}static getHiddenElementOuterHeight(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetHeight;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementOuterWidth(Z){Z.style.visibility="hidden",Z.style.display="block";let ie=Z.offsetWidth;return Z.style.display="none",Z.style.visibility="visible",ie}static getHiddenElementDimensions(Z){let ie={};return Z.style.visibility="hidden",Z.style.display="block",ie.width=Z.offsetWidth,ie.height=Z.offsetHeight,Z.style.display="none",Z.style.visibility="visible",ie}static scrollInView(Z,ie){let re=getComputedStyle(Z).getPropertyValue("borderTopWidth"),ve=re?parseFloat(re):0,le=getComputedStyle(Z).getPropertyValue("paddingTop"),fe=le?parseFloat(le):0,pe=Z.getBoundingClientRect(),te=ie.getBoundingClientRect().top+document.body.scrollTop-(pe.top+document.body.scrollTop)-ve-fe,$=Z.scrollTop,A=Z.clientHeight,B=this.getOuterHeight(ie);te<0?Z.scrollTop=$+te:te+B>A&&(Z.scrollTop=$+te-A+B)}static fadeIn(Z,ie){Z.style.opacity=0;let re=+new Date,ve=0,le=function(){ve=+Z.style.opacity.replace(",",".")+((new Date).getTime()-re)/ie,Z.style.opacity=ve,re=+new Date,+ve<1&&(window.requestAnimationFrame&&requestAnimationFrame(le)||setTimeout(le,16))};le()}static fadeOut(Z,ie){var re=1,fe=50/ie;let pe=setInterval(()=>{(re-=fe)<=0&&(re=0,clearInterval(pe)),Z.style.opacity=re},50)}static getWindowScrollTop(){let Z=document.documentElement;return(window.pageYOffset||Z.scrollTop)-(Z.clientTop||0)}static getWindowScrollLeft(){let Z=document.documentElement;return(window.pageXOffset||Z.scrollLeft)-(Z.clientLeft||0)}static matches(Z,ie){var re=Element.prototype;return(re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.msMatchesSelector||function(le){return-1!==[].indexOf.call(document.querySelectorAll(le),this)}).call(Z,ie)}static getOuterWidth(Z,ie){let re=Z.offsetWidth;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginLeft)+parseFloat(ve.marginRight)}return re}static getHorizontalPadding(Z){let ie=getComputedStyle(Z);return parseFloat(ie.paddingLeft)+parseFloat(ie.paddingRight)}static getHorizontalMargin(Z){let ie=getComputedStyle(Z);return parseFloat(ie.marginLeft)+parseFloat(ie.marginRight)}static innerWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static width(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight),ie}static getInnerHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie+=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom),ie}static getOuterHeight(Z,ie){let re=Z.offsetHeight;if(ie){let ve=getComputedStyle(Z);re+=parseFloat(ve.marginTop)+parseFloat(ve.marginBottom)}return re}static getHeight(Z){let ie=Z.offsetHeight,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingTop)+parseFloat(re.paddingBottom)+parseFloat(re.borderTopWidth)+parseFloat(re.borderBottomWidth),ie}static getWidth(Z){let ie=Z.offsetWidth,re=getComputedStyle(Z);return ie-=parseFloat(re.paddingLeft)+parseFloat(re.paddingRight)+parseFloat(re.borderLeftWidth)+parseFloat(re.borderRightWidth),ie}static getViewport(){let Z=window,ie=document,re=ie.documentElement,ve=ie.getElementsByTagName("body")[0];return{width:Z.innerWidth||re.clientWidth||ve.clientWidth,height:Z.innerHeight||re.clientHeight||ve.clientHeight}}static getOffset(Z){var ie=Z.getBoundingClientRect();return{top:ie.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:ie.left+(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0)}}static replaceElementWith(Z,ie){let re=Z.parentNode;if(!re)throw"Can't replace element";return re.replaceChild(ie,Z)}static getUserAgent(){if(navigator&&this.isClient())return navigator.userAgent}static isIE(){var Z=window.navigator.userAgent;return Z.indexOf("MSIE ")>0||(Z.indexOf("Trident/")>0?(Z.indexOf("rv:"),!0):Z.indexOf("Edge/")>0)}static isIOS(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}static isAndroid(){return/(android)/i.test(navigator.userAgent)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static appendChild(Z,ie){if(this.isElement(ie))ie.appendChild(Z);else{if(!(ie&&ie.el&&ie.el.nativeElement))throw"Cannot append "+ie+" to "+Z;ie.el.nativeElement.appendChild(Z)}}static removeChild(Z,ie){if(this.isElement(ie))ie.removeChild(Z);else{if(!ie.el||!ie.el.nativeElement)throw"Cannot remove "+Z+" from "+ie;ie.el.nativeElement.removeChild(Z)}}static removeElement(Z){"remove"in Element.prototype?Z.remove():Z.parentNode.removeChild(Z)}static isElement(Z){return"object"==typeof HTMLElement?Z instanceof HTMLElement:Z&&"object"==typeof Z&&null!==Z&&1===Z.nodeType&&"string"==typeof Z.nodeName}static calculateScrollbarWidth(Z){if(Z){let ie=getComputedStyle(Z);return Z.offsetWidth-Z.clientWidth-parseFloat(ie.borderLeftWidth)-parseFloat(ie.borderRightWidth)}{if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;let ie=document.createElement("div");ie.className="p-scrollbar-measure",document.body.appendChild(ie);let re=ie.offsetWidth-ie.clientWidth;return document.body.removeChild(ie),this.calculatedScrollbarWidth=re,re}}static calculateScrollbarHeight(){if(null!==this.calculatedScrollbarHeight)return this.calculatedScrollbarHeight;let Z=document.createElement("div");Z.className="p-scrollbar-measure",document.body.appendChild(Z);let ie=Z.offsetHeight-Z.clientHeight;return document.body.removeChild(Z),this.calculatedScrollbarWidth=ie,ie}static invokeElementMethod(Z,ie,re){Z[ie].apply(Z,re)}static clearSelection(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch{}}static getBrowser(){if(!this.browser){let Z=this.resolveUserAgent();this.browser={},Z.browser&&(this.browser[Z.browser]=!0,this.browser.version=Z.version),this.browser.chrome?this.browser.webkit=!0:this.browser.webkit&&(this.browser.safari=!0)}return this.browser}static resolveUserAgent(){let Z=navigator.userAgent.toLowerCase(),ie=/(chrome)[ \/]([\w.]+)/.exec(Z)||/(webkit)[ \/]([\w.]+)/.exec(Z)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Z)||/(msie) ([\w.]+)/.exec(Z)||Z.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Z)||[];return{browser:ie[1]||"",version:ie[2]||"0"}}static isInteger(Z){return Number.isInteger?Number.isInteger(Z):"number"==typeof Z&&isFinite(Z)&&Math.floor(Z)===Z}static isHidden(Z){return!Z||null===Z.offsetParent}static isVisible(Z){return Z&&null!=Z.offsetParent}static isExist(Z){return null!==Z&&typeof Z<"u"&&Z.nodeName&&Z.parentNode}static focus(Z,ie){Z&&document.activeElement!==Z&&Z.focus(ie)}static getFocusableElements(Z,ie=""){let re=this.find(Z,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie},\n [contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${ie}`),ve=[];for(let le of re){const fe=getComputedStyle(le);this.isVisible(le)&&"none"!=fe.display&&"hidden"!=fe.visibility&&ve.push(le)}return ve}static getFirstFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[0]:null}static getLastFocusableElement(Z,ie){const re=this.getFocusableElements(Z,ie);return re.length>0?re[re.length-1]:null}static getNextFocusableElement(Z,ie=!1){const re=V.getFocusableElements(Z);let ve=0;if(re&&re.length>0){const le=re.indexOf(re[0].ownerDocument.activeElement);ie?ve=-1==le||0===le?re.length-1:le-1:-1!=le&&le!==re.length-1&&(ve=le+1)}return re[ve]}static generateZIndex(){return this.zindex=this.zindex||999,++this.zindex}static getSelection(){return window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection().toString():document.selection?document.selection.createRange().text:null}static getTargetElement(Z,ie){if(!Z)return null;switch(Z){case"document":return document;case"window":return window;case"@next":return ie?.nextElementSibling;case"@prev":return ie?.previousElementSibling;case"@parent":return ie?.parentElement;case"@grandparent":return ie?.parentElement.parentElement;default:const re=typeof Z;if("string"===re)return document.querySelector(Z);if("object"===re&&Z.hasOwnProperty("nativeElement"))return this.isExist(Z.nativeElement)?Z.nativeElement:void 0;const le=(fe=Z)&&fe.constructor&&fe.call&&fe.apply?Z():Z;return le&&9===le.nodeType||this.isExist(le)?le:null}var fe}static isClient(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}static getAttribute(Z,ie){if(Z){const re=Z.getAttribute(ie);return isNaN(re)?"true"===re||"false"===re?"true"===re:re:+re}}static calculateBodyScrollbarWidth(){return window.innerWidth-document.documentElement.offsetWidth}static blockBodyScroll(Z="p-overflow-hidden"){document.body.style.setProperty("--scrollbar-width",this.calculateBodyScrollbarWidth()+"px"),this.addClass(document.body,Z)}static unblockBodyScroll(Z="p-overflow-hidden"){document.body.style.removeProperty("--scrollbar-width"),this.removeClass(document.body,Z)}}return V})();class e{element;listener;scrollableParents;constructor(Pe,Z=(()=>{})){this.element=Pe,this.listener=Z}bindScrollListener(){this.scrollableParents=M.getScrollableParents(this.element);for(let Pe=0;Pe{"use strict";He.d(Ft,{N:()=>Pe});var M=He(54438),e=He(461),V=He(54420);let Pe=(()=>{class Z extends e.h{pathId;ngOnInit(){this.pathId="url(#"+(0,V._Y)()+")"}static \u0275fac=(()=>{let re;return function(le){return(re||(re=M.xGo(Z)))(le||Z)}})();static \u0275cmp=M.VBU({type:Z,selectors:[["SpinnerIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ve,le){1&ve&&(M.qSk(),M.j41(0,"svg",0)(1,"g"),M.nrm(2,"path",1),M.k0s(),M.j41(3,"defs")(4,"clipPath",2),M.nrm(5,"rect",3),M.k0s()()()),2&ve&&(M.HbH(le.getClassNames()),M.BMQ("aria-label",le.ariaLabel)("aria-hidden",le.ariaHidden)("role",le.role),M.R7$(),M.BMQ("clip-path",le.pathId),M.R7$(3),M.Y8G("id",le.pathId))},encapsulation:2})}return Z})()},1512:(ri,Ft,He)=>{"use strict";He.d(Ft,{A:()=>V});var M=He(54438),e=He(461);let V=(()=>{class Pe extends e.h{static \u0275fac=(()=>{let ie;return function(ve){return(ie||(ie=M.xGo(Pe)))(ve||Pe)}})();static \u0275cmp=M.VBU({type:Pe,selectors:[["TimesIcon"]],standalone:!0,features:[M.Vt3,M.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(re,ve){1&re&&(M.qSk(),M.j41(0,"svg",0),M.nrm(1,"path",1),M.k0s()),2&re&&(M.HbH(ve.getClassNames()),M.BMQ("aria-label",ve.ariaLabel)("aria-hidden",ve.ariaHidden)("role",ve.role))},encapsulation:2})}return Pe})()},22242:(ri,Ft,He)=>{"use strict";He.d(Ft,{S:()=>Pe,u:()=>Z});var M=He(54438),e=He(60177),V=He(89417);let Pe=(()=>{class ie{el;ngModel;cd;filled;constructor(ve,le,fe){this.el=ve,this.ngModel=le,this.cd=fe}ngAfterViewInit(){this.updateFilledState(),this.cd.detectChanges()}ngDoCheck(){this.updateFilledState()}onInput(){this.updateFilledState()}updateFilledState(){this.filled=this.el.nativeElement.value&&this.el.nativeElement.value.length||this.ngModel&&this.ngModel.model}static \u0275fac=function(le){return new(le||ie)(M.rXU(M.aKT),M.rXU(V.vS,8),M.rXU(M.gRc))};static \u0275dir=M.FsC({type:ie,selectors:[["","pInputText",""]],hostAttrs:[1,"p-inputtext","p-component","p-element"],hostVars:2,hostBindings:function(le,fe){1&le&&M.bIt("input",function(J){return fe.onInput(J)}),2&le&&M.AVh("p-filled",fe.filled)}})}return ie})(),Z=(()=>{class ie{static \u0275fac=function(le){return new(le||ie)};static \u0275mod=M.$C({type:ie});static \u0275inj=M.G2t({imports:[e.MD]})}return ie})()},10563:(ri,Ft,He)=>{"use strict";He.d(Ft,{Z:()=>ie,n:()=>Z});var M=He(60177),e=He(54438),V=He(81455),Pe=He(5779);let Z=(()=>{class re{document;platformId;renderer;el;zone;config;constructor(le,fe,pe,J,te,$){this.document=le,this.platformId=fe,this.renderer=pe,this.el=J,this.zone=te,this.config=$}animationListener;mouseDownListener;timeout;ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.config&&this.config.ripple&&this.zone.runOutsideAngular(()=>{this.create(),this.mouseDownListener=this.renderer.listen(this.el.nativeElement,"mousedown",this.onMouseDown.bind(this))})}onMouseDown(le){let fe=this.getInk();if(!fe||"none"===this.document.defaultView?.getComputedStyle(fe,null).display)return;if(V.D.removeClass(fe,"p-ink-active"),!V.D.getHeight(fe)&&!V.D.getWidth(fe)){let $=Math.max(V.D.getOuterWidth(this.el.nativeElement),V.D.getOuterHeight(this.el.nativeElement));fe.style.height=$+"px",fe.style.width=$+"px"}let pe=V.D.getOffset(this.el.nativeElement),J=le.pageX-pe.left+this.document.body.scrollTop-V.D.getWidth(fe)/2,te=le.pageY-pe.top+this.document.body.scrollLeft-V.D.getHeight(fe)/2;this.renderer.setStyle(fe,"top",te+"px"),this.renderer.setStyle(fe,"left",J+"px"),V.D.addClass(fe,"p-ink-active"),this.timeout=setTimeout(()=>{let $=this.getInk();$&&V.D.removeClass($,"p-ink-active")},401)}getInk(){const le=this.el.nativeElement.children;for(let fe=0;fe{class re{static \u0275fac=function(fe){return new(fe||re)};static \u0275mod=e.$C({type:re});static \u0275inj=e.G2t({imports:[M.MD]})}return re})()},46247:(ri,Ft,He)=>{"use strict";He.d(Ft,{c5:()=>Zn,hp:()=>fn,FP:()=>Ai,yc:()=>Qt,Tg:()=>Wt,XI:()=>Ne,bG:()=>Tr});var M=He(60177),e=He(54438),V=He(89417),Pe=He(5779),Z=He(81141),ie=He(49969),re=He(81455),ve=He(10563),le=He(54420),fe=He(461);let pe=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),J=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),te=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),$=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ChevronDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var A=He(1512);let B=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CalendarIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.7838 1.51351H9.83783V0.567568C9.83783 0.417039 9.77804 0.272676 9.6716 0.166237C9.56516 0.0597971 9.42079 0 9.27027 0C9.11974 0 8.97538 0.0597971 8.86894 0.166237C8.7625 0.272676 8.7027 0.417039 8.7027 0.567568V1.51351H5.29729V0.567568C5.29729 0.417039 5.2375 0.272676 5.13106 0.166237C5.02462 0.0597971 4.88025 0 4.72973 0C4.5792 0 4.43484 0.0597971 4.3284 0.166237C4.22196 0.272676 4.16216 0.417039 4.16216 0.567568V1.51351H3.21621C2.66428 1.51351 2.13494 1.73277 1.74467 2.12305C1.35439 2.51333 1.13513 3.04266 1.13513 3.59459V11.9189C1.13513 12.4709 1.35439 13.0002 1.74467 13.3905C2.13494 13.7807 2.66428 14 3.21621 14H10.7838C11.3357 14 11.865 13.7807 12.2553 13.3905C12.6456 13.0002 12.8649 12.4709 12.8649 11.9189V3.59459C12.8649 3.04266 12.6456 2.51333 12.2553 2.12305C11.865 1.73277 11.3357 1.51351 10.7838 1.51351ZM3.21621 2.64865H4.16216V3.59459C4.16216 3.74512 4.22196 3.88949 4.3284 3.99593C4.43484 4.10237 4.5792 4.16216 4.72973 4.16216C4.88025 4.16216 5.02462 4.10237 5.13106 3.99593C5.2375 3.88949 5.29729 3.74512 5.29729 3.59459V2.64865H8.7027V3.59459C8.7027 3.74512 8.7625 3.88949 8.86894 3.99593C8.97538 4.10237 9.11974 4.16216 9.27027 4.16216C9.42079 4.16216 9.56516 4.10237 9.6716 3.99593C9.77804 3.88949 9.83783 3.74512 9.83783 3.59459V2.64865H10.7838C11.0347 2.64865 11.2753 2.74831 11.4527 2.92571C11.6301 3.10311 11.7297 3.34371 11.7297 3.59459V5.67568H2.27027V3.59459C2.27027 3.34371 2.36993 3.10311 2.54733 2.92571C2.72473 2.74831 2.96533 2.64865 3.21621 2.64865ZM10.7838 12.8649H3.21621C2.96533 12.8649 2.72473 12.7652 2.54733 12.5878C2.36993 12.4104 2.27027 12.1698 2.27027 11.9189V6.81081H11.7297V11.9189C11.7297 12.1698 11.6301 12.4104 11.4527 12.5878C11.2753 12.7652 11.0347 12.8649 10.7838 12.8649Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const F=["container"],L=["inputfield"],D=["contentWrapper"],I=[[["p-header"]],[["p-footer"]]],E=["p-header","p-footer"],_=(xe,tt,u,ne,ue)=>({"p-calendar":!0,"p-input-icon-right":xe,"p-calendar-w-btn":tt,"p-calendar-timeonly":u,"p-calendar-disabled":ne,"p-focus":ue}),b=xe=>({clickCallBack:xe}),T=xe=>({"p-datepicker-icon":xe}),z=(xe,tt,u,ne,ue,Ie)=>({"p-datepicker p-component":!0,"p-datepicker-inline":xe,"p-disabled":tt,"p-datepicker-timeonly":u,"p-datepicker-multiple-month":ne,"p-datepicker-monthpicker":ue,"p-datepicker-touch-ui":Ie}),O=(xe,tt)=>({showTransitionParams:xe,hideTransitionParams:tt}),f=xe=>({value:"visibleTouchUI",params:xe}),a=xe=>({value:"visible",params:xe}),g=xe=>({$implicit:xe}),y=(xe,tt)=>({"p-datepicker-other-month":xe,"p-datepicker-today":tt}),o=(xe,tt)=>({"p-highlight":xe,"p-disabled":tt}),n=xe=>[xe];function r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",11),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.k0s()}2&xe&&e.Y8G("styleClass","p-calendar-clear-icon")}function l(xe,tt){}function d(xe,tt){1&xe&&e.DNE(0,l,0,0,"ng-template")}function C(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",12),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.clear())}),e.DNE(1,d,1,0,null,13),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function k(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,r,1,1,"TimesIcon",9)(2,C,2,1,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function p(xe,tt){if(1&xe&&e.nrm(0,"span",16),2&xe){const u=e.XpG(3);e.Y8G("ngClass",u.icon)}}function S(xe,tt){1&xe&&e.nrm(0,"CalendarIcon")}function j(xe,tt){}function H(xe,tt){1&xe&&e.DNE(0,j,0,0,"ng-template")}function Y(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,S,1,0,"CalendarIcon",7)(2,H,1,0,null,13),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngIf",!u.triggerIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.triggerIconTemplate)}}function U(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",14),e.bIt("click",function(ue){e.eBV(u),e.XpG();const Ie=e.sdS(1),nt=e.XpG();return e.Njj(nt.onButtonClick(ue,Ie))}),e.DNE(1,p,1,1,"span",15)(2,Y,3,2,"ng-container",7),e.k0s()}if(2&xe){let u;const ne=e.XpG(2);e.Y8G("disabled",ne.disabled),e.BMQ("aria-label",ne.iconButtonAriaLabel)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null),e.R7$(),e.Y8G("ngIf",ne.icon),e.R7$(),e.Y8G("ngIf",!ne.icon)}}function se(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"CalendarIcon",19),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onButtonClick(ue))}),e.k0s()}if(2&xe){const u=e.XpG(3);e.Y8G("ngClass",e.eq3(1,T,u.showOnFocus))}}function w(xe,tt){1&xe&&e.eu8(0)}function X(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,se,1,3,"CalendarIcon",17)(2,w,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.inputIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.inputIconTemplate)("ngTemplateOutletContext",e.eq3(3,b,u.onButtonClick.bind(u)))}}function G(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",6,1),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputKeydown(ue))})("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onInputClick())})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUserInput(ue))}),e.k0s(),e.DNE(2,k,3,2,"ng-container",7)(3,U,3,6,"button",8)(4,X,3,5,"ng-container",7)}if(2&xe){let u;const ne=e.XpG();e.HbH(ne.inputStyleClass),e.Y8G("value",ne.inputFieldValue)("readonly",ne.readonlyInput)("ngStyle",ne.inputStyle)("placeholder",ne.placeholder||"")("disabled",ne.disabled)("ngClass","p-inputtext p-component"),e.BMQ("id",ne.inputId)("name",ne.name)("required",ne.required)("aria-required",ne.required)("aria-expanded",null!==(u=ne.overlayVisible)&&void 0!==u&&u)("aria-controls",ne.overlayVisible?ne.panelId:null)("aria-labelledby",ne.ariaLabelledBy)("aria-label",ne.ariaLabel)("tabindex",ne.tabindex)("inputmode",ne.touchUI?"off":null),e.R7$(2),e.Y8G("ngIf",ne.showClear&&!ne.disabled&&null!=ne.value),e.R7$(),e.Y8G("ngIf",ne.showIcon&&"button"===ne.iconDisplay),e.R7$(),e.Y8G("ngIf","input"===ne.iconDisplay&&ne.showIcon)}}function x(xe,tt){1&xe&&e.eu8(0)}function N(xe,tt){1&xe&&e.nrm(0,"ChevronLeftIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-prev-icon")}function R(xe,tt){}function K(xe,tt){1&xe&&e.DNE(0,R,0,0,"ng-template")}function q(xe,tt){if(1&xe&&(e.j41(0,"span",41),e.DNE(1,K,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(5);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousIconTemplate)}}function he(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",38),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onPrevButtonClick(ue))}),e.DNE(1,N,1,1,"ChevronLeftIcon",35)(2,q,2,1,"span",39),e.k0s()}if(2&xe){const u=e.XpG(4);e.BMQ("aria-label",u.prevIconAriaLabel),e.R7$(),e.Y8G("ngIf",!u.previousIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousIconTemplate)}}function me(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",42),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToMonthView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseMonth")),e.R7$(),e.SpI(" ",ne.getMonthName(u.month)," ")}}function Ce(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",43),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.switchToYearView(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(4);return e.Njj(Ie.onContainerButtonKeydown(ue))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.Y8G("disabled",ne.switchViewButtonDisabled()),e.BMQ("aria-label",ne.getTranslation("chooseYear")),e.R7$(),e.SpI(" ",ne.getYear(u)," ")}}function Se(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(5);e.R7$(),e.Lme("",u.yearPickerValues()[0]," - ",u.yearPickerValues()[u.yearPickerValues().length-1],"")}}function Oe(xe,tt){1&xe&&e.eu8(0)}function Ae(xe,tt){if(1&xe&&(e.j41(0,"span",44),e.DNE(1,Se,2,2,"ng-container",7)(2,Oe,1,0,"ng-container",18),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngIf",!u.decadeTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decadeTemplate)("ngTemplateOutletContext",e.eq3(3,g,u.yearPickerValues))}}function Fe(xe,tt){1&xe&&e.nrm(0,"ChevronRightIcon",40),2&xe&&e.Y8G("styleClass","p-datepicker-next-icon")}function oe(xe,tt){}function ee(xe,tt){1&xe&&e.DNE(0,oe,0,0,"ng-template")}function de(xe,tt){if(1&xe&&(e.j41(0,"span",45),e.DNE(1,ee,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextIconTemplate)}}function ye(xe,tt){if(1&xe&&(e.j41(0,"th",51)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(5);e.R7$(2),e.JRh(u.getTranslation("weekHeader"))}}function Te(xe,tt){if(1&xe&&(e.j41(0,"th",52)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=tt.$implicit;e.R7$(2),e.JRh(u)}}function _e(xe,tt){if(1&xe&&(e.j41(0,"td",55)(1,"span",56),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG().index,ne=e.XpG(2).$implicit;e.R7$(2),e.SpI(" ",ne.weekNumbers[u]," ")}}function Me(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.JRh(u.day)}}function Ee(xe,tt){1&xe&&e.eu8(0)}function Xe(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ee,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.dateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Ze(xe,tt){1&xe&&e.eu8(0)}function lt(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ze,1,0,"ng-container",18),e.bVm()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngTemplateOutlet",ne.disabledDateTemplate)("ngTemplateOutletContext",e.eq3(2,g,u))}}function Qe(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit;e.R7$(),e.SpI(" ",u.day," ")}}function st(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"span",57),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(6);return e.Njj(nt.onDateSelect(ue,Ie))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3).index,Tt=e.XpG(3);return e.Njj(Tt.onDateCellKeydown(ue,Ie,nt))}),e.DNE(2,Me,2,1,"ng-container",7)(3,Xe,2,4,"ng-container",7)(4,lt,2,4,"ng-container",7),e.k0s(),e.DNE(5,Qe,2,1,"div",58),e.bVm()}if(2&xe){const u=e.XpG().$implicit,ne=e.XpG(6);e.R7$(),e.Y8G("ngClass",e.l_i(5,o,ne.isSelected(u)&&u.selectable,!u.selectable)),e.R7$(),e.Y8G("ngIf",!ne.dateTemplate&&(u.selectable||!ne.disabledDateTemplate)),e.R7$(),e.Y8G("ngIf",u.selectable||!ne.disabledDateTemplate),e.R7$(),e.Y8G("ngIf",!u.selectable),e.R7$(),e.Y8G("ngIf",ne.isSelected(u))}}function kt(xe,tt){if(1&xe&&(e.j41(0,"td",16),e.DNE(1,st,6,8,"ng-container",7),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(6);e.Y8G("ngClass",e.l_i(3,y,u.otherMonth,u.today)),e.BMQ("aria-label",u.day),e.R7$(),e.Y8G("ngIf",!u.otherMonth||ne.showOtherMonths)}}function pt(xe,tt){if(1&xe&&(e.j41(0,"tr"),e.DNE(1,_e,3,1,"td",53)(2,kt,2,6,"td",54),e.k0s()),2&xe){const u=tt.$implicit,ne=e.XpG(5);e.R7$(),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",u)}}function ht(xe,tt){if(1&xe&&(e.j41(0,"div",46)(1,"table",47)(2,"thead")(3,"tr"),e.DNE(4,ye,3,1,"th",48)(5,Te,3,1,"th",49),e.k0s()(),e.j41(6,"tbody"),e.DNE(7,pt,3,2,"tr",50),e.k0s()()()),2&xe){const u=e.XpG().$implicit,ne=e.XpG(3);e.R7$(4),e.Y8G("ngIf",ne.showWeek),e.R7$(),e.Y8G("ngForOf",ne.weekDays),e.R7$(2),e.Y8G("ngForOf",u.dates)}}function Lt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",27)(1,"div",28),e.DNE(2,he,3,3,"button",29),e.j41(3,"div",30),e.DNE(4,me,2,3,"button",31)(5,Ce,2,3,"button",32)(6,Ae,3,5,"span",33),e.k0s(),e.j41(7,"button",34),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onNextButtonClick(ue))}),e.DNE(8,Fe,1,1,"ChevronRightIcon",35)(9,de,2,1,"span",36),e.k0s()(),e.DNE(10,ht,8,3,"div",37),e.k0s()}if(2&xe){const u=tt.index,ne=e.XpG(3);e.R7$(2),e.Y8G("ngIf",0===u),e.R7$(2),e.Y8G("ngIf","date"===ne.currentView),e.R7$(),e.Y8G("ngIf","year"!==ne.currentView),e.R7$(),e.Y8G("ngIf","year"===ne.currentView),e.R7$(),e.xc7("display",1===ne.numberOfMonths||u===ne.numberOfMonths-1?"inline-flex":"none"),e.BMQ("aria-label",ne.nextIconAriaLabel),e.R7$(),e.Y8G("ngIf",!ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf",ne.nextIconTemplate),e.R7$(),e.Y8G("ngIf","date"===ne.currentView)}}function Gt(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function ti(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",62),e.bIt("click",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).index,nt=e.XpG(4);return e.Njj(nt.onMonthCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,Gt,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ue.isMonthSelected(ne),ue.isMonthDisabled(ne))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ue.isMonthSelected(ne))}}function Mt(xe,tt){if(1&xe&&(e.j41(0,"div",60),e.DNE(1,ti,3,6,"span",61),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.monthPickerValues())}}function At(xe,tt){if(1&xe&&(e.j41(0,"div",59),e.EFF(1),e.k0s()),2&xe){const u=e.XpG().$implicit;e.R7$(),e.SpI(" ",u," ")}}function _t(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",65),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearSelect(ue,Ie))})("keydown",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(4);return e.Njj(nt.onYearCellKeydown(ue,Ie))}),e.EFF(1),e.DNE(2,At,2,1,"div",58),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngClass",e.l_i(3,o,ne.isYearSelected(u),ne.isYearDisabled(u))),e.R7$(),e.SpI(" ",u," "),e.R7$(),e.Y8G("ngIf",ne.isYearSelected(u))}}function wt(xe,tt){if(1&xe&&(e.j41(0,"div",63),e.DNE(1,_t,3,6,"span",64),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.yearPickerValues())}}function Jt(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"div",23),e.DNE(2,Lt,11,10,"div",24),e.k0s(),e.DNE(3,Mt,2,1,"div",25)(4,wt,2,1,"div",26),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(2),e.Y8G("ngForOf",u.months),e.R7$(),e.Y8G("ngIf","month"===u.currentView),e.R7$(),e.Y8G("ngIf","year"===u.currentView)}}function ui(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function Fi(xe,tt){}function mi(xe,tt){1&xe&&e.DNE(0,Fi,0,0,"ng-template")}function vi(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Gi(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function _s(xe,tt){}function Fn(xe,tt){1&xe&&e.DNE(0,_s,0,0,"ng-template")}function ls(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function fs(xe,tt){}function zn(xe,tt){1&xe&&e.DNE(0,fs,0,0,"ng-template")}function dn(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function Di(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function Cs(xe,tt){}function On(xe,tt){1&xe&&e.DNE(0,Cs,0,0,"ng-template")}function Pn(xe,tt){if(1&xe&&(e.j41(0,"div",69)(1,"span"),e.EFF(2),e.k0s()()),2&xe){const u=e.XpG(3);e.R7$(2),e.JRh(u.timeSeparator)}}function As(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function $n(xe,tt){}function $i(xe,tt){1&xe&&e.DNE(0,$n,0,0,"ng-template")}function ws(xe,tt){1&xe&&(e.qex(0),e.EFF(1,"0"),e.bVm())}function kn(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function jr(xe,tt){}function fo(xe,tt){1&xe&&e.DNE(0,jr,0,0,"ng-template")}function qr(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",74)(1,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.incrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(2,As,1,0,"ChevronUpIcon",7)(3,$i,1,0,null,13),e.k0s(),e.j41(4,"span"),e.DNE(5,ws,2,0,"ng-container",7),e.EFF(6),e.k0s(),e.j41(7,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.decrementSecond(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseDown(ue,2,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(3);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(8,kn,1,0,"ChevronDownIcon",7)(9,fo,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("nextSecond")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentSecond<10),e.R7$(),e.JRh(u.currentSecond),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevSecond")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function ir(xe,tt){1&xe&&e.nrm(0,"ChevronUpIcon")}function St(xe,tt){}function Rt(xe,tt){1&xe&&e.DNE(0,St,0,0,"ng-template")}function Nt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon")}function bt(xe,tt){}function xt(xe,tt){1&xe&&e.DNE(0,bt,0,0,"ng-template")}function $e(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",75)(1,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(2,ir,1,0,"ChevronUpIcon",7)(3,Rt,1,0,null,13),e.k0s(),e.j41(4,"span"),e.EFF(5),e.k0s(),e.j41(6,"button",76),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.toggleAMPM(ue))}),e.DNE(7,Nt,1,0,"ChevronDownIcon",7)(8,xt,1,0,null,13),e.k0s()()}if(2&xe){const u=e.XpG(3);e.R7$(),e.BMQ("aria-label",u.getTranslation("am")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.JRh(u.pm?"PM":"AM"),e.R7$(),e.BMQ("aria-label",u.getTranslation("pm")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate)}}function yt(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",66)(1,"div",67)(2,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(3,ui,1,0,"ChevronUpIcon",7)(4,mi,1,0,null,13),e.k0s(),e.j41(5,"span"),e.DNE(6,vi,2,0,"ng-container",7),e.EFF(7),e.k0s(),e.j41(8,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementHour(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,0,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(9,Gi,1,0,"ChevronDownIcon",7)(10,Fn,1,0,null,13),e.k0s()(),e.j41(11,"div",69)(12,"span"),e.EFF(13),e.k0s()(),e.j41(14,"div",70)(15,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.incrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(16,ls,1,0,"ChevronUpIcon",7)(17,zn,1,0,null,13),e.k0s(),e.j41(18,"span"),e.DNE(19,dn,2,0,"ng-container",7),e.EFF(20),e.k0s(),e.j41(21,"button",68),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("keydown.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("keydown.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.decrementMinute(ue))})("mousedown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseDown(ue,1,-1))})("mouseup",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.enter",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("keyup.space",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTimePickerElementMouseUp(ue))})("mouseleave",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.onTimePickerElementMouseLeave())}),e.DNE(22,Di,1,0,"ChevronDownIcon",7)(23,On,1,0,null,13),e.k0s()(),e.DNE(24,Pn,3,1,"div",71)(25,qr,10,8,"div",72)(26,$e,9,7,"div",73),e.k0s()}if(2&xe){const u=e.XpG(2);e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextHour")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentHour<10),e.R7$(),e.JRh(u.currentHour),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevHour")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(3),e.JRh(u.timeSeparator),e.R7$(2),e.BMQ("aria-label",u.getTranslation("nextMinute")),e.R7$(),e.Y8G("ngIf",!u.incrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementIconTemplate),e.R7$(2),e.Y8G("ngIf",u.currentMinute<10),e.R7$(),e.JRh(u.currentMinute),e.R7$(),e.BMQ("aria-label",u.getTranslation("prevMinute")),e.R7$(),e.Y8G("ngIf",!u.decrementIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementIconTemplate),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf",u.showSeconds),e.R7$(),e.Y8G("ngIf","12"==u.hourFormat)}}function It(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",77)(1,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onTodayButtonClick(ue))}),e.k0s(),e.j41(2,"button",78),e.bIt("keydown",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onContainerButtonKeydown(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onClearButtonClick(ue))}),e.k0s()()}if(2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("label",u.getTranslation("today"))("ngClass",e.eq3(4,n,u.todayButtonStyleClass)),e.R7$(),e.Y8G("label",u.getTranslation("clear"))("ngClass",e.eq3(6,n,u.clearButtonStyleClass))}}function $t(xe,tt){1&xe&&e.eu8(0)}function si(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",20,2),e.bIt("@overlayAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationStart(ue))})("@overlayAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayAnimationDone(ue))})("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onOverlayClick(ue))}),e.SdG(2),e.DNE(3,x,1,0,"ng-container",13)(4,Jt,5,3,"ng-container",7)(5,yt,27,20,"div",21)(6,It,3,8,"div",22),e.SdG(7,1),e.DNE(8,$t,1,0,"ng-container",13),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngStyle",u.panelStyle)("ngClass",e.l4e(14,z,u.inline,u.disabled,u.timeOnly,u.numberOfMonths>1,"month"===u.view,u.touchUI))("@overlayAnimation",u.touchUI?e.eq3(24,f,e.l_i(21,O,u.showTransitionOptions,u.hideTransitionOptions)):e.eq3(29,a,e.l_i(26,O,u.showTransitionOptions,u.hideTransitionOptions)))("@.disabled",!0===u.inline),e.BMQ("aria-label",u.getTranslation("chooseDate"))("role",u.inline?null:"dialog")("aria-modal",u.inline?null:"true"),e.R7$(3),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",!u.timeOnly),e.R7$(),e.Y8G("ngIf",(u.showTime||u.timeOnly)&&"date"===u.currentView),e.R7$(),e.Y8G("ngIf",u.showButtonBar),e.R7$(2),e.Y8G("ngTemplateOutlet",u.footerTemplate)}}const Ti={provide:V.kq,useExisting:(0,e.Rfq)(()=>Si),multi:!0};let Si=(()=>{class xe{document;el;renderer;cd;zone;config;overlayService;iconDisplay="button";style;styleClass;inputStyle;inputId;name;inputStyleClass;placeholder;ariaLabelledBy;ariaLabel;iconAriaLabel;disabled;dateFormat;multipleSeparator=",";rangeSeparator="-";inline=!1;showOtherMonths=!0;selectOtherMonths;showIcon;icon;appendTo;readonlyInput;shortYearCutoff="+10";monthNavigator;yearNavigator;hourFormat="24";timeOnly;stepHour=1;stepMinute=1;stepSecond=1;showSeconds=!1;required;showOnFocus=!0;showWeek=!1;showClear=!1;dataType="date";selectionMode="single";maxDateCount;showButtonBar;todayButtonStyleClass="p-button-text";clearButtonStyleClass="p-button-text";autoZIndex=!0;baseZIndex=0;panelStyleClass;panelStyle;keepInvalid=!1;hideOnDateTimeSelect=!0;touchUI;timeSeparator=":";focusTrap=!0;showTransitionOptions=".12s cubic-bezier(0, 0, 0.2, 1)";hideTransitionOptions=".1s linear";tabindex;get minDate(){return this._minDate}set minDate(u){this._minDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get maxDate(){return this._maxDate}set maxDate(u){this._maxDate=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDates(){return this._disabledDates}set disabledDates(u){this._disabledDates=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get disabledDays(){return this._disabledDays}set disabledDays(u){this._disabledDays=u,null!=this.currentMonth&&null!=this.currentMonth&&this.currentYear&&this.createMonths(this.currentMonth,this.currentYear)}get yearRange(){return this._yearRange}set yearRange(u){if(this._yearRange=u,u){const ne=u.split(":"),ue=parseInt(ne[0]),Ie=parseInt(ne[1]);this.populateYearOptions(ue,Ie)}}get showTime(){return this._showTime}set showTime(u){this._showTime=u,void 0===this.currentHour&&this.initTime(this.value||new Date),this.updateInputfield()}get responsiveOptions(){return this._responsiveOptions}set responsiveOptions(u){this._responsiveOptions=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get numberOfMonths(){return this._numberOfMonths}set numberOfMonths(u){this._numberOfMonths=u,this.destroyResponsiveStyleElement(),this.createResponsiveStyle()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(u){this._firstDayOfWeek=u,this.createWeekDays()}set locale(u){console.warn("Locale property has no effect, use new i18n API instead.")}get view(){return this._view}set view(u){this._view=u,this.currentView=this._view}get defaultDate(){return this._defaultDate}set defaultDate(u){if(this._defaultDate=u,this.initialized){const ne=u||new Date;this.currentMonth=ne.getMonth(),this.currentYear=ne.getFullYear(),this.initTime(ne),this.createMonths(this.currentMonth,this.currentYear)}}onFocus=new e.bkB;onBlur=new e.bkB;onClose=new e.bkB;onSelect=new e.bkB;onClear=new e.bkB;onInput=new e.bkB;onTodayClick=new e.bkB;onClearClick=new e.bkB;onMonthChange=new e.bkB;onYearChange=new e.bkB;onClickOutside=new e.bkB;onShow=new e.bkB;templates;containerViewChild;inputfieldViewChild;set content(u){this.contentViewChild=u,this.contentViewChild&&(this.isMonthNavigate?(Promise.resolve(null).then(()=>this.updateFocus()),this.isMonthNavigate=!1):!this.focus&&!this.inline&&this.initFocusableCell())}contentViewChild;value;dates;months;weekDays;currentMonth;currentYear;currentHour;currentMinute;currentSecond;pm;mask;maskClickListener;overlay;responsiveStyleElement;overlayVisible;onModelChange=()=>{};onModelTouched=()=>{};calendarElement;timePickerTimer;documentClickListener;animationEndListener;ticksTo1970;yearOptions;focus;isKeydown;filled;inputFieldValue=null;_minDate;_maxDate;_showTime;_yearRange;preventDocumentListener;dateTemplate;headerTemplate;footerTemplate;disabledDateTemplate;decadeTemplate;previousIconTemplate;nextIconTemplate;triggerIconTemplate;clearIconTemplate;decrementIconTemplate;incrementIconTemplate;inputIconTemplate;_disabledDates;_disabledDays;selectElement;todayElement;focusElement;scrollHandler;documentResizeListener;navigationState=null;isMonthNavigate;initialized;translationSubscription;_locale;_responsiveOptions;currentView;attributeSelector;panelId;_numberOfMonths=1;_firstDayOfWeek;_view="date";preventFocus;_defaultDate;window;get locale(){return this._locale}get iconButtonAriaLabel(){return this.iconAriaLabel?this.iconAriaLabel:this.getTranslation("chooseDate")}get prevIconAriaLabel(){return this.getTranslation("year"===this.currentView?"prevDecade":"month"===this.currentView?"prevYear":"prevMonth")}get nextIconAriaLabel(){return this.getTranslation("year"===this.currentView?"nextDecade":"month"===this.currentView?"nextYear":"nextMonth")}constructor(u,ne,ue,Ie,nt,Tt,zt){this.document=u,this.el=ne,this.renderer=ue,this.cd=Ie,this.zone=nt,this.config=Tt,this.overlayService=zt,this.window=this.document.defaultView}ngOnInit(){this.attributeSelector=(0,le._Y)(),this.panelId=this.attributeSelector+"_panel";const u=this.defaultDate||new Date;this.createResponsiveStyle(),this.currentMonth=u.getMonth(),this.currentYear=u.getFullYear(),this.yearOptions=[],this.currentView=this.view,"date"===this.view&&(this.createWeekDays(),this.initTime(u),this.createMonths(this.currentMonth,this.currentYear),this.ticksTo1970=24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7),this.translationSubscription=this.config.translationObserver.subscribe(()=>{this.createWeekDays(),this.cd.markForCheck()}),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"date":default:this.dateTemplate=u.template;break;case"decade":this.decadeTemplate=u.template;break;case"disabledDate":this.disabledDateTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"inputicon":this.inputIconTemplate=u.template;break;case"previousicon":this.previousIconTemplate=u.template;break;case"nexticon":this.nextIconTemplate=u.template;break;case"triggericon":this.triggerIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"decrementicon":this.decrementIconTemplate=u.template;break;case"incrementicon":this.incrementIconTemplate=u.template;break;case"footer":this.footerTemplate=u.template}})}ngAfterViewInit(){this.inline&&(this.contentViewChild&&this.contentViewChild.nativeElement.setAttribute(this.attributeSelector,""),!this.disabled&&!this.inline&&(this.initFocusableCell(),1===this.numberOfMonths&&this.contentViewChild&&this.contentViewChild.nativeElement&&(this.contentViewChild.nativeElement.style.width=re.D.getOuterWidth(this.containerViewChild?.nativeElement)+"px")))}getTranslation(u){return this.config.getTranslation(u)}populateYearOptions(u,ne){this.yearOptions=[];for(let ue=u;ue<=ne;ue++)this.yearOptions.push(ue)}createWeekDays(){this.weekDays=[];let u=this.getFirstDateOfWeek(),ne=this.getTranslation(Pe.Yj.DAY_NAMES_MIN);for(let ue=0;ue<7;ue++)this.weekDays.push(ne[u]),u=6==u?0:++u}monthPickerValues(){let u=[];for(let ne=0;ne<=11;ne++)u.push(this.config.getTranslation("monthNamesShort")[ne]);return u}yearPickerValues(){let u=[],ne=this.currentYear-this.currentYear%10;for(let ue=0;ue<10;ue++)u.push(ne+ue);return u}createMonths(u,ne){this.months=this.months=[];for(let ue=0;ue11&&(Ie=Ie%11-1,nt=ne+1),this.months.push(this.createMonth(Ie,nt))}}getWeekNumber(u){let ne=new Date(u.getTime());ne.setDate(ne.getDate()+4-(ne.getDay()||7));let ue=ne.getTime();return ne.setMonth(0),ne.setDate(1),Math.floor(Math.round((ue-ne.getTime())/864e5)/7)+1}createMonth(u,ne){let ue=[],Ie=this.getFirstDayOfMonthIndex(u,ne),nt=this.getDaysCountInMonth(u,ne),Tt=this.getDaysCountInPrevMonth(u,ne),zt=1,ai=new Date,oi=[],Pi=Math.ceil((nt+Ie)/7);for(let qi=0;qint){let Cn=this.getNextMonthAndYear(u,ne);Yi.push({day:zt-nt,month:Cn.month,year:Cn.year,otherMonth:!0,today:this.isToday(ai,zt-nt,Cn.month,Cn.year),selectable:this.isSelectable(zt-nt,Cn.month,Cn.year,!0)})}else Yi.push({day:zt,month:u,year:ne,today:this.isToday(ai,zt,u,ne),selectable:this.isSelectable(zt,u,ne,!1)});zt++}this.showWeek&&oi.push(this.getWeekNumber(new Date(Yi[0].year,Yi[0].month,Yi[0].day))),ue.push(Yi)}return{month:u,year:ne,dates:ue,weekNumbers:oi}}initTime(u){this.pm=u.getHours()>11,this.showTime?(this.currentMinute=u.getMinutes(),this.currentSecond=u.getSeconds(),this.setCurrentHourPM(u.getHours())):this.timeOnly&&(this.currentMinute=0,this.currentHour=0,this.currentSecond=0)}navBackward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.decrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.decrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(0===this.currentMonth?(this.currentMonth=11,this.decrementYear()):this.currentMonth--,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}navForward(u){this.disabled?u.preventDefault():(this.isMonthNavigate=!0,"month"===this.currentView?(this.incrementYear(),setTimeout(()=>{this.updateFocus()},1)):"year"===this.currentView?(this.incrementDecade(),setTimeout(()=>{this.updateFocus()},1)):(11===this.currentMonth?(this.currentMonth=0,this.incrementYear()):this.currentMonth++,this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}),this.createMonths(this.currentMonth,this.currentYear)))}decrementYear(){this.currentYear--;let u=this.yearOptions;if(this.yearNavigator&&this.currentYearu[u.length-1]){let ne=u[u.length-1]-u[0];this.populateYearOptions(u[0]+ne,u[u.length-1]+ne)}}switchToMonthView(u){this.setCurrentView("month"),u.preventDefault()}switchToYearView(u){this.setCurrentView("year"),u.preventDefault()}onDateSelect(u,ne){!this.disabled&&ne.selectable?(this.isMultipleSelection()&&this.isSelected(ne)?(this.value=this.value.filter((ue,Ie)=>!this.isDateEquals(ue,ne)),0===this.value.length&&(this.value=null),this.updateModel(this.value)):this.shouldSelectDate(ne)&&this.selectDate(ne),(this.isSingleSelection()&&this.hideOnDateTimeSelect||this.isRangeSelection()&&this.value[1])&&setTimeout(()=>{u.preventDefault(),this.hideOverlay(),this.mask&&this.disableModality(),this.cd.markForCheck()},150),this.updateInputfield(),u.preventDefault()):u.preventDefault()}shouldSelectDate(u){return!this.isMultipleSelection()||null==this.maxDateCount||this.maxDateCount>(this.value?this.value.length:0)}onMonthSelect(u,ne){"month"===this.view?this.onDateSelect(u,{year:this.currentYear,month:ne,day:1,selectable:!0}):(this.currentMonth=ne,this.createMonths(this.currentMonth,this.currentYear),this.setCurrentView("date"),this.onMonthChange.emit({month:this.currentMonth+1,year:this.currentYear}))}onYearSelect(u,ne){"year"===this.view?this.onDateSelect(u,{year:ne,month:0,day:1,selectable:!0}):(this.currentYear=ne,this.setCurrentView("month"),this.onYearChange.emit({month:this.currentMonth+1,year:this.currentYear}))}updateInputfield(){let u="";if(this.value)if(this.isSingleSelection())u=this.formatDateTime(this.value);else if(this.isMultipleSelection())for(let ne=0;ne11,this.currentHour=u>=12?12==u?12:u-12:0==u?12:u):this.currentHour=u}setCurrentView(u){this.currentView=u,this.cd.detectChanges(),this.alignOverlay()}selectDate(u){let ne=new Date(u.year,u.month,u.day);if(this.showTime&&(ne.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),ne.setMinutes(this.currentMinute),ne.setSeconds(this.currentSecond)),this.minDate&&this.minDate>ne&&(ne=this.minDate,this.setCurrentHourPM(ne.getHours()),this.currentMinute=ne.getMinutes(),this.currentSecond=ne.getSeconds()),this.maxDate&&this.maxDate=ue.getTime()?Ie=ne:(ue=ne,Ie=null),this.updateModel([ue,Ie])}else this.updateModel([ne,null]);this.onSelect.emit(ne)}updateModel(u){if(this.value=u,"date"==this.dataType)this.onModelChange(this.value);else if("string"==this.dataType)if(this.isSingleSelection())this.onModelChange(this.formatDateTime(this.value));else{let ne=null;Array.isArray(this.value)&&(ne=this.value.map(ue=>this.formatDateTime(ue))),this.onModelChange(ne)}}getFirstDayOfMonthIndex(u,ne){let ue=new Date;ue.setDate(1),ue.setMonth(u),ue.setFullYear(ne);let Ie=ue.getDay()+this.getSundayIndex();return Ie>=7?Ie-7:Ie}getDaysCountInMonth(u,ne){return 32-this.daylightSavingAdjust(new Date(ne,u,32)).getDate()}getDaysCountInPrevMonth(u,ne){let ue=this.getPreviousMonthAndYear(u,ne);return this.getDaysCountInMonth(ue.month,ue.year)}getPreviousMonthAndYear(u,ne){let ue,Ie;return 0===u?(ue=11,Ie=ne-1):(ue=u-1,Ie=ne),{month:ue,year:Ie}}getNextMonthAndYear(u,ne){let ue,Ie;return 11===u?(ue=0,Ie=ne+1):(ue=u+1,Ie=ne),{month:ue,year:Ie}}getSundayIndex(){let u=this.getFirstDateOfWeek();return u>0?7-u:0}isSelected(u){if(!this.value)return!1;if(this.isSingleSelection())return this.isDateEquals(this.value,u);if(this.isMultipleSelection()){let ne=!1;for(let ue of this.value)if(ne=this.isDateEquals(ue,u),ne)break;return ne}return this.isRangeSelection()?this.value[1]?this.isDateEquals(this.value[0],u)||this.isDateEquals(this.value[1],u)||this.isDateBetween(this.value[0],this.value[1],u):this.isDateEquals(this.value[0],u):void 0}isComparable(){return null!=this.value&&"string"!=typeof this.value}isMonthSelected(u){if(this.isComparable()&&!this.isMultipleSelection()){const[ne,ue]=this.isRangeSelection()?this.value:[this.value,this.value],Ie=new Date(this.currentYear,u,1);return Ie>=ne&&Ie<=(ue??ne)}return!1}isMonthDisabled(u){for(let ne=1;ne=nt.getTime()}return!1}isSingleSelection(){return"single"===this.selectionMode}isRangeSelection(){return"range"===this.selectionMode}isMultipleSelection(){return"multiple"===this.selectionMode}isToday(u,ne,ue,Ie){return u.getDate()===ne&&u.getMonth()===ue&&u.getFullYear()===Ie}isSelectable(u,ne,ue,Ie){let nt=!0,Tt=!0,zt=!0,ai=!0;return!(Ie&&!this.selectOtherMonths)&&(this.minDate&&(this.minDate.getFullYear()>ue||this.minDate.getFullYear()===ue&&"year"!=this.currentView&&(this.minDate.getMonth()>ne||this.minDate.getMonth()===ne&&this.minDate.getDate()>u))&&(nt=!1),this.maxDate&&(this.maxDate.getFullYear()1||this.disabled}onPrevButtonClick(u){this.navigationState={backward:!0,button:!0},this.navBackward(u)}onNextButtonClick(u){this.navigationState={backward:!1,button:!0},this.navForward(u)}onContainerButtonKeydown(u){switch(u.which){case 9:if(this.inline||this.trapFocus(u),this.inline){const ne=re.D.findSingle(this.containerViewChild?.nativeElement,".p-datepicker-header");u.target==ne.children[ne.children.length-1]&&this.initFocusableCell()}break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()}}onInputKeydown(u){this.isKeydown=!0,40===u.keyCode&&this.contentViewChild?this.trapFocus(u):27===u.keyCode?this.overlayVisible&&(this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault()):13===u.keyCode?this.overlayVisible&&(this.overlayVisible=!1,u.preventDefault()):9===u.keyCode&&this.contentViewChild&&(re.D.getFocusableElements(this.contentViewChild.nativeElement).forEach(ne=>ne.tabIndex="-1"),this.overlayVisible&&(this.overlayVisible=!1))}onDateCellKeydown(u,ne,ue){const Ie=u.currentTarget,nt=Ie.parentElement;switch(u.which){case 40:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.nextElementSibling;zt?re.D.hasClass(zt.children[Tt].children[0],"p-disabled")?(this.navigationState={backward:!1},this.navForward(u)):(zt.children[Tt].children[0].tabIndex="0",zt.children[Tt].children[0].focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 38:{Ie.tabIndex="-1";let Tt=re.D.index(nt),zt=nt.parentElement.previousElementSibling;if(zt){let ai=zt.children[Tt].children[0];re.D.hasClass(ai,"p-disabled")?(this.navigationState={backward:!0},this.navBackward(u)):(ai.tabIndex="0",ai.focus())}else this.navigationState={backward:!0},this.navBackward(u);u.preventDefault();break}case 37:{Ie.tabIndex="-1";let Tt=nt.previousElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")||re.D.hasClass(zt.parentElement,"p-datepicker-weeknumber")?this.navigateToMonth(!0,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!0,ue);u.preventDefault();break}case 39:{Ie.tabIndex="-1";let Tt=nt.nextElementSibling;if(Tt){let zt=Tt.children[0];re.D.hasClass(zt,"p-disabled")?this.navigateToMonth(!1,ue):(zt.tabIndex="0",zt.focus())}else this.navigateToMonth(!1,ue);u.preventDefault();break}case 13:case 32:this.onDateSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onMonthCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+3:nt-3];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onMonthSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.inline||this.trapFocus(u)}}onYearCellKeydown(u,ne){const ue=u.currentTarget;switch(u.which){case 38:case 40:{ue.tabIndex="-1";var Ie=ue.parentElement.children,nt=re.D.index(ue);let Tt=Ie[40===u.which?nt+2:nt-2];Tt&&(Tt.tabIndex="0",Tt.focus()),u.preventDefault();break}case 37:{ue.tabIndex="-1";let Tt=ue.previousElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!0},this.navBackward(u)),u.preventDefault();break}case 39:{ue.tabIndex="-1";let Tt=ue.nextElementSibling;Tt?(Tt.tabIndex="0",Tt.focus()):(this.navigationState={backward:!1},this.navForward(u)),u.preventDefault();break}case 13:case 32:this.onYearSelect(u,ne),u.preventDefault();break;case 27:this.inputfieldViewChild?.nativeElement.focus(),this.overlayVisible=!1,u.preventDefault();break;case 9:this.trapFocus(u)}}navigateToMonth(u,ne){if(u)if(1===this.numberOfMonths||0===ne)this.navigationState={backward:!0},this.navBackward(event);else{let Ie=re.D.find(this.contentViewChild.nativeElement.children[ne-1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),nt=Ie[Ie.length-1];nt.tabIndex="0",nt.focus()}else if(1===this.numberOfMonths||ne===this.numberOfMonths-1)this.navigationState={backward:!1},this.navForward(event);else{let Ie=re.D.findSingle(this.contentViewChild.nativeElement.children[ne+1],".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");Ie.tabIndex="0",Ie.focus()}}updateFocus(){let u;if(this.navigationState){if(this.navigationState.button)this.initFocusableCell(),this.navigationState.backward?re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-prev").focus():re.D.findSingle(this.contentViewChild.nativeElement,".p-datepicker-next").focus();else{if(this.navigationState.backward){let ne;ne=re.D.find(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)"),ne&&ne.length>0&&(u=ne[ne.length-1])}else u=re.D.findSingle(this.contentViewChild.nativeElement,"month"===this.currentView?".p-monthpicker .p-monthpicker-month:not(.p-disabled)":"year"===this.currentView?".p-yearpicker .p-yearpicker-year:not(.p-disabled)":".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)");u&&(u.tabIndex="0",u.focus())}this.navigationState=null}else this.initFocusableCell()}initFocusableCell(){const u=this.contentViewChild?.nativeElement;let ne;if("month"===this.currentView){let ue=re.D.find(u,".p-monthpicker .p-monthpicker-month:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-monthpicker .p-monthpicker-month.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-monthpicker .p-monthpicker-month.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if("year"===this.currentView){let ue=re.D.find(u,".p-yearpicker .p-yearpicker-year:not(.p-disabled)"),Ie=re.D.findSingle(u,".p-yearpicker .p-yearpicker-year.p-highlight");ue.forEach(nt=>nt.tabIndex=-1),ne=Ie||ue[0],0===ue.length&&re.D.find(u,'.p-yearpicker .p-yearpicker-year.p-disabled[tabindex = "0"]').forEach(Tt=>Tt.tabIndex=-1)}else if(ne=re.D.findSingle(u,"span.p-highlight"),!ne){let ue=re.D.findSingle(u,"td.p-datepicker-today span:not(.p-disabled):not(.p-ink)");ne=ue||re.D.findSingle(u,".p-datepicker-calendar td span:not(.p-disabled):not(.p-ink)")}ne&&(ne.tabIndex="0",!this.preventFocus&&(!this.navigationState||!this.navigationState.button)&&setTimeout(()=>{this.disabled||ne.focus()},1),this.preventFocus=!1)}trapFocus(u){let ne=re.D.getFocusableElements(this.contentViewChild.nativeElement);if(ne&&ne.length>0)if(ne[0].ownerDocument.activeElement){let ue=ne.indexOf(ne[0].ownerDocument.activeElement);if(u.shiftKey)if(-1==ue||0===ue)if(this.focusTrap)ne[ne.length-1].focus();else{if(-1===ue)return this.hideOverlay();if(0===ue)return}else ne[ue-1].focus();else if(-1==ue)if(this.timeOnly)ne[0].focus();else{let Ie=0;for(let nt=0;ntTt||this.minDate.getHours()===Tt&&(this.minDate.getMinutes()>ne||this.minDate.getMinutes()===ne&&this.minDate.getSeconds()>ue))||this.maxDate&&Pi&&this.maxDate.toDateString()===Pi&&(this.maxDate.getHours()=24?ue-24:ue:"12"==this.hourFormat&&(this.currentHour<12&&ue>11&&(Ie=!this.pm),ue=ue>=13?ue-12:ue),this.validateTime(ue,this.currentMinute,this.currentSecond,Ie)&&(this.currentHour=ue,this.pm=Ie),u.preventDefault()}onTimePickerElementMouseDown(u,ne,ue){this.disabled||(this.repeat(u,null,ne,ue),u.preventDefault())}onTimePickerElementMouseUp(u){this.disabled||(this.clearTimePickerTimer(),this.updateTime())}onTimePickerElementMouseLeave(){!this.disabled&&this.timePickerTimer&&(this.clearTimePickerTimer(),this.updateTime())}repeat(u,ne,ue,Ie){let nt=ne||500;switch(this.clearTimePickerTimer(),this.timePickerTimer=setTimeout(()=>{this.repeat(u,100,ue,Ie),this.cd.markForCheck()},nt),ue){case 0:1===Ie?this.incrementHour(u):this.decrementHour(u);break;case 1:1===Ie?this.incrementMinute(u):this.decrementMinute(u);break;case 2:1===Ie?this.incrementSecond(u):this.decrementSecond(u)}this.updateInputfield()}clearTimePickerTimer(){this.timePickerTimer&&(clearTimeout(this.timePickerTimer),this.timePickerTimer=null)}decrementHour(u){let ne=this.currentHour-this.stepHour,ue=this.pm;"24"==this.hourFormat?ne=ne<0?24+ne:ne:"12"==this.hourFormat&&(12===this.currentHour&&(ue=!this.pm),ne=ne<=0?12+ne:ne),this.validateTime(ne,this.currentMinute,this.currentSecond,ue)&&(this.currentHour=ne,this.pm=ue),u.preventDefault()}incrementMinute(u){let ne=this.currentMinute+this.stepMinute;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}decrementMinute(u){let ne=this.currentMinute-this.stepMinute;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,ne,this.currentSecond,this.pm)&&(this.currentMinute=ne),u.preventDefault()}incrementSecond(u){let ne=this.currentSecond+this.stepSecond;ne=ne>59?ne-60:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}decrementSecond(u){let ne=this.currentSecond-this.stepSecond;ne=ne<0?60+ne:ne,this.validateTime(this.currentHour,this.currentMinute,ne,this.pm)&&(this.currentSecond=ne),u.preventDefault()}updateTime(){let u=this.value;this.isRangeSelection()&&(u=this.value[1]||this.value[0]),this.isMultipleSelection()&&(u=this.value[this.value.length-1]),u=u?new Date(u.getTime()):new Date,u.setHours("12"==this.hourFormat?12===this.currentHour?this.pm?12:0:this.pm?this.currentHour+12:this.currentHour:this.currentHour),u.setMinutes(this.currentMinute),u.setSeconds(this.currentSecond),this.isRangeSelection()&&(u=this.value[1]?[this.value[0],u]:[u,null]),this.isMultipleSelection()&&(u=[...this.value.slice(0,-1),u]),this.updateModel(u),this.onSelect.emit(u),this.updateInputfield()}toggleAMPM(u){const ne=!this.pm;this.validateTime(this.currentHour,this.currentMinute,this.currentSecond,ne)&&(this.pm=ne,this.updateTime()),u.preventDefault()}onUserInput(u){if(!this.isKeydown)return;this.isKeydown=!1;let ne=u.target.value;try{let ue=this.parseValueFromString(ne);this.isValidSelection(ue)?(this.updateModel(ue),this.updateUI()):this.keepInvalid&&this.updateModel(ue)}catch{this.updateModel(this.keepInvalid?ne:null)}this.filled=null!=ne&&ne.length,this.onInput.emit(u)}isValidSelection(u){let ne=!0;return this.isSingleSelection()?this.isSelectable(u.getDate(),u.getMonth(),u.getFullYear(),!1)||(ne=!1):u.every(ue=>this.isSelectable(ue.getDate(),ue.getMonth(),ue.getFullYear(),!1))&&this.isRangeSelection()&&(ne=u.length>1&&u[1]>u[0]),ne}parseValueFromString(u){if(!u||0===u.trim().length)return null;let ne;if(this.isSingleSelection())ne=this.parseDateTime(u);else if(this.isMultipleSelection()){let ue=u.split(this.multipleSeparator);ne=[];for(let Ie of ue)ne.push(this.parseDateTime(Ie.trim()))}else if(this.isRangeSelection()){let ue=u.split(" "+this.rangeSeparator+" ");ne=[];for(let Ie=0;Ie{this.disableModality(),this.overlayVisible=!1}),this.renderer.appendChild(this.document.body,this.mask),re.D.blockBodyScroll())}disableModality(){this.mask&&(re.D.addClass(this.mask,"p-component-overlay-leave"),this.animationEndListener||(this.animationEndListener=this.renderer.listen(this.mask,"animationend",this.destroyMask.bind(this))))}destroyMask(){if(!this.mask)return;this.renderer.removeChild(this.document.body,this.mask);let ne,u=this.document.body.children;for(let ue=0;ue{const Pi=ue+1{let Yi=""+Pi;if(Ie(oi))for(;Yi.lengthIe(oi)?Yi[Pi]:qi[Pi];let zt="",ai=!1;if(u)for(ue=0;ue11&&12!=ue&&(ue-=12),ne+="12"==this.hourFormat&&0===ue?12:ue<10?"0"+ue:ue,ne+=":",ne+=Ie<10?"0"+Ie:Ie,this.showSeconds&&(ne+=":",ne+=nt<10?"0"+nt:nt),"12"==this.hourFormat&&(ne+=u.getHours()>11?" PM":" AM"),ne}parseTime(u){let ne=u.split(":");if(ne.length!==(this.showSeconds?3:2))throw"Invalid time";let Ie=parseInt(ne[0]),nt=parseInt(ne[1]),Tt=this.showSeconds?parseInt(ne[2]):null;if(isNaN(Ie)||isNaN(nt)||Ie>23||nt>59||"12"==this.hourFormat&&Ie>12||this.showSeconds&&(isNaN(Tt)||Tt>59))throw"Invalid time";return"12"==this.hourFormat&&(12!==Ie&&this.pm?Ie+=12:!this.pm&&12===Ie&&(Ie-=12)),{hour:Ie,minute:nt,second:Tt}}parseDate(u,ne){if(null==ne||null==u)throw"Invalid arguments";if(""===(u="object"==typeof u?u.toString():u+""))return null;let ue,Ie,nt,tn,Tt=0,zt="string"!=typeof this.shortYearCutoff?this.shortYearCutoff:(new Date).getFullYear()%100+parseInt(this.shortYearCutoff,10),ai=-1,oi=-1,Pi=-1,qi=-1,Yi=!1,Cn=Ws=>{let cr=ue+1{let cr=Cn(Ws),co="@"===Ws?14:"!"===Ws?20:"y"===Ws&&cr?4:"o"===Ws?3:2,_c=new RegExp("^\\d{"+("y"===Ws?co:1)+","+co+"}"),Aa=u.substring(Tt).match(_c);if(!Aa)throw"Missing number at position "+Tt;return Tt+=Aa[0].length,parseInt(Aa[0],10)},Jn=(Ws,cr,co)=>{let Uo=-1,_c=Cn(Ws)?co:cr,Aa=[];for(let Sr=0;Sr<_c.length;Sr++)Aa.push([Sr,_c[Sr]]);Aa.sort((Sr,la)=>-(Sr[1].length-la[1].length));for(let Sr=0;Sr{if(u.charAt(Tt)!==ne.charAt(ue))throw"Unexpected literal at position "+Tt;Tt++};for("month"===this.view&&(Pi=1),ue=0;ue-1)for(oi=1,Pi=qi;Ie=this.getDaysCountInMonth(ai,oi-1),!(Pi<=Ie);)oi++,Pi-=Ie;if("year"===this.view&&(oi=-1===oi?1:oi,Pi=-1===Pi?1:Pi),tn=this.daylightSavingAdjust(new Date(ai,oi-1,Pi)),tn.getFullYear()!==ai||tn.getMonth()+1!==oi||tn.getDate()!==Pi)throw"Invalid date";return tn}daylightSavingAdjust(u){return u?(u.setHours(u.getHours()>12?u.getHours()+2:0),u):null}updateFilledState(){this.filled=this.inputFieldValue&&""!=this.inputFieldValue}onTodayButtonClick(u){const ne=new Date,ue={day:ne.getDate(),month:ne.getMonth(),year:ne.getFullYear(),otherMonth:ne.getMonth()!==this.currentMonth||ne.getFullYear()!==this.currentYear,today:!0,selectable:!0};this.createMonths(ne.getMonth(),ne.getFullYear()),this.onDateSelect(u,ue),this.onTodayClick.emit(u)}onClearButtonClick(u){this.updateModel(null),this.updateInputfield(),this.hideOverlay(),this.onClearClick.emit(u)}createResponsiveStyle(){if(this.numberOfMonths>1&&this.responsiveOptions){this.responsiveStyleElement||(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.body,this.responsiveStyleElement));let u="";if(this.responsiveOptions){let ne=[...this.responsiveOptions].filter(ue=>!(!ue.breakpoint||!ue.numMonths)).sort((ue,Ie)=>-1*ue.breakpoint.localeCompare(Ie.breakpoint,void 0,{numeric:!0}));for(let ue=0;ue{this.documentClickListener=this.renderer.listen(this.el?this.el.nativeElement.ownerDocument:this.document,"mousedown",ne=>{this.isOutsideClicked(ne)&&this.overlayVisible&&this.zone.run(()=>{this.hideOverlay(),this.onClickOutside.emit(ne),this.cd.markForCheck()})})})}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){!this.documentResizeListener&&!this.touchUI&&(this.documentResizeListener=this.renderer.listen(this.window,"resize",this.onWindowResize.bind(this)))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.containerViewChild?.nativeElement,()=>{this.overlayVisible&&this.hideOverlay()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}isOutsideClicked(u){return!(this.el.nativeElement.isSameNode(u.target)||this.isNavIconClicked(u)||this.el.nativeElement.contains(u.target)||this.overlay&&this.overlay.contains(u.target))}isNavIconClicked(u){return re.D.hasClass(u.target,"p-datepicker-prev")||re.D.hasClass(u.target,"p-datepicker-prev-icon")||re.D.hasClass(u.target,"p-datepicker-next")||re.D.hasClass(u.target,"p-datepicker-next-icon")}onWindowResize(){this.overlayVisible&&!re.D.isTouchDevice()&&this.hideOverlay()}onOverlayHide(){this.currentView=this.view,this.mask&&this.destroyMask(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.overlay=null}ngOnDestroy(){this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.translationSubscription&&this.translationSubscription.unsubscribe(),this.overlay&&this.autoZIndex&&le.Q$.clear(this.overlay),this.destroyResponsiveStyleElement(),this.clearTimePickerTimer(),this.restoreOverlayAppend(),this.onOverlayHide()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(Pe.si))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-calendar"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(F,5),e.GBs(L,5),e.GBs(D,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.inputfieldViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.content=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focus)("p-calendar-clearable",ue.showClear&&!ue.disabled)},inputs:{iconDisplay:"iconDisplay",style:"style",styleClass:"styleClass",inputStyle:"inputStyle",inputId:"inputId",name:"name",inputStyleClass:"inputStyleClass",placeholder:"placeholder",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",iconAriaLabel:"iconAriaLabel",disabled:"disabled",dateFormat:"dateFormat",multipleSeparator:"multipleSeparator",rangeSeparator:"rangeSeparator",inline:"inline",showOtherMonths:"showOtherMonths",selectOtherMonths:"selectOtherMonths",showIcon:"showIcon",icon:"icon",appendTo:"appendTo",readonlyInput:"readonlyInput",shortYearCutoff:"shortYearCutoff",monthNavigator:"monthNavigator",yearNavigator:"yearNavigator",hourFormat:"hourFormat",timeOnly:"timeOnly",stepHour:"stepHour",stepMinute:"stepMinute",stepSecond:"stepSecond",showSeconds:"showSeconds",required:"required",showOnFocus:"showOnFocus",showWeek:"showWeek",showClear:"showClear",dataType:"dataType",selectionMode:"selectionMode",maxDateCount:"maxDateCount",showButtonBar:"showButtonBar",todayButtonStyleClass:"todayButtonStyleClass",clearButtonStyleClass:"clearButtonStyleClass",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",panelStyleClass:"panelStyleClass",panelStyle:"panelStyle",keepInvalid:"keepInvalid",hideOnDateTimeSelect:"hideOnDateTimeSelect",touchUI:"touchUI",timeSeparator:"timeSeparator",focusTrap:"focusTrap",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",tabindex:"tabindex",minDate:"minDate",maxDate:"maxDate",disabledDates:"disabledDates",disabledDays:"disabledDays",yearRange:"yearRange",showTime:"showTime",responsiveOptions:"responsiveOptions",numberOfMonths:"numberOfMonths",firstDayOfWeek:"firstDayOfWeek",locale:"locale",view:"view",defaultDate:"defaultDate"},outputs:{onFocus:"onFocus",onBlur:"onBlur",onClose:"onClose",onSelect:"onSelect",onClear:"onClear",onInput:"onInput",onTodayClick:"onTodayClick",onClearClick:"onClearClick",onMonthChange:"onMonthChange",onYearChange:"onYearChange",onClickOutside:"onClickOutside",onShow:"onShow"},features:[e.Jv_([Ti])],ngContentSelectors:E,decls:4,vars:12,consts:[["container",""],["inputfield",""],["contentWrapper",""],[3,"ngClass","ngStyle"],[3,"ngIf"],[3,"class","ngStyle","ngClass","click",4,"ngIf"],["type","text","role","combobox","aria-autocomplete","none","aria-haspopup","dialog","autocomplete","off",3,"focus","keydown","click","blur","input","value","readonly","ngStyle","placeholder","disabled","ngClass"],[4,"ngIf"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","class","p-datepicker-trigger p-button-icon-only","tabindex","0",3,"disabled","click",4,"ngIf"],[3,"styleClass","click",4,"ngIf"],["class","p-calendar-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-calendar-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["type","button","aria-haspopup","dialog","pButton","","pRipple","","tabindex","0",1,"p-datepicker-trigger","p-button-icon-only",3,"click","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"ngClass","click",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"click","ngClass"],[3,"click","ngStyle","ngClass"],["class","p-timepicker",4,"ngIf"],["class","p-datepicker-buttonbar",4,"ngIf"],[1,"p-datepicker-group-container"],["class","p-datepicker-group",4,"ngFor","ngForOf"],["class","p-monthpicker",4,"ngIf"],["class","p-yearpicker",4,"ngIf"],[1,"p-datepicker-group"],[1,"p-datepicker-header"],["class","p-datepicker-prev p-link","type","button","pRipple","",3,"keydown","click",4,"ngIf"],[1,"p-datepicker-title"],["type","button","class","p-datepicker-month p-link",3,"disabled","click","keydown",4,"ngIf"],["type","button","class","p-datepicker-year p-link",3,"disabled","click","keydown",4,"ngIf"],["class","p-datepicker-decade",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-next","p-link",3,"keydown","click"],[3,"styleClass",4,"ngIf"],["class","p-datepicker-next-icon",4,"ngIf"],["class","p-datepicker-calendar-container",4,"ngIf"],["type","button","pRipple","",1,"p-datepicker-prev","p-link",3,"keydown","click"],["class","p-datepicker-prev-icon",4,"ngIf"],[3,"styleClass"],[1,"p-datepicker-prev-icon"],["type","button",1,"p-datepicker-month","p-link",3,"click","keydown","disabled"],["type","button",1,"p-datepicker-year","p-link",3,"click","keydown","disabled"],[1,"p-datepicker-decade"],[1,"p-datepicker-next-icon"],[1,"p-datepicker-calendar-container"],["role","grid",1,"p-datepicker-calendar"],["class","p-datepicker-weekheader p-disabled",4,"ngIf"],["scope","col",4,"ngFor","ngForOf"],[4,"ngFor","ngForOf"],[1,"p-datepicker-weekheader","p-disabled"],["scope","col"],["class","p-datepicker-weeknumber",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"p-datepicker-weeknumber"],[1,"p-disabled"],["draggable","false","pRipple","",3,"click","keydown","ngClass"],["class","p-hidden-accessible","aria-live","polite",4,"ngIf"],["aria-live","polite",1,"p-hidden-accessible"],[1,"p-monthpicker"],["class","p-monthpicker-month","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-monthpicker-month",3,"click","keydown","ngClass"],[1,"p-yearpicker"],["class","p-yearpicker-year","pRipple","",3,"ngClass","click","keydown",4,"ngFor","ngForOf"],["pRipple","",1,"p-yearpicker-year",3,"click","keydown","ngClass"],[1,"p-timepicker"],[1,"p-hour-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","keydown.enter","keydown.space","mousedown","mouseup","keyup.enter","keyup.space","mouseleave"],[1,"p-separator"],[1,"p-minute-picker"],["class","p-separator",4,"ngIf"],["class","p-second-picker",4,"ngIf"],["class","p-ampm-picker",4,"ngIf"],[1,"p-second-picker"],[1,"p-ampm-picker"],["type","button","pRipple","",1,"p-link",3,"keydown","click","keydown.enter"],[1,"p-datepicker-buttonbar"],["type","button","pButton","","pRipple","",3,"keydown","click","label","ngClass"]],template:function(ne,ue){1&ne&&(e.NAR(I),e.j41(0,"span",3,0),e.DNE(2,G,5,21,"ng-template",4)(3,si,9,31,"div",5),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.s1E(6,_,ue.showIcon&&"input"===ue.iconDisplay,ue.showIcon&&"button"===ue.iconDisplay,ue.timeOnly,ue.disabled,ue.focus||ue.overlayVisible))("ngStyle",ue.style),e.R7$(2),e.Y8G("ngIf",!ue.inline),e.R7$(),e.Y8G("ngIf",ue.inline||ue.overlayVisible))},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Z._f,ve.n,pe,J,te,$,A.A,B],styles:["@layer primeng{.p-calendar{position:relative;display:inline-flex;max-width:100%}.p-calendar .p-inputtext{flex:1 1 auto;width:1%}.p-calendar-w-btn .p-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.p-calendar-w-btn .p-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.p-fluid .p-calendar{display:flex}.p-fluid .p-calendar .p-inputtext{width:1%}.p-calendar .p-datepicker{min-width:100%}.p-datepicker{width:auto;position:absolute;top:0;left:0}.p-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.p-datepicker-header{display:flex;align-items:center;justify-content:space-between}.p-datepicker-header .p-datepicker-title{margin:0 auto}.p-datepicker-prev,.p-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group{flex:1 1 auto}.p-datepicker-multiple-month .p-datepicker-group-container{display:flex}.p-datepicker table{width:100%;border-collapse:collapse}.p-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.p-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.p-timepicker{display:flex;justify-content:center;align-items:center}.p-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-timepicker>div{display:flex;align-items:center;flex-direction:column}.p-datepicker-touch-ui,.p-calendar .p-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.p-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.p-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-datepicker-icon{pointer-events:none}.p-calendar-clearable{position:relative}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayAnimation",[(0,ie.wk)("visibleTouchUI",(0,ie.iF)({transform:"translate(-50%,-50%)",opacity:1})),(0,ie.kY)("void => visible",[(0,ie.iF)({opacity:0,transform:"scaleY(0.8)"}),(0,ie.i0)("{{showTransitionParams}}",(0,ie.iF)({opacity:1,transform:"*"}))]),(0,ie.kY)("visible => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0}))]),(0,ie.kY)("void => visibleTouchUI",[(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}),(0,ie.i0)("{{showTransitionParams}}")]),(0,ie.kY)("visibleTouchUI => void",[(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({opacity:0,transform:"translate3d(-50%, -40%, 0) scale(0.9)"}))])])]},changeDetection:0})}return xe})(),Hi=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Z.tm,Pe.Gg,ve.Z,pe,J,te,$,A.A,B,Z.tm,Pe.Gg]})}return xe})(),rs=(()=>{class xe{host;constructor(u){this.host=u}autofocus;focused=!1;ngAfterContentChecked(){this.focused||this.autofocus&&setTimeout(()=>{const u=re.D.getFocusableElements(this.host.nativeElement);0===u.length&&this.host.nativeElement.focus(),u.length>0&&u[0].focus(),this.focused=!0})}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pAutoFocus",""]],hostAttrs:[1,"p-element"],inputs:{autofocus:"autofocus"}})}return xe})(),un=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})();const Xi=["overlay"],cn=["content"],os=["*"],Js=(xe,tt,u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi,qi,Yi)=>({"p-overlay p-component":!0,"p-overlay-modal p-component-overlay p-component-overlay-enter":xe,"p-overlay-center":tt,"p-overlay-top":u,"p-overlay-top-start":ne,"p-overlay-top-end":ue,"p-overlay-bottom":Ie,"p-overlay-bottom-start":nt,"p-overlay-bottom-end":Tt,"p-overlay-left":zt,"p-overlay-left-start":ai,"p-overlay-left-end":oi,"p-overlay-right":Pi,"p-overlay-right-start":qi,"p-overlay-right-end":Yi}),ns=(xe,tt,u)=>({showTransitionParams:xe,hideTransitionParams:tt,transform:u}),Qr=xe=>({value:"visible",params:xe}),nr=xe=>({mode:xe}),Ls=xe=>({$implicit:xe});function Vr(xe,tt){1&xe&&e.eu8(0)}function Ki(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,1),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentClick(ue))})("@overlayContentAnimation.start",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationStart(ue))})("@overlayContentAnimation.done",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onOverlayContentAnimationDone(ue))}),e.SdG(2),e.DNE(3,Vr,1,0,"ng-container",4),e.k0s()}if(2&xe){const u=e.XpG(2);e.HbH(u.contentStyleClass),e.Y8G("ngStyle",u.contentStyle)("ngClass","p-overlay-content")("@overlayContentAnimation",e.eq3(11,Qr,e.sMw(7,ns,u.showTransitionOptions,u.hideTransitionOptions,u.transformOptions[u.modal?u.overlayResponsiveDirection:"default"]))),e.R7$(3),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.eq3(15,Ls,e.eq3(13,nr,u.overlayMode)))}}function Tn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",3,0),e.bIt("click",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onOverlayClick())}),e.DNE(2,Ki,4,17,"div",2),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass",e.zJS(5,Js,[u.modal,u.modal&&"center"===u.overlayResponsiveDirection,u.modal&&"top"===u.overlayResponsiveDirection,u.modal&&"top-start"===u.overlayResponsiveDirection,u.modal&&"top-end"===u.overlayResponsiveDirection,u.modal&&"bottom"===u.overlayResponsiveDirection,u.modal&&"bottom-start"===u.overlayResponsiveDirection,u.modal&&"bottom-end"===u.overlayResponsiveDirection,u.modal&&"left"===u.overlayResponsiveDirection,u.modal&&"left-start"===u.overlayResponsiveDirection,u.modal&&"left-end"===u.overlayResponsiveDirection,u.modal&&"right"===u.overlayResponsiveDirection,u.modal&&"right-start"===u.overlayResponsiveDirection,u.modal&&"right-end"===u.overlayResponsiveDirection])),e.R7$(2),e.Y8G("ngIf",u.visible)}}const Jl={provide:V.kq,useExisting:(0,e.Rfq)(()=>Pa),multi:!0},pr=(0,ie.lY)([(0,ie.iF)({transform:"{{transform}}",opacity:0}),(0,ie.i0)("{{showTransitionParams}}")]),Oa=(0,ie.lY)([(0,ie.i0)("{{hideTransitionParams}}",(0,ie.iF)({transform:"{{transform}}",opacity:0}))]);let Pa=(()=>{class xe{document;platformId;el;renderer;config;overlayService;cd;zone;get visible(){return this._visible}set visible(u){this._visible=u,this._visible&&!this.modalVisible&&(this.modalVisible=!0)}get mode(){return this._mode||this.overlayOptions?.mode}set mode(u){this._mode=u}get style(){return le.BF.merge(this._style,this.modal?this.overlayResponsiveOptions?.style:this.overlayOptions?.style)}set style(u){this._style=u}get styleClass(){return le.BF.merge(this._styleClass,this.modal?this.overlayResponsiveOptions?.styleClass:this.overlayOptions?.styleClass)}set styleClass(u){this._styleClass=u}get contentStyle(){return le.BF.merge(this._contentStyle,this.modal?this.overlayResponsiveOptions?.contentStyle:this.overlayOptions?.contentStyle)}set contentStyle(u){this._contentStyle=u}get contentStyleClass(){return le.BF.merge(this._contentStyleClass,this.modal?this.overlayResponsiveOptions?.contentStyleClass:this.overlayOptions?.contentStyleClass)}set contentStyleClass(u){this._contentStyleClass=u}get target(){const u=this._target||this.overlayOptions?.target;return void 0===u?"@prev":u}set target(u){this._target=u}get appendTo(){return this._appendTo||this.overlayOptions?.appendTo}set appendTo(u){this._appendTo=u}get autoZIndex(){const u=this._autoZIndex||this.overlayOptions?.autoZIndex;return void 0===u||u}set autoZIndex(u){this._autoZIndex=u}get baseZIndex(){const u=this._baseZIndex||this.overlayOptions?.baseZIndex;return void 0===u?0:u}set baseZIndex(u){this._baseZIndex=u}get showTransitionOptions(){const u=this._showTransitionOptions||this.overlayOptions?.showTransitionOptions;return void 0===u?".12s cubic-bezier(0, 0, 0.2, 1)":u}set showTransitionOptions(u){this._showTransitionOptions=u}get hideTransitionOptions(){const u=this._hideTransitionOptions||this.overlayOptions?.hideTransitionOptions;return void 0===u?".1s linear":u}set hideTransitionOptions(u){this._hideTransitionOptions=u}get listener(){return this._listener||this.overlayOptions?.listener}set listener(u){this._listener=u}get responsive(){return this._responsive||this.overlayOptions?.responsive}set responsive(u){this._responsive=u}get options(){return this._options}set options(u){this._options=u}visibleChange=new e.bkB;onBeforeShow=new e.bkB;onShow=new e.bkB;onBeforeHide=new e.bkB;onHide=new e.bkB;onAnimationStart=new e.bkB;onAnimationDone=new e.bkB;templates;overlayViewChild;contentViewChild;contentTemplate;_visible=!1;_mode;_style;_styleClass;_contentStyle;_contentStyleClass;_target;_appendTo;_autoZIndex;_baseZIndex;_showTransitionOptions;_hideTransitionOptions;_listener;_responsive;_options;modalVisible=!1;isOverlayClicked=!1;isOverlayContentClicked=!1;scrollHandler;documentClickListener;documentResizeListener;documentKeyboardListener;window;transformOptions={default:"scaleY(0.8)",center:"scale(0.7)",top:"translate3d(0px, -100%, 0px)","top-start":"translate3d(0px, -100%, 0px)","top-end":"translate3d(0px, -100%, 0px)",bottom:"translate3d(0px, 100%, 0px)","bottom-start":"translate3d(0px, 100%, 0px)","bottom-end":"translate3d(0px, 100%, 0px)",left:"translate3d(-100%, 0px, 0px)","left-start":"translate3d(-100%, 0px, 0px)","left-end":"translate3d(-100%, 0px, 0px)",right:"translate3d(100%, 0px, 0px)","right-start":"translate3d(100%, 0px, 0px)","right-end":"translate3d(100%, 0px, 0px)"};get modal(){if((0,M.UE)(this.platformId))return"modal"===this.mode||this.overlayResponsiveOptions&&this.window?.matchMedia(this.overlayResponsiveOptions.media?.replace("@media","")||`(max-width: ${this.overlayResponsiveOptions.breakpoint})`).matches}get overlayMode(){return this.mode||(this.modal?"modal":"overlay")}get overlayOptions(){return{...this.config?.overlayOptions,...this.options}}get overlayResponsiveOptions(){return{...this.overlayOptions?.responsive,...this.responsive}}get overlayResponsiveDirection(){return this.overlayResponsiveOptions?.direction||"center"}get overlayEl(){return this.overlayViewChild?.nativeElement}get contentEl(){return this.contentViewChild?.nativeElement}get targetEl(){return re.D.getTargetElement(this.target,this.el?.nativeElement)}constructor(u,ne,ue,Ie,nt,Tt,zt,ai){this.document=u,this.platformId=ne,this.el=ue,this.renderer=Ie,this.config=nt,this.overlayService=Tt,this.cd=zt,this.zone=ai,this.window=this.document.defaultView}ngAfterContentInit(){this.templates?.forEach(u=>{u.getType(),this.contentTemplate=u.template})}show(u,ne=!1){this.onVisibleChange(!0),this.handleEvents("onShow",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.addClass(this.document?.body,"p-overflow-hidden")}hide(u,ne=!1){this.visible&&(this.onVisibleChange(!1),this.handleEvents("onHide",{overlay:u||this.overlayEl,target:this.targetEl,mode:this.overlayMode}),ne&&re.D.focus(this.targetEl),this.modal&&re.D.removeClass(this.document?.body,"p-overflow-hidden"))}alignOverlay(){!this.modal&&re.D.alignOverlay(this.overlayEl,this.targetEl,this.appendTo)}onVisibleChange(u){this._visible=u,this.visibleChange.emit(u)}onOverlayClick(){this.isOverlayClicked=!0}onOverlayContentClick(u){this.overlayService.add({originalEvent:u,target:this.targetEl}),this.isOverlayContentClicked=!0}onOverlayContentAnimationStart(u){switch(u.toState){case"visible":this.handleEvents("onBeforeShow",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.autoZIndex&&le.Q$.set(this.overlayMode,this.overlayEl,this.baseZIndex+this.config?.zIndex[this.overlayMode]),re.D.appendOverlay(this.overlayEl,"body"===this.appendTo?this.document.body:this.appendTo,this.appendTo),this.alignOverlay();break;case"void":this.handleEvents("onBeforeHide",{overlay:this.overlayEl,target:this.targetEl,mode:this.overlayMode}),this.modal&&re.D.addClass(this.overlayEl,"p-component-overlay-leave")}this.handleEvents("onAnimationStart",u)}onOverlayContentAnimationDone(u){const ne=this.overlayEl||u.element.parentElement;switch(u.toState){case"visible":this.show(ne,!0),this.bindListeners();break;case"void":this.hide(ne,!0),this.unbindListeners(),re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(ne),this.modalVisible=!1,this.cd.markForCheck()}this.handleEvents("onAnimationDone",u)}handleEvents(u,ne){this[u].emit(ne),this.options&&this.options[u]&&this.options[u](ne),this.config?.overlayOptions&&(this.config?.overlayOptions)[u]&&(this.config?.overlayOptions)[u](ne)}bindListeners(){this.bindScrollListener(),this.bindDocumentClickListener(),this.bindDocumentResizeListener(),this.bindDocumentKeyboardListener()}unbindListeners(){this.unbindScrollListener(),this.unbindDocumentClickListener(),this.unbindDocumentResizeListener(),this.unbindDocumentKeyboardListener()}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.targetEl,u=>{(!this.listener||this.listener(u,{type:"scroll",mode:this.overlayMode,valid:!0}))&&this.hide(u,!0)})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=this.renderer.listen(this.document,"click",u=>{const ue=!(this.targetEl&&(this.targetEl.isSameNode(u.target)||!this.isOverlayClicked&&this.targetEl.contains(u.target))||this.isOverlayContentClicked);(this.listener?this.listener(u,{type:"outside",mode:this.overlayMode,valid:3!==u.which&&ue}):ue)&&this.hide(u),this.isOverlayClicked=this.isOverlayContentClicked=!1}))}unbindDocumentClickListener(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)}bindDocumentResizeListener(){this.documentResizeListener||(this.documentResizeListener=this.renderer.listen(this.window,"resize",u=>{(this.listener?this.listener(u,{type:"resize",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.hide(u,!0)}))}unbindDocumentResizeListener(){this.documentResizeListener&&(this.documentResizeListener(),this.documentResizeListener=null)}bindDocumentKeyboardListener(){this.documentKeyboardListener||this.zone.runOutsideAngular(()=>{this.documentKeyboardListener=this.renderer.listen(this.window,"keydown",u=>{!1!==this.overlayOptions.hideOnEscape&&"Escape"===u.code&&(this.listener?this.listener(u,{type:"keydown",mode:this.overlayMode,valid:!re.D.isTouchDevice()}):!re.D.isTouchDevice())&&this.zone.run(()=>{this.hide(u,!0)})})})}unbindDocumentKeyboardListener(){this.documentKeyboardListener&&(this.documentKeyboardListener(),this.documentKeyboardListener=null)}ngOnDestroy(){this.hide(this.overlayEl,!0),this.overlayEl&&(re.D.appendOverlay(this.overlayEl,this.targetEl,this.appendTo),le.Q$.clear(this.overlayEl)),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.unbindListeners()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(Pe.r1),e.rXU(Pe.si),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-overlay"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Xi,5),e.GBs(cn,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{visible:"visible",mode:"mode",style:"style",styleClass:"styleClass",contentStyle:"contentStyle",contentStyleClass:"contentStyleClass",target:"target",appendTo:"appendTo",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",listener:"listener",responsive:"responsive",options:"options"},outputs:{visibleChange:"visibleChange",onBeforeShow:"onBeforeShow",onShow:"onShow",onBeforeHide:"onBeforeHide",onHide:"onHide",onAnimationStart:"onAnimationStart",onAnimationDone:"onAnimationDone"},features:[e.Jv_([Jl])],ngContentSelectors:os,decls:1,vars:1,consts:[["overlay",""],["content",""],[3,"ngStyle","class","ngClass","click",4,"ngIf"],[3,"click","ngStyle","ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.NAR(),e.DNE(0,Tn,3,20,"div",2)),2&ne&&e.Y8G("ngIf",ue.modalVisible)},dependencies:[M.YU,M.bT,M.T3,M.B3],styles:["@layer primeng{.p-overlay{position:absolute;top:0;left:0}.p-overlay-modal{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%}.p-overlay-content{transform-origin:inherit}.p-overlay-modal>.p-overlay-content{z-index:1;width:90%}.p-overlay-top{align-items:flex-start}.p-overlay-top-start{align-items:flex-start;justify-content:flex-start}.p-overlay-top-end{align-items:flex-start;justify-content:flex-end}.p-overlay-bottom{align-items:flex-end}.p-overlay-bottom-start{align-items:flex-end;justify-content:flex-start}.p-overlay-bottom-end{align-items:flex-end;justify-content:flex-end}.p-overlay-left{justify-content:flex-start}.p-overlay-left-start{justify-content:flex-start;align-items:flex-start}.p-overlay-left-end{justify-content:flex-start;align-items:flex-end}.p-overlay-right{justify-content:flex-end}.p-overlay-right-start{justify-content:flex-end;align-items:flex-start}.p-overlay-right-end{justify-content:flex-end;align-items:flex-end}}\n"],encapsulation:2,data:{animation:[(0,ie.hZ)("overlayContentAnimation",[(0,ie.kY)(":enter",[(0,ie.sM)(pr)]),(0,ie.kY)(":leave",[(0,ie.sM)(Oa)])])]},changeDetection:0})}return xe})(),La=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Pe.Gg]})}return xe})();var Jr=He(38757);const bn=["element"],Ko=["content"],nl=["*"],Gs=(xe,tt,u)=>({"p-scroller":!0,"p-scroller-inline":xe,"p-both-scroll":tt,"p-horizontal-scroll":u}),eo=(xe,tt)=>({$implicit:xe,options:tt}),sl=xe=>({"p-scroller-loading":xe}),rl=xe=>({"p-component-overlay":xe}),vr=xe=>({numCols:xe}),Hs=xe=>({options:xe}),yr=()=>({styleClass:"p-scroller-loading-icon"}),ol=(xe,tt)=>({rows:xe,columns:tt});function ua(xe,tt){1&xe&&e.eu8(0)}function Ra(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ua,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u.loadedItems,u.getContentOptions()))}}function go(xe,tt){1&xe&&e.eu8(0)}function xr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,go,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",ue.itemTemplate)("ngTemplateOutletContext",e.l_i(2,eo,u,ue.getOptions(ne)))}}function pa(xe,tt){if(1&xe&&(e.j41(0,"div",11,3),e.DNE(2,xr,2,5,"ng-container",12),e.k0s()),2&xe){const u=e.XpG(2);e.Y8G("ngClass",e.eq3(5,sl,u.d_loading))("ngStyle",u.contentStyle),e.BMQ("data-pc-section","content"),e.R7$(2),e.Y8G("ngForOf",u.loadedItems)("ngForTrackBy",u._trackBy||u.index)}}function Dr(xe,tt){if(1&xe&&e.nrm(0,"div",13),2&xe){const u=e.XpG(2);e.Y8G("ngStyle",u.spacerStyle),e.BMQ("data-pc-section","spacer")}}function fa(xe,tt){1&xe&&e.eu8(0)}function Is(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,fa,1,0,"ng-container",10),e.bVm()),2&xe){const u=tt.index,ne=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(4,Hs,ne.getLoaderOptions(u,ne.both&&e.eq3(2,vr,ne._numItemsInViewport.cols))))}}function Us(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Is,2,6,"ng-container",15),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngForOf",u.loaderArr)}}function Qi(xe,tt){1&xe&&e.eu8(0)}function zr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qi,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.loaderIconTemplate)("ngTemplateOutletContext",e.eq3(3,Hs,e.lJ4(2,yr)))}}function Do(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",16),2&xe&&(e.Y8G("styleClass","p-scroller-loading-icon pi-spin"),e.BMQ("data-pc-section","loadingIcon"))}function ga(xe,tt){if(1&xe&&e.DNE(0,zr,2,5,"ng-container",6)(1,Do,1,2,"ng-template",null,5,e.C5r),2&xe){const u=e.sdS(2),ne=e.XpG(3);e.Y8G("ngIf",ne.loaderIconTemplate)("ngIfElse",u)}}function mo(xe,tt){if(1&xe&&(e.j41(0,"div",14),e.DNE(1,Us,2,1,"ng-container",6)(2,ga,3,2,"ng-template",null,4,e.C5r),e.k0s()),2&xe){const u=e.sdS(3),ne=e.XpG(2);e.Y8G("ngClass",e.eq3(4,rl,!ne.loaderTemplate)),e.BMQ("data-pc-section","loader"),e.R7$(),e.Y8G("ngIf",ne.loaderTemplate)("ngIfElse",u)}}function ma(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"div",7,1),e.bIt("scroll",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onContainerScroll(ue))}),e.DNE(3,Ra,2,5,"ng-container",6)(4,pa,3,7,"ng-template",null,2,e.C5r)(6,Dr,1,2,"div",8)(7,mo,4,6,"div",9),e.k0s(),e.bVm()}if(2&xe){const u=e.sdS(5),ne=e.XpG();e.R7$(),e.HbH(ne._styleClass),e.Y8G("ngStyle",ne._style)("ngClass",e.sMw(12,Gs,ne.inline,ne.both,ne.horizontal)),e.BMQ("id",ne._id)("tabindex",ne.tabindex)("data-pc-name","scroller")("data-pc-section","root"),e.R7$(2),e.Y8G("ngIf",ne.contentTemplate)("ngIfElse",u),e.R7$(3),e.Y8G("ngIf",ne._showSpacer),e.R7$(),e.Y8G("ngIf",!ne.loaderDisabled&&ne._showLoader&&ne.d_loading)}}function al(xe,tt){1&xe&&e.eu8(0)}function Eo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,al,1,0,"ng-container",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.contentTemplate)("ngTemplateOutletContext",e.l_i(5,eo,u.items,e.l_i(2,ol,u._items,u.loadedColumns)))}}function er(xe,tt){if(1&xe&&(e.SdG(0),e.DNE(1,Eo,2,8,"ng-container",17)),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.contentTemplate)}}let ll=(()=>{class xe{document;platformId;renderer;cd;zone;get id(){return this._id}set id(u){this._id=u}get style(){return this._style}set style(u){this._style=u}get styleClass(){return this._styleClass}set styleClass(u){this._styleClass=u}get tabindex(){return this._tabindex}set tabindex(u){this._tabindex=u}get items(){return this._items}set items(u){this._items=u}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u}get scrollHeight(){return this._scrollHeight}set scrollHeight(u){this._scrollHeight=u}get scrollWidth(){return this._scrollWidth}set scrollWidth(u){this._scrollWidth=u}get orientation(){return this._orientation}set orientation(u){this._orientation=u}get step(){return this._step}set step(u){this._step=u}get delay(){return this._delay}set delay(u){this._delay=u}get resizeDelay(){return this._resizeDelay}set resizeDelay(u){this._resizeDelay=u}get appendOnly(){return this._appendOnly}set appendOnly(u){this._appendOnly=u}get inline(){return this._inline}set inline(u){this._inline=u}get lazy(){return this._lazy}set lazy(u){this._lazy=u}get disabled(){return this._disabled}set disabled(u){this._disabled=u}get loaderDisabled(){return this._loaderDisabled}set loaderDisabled(u){this._loaderDisabled=u}get columns(){return this._columns}set columns(u){this._columns=u}get showSpacer(){return this._showSpacer}set showSpacer(u){this._showSpacer=u}get showLoader(){return this._showLoader}set showLoader(u){this._showLoader=u}get numToleratedItems(){return this._numToleratedItems}set numToleratedItems(u){this._numToleratedItems=u}get loading(){return this._loading}set loading(u){this._loading=u}get autoSize(){return this._autoSize}set autoSize(u){this._autoSize=u}get trackBy(){return this._trackBy}set trackBy(u){this._trackBy=u}get options(){return this._options}set options(u){this._options=u,u&&"object"==typeof u&&Object.entries(u).forEach(([ne,ue])=>this[`_${ne}`]!==ue&&(this[`_${ne}`]=ue))}onLazyLoad=new e.bkB;onScroll=new e.bkB;onScrollIndexChange=new e.bkB;elementViewChild;contentViewChild;templates;_id;_style;_styleClass;_tabindex=0;_items;_itemSize=0;_scrollHeight;_scrollWidth;_orientation="vertical";_step=0;_delay=0;_resizeDelay=10;_appendOnly=!1;_inline=!1;_lazy=!1;_disabled=!1;_loaderDisabled=!1;_columns;_showSpacer=!0;_showLoader=!1;_numToleratedItems;_loading;_autoSize=!1;_trackBy;_options;d_loading=!1;d_numToleratedItems;contentEl;contentTemplate;itemTemplate;loaderTemplate;loaderIconTemplate;first=0;last=0;page=0;isRangeChanged=!1;numItemsInViewport=0;lastScrollPos=0;lazyLoadState={};loaderArr=[];spacerStyle={};contentStyle={};scrollTimeout;resizeTimeout;initialized=!1;windowResizeListener;defaultWidth;defaultHeight;defaultContentWidth;defaultContentHeight;get vertical(){return"vertical"===this._orientation}get horizontal(){return"horizontal"===this._orientation}get both(){return"both"===this._orientation}get loadedItems(){return this._items&&!this.d_loading?this.both?this._items.slice(this._appendOnly?0:this.first.rows,this.last.rows).map(u=>this._columns?u:u.slice(this._appendOnly?0:this.first.cols,this.last.cols)):this.horizontal&&this._columns?this._items:this._items.slice(this._appendOnly?0:this.first,this.last):[]}get loadedRows(){return this.d_loading?this._loaderDisabled?this.loaderArr:[]:this.loadedItems}get loadedColumns(){return this._columns&&(this.both||this.horizontal)?this.d_loading&&this._loaderDisabled?this.both?this.loaderArr[0]:this.loaderArr:this._columns.slice(this.both?this.first.cols:this.first,this.both?this.last.cols:this.last):this._columns}constructor(u,ne,ue,Ie,nt){this.document=u,this.platformId=ne,this.renderer=ue,this.cd=Ie,this.zone=nt}ngOnInit(){this.setInitialState()}ngOnChanges(u){let ne=!1;if(u.loading){const{previousValue:ue,currentValue:Ie}=u.loading;this.lazy&&ue!==Ie&&Ie!==this.d_loading&&(this.d_loading=Ie,ne=!0)}if(u.orientation&&(this.lastScrollPos=this.both?{top:0,left:0}:0),u.numToleratedItems){const{previousValue:ue,currentValue:Ie}=u.numToleratedItems;ue!==Ie&&Ie!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie)}if(u.options){const{previousValue:ue,currentValue:Ie}=u.options;this.lazy&&ue?.loading!==Ie?.loading&&Ie?.loading!==this.d_loading&&(this.d_loading=Ie.loading,ne=!0),ue?.numToleratedItems!==Ie?.numToleratedItems&&Ie?.numToleratedItems!==this.d_numToleratedItems&&(this.d_numToleratedItems=Ie.numToleratedItems)}this.initialized&&!ne&&(u.items?.previousValue?.length!==u.items?.currentValue?.length||u.itemSize||u.scrollHeight||u.scrollWidth)&&(this.init(),this.calculateAutoSize())}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"content":this.contentTemplate=u.template;break;case"item":default:this.itemTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"loadericon":this.loaderIconTemplate=u.template}})}ngAfterViewInit(){Promise.resolve().then(()=>{this.viewInit()})}ngAfterViewChecked(){this.initialized||this.viewInit()}ngOnDestroy(){this.unbindResizeListener(),this.contentEl=null,this.initialized=!1}viewInit(){(0,M.UE)(this.platformId)&&re.D.isVisible(this.elementViewChild?.nativeElement)&&(this.setInitialState(),this.setContentEl(this.contentEl),this.init(),this.defaultWidth=re.D.getWidth(this.elementViewChild?.nativeElement),this.defaultHeight=re.D.getHeight(this.elementViewChild?.nativeElement),this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.initialized=!0)}init(){this._disabled||(this.setSize(),this.calculateOptions(),this.setSpacerSize(),this.bindResizeListener(),this.cd.detectChanges())}setContentEl(u){this.contentEl=u||this.contentViewChild?.nativeElement||re.D.findSingle(this.elementViewChild?.nativeElement,".p-scroller-content")}setInitialState(){this.first=this.both?{rows:0,cols:0}:0,this.last=this.both?{rows:0,cols:0}:0,this.numItemsInViewport=this.both?{rows:0,cols:0}:0,this.lastScrollPos=this.both?{top:0,left:0}:0,this.d_loading=this._loading||!1,this.d_numToleratedItems=this._numToleratedItems,this.loaderArr=[],this.spacerStyle={},this.contentStyle={}}getElementRef(){return this.elementViewChild}getPageByFirst(u){return Math.floor(((u??this.first)+4*this.d_numToleratedItems)/(this._step||1))}isPageChanged(u){return!this._step||this.page!==this.getPageByFirst(u??this.first)}scrollTo(u){this.elementViewChild?.nativeElement?.scrollTo(u)}scrollToIndex(u,ne="auto"){if(this.both?u.every(Ie=>Ie>-1):u>-1){const Ie=this.first,{scrollTop:nt=0,scrollLeft:Tt=0}=this.elementViewChild?.nativeElement,{numToleratedItems:zt}=this.calculateNumItems(),ai=this.getContentPosition(),oi=this.itemSize,Pi=(Jn=0,Ds)=>Jn<=Ds?0:Jn,qi=(Jn,Ds,Ws)=>Jn*Ds+Ws,Yi=(Jn=0,Ds=0)=>this.scrollTo({left:Jn,top:Ds,behavior:ne});let tn=this.both?{rows:0,cols:0}:0,Cn=!1,nn=!1;this.both?(tn={rows:Pi(u[0],zt[0]),cols:Pi(u[1],zt[1])},Yi(qi(tn.cols,oi[1],ai.left),qi(tn.rows,oi[0],ai.top)),nn=this.lastScrollPos.top!==nt||this.lastScrollPos.left!==Tt,Cn=tn.rows!==Ie.rows||tn.cols!==Ie.cols):(tn=Pi(u,zt),this.horizontal?Yi(qi(tn,oi,ai.left),nt):Yi(Tt,qi(tn,oi,ai.top)),nn=this.lastScrollPos!==(this.horizontal?Tt:nt),Cn=tn!==Ie),this.isRangeChanged=Cn,nn&&(this.first=tn)}}scrollInView(u,ne,ue="auto"){if(ne){const{first:Ie,viewport:nt}=this.getRenderedRange(),Tt=(oi=0,Pi=0)=>this.scrollTo({left:oi,top:Pi,behavior:ue}),ai="to-end"===ne;if("to-start"===ne){if(this.both)nt.first.rows-Ie.rows>u[0]?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows-1)*this._itemSize[0]):nt.first.cols-Ie.cols>u[1]&&Tt((nt.first.cols-1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.first-Ie>u){const oi=(nt.first-1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else if(ai)if(this.both)nt.last.rows-Ie.rows<=u[0]+1?Tt(nt.first.cols*this._itemSize[1],(nt.first.rows+1)*this._itemSize[0]):nt.last.cols-Ie.cols<=u[1]+1&&Tt((nt.first.cols+1)*this._itemSize[1],nt.first.rows*this._itemSize[0]);else if(nt.last-Ie<=u+1){const oi=(nt.first+1)*this._itemSize;this.horizontal?Tt(oi,0):Tt(0,oi)}}else this.scrollToIndex(u,ue)}getRenderedRange(){const u=(Ie,nt)=>Math.floor(Ie/(nt||Ie));let ne=this.first,ue=0;if(this.elementViewChild?.nativeElement){const{scrollTop:Ie,scrollLeft:nt}=this.elementViewChild.nativeElement;this.both?(ne={rows:u(Ie,this._itemSize[0]),cols:u(nt,this._itemSize[1])},ue={rows:ne.rows+this.numItemsInViewport.rows,cols:ne.cols+this.numItemsInViewport.cols}):(ne=u(this.horizontal?nt:Ie,this._itemSize),ue=ne+this.numItemsInViewport)}return{first:this.first,last:this.last,viewport:{first:ne,last:ue}}}calculateNumItems(){const u=this.getContentPosition(),ne=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetWidth-u.left:0)||0,ue=(this.elementViewChild?.nativeElement?this.elementViewChild.nativeElement.offsetHeight-u.top:0)||0,Ie=(ai,oi)=>Math.ceil(ai/(oi||ai)),nt=ai=>Math.ceil(ai/2),Tt=this.both?{rows:Ie(ue,this._itemSize[0]),cols:Ie(ne,this._itemSize[1])}:Ie(this.horizontal?ne:ue,this._itemSize);return{numItemsInViewport:Tt,numToleratedItems:this.d_numToleratedItems||(this.both?[nt(Tt.rows),nt(Tt.cols)]:nt(Tt))}}calculateOptions(){const{numItemsInViewport:u,numToleratedItems:ne}=this.calculateNumItems(),ue=(Tt,zt,ai,oi=!1)=>this.getLast(Tt+zt+(TtArray.from({length:u.cols})):Array.from({length:u})),this._lazy&&Promise.resolve().then(()=>{this.lazyLoadState={first:this._step?this.both?{rows:0,cols:Ie.cols}:0:Ie,last:Math.min(this._step?this._step:this.last,this.items.length)},this.handleEvents("onLazyLoad",this.lazyLoadState)})}calculateAutoSize(){this._autoSize&&!this.d_loading&&Promise.resolve().then(()=>{if(this.contentEl){this.contentEl.style.minHeight=this.contentEl.style.minWidth="auto",this.contentEl.style.position="relative",this.elementViewChild.nativeElement.style.contain="none";const[u,ne]=[re.D.getWidth(this.contentEl),re.D.getHeight(this.contentEl)];u!==this.defaultContentWidth&&(this.elementViewChild.nativeElement.style.width=""),ne!==this.defaultContentHeight&&(this.elementViewChild.nativeElement.style.height="");const[ue,Ie]=[re.D.getWidth(this.elementViewChild.nativeElement),re.D.getHeight(this.elementViewChild.nativeElement)];(this.both||this.horizontal)&&(this.elementViewChild.nativeElement.style.width=uethis.elementViewChild.nativeElement.style[nt]=Tt;this.both||this.horizontal?(Ie("height",ue),Ie("width",ne)):Ie("height",ue)}}setSpacerSize(){if(this._items){const u=this.getContentPosition(),ne=(ue,Ie,nt,Tt=0)=>this.spacerStyle={...this.spacerStyle,[`${ue}`]:(Ie||[]).length*nt+Tt+"px"};this.both?(ne("height",this._items,this._itemSize[0],u.y),ne("width",this._columns||this._items[1],this._itemSize[1],u.x)):this.horizontal?ne("width",this._columns||this._items,this._itemSize,u.x):ne("height",this._items,this._itemSize,u.y)}}setContentPosition(u){if(this.contentEl&&!this._appendOnly){const ne=u?u.first:this.first,ue=(nt,Tt)=>nt*Tt,Ie=(nt=0,Tt=0)=>this.contentStyle={...this.contentStyle,transform:`translate3d(${nt}px, ${Tt}px, 0)`};if(this.both)Ie(ue(ne.cols,this._itemSize[1]),ue(ne.rows,this._itemSize[0]));else{const nt=ue(ne,this._itemSize);this.horizontal?Ie(nt,0):Ie(0,nt)}}}onScrollPositionChange(u){const ne=u.target,ue=this.getContentPosition(),Ie=(nn,Jn)=>nn?nn>Jn?nn-Jn:nn:0,nt=(nn,Jn)=>Math.floor(nn/(Jn||nn)),Tt=(nn,Jn,Ds,Ws,cr,co)=>nn<=cr?cr:co?Ds-Ws-cr:Jn+cr-1,zt=(nn,Jn,Ds,Ws,cr,co,Uo)=>nn<=co?0:Math.max(0,Uo?nnJn?Ds:nn-2*co),ai=(nn,Jn,Ds,Ws,cr,co=!1)=>{let Uo=Jn+Ws+2*cr;return nn>=cr&&(Uo+=cr+1),this.getLast(Uo,co)},oi=Ie(ne.scrollTop,ue.top),Pi=Ie(ne.scrollLeft,ue.left);let qi=this.both?{rows:0,cols:0}:0,Yi=this.last,tn=!1,Cn=this.lastScrollPos;if(this.both){const nn=this.lastScrollPos.top<=oi,Jn=this.lastScrollPos.left<=Pi;if(!this._appendOnly||this._appendOnly&&(nn||Jn)){const Ds={rows:nt(oi,this._itemSize[0]),cols:nt(Pi,this._itemSize[1])},Ws={rows:Tt(Ds.rows,this.first.rows,this.last.rows,this.numItemsInViewport.rows,this.d_numToleratedItems[0],nn),cols:Tt(Ds.cols,this.first.cols,this.last.cols,this.numItemsInViewport.cols,this.d_numToleratedItems[1],Jn)};qi={rows:zt(Ds.rows,Ws.rows,this.first.rows,0,0,this.d_numToleratedItems[0],nn),cols:zt(Ds.cols,Ws.cols,this.first.cols,0,0,this.d_numToleratedItems[1],Jn)},Yi={rows:ai(Ds.rows,qi.rows,0,this.numItemsInViewport.rows,this.d_numToleratedItems[0]),cols:ai(Ds.cols,qi.cols,0,this.numItemsInViewport.cols,this.d_numToleratedItems[1],!0)},tn=qi.rows!==this.first.rows||Yi.rows!==this.last.rows||qi.cols!==this.first.cols||Yi.cols!==this.last.cols||this.isRangeChanged,Cn={top:oi,left:Pi}}}else{const nn=this.horizontal?Pi:oi,Jn=this.lastScrollPos<=nn;if(!this._appendOnly||this._appendOnly&&Jn){const Ds=nt(nn,this._itemSize);qi=zt(Ds,Tt(Ds,this.first,this.last,this.numItemsInViewport,this.d_numToleratedItems,Jn),this.first,0,0,this.d_numToleratedItems,Jn),Yi=ai(Ds,qi,0,this.numItemsInViewport,this.d_numToleratedItems),tn=qi!==this.first||Yi!==this.last||this.isRangeChanged,Cn=nn}}return{first:qi,last:Yi,isRangeChanged:tn,scrollPos:Cn}}onScrollChange(u){const{first:ne,last:ue,isRangeChanged:Ie,scrollPos:nt}=this.onScrollPositionChange(u);if(Ie){const Tt={first:ne,last:ue};if(this.setContentPosition(Tt),this.first=ne,this.last=ue,this.lastScrollPos=nt,this.handleEvents("onScrollIndexChange",Tt),this._lazy&&this.isPageChanged(ne)){const zt={first:this._step?Math.min(this.getPageByFirst(ne)*this._step,this.items.length-this._step):ne,last:Math.min(this._step?(this.getPageByFirst(ne)+1)*this._step:ue,this.items.length)};(this.lazyLoadState.first!==zt.first||this.lazyLoadState.last!==zt.last)&&this.handleEvents("onLazyLoad",zt),this.lazyLoadState=zt}}}onContainerScroll(u){if(this.handleEvents("onScroll",{originalEvent:u}),this._delay&&this.isPageChanged()){if(this.scrollTimeout&&clearTimeout(this.scrollTimeout),!this.d_loading&&this.showLoader){const{isRangeChanged:ne}=this.onScrollPositionChange(u);(ne||this._step&&this.isPageChanged())&&(this.d_loading=!0,this.cd.detectChanges())}this.scrollTimeout=setTimeout(()=>{this.onScrollChange(u),this.d_loading&&this.showLoader&&(!this._lazy||void 0===this._loading)&&(this.d_loading=!1,this.page=this.getPageByFirst(),this.cd.detectChanges())},this._delay)}else!this.d_loading&&this.onScrollChange(u)}bindResizeListener(){(0,M.UE)(this.platformId)&&(this.windowResizeListener||this.zone.runOutsideAngular(()=>{const u=this.document.defaultView,ne=re.D.isTouchDevice()?"orientationchange":"resize";this.windowResizeListener=this.renderer.listen(u,ne,this.onWindowResize.bind(this))}))}unbindResizeListener(){this.windowResizeListener&&(this.windowResizeListener(),this.windowResizeListener=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{if(re.D.isVisible(this.elementViewChild?.nativeElement)){const[u,ne]=[re.D.getWidth(this.elementViewChild?.nativeElement),re.D.getHeight(this.elementViewChild?.nativeElement)],[ue,Ie]=[u!==this.defaultWidth,ne!==this.defaultHeight];(this.both?ue||Ie:this.horizontal?ue:this.vertical&&Ie)&&this.zone.run(()=>{this.d_numToleratedItems=this._numToleratedItems,this.defaultWidth=u,this.defaultHeight=ne,this.defaultContentWidth=re.D.getWidth(this.contentEl),this.defaultContentHeight=re.D.getHeight(this.contentEl),this.init()})}},this._resizeDelay)}handleEvents(u,ne){return this.options&&this.options[u]?this.options[u](ne):this[u].emit(ne)}getContentOptions(){return{contentStyleClass:"p-scroller-content "+(this.d_loading?"p-scroller-loading":""),items:this.loadedItems,getItemOptions:u=>this.getOptions(u),loading:this.d_loading,getLoaderOptions:(u,ne)=>this.getLoaderOptions(u,ne),itemSize:this._itemSize,rows:this.loadedRows,columns:this.loadedColumns,spacerStyle:this.spacerStyle,contentStyle:this.contentStyle,vertical:this.vertical,horizontal:this.horizontal,both:this.both}}getOptions(u){const ne=(this._items||[]).length,ue=this.both?this.first.rows+u:this.first+u;return{index:ue,count:ne,first:0===ue,last:ue===ne-1,even:ue%2==0,odd:ue%2!=0}}getLoaderOptions(u,ne){const ue=this.loaderArr.length;return{index:u,count:ue,first:0===u,last:u===ue-1,even:u%2==0,odd:u%2!=0,...ne}}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-scroller"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(bn,5),e.GBs(Ko,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.elementViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.contentViewChild=Ie.first)}},hostAttrs:[1,"p-scroller-viewport","p-element"],inputs:{id:"id",style:"style",styleClass:"styleClass",tabindex:"tabindex",items:"items",itemSize:"itemSize",scrollHeight:"scrollHeight",scrollWidth:"scrollWidth",orientation:"orientation",step:"step",delay:"delay",resizeDelay:"resizeDelay",appendOnly:"appendOnly",inline:"inline",lazy:"lazy",disabled:"disabled",loaderDisabled:"loaderDisabled",columns:"columns",showSpacer:"showSpacer",showLoader:"showLoader",numToleratedItems:"numToleratedItems",loading:"loading",autoSize:"autoSize",trackBy:"trackBy",options:"options"},outputs:{onLazyLoad:"onLazyLoad",onScroll:"onScroll",onScrollIndexChange:"onScrollIndexChange"},features:[e.OA$],ngContentSelectors:nl,decls:3,vars:2,consts:[["disabledContainer",""],["element",""],["buildInContent",""],["content",""],["buildInLoader",""],["buildInLoaderIcon",""],[4,"ngIf","ngIfElse"],[3,"scroll","ngStyle","ngClass"],["class","p-scroller-spacer",3,"ngStyle",4,"ngIf"],["class","p-scroller-loader",3,"ngClass",4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-scroller-content",3,"ngClass","ngStyle"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"p-scroller-spacer",3,"ngStyle"],[1,"p-scroller-loader",3,"ngClass"],[4,"ngFor","ngForOf"],[3,"styleClass"],[4,"ngIf"]],template:function(ne,ue){if(1&ne&&(e.NAR(),e.DNE(0,ma,8,16,"ng-container",6)(1,er,2,1,"ng-template",null,0,e.C5r)),2&ne){const Ie=e.sdS(2);e.Y8G("ngIf",!ue._disabled)("ngIfElse",Ie)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Jr.N],styles:["@layer primeng{p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}}\n"],encapsulation:2})}return xe})(),Gr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,Jr.N,Pe.Gg]})}return xe})(),cl=(()=>{class xe{platformId;el;zone;config;renderer;viewContainer;tooltipPosition;tooltipEvent="hover";appendTo;positionStyle;tooltipStyleClass;tooltipZIndex;escape=!0;showDelay;hideDelay;life;positionTop;positionLeft;autoHide=!0;fitContent=!0;hideOnEscape=!0;content;get disabled(){return this._disabled}set disabled(u){this._disabled=u,this.deactivate()}tooltipOptions;_tooltipOptions={tooltipLabel:null,tooltipPosition:"right",tooltipEvent:"hover",appendTo:"body",positionStyle:null,tooltipStyleClass:null,tooltipZIndex:"auto",escape:!0,disabled:null,showDelay:null,hideDelay:null,positionTop:null,positionLeft:null,life:null,autoHide:!0,hideOnEscape:!0,id:(0,le._Y)()+"_tooltip"};_disabled;container;styleClass;tooltipText;showTimeout;hideTimeout;active;mouseEnterListener;mouseLeaveListener;containerMouseleaveListener;clickListener;focusListener;blurListener;scrollHandler;resizeListener;constructor(u,ne,ue,Ie,nt,Tt){this.platformId=u,this.el=ne,this.zone=ue,this.config=Ie,this.renderer=nt,this.viewContainer=Tt}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.zone.runOutsideAngular(()=>{if("hover"===this.getOption("tooltipEvent"))this.mouseEnterListener=this.onMouseEnter.bind(this),this.mouseLeaveListener=this.onMouseLeave.bind(this),this.clickListener=this.onInputClick.bind(this),this.el.nativeElement.addEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.addEventListener("click",this.clickListener),this.el.nativeElement.addEventListener("mouseleave",this.mouseLeaveListener);else if("focus"===this.getOption("tooltipEvent")){this.focusListener=this.onFocus.bind(this),this.blurListener=this.onBlur.bind(this);let u=this.getTarget(this.el.nativeElement);u.addEventListener("focus",this.focusListener),u.addEventListener("blur",this.blurListener)}})}ngOnChanges(u){u.tooltipPosition&&this.setOption({tooltipPosition:u.tooltipPosition.currentValue}),u.tooltipEvent&&this.setOption({tooltipEvent:u.tooltipEvent.currentValue}),u.appendTo&&this.setOption({appendTo:u.appendTo.currentValue}),u.positionStyle&&this.setOption({positionStyle:u.positionStyle.currentValue}),u.tooltipStyleClass&&this.setOption({tooltipStyleClass:u.tooltipStyleClass.currentValue}),u.tooltipZIndex&&this.setOption({tooltipZIndex:u.tooltipZIndex.currentValue}),u.escape&&this.setOption({escape:u.escape.currentValue}),u.showDelay&&this.setOption({showDelay:u.showDelay.currentValue}),u.hideDelay&&this.setOption({hideDelay:u.hideDelay.currentValue}),u.life&&this.setOption({life:u.life.currentValue}),u.positionTop&&this.setOption({positionTop:u.positionTop.currentValue}),u.positionLeft&&this.setOption({positionLeft:u.positionLeft.currentValue}),u.disabled&&this.setOption({disabled:u.disabled.currentValue}),u.content&&(this.setOption({tooltipLabel:u.content.currentValue}),this.active&&(u.content.currentValue?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide())),u.autoHide&&this.setOption({autoHide:u.autoHide.currentValue}),u.id&&this.setOption({id:u.id.currentValue}),u.tooltipOptions&&(this._tooltipOptions={...this._tooltipOptions,...u.tooltipOptions.currentValue},this.deactivate(),this.active&&(this.getOption("tooltipLabel")?this.container&&this.container.offsetParent?(this.updateText(),this.align()):this.show():this.hide()))}isAutoHide(){return this.getOption("autoHide")}onMouseEnter(u){!this.container&&!this.showTimeout&&this.activate()}onMouseLeave(u){(this.isAutoHide()||!(re.D.hasClass(u.relatedTarget,"p-tooltip")||re.D.hasClass(u.relatedTarget,"p-tooltip-text")||re.D.hasClass(u.relatedTarget,"p-tooltip-arrow")))&&this.deactivate()}onFocus(u){this.activate()}onBlur(u){this.deactivate()}onInputClick(u){this.deactivate()}onPressEscape(){this.hideOnEscape&&this.deactivate()}activate(){if(this.active=!0,this.clearHideTimeout(),this.getOption("showDelay")?this.showTimeout=setTimeout(()=>{this.show()},this.getOption("showDelay")):this.show(),this.getOption("life")){let u=this.getOption("showDelay")?this.getOption("life")+this.getOption("showDelay"):this.getOption("life");this.hideTimeout=setTimeout(()=>{this.hide()},u)}}deactivate(){this.active=!1,this.clearShowTimeout(),this.getOption("hideDelay")?(this.clearHideTimeout(),this.hideTimeout=setTimeout(()=>{this.hide()},this.getOption("hideDelay"))):this.hide()}create(){this.container&&(this.clearHideTimeout(),this.remove()),this.container=document.createElement("div"),this.container.setAttribute("id",this.getOption("id")),this.container.setAttribute("role","tooltip");let u=document.createElement("div");u.className="p-tooltip-arrow",this.container.appendChild(u),this.tooltipText=document.createElement("div"),this.tooltipText.className="p-tooltip-text",this.updateText(),this.getOption("positionStyle")&&(this.container.style.position=this.getOption("positionStyle")),this.container.appendChild(this.tooltipText),"body"===this.getOption("appendTo")?document.body.appendChild(this.container):"target"===this.getOption("appendTo")?re.D.appendChild(this.container,this.el.nativeElement):re.D.appendChild(this.container,this.getOption("appendTo")),this.container.style.display="inline-block",this.fitContent&&(this.container.style.width="fit-content"),this.isAutoHide()?this.container.style.pointerEvents="none":(this.container.style.pointerEvents="unset",this.bindContainerMouseleaveListener())}bindContainerMouseleaveListener(){this.containerMouseleaveListener||(this.containerMouseleaveListener=this.renderer.listen(this.container??this.container.nativeElement,"mouseleave",ne=>{this.deactivate()}))}unbindContainerMouseleaveListener(){this.containerMouseleaveListener&&(this.bindContainerMouseleaveListener(),this.containerMouseleaveListener=null)}show(){!this.getOption("tooltipLabel")||this.getOption("disabled")||(this.create(),this.align(),re.D.fadeIn(this.container,250),"auto"===this.getOption("tooltipZIndex")?le.Q$.set("tooltip",this.container,this.config.zIndex.tooltip):this.container.style.zIndex=this.getOption("tooltipZIndex"),this.bindDocumentResizeListener(),this.bindScrollListener())}hide(){"auto"===this.getOption("tooltipZIndex")&&le.Q$.clear(this.container),this.remove()}updateText(){const u=this.getOption("tooltipLabel");if(u instanceof e.C4Q){const ne=this.viewContainer.createEmbeddedView(u);ne.detectChanges(),ne.rootNodes.forEach(ue=>this.tooltipText.appendChild(ue))}else this.getOption("escape")?(this.tooltipText.innerHTML="",this.tooltipText.appendChild(document.createTextNode(u))):this.tooltipText.innerHTML=u}align(){switch(this.getOption("tooltipPosition")){case"top":this.alignTop(),this.isOutOfBounds()&&(this.alignBottom(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"bottom":this.alignBottom(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&this.alignLeft()));break;case"left":this.alignLeft(),this.isOutOfBounds()&&(this.alignRight(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()));break;case"right":this.alignRight(),this.isOutOfBounds()&&(this.alignLeft(),this.isOutOfBounds()&&(this.alignTop(),this.isOutOfBounds()&&this.alignBottom()))}}getHostOffset(){if("body"===this.getOption("appendTo")||"target"===this.getOption("appendTo")){let u=this.el.nativeElement.getBoundingClientRect();return{left:u.left+re.D.getWindowScrollLeft(),top:u.top+re.D.getWindowScrollTop()}}return{left:0,top:0}}alignRight(){this.preAlign("right");let u=this.getHostOffset(),ne=u.left+re.D.getOuterWidth(this.el.nativeElement),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignLeft(){this.preAlign("left");let u=this.getHostOffset(),ne=u.left-re.D.getOuterWidth(this.container),ue=u.top+(re.D.getOuterHeight(this.el.nativeElement)-re.D.getOuterHeight(this.container))/2;this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignTop(){this.preAlign("top");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top-re.D.getOuterHeight(this.container);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}alignBottom(){this.preAlign("bottom");let u=this.getHostOffset(),ne=u.left+(re.D.getOuterWidth(this.el.nativeElement)-re.D.getOuterWidth(this.container))/2,ue=u.top+re.D.getOuterHeight(this.el.nativeElement);this.container.style.left=ne+this.getOption("positionLeft")+"px",this.container.style.top=ue+this.getOption("positionTop")+"px"}setOption(u){this._tooltipOptions={...this._tooltipOptions,...u}}getOption(u){return this._tooltipOptions[u]}getTarget(u){return re.D.hasClass(u,"p-inputwrapper")?re.D.findSingle(u,"input"):u}preAlign(u){this.container.style.left="-999px",this.container.style.top="-999px";let ne="p-tooltip p-component p-tooltip-"+u;this.container.className=this.getOption("tooltipStyleClass")?ne+" "+this.getOption("tooltipStyleClass"):ne}isOutOfBounds(){let u=this.container.getBoundingClientRect(),ne=u.top,ue=u.left,Ie=re.D.getOuterWidth(this.container),nt=re.D.getOuterHeight(this.container),Tt=re.D.getViewport();return ue+Ie>Tt.width||ue<0||ne<0||ne+nt>Tt.height}onWindowResize(u){this.hide()}bindDocumentResizeListener(){this.zone.runOutsideAngular(()=>{this.resizeListener=this.onWindowResize.bind(this),window.addEventListener("resize",this.resizeListener)})}unbindDocumentResizeListener(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}bindScrollListener(){this.scrollHandler||(this.scrollHandler=new re.b(this.el.nativeElement,()=>{this.container&&this.hide()})),this.scrollHandler.bindScrollListener()}unbindScrollListener(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}unbindEvents(){if("hover"===this.getOption("tooltipEvent"))this.el.nativeElement.removeEventListener("mouseenter",this.mouseEnterListener),this.el.nativeElement.removeEventListener("mouseleave",this.mouseLeaveListener),this.el.nativeElement.removeEventListener("click",this.clickListener);else if("focus"===this.getOption("tooltipEvent")){let u=this.getTarget(this.el.nativeElement);u.removeEventListener("focus",this.focusListener),u.removeEventListener("blur",this.blurListener)}this.unbindDocumentResizeListener()}remove(){this.container&&this.container.parentElement&&("body"===this.getOption("appendTo")?document.body.removeChild(this.container):"target"===this.getOption("appendTo")?this.el.nativeElement.removeChild(this.container):re.D.removeChild(this.container,this.getOption("appendTo"))),this.unbindDocumentResizeListener(),this.unbindScrollListener(),this.unbindContainerMouseleaveListener(),this.clearTimeouts(),this.container=null,this.scrollHandler=null}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}clearHideTimeout(){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}clearTimeouts(){this.clearShowTimeout(),this.clearHideTimeout()}ngOnDestroy(){this.unbindEvents(),this.container&&le.Q$.clear(this.container),this.remove(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.Agw),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(Pe.r1),e.rXU(e.sFG),e.rXU(e.c1b))};static \u0275dir=e.FsC({type:xe,selectors:[["","pTooltip",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("keydown.escape",function(nt){return ue.onPressEscape(nt)},!1,e.EBC)},inputs:{tooltipPosition:"tooltipPosition",tooltipEvent:"tooltipEvent",appendTo:"appendTo",positionStyle:"positionStyle",tooltipStyleClass:"tooltipStyleClass",tooltipZIndex:"tooltipZIndex",escape:"escape",showDelay:"showDelay",hideDelay:"hideDelay",life:"life",positionTop:"positionTop",positionLeft:"positionLeft",autoHide:"autoHide",fitContent:"fitContent",hideOnEscape:"hideOnEscape",content:[e.Mj6.None,"pTooltip","content"],disabled:[e.Mj6.None,"tooltipDisabled","disabled"],tooltipOptions:"tooltipOptions"},features:[e.OA$]})}return xe})(),Er=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD]})}return xe})(),sr=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SearchIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})();const cs=xe=>({height:xe}),Ar=(xe,tt,u)=>({"p-dropdown-item":!0,"p-highlight":xe,"p-disabled":tt,"p-focus":u}),Zo=xe=>({$implicit:xe});function ba(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){let u;const ne=e.XpG();e.R7$(),e.JRh(null!==(u=ne.label)&&void 0!==u?u:"empty")}}function Na(xe,tt){1&xe&&e.eu8(0)}const Ao=["container"],Fa=["filter"],Ba=["focusInput"],va=["editableInput"],Xs=["items"],to=["scroller"],Hr=["overlay"],io=["firstHiddenFocusableEl"],ec=["lastHiddenFocusableEl"],Ys=xe=>({options:xe}),Mn=(xe,tt)=>({$implicit:xe,options:tt}),Io=()=>({});function ya(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.label())}}function qo(xe,tt){if(1&xe&&e.eu8(0,25),2&xe){const u=e.XpG(2);e.Y8G("ngTemplateOutlet",u.selectedItemTemplate)("ngTemplateOutletContext",e.eq3(2,Zo,u.selectedOption))}}function bo(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.JRh("p-emptylabel"===u.label()?"\xa0":u.placeholder())}}function hl(xe,tt){if(1&xe&&e.DNE(0,bo,2,1,"span",17),2&xe){const u=e.XpG(2);e.Y8G("ngIf",u.displayPlaceholder())}}function Oo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",22,2),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))}),e.DNE(2,ya,2,1,"ng-container",23)(3,qo,1,4,"ng-container",24)(4,hl,1,1,"ng-template",null,3,e.C5r),e.k0s()}if(2&xe){let u;const ne=e.sdS(5),ue=e.XpG();e.Y8G("ngClass",ue.inputClass)("pTooltip",ue.tooltip)("tooltipPosition",ue.tooltipPosition)("positionStyle",ue.tooltipPositionStyle)("tooltipStyleClass",ue.tooltipStyleClass)("autofocus",ue.autofocus),e.BMQ("aria-disabled",ue.disabled)("id",ue.inputId)("aria-label",ue.ariaLabel||("p-emptylabel"===ue.label()?void 0:ue.label()))("aria-labelledby",ue.ariaLabelledBy)("aria-haspopup","listbox")("aria-expanded",null!==(u=ue.overlayVisible)&&void 0!==u&&u)("aria-controls",ue.overlayVisible?ue.id+"_list":null)("tabindex",ue.disabled?-1:ue.tabindex)("aria-activedescendant",ue.focused?ue.focusedOptionId:void 0)("aria-required",ue.required)("required",ue.required),e.R7$(2),e.Y8G("ngIf",!ue.selectedItemTemplate)("ngIfElse",ne),e.R7$(),e.Y8G("ngIf",ue.selectedItemTemplate&&ue.selectedOption)}}function Zi(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"input",26,4),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onEditableInput(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onKeyDown(ue))})("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputFocus(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onInputBlur(ue))}),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",u.inputClass)("disabled",u.disabled),e.BMQ("maxlength",u.maxlength)("placeholder",void 0===u.modelValue()||null===u.modelValue()?u.placeholder():void 0)}}function Qo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.k0s()}2&xe&&(e.Y8G("styleClass","p-dropdown-clear-icon"),e.BMQ("data-pc-section","clearicon"))}function ja(xe,tt){}function ot(xe,tt){1&xe&&e.DNE(0,ja,0,0,"ng-template")}function ct(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",30),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.clear(ue))}),e.DNE(1,ot,1,0,null,31),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearicon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function Ye(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qo,1,2,"TimesIcon",27)(2,ct,2,2,"span",28),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function vt(xe,tt){if(1&xe&&e.nrm(0,"span",34),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.dropdownIcon)}}function Bt(xe,tt){1&xe&&e.nrm(0,"ChevronDownIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-trigger-icon")}function Vi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,vt,1,1,"span",32)(2,Bt,1,1,"ChevronDownIcon",33),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.dropdownIcon),e.R7$(),e.Y8G("ngIf",!u.dropdownIcon)}}function vn(xe,tt){}function no(xe,tt){1&xe&&e.DNE(0,vn,0,0,"ng-template")}function Ir(xe,tt){if(1&xe&&(e.j41(0,"span",36),e.DNE(1,no,1,0,null,31),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Ks(xe,tt){1&xe&&e.eu8(0)}function Or(xe,tt){1&xe&&e.eu8(0)}function rr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Or,1,0,"ng-container",43),e.bVm()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u.filterOptions))}}function Pr(xe,tt){1&xe&&e.nrm(0,"SearchIcon",35),2&xe&&e.Y8G("styleClass","p-dropdown-filter-icon")}function Bn(xe,tt){}function fr(xe,tt){1&xe&&e.DNE(0,Bn,0,0,"ng-template")}function Jo(xe,tt){if(1&xe&&(e.j41(0,"span",47),e.DNE(1,fr,1,0,null,31),e.k0s()),2&xe){const u=e.XpG(4);e.R7$(),e.Y8G("ngTemplateOutlet",u.filterIconTemplate)}}function tc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",44)(1,"input",45,9),e.bIt("input",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterInputChange(ue))})("keydown",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterKeyDown(ue))})("blur",function(ue){e.eBV(u);const Ie=e.XpG(3);return e.Njj(Ie.onFilterBlur(ue))}),e.k0s(),e.DNE(3,Pr,1,1,"SearchIcon",33)(4,Jo,2,1,"span",46),e.k0s()}if(2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("value",u._filterValue()||""),e.BMQ("placeholder",u.filterPlaceholder)("aria-owns",u.id+"_list")("aria-label",u.ariaFilterLabel)("aria-activedescendant",u.focusedOptionId),e.R7$(2),e.Y8G("ngIf",!u.filterIconTemplate),e.R7$(),e.Y8G("ngIf",u.filterIconTemplate)}}function Nl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",42),e.bIt("click",function(ue){return e.eBV(u),e.Njj(ue.stopPropagation())}),e.DNE(1,rr,2,4,"ng-container",23)(2,tc,5,7,"ng-template",null,8,e.C5r),e.k0s()}if(2&xe){const u=e.sdS(3),ne=e.XpG(2);e.R7$(),e.Y8G("ngIf",ne.filterTemplate)("ngIfElse",u)}}function Xh(xe,tt){1&xe&&e.eu8(0)}function Yh(xe,tt){if(1&xe&&e.DNE(0,Xh,1,0,"ng-container",43),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(9);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,Mn,u,ne))}}function Ac(xe,tt){1&xe&&e.eu8(0)}function so(xe,tt){if(1&xe&&e.DNE(0,Ac,1,0,"ng-container",43),2&xe){const u=tt.options,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.loaderTemplate)("ngTemplateOutletContext",e.eq3(2,Ys,u))}}function Kh(xe,tt){1&xe&&(e.qex(0),e.DNE(1,so,1,4,"ng-template",49),e.bVm())}function Fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",48,10),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onLazyLoad.emit(ue))}),e.DNE(2,Yh,1,5,"ng-template",21)(3,Kh,2,0,"ng-container",17),e.k0s()}if(2&xe){const u=e.XpG(2);e.Aen(e.eq3(8,cs,u.scrollHeight)),e.Y8G("items",u.visibleOptions())("itemSize",u.virtualScrollItemSize||u._itemSize)("autoSize",!0)("lazy",u.lazy)("options",u.virtualScrollOptions),e.R7$(3),e.Y8G("ngIf",u.loaderTemplate)}}function Va(xe,tt){1&xe&&e.eu8(0)}function Lr(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Va,1,0,"ng-container",43),e.bVm()),2&xe){e.XpG();const u=e.sdS(9),ne=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u)("ngTemplateOutletContext",e.l_i(3,Mn,ne.visibleOptions(),e.lJ4(2,Io)))}}function Ic(xe,tt){if(1&xe&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2).$implicit,ne=e.XpG(3);e.R7$(),e.JRh(ne.getOptionGroupLabel(u.optionGroup))}}function hn(xe,tt){1&xe&&e.eu8(0)}function Rs(xe,tt){if(1&xe&&(e.qex(0),e.j41(1,"li",53),e.DNE(2,Ic,2,1,"span",17)(3,hn,1,0,"ng-container",43),e.k0s(),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("ngStyle",e.eq3(5,cs,Ie.itemSize+"px")),e.BMQ("id",nt.id+"_"+nt.getOptionIndex(ue,Ie)),e.R7$(),e.Y8G("ngIf",!nt.groupTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",nt.groupTemplate)("ngTemplateOutletContext",e.eq3(7,Zo,ne.optionGroup))}}function Ss(xe,tt){if(1&xe){const u=e.RV6();e.qex(0),e.j41(1,"p-dropdownItem",54),e.bIt("onClick",function(ue){e.eBV(u);const Ie=e.XpG().$implicit,nt=e.XpG(3);return e.Njj(nt.onOptionSelect(ue,Ie))})("onMouseEnter",function(ue){e.eBV(u);const Ie=e.XpG().index,nt=e.XpG().options,Tt=e.XpG(2);return e.Njj(Tt.onOptionMouseEnter(ue,Tt.getOptionIndex(Ie,nt)))}),e.k0s(),e.bVm()}if(2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG().options,nt=e.XpG(2);e.R7$(),e.Y8G("id",nt.id+"_"+nt.getOptionIndex(ue,Ie))("option",ne)("selected",nt.isSelected(ne))("label",nt.getOptionLabel(ne))("disabled",nt.isOptionDisabled(ne))("template",nt.itemTemplate)("focused",nt.focusedOptionIndex()===nt.getOptionIndex(ue,Ie))("ariaPosInset",nt.getAriaPosInset(nt.getOptionIndex(ue,Ie)))("ariaSetSize",nt.ariaSetSize)}}function vo(xe,tt){if(1&xe&&e.DNE(0,Rs,4,9,"ng-container",17)(1,Ss,2,9,"ng-container",17),2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngIf",ne.isOptionGroup(u)),e.R7$(),e.Y8G("ngIf",!ne.isOptionGroup(u))}}function Zs(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyFilterMessageLabel," ")}}function dl(xe,tt){1&xe&&e.eu8(0,null,12)}function ul(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,Zs,2,1,"ng-container",23)(2,dl,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyFilterTemplate&&!ne.emptyTemplate)("ngIfElse",ne.emptyFilter),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyFilterTemplate||ne.emptyTemplate)}}function pl(xe,tt){if(1&xe&&(e.qex(0),e.EFF(1),e.bVm()),2&xe){const u=e.XpG(4);e.R7$(),e.SpI(" ",u.emptyMessageLabel," ")}}function Oc(xe,tt){1&xe&&e.eu8(0,null,13)}function ic(xe,tt){if(1&xe&&(e.j41(0,"li",55),e.DNE(1,pl,2,1,"ng-container",23)(2,Oc,2,0,"ng-container",31),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG(2);e.Y8G("ngStyle",e.eq3(4,cs,u.itemSize+"px")),e.R7$(),e.Y8G("ngIf",!ne.emptyTemplate)("ngIfElse",ne.empty),e.R7$(),e.Y8G("ngTemplateOutlet",ne.emptyTemplate)}}function za(xe,tt){if(1&xe&&(e.j41(0,"ul",50,11),e.DNE(2,vo,2,2,"ng-template",51)(3,ul,3,6,"li",52)(4,ic,3,6,"li",52),e.k0s()),2&xe){const u=tt.$implicit,ne=tt.options,ue=e.XpG(2);e.Aen(ne.contentStyle),e.Y8G("ngClass",ne.contentStyleClass),e.BMQ("id",ue.id+"_list")("aria-label",ue.listLabel),e.R7$(2),e.Y8G("ngForOf",u),e.R7$(),e.Y8G("ngIf",ue.filterValue&&ue.isEmpty()),e.R7$(),e.Y8G("ngIf",!ue.filterValue&&ue.isEmpty())}}function Bl(xe,tt){1&xe&&e.eu8(0)}function fl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",37)(1,"span",38,5),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onFirstHiddenFocus(ue))}),e.k0s(),e.DNE(3,Ks,1,0,"ng-container",31)(4,Nl,4,2,"div",39),e.j41(5,"div",40),e.DNE(6,Fl,4,10,"p-scroller",41)(7,Lr,2,6,"ng-container",17)(8,za,5,8,"ng-template",null,6,e.C5r),e.k0s(),e.DNE(10,Bl,1,0,"ng-container",31),e.j41(11,"span",38,7),e.bIt("focus",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLastHiddenFocus(ue))}),e.k0s()()}if(2&xe){const u=e.XpG();e.HbH(u.panelStyleClass),e.Y8G("ngClass","p-dropdown-panel p-component")("ngStyle",u.panelStyle),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0),e.R7$(2),e.Y8G("ngTemplateOutlet",u.headerTemplate),e.R7$(),e.Y8G("ngIf",u.filter),e.R7$(),e.xc7("max-height",u.virtualScroll?"auto":u.scrollHeight||"auto"),e.R7$(),e.Y8G("ngIf",u.virtualScroll),e.R7$(),e.Y8G("ngIf",!u.virtualScroll),e.R7$(3),e.Y8G("ngTemplateOutlet",u.footerTemplate),e.R7$(),e.BMQ("aria-hidden",!0)("tabindex",0)("data-p-hidden-accessible",!0)("data-p-hidden-focusable",!0)}}const Pc={provide:V.kq,useExisting:(0,e.Rfq)(()=>Lc),multi:!0};let nc=(()=>{class xe{id;option;selected;focused;label;disabled;visible;itemSize;ariaPosInset;ariaSetSize;template;onClick=new e.bkB;onMouseEnter=new e.bkB;ngOnInit(){}onOptionClick(u){this.onClick.emit(u)}onOptionMouseEnter(u){this.onMouseEnter.emit(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdownItem"]],hostAttrs:[1,"p-element"],inputs:{id:"id",option:"option",selected:"selected",focused:"focused",label:"label",disabled:"disabled",visible:"visible",itemSize:"itemSize",ariaPosInset:"ariaPosInset",ariaSetSize:"ariaSetSize",template:"template"},outputs:{onClick:"onClick",onMouseEnter:"onMouseEnter"},decls:3,vars:21,consts:[["role","option","pRipple","",3,"click","mouseenter","id","ngStyle","ngClass"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"li",0),e.bIt("click",function(nt){return ue.onOptionClick(nt)})("mouseenter",function(nt){return ue.onOptionMouseEnter(nt)}),e.DNE(1,ba,2,1,"span",1)(2,Na,1,0,"ng-container",2),e.k0s()),2&ne&&(e.Y8G("id",ue.id)("ngStyle",e.eq3(13,cs,ue.itemSize+"px"))("ngClass",e.sMw(15,Ar,ue.selected,ue.disabled,ue.focused)),e.BMQ("aria-label",ue.label)("aria-setsize",ue.ariaSetSize)("aria-posinset",ue.ariaPosInset)("aria-selected",ue.selected)("data-p-focused",ue.focused)("data-p-highlight",ue.selected)("data-p-disabled",ue.disabled),e.R7$(),e.Y8G("ngIf",!ue.template),e.R7$(),e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.eq3(19,Zo,ue.option)))},dependencies:[M.YU,M.bT,M.T3,M.B3,ve.n],encapsulation:2})}return xe})(),Lc=(()=>{class xe{el;renderer;cd;zone;filterService;config;id;scrollHeight="200px";filter;name;style;panelStyle;styleClass;panelStyleClass;readonly;required;editable;appendTo;tabindex=0;set placeholder(u){this._placeholder.set(u)}get placeholder(){return this._placeholder.asReadonly()}filterPlaceholder;filterLocale;inputId;dataKey;filterBy;filterFields;autofocus;resetFilterOnHide=!1;dropdownIcon;optionLabel;optionValue;optionDisabled;optionGroupLabel="label";optionGroupChildren="items";autoDisplayFirst=!0;group;showClear;emptyFilterMessage="";emptyMessage="";lazy=!1;virtualScroll;virtualScrollItemSize;virtualScrollOptions;overlayOptions;ariaFilterLabel;ariaLabel;ariaLabelledBy;filterMatchMode="contains";maxlength;tooltip="";tooltipPosition="right";tooltipPositionStyle="absolute";tooltipStyleClass;focusOnHover=!1;selectOnFocus=!1;autoOptionFocus=!0;autofocusFilter=!0;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1,this.overlayVisible&&this.hide()),this._disabled=u,this.cd.destroyed||this.cd.detectChanges()}get itemSize(){return this._itemSize}set itemSize(u){this._itemSize=u,console.warn("The itemSize property is deprecated, use virtualScrollItemSize property instead.")}_itemSize;get autoZIndex(){return this._autoZIndex}set autoZIndex(u){this._autoZIndex=u,console.warn("The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_autoZIndex;get baseZIndex(){return this._baseZIndex}set baseZIndex(u){this._baseZIndex=u,console.warn("The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.")}_baseZIndex;get showTransitionOptions(){return this._showTransitionOptions}set showTransitionOptions(u){this._showTransitionOptions=u,console.warn("The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_showTransitionOptions;get hideTransitionOptions(){return this._hideTransitionOptions}set hideTransitionOptions(u){this._hideTransitionOptions=u,console.warn("The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.")}_hideTransitionOptions;get filterValue(){return this._filterValue()}set filterValue(u){setTimeout(()=>{this._filterValue.set(u)})}get options(){return this._options()}set options(u){le.BF.deepEquals(u,this._options())||this._options.set(u)}onChange=new e.bkB;onFilter=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onClick=new e.bkB;onShow=new e.bkB;onHide=new e.bkB;onClear=new e.bkB;onLazyLoad=new e.bkB;containerViewChild;filterViewChild;focusInputViewChild;editableInputViewChild;itemsViewChild;scroller;overlayViewChild;firstHiddenFocusableElementOnOverlay;lastHiddenFocusableElementOnOverlay;templates;_disabled;itemsWrapper;itemTemplate;groupTemplate;loaderTemplate;selectedItemTemplate;headerTemplate;filterTemplate;footerTemplate;emptyFilterTemplate;emptyTemplate;dropdownIconTemplate;clearIconTemplate;filterIconTemplate;filterOptions;_options=(0,e.vPA)(null);_placeholder=(0,e.vPA)(void 0);modelValue=(0,e.vPA)(null);value;onModelChange=()=>{};onModelTouched=()=>{};hover;focused;overlayVisible;optionsChanged;panel;dimensionsUpdated;hoveredItem;selectedOptionUpdated;_filterValue=(0,e.vPA)(null);searchValue;searchIndex;searchTimeout;previousSearchChar;currentSearchChar;preventModelTouched;focusedOptionIndex=(0,e.vPA)(-1);labelId;listId;clicked=(0,e.vPA)(!1);get emptyMessageLabel(){return this.emptyMessage||this.config.getTranslation(Pe.Yj.EMPTY_MESSAGE)}get emptyFilterMessageLabel(){return this.emptyFilterMessage||this.config.getTranslation(Pe.Yj.EMPTY_FILTER_MESSAGE)}get isVisibleClearIcon(){return null!=this.modelValue()&&this.hasSelectedOption()&&this.showClear&&!this.disabled}get listLabel(){return this.config.getTranslation(Pe.Yj.ARIA).listLabel}get containerClass(){return{"p-dropdown p-component p-inputwrapper":!0,"p-disabled":this.disabled,"p-dropdown-clearable":this.showClear&&!this.disabled,"p-focus":this.focused,"p-inputwrapper-filled":void 0!==this.modelValue()&&null!==this.modelValue()&&!this.modelValue().length,"p-inputwrapper-focus":this.focused||this.overlayVisible}}get inputClass(){const u=this.label();return{"p-dropdown-label p-inputtext":!0,"p-placeholder":this.placeholder()&&u===this.placeholder(),"p-dropdown-label-empty":!(this.editable||this.selectedItemTemplate||null!=u&&"p-emptylabel"!==u&&0!==u.length)}}get panelClass(){return{"p-dropdown-panel p-component":!0,"p-input-filled":"filled"===this.config.inputStyle,"p-ripple-disabled":!1===this.config.ripple}}get focusedOptionId(){return-1!==this.focusedOptionIndex()?`${this.id}_${this.focusedOptionIndex()}`:null}visibleOptions=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions();if(this._filterValue()){const ue=this.filterBy||this.optionLabel||this.filterFields||this.optionValue?this.filterService.filter(u,this.searchFields(),this._filterValue().trim(),this.filterMatchMode,this.filterLocale):this.options.filter(Ie=>Ie.label?-1!==Ie.label.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()):-1!==Ie.toString().toLowerCase().indexOf(this._filterValue().toLowerCase().trim()));if(this.group){const nt=[];return(this.options||[]).forEach(Tt=>{const ai=this.getOptionGroupChildren(Tt).filter(oi=>ue.includes(oi));ai.length>0&&nt.push({...Tt,["string"==typeof this.optionGroupChildren?this.optionGroupChildren:"items"]:[...ai]})}),this.flatOptions(nt)}return ue}return u});label=(0,e.EWP)(()=>{const u=this.getAllVisibleAndNonVisibleOptions(),ne=u.findIndex(ue=>this.isOptionValueEqualsModelValue(ue));return-1!==ne?this.getOptionLabel(u[ne]):this.placeholder()||"p-emptylabel"});filled=(0,e.EWP)(()=>"string"==typeof this.modelValue()?!!this.modelValue():"p-emptylabel"!==this.label()&&void 0!==this.modelValue()&&null!==this.modelValue());selectedOption;editableInputValue=(0,e.EWP)(()=>this.getOptionLabel(this.selectedOption)||this.modelValue()||"");constructor(u,ne,ue,Ie,nt,Tt){this.el=u,this.renderer=ne,this.cd=ue,this.zone=Ie,this.filterService=nt,this.config=Tt,(0,e.QZP)(()=>{const zt=this.modelValue(),ai=this.visibleOptions();if(ai&&le.BF.isNotEmpty(ai)){const oi=this.findSelectedOptionIndex();(-1!==oi||void 0===zt||"string"==typeof zt&&0===zt.length||this.isModelValueNotSet()||this.editable)&&(this.selectedOption=ai[oi])}le.BF.isEmpty(ai)&&(void 0===zt||this.isModelValueNotSet())&&le.BF.isNotEmpty(this.selectedOption)&&(this.selectedOption=null),void 0!==zt&&this.editable&&this.updateEditableLabel(),this.cd.markForCheck()})}isModelValueNotSet(){return null===this.modelValue()&&!this.isOptionValueEqualsModelValue(this.selectedOption)}displayPlaceholder(){return le.BF.isEmpty(this.selectedOption)&&this.label()===this.placeholder()}getAllVisibleAndNonVisibleOptions(){return this.group?this.flatOptions(this.options):this.options||[]}ngOnInit(){this.id=this.id||(0,le._Y)(),this.autoUpdateModel(),this.filterBy&&(this.filterOptions={filter:u=>this.onFilterInputChange(u),reset:()=>this.resetFilter()})}ngAfterViewChecked(){if(this.optionsChanged&&this.overlayVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.overlayViewChild&&this.overlayViewChild.alignOverlay()},1)})),this.selectedOptionUpdated&&this.itemsWrapper){let u=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,"li.p-highlight");u&&re.D.scrollInView(this.itemsWrapper,u),this.selectedOptionUpdated=!1}}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"item":default:this.itemTemplate=u.template;break;case"selectedItem":this.selectedItemTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"filter":this.filterTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"emptyfilter":this.emptyFilterTemplate=u.template;break;case"empty":this.emptyTemplate=u.template;break;case"group":this.groupTemplate=u.template;break;case"loader":this.loaderTemplate=u.template;break;case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"clearicon":this.clearIconTemplate=u.template;break;case"filtericon":this.filterIconTemplate=u.template}})}flatOptions(u){return(u||[]).reduce((ne,ue,Ie)=>{ne.push({optionGroup:ue,group:!0,index:Ie});const nt=this.getOptionGroupChildren(ue);return nt&&nt.forEach(Tt=>ne.push(Tt)),ne},[])}autoUpdateModel(){if(this.selectOnFocus&&this.autoOptionFocus&&!this.hasSelectedOption()&&(this.focusedOptionIndex.set(this.findFirstFocusedOptionIndex()),this.onOptionSelect(null,this.visibleOptions()[this.focusedOptionIndex()],!1)),this.autoDisplayFirst&&(null===this.modelValue()||void 0===this.modelValue())&&!this.placeholder()){const u=this.findFirstOptionIndex();this.onOptionSelect(null,this.visibleOptions()[u],!1,!0)}}onOptionSelect(u,ne,ue=!0,Ie=!1){if(!this.isSelected(ne)){const nt=this.getOptionValue(ne);this.updateModel(nt,u),this.focusedOptionIndex.set(this.findSelectedOptionIndex()),!1===Ie&&this.onChange.emit({originalEvent:u,value:nt})}ue&&this.hide(!0)}onOptionMouseEnter(u,ne){this.focusOnHover&&this.changeFocusedOptionIndex(u,ne)}updateModel(u,ne){this.value=u,this.onModelChange(u),this.modelValue.set(u),this.selectedOptionUpdated=!0}writeValue(u){this.filter&&this.resetFilter(),this.value=u,this.allowModelChange()&&this.onModelChange(u),this.modelValue.set(this.value),this.updateEditableLabel(),this.cd.markForCheck()}allowModelChange(){return this.autoDisplayFirst&&!this.placeholder()&&(void 0===this.modelValue()||null===this.modelValue())&&!this.editable&&this.options&&this.options.length}isSelected(u){return this.isValidOption(u)&&this.isOptionValueEqualsModelValue(u)}isOptionValueEqualsModelValue(u){return le.BF.equals(this.modelValue(),this.getOptionValue(u),this.equalityKey())}ngAfterViewInit(){this.editable&&this.updateEditableLabel()}updateEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value=this.getOptionLabel(this.selectedOption)||this.modelValue()||"")}clearEditableLabel(){this.editableInputViewChild&&(this.editableInputViewChild.nativeElement.value="")}getOptionIndex(u,ne){return this.virtualScrollerDisabled?u:ne&&ne.getItemOptions(u).index}getOptionLabel(u){return null!=this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):u&&void 0!==u.label?u.label:u}getOptionValue(u){return this.optionValue&&null!==this.optionValue?le.BF.resolveFieldData(u,this.optionValue):!this.optionLabel&&u&&void 0!==u.value?u.value:u}isOptionDisabled(u){return!(this.getOptionValue(this.modelValue())===this.getOptionValue(u)||this.getOptionLabel(this.modelValue()===this.getOptionLabel(u))&&!1===u.disabled)&&(this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):!(!u||void 0===u.disabled)&&u.disabled)}getOptionGroupLabel(u){return null!=this.optionGroupLabel?le.BF.resolveFieldData(u,this.optionGroupLabel):u&&void 0!==u.label?u.label:u}getOptionGroupChildren(u){return null!=this.optionGroupChildren?le.BF.resolveFieldData(u,this.optionGroupChildren):u.items}getAriaPosInset(u){return(this.optionGroupLabel?u-this.visibleOptions().slice(0,u).filter(ne=>this.isOptionGroup(ne)).length:u)+1}get ariaSetSize(){return this.visibleOptions().filter(u=>!this.isOptionGroup(u)).length}resetFilter(){this._filterValue.set(null),this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value="")}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onContainerClick(u){this.disabled||this.readonly||(this.focusInputViewChild?.nativeElement.focus({preventScroll:!0}),"INPUT"!==u.target.tagName&&"clearicon"!==u.target.getAttribute("data-pc-section")&&!u.target.closest('[data-pc-section="clearicon"]')&&((!this.overlayViewChild||!this.overlayViewChild.el.nativeElement.contains(u.target))&&(this.overlayVisible?this.hide(!0):this.show(!0)),this.onClick.emit(u),this.clicked.set(!0),this.cd.detectChanges()))}isEmpty(){return!this._options()||this.visibleOptions()&&0===this.visibleOptions().length}onEditableInput(u){const ne=u.target.value;this.searchValue="",!this.searchOptions(u,ne)&&this.focusedOptionIndex.set(-1),this.onModelChange(ne),this.updateModel(ne,u),setTimeout(()=>{this.onChange.emit({originalEvent:u,value:ne})},1),!this.overlayVisible&&le.BF.isNotEmpty(ne)&&this.show()}show(u){this.overlayVisible=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.autoOptionFocus?this.findFirstFocusedOptionIndex():this.editable?-1:this.findSelectedOptionIndex();this.focusedOptionIndex.set(ne),u&&re.D.focus(this.focusInputViewChild?.nativeElement),this.cd.markForCheck()}onOverlayAnimationStart(u){if("visible"===u.toState){if(this.itemsWrapper=re.D.findSingle(this.overlayViewChild?.overlayViewChild?.nativeElement,this.virtualScroll?".p-scroller":".p-dropdown-items-wrapper"),this.virtualScroll&&this.scroller?.setContentEl(this.itemsViewChild?.nativeElement),this.options&&this.options.length)if(this.virtualScroll){const ne=this.modelValue()?this.focusedOptionIndex():-1;-1!==ne&&this.scroller?.scrollToIndex(ne)}else{let ne=re.D.findSingle(this.itemsWrapper,".p-dropdown-item.p-highlight");ne&&ne.scrollIntoView({block:"nearest",inline:"nearest"})}this.filterViewChild&&this.filterViewChild.nativeElement&&(this.preventModelTouched=!0,this.autofocusFilter&&!this.editable&&this.filterViewChild.nativeElement.focus()),this.onShow.emit(u)}"void"===u.toState&&(this.itemsWrapper=null,this.onModelTouched(),this.onHide.emit(u))}hide(u){this.overlayVisible=!1,this.focusedOptionIndex.set(-1),this.clicked.set(!1),this.searchValue="",this.filter&&this.resetFilterOnHide&&this.resetFilter(),u&&(this.focusInputViewChild&&re.D.focus(this.focusInputViewChild?.nativeElement),this.editable&&this.editableInputViewChild&&re.D.focus(this.editableInputViewChild?.nativeElement)),this.cd.markForCheck()}onInputFocus(u){if(this.disabled)return;this.focused=!0;const ne=-1!==this.focusedOptionIndex()?this.focusedOptionIndex():this.overlayVisible&&this.autoOptionFocus?this.findFirstFocusedOptionIndex():-1;this.focusedOptionIndex.set(ne),this.overlayVisible&&this.scrollInView(this.focusedOptionIndex()),this.onFocus.emit(u)}onInputBlur(u){this.focused=!1,!1===this.overlayVisible&&this.onBlur.emit(u),this.preventModelTouched||this.onModelTouched(),this.preventModelTouched=!1}onKeyDown(u,ne){if(!this.disabled&&!this.readonly){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,this.editable);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,this.editable);break;case"Delete":this.onDeleteKey(u);break;case"Home":this.onHomeKey(u,this.editable);break;case"End":this.onEndKey(u,this.editable);break;case"PageDown":this.onPageDownKey(u);break;case"PageUp":this.onPageUpKey(u);break;case"Space":this.onSpaceKey(u,ne);break;case"Enter":case"NumpadEnter":this.onEnterKey(u);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u);break;case"Backspace":this.onBackspaceKey(u,this.editable);break;case"ShiftLeft":case"ShiftRight":break;default:!u.metaKey&&le.BF.isPrintableCharacter(u.key)&&(!this.overlayVisible&&this.show(),!this.editable&&this.searchOptions(u,u.key))}this.clicked.set(!1)}}onFilterKeyDown(u){switch(u.code){case"ArrowDown":this.onArrowDownKey(u);break;case"ArrowUp":this.onArrowUpKey(u,!0);break;case"ArrowLeft":case"ArrowRight":this.onArrowLeftKey(u,!0);break;case"Home":this.onHomeKey(u,!0);break;case"End":this.onEndKey(u,!0);break;case"Enter":this.onEnterKey(u,!0);break;case"Escape":this.onEscapeKey(u);break;case"Tab":this.onTabKey(u,!0)}}onFilterBlur(u){this.focusedOptionIndex.set(-1)}onArrowDownKey(u){if(this.overlayVisible){const ne=-1!==this.focusedOptionIndex()?this.findNextOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findFirstOptionIndex():this.findFirstFocusedOptionIndex();this.changeFocusedOptionIndex(u,ne)}else this.show(),this.editable&&this.changeFocusedOptionIndex(u,this.findSelectedOptionIndex());u.preventDefault()}changeFocusedOptionIndex(u,ne){if(this.focusedOptionIndex()!==ne&&(this.focusedOptionIndex.set(ne),this.scrollInView(),this.selectOnFocus)){const ue=this.visibleOptions()[ne];this.onOptionSelect(u,ue,!1)}}get virtualScrollerDisabled(){return!this.virtualScroll}scrollInView(u=-1){if(this.itemsViewChild&&this.itemsViewChild.nativeElement){const ue=re.D.findSingle(this.itemsViewChild.nativeElement,`li[id="${-1!==u?`${this.id}_${u}`:this.focusedOptionId}"]`);ue?ue.scrollIntoView&&ue.scrollIntoView({block:"nearest",inline:"nearest"}):this.virtualScrollerDisabled||setTimeout(()=>{this.virtualScroll&&this.scroller?.scrollToIndex(-1!==u?u:this.focusedOptionIndex())},0)}}hasSelectedOption(){return void 0!==this.modelValue()}isValidSelectedOption(u){return this.isValidOption(u)&&this.isSelected(u)}equalityKey(){return this.optionValue?null:this.dataKey}findFirstFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findFirstOptionIndex():u}findFirstOptionIndex(){return this.visibleOptions().findIndex(u=>this.isValidOption(u))}findSelectedOptionIndex(){return this.hasSelectedOption()?this.visibleOptions().findIndex(u=>this.isValidSelectedOption(u)):-1}findNextOptionIndex(u){const ne=uthis.isValidOption(ue)):-1;return ne>-1?ne+u+1:u}findPrevOptionIndex(u){const ne=u>0?le.BF.findLastIndex(this.visibleOptions().slice(0,u),ue=>this.isValidOption(ue)):-1;return ne>-1?ne:u}findLastOptionIndex(){return le.BF.findLastIndex(this.visibleOptions(),u=>this.isValidOption(u))}findLastFocusedOptionIndex(){const u=this.findSelectedOptionIndex();return u<0?this.findLastOptionIndex():u}isValidOption(u){return null!=u&&!(this.isOptionDisabled(u)||this.isOptionGroup(u))}isOptionGroup(u){return null!=this.optionGroupLabel&&null!=u.optionGroup&&u.group}onArrowUpKey(u,ne=!1){if(u.altKey&&!ne){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(),u.preventDefault()}else{const ue=-1!==this.focusedOptionIndex()?this.findPrevOptionIndex(this.focusedOptionIndex()):this.clicked()?this.findLastOptionIndex():this.findLastFocusedOptionIndex();this.changeFocusedOptionIndex(u,ue),!this.overlayVisible&&this.show(),u.preventDefault()}}onArrowLeftKey(u,ne=!1){ne&&this.focusedOptionIndex.set(-1)}onDeleteKey(u){this.showClear&&(this.clear(u),u.preventDefault())}onHomeKey(u,ne=!1){if(ne){const ue=u.currentTarget;u.shiftKey?ue.setSelectionRange(0,ue.value.length):(ue.setSelectionRange(0,0),this.focusedOptionIndex.set(-1))}else this.changeFocusedOptionIndex(u,this.findFirstOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onEndKey(u,ne=!1){if(ne){const ue=u.currentTarget;if(u.shiftKey)ue.setSelectionRange(0,ue.value.length);else{const Ie=ue.value.length;ue.setSelectionRange(Ie,Ie),this.focusedOptionIndex.set(-1)}}else this.changeFocusedOptionIndex(u,this.findLastOptionIndex()),!this.overlayVisible&&this.show();u.preventDefault()}onPageDownKey(u){this.scrollInView(this.visibleOptions().length-1),u.preventDefault()}onPageUpKey(u){this.scrollInView(0),u.preventDefault()}onSpaceKey(u,ne=!1){!this.editable&&!ne&&this.onEnterKey(u)}onEnterKey(u,ne=!1){if(this.overlayVisible){if(-1!==this.focusedOptionIndex()){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}!ne&&this.hide()}else this.focusedOptionIndex.set(-1),this.onArrowDownKey(u);u.preventDefault()}onEscapeKey(u){this.overlayVisible&&this.hide(!0),u.preventDefault()}onTabKey(u,ne=!1){if(!ne)if(this.overlayVisible&&this.hasFocusableElements())re.D.focus(u.shiftKey?this.lastHiddenFocusableElementOnOverlay.nativeElement:this.firstHiddenFocusableElementOnOverlay.nativeElement),u.preventDefault();else{if(-1!==this.focusedOptionIndex()&&this.overlayVisible){const ue=this.visibleOptions()[this.focusedOptionIndex()];this.onOptionSelect(u,ue)}this.overlayVisible&&this.hide(this.filter)}}onFirstHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getFirstFocusableElement(this.overlayViewChild.el?.nativeElement,":not(.p-hidden-focusable)"):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}onLastHiddenFocus(u){const ne=u.relatedTarget===this.focusInputViewChild?.nativeElement?re.D.getLastFocusableElement(this.overlayViewChild?.overlayViewChild?.nativeElement,':not([data-p-hidden-focusable="true"])'):this.focusInputViewChild?.nativeElement;re.D.focus(ne)}hasFocusableElements(){return re.D.getFocusableElements(this.overlayViewChild.overlayViewChild.nativeElement,':not([data-p-hidden-focusable="true"])').length>0}onBackspaceKey(u,ne=!1){ne&&!this.overlayVisible&&this.show()}searchFields(){return this.filterBy?.split(",")||this.filterFields||[this.optionLabel]}searchOptions(u,ne){this.searchValue=(this.searchValue||"")+ne;let ue=-1,Ie=!1;return-1!==this.focusedOptionIndex()?(ue=this.visibleOptions().slice(this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)),ue=-1===ue?this.visibleOptions().slice(0,this.focusedOptionIndex()).findIndex(nt=>this.isOptionMatched(nt)):ue+this.focusedOptionIndex()):ue=this.visibleOptions().findIndex(nt=>this.isOptionMatched(nt)),-1!==ue&&(Ie=!0),-1===ue&&-1===this.focusedOptionIndex()&&(ue=this.findFirstFocusedOptionIndex()),-1!==ue&&this.changeFocusedOptionIndex(u,ue),this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout(()=>{this.searchValue="",this.searchTimeout=null},500),Ie}isOptionMatched(u){return this.isValidOption(u)&&this.getOptionLabel(u).toString().toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale))}onFilterInputChange(u){this._filterValue.set(u.target.value),this.focusedOptionIndex.set(-1),this.onFilter.emit({originalEvent:u,filter:this._filterValue()}),!this.virtualScrollerDisabled&&this.scroller.scrollToIndex(0),setTimeout(()=>{this.overlayViewChild.alignOverlay()}),this.cd.markForCheck()}applyFocus(){this.editable?re.D.findSingle(this.el.nativeElement,".p-dropdown-label.p-inputtext").focus():re.D.focus(this.focusInputViewChild?.nativeElement)}focus(){this.applyFocus()}clear(u){this.updateModel(null,u),this.clearEditableLabel(),this.onModelTouched(),this.onChange.emit({originalEvent:u,value:this.value}),this.onClear.emit(u),this.resetFilter()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT),e.rXU(e.sFG),e.rXU(e.gRc),e.rXU(e.SKi),e.rXU(Pe.E),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-dropdown"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(Ao,5),e.GBs(Fa,5),e.GBs(Ba,5),e.GBs(va,5),e.GBs(Xs,5),e.GBs(to,5),e.GBs(Hr,5),e.GBs(io,5),e.GBs(ec,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.filterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.focusInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.editableInputViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.itemsViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first),e.mGM(Ie=e.lsd())&&(ue.overlayViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.firstHiddenFocusableElementOnOverlay=Ie.first),e.mGM(Ie=e.lsd())&&(ue.lastHiddenFocusableElementOnOverlay=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:4,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled())("p-inputwrapper-focus",ue.focused||ue.overlayVisible)},inputs:{id:"id",scrollHeight:"scrollHeight",filter:"filter",name:"name",style:"style",panelStyle:"panelStyle",styleClass:"styleClass",panelStyleClass:"panelStyleClass",readonly:"readonly",required:"required",editable:"editable",appendTo:"appendTo",tabindex:"tabindex",placeholder:"placeholder",filterPlaceholder:"filterPlaceholder",filterLocale:"filterLocale",inputId:"inputId",dataKey:"dataKey",filterBy:"filterBy",filterFields:"filterFields",autofocus:"autofocus",resetFilterOnHide:"resetFilterOnHide",dropdownIcon:"dropdownIcon",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",optionGroupLabel:"optionGroupLabel",optionGroupChildren:"optionGroupChildren",autoDisplayFirst:"autoDisplayFirst",group:"group",showClear:"showClear",emptyFilterMessage:"emptyFilterMessage",emptyMessage:"emptyMessage",lazy:"lazy",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",overlayOptions:"overlayOptions",ariaFilterLabel:"ariaFilterLabel",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",filterMatchMode:"filterMatchMode",maxlength:"maxlength",tooltip:"tooltip",tooltipPosition:"tooltipPosition",tooltipPositionStyle:"tooltipPositionStyle",tooltipStyleClass:"tooltipStyleClass",focusOnHover:"focusOnHover",selectOnFocus:"selectOnFocus",autoOptionFocus:"autoOptionFocus",autofocusFilter:"autofocusFilter",disabled:"disabled",itemSize:"itemSize",autoZIndex:"autoZIndex",baseZIndex:"baseZIndex",showTransitionOptions:"showTransitionOptions",hideTransitionOptions:"hideTransitionOptions",filterValue:"filterValue",options:"options"},outputs:{onChange:"onChange",onFilter:"onFilter",onFocus:"onFocus",onBlur:"onBlur",onClick:"onClick",onShow:"onShow",onHide:"onHide",onClear:"onClear",onLazyLoad:"onLazyLoad"},features:[e.Jv_([Pc])],decls:11,vars:20,consts:[["container",""],["overlay",""],["focusInput",""],["defaultPlaceholder",""],["editableInput",""],["firstHiddenFocusableEl",""],["buildInItems",""],["lastHiddenFocusableEl",""],["builtInFilterElement",""],["filter",""],["scroller",""],["items",""],["emptyFilter",""],["empty",""],[3,"click","ngClass","ngStyle"],["role","combobox","pAutoFocus","",3,"ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus","focus","blur","keydown",4,"ngIf"],["type","text","aria-haspopup","listbox",3,"ngClass","disabled","input","keydown","focus","blur",4,"ngIf"],[4,"ngIf"],["role","button","aria-label","dropdown trigger","aria-haspopup","listbox",1,"p-dropdown-trigger"],["class","p-dropdown-trigger-icon",4,"ngIf"],[3,"visibleChange","onAnimationStart","onHide","visible","options","target","appendTo","autoZIndex","baseZIndex","showTransitionOptions","hideTransitionOptions"],["pTemplate","content"],["role","combobox","pAutoFocus","",3,"focus","blur","keydown","ngClass","pTooltip","tooltipPosition","positionStyle","tooltipStyleClass","autofocus"],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet","ngTemplateOutletContext",4,"ngIf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","text","aria-haspopup","listbox",3,"input","keydown","focus","blur","ngClass","disabled"],[3,"styleClass","click",4,"ngIf"],["class","p-dropdown-clear-icon",3,"click",4,"ngIf"],[3,"click","styleClass"],[1,"p-dropdown-clear-icon",3,"click"],[4,"ngTemplateOutlet"],["class","p-dropdown-trigger-icon",3,"ngClass",4,"ngIf"],[3,"styleClass",4,"ngIf"],[1,"p-dropdown-trigger-icon",3,"ngClass"],[3,"styleClass"],[1,"p-dropdown-trigger-icon"],[3,"ngClass","ngStyle"],["role","presentation",1,"p-hidden-accessible","p-hidden-focusable",3,"focus"],["class","p-dropdown-header",3,"click",4,"ngIf"],[1,"p-dropdown-items-wrapper"],[3,"items","style","itemSize","autoSize","lazy","options","onLazyLoad",4,"ngIf"],[1,"p-dropdown-header",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-dropdown-filter-container"],["type","text","autocomplete","off",1,"p-dropdown-filter","p-inputtext","p-component",3,"input","keydown","blur","value"],["class","p-dropdown-filter-icon",4,"ngIf"],[1,"p-dropdown-filter-icon"],[3,"onLazyLoad","items","itemSize","autoSize","lazy","options"],["pTemplate","loader"],["role","listbox",1,"p-dropdown-items",3,"ngClass"],["ngFor","",3,"ngForOf"],["class","p-dropdown-empty-message",3,"ngStyle",4,"ngIf"],["role","option",1,"p-dropdown-item-group",3,"ngStyle"],[3,"onClick","onMouseEnter","id","option","selected","label","disabled","template","focused","ariaPosInset","ariaSetSize"],[1,"p-dropdown-empty-message",3,"ngStyle"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",14,0),e.bIt("click",function(Tt){return e.eBV(Ie),e.Njj(ue.onContainerClick(Tt))}),e.DNE(2,Oo,6,20,"span",15)(3,Zi,2,4,"input",16)(4,Ye,3,2,"ng-container",17),e.j41(5,"div",18),e.DNE(6,Vi,3,2,"ng-container",17)(7,Ir,2,1,"span",19),e.k0s(),e.j41(8,"p-overlay",20,1),e.mxI("visibleChange",function(Tt){return e.eBV(Ie),e.DH7(ue.overlayVisible,Tt)||(ue.overlayVisible=Tt),e.Njj(Tt)}),e.bIt("onAnimationStart",function(Tt){return e.eBV(Ie),e.Njj(ue.onOverlayAnimationStart(Tt))})("onHide",function(){return e.eBV(Ie),e.Njj(ue.hide())}),e.DNE(10,fl,13,19,"ng-template",21),e.k0s()()}if(2&ne){let Ie;e.HbH(ue.styleClass),e.Y8G("ngClass",ue.containerClass)("ngStyle",ue.style),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",!ue.editable),e.R7$(),e.Y8G("ngIf",ue.editable),e.R7$(),e.Y8G("ngIf",ue.isVisibleClearIcon),e.R7$(),e.BMQ("aria-expanded",null!==(Ie=ue.overlayVisible)&&void 0!==Ie&&Ie)("data-pc-section","trigger"),e.R7$(),e.Y8G("ngIf",!ue.dropdownIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dropdownIconTemplate),e.R7$(),e.R50("visible",ue.overlayVisible),e.Y8G("options",ue.overlayOptions)("target","@parent")("appendTo",ue.appendTo)("autoZIndex",ue.autoZIndex)("baseZIndex",ue.baseZIndex)("showTransitionOptions",ue.showTransitionOptions)("hideTransitionOptions",ue.hideTransitionOptions)}},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Pa,Pe.Ei,cl,ll,rs,A.A,$,sr,nc],styles:["@layer primeng{.p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;opacity:0}input.p-dropdown-label{cursor:default}.p-dropdown .p-dropdown-panel{min-width:100%}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-item-group{cursor:auto}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}}\n"],encapsulation:2,changeDetection:0})}return xe})(),Po=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,La,Pe.Gg,Er,ve.Z,Gr,un,A.A,$,sr,La,Pe.Gg,Gr]})}return xe})(),Rc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),jl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["ArrowUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),tr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["CheckIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),Nc=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Lo=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["FilterSlashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),xa=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["PlusIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Ns=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:9,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z","fill","currentColor"],["d","M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z","fill","currentColor"],["d","M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z","fill","currentColor"],["d","M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1)(3,"path",2)(4,"path",3)(5,"path",4),e.k0s(),e.j41(6,"defs")(7,"clipPath",5),e.nrm(8,"rect",6),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(6),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),Fs=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),ea=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["SortAmountUpAltIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),gl=(()=>{class xe extends fe.h{pathId;ngOnInit(){this.pathId="url(#"+(0,le._Y)()+")"}static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["TrashIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:6,vars:7,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0)(1,"g"),e.nrm(2,"path",1),e.k0s(),e.j41(3,"defs")(4,"clipPath",2),e.nrm(5,"rect",3),e.k0s()()()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role),e.R7$(),e.BMQ("clip-path",ue.pathId),e.R7$(3),e.Y8G("id",ue.pathId))},encapsulation:2})}return xe})(),yo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDownIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),xo=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleUpIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();var _a=He(22242);const Ca=["input"],Vl=(xe,tt,u)=>({"p-inputnumber p-component":!0,"p-inputnumber-buttons-stacked":xe,"p-inputnumber-buttons-horizontal":tt,"p-inputnumber-buttons-vertical":u}),Fc=()=>({"p-inputnumber-button p-inputnumber-button-up":!0}),ml=()=>({"p-inputnumber-button p-inputnumber-button-down":!0});function _r(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"TimesIcon",8),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.k0s()}2&xe&&(e.Y8G("ngClass","p-inputnumber-clear-icon"),e.BMQ("data-pc-section","clearIcon"))}function Ga(xe,tt){}function ta(xe,tt){1&xe&&e.DNE(0,Ga,0,0,"ng-template")}function Ur(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",9),e.bIt("click",function(){e.eBV(u);const ue=e.XpG(2);return e.Njj(ue.clear())}),e.DNE(1,ta,1,0,null,10),e.k0s()}if(2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","clearIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.clearIconTemplate)}}function ia(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,_r,1,2,"TimesIcon",6)(2,Ur,2,2,"span",7),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",!u.clearIconTemplate),e.R7$(),e.Y8G("ngIf",u.clearIconTemplate)}}function Ha(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function na(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Ge(xe,tt){}function ut(xe,tt){1&xe&&e.DNE(0,Ge,0,0,"ng-template")}function Ke(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,na,1,1,"AngleUpIcon",3)(2,ut,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function at(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Et(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function qt(xe,tt){}function ci(xe,tt){1&xe&&e.DNE(0,qt,0,0,"ng-template")}function Oi(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Et,1,1,"AngleDownIcon",3)(2,ci,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function Xn(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"span",11)(1,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(2,Ha,1,2,"span",13)(3,Ke,3,2,"ng-container",3),e.k0s(),e.j41(4,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(5,at,1,2,"span",13)(6,Oi,3,2,"ng-container",3),e.k0s()()}if(2&xe){const u=e.XpG();e.BMQ("data-pc-section","buttonGroup"),e.R7$(),e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(17,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon),e.R7$(),e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(18,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section",u.decrementbutton),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}function es(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.incrementButtonIcon),e.BMQ("data-pc-section","incrementbuttonicon")}}function as(xe,tt){1&xe&&e.nrm(0,"AngleUpIcon"),2&xe&&e.BMQ("data-pc-section","incrementbuttonicon")}function Sn(xe,tt){}function us(xe,tt){1&xe&&e.DNE(0,Sn,0,0,"ng-template")}function ss(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,as,1,1,"AngleUpIcon",3)(2,us,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.incrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.incrementButtonIconTemplate)}}function Bs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onUpButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onUpButtonKeyUp())}),e.DNE(1,es,1,2,"span",13)(2,ss,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.incrementButtonClass),e.Y8G("ngClass",e.lJ4(8,Fc))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","incrementbutton"),e.R7$(),e.Y8G("ngIf",u.incrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.incrementButtonIcon)}}function Rr(xe,tt){if(1&xe&&e.nrm(0,"span",14),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.decrementButtonIcon),e.BMQ("data-pc-section","decrementbuttonicon")}}function Gn(xe,tt){1&xe&&e.nrm(0,"AngleDownIcon"),2&xe&&e.BMQ("data-pc-section","decrementbuttonicon")}function pi(xe,tt){}function zi(xe,tt){1&xe&&e.DNE(0,pi,0,0,"ng-template")}function Yn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Gn,1,1,"AngleDownIcon",3)(2,zi,1,0,null,10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.decrementButtonIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.decrementButtonIconTemplate)}}function gs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",12),e.bIt("mousedown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonMouseDown(ue))})("mouseup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseUp())})("mouseleave",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonMouseLeave())})("keydown",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onDownButtonKeyDown(ue))})("keyup",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onDownButtonKeyUp())}),e.DNE(1,Rr,1,2,"span",13)(2,Yn,3,2,"ng-container",3),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.decrementButtonClass),e.Y8G("ngClass",e.lJ4(8,ml))("disabled",u.disabled),e.BMQ("aria-hidden",!0)("data-pc-section","decrementbutton"),e.R7$(),e.Y8G("ngIf",u.decrementButtonIcon),e.R7$(),e.Y8G("ngIf",!u.decrementButtonIcon)}}const ks={provide:V.kq,useExisting:(0,e.Rfq)(()=>or),multi:!0};let or=(()=>{class xe{document;el;cd;injector;showButtons=!1;format=!0;buttonLayout="stacked";inputId;styleClass;style;placeholder;size;maxlength;tabindex;title;ariaLabelledBy;ariaLabel;ariaRequired;name;required;autocomplete;min;max;incrementButtonClass;decrementButtonClass;incrementButtonIcon;decrementButtonIcon;readonly=!1;step=1;allowEmpty=!0;locale;localeMatcher;mode="decimal";currency;currencyDisplay;useGrouping=!0;minFractionDigits;maxFractionDigits;prefix;suffix;inputStyle;inputStyleClass;showClear=!1;get disabled(){return this._disabled}set disabled(u){u&&(this.focused=!1),this._disabled=u,this.timer&&this.clearTimer()}onInput=new e.bkB;onFocus=new e.bkB;onBlur=new e.bkB;onKeyDown=new e.bkB;onClear=new e.bkB;input;templates;clearIconTemplate;incrementButtonIconTemplate;decrementButtonIconTemplate;value;onModelChange=()=>{};onModelTouched=()=>{};focused;initialized;groupChar="";prefixChar="";suffixChar="";isSpecialChar;timer;lastValue;_numeral;numberFormat;_decimal;_decimalChar;_group;_minusSign;_currency;_prefix;_suffix;_index;_disabled;ngControl=null;constructor(u,ne,ue,Ie){this.document=u,this.el=ne,this.cd=ue,this.injector=Ie}ngOnChanges(u){["locale","localeMatcher","mode","currency","currencyDisplay","useGrouping","minFractionDigits","maxFractionDigits","prefix","suffix"].some(ue=>!!u[ue])&&this.updateConstructParser()}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"clearicon":this.clearIconTemplate=u.template;break;case"incrementbuttonicon":this.incrementButtonIconTemplate=u.template;break;case"decrementbuttonicon":this.decrementButtonIconTemplate=u.template}})}ngOnInit(){this.ngControl=this.injector.get(V.vO,null,{optional:!0}),this.constructParser(),this.initialized=!0}getOptions(){return{localeMatcher:this.localeMatcher,style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,useGrouping:this.useGrouping,minimumFractionDigits:this.minFractionDigits,maximumFractionDigits:this.maxFractionDigits}}constructParser(){this.numberFormat=new Intl.NumberFormat(this.locale,this.getOptions());const u=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ne=new Map(u.map((ue,Ie)=>[ue,Ie]));this._numeral=new RegExp(`[${u.join("")}]`,"g"),this._group=this.getGroupingExpression(),this._minusSign=this.getMinusSignExpression(),this._currency=this.getCurrencyExpression(),this._decimal=this.getDecimalExpression(),this._decimalChar=this.getDecimalChar(),this._suffix=this.getSuffixExpression(),this._prefix=this.getPrefixExpression(),this._index=ue=>ne.get(ue)}updateConstructParser(){this.initialized&&this.constructParser()}escapeRegExp(u){return u.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}getDecimalExpression(){const u=this.getDecimalChar();return new RegExp(`[${u}]`,"g")}getDecimalChar(){return new Intl.NumberFormat(this.locale,{...this.getOptions(),useGrouping:!1}).format(1.1).replace(this._currency,"").trim().replace(this._numeral,"")}getGroupingExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!0});return this.groupChar=u.format(1e6).trim().replace(this._numeral,"").charAt(0),new RegExp(`[${this.groupChar}]`,"g")}getMinusSignExpression(){const u=new Intl.NumberFormat(this.locale,{useGrouping:!1});return new RegExp(`[${u.format(-1).trim().replace(this._numeral,"")}]`,"g")}getCurrencyExpression(){if(this.currency){const u=new Intl.NumberFormat(this.locale,{style:"currency",currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});return new RegExp(`[${u.format(1).replace(/\s/g,"").replace(this._numeral,"").replace(this._group,"")}]`,"g")}return new RegExp("[]","g")}getPrefixExpression(){if(this.prefix)this.prefixChar=this.prefix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay});this.prefixChar=u.format(1).split("1")[0]}return new RegExp(`${this.escapeRegExp(this.prefixChar||"")}`,"g")}getSuffixExpression(){if(this.suffix)this.suffixChar=this.suffix;else{const u=new Intl.NumberFormat(this.locale,{style:this.mode,currency:this.currency,currencyDisplay:this.currencyDisplay,minimumFractionDigits:0,maximumFractionDigits:0});this.suffixChar=u.format(1).split("1")[1]}return new RegExp(`${this.escapeRegExp(this.suffixChar||"")}`,"g")}formatValue(u){if(null!=u){if("-"===u)return u;if(this.format){let ue=new Intl.NumberFormat(this.locale,this.getOptions()).format(u);return this.prefix&&(ue=this.prefix+ue),this.suffix&&(ue+=this.suffix),ue}return u.toString()}return""}parseValue(u){let ne=u.replace(this._suffix,"").replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").replace(this._group,"").replace(this._minusSign,"-").replace(this._decimal,".").replace(this._numeral,this._index);if(ne){if("-"===ne)return ne;let ue=+ne;return isNaN(ue)?null:ue}return null}repeat(u,ne,ue){if(this.readonly)return;let Ie=ne||500;this.clearTimer(),this.timer=setTimeout(()=>{this.repeat(u,40,ue)},Ie),this.spin(u,ue)}spin(u,ne){let ue=this.step*ne,Ie=this.parseValue(this.input?.nativeElement.value)||0,nt=this.validateValue(Ie+ue);this.maxlength&&this.maxlength=0;Tt--)if(this.isNumeralChar(Ie.charAt(Tt))){this.input.nativeElement.setSelectionRange(Tt,Tt);break}break;case"Tab":case"Enter":nt=this.validateValue(this.parseValue(this.input.nativeElement.value)),this.input.nativeElement.value=this.formatValue(nt),this.input.nativeElement.setAttribute("aria-valuenow",nt),this.updateModel(u,nt);break;case"Backspace":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne-1),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne-2)+Ie.slice(ne-1);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne-1,ne-1):nt=Ie.slice(0,ne-1)+Ie.slice(ne);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne-1)+Ie.slice(ne)}else"currency"===this.mode&&-1!=Tt.search(this._currency)&&(nt=Ie.slice(1));this.updateValue(u,nt,null,"delete-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Delete":if(u.preventDefault(),ne===ue){const Tt=Ie.charAt(ne),{decimalCharIndex:zt,decimalCharIndexWithoutPrefix:ai}=this.getDecimalCharIndexes(Ie);if(this.isNumeralChar(Tt)){const oi=this.getDecimalLength(Ie);if(this._group.test(Tt))this._group.lastIndex=0,nt=Ie.slice(0,ne)+Ie.slice(ne+2);else if(this._decimal.test(Tt))this._decimal.lastIndex=0,oi?this.input?.nativeElement.setSelectionRange(ne+1,ne+1):nt=Ie.slice(0,ne)+Ie.slice(ne+1);else if(zt>0&&ne>zt){const Pi=this.isDecimalMode()&&(this.minFractionDigits||0)0?nt:""):nt=Ie.slice(0,ne)+Ie.slice(ne+1)}this.updateValue(u,nt,null,"delete-back-single")}else nt=this.deleteRange(Ie,ne,ue),this.updateValue(u,nt,null,"delete-range");break;case"Home":this.min&&(this.updateModel(u,this.min),u.preventDefault());break;case"End":this.max&&(this.updateModel(u,this.max),u.preventDefault())}this.onKeyDown.emit(u)}onInputKeyPress(u){if(this.readonly)return;let ne=u.which||u.keyCode,ue=String.fromCharCode(ne),Ie=this.isDecimalSign(ue);const nt=this.isMinusSign(ue);13!=ne&&u.preventDefault(),!Ie&&"NumpadDecimal"===u.code&&(Ie=!0,ue=this._decimalChar,ne=ue.charCodeAt(0));const Tt=this.parseValue(this.input.nativeElement.value+ue),zt=null!=Tt?Tt.toString():"";this.maxlength&&zt.length>this.maxlength||(48<=ne&&ne<=57||nt||Ie)&&this.insert(u,ue,{isDecimalSign:Ie,isMinusSign:nt})}onPaste(u){if(!this.disabled&&!this.readonly){u.preventDefault();let ne=(u.clipboardData||this.document.defaultView.clipboardData).getData("Text");if(ne){this.maxlength&&(ne=ne.toString().substring(0,this.maxlength));let ue=this.parseValue(ne);null!=ue&&this.insert(u,ue.toString())}}}allowMinusSign(){return null==this.min||this.min<0}isMinusSign(u){return!(!this._minusSign.test(u)&&"-"!==u||(this._minusSign.lastIndex=0,0))}isDecimalSign(u){return!!this._decimal.test(u)&&(this._decimal.lastIndex=0,!0)}isDecimalMode(){return"decimal"===this.mode}getDecimalCharIndexes(u){let ne=u.search(this._decimal);this._decimal.lastIndex=0;const Ie=u.replace(this._prefix,"").trim().replace(/\s/g,"").replace(this._currency,"").search(this._decimal);return this._decimal.lastIndex=0,{decimalCharIndex:ne,decimalCharIndexWithoutPrefix:Ie}}getCharIndexes(u){const ne=u.search(this._decimal);this._decimal.lastIndex=0;const ue=u.search(this._minusSign);this._minusSign.lastIndex=0;const Ie=u.search(this._suffix);this._suffix.lastIndex=0;const nt=u.search(this._currency);return this._currency.lastIndex=0,{decimalCharIndex:ne,minusCharIndex:ue,suffixCharIndex:Ie,currencyCharIndex:nt}}insert(u,ne,ue={isDecimalSign:!1,isMinusSign:!1}){const Ie=ne.search(this._minusSign);if(this._minusSign.lastIndex=0,!this.allowMinusSign()&&-1!==Ie)return;let nt=this.input?.nativeElement.selectionStart,Tt=this.input?.nativeElement.selectionEnd,zt=this.input?.nativeElement.value.trim();const{decimalCharIndex:ai,minusCharIndex:oi,suffixCharIndex:Pi,currencyCharIndex:qi}=this.getCharIndexes(zt);let Yi;if(ue.isMinusSign)0===nt&&(Yi=zt,(-1===oi||0!==Tt)&&(Yi=this.insertText(zt,ne,0,Tt)),this.updateValue(u,Yi,ne,"insert"));else if(ue.isDecimalSign)ai>0&&nt===ai?this.updateValue(u,zt,ne,"insert"):(ai>nt&&ai0&&nt>ai){if(nt+ne.length-(ai+1)<=tn){const nn=qi>=nt?qi-1:Pi>=nt?Pi:zt.length;Yi=zt.slice(0,nt)+ne+zt.slice(nt+ne.length,nn)+zt.slice(nn),this.updateValue(u,Yi,ne,Cn)}}else Yi=this.insertText(zt,ne,nt,Tt),this.updateValue(u,Yi,ne,Cn)}}insertText(u,ne,ue,Ie){if(2===("."===ne?ne:ne.split(".")).length){const Tt=u.slice(ue,Ie).search(this._decimal);return this._decimal.lastIndex=0,Tt>0?u.slice(0,ue)+this.formatValue(ne)+u.slice(Ie):u||this.formatValue(ne)}return Ie-ue===u.length?this.formatValue(ne):0===ue?ne+u.slice(Ie):Ie===u.length?u.slice(0,ue)+ne:u.slice(0,ue)+ne+u.slice(Ie)}deleteRange(u,ne,ue){let Ie;return Ie=ue-ne===u.length?"":0===ne?u.slice(ue):ue===u.length?u.slice(0,ne):u.slice(0,ne)+u.slice(ue),Ie}initCursor(){let u=this.input?.nativeElement.selectionStart,ne=this.input?.nativeElement.value,ue=ne.length,Ie=null,nt=(this.prefixChar||"").length;ne=ne.replace(this._prefix,""),u-=nt;let Tt=ne.charAt(u);if(this.isNumeralChar(Tt))return u+nt;let zt=u-1;for(;zt>=0;){if(Tt=ne.charAt(zt),this.isNumeralChar(Tt)){Ie=zt+nt;break}zt--}if(null!==Ie)this.input?.nativeElement.setSelectionRange(Ie+1,Ie+1);else{for(zt=u;ztthis.max?this.max:u}updateInput(u,ne,ue,Ie){ne=ne||"";let nt=this.input?.nativeElement.value,Tt=this.formatValue(u),zt=nt.length;if(Tt!==Ie&&(Tt=this.concatValues(Tt,Ie)),0===zt){this.input.nativeElement.value=Tt,this.input.nativeElement.setSelectionRange(0,0);const oi=this.initCursor()+ne.length;this.input.nativeElement.setSelectionRange(oi,oi)}else{let ai=this.input.nativeElement.selectionStart,oi=this.input.nativeElement.selectionEnd;if(this.maxlength&&Tt.length>this.maxlength&&(Tt=Tt.slice(0,this.maxlength),ai=Math.min(ai,this.maxlength),oi=Math.min(oi,this.maxlength)),this.maxlength&&this.maxlength0}clearTimer(){this.timer&&clearInterval(this.timer)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.aKT),e.rXU(e.gRc),e.rXU(e.zZn))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-inputNumber"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ca,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.input=Ie.first)}},hostAttrs:[1,"p-element","p-inputwrapper"],hostVars:6,hostBindings:function(ne,ue){2&ne&&e.AVh("p-inputwrapper-filled",ue.filled)("p-inputwrapper-focus",ue.focused)("p-inputnumber-clearable",ue.showClear&&"vertical"!=ue.buttonLayout)},inputs:{showButtons:"showButtons",format:"format",buttonLayout:"buttonLayout",inputId:"inputId",styleClass:"styleClass",style:"style",placeholder:"placeholder",size:"size",maxlength:"maxlength",tabindex:"tabindex",title:"title",ariaLabelledBy:"ariaLabelledBy",ariaLabel:"ariaLabel",ariaRequired:"ariaRequired",name:"name",required:"required",autocomplete:"autocomplete",min:"min",max:"max",incrementButtonClass:"incrementButtonClass",decrementButtonClass:"decrementButtonClass",incrementButtonIcon:"incrementButtonIcon",decrementButtonIcon:"decrementButtonIcon",readonly:"readonly",step:"step",allowEmpty:"allowEmpty",locale:"locale",localeMatcher:"localeMatcher",mode:"mode",currency:"currency",currencyDisplay:"currencyDisplay",useGrouping:"useGrouping",minFractionDigits:"minFractionDigits",maxFractionDigits:"maxFractionDigits",prefix:"prefix",suffix:"suffix",inputStyle:"inputStyle",inputStyleClass:"inputStyleClass",showClear:"showClear",disabled:"disabled"},outputs:{onInput:"onInput",onFocus:"onFocus",onBlur:"onBlur",onKeyDown:"onKeyDown",onClear:"onClear"},features:[e.Jv_([ks]),e.OA$],decls:7,vars:39,consts:[["input",""],[3,"ngClass","ngStyle"],["pInputText","","role","spinbutton","inputmode","decimal",3,"input","keydown","keypress","paste","click","focus","blur","ngClass","ngStyle","value","disabled","readonly"],[4,"ngIf"],["class","p-inputnumber-button-group",4,"ngIf"],["type","button","pButton","","class","p-button-icon-only","tabindex","-1",3,"ngClass","class","disabled","mousedown","mouseup","mouseleave","keydown","keyup",4,"ngIf"],[3,"ngClass","click",4,"ngIf"],["class","p-inputnumber-clear-icon",3,"click",4,"ngIf"],[3,"click","ngClass"],[1,"p-inputnumber-clear-icon",3,"click"],[4,"ngTemplateOutlet"],[1,"p-inputnumber-button-group"],["type","button","pButton","","tabindex","-1",1,"p-button-icon-only",3,"mousedown","mouseup","mouseleave","keydown","keyup","ngClass","disabled"],[3,"ngClass",4,"ngIf"],[3,"ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"span",1)(1,"input",2,0),e.bIt("input",function(Tt){return e.eBV(Ie),e.Njj(ue.onUserInput(Tt))})("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyDown(Tt))})("keypress",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputKeyPress(Tt))})("paste",function(Tt){return e.eBV(Ie),e.Njj(ue.onPaste(Tt))})("click",function(){return e.eBV(Ie),e.Njj(ue.onInputClick())})("focus",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputFocus(Tt))})("blur",function(Tt){return e.eBV(Ie),e.Njj(ue.onInputBlur(Tt))}),e.k0s(),e.DNE(3,ia,3,2,"ng-container",3)(4,Xn,7,19,"span",4)(5,Bs,3,9,"button",5)(6,gs,3,9,"button",5),e.k0s()}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass",e.sMw(35,Vl,ue.showButtons&&"stacked"===ue.buttonLayout,ue.showButtons&&"horizontal"===ue.buttonLayout,ue.showButtons&&"vertical"===ue.buttonLayout))("ngStyle",ue.style),e.BMQ("data-pc-name","inputnumber")("data-pc-section","root"),e.R7$(),e.HbH(ue.inputStyleClass),e.Y8G("ngClass","p-inputnumber-input")("ngStyle",ue.inputStyle)("value",ue.formattedValue())("disabled",ue.disabled)("readonly",ue.readonly),e.BMQ("id",ue.inputId)("aria-valuemin",ue.min)("aria-valuemax",ue.max)("aria-valuenow",ue.value)("placeholder",ue.placeholder)("aria-label",ue.ariaLabel)("aria-labelledby",ue.ariaLabelledBy)("title",ue.title)("size",ue.size)("name",ue.name)("autocomplete",ue.autocomplete)("maxlength",ue.maxlength)("tabindex",ue.tabindex)("aria-required",ue.ariaRequired)("required",ue.required)("min",ue.min)("max",ue.max)("data-pc-section","input"),e.R7$(2),e.Y8G("ngIf","vertical"!=ue.buttonLayout&&ue.showClear&&ue.value),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"===ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout),e.R7$(),e.Y8G("ngIf",ue.showButtons&&"stacked"!==ue.buttonLayout))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,_a.S,Z._f,A.A,xo,yo],styles:["@layer primeng{p-inputnumber,.p-inputnumber{display:inline-flex}.p-inputnumber-button{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label{display:none}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up{border-top-left-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-input{border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;padding:0}.p-inputnumber-buttons-stacked .p-inputnumber-button-group{display:flex;flex-direction:column}.p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button{flex:1 1 auto}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{order:3;border-top-left-radius:0;border-bottom-left-radius:0}.p-inputnumber-buttons-horizontal .p-inputnumber-input{order:2;border-radius:0}.p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{order:1;border-top-right-radius:0;border-bottom-right-radius:0}.p-inputnumber-buttons-vertical{flex-direction:column}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up{order:1;border-bottom-left-radius:0;border-bottom-right-radius:0;width:100%}.p-inputnumber-buttons-vertical .p-inputnumber-input{order:2;border-radius:0;text-align:center}.p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down{order:3;border-top-left-radius:0;border-top-right-radius:0;width:100%}.p-inputnumber-input{flex:1 1 auto}.p-fluid p-inputnumber,.p-fluid .p-inputnumber{width:100%}.p-fluid .p-inputnumber .p-inputnumber-input{width:1%}.p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input{width:100%}.p-inputnumber-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-inputnumber-clearable{position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),wa=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,_a.u,Z.tm,A.A,xo,yo,Pe.Gg]})}return xe})(),ms=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),gr=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleDoubleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),_o=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleLeftIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})(),en=(()=>{class xe extends fe.h{static \u0275fac=(()=>{let u;return function(ue){return(u||(u=e.xGo(xe)))(ue||xe)}})();static \u0275cmp=e.VBU({type:xe,selectors:[["AngleRightIcon"]],standalone:!0,features:[e.Vt3,e.aNF],decls:2,vars:5,consts:[["width","14","height","14","viewBox","0 0 14 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z","fill","currentColor"]],template:function(ne,ue){1&ne&&(e.qSk(),e.j41(0,"svg",0),e.nrm(1,"path",1),e.k0s()),2&ne&&(e.HbH(ue.getClassNames()),e.BMQ("aria-label",ue.ariaLabel)("aria-hidden",ue.ariaHidden)("role",ue.role))},encapsulation:2})}return xe})();const Ro=xe=>({"p-disabled":xe}),sc=xe=>({$implicit:xe}),bs=xe=>({"p-highlight":xe});function Kn(xe,tt){1&xe&&e.eu8(0)}function Ta(xe,tt){if(1&xe&&(e.j41(0,"div",15),e.DNE(1,Kn,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","start"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateLeft)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function zl(xe,tt){if(1&xe&&(e.j41(0,"span",17),e.EFF(1),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.JRh(u.currentPageReport)}}function Co(xe,tt){1&xe&&e.nrm(0,"AngleDoubleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function rc(xe,tt){}function Sa(xe,tt){1&xe&&e.DNE(0,rc,0,0,"ng-template")}function No(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Sa,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.firstPageLinkIconTemplate)}}function bl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",18),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToFirst(ue))}),e.DNE(1,Co,1,1,"AngleDoubleLeftIcon",6)(2,No,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("firstPageLabel")),e.R7$(),e.Y8G("ngIf",!u.firstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.firstPageLinkIconTemplate)}}function Ua(xe,tt){1&xe&&e.nrm(0,"AngleLeftIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sn(xe,tt){}function oc(xe,tt){1&xe&&e.DNE(0,sn,0,0,"ng-template")}function vl(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,oc,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.previousPageLinkIconTemplate)}}function Fo(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",24),e.bIt("click",function(ue){const Ie=e.eBV(u).$implicit,nt=e.XpG(3);return e.Njj(nt.onPageLinkClick(ue,Ie-1))}),e.EFF(1),e.k0s()}if(2&xe){const u=tt.$implicit,ne=e.XpG(3);e.Y8G("ngClass",e.eq3(4,bs,u-1==ne.getPage())),e.BMQ("aria-label",ne.getPageAriaLabel(u))("aria-current",u-1==ne.getPage()?"page":void 0),e.R7$(),e.SpI(" ",ne.getLocalization(u)," ")}}function ac(xe,tt){if(1&xe&&(e.j41(0,"span",22),e.DNE(1,Fo,2,6,"button",23),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngForOf",u.pageLinks)}}function yl(xe,tt){if(1&xe&&e.EFF(0),2&xe){const u=e.XpG(3);e.JRh(u.currentPageReport)}}function js(xe,tt){1&xe&&e.eu8(0)}function lc(xe,tt){if(1&xe&&e.DNE(0,js,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function mr(xe,tt){1&xe&&e.DNE(0,lc,1,1,"ng-template",28)}function Vs(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",25),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onPageDropdownChange(ue))}),e.DNE(1,yl,1,1,"ng-template",26)(2,mr,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.pageItems)("ngModel",u.getPage())("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight),e.BMQ("aria-label",u.getAriaLabel("jumpToPageDropdownLabel")),e.R7$(2),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Gl(xe,tt){1&xe&&e.nrm(0,"AngleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function sa(xe,tt){}function xl(xe,tt){1&xe&&e.DNE(0,sa,0,0,"ng-template")}function Wr(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,xl,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",u.nextPageLinkIconTemplate)}}function Bc(xe,tt){1&xe&&e.nrm(0,"AngleDoubleRightIcon",19),2&xe&&e.Y8G("styleClass","p-paginator-icon")}function vh(xe,tt){}function Zh(xe,tt){1&xe&&e.DNE(0,vh,0,0,"ng-template")}function Qn(xe,tt){if(1&xe&&(e.j41(0,"span",20),e.DNE(1,Zh,1,0,null,21),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.lastPageLinkIconTemplate)}}function _l(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"button",29),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePageToLast(ue))}),e.DNE(1,Bc,1,1,"AngleDoubleRightIcon",6)(2,Qn,2,1,"span",7),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(5,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("lastPageLabel")),e.R7$(),e.Y8G("ngIf",!u.lastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.lastPageLinkIconTemplate)}}function qh(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-inputNumber",30),e.bIt("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.changePage(ue-1))}),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("ngModel",u.currentPage())("disabled",u.empty())}}function Qh(xe,tt){1&xe&&e.eu8(0)}function jf(xe,tt){if(1&xe&&e.DNE(0,Qh,1,0,"ng-container",16),2&xe){const u=tt.$implicit,ne=e.XpG(4);e.Y8G("ngTemplateOutlet",ne.dropdownItemTemplate)("ngTemplateOutletContext",e.eq3(2,sc,u))}}function Ju(xe,tt){1&xe&&(e.qex(0),e.DNE(1,jf,1,4,"ng-template",32),e.bVm())}function ep(xe,tt){1&xe&&e.eu8(0)}function Ld(xe,tt){if(1&xe&&e.DNE(0,ep,1,0,"ng-container",21),2&xe){const u=e.XpG(4);e.Y8G("ngTemplateOutlet",u.dropdownIconTemplate)}}function Jh(xe,tt){1&xe&&e.DNE(0,Ld,1,1,"ng-template",28)}function Re(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-dropdown",31),e.mxI("ngModelChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.DH7(Ie.rows,ue)||(Ie.rows=ue),e.Njj(ue)}),e.bIt("onChange",function(ue){e.eBV(u);const Ie=e.XpG(2);return e.Njj(Ie.onRppChange(ue))}),e.DNE(1,Ju,2,0,"ng-container",27)(2,Jh,1,0,null,27),e.k0s()}if(2&xe){const u=e.XpG(2);e.Y8G("options",u.rowsPerPageItems),e.R50("ngModel",u.rows),e.Y8G("disabled",u.empty())("appendTo",u.dropdownAppendTo)("scrollHeight",u.dropdownScrollHeight)("ariaLabel",u.getAriaLabel("rowsPerPageLabel")),e.R7$(),e.Y8G("ngIf",u.dropdownItemTemplate),e.R7$(),e.Y8G("ngIf",u.dropdownIconTemplate)}}function Ue(xe,tt){1&xe&&e.eu8(0)}function Be(xe,tt){if(1&xe&&(e.j41(0,"div",33),e.DNE(1,Ue,1,0,"ng-container",16),e.k0s()),2&xe){const u=e.XpG(2);e.BMQ("data-pc-section","end"),e.R7$(),e.Y8G("ngTemplateOutlet",u.templateRight)("ngTemplateOutletContext",e.eq3(3,sc,u.paginatorState))}}function We(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",1),e.DNE(1,Ta,2,5,"div",2)(2,zl,2,1,"span",3)(3,bl,3,7,"button",4),e.j41(4,"button",5),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToPrev(ue))}),e.DNE(5,Ua,1,1,"AngleLeftIcon",6)(6,vl,2,1,"span",7),e.k0s(),e.DNE(7,ac,2,1,"span",8)(8,Vs,3,7,"p-dropdown",9),e.j41(9,"button",10),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.changePageToNext(ue))}),e.DNE(10,Gl,1,1,"AngleRightIcon",6)(11,Wr,2,1,"span",7),e.k0s(),e.DNE(12,_l,3,7,"button",11)(13,qh,1,2,"p-inputNumber",12)(14,Re,3,8,"p-dropdown",13)(15,Be,2,5,"div",14),e.k0s()}if(2&xe){const u=e.XpG();e.HbH(u.styleClass),e.Y8G("ngStyle",u.style)("ngClass","p-paginator p-component"),e.BMQ("data-pc-section","paginator")("data-pc-section","root"),e.R7$(),e.Y8G("ngIf",u.templateLeft),e.R7$(),e.Y8G("ngIf",u.showCurrentPageReport),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("disabled",u.isFirstPage()||u.empty())("ngClass",e.eq3(25,Ro,u.isFirstPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("prevPageLabel")),e.R7$(),e.Y8G("ngIf",!u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.previousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showPageLinks),e.R7$(),e.Y8G("ngIf",u.showJumpToPageDropdown),e.R7$(),e.Y8G("disabled",u.isLastPage()||u.empty())("ngClass",e.eq3(27,Ro,u.isLastPage()||u.empty())),e.BMQ("aria-label",u.getAriaLabel("nextPageLabel")),e.R7$(),e.Y8G("ngIf",!u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.nextPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.showFirstLastIcon),e.R7$(),e.Y8G("ngIf",u.showJumpToPageInput),e.R7$(),e.Y8G("ngIf",u.rowsPerPageOptions),e.R7$(),e.Y8G("ngIf",u.templateRight)}}let rt=(()=>{class xe{cd;config;pageLinkSize=5;style;styleClass;alwaysShow=!0;dropdownAppendTo;templateLeft;templateRight;appendTo;dropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showFirstLastIcon=!0;totalRecords=0;rows=0;rowsPerPageOptions;showJumpToPageDropdown;showJumpToPageInput;showPageLinks=!0;locale;dropdownItemTemplate;get first(){return this._first}set first(u){this._first=u}onPageChange=new e.bkB;templates;dropdownIconTemplate;firstPageLinkIconTemplate;previousPageLinkIconTemplate;lastPageLinkIconTemplate;nextPageLinkIconTemplate;pageLinks;pageItems;rowsPerPageItems;paginatorState;_first=0;_page=0;constructor(u,ne){this.cd=u,this.config=ne}ngOnInit(){this.updatePaginatorState()}getAriaLabel(u){return this.config.translation.aria?this.config.translation.aria[u]:void 0}getPageAriaLabel(u){return this.config.translation.aria?this.config.translation.aria.pageLabel.replace(/{page}/g,`Page ${u}`):void 0}getLocalization(u){const ne=[...new Intl.NumberFormat(this.locale,{useGrouping:!1}).format(9876543210)].reverse(),ue=new Map(ne.map((Ie,nt)=>[nt,Ie]));return u>9?String(u).split("").map(nt=>ue.get(Number(nt))).join(""):ue.get(u)}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"dropdownicon":this.dropdownIconTemplate=u.template;break;case"firstpagelinkicon":this.firstPageLinkIconTemplate=u.template;break;case"previouspagelinkicon":this.previousPageLinkIconTemplate=u.template;break;case"lastpagelinkicon":this.lastPageLinkIconTemplate=u.template;break;case"nextpagelinkicon":this.nextPageLinkIconTemplate=u.template}})}ngOnChanges(u){u.totalRecords&&(this.updatePageLinks(),this.updatePaginatorState(),this.updateFirst(),this.updateRowsPerPageOptions()),u.first&&(this._first=u.first.currentValue,this.updatePageLinks(),this.updatePaginatorState()),u.rows&&(this.updatePageLinks(),this.updatePaginatorState()),u.rowsPerPageOptions&&this.updateRowsPerPageOptions()}updateRowsPerPageOptions(){if(this.rowsPerPageOptions){this.rowsPerPageItems=[];for(let u of this.rowsPerPageOptions)"object"==typeof u&&u.showAll?this.rowsPerPageItems.unshift({label:u.showAll,value:this.totalRecords}):this.rowsPerPageItems.push({label:String(this.getLocalization(u)),value:u})}}isFirstPage(){return 0===this.getPage()}isLastPage(){return this.getPage()===this.getPageCount()-1}getPageCount(){return Math.ceil(this.totalRecords/this.rows)}calculatePageLinkBoundaries(){let u=this.getPageCount(),ne=Math.min(this.pageLinkSize,u),ue=Math.max(0,Math.ceil(this.getPage()-ne/2)),Ie=Math.min(u-1,ue+ne-1);return ue=Math.max(0,ue-(this.pageLinkSize-(Ie-ue+1))),[ue,Ie]}updatePageLinks(){this.pageLinks=[];let u=this.calculatePageLinkBoundaries(),ue=u[1];for(let Ie=u[0];Ie<=ue;Ie++)this.pageLinks.push(Ie+1);if(this.showJumpToPageDropdown){this.pageItems=[];for(let Ie=0;Ie=0&&u0&&this.totalRecords&&this.first>=this.totalRecords&&Promise.resolve(null).then(()=>this.changePage(u-1))}getPage(){return Math.floor(this.first/this.rows)}changePageToFirst(u){this.isFirstPage()||this.changePage(0),u.preventDefault()}changePageToPrev(u){this.changePage(this.getPage()-1),u.preventDefault()}changePageToNext(u){this.changePage(this.getPage()+1),u.preventDefault()}changePageToLast(u){this.isLastPage()||this.changePage(this.getPageCount()-1),u.preventDefault()}onPageLinkClick(u,ne){this.changePage(ne),u.preventDefault()}onRppChange(u){this.changePage(this.getPage())}onPageDropdownChange(u){this.changePage(u.value)}updatePaginatorState(){this.paginatorState={page:this.getPage(),pageCount:this.getPageCount(),rows:this.rows,first:this.first,totalRecords:this.totalRecords}}empty(){return 0===this.getPageCount()}currentPage(){return this.getPageCount()>0?this.getPage()+1:0}get currentPageReport(){return this.currentPageReportTemplate.replace("{currentPage}",String(this.currentPage())).replace("{totalPages}",String(this.getPageCount())).replace("{first}",String(this.totalRecords>0?this._first+1:0)).replace("{last}",String(Math.min(this._first+this.rows,this.totalRecords))).replace("{rows}",String(this.rows)).replace("{totalRecords}",String(this.totalRecords))}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-paginator"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{pageLinkSize:"pageLinkSize",style:"style",styleClass:"styleClass",alwaysShow:"alwaysShow",dropdownAppendTo:"dropdownAppendTo",templateLeft:"templateLeft",templateRight:"templateRight",appendTo:"appendTo",dropdownScrollHeight:"dropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showFirstLastIcon:"showFirstLastIcon",totalRecords:"totalRecords",rows:"rows",rowsPerPageOptions:"rowsPerPageOptions",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showPageLinks:"showPageLinks",locale:"locale",dropdownItemTemplate:"dropdownItemTemplate",first:"first"},outputs:{onPageChange:"onPageChange"},features:[e.OA$],decls:1,vars:1,consts:[[3,"class","ngStyle","ngClass",4,"ngIf"],[3,"ngStyle","ngClass"],["class","p-paginator-left-content",4,"ngIf"],["class","p-paginator-current",4,"ngIf"],["type","button","pRipple","","class","p-paginator-first p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-prev","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass",4,"ngIf"],["class","p-paginator-icon",4,"ngIf"],["class","p-paginator-pages",4,"ngIf"],["styleClass","p-paginator-page-options",3,"options","ngModel","disabled","appendTo","scrollHeight","onChange",4,"ngIf"],["type","button","pRipple","",1,"p-paginator-next","p-paginator-element","p-link",3,"click","disabled","ngClass"],["type","button","pRipple","","class","p-paginator-last p-paginator-element p-link",3,"disabled","ngClass","click",4,"ngIf"],["class","p-paginator-page-input",3,"ngModel","disabled","ngModelChange",4,"ngIf"],["styleClass","p-paginator-rpp-options",3,"options","ngModel","disabled","appendTo","scrollHeight","ariaLabel","ngModelChange","onChange",4,"ngIf"],["class","p-paginator-right-content",4,"ngIf"],[1,"p-paginator-left-content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-paginator-current"],["type","button","pRipple","",1,"p-paginator-first","p-paginator-element","p-link",3,"click","disabled","ngClass"],[3,"styleClass"],[1,"p-paginator-icon"],[4,"ngTemplateOutlet"],[1,"p-paginator-pages"],["type","button","class","p-paginator-page p-paginator-element p-link","pRipple","",3,"ngClass","click",4,"ngFor","ngForOf"],["type","button","pRipple","",1,"p-paginator-page","p-paginator-element","p-link",3,"click","ngClass"],["styleClass","p-paginator-page-options",3,"onChange","options","ngModel","disabled","appendTo","scrollHeight"],["pTemplate","selectedItem"],[4,"ngIf"],["pTemplate","dropdownicon"],["type","button","pRipple","",1,"p-paginator-last","p-paginator-element","p-link",3,"click","disabled","ngClass"],[1,"p-paginator-page-input",3,"ngModelChange","ngModel","disabled"],["styleClass","p-paginator-rpp-options",3,"ngModelChange","onChange","options","ngModel","disabled","appendTo","scrollHeight","ariaLabel"],["pTemplate","item"],[1,"p-paginator-right-content"]],template:function(ne,ue){1&ne&&e.DNE(0,We,16,29,"div",0),2&ne&&e.Y8G("ngIf",!!ue.alwaysShow||ue.pageLinks&&ue.pageLinks.length>1)},dependencies:()=>[M.YU,M.Sq,M.bT,M.T3,M.B3,Lc,Pe.Ei,or,V.BC,V.vS,ve.n,ms,gr,_o,en],styles:["@layer primeng{.p-paginator{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.p-paginator-left-content{margin-right:auto}.p-paginator-right-content{margin-left:auto}.p-paginator-page,.p-paginator-next,.p-paginator-last,.p-paginator-first,.p-paginator-prev,.p-paginator-current{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.p-paginator-element:focus{z-index:1;position:relative}}\n"],encapsulation:2,changeDetection:0})}return xe})(),mt=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Po,wa,V.YN,Pe.Gg,ve.Z,ms,gr,_o,en,Po,wa,V.YN,Pe.Gg]})}return xe})();const Ot=["container"],ei=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-button-icon-only":u}),Xt=(xe,tt)=>({$implicit:xe,index:tt});function Li(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2).$implicit;e.HbH(u.icon),e.Y8G("ngClass","p-button-icon p-button-icon-left"),e.BMQ("data-pc-section","icon")}}function pn(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Li,1,4,"span",6),e.j41(2,"span",7),e.EFF(3),e.k0s(),e.bVm()),2&xe){const u=e.XpG().$implicit,ne=e.XpG();e.R7$(),e.Y8G("ngIf",u.icon),e.R7$(),e.BMQ("data-pc-section","label"),e.R7$(),e.JRh(ne.getOptionLabel(u))}}function Dn(xe,tt){1&xe&&e.eu8(0)}function qs(xe,tt){if(1&xe&&e.DNE(0,Dn,1,0,"ng-container",9),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG();e.Y8G("ngTemplateOutlet",Ie.selectButtonTemplate)("ngTemplateOutletContext",e.l_i(2,Xt,ne,ue))}}function Hl(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"div",4),e.bIt("click",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onOptionSelect(ue,nt,Tt))})("keydown",function(ue){const Ie=e.eBV(u),nt=Ie.$implicit,Tt=Ie.index,zt=e.XpG();return e.Njj(zt.onKeyDown(ue,nt,Tt))})("focus",function(ue){const Ie=e.eBV(u).index,nt=e.XpG();return e.Njj(nt.onFocus(ue,Ie))})("blur",function(){e.eBV(u);const ue=e.XpG();return e.Njj(ue.onBlur())}),e.DNE(1,pn,4,3,"ng-container",5)(2,qs,1,5,"ng-template",null,1,e.C5r),e.k0s()}if(2&xe){const u=tt.$implicit,ne=tt.index,ue=e.sdS(3),Ie=e.XpG();e.HbH(u.styleClass),e.Y8G("role",Ie.multiple?"checkbox":"radio")("ngClass",e.sMw(14,ei,Ie.isSelected(u),Ie.disabled||Ie.isOptionDisabled(u),u.icon&&!Ie.getOptionLabel(u))),e.BMQ("tabindex",ne===Ie.focusedIndex?"0":"-1")("aria-label",u.label)("aria-checked",Ie.isSelected(u))("aria-disabled",Ie.optionDisabled)("aria-pressed",Ie.isSelected(u))("title",u.title)("aria-labelledby",Ie.getOptionLabel(u))("data-pc-section","button"),e.R7$(),e.Y8G("ngIf",!Ie.itemTemplate)("ngIfElse",ue)}}const Cl={provide:V.kq,useExisting:(0,e.Rfq)(()=>wl),multi:!0};let wl=(()=>{class xe{cd;options;optionLabel;optionValue;optionDisabled;unselectable=!1;tabindex=0;multiple;allowEmpty=!0;style;styleClass;ariaLabelledBy;disabled;dataKey;onOptionClick=new e.bkB;onChange=new e.bkB;container;itemTemplate;get selectButtonTemplate(){return this.itemTemplate?.template}get equalityKey(){return this.optionValue?null:this.dataKey}value;onModelChange=()=>{};onModelTouched=()=>{};focusedIndex=0;constructor(u){this.cd=u}getOptionLabel(u){return this.optionLabel?le.BF.resolveFieldData(u,this.optionLabel):null!=u.label?u.label:u}getOptionValue(u){return this.optionValue?le.BF.resolveFieldData(u,this.optionValue):this.optionLabel||void 0===u.value?u:u.value}isOptionDisabled(u){return this.optionDisabled?le.BF.resolveFieldData(u,this.optionDisabled):void 0!==u.disabled&&u.disabled}writeValue(u){this.value=u,this.cd.markForCheck()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}onOptionSelect(u,ne,ue){if(this.disabled||this.isOptionDisabled(ne))return;let Ie=this.isSelected(ne);if(Ie&&this.unselectable)return;let Tt,nt=this.getOptionValue(ne);if(this.multiple)Tt=Ie?this.value.filter(zt=>!le.BF.equals(zt,nt,this.equalityKey)):this.value?[...this.value,nt]:[nt];else{if(Ie&&!this.allowEmpty)return;Tt=Ie?null:nt}this.focusedIndex=ue,this.value=Tt,this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value}),this.onOptionClick.emit({originalEvent:u,option:ne,index:ue})}onKeyDown(u,ne,ue){switch(u.code){case"Space":this.onOptionSelect(u,ne,ue),u.preventDefault();break;case"ArrowDown":case"ArrowRight":this.changeTabIndexes(u,"next"),u.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.changeTabIndexes(u,"prev"),u.preventDefault()}}changeTabIndexes(u,ne){let ue,Ie;for(let nt=0;nt<=this.container.nativeElement.children.length-1;nt++)"0"===this.container.nativeElement.children[nt].getAttribute("tabindex")&&(ue={elem:this.container.nativeElement.children[nt],index:nt});Ie="prev"===ne?0===ue.index?this.container.nativeElement.children.length-1:ue.index-1:ue.index===this.container.nativeElement.children.length-1?0:ue.index+1,this.focusedIndex=Ie,this.container.nativeElement.children[Ie].focus()}onFocus(u,ne){this.focusedIndex=ne}onBlur(){this.onModelTouched()}removeOption(u){this.value=this.value.filter(ne=>!le.BF.equals(ne,this.getOptionValue(u),this.dataKey))}isSelected(u){let ne=!1;const ue=this.getOptionValue(u);if(this.multiple){if(this.value&&Array.isArray(this.value))for(let Ie of this.value)if(le.BF.equals(Ie,ue,this.dataKey)){ne=!0;break}}else ne=le.BF.equals(this.getOptionValue(u),this.value,this.equalityKey);return ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-selectButton"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,5),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.itemTemplate=nt.first)}},viewQuery:function(ne,ue){if(1&ne&&e.GBs(Ot,5),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.container=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{options:"options",optionLabel:"optionLabel",optionValue:"optionValue",optionDisabled:"optionDisabled",unselectable:"unselectable",tabindex:"tabindex",multiple:"multiple",allowEmpty:"allowEmpty",style:"style",styleClass:"styleClass",ariaLabelledBy:"ariaLabelledBy",disabled:"disabled",dataKey:"dataKey"},outputs:{onOptionClick:"onOptionClick",onChange:"onChange"},features:[e.Jv_([Cl])],decls:3,vars:8,consts:[["container",""],["customcontent",""],["role","group",3,"ngClass","ngStyle"],["pRipple","","class","p-button p-component",3,"role","class","ngClass","click","keydown","focus","blur",4,"ngFor","ngForOf"],["pRipple","",1,"p-button","p-component",3,"click","keydown","focus","blur","role","ngClass"],[4,"ngIf","ngIfElse"],[3,"ngClass","class",4,"ngIf"],[1,"p-button-label"],[3,"ngClass"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",2,0),e.DNE(2,Hl,4,18,"div",3),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngClass","p-selectbutton p-buttonset p-component")("ngStyle",ue.style),e.BMQ("aria-labelledby",ue.ariaLabelledBy)("data-pc-name","selectbutton")("data-pc-section","root"),e.R7$(2),e.Y8G("ngForOf",ue.options))},dependencies:[M.YU,M.Sq,M.bT,M.T3,M.B3,ve.n],styles:['@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}\n'],encapsulation:2,changeDetection:0})}return xe})(),cc=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,ve.Z,Pe.Gg,Pe.Gg]})}return xe})();const Wa=(xe,tt)=>({"p-checkbox p-component":!0,"p-checkbox-disabled":xe,"p-checkbox-focused":tt}),tp=(xe,tt,u)=>({"p-highlight":xe,"p-disabled":tt,"p-focus":u}),ed=(xe,tt,u)=>({"p-checkbox-label-active":xe,"p-disabled":tt,"p-checkbox-label-focus":u});function ip(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxTrueIcon),e.BMQ("data-pc-section","checkIcon")}}function np(xe,tt){1&xe&&e.nrm(0,"CheckIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","checkIcon"))}function Rd(xe,tt){}function sp(xe,tt){1&xe&&e.DNE(0,Rd,0,0,"ng-template")}function Bo(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,sp,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","checkIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.checkIconTemplate)}}function yh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,np,1,2,"CheckIcon",9)(2,Bo,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.checkIconTemplate),e.R7$(),e.Y8G("ngIf",u.checkIconTemplate)}}function rp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,ip,1,2,"span",7)(2,yh,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxTrueIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxTrueIcon)}}function op(xe,tt){if(1&xe&&e.nrm(0,"span",8),2&xe){const u=e.XpG(2);e.Y8G("ngClass",u.checkboxFalseIcon),e.BMQ("data-pc-section","uncheckIcon")}}function Vf(xe,tt){1&xe&&e.nrm(0,"TimesIcon",11),2&xe&&(e.Y8G("styleClass","p-checkbox-icon"),e.BMQ("data-pc-section","uncheckIcon"))}function zf(xe,tt){}function Ts(xe,tt){1&xe&&e.DNE(0,zf,0,0,"ng-template")}function Nd(xe,tt){if(1&xe&&(e.j41(0,"span",12),e.DNE(1,Ts,1,0,null,13),e.k0s()),2&xe){const u=e.XpG(3);e.BMQ("data-pc-section","uncheckIcon"),e.R7$(),e.Y8G("ngTemplateOutlet",u.uncheckIconTemplate)}}function jc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Vf,1,2,"TimesIcon",9)(2,Nd,2,2,"span",10),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.uncheckIconTemplate),e.R7$(),e.Y8G("ngIf",u.uncheckIconTemplate)}}function $r(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,op,1,2,"span",7)(2,jc,3,2,"ng-container",5),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.checkboxFalseIcon),e.R7$(),e.Y8G("ngIf",!u.checkboxFalseIcon)}}function Gf(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"label",14),e.bIt("click",function(ue){e.eBV(u);const Ie=e.XpG(),nt=e.sdS(3);return e.Njj(Ie.onClick(ue,nt))}),e.EFF(1),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("ngClass",e.sMw(3,ed,null!=u.value,u.disabled,u.focused)),e.BMQ("for",u.inputId),e.R7$(),e.JRh(u.label)}}const xh={provide:V.kq,useExisting:(0,e.Rfq)(()=>Vc),multi:!0};let Vc=(()=>{class xe{cd;constructor(u){this.cd=u}disabled;name;ariaLabel;ariaLabelledBy;tabindex;inputId;style;styleClass;label;readonly;checkboxTrueIcon;checkboxFalseIcon;onChange=new e.bkB;templates;checkIconTemplate;uncheckIconTemplate;focused;value;onModelChange=()=>{};onModelTouched=()=>{};onClick(u,ne){!this.disabled&&!this.readonly&&(this.toggle(u),this.focused=!0,ne.focus())}onKeyDown(u){"Enter"===u.key&&(this.toggle(u),u.preventDefault())}toggle(u){null==this.value||null==this.value?this.value=!0:1==this.value?this.value=!1:0==this.value&&(this.value=null),this.onModelChange(this.value),this.onChange.emit({originalEvent:u,value:this.value})}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"checkicon":this.checkIconTemplate=u.template;break;case"uncheckicon":this.uncheckIconTemplate=u.template}})}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}registerOnChange(u){this.onModelChange=u}registerOnTouched(u){this.onModelTouched=u}writeValue(u){this.value=u,this.cd.markForCheck()}setDisabledState(u){this.disabled=u,this.cd.markForCheck()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-triStateCheckbox"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],inputs:{disabled:"disabled",name:"name",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",tabindex:"tabindex",inputId:"inputId",style:"style",styleClass:"styleClass",label:"label",readonly:"readonly",checkboxTrueIcon:"checkboxTrueIcon",checkboxFalseIcon:"checkboxFalseIcon"},outputs:{onChange:"onChange"},features:[e.Jv_([xh])],decls:8,vars:26,consts:[["input",""],[3,"click","ngStyle","ngClass"],[1,"p-hidden-accessible"],["type","checkbox","inputmode","none",3,"keydown","focus","blur","name","readonly","disabled"],["role","checkbox",1,"p-checkbox-box",3,"ngClass"],[4,"ngIf"],["class","p-checkbox-label",3,"ngClass","click",4,"ngIf"],["class","p-checkbox-icon",3,"ngClass",4,"ngIf"],[1,"p-checkbox-icon",3,"ngClass"],[3,"styleClass",4,"ngIf"],["class","p-checkbox-icon",4,"ngIf"],[3,"styleClass"],[1,"p-checkbox-icon"],[4,"ngTemplateOutlet"],[1,"p-checkbox-label",3,"click","ngClass"]],template:function(ne,ue){if(1&ne){const Ie=e.RV6();e.j41(0,"div",1),e.bIt("click",function(Tt){e.eBV(Ie);const zt=e.sdS(3);return e.Njj(ue.onClick(Tt,zt))}),e.j41(1,"div",2)(2,"input",3,0),e.bIt("keydown",function(Tt){return e.eBV(Ie),e.Njj(ue.onKeyDown(Tt))})("focus",function(){return e.eBV(Ie),e.Njj(ue.onFocus())})("blur",function(){return e.eBV(Ie),e.Njj(ue.onBlur())}),e.k0s()(),e.j41(4,"div",4),e.DNE(5,rp,3,2,"ng-container",5)(6,$r,3,2,"ng-container",5),e.k0s()(),e.DNE(7,Gf,2,7,"label",6)}2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.l_i(19,Wa,ue.disabled,ue.focused)),e.BMQ("data-pc-name","tristatecheckbox")("data-pc-section","root"),e.R7$(2),e.Y8G("name",ue.name)("readonly",ue.readonly)("disabled",ue.disabled),e.BMQ("id",ue.inputId)("tabindex",ue.tabindex)("aria-labelledby",ue.ariaLabelledBy)("aria-label",ue.ariaLabel)("data-pc-section","hiddenInput"),e.R7$(2),e.Y8G("ngClass",e.sMw(22,tp,null!=ue.value,ue.disabled,ue.focused)),e.BMQ("aria-checked",!0===ue.value),e.R7$(),e.Y8G("ngIf",!0===ue.value),e.R7$(),e.Y8G("ngIf",!1===ue.value),e.R7$(),e.Y8G("ngIf",ue.label))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,tr,A.A],encapsulation:2,changeDetection:0})}return xe})(),jo=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,Pe.Gg,tr,A.A,Pe.Gg]})}return xe})();var zc=He(21413);const td=["container"],Hf=["resizeHelper"],$a=["reorderIndicatorUp"],ap=["reorderIndicatorDown"],lp=["wrapper"],cp=["table"],Gc=["thead"],_h=["tfoot"],Ch=["scroller"],ro=(xe,tt,u)=>({"p-datatable p-component":!0,"p-datatable-hoverable-rows":xe,"p-datatable-scrollable":tt,"p-datatable-flex-scrollable":u}),Ms=xe=>({maxHeight:xe}),Xa=xe=>({height:xe}),on=(xe,tt)=>({$implicit:xe,options:tt}),wh=xe=>({columns:xe}),Uf=(xe,tt,u)=>({"p-datatable-table":!0,"p-datatable-scrollable-table":xe,"p-datatable-resizable-table":tt,"p-datatable-resizable-table-fit":u}),Tl=xe=>({$implicit:xe});function id(xe,tt){if(1&xe&&e.nrm(0,"i"),2&xe){const u=e.XpG(2);e.HbH("p-datatable-loading-icon "+u.loadingIcon)}}function Wf(xe,tt){1&xe&&e.nrm(0,"SpinnerIcon",25),2&xe&&e.Y8G("spin",!0)("styleClass","p-datatable-loading-icon")}function hc(xe,tt){}function Ya(xe,tt){1&xe&&e.DNE(0,hc,0,0,"ng-template")}function Fd(xe,tt){if(1&xe&&(e.j41(0,"span",26),e.DNE(1,Ya,1,0,null,27),e.k0s()),2&xe){const u=e.XpG(3);e.R7$(),e.Y8G("ngTemplateOutlet",u.loadingIconTemplate)}}function hp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Wf,1,2,"SpinnerIcon",23)(2,Fd,2,1,"span",24),e.bVm()),2&xe){const u=e.XpG(2);e.R7$(),e.Y8G("ngIf",!u.loadingIconTemplate),e.R7$(),e.Y8G("ngIf",u.loadingIconTemplate)}}function dp(xe,tt){if(1&xe&&(e.j41(0,"div",21),e.DNE(1,id,1,2,"i",22)(2,hp,3,2,"ng-container",16),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",u.loadingIcon),e.R7$(),e.Y8G("ngIf",!u.loadingIcon)}}function up(xe,tt){1&xe&&e.eu8(0)}function pp(xe,tt){if(1&xe&&(e.j41(0,"div",28),e.DNE(1,up,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.captionTemplate)}}function ni(xe,tt){1&xe&&e.eu8(0)}function xn(xe,tt){if(1&xe&&e.DNE(0,ni,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function Ka(xe,tt){1&xe&&e.DNE(0,xn,1,1,"ng-template",30)}function Hc(xe,tt){1&xe&&e.eu8(0)}function hs(xe,tt){if(1&xe&&e.DNE(0,Hc,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function Uc(xe,tt){1&xe&&e.DNE(0,hs,1,1,"ng-template",31)}function ra(xe,tt){1&xe&&e.eu8(0)}function oa(xe,tt){if(1&xe&&e.DNE(0,ra,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function Bd(xe,tt){1&xe&&e.DNE(0,oa,1,1,"ng-template",32)}function jd(xe,tt){1&xe&&e.eu8(0)}function fp(xe,tt){if(1&xe&&e.DNE(0,jd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function fm(xe,tt){1&xe&&e.DNE(0,fp,1,1,"ng-template",33)}function gp(xe,tt){1&xe&&e.eu8(0)}function oo(xe,tt){if(1&xe&&e.DNE(0,gp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Sl(xe,tt){1&xe&&e.DNE(0,oo,1,1,"ng-template",34)}function dc(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,Ka,1,0,null,16)(2,Uc,1,0,null,16)(3,Bd,1,0,null,16)(4,fm,1,0,null,16)(5,Sl,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-top"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function ka(xe,tt){1&xe&&e.eu8(0)}function kl(xe,tt){if(1&xe&&e.DNE(0,ka,1,0,"ng-container",37),2&xe){const u=tt.$implicit,ne=tt.options;e.XpG(2);const ue=e.sdS(10);e.Y8G("ngTemplateOutlet",ue)("ngTemplateOutletContext",e.l_i(2,on,u,ne))}}function $f(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-scroller",35,3),e.bIt("onLazyLoad",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onLazyItemLoad(ue))}),e.DNE(2,kl,1,5,"ng-template",36),e.k0s()}if(2&xe){const u=e.XpG();e.Aen(e.eq3(15,Xa,"flex"!==u.scrollHeight?u.scrollHeight:void 0)),e.Y8G("items",u.processedData)("columns",u.columns)("scrollHeight","flex"!==u.scrollHeight?void 0:"100%")("itemSize",u.virtualScrollItemSize||u._virtualRowHeight)("step",u.rows)("delay",u.lazy?u.virtualScrollDelay:0)("inline",!0)("lazy",u.lazy)("loaderDisabled",!0)("showSpacer",!1)("showLoader",u.loadingBodyTemplate)("options",u.virtualScrollOptions)("autoSize",!0)}}function mp(xe,tt){1&xe&&e.eu8(0)}function bp(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,mp,1,0,"ng-container",37),e.bVm()),2&xe){const u=e.XpG(),ne=e.sdS(10);e.R7$(),e.Y8G("ngTemplateOutlet",ne)("ngTemplateOutletContext",e.l_i(4,on,u.processedData,e.eq3(2,wh,u.columns)))}}function Th(xe,tt){1&xe&&e.eu8(0)}function Sh(xe,tt){1&xe&&e.eu8(0)}function kh(xe,tt){if(1&xe&&e.nrm(0,"tbody",44),2&xe){const u=e.XpG().options,ne=e.XpG();e.Y8G("value",ne.frozenValue)("frozenRows",!0)("pTableBody",u.columns)("pTableBodyTemplate",ne.frozenBodyTemplate)("frozen",!0)}}function nd(xe,tt){if(1&xe&&e.nrm(0,"tbody",45),2&xe){const u=e.XpG().options;e.Aen("height: calc("+u.spacerStyle.height+" - "+u.rows.length*u.itemSize+"px);")}}function Wc(xe,tt){1&xe&&e.eu8(0)}function Xf(xe,tt){if(1&xe&&(e.j41(0,"tfoot",46,6),e.DNE(2,Wc,1,0,"ng-container",37),e.k0s()),2&xe){const u=e.XpG().options,ne=e.XpG();e.R7$(2),e.Y8G("ngTemplateOutlet",ne.footerGroupedTemplate||ne.footerTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.columns))}}function Mh(xe,tt){if(1&xe&&(e.j41(0,"table",38,4),e.DNE(2,Th,1,0,"ng-container",37),e.j41(3,"thead",39,5),e.DNE(5,Sh,1,0,"ng-container",37),e.k0s(),e.DNE(6,kh,1,5,"tbody",40),e.nrm(7,"tbody",41),e.DNE(8,nd,1,2,"tbody",42)(9,Xf,3,4,"tfoot",43),e.k0s()),2&xe){const u=tt.options,ne=e.XpG();e.Aen(ne.tableStyle),e.HbH(ne.tableStyleClass),e.Y8G("ngClass",e.sMw(20,Uf,ne.scrollable,ne.resizableColumns,ne.resizableColumns&&"fit"===ne.columnResizeMode)),e.BMQ("id",ne.id+"-table"),e.R7$(2),e.Y8G("ngTemplateOutlet",ne.colGroupTemplate)("ngTemplateOutletContext",e.eq3(24,Tl,u.columns)),e.R7$(3),e.Y8G("ngTemplateOutlet",ne.headerGroupedTemplate||ne.headerTemplate)("ngTemplateOutletContext",e.eq3(26,Tl,u.columns)),e.R7$(),e.Y8G("ngIf",ne.frozenValue||ne.frozenBodyTemplate),e.R7$(),e.Aen(u.contentStyle),e.Y8G("ngClass",u.contentStyleClass)("value",ne.dataToRender(u.rows))("pTableBody",u.columns)("pTableBodyTemplate",ne.bodyTemplate)("scrollerOptions",u),e.R7$(),e.Y8G("ngIf",u.spacerStyle),e.R7$(),e.Y8G("ngIf",ne.footerGroupedTemplate||ne.footerTemplate)}}function Vd(xe,tt){1&xe&&e.eu8(0)}function vp(xe,tt){if(1&xe&&e.DNE(0,Vd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorDropdownIconTemplate)}}function sd(xe,tt){1&xe&&e.DNE(0,vp,1,1,"ng-template",30)}function zd(xe,tt){1&xe&&e.eu8(0)}function Gd(xe,tt){if(1&xe&&e.DNE(0,zd,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorFirstPageLinkIconTemplate)}}function rd(xe,tt){1&xe&&e.DNE(0,Gd,1,1,"ng-template",31)}function Yf(xe,tt){1&xe&&e.eu8(0)}function Xr(xe,tt){if(1&xe&&e.DNE(0,Yf,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorPreviousPageLinkIconTemplate)}}function uc(xe,tt){1&xe&&e.DNE(0,Xr,1,1,"ng-template",32)}function Os(xe,tt){1&xe&&e.eu8(0)}function yp(xe,tt){if(1&xe&&e.DNE(0,Os,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorLastPageLinkIconTemplate)}}function Kf(xe,tt){1&xe&&e.DNE(0,yp,1,1,"ng-template",33)}function xp(xe,tt){1&xe&&e.eu8(0)}function Hd(xe,tt){if(1&xe&&e.DNE(0,xp,1,0,"ng-container",27),2&xe){const u=e.XpG(3);e.Y8G("ngTemplateOutlet",u.paginatorNextPageLinkIconTemplate)}}function Ud(xe,tt){1&xe&&e.DNE(0,Hd,1,1,"ng-template",34)}function $c(xe,tt){if(1&xe){const u=e.RV6();e.j41(0,"p-paginator",29),e.bIt("onPageChange",function(ue){e.eBV(u);const Ie=e.XpG();return e.Njj(Ie.onPageChange(ue))}),e.DNE(1,sd,1,0,null,16)(2,rd,1,0,null,16)(3,uc,1,0,null,16)(4,Kf,1,0,null,16)(5,Ud,1,0,null,16),e.k0s()}if(2&xe){const u=e.XpG();e.Y8G("rows",u.rows)("first",u.first)("totalRecords",u.totalRecords)("pageLinkSize",u.pageLinks)("alwaysShow",u.alwaysShowPaginator)("rowsPerPageOptions",u.rowsPerPageOptions)("templateLeft",u.paginatorLeftTemplate)("templateRight",u.paginatorRightTemplate)("dropdownAppendTo",u.paginatorDropdownAppendTo)("dropdownScrollHeight",u.paginatorDropdownScrollHeight)("currentPageReportTemplate",u.currentPageReportTemplate)("showFirstLastIcon",u.showFirstLastIcon)("dropdownItemTemplate",u.paginatorDropdownItemTemplate)("showCurrentPageReport",u.showCurrentPageReport)("showJumpToPageDropdown",u.showJumpToPageDropdown)("showJumpToPageInput",u.showJumpToPageInput)("showPageLinks",u.showPageLinks)("styleClass",u.getPaginatorStyleClasses("p-paginator-bottom"))("locale",u.paginatorLocale),e.R7$(),e.Y8G("ngIf",u.paginatorDropdownIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorFirstPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorPreviousPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorLastPageLinkIconTemplate),e.R7$(),e.Y8G("ngIf",u.paginatorNextPageLinkIconTemplate)}}function Xc(xe,tt){1&xe&&e.eu8(0)}function Vo(xe,tt){if(1&xe&&(e.j41(0,"div",47),e.DNE(1,Xc,1,0,"ng-container",27),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.summaryTemplate)}}function Dh(xe,tt){1&xe&&e.nrm(0,"div",48,7)}function Yc(xe,tt){1&xe&&e.nrm(0,"ArrowDownIcon")}function Ul(xe,tt){}function od(xe,tt){1&xe&&e.DNE(0,Ul,0,0,"ng-template")}function Eh(xe,tt){if(1&xe&&(e.j41(0,"span",49,8),e.DNE(2,Yc,1,0,"ArrowDownIcon",16)(3,od,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorUpIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorUpIconTemplate)}}function Wd(xe,tt){1&xe&&e.nrm(0,"ArrowUpIcon")}function Ml(xe,tt){}function _p(xe,tt){1&xe&&e.DNE(0,Ml,0,0,"ng-template")}function pc(xe,tt){if(1&xe&&(e.j41(0,"span",50,9),e.DNE(2,Wd,1,0,"ArrowUpIcon",16)(3,_p,1,0,null,27),e.k0s()),2&xe){const u=e.XpG();e.R7$(2),e.Y8G("ngIf",!u.reorderIndicatorDownIconTemplate),e.R7$(),e.Y8G("ngTemplateOutlet",u.reorderIndicatorDownIconTemplate)}}const Kc=["pTableBody",""],Ah=(xe,tt,u,ne,ue)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue}),ad=(xe,tt,u,ne,ue,Ie,nt)=>({$implicit:xe,rowIndex:tt,columns:u,editing:ne,frozen:ue,rowgroup:Ie,rowspan:nt}),Zc=(xe,tt,u,ne,ue,Ie)=>({$implicit:xe,rowIndex:tt,columns:u,expanded:ne,editing:ue,frozen:Ie}),$d=(xe,tt,u,ne)=>({$implicit:xe,rowIndex:tt,columns:u,frozen:ne}),Ih=(xe,tt)=>({$implicit:xe,frozen:tt});function Zf(xe,tt){1&xe&&e.eu8(0)}function qf(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Zf,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function qc(xe,tt){1&xe&&e.eu8(0)}function br(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,qc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Xd(xe,tt){1&xe&&e.eu8(0)}function fc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Xd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",ne?Ie.template:Ie.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.sGs(2,ad,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen,Ie.shouldRenderRowspan(Ie.value,ne,ue),Ie.calculateRowGroupSize(Ie.value,ne,ue)))}}function Wl(xe,tt){1&xe&&e.eu8(0)}function Cr(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Wl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.s1E(2,Ah,ne,Ie.getRowIndex(ue),Ie.columns,"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Qf(xe,tt){if(1&xe&&e.DNE(0,qf,2,8,"ng-container",2)(1,br,2,8,"ng-container",0)(2,fc,2,10,"ng-container",0)(3,Cr,2,8,"ng-container",2),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ne)),e.R7$(),e.Y8G("ngIf","rowspan"!==ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf","rowspan"===ue.dt.rowGroupMode),e.R7$(),e.Y8G("ngIf",ue.dt.groupFooterTemplate&&!ue.dt.virtualScroll&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupFooter(ue.value,u,ne))}}function Qc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Qf,4,4,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Dl(xe,tt){1&xe&&e.eu8(0)}function Oh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Dl,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.template)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Ma(xe,tt){1&xe&&e.eu8(0)}function Yd(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Ma,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupHeaderTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Jc(xe,tt){1&xe&&e.eu8(0)}function Kd(xe,tt){1&xe&&e.eu8(0)}function gc(xe,tt){if(1&xe&&(e.qex(0,3),e.DNE(1,Kd,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(2),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.groupFooterTemplate)("ngTemplateOutletContext",e.l4e(2,Zc,ne,Ie.getRowIndex(ue),Ie.columns,Ie.dt.isRowExpanded(ne),"row"===Ie.dt.editMode&&Ie.dt.isRowEditing(ne),Ie.frozen))}}function Zd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jc,1,0,"ng-container",4)(2,gc,2,9,"ng-container",2),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.expandedRowTemplate)("ngTemplateOutletContext",e.ziG(3,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen)),e.R7$(),e.Y8G("ngIf",Ie.dt.groupFooterTemplate&&"subheader"===Ie.dt.rowGroupMode&&Ie.shouldRenderRowGroupFooter(Ie.value,ne,Ie.getRowIndex(ue)))}}function Ph(xe,tt){if(1&xe&&e.DNE(0,Oh,2,9,"ng-container",0)(1,Yd,2,9,"ng-container",2)(2,Zd,3,8,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngIf",!ue.dt.groupHeaderTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.groupHeaderTemplate&&"subheader"===ue.dt.rowGroupMode&&ue.shouldRenderRowGroupHeader(ue.value,u,ue.getRowIndex(ne))),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function qd(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Ph,3,3,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function Qd(xe,tt){1&xe&&e.eu8(0)}function eh(xe,tt){1&xe&&e.eu8(0)}function Lh(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,eh,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG(),ne=u.$implicit,ue=u.index,Ie=e.XpG(2);e.R7$(),e.Y8G("ngTemplateOutlet",Ie.dt.frozenExpandedRowTemplate)("ngTemplateOutletContext",e.ziG(2,$d,ne,Ie.getRowIndex(ue),Ie.columns,Ie.frozen))}}function $l(xe,tt){if(1&xe&&e.DNE(0,Qd,1,0,"ng-container",4)(1,Lh,2,7,"ng-container",0),2&xe){const u=tt.$implicit,ne=tt.index,ue=e.XpG(2);e.Y8G("ngTemplateOutlet",ue.template)("ngTemplateOutletContext",e.l4e(3,Zc,u,ue.getRowIndex(ne),ue.columns,ue.dt.isRowExpanded(u),"row"===ue.dt.editMode&&ue.dt.isRowEditing(u),ue.frozen)),e.R7$(),e.Y8G("ngIf",ue.dt.isRowExpanded(u))}}function mc(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,$l,2,10,"ng-template",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngForOf",u.value)("ngForTrackBy",u.dt.rowTrackBy)}}function El(xe,tt){1&xe&&e.eu8(0)}function wo(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,El,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.loadingBodyTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function bc(xe,tt){1&xe&&e.eu8(0)}function Da(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,bc,1,0,"ng-container",4),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.emptyMessageTemplate)("ngTemplateOutletContext",e.l_i(2,Ih,u.columns,u.frozen))}}function Cp(xe,tt){1&xe&&e.nrm(0,"SortAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function Xl(xe,tt){1&xe&&e.nrm(0,"SortAmountUpAltIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function vc(xe,tt){1&xe&&e.nrm(0,"SortAmountDownIcon",4),2&xe&&e.Y8G("styleClass","p-sortable-column-icon")}function ar(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Cp,1,1,"SortAltIcon",3)(2,Xl,1,1,"SortAmountUpAltIcon",3)(3,vc,1,1,"SortAmountDownIcon",3),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngIf",0===u.sortOrder),e.R7$(),e.Y8G("ngIf",1===u.sortOrder),e.R7$(),e.Y8G("ngIf",-1===u.sortOrder)}}function wp(xe,tt){}function Jd(xe,tt){1&xe&&e.DNE(0,wp,0,0,"ng-template")}function ld(xe,tt){if(1&xe&&(e.j41(0,"span",5),e.DNE(1,Jd,1,0,null,6),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.dt.sortIconTemplate)("ngTemplateOutletContext",e.eq3(2,Tl,u.sortOrder))}}function eu(xe,tt){if(1&xe&&(e.j41(0,"span",7),e.EFF(1),e.k0s()),2&xe){const u=e.XpG();e.R7$(),e.JRh(u.getBadgeValue())}}function cd(xe,tt){1&xe&&e.eu8(0)}function th(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,cd,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.inputTemplate)}}function Jf(xe,tt){1&xe&&e.eu8(0)}function tu(xe,tt){if(1&xe&&(e.qex(0),e.DNE(1,Jf,1,0,"ng-container",1),e.bVm()),2&xe){const u=e.XpG();e.R7$(),e.Y8G("ngTemplateOutlet",u.outputTemplate)}}let we=(()=>{class xe{sortSource=new zc.B;selectionSource=new zc.B;contextMenuSource=new zc.B;valueSource=new zc.B;totalRecordsSource=new zc.B;columnsSource=new zc.B;sortSource$=this.sortSource.asObservable();selectionSource$=this.selectionSource.asObservable();contextMenuSource$=this.contextMenuSource.asObservable();valueSource$=this.valueSource.asObservable();totalRecordsSource$=this.totalRecordsSource.asObservable();columnsSource$=this.columnsSource.asObservable();onSort(u){this.sortSource.next(u)}onSelectionChange(){this.selectionSource.next(null)}onContextMenu(u){this.contextMenuSource.next(u)}onValueChange(u){this.valueSource.next(u)}onTotalRecordsChange(u){this.totalRecordsSource.next(u)}onColumnsChange(u){this.columnsSource.next(u)}static \u0275fac=function(ne){return new(ne||xe)};static \u0275prov=e.jDH({token:xe,factory:xe.\u0275fac})}return xe})(),Ne=(()=>{class xe{document;platformId;renderer;el;zone;tableService;cd;filterService;overlayService;config;frozenColumns;frozenValue;style;styleClass;tableStyle;tableStyleClass;paginator;pageLinks=5;rowsPerPageOptions;alwaysShowPaginator=!0;paginatorPosition="bottom";paginatorStyleClass;paginatorDropdownAppendTo;paginatorDropdownScrollHeight="200px";currentPageReportTemplate="{currentPage} of {totalPages}";showCurrentPageReport;showJumpToPageDropdown;showJumpToPageInput;showFirstLastIcon=!0;showPageLinks=!0;defaultSortOrder=1;sortMode="single";resetPageOnSort=!0;selectionMode;selectionPageOnly;contextMenuSelection;contextMenuSelectionChange=new e.bkB;contextMenuSelectionMode="separate";dataKey;metaKeySelection=!1;rowSelectable;rowTrackBy=(u,ne)=>ne;lazy=!1;lazyLoadOnInit=!0;compareSelectionBy="deepEquals";csvSeparator=",";exportFilename="download";filters={};globalFilterFields;filterDelay=300;filterLocale;expandedRowKeys={};editingRowKeys={};rowExpandMode="multiple";scrollable;scrollDirection="vertical";rowGroupMode;scrollHeight;virtualScroll;virtualScrollItemSize;virtualScrollOptions;virtualScrollDelay=250;frozenWidth;get responsive(){return this._responsive}set responsive(u){this._responsive=u,console.warn("responsive property is deprecated as table is always responsive with scrollable behavior.")}_responsive;contextMenu;resizableColumns;columnResizeMode="fit";reorderableColumns;loading;loadingIcon;showLoader=!0;rowHover;customSort;showInitialSortBadge=!0;autoLayout;exportFunction;exportHeader;stateKey;stateStorage="session";editMode="cell";groupRowsBy;groupRowsByOrder=1;responsiveLayout="scroll";breakpoint="640px";paginatorLocale;get value(){return this._value}set value(u){this._value=u}get columns(){return this._columns}set columns(u){this._columns=u}get first(){return this._first}set first(u){this._first=u}get rows(){return this._rows}set rows(u){this._rows=u}get totalRecords(){return this._totalRecords}set totalRecords(u){this._totalRecords=u,this.tableService.onTotalRecordsChange(this._totalRecords)}get sortField(){return this._sortField}set sortField(u){this._sortField=u}get sortOrder(){return this._sortOrder}set sortOrder(u){this._sortOrder=u}get multiSortMeta(){return this._multiSortMeta}set multiSortMeta(u){this._multiSortMeta=u}get selection(){return this._selection}set selection(u){this._selection=u}get selectAll(){return this._selection}set selectAll(u){this._selection=u}selectAllChange=new e.bkB;selectionChange=new e.bkB;onRowSelect=new e.bkB;onRowUnselect=new e.bkB;onPage=new e.bkB;onSort=new e.bkB;onFilter=new e.bkB;onLazyLoad=new e.bkB;onRowExpand=new e.bkB;onRowCollapse=new e.bkB;onContextMenuSelect=new e.bkB;onColResize=new e.bkB;onColReorder=new e.bkB;onRowReorder=new e.bkB;onEditInit=new e.bkB;onEditComplete=new e.bkB;onEditCancel=new e.bkB;onHeaderCheckboxToggle=new e.bkB;sortFunction=new e.bkB;firstChange=new e.bkB;rowsChange=new e.bkB;onStateSave=new e.bkB;onStateRestore=new e.bkB;containerViewChild;resizeHelperViewChild;reorderIndicatorUpViewChild;reorderIndicatorDownViewChild;wrapperViewChild;tableViewChild;tableHeaderViewChild;tableFooterViewChild;scroller;templates;get virtualRowHeight(){return this._virtualRowHeight}set virtualRowHeight(u){this._virtualRowHeight=u,console.warn("The virtualRowHeight property is deprecated.")}_virtualRowHeight=28;_value=[];_columns;_totalRecords=0;_first=0;_rows;filteredValue;headerTemplate;headerGroupedTemplate;bodyTemplate;loadingBodyTemplate;captionTemplate;footerTemplate;footerGroupedTemplate;summaryTemplate;colGroupTemplate;expandedRowTemplate;groupHeaderTemplate;groupFooterTemplate;frozenExpandedRowTemplate;frozenHeaderTemplate;frozenBodyTemplate;frozenFooterTemplate;frozenColGroupTemplate;emptyMessageTemplate;paginatorLeftTemplate;paginatorRightTemplate;paginatorDropdownItemTemplate;loadingIconTemplate;reorderIndicatorUpIconTemplate;reorderIndicatorDownIconTemplate;sortIconTemplate;checkboxIconTemplate;headerCheckboxIconTemplate;paginatorDropdownIconTemplate;paginatorFirstPageLinkIconTemplate;paginatorLastPageLinkIconTemplate;paginatorPreviousPageLinkIconTemplate;paginatorNextPageLinkIconTemplate;selectionKeys={};lastResizerHelperX;reorderIconWidth;reorderIconHeight;draggedColumn;draggedRowIndex;droppedRowIndex;rowDragging;dropPosition;editingCell;editingCellData;editingCellField;editingCellRowIndex;selfClick;documentEditListener;_multiSortMeta;_sortField;_sortOrder=1;preventSelectionSetterPropagation;_selection;_selectAll=null;anchorRowIndex;rangeRowIndex;filterTimeout;initialized;rowTouched;restoringSort;restoringFilter;stateRestored;columnOrderStateRestored;columnWidthsState;tableWidthState;overlaySubscription;resizeColumnElement;columnResizing=!1;rowGroupHeaderStyleObject={};id=(0,le._Y)();styleElement;responsiveStyleElement;window;constructor(u,ne,ue,Ie,nt,Tt,zt,ai,oi,Pi){this.document=u,this.platformId=ne,this.renderer=ue,this.el=Ie,this.zone=nt,this.tableService=Tt,this.cd=zt,this.filterService=ai,this.overlayService=oi,this.config=Pi,this.window=this.document.defaultView}ngOnInit(){this.lazy&&this.lazyLoadOnInit&&(this.virtualScroll||this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.restoringFilter&&(this.restoringFilter=!1)),"stack"===this.responsiveLayout&&this.createResponsiveStyle(),this.initialized=!0}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"caption":this.captionTemplate=u.template;break;case"header":this.headerTemplate=u.template;break;case"headergrouped":this.headerGroupedTemplate=u.template;break;case"body":this.bodyTemplate=u.template;break;case"loadingbody":this.loadingBodyTemplate=u.template;break;case"footer":this.footerTemplate=u.template;break;case"footergrouped":this.footerGroupedTemplate=u.template;break;case"summary":this.summaryTemplate=u.template;break;case"colgroup":this.colGroupTemplate=u.template;break;case"rowexpansion":this.expandedRowTemplate=u.template;break;case"groupheader":this.groupHeaderTemplate=u.template;break;case"groupfooter":this.groupFooterTemplate=u.template;break;case"frozenheader":this.frozenHeaderTemplate=u.template;break;case"frozenbody":this.frozenBodyTemplate=u.template;break;case"frozenfooter":this.frozenFooterTemplate=u.template;break;case"frozencolgroup":this.frozenColGroupTemplate=u.template;break;case"frozenrowexpansion":this.frozenExpandedRowTemplate=u.template;break;case"emptymessage":this.emptyMessageTemplate=u.template;break;case"paginatorleft":this.paginatorLeftTemplate=u.template;break;case"paginatorright":this.paginatorRightTemplate=u.template;break;case"paginatordropdownicon":this.paginatorDropdownIconTemplate=u.template;break;case"paginatordropdownitem":this.paginatorDropdownItemTemplate=u.template;break;case"paginatorfirstpagelinkicon":this.paginatorFirstPageLinkIconTemplate=u.template;break;case"paginatorlastpagelinkicon":this.paginatorLastPageLinkIconTemplate=u.template;break;case"paginatorpreviouspagelinkicon":this.paginatorPreviousPageLinkIconTemplate=u.template;break;case"paginatornextpagelinkicon":this.paginatorNextPageLinkIconTemplate=u.template;break;case"loadingicon":this.loadingIconTemplate=u.template;break;case"reorderindicatorupicon":this.reorderIndicatorUpIconTemplate=u.template;break;case"reorderindicatordownicon":this.reorderIndicatorDownIconTemplate=u.template;break;case"sorticon":this.sortIconTemplate=u.template;break;case"checkboxicon":this.checkboxIconTemplate=u.template;break;case"headercheckboxicon":this.headerCheckboxIconTemplate=u.template}})}ngAfterViewInit(){(0,M.UE)(this.platformId)&&this.isStateful()&&this.resizableColumns&&this.restoreColumnWidths()}ngOnChanges(u){u.value&&(this.isStateful()&&!this.stateRestored&&(0,M.UE)(this.platformId)&&this.restoreState(),this._value=u.value.currentValue,this.lazy||(this.totalRecords=this._value?this._value.length:0,"single"==this.sortMode&&(this.sortField||this.groupRowsBy)?this.sortSingle():"multiple"==this.sortMode&&(this.multiSortMeta||this.groupRowsBy)?this.sortMultiple():this.hasFilter()&&this._filter()),this.tableService.onValueChange(u.value.currentValue)),u.columns&&(this.isStateful()||(this._columns=u.columns.currentValue,this.tableService.onColumnsChange(u.columns.currentValue)),this._columns&&this.isStateful()&&this.reorderableColumns&&!this.columnOrderStateRestored&&(this.restoreColumnOrder(),this.tableService.onColumnsChange(this._columns))),u.sortField&&(this._sortField=u.sortField.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsBy&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.sortOrder&&(this._sortOrder=u.sortOrder.currentValue,(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle()),u.groupRowsByOrder&&(!this.lazy||this.initialized)&&"single"===this.sortMode&&this.sortSingle(),u.multiSortMeta&&(this._multiSortMeta=u.multiSortMeta.currentValue,"multiple"===this.sortMode&&(this.initialized||!this.lazy&&!this.virtualScroll)&&this.sortMultiple()),u.selection&&(this._selection=u.selection.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange()),this.preventSelectionSetterPropagation=!1),u.selectAll&&(this._selectAll=u.selectAll.currentValue,this.preventSelectionSetterPropagation||(this.updateSelectionKeys(),this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()),this.preventSelectionSetterPropagation=!1)}get processedData(){return this.filteredValue||this.value||[]}_initialColWidths;dataToRender(u){const ne=u||this.processedData;if(ne&&this.paginator){const ue=this.lazy?0:this.first;return ne.slice(ue,ue+this.rows)}return ne}updateSelectionKeys(){if(this.dataKey&&this._selection)if(this.selectionKeys={},Array.isArray(this._selection))for(let u of this._selection)this.selectionKeys[String(le.BF.resolveFieldData(u,this.dataKey))]=1;else this.selectionKeys[String(le.BF.resolveFieldData(this._selection,this.dataKey))]=1}onPageChange(u){this.first=u.first,this.rows=u.rows,this.onPage.emit({first:this.first,rows:this.rows}),this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata()),this.firstChange.emit(this.first),this.rowsChange.emit(this.rows),this.tableService.onValueChange(this.value),this.isStateful()&&this.saveState(),this.anchorRowIndex=null,this.scrollable&&this.resetScrollTop()}sort(u){let ne=u.originalEvent;if("single"===this.sortMode&&(this._sortOrder=this.sortField===u.field?-1*this.sortOrder:this.defaultSortOrder,this._sortField=u.field,this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop()),this.sortSingle()),"multiple"===this.sortMode){let ue=ne.metaKey||ne.ctrlKey,Ie=this.getSortMeta(u.field);Ie?ue?Ie.order=-1*Ie.order:(this._multiSortMeta=[{field:u.field,order:-1*Ie.order}],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first),this.scrollable&&this.resetScrollTop())):((!ue||!this.multiSortMeta)&&(this._multiSortMeta=[],this.resetPageOnSort&&(this._first=0,this.firstChange.emit(this._first))),this._multiSortMeta.push({field:u.field,order:this.defaultSortOrder})),this.sortMultiple()}this.isStateful()&&this.saveState(),this.anchorRowIndex=null}sortSingle(){let u=this.sortField||this.groupRowsBy,ne=this.sortField?this.sortOrder:this.groupRowsByOrder;if(this.groupRowsBy&&this.sortField&&this.groupRowsBy!==this.sortField)return this._multiSortMeta=[this.getGroupRowsMeta(),{field:this.sortField,order:this.sortOrder}],void this.sortMultiple();if(u&&ne){this.restoringSort&&(this.restoringSort=!1),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,field:u,order:ne}):(this.value.sort((Ie,nt)=>{let Tt=le.BF.resolveFieldData(Ie,u),zt=le.BF.resolveFieldData(nt,u),ai=null;return ai=null==Tt&&null!=zt?-1:null!=Tt&&null==zt?1:null==Tt&&null==zt?0:"string"==typeof Tt&&"string"==typeof zt?Tt.localeCompare(zt):Ttzt?1:0,ne*ai}),this._value=[...this.value]),this.hasFilter()&&this._filter());let ue={field:u,order:ne};this.onSort.emit(ue),this.tableService.onSort(ue)}}sortMultiple(){this.groupRowsBy&&(this._multiSortMeta?this.multiSortMeta[0].field!==this.groupRowsBy&&(this._multiSortMeta=[this.getGroupRowsMeta(),...this._multiSortMeta]):this._multiSortMeta=[this.getGroupRowsMeta()]),this.multiSortMeta&&(this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.value&&(this.customSort?this.sortFunction.emit({data:this.value,mode:this.sortMode,multiSortMeta:this.multiSortMeta}):(this.value.sort((u,ne)=>this.multisortField(u,ne,this.multiSortMeta,0)),this._value=[...this.value]),this.hasFilter()&&this._filter()),this.onSort.emit({multisortmeta:this.multiSortMeta}),this.tableService.onSort(this.multiSortMeta))}multisortField(u,ne,ue,Ie){const nt=le.BF.resolveFieldData(u,ue[Ie].field),Tt=le.BF.resolveFieldData(ne,ue[Ie].field);return 0===le.BF.compare(nt,Tt,this.filterLocale)?ue.length-1>Ie?this.multisortField(u,ne,ue,Ie+1):0:this.compareValuesOnSort(nt,Tt,ue[Ie].order)}compareValuesOnSort(u,ne,ue){return le.BF.sort(u,ne,ue,this.filterLocale,this.sortOrder)}getSortMeta(u){if(this.multiSortMeta&&this.multiSortMeta.length)for(let ne=0;netn!=qi),this.selectionChange.emit(this.selection),oi&&delete this.selectionKeys[oi]}this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row"})}else this.isSingleSelectionMode()?(this._selection=nt,this.selectionChange.emit(nt),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1)):this.isMultipleSelectionMode()&&(Pi?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=[...this.selection,nt],this.selectionChange.emit(this.selection),oi&&(this.selectionKeys[oi]=1)),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})}else if("single"===this.selectionMode)zt?(this._selection=null,this.selectionKeys={},this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt})):(this._selection=nt,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys={},this.selectionKeys[oi]=1));else if("multiple"===this.selectionMode)if(zt){let Pi=this.findIndexInSelection(nt);this._selection=this.selection.filter((qi,Yi)=>Yi!=Pi),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&delete this.selectionKeys[oi]}else this._selection=this.selection?[...this.selection,nt]:[nt],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,data:nt,type:"row",index:Tt}),oi&&(this.selectionKeys[oi]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}this.rowTouched=!1}}handleRowTouchEnd(u){this.rowTouched=!0}handleRowRightClick(u){if(this.contextMenu){const ne=u.rowData,ue=u.rowIndex;if("separate"===this.contextMenuSelectionMode)this.contextMenuSelection=ne,this.contextMenuSelectionChange.emit(ne),this.onContextMenuSelect.emit({originalEvent:u.originalEvent,data:ne,index:u.rowIndex}),this.contextMenu.show(u.originalEvent),this.tableService.onContextMenu(ne);else if("joint"===this.contextMenuSelectionMode){this.preventSelectionSetterPropagation=!0;let Ie=this.isSelected(ne),nt=this.dataKey?String(le.BF.resolveFieldData(ne,this.dataKey)):null;if(!Ie){if(!this.isRowSelectable(ne,ue))return;this.isSingleSelectionMode()?(this.selection=ne,this.selectionChange.emit(ne),nt&&(this.selectionKeys={},this.selectionKeys[nt]=1)):this.isMultipleSelectionMode()&&(this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),nt&&(this.selectionKeys[nt]=1))}this.tableService.onSelectionChange(),this.contextMenu.show(u.originalEvent),this.onContextMenuSelect.emit({originalEvent:u,data:ne,index:u.rowIndex})}}}selectRange(u,ne){let ue,Ie;this.anchorRowIndex>ne?(ue=ne,Ie=this.anchorRowIndex):this.anchorRowIndexnt?(ne=this.anchorRowIndex,ue=this.rangeRowIndex):Ieqi!=ai);let oi=this.dataKey?String(le.BF.resolveFieldData(zt,this.dataKey)):null;oi&&delete this.selectionKeys[oi],this.onRowUnselect.emit({originalEvent:u,data:zt,type:"row"})}}isSelected(u){return!(!u||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[le.BF.resolveFieldData(u,this.dataKey)]:Array.isArray(this.selection)?this.findIndexInSelection(u)>-1:this.equals(u,this.selection))}findIndexInSelection(u){let ne=-1;if(this.selection&&this.selection.length)for(let ue=0;uezt!=nt),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&delete this.selectionKeys[Ie]}else{if(!this.isRowSelectable(ne,u.rowIndex))return;this._selection=this.selection?[...this.selection,ne]:[ne],this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:u.originalEvent,index:u.rowIndex,data:ne,type:"checkbox"}),Ie&&(this.selectionKeys[Ie]=1)}this.tableService.onSelectionChange(),this.isStateful()&&this.saveState()}toggleRowsWithCheckbox(u,ne){if(null!==this._selectAll)this.selectAllChange.emit({originalEvent:u,checked:ne});else{const ue=this.selectionPageOnly?this.dataToRender(this.processedData):this.processedData;let Ie=this.selectionPageOnly&&this._selection?this._selection.filter(nt=>!ue.some(Tt=>this.equals(nt,Tt))):[];ne&&(Ie=this.frozenValue?[...Ie,...this.frozenValue,...ue]:[...Ie,...ue],Ie=this.rowSelectable?Ie.filter((nt,Tt)=>this.rowSelectable({data:nt,index:Tt})):Ie),this._selection=Ie,this.preventSelectionSetterPropagation=!0,this.updateSelectionKeys(),this.selectionChange.emit(this._selection),this.tableService.onSelectionChange(),this.onHeaderCheckboxToggle.emit({originalEvent:u,checked:ne}),this.isStateful()&&this.saveState()}}equals(u,ne){return"equals"===this.compareSelectionBy?u===ne:le.BF.equals(u,ne,this.dataKey)}filter(u,ne,ue){this.filterTimeout&&clearTimeout(this.filterTimeout),this.isFilterBlank(u)?this.filters[ne]&&delete this.filters[ne]:this.filters[ne]={value:u,matchMode:ue},this.filterTimeout=setTimeout(()=>{this._filter(),this.filterTimeout=null},this.filterDelay),this.anchorRowIndex=null}filterGlobal(u,ne){this.filter(u,"global",ne)}isFilterBlank(u){return null==u||!!("string"==typeof u&&0==u.trim().length||Array.isArray(u)&&0==u.length)}_filter(){if(this.restoringFilter||(this.first=0,this.firstChange.emit(this.first)),this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value)return;if(this.hasFilter()){let u;if(this.filters.global){if(!this.columns&&!this.globalFilterFields)throw new Error("Global filtering requires dynamic columns or globalFilterFields to be defined.");u=this.globalFilterFields||this.columns}this.filteredValue=[];for(let ne=0;nethis.cd.detectChanges()}}clear(){this._sortField=null,this._sortOrder=this.defaultSortOrder,this._multiSortMeta=null,this.tableService.onSort(null),this.clearFilterValues(),this.filteredValue=null,this.first=0,this.firstChange.emit(this.first),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.totalRecords=this._value?this._value.length:0}clearFilterValues(){for(const[,u]of Object.entries(this.filters))if(Array.isArray(u))for(let ne of u)ne.value=null;else u&&(u.value=null)}reset(){this.clear()}getExportHeader(u){return u[this.exportHeader]||u.header||u.field}exportCSV(u){let ne,ue="",Ie=this.columns;u&&u.selectionOnly?ne=this.selection||[]:u&&u.allValues?ne=this.value||[]:(ne=this.filteredValue||this.value,this.frozenValue&&(ne=ne?[...this.frozenValue,...ne]:this.frozenValue));const nt=Ie.filter(oi=>!1!==oi.exportable&&oi.field);ue+=nt.map(oi=>'"'+this.getExportHeader(oi)+'"').join(this.csvSeparator);const Tt=ne.map(oi=>nt.map(Pi=>{let qi=le.BF.resolveFieldData(oi,Pi.field);return qi=null!=qi?this.exportFunction?this.exportFunction({data:qi,field:Pi.field}):String(qi).replace(/"/g,'""'):"",'"'+qi+'"'}).join(this.csvSeparator)).join("\n");Tt.length&&(ue+="\n"+Tt);let zt=new Blob([new Uint8Array([239,187,191]),ue],{type:"text/csv;charset=utf-8;"}),ai=this.renderer.createElement("a");ai.style.display="none",this.renderer.appendChild(this.document.body,ai),void 0!==ai.download?(ai.setAttribute("href",URL.createObjectURL(zt)),ai.setAttribute("download",this.exportFilename+".csv"),ai.click()):(ue="data:text/csv;charset=utf-8,"+ue,this.window.open(encodeURI(ue))),this.renderer.removeChild(this.document.body,ai)}onLazyItemLoad(u){this.onLazyLoad.emit({...this.createLazyLoadMetadata(),...u,rows:u.last-u.first})}resetScrollTop(){this.virtualScroll?this.scrollToVirtualIndex(0):this.scrollTo({top:0})}scrollToVirtualIndex(u){this.scroller&&this.scroller.scrollToIndex(u)}scrollTo(u){this.virtualScroll?this.scroller?.scrollTo(u):this.wrapperViewChild&&this.wrapperViewChild.nativeElement&&(this.wrapperViewChild.nativeElement.scrollTo?this.wrapperViewChild.nativeElement.scrollTo(u):(this.wrapperViewChild.nativeElement.scrollLeft=u.left,this.wrapperViewChild.nativeElement.scrollTop=u.top))}updateEditingCell(u,ne,ue,Ie){this.editingCell=u,this.editingCellData=ne,this.editingCellField=ue,this.editingCellRowIndex=Ie,this.bindDocumentEditListener()}isEditingCellValid(){return this.editingCell&&0===re.D.find(this.editingCell,".ng-invalid.ng-dirty").length}bindDocumentEditListener(){this.documentEditListener||(this.documentEditListener=this.renderer.listen(this.document,"click",u=>{this.editingCell&&!this.selfClick&&this.isEditingCellValid()&&(re.D.removeClass(this.editingCell,"p-cell-editing"),this.editingCell=null,this.onEditComplete.emit({field:this.editingCellField,data:this.editingCellData,originalEvent:u,index:this.editingCellRowIndex}),this.editingCellField=null,this.editingCellData=null,this.editingCellRowIndex=null,this.unbindDocumentEditListener(),this.cd.markForCheck(),this.overlaySubscription&&this.overlaySubscription.unsubscribe()),this.selfClick=!1}))}unbindDocumentEditListener(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)}initRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));this.editingRowKeys[ne]=!0}saveRowEdit(u,ne){if(0===re.D.find(ne,".ng-invalid.ng-dirty").length){let ue=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ue]}}cancelRowEdit(u){let ne=String(le.BF.resolveFieldData(u,this.dataKey));delete this.editingRowKeys[ne]}toggleRow(u,ne){if(!this.dataKey)throw new Error("dataKey must be defined to use row expansion");let ue=String(le.BF.resolveFieldData(u,this.dataKey));null!=this.expandedRowKeys[ue]?(delete this.expandedRowKeys[ue],this.onRowCollapse.emit({originalEvent:ne,data:u})):("single"===this.rowExpandMode&&(this.expandedRowKeys={}),this.expandedRowKeys[ue]=!0,this.onRowExpand.emit({originalEvent:ne,data:u})),ne&&ne.preventDefault(),this.isStateful()&&this.saveState()}isRowExpanded(u){return!0===this.expandedRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isRowEditing(u){return!0===this.editingRowKeys[String(le.BF.resolveFieldData(u,this.dataKey))]}isSingleSelectionMode(){return"single"===this.selectionMode}isMultipleSelectionMode(){return"multiple"===this.selectionMode}onColumnResizeBegin(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;this.resizeColumnElement=u.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft,this.onColumnResize(u),u.preventDefault()}onColumnResize(u){let ne=re.D.getOffset(this.containerViewChild?.nativeElement).left;re.D.addClass(this.containerViewChild?.nativeElement,"p-unselectable-text"),this.resizeHelperViewChild.nativeElement.style.height=this.containerViewChild?.nativeElement.offsetHeight+"px",this.resizeHelperViewChild.nativeElement.style.top="0px",this.resizeHelperViewChild.nativeElement.style.left=u.pageX-ne+this.containerViewChild?.nativeElement.scrollLeft+"px",this.resizeHelperViewChild.nativeElement.style.display="block"}onColumnResizeEnd(){let u=this.resizeHelperViewChild?.nativeElement.offsetLeft-this.lastResizerHelperX,ue=this.resizeColumnElement.offsetWidth+u;if(ue>=(this.resizeColumnElement.style.minWidth.replace(/[^\d.]/g,"")||15)){if("fit"===this.columnResizeMode){let Tt=this.resizeColumnElement.nextElementSibling.offsetWidth-u;ue>15&&Tt>15&&this.resizeTableCells(ue,Tt)}else"expand"===this.columnResizeMode&&(this._initialColWidths=this._totalTableWidth(),this.setResizeTableWidth(this.tableViewChild?.nativeElement.offsetWidth+u+"px"),this.resizeTableCells(ue,null));this.onColResize.emit({element:this.resizeColumnElement,delta:u}),this.isStateful()&&this.saveState()}this.resizeHelperViewChild.nativeElement.style.display="none",re.D.removeClass(this.containerViewChild?.nativeElement,"p-unselectable-text")}_totalTableWidth(){let u=[];const ne=re.D.findSingle(this.containerViewChild.nativeElement,".p-datatable-thead");return re.D.find(ne,"tr > th").forEach(Ie=>u.push(re.D.getOuterWidth(Ie))),u}onColumnDragStart(u,ne){this.reorderIconWidth=re.D.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild?.nativeElement),this.reorderIconHeight=re.D.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild?.nativeElement),this.draggedColumn=ne,u.dataTransfer.setData("text","b")}onColumnDragEnter(u,ne){if(this.reorderableColumns&&this.draggedColumn&&ne){u.preventDefault();let ue=re.D.getOffset(this.containerViewChild?.nativeElement),Ie=re.D.getOffset(ne);if(this.draggedColumn!=ne){re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),re.D.indexWithinGroup(ne,"preorderablecolumn");let zt=Ie.left-ue.left,oi=Ie.left+ne.offsetWidth/2;this.reorderIndicatorUpViewChild.nativeElement.style.top=Ie.top-ue.top-(this.reorderIconHeight-1)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.top=Ie.top-ue.top+ne.offsetHeight+"px",u.pageX>oi?(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt+ne.offsetWidth-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUpViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.reorderIndicatorDownViewChild.nativeElement.style.left=zt-Math.ceil(this.reorderIconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUpViewChild.nativeElement.style.display="block",this.reorderIndicatorDownViewChild.nativeElement.style.display="block"}else u.dataTransfer.dropEffect="none"}}onColumnDragLeave(u){this.reorderableColumns&&this.draggedColumn&&u.preventDefault()}onColumnDrop(u,ne){if(u.preventDefault(),this.draggedColumn){let ue=re.D.indexWithinGroup(this.draggedColumn,"preorderablecolumn"),Ie=re.D.indexWithinGroup(ne,"preorderablecolumn"),nt=ue!=Ie;if(nt&&(Ie-ue==1&&-1===this.dropPosition||ue-Ie==1&&1===this.dropPosition)&&(nt=!1),nt&&Ieue&&-1===this.dropPosition&&(Ie-=1),nt&&(le.BF.reorderArray(this.columns,ue,Ie),this.onColReorder.emit({dragIndex:ue,dropIndex:Ie,columns:this.columns}),this.isStateful()&&this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.saveState()})})),this.resizableColumns&&this.resizeColumnElement){let Tt="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();le.BF.reorderArray(Tt,ue+1,Ie+1),this.updateStyleElement(Tt,ue,null,null)}this.reorderIndicatorUpViewChild.nativeElement.style.display="none",this.reorderIndicatorDownViewChild.nativeElement.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}}resizeTableCells(u,ne){let ue=re.D.index(this.resizeColumnElement),Ie="expand"===this.columnResizeMode?this._initialColWidths:this._totalTableWidth();this.updateStyleElement(Ie,ue,u,ne)}updateStyleElement(u,ne,ue,Ie){this.destroyStyleElement(),this.createStyleElement();let nt="";u.forEach((Tt,zt)=>{let ai=zt===ne?ue:Ie&&zt===ne+1?Ie:Tt;nt+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${zt+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${zt+1}) {\n width: ${ai}px !important; max-width: ${ai}px !important;\n }\n `}),this.renderer.setProperty(this.styleElement,"innerHTML",nt)}onRowDragStart(u,ne){this.rowDragging=!0,this.draggedRowIndex=ne,u.dataTransfer.setData("text","b")}onRowDragOver(u,ne,ue){if(this.rowDragging&&this.draggedRowIndex!==ne){let Ie=re.D.getOffset(ue).top,nt=u.pageY,Tt=Ie+re.D.getOuterHeight(ue)/2,zt=ue.previousElementSibling;ntthis.droppedRowIndex?this.droppedRowIndex:0===this.droppedRowIndex?0:this.droppedRowIndex-1;le.BF.reorderArray(this.value,this.draggedRowIndex,ue),this.virtualScroll&&(this._value=[...this._value]),this.onRowReorder.emit({dragIndex:this.draggedRowIndex,dropIndex:ue})}this.onRowDragLeave(u,ne),this.onRowDragEnd(u)}isEmpty(){let u=this.filteredValue||this.value;return null==u||0==u.length}getBlockableElement(){return this.el.nativeElement.children[0]}getStorage(){if(!(0,M.UE)(this.platformId))throw new Error("Browser storage is not available in the server side.");switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}isStateful(){return null!=this.stateKey}saveState(){const u=this.getStorage();let ne={};this.paginator&&(ne.first=this.first,ne.rows=this.rows),this.sortField&&(ne.sortField=this.sortField,ne.sortOrder=this.sortOrder),this.multiSortMeta&&(ne.multiSortMeta=this.multiSortMeta),this.hasFilter()&&(ne.filters=this.filters),this.resizableColumns&&this.saveColumnWidths(ne),this.reorderableColumns&&this.saveColumnOrder(ne),this.selection&&(ne.selection=this.selection),Object.keys(this.expandedRowKeys).length&&(ne.expandedRowKeys=this.expandedRowKeys),u.setItem(this.stateKey,JSON.stringify(ne)),this.onStateSave.emit(ne)}clearState(){const u=this.getStorage();this.stateKey&&u.removeItem(this.stateKey)}restoreState(){const ne=this.getStorage().getItem(this.stateKey),ue=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;if(ne){let nt=JSON.parse(ne,function(nt,Tt){return"string"==typeof Tt&&ue.test(Tt)?new Date(Tt):Tt});this.paginator&&(void 0!==this.first&&(this.first=nt.first,this.firstChange.emit(this.first)),void 0!==this.rows&&(this.rows=nt.rows,this.rowsChange.emit(this.rows))),nt.sortField&&(this.restoringSort=!0,this._sortField=nt.sortField,this._sortOrder=nt.sortOrder),nt.multiSortMeta&&(this.restoringSort=!0,this._multiSortMeta=nt.multiSortMeta),nt.filters&&(this.restoringFilter=!0,this.filters=nt.filters),this.resizableColumns&&(this.columnWidthsState=nt.columnWidths,this.tableWidthState=nt.tableWidth),this.reorderableColumns&&this.restoreColumnOrder(),nt.expandedRowKeys&&(this.expandedRowKeys=nt.expandedRowKeys),nt.selection&&Promise.resolve(null).then(()=>this.selectionChange.emit(nt.selection)),this.stateRestored=!0,this.onStateRestore.emit(nt)}}saveColumnWidths(u){let ne=[];re.D.find(this.containerViewChild?.nativeElement,".p-datatable-thead > tr > th").forEach(Ie=>ne.push(re.D.getOuterWidth(Ie))),u.columnWidths=ne.join(","),"expand"===this.columnResizeMode&&(u.tableWidth=re.D.getOuterWidth(this.tableViewChild?.nativeElement))}setResizeTableWidth(u){this.tableViewChild.nativeElement.style.width=u,this.tableViewChild.nativeElement.style.minWidth=u}restoreColumnWidths(){if(this.columnWidthsState){let u=this.columnWidthsState.split(",");if("expand"===this.columnResizeMode&&this.tableWidthState&&this.setResizeTableWidth(this.tableWidthState+"px"),le.BF.isNotEmpty(u)){this.createStyleElement();let ne="";u.forEach((ue,Ie)=>{ne+=`\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${Ie+1}),\n #${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${Ie+1}) {\n width: ${ue}px !important; max-width: ${ue}px !important\n }\n `}),this.styleElement.innerHTML=ne}}}saveColumnOrder(u){if(this.columns){let ne=[];this.columns.map(ue=>{ne.push(ue.field||ue.key)}),u.columnOrder=ne}}restoreColumnOrder(){const ne=this.getStorage().getItem(this.stateKey);if(ne){let Ie=JSON.parse(ne).columnOrder;if(Ie){let nt=[];Ie.map(Tt=>{let zt=this.findColumnByKey(Tt);zt&&nt.push(zt)}),this.columnOrderStateRestored=!0,this.columns=nt}}}findColumnByKey(u){if(!this.columns)return null;for(let ne of this.columns)if(ne.key===u||ne.field===u)return ne}createStyleElement(){this.styleElement=this.renderer.createElement("style"),this.styleElement.type="text/css",this.renderer.appendChild(this.document.head,this.styleElement)}getGroupRowsMeta(){return{field:this.groupRowsBy,order:this.groupRowsByOrder}}createResponsiveStyle(){(0,M.UE)(this.platformId)&&!this.responsiveStyleElement&&(this.responsiveStyleElement=this.renderer.createElement("style"),this.responsiveStyleElement.type="text/css",this.renderer.appendChild(this.document.head,this.responsiveStyleElement),this.renderer.setProperty(this.responsiveStyleElement,"innerHTML",`\n @media screen and (max-width: ${this.breakpoint}) {\n #${this.id}-table > .p-datatable-thead > tr > th,\n #${this.id}-table > .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n }\n `))}destroyResponsiveStyle(){this.responsiveStyleElement&&(this.renderer.removeChild(this.document.head,this.responsiveStyleElement),this.responsiveStyleElement=null)}destroyStyleElement(){this.styleElement&&(this.renderer.removeChild(this.document.head,this.styleElement),this.styleElement=null)}ngOnDestroy(){this.unbindDocumentEditListener(),this.editingCell=null,this.initialized=null,this.destroyStyleElement(),this.destroyResponsiveStyle()}getPaginatorStyleClasses(u){return[this.paginatorStyleClass,u].filter(ne=>!!ne).join(" ").trim()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(M.qQ),e.rXU(e.Agw),e.rXU(e.sFG),e.rXU(e.aKT),e.rXU(e.SKi),e.rXU(we),e.rXU(e.gRc),e.rXU(Pe.E),e.rXU(Pe.si),e.rXU(Pe.r1))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-table"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},viewQuery:function(ne,ue){if(1&ne&&(e.GBs(td,5),e.GBs(Hf,5),e.GBs($a,5),e.GBs(ap,5),e.GBs(lp,5),e.GBs(cp,5),e.GBs(Gc,5),e.GBs(_h,5),e.GBs(Ch,5)),2&ne){let Ie;e.mGM(Ie=e.lsd())&&(ue.containerViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.resizeHelperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorUpViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.reorderIndicatorDownViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.wrapperViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableHeaderViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.tableFooterViewChild=Ie.first),e.mGM(Ie=e.lsd())&&(ue.scroller=Ie.first)}},hostAttrs:[1,"p-element"],inputs:{frozenColumns:"frozenColumns",frozenValue:"frozenValue",style:"style",styleClass:"styleClass",tableStyle:"tableStyle",tableStyleClass:"tableStyleClass",paginator:"paginator",pageLinks:"pageLinks",rowsPerPageOptions:"rowsPerPageOptions",alwaysShowPaginator:"alwaysShowPaginator",paginatorPosition:"paginatorPosition",paginatorStyleClass:"paginatorStyleClass",paginatorDropdownAppendTo:"paginatorDropdownAppendTo",paginatorDropdownScrollHeight:"paginatorDropdownScrollHeight",currentPageReportTemplate:"currentPageReportTemplate",showCurrentPageReport:"showCurrentPageReport",showJumpToPageDropdown:"showJumpToPageDropdown",showJumpToPageInput:"showJumpToPageInput",showFirstLastIcon:"showFirstLastIcon",showPageLinks:"showPageLinks",defaultSortOrder:"defaultSortOrder",sortMode:"sortMode",resetPageOnSort:"resetPageOnSort",selectionMode:"selectionMode",selectionPageOnly:"selectionPageOnly",contextMenuSelection:"contextMenuSelection",contextMenuSelectionMode:"contextMenuSelectionMode",dataKey:"dataKey",metaKeySelection:"metaKeySelection",rowSelectable:"rowSelectable",rowTrackBy:"rowTrackBy",lazy:"lazy",lazyLoadOnInit:"lazyLoadOnInit",compareSelectionBy:"compareSelectionBy",csvSeparator:"csvSeparator",exportFilename:"exportFilename",filters:"filters",globalFilterFields:"globalFilterFields",filterDelay:"filterDelay",filterLocale:"filterLocale",expandedRowKeys:"expandedRowKeys",editingRowKeys:"editingRowKeys",rowExpandMode:"rowExpandMode",scrollable:"scrollable",scrollDirection:"scrollDirection",rowGroupMode:"rowGroupMode",scrollHeight:"scrollHeight",virtualScroll:"virtualScroll",virtualScrollItemSize:"virtualScrollItemSize",virtualScrollOptions:"virtualScrollOptions",virtualScrollDelay:"virtualScrollDelay",frozenWidth:"frozenWidth",responsive:"responsive",contextMenu:"contextMenu",resizableColumns:"resizableColumns",columnResizeMode:"columnResizeMode",reorderableColumns:"reorderableColumns",loading:"loading",loadingIcon:"loadingIcon",showLoader:"showLoader",rowHover:"rowHover",customSort:"customSort",showInitialSortBadge:"showInitialSortBadge",autoLayout:"autoLayout",exportFunction:"exportFunction",exportHeader:"exportHeader",stateKey:"stateKey",stateStorage:"stateStorage",editMode:"editMode",groupRowsBy:"groupRowsBy",groupRowsByOrder:"groupRowsByOrder",responsiveLayout:"responsiveLayout",breakpoint:"breakpoint",paginatorLocale:"paginatorLocale",value:"value",columns:"columns",first:"first",rows:"rows",totalRecords:"totalRecords",sortField:"sortField",sortOrder:"sortOrder",multiSortMeta:"multiSortMeta",selection:"selection",selectAll:"selectAll",virtualRowHeight:"virtualRowHeight"},outputs:{contextMenuSelectionChange:"contextMenuSelectionChange",selectAllChange:"selectAllChange",selectionChange:"selectionChange",onRowSelect:"onRowSelect",onRowUnselect:"onRowUnselect",onPage:"onPage",onSort:"onSort",onFilter:"onFilter",onLazyLoad:"onLazyLoad",onRowExpand:"onRowExpand",onRowCollapse:"onRowCollapse",onContextMenuSelect:"onContextMenuSelect",onColResize:"onColResize",onColReorder:"onColReorder",onRowReorder:"onRowReorder",onEditInit:"onEditInit",onEditComplete:"onEditComplete",onEditCancel:"onEditCancel",onHeaderCheckboxToggle:"onHeaderCheckboxToggle",sortFunction:"sortFunction",firstChange:"firstChange",rowsChange:"rowsChange",onStateSave:"onStateSave",onStateRestore:"onStateRestore"},features:[e.Jv_([we]),e.OA$],decls:16,vars:22,consts:[["container",""],["wrapper",""],["buildInTable",""],["scroller",""],["table",""],["thead",""],["tfoot",""],["resizeHelper",""],["reorderIndicatorUp",""],["reorderIndicatorDown",""],[3,"ngStyle","ngClass"],["class","p-datatable-loading-overlay p-component-overlay",4,"ngIf"],["class","p-datatable-header",4,"ngIf"],[3,"rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale","onPageChange",4,"ngIf"],[1,"p-datatable-wrapper",3,"ngStyle"],[3,"items","columns","style","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize","onLazyLoad",4,"ngIf"],[4,"ngIf"],["class","p-datatable-footer",4,"ngIf"],["class","p-column-resizer-helper","style","display:none",4,"ngIf"],["class","p-datatable-reorder-indicator-up","style","display: none;",4,"ngIf"],["class","p-datatable-reorder-indicator-down","style","display: none;",4,"ngIf"],[1,"p-datatable-loading-overlay","p-component-overlay"],[3,"class",4,"ngIf"],[3,"spin","styleClass",4,"ngIf"],["class","p-datatable-loading-icon",4,"ngIf"],[3,"spin","styleClass"],[1,"p-datatable-loading-icon"],[4,"ngTemplateOutlet"],[1,"p-datatable-header"],[3,"onPageChange","rows","first","totalRecords","pageLinkSize","alwaysShow","rowsPerPageOptions","templateLeft","templateRight","dropdownAppendTo","dropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","dropdownItemTemplate","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","showPageLinks","styleClass","locale"],["pTemplate","dropdownicon"],["pTemplate","firstpagelinkicon"],["pTemplate","previouspagelinkicon"],["pTemplate","lastpagelinkicon"],["pTemplate","nextpagelinkicon"],[3,"onLazyLoad","items","columns","scrollHeight","itemSize","step","delay","inline","lazy","loaderDisabled","showSpacer","showLoader","options","autoSize"],["pTemplate","content"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","table",3,"ngClass"],["role","rowgroup",1,"p-datatable-thead"],["role","rowgroup","class","p-datatable-tbody p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody",3,"ngClass","value","pTableBody","pTableBodyTemplate","scrollerOptions"],["role","rowgroup","class","p-datatable-scroller-spacer",3,"style",4,"ngIf"],["role","rowgroup","class","p-datatable-tfoot",4,"ngIf"],["role","rowgroup",1,"p-datatable-tbody","p-datatable-frozen-tbody",3,"value","frozenRows","pTableBody","pTableBodyTemplate","frozen"],["role","rowgroup",1,"p-datatable-scroller-spacer"],["role","rowgroup",1,"p-datatable-tfoot"],[1,"p-datatable-footer"],[1,"p-column-resizer-helper",2,"display","none"],[1,"p-datatable-reorder-indicator-up",2,"display","none"],[1,"p-datatable-reorder-indicator-down",2,"display","none"]],template:function(ne,ue){1&ne&&(e.j41(0,"div",10,0),e.DNE(2,dp,3,2,"div",11)(3,pp,2,1,"div",12)(4,dc,6,24,"p-paginator",13),e.j41(5,"div",14,1),e.DNE(7,$f,3,17,"p-scroller",15)(8,bp,2,7,"ng-container",16)(9,Mh,10,28,"ng-template",null,2,e.C5r),e.k0s(),e.DNE(11,$c,6,24,"p-paginator",13)(12,Vo,2,1,"div",17)(13,Dh,2,0,"div",18)(14,Eh,4,2,"span",19)(15,pc,4,2,"span",20),e.k0s()),2&ne&&(e.HbH(ue.styleClass),e.Y8G("ngStyle",ue.style)("ngClass",e.sMw(16,ro,ue.rowHover||ue.selectionMode,ue.scrollable,ue.scrollable&&"flex"===ue.scrollHeight)),e.BMQ("id",ue.id),e.R7$(2),e.Y8G("ngIf",ue.loading&&ue.showLoader),e.R7$(),e.Y8G("ngIf",ue.captionTemplate),e.R7$(),e.Y8G("ngIf",ue.paginator&&("top"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngStyle",e.eq3(20,Ms,ue.virtualScroll?"":ue.scrollHeight)),e.R7$(2),e.Y8G("ngIf",ue.virtualScroll),e.R7$(),e.Y8G("ngIf",!ue.virtualScroll),e.R7$(3),e.Y8G("ngIf",ue.paginator&&("bottom"===ue.paginatorPosition||"both"==ue.paginatorPosition)),e.R7$(),e.Y8G("ngIf",ue.summaryTemplate),e.R7$(),e.Y8G("ngIf",ue.resizableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns),e.R7$(),e.Y8G("ngIf",ue.reorderableColumns))},dependencies:()=>[M.YU,M.bT,M.T3,M.B3,rt,Pe.Ei,ll,Rc,jl,Jr.N,it],styles:["@layer primeng{.p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-icon-wrapper{display:inline}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:2}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit;z-index:1}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:2}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:3}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}}\n"],encapsulation:2})}return xe})(),it=(()=>{class xe{dt;tableService;cd;el;columns;template;get value(){return this._value}set value(u){this._value=u,this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}frozen;frozenRows;scrollerOptions;subscription;_value;ngAfterViewInit(){this.frozenRows&&this.updateFrozenRowStickyPosition(),this.dt.scrollable&&"subheader"===this.dt.rowGroupMode&&this.updateFrozenRowGroupHeaderStickyPosition()}constructor(u,ne,ue,Ie){this.dt=u,this.tableService=ne,this.cd=ue,this.el=Ie,this.subscription=this.dt.tableService.valueSource$.subscribe(()=>{this.dt.virtualScroll&&this.cd.detectChanges()})}shouldRenderRowGroupHeader(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowGroupFooter(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue+1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}shouldRenderRowspan(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=u[ue-1];return!nt||Ie!==le.BF.resolveFieldData(nt,this.dt.groupRowsBy)}calculateRowGroupSize(u,ne,ue){let Ie=le.BF.resolveFieldData(ne,this.dt.groupRowsBy),nt=Ie,Tt=0;for(;Ie===nt;){Tt++;let zt=u[++ue];if(!zt)break;nt=le.BF.resolveFieldData(zt,this.dt.groupRowsBy)}return 1===Tt?null:Tt}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}updateFrozenRowStickyPosition(){this.el.nativeElement.style.top=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling)+"px"}updateFrozenRowGroupHeaderStickyPosition(){if(this.el.nativeElement.previousElementSibling){let u=re.D.getOuterHeight(this.el.nativeElement.previousElementSibling);this.dt.rowGroupHeaderStyleObject.top=u+"px"}}getScrollerOption(u,ne){return this.dt.virtualScroll&&(ne=ne||this.scrollerOptions)?ne[u]:null}getRowIndex(u){const ne=this.dt.paginator?this.dt.first+u:u,ue=this.getScrollerOption("getItemOptions");return ue?ue(ne).index:ne}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(we),e.rXU(e.gRc),e.rXU(e.aKT))};static \u0275cmp=e.VBU({type:xe,selectors:[["","pTableBody",""]],hostAttrs:[1,"p-element"],inputs:{columns:[e.Mj6.None,"pTableBody","columns"],template:[e.Mj6.None,"pTableBodyTemplate","template"],value:"value",frozen:"frozen",frozenRows:"frozenRows",scrollerOptions:"scrollerOptions"},attrs:Kc,decls:5,vars:5,consts:[[4,"ngIf"],["ngFor","",3,"ngForOf","ngForTrackBy"],["role","row",4,"ngIf"],["role","row"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(ne,ue){1&ne&&e.DNE(0,Qc,2,2,"ng-container",0)(1,qd,2,2,"ng-container",0)(2,mc,2,2,"ng-container",0)(3,wo,2,5,"ng-container",0)(4,Da,2,5,"ng-container",0),2&ne&&(e.Y8G("ngIf",!ue.dt.expandedRowTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.expandedRowTemplate&&!(ue.frozen&&ue.dt.frozenExpandedRowTemplate)),e.R7$(),e.Y8G("ngIf",ue.dt.frozenExpandedRowTemplate&&ue.frozen),e.R7$(),e.Y8G("ngIf",ue.dt.loading),e.R7$(),e.Y8G("ngIf",ue.dt.isEmpty()&&!ue.dt.loading))},dependencies:[M.Sq,M.bT,M.T3],encapsulation:2})}return xe})(),Wt=(()=>{class xe{dt;field;pSortableColumnDisabled;sorted;sortOrder;subscription;constructor(u){this.dt=u,this.isEnabled()&&(this.subscription=this.dt.tableService.sortSource$.subscribe(ne=>{this.updateSortState()}))}ngOnInit(){this.isEnabled()&&this.updateSortState()}updateSortState(){this.sorted=this.dt.isSorted(this.field),this.sortOrder=this.sorted?1===this.dt.sortOrder?"ascending":"descending":"none"}onClick(u){this.isEnabled()&&!this.isFilterElement(u.target)&&(this.updateSortState(),this.dt.sort({originalEvent:u,field:this.field}),re.D.clearSelection())}onEnterKey(u){this.onClick(u),u.preventDefault()}isEnabled(){return!0!==this.pSortableColumnDisabled}isFilterElement(u){return this.isFilterElementIconOrButton(u)||this.isFilterElementIconOrButton(u?.parentElement?.parentElement)}isFilterElementIconOrButton(u){return re.D.hasClass(u,"pi-filter-icon")||re.D.hasClass(u,"p-column-filter-menu-button")}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pSortableColumn",""]],hostAttrs:[1,"p-element"],hostVars:7,hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.space",function(nt){return ue.onEnterKey(nt)})("keydown.enter",function(nt){return ue.onEnterKey(nt)}),2&ne&&(e.BMQ("tabindex",ue.isEnabled()?"0":null)("role","columnheader")("aria-sort",ue.sortOrder),e.AVh("p-sortable-column",ue.isEnabled())("p-highlight",ue.sorted))},inputs:{field:[e.Mj6.None,"pSortableColumn","field"],pSortableColumnDisabled:"pSortableColumnDisabled"}})}return xe})(),Qt=(()=>{class xe{dt;cd;field;subscription;sortOrder;constructor(u,ne){this.dt=u,this.cd=ne,this.subscription=this.dt.tableService.sortSource$.subscribe(ue=>{this.updateSortState()})}ngOnInit(){this.updateSortState()}onClick(u){u.preventDefault()}updateSortState(){if("single"===this.dt.sortMode)this.sortOrder=this.dt.isSorted(this.field)?this.dt.sortOrder:0;else if("multiple"===this.dt.sortMode){let u=this.dt.getSortMeta(this.field);this.sortOrder=u?u.order:0}this.cd.markForCheck()}getMultiSortMetaIndex(){let u=this.dt._multiSortMeta,ne=-1;if(u&&"multiple"===this.dt.sortMode&&this.dt.showInitialSortBadge&&u.length>1)for(let ue=0;ue-1?u:u+1}isMultiSorted(){return"multiple"===this.dt.sortMode&&this.getMultiSortMetaIndex()>-1}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-sortIcon"]],hostAttrs:[1,"p-element"],inputs:{field:"field"},decls:3,vars:3,consts:[[4,"ngIf"],["class","p-sortable-column-icon",4,"ngIf"],["class","p-sortable-column-badge",4,"ngIf"],[3,"styleClass",4,"ngIf"],[3,"styleClass"],[1,"p-sortable-column-icon"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"p-sortable-column-badge"]],template:function(ne,ue){1&ne&&e.DNE(0,ar,4,3,"ng-container",0)(1,ld,2,4,"span",1)(2,eu,2,1,"span",2),2&ne&&(e.Y8G("ngIf",!ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.dt.sortIconTemplate),e.R7$(),e.Y8G("ngIf",ue.isMultiSorted()))},dependencies:()=>[M.bT,M.T3,Ns,ea,Fs],encapsulation:2,changeDetection:0})}return xe})(),Ai=(()=>{class xe{dt;data;pRowTogglerDisabled;constructor(u){this.dt=u}onClick(u){this.isEnabled()&&(this.dt.toggleRow(this.data,u),u.preventDefault())}isEnabled(){return!0!==this.pRowTogglerDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne))};static \u0275dir=e.FsC({type:xe,selectors:[["","pRowToggler",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})},inputs:{data:[e.Mj6.None,"pRowToggler","data"],pRowTogglerDisabled:"pRowTogglerDisabled"}})}return xe})(),fn=(()=>{class xe{dt;el;zone;data;field;rowIndex;pEditableColumnDisabled;pFocusCellSelector;overlayEventListener;constructor(u,ne,ue){this.dt=u,this.el=ne,this.zone=ue}ngOnChanges(u){this.el.nativeElement&&!u.data?.firstChange&&this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex)}ngAfterViewInit(){this.isEnabled()&&re.D.addClass(this.el.nativeElement,"p-editable-column")}onClick(u){if(this.isEnabled())if(this.dt.selfClick=!0,this.dt.editingCell){if(this.dt.editingCell!==this.el.nativeElement){if(!this.dt.isEditingCellValid())return;this.closeEditingCell(!0,u),this.openCell()}}else this.openCell()}openCell(){this.dt.updateEditingCell(this.el.nativeElement,this.data,this.field,this.rowIndex),re.D.addClass(this.el.nativeElement,"p-cell-editing"),this.dt.onEditInit.emit({field:this.field,data:this.data,index:this.rowIndex}),this.zone.runOutsideAngular(()=>{setTimeout(()=>{let ne=re.D.findSingle(this.el.nativeElement,this.pFocusCellSelector||"input, textarea, select");ne&&ne.focus()},50)}),this.overlayEventListener=u=>{this.el&&this.el.nativeElement.contains(u.target)&&(this.dt.selfClick=!0)},this.dt.overlaySubscription=this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener)}closeEditingCell(u,ne){const ue={field:this.dt.editingCellField,data:this.dt.editingCellData,originalEvent:ne,index:this.dt.editingCellRowIndex};u?this.dt.onEditComplete.emit(ue):(this.dt.onEditCancel.emit(ue),this.dt.value.forEach(Ie=>{Ie[this.dt.editingCellField]===this.data&&(Ie[this.dt.editingCellField]=this.dt.editingCellData)})),re.D.removeClass(this.dt.editingCell,"p-cell-editing"),this.dt.editingCell=null,this.dt.editingCellData=null,this.dt.editingCellField=null,this.dt.unbindDocumentEditListener(),this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}onEnterKeyDown(u){this.isEnabled()&&!u.shiftKey&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onTabKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),u.preventDefault())}onEscapeKeyDown(u){this.isEnabled()&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!1,u),u.preventDefault())}onShiftKeyDown(u){this.isEnabled()&&(u.shiftKey?this.moveToPreviousCell(u):this.moveToNextCell(u))}onArrowDown(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findNextEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowUp(u){if(this.isEnabled()){let ne=this.findCell(u.target);if(ne){let ue=re.D.index(ne),Ie=this.findPrevEditableColumnByIndex(ne,ue);Ie&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(Ie,"click")),u.preventDefault()}}}onArrowLeft(u){this.isEnabled()&&this.moveToPreviousCell(u)}onArrowRight(u){this.isEnabled()&&this.moveToNextCell(u)}findCell(u){if(u){let ne=u;for(;ne&&!re.D.hasClass(ne,"p-cell-editing");)ne=ne.parentElement;return ne}return null}moveToPreviousCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findPreviousEditableColumn(ne);ue&&(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault())}}moveToNextCell(u){let ne=this.findCell(u.target);if(ne){let ue=this.findNextEditableColumn(ne);ue?(this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u),re.D.invokeElementMethod(u.target,"blur"),re.D.invokeElementMethod(ue,"click"),u.preventDefault()):this.dt.isEditingCellValid()&&this.closeEditingCell(!0,u)}}findPreviousEditableColumn(u){let ne=u.previousElementSibling;if(!ne){let ue=u.parentElement?.previousElementSibling;ue&&(ne=ue.lastElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findPreviousEditableColumn(ne):null}findNextEditableColumn(u){let ne=u.nextElementSibling;if(!ne){let ue=u.parentElement?.nextElementSibling;ue&&(ne=ue.firstElementChild)}return ne?re.D.hasClass(ne,"p-editable-column")?ne:this.findNextEditableColumn(ne):null}findNextEditableColumnByIndex(u,ne){let ue=u.parentElement?.nextElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}findPrevEditableColumnByIndex(u,ne){let ue=u.parentElement?.previousElementSibling;if(ue){let Ie=ue.children[ne];return Ie&&re.D.hasClass(Ie,"p-editable-column")?Ie:null}return null}isEnabled(){return!0!==this.pEditableColumnDisabled}ngOnDestroy(){this.dt.overlaySubscription&&this.dt.overlaySubscription.unsubscribe()}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(e.aKT),e.rXU(e.SKi))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableColumn",""]],hostAttrs:[1,"p-element"],hostBindings:function(ne,ue){1&ne&&e.bIt("click",function(nt){return ue.onClick(nt)})("keydown.enter",function(nt){return ue.onEnterKeyDown(nt)})("keydown.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.escape",function(nt){return ue.onEscapeKeyDown(nt)})("keydown.shift.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.meta.tab",function(nt){return ue.onShiftKeyDown(nt)})("keydown.arrowdown",function(nt){return ue.onArrowDown(nt)})("keydown.arrowup",function(nt){return ue.onArrowUp(nt)})("keydown.arrowleft",function(nt){return ue.onArrowLeft(nt)})("keydown.arrowright",function(nt){return ue.onArrowRight(nt)})},inputs:{data:[e.Mj6.None,"pEditableColumn","data"],field:[e.Mj6.None,"pEditableColumnField","field"],rowIndex:[e.Mj6.None,"pEditableColumnRowIndex","rowIndex"],pEditableColumnDisabled:"pEditableColumnDisabled",pFocusCellSelector:"pFocusCellSelector"},features:[e.OA$]})}return xe})(),Rn=(()=>{class xe{el;data;pEditableRowDisabled;constructor(u){this.el=u}isEnabled(){return!0!==this.pEditableRowDisabled}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(e.aKT))};static \u0275dir=e.FsC({type:xe,selectors:[["","pEditableRow",""]],hostAttrs:[1,"p-element"],inputs:{data:[e.Mj6.None,"pEditableRow","data"],pEditableRowDisabled:"pEditableRowDisabled"}})}return xe})(),Zn=(()=>{class xe{dt;editableColumn;editableRow;templates;inputTemplate;outputTemplate;constructor(u,ne,ue){this.dt=u,this.editableColumn=ne,this.editableRow=ue}ngAfterContentInit(){this.templates.forEach(u=>{switch(u.getType()){case"input":this.inputTemplate=u.template;break;case"output":this.outputTemplate=u.template}})}get editing(){return this.dt.editingCell&&this.editableColumn&&this.dt.editingCell===this.editableColumn.el.nativeElement||this.editableRow&&"row"===this.dt.editMode&&this.dt.isRowEditing(this.editableRow.data)}static \u0275fac=function(ne){return new(ne||xe)(e.rXU(Ne),e.rXU(fn,8),e.rXU(Rn,8))};static \u0275cmp=e.VBU({type:xe,selectors:[["p-cellEditor"]],contentQueries:function(ne,ue,Ie){if(1&ne&&e.wni(Ie,Pe.Ei,4),2&ne){let nt;e.mGM(nt=e.lsd())&&(ue.templates=nt)}},hostAttrs:[1,"p-element"],decls:2,vars:2,consts:[[4,"ngIf"],[4,"ngTemplateOutlet"]],template:function(ne,ue){1&ne&&e.DNE(0,th,2,1,"ng-container",0)(1,tu,2,1,"ng-container",0),2&ne&&(e.Y8G("ngIf",ue.editing),e.R7$(),e.Y8G("ngIf",!ue.editing))},dependencies:[M.bT,M.T3],encapsulation:2})}return xe})(),Tr=(()=>{class xe{static \u0275fac=function(ne){return new(ne||xe)};static \u0275mod=e.$C({type:xe});static \u0275inj=e.G2t({imports:[M.MD,mt,_a.u,Po,V.YN,Z.tm,cc,Hi,wa,jo,Gr,Rc,jl,Jr.N,Ns,ea,Fs,tr,Nc,Lo,xa,gl,Pe.Gg,Gr]})}return xe})()},54420:(ri,Ft,He)=>{"use strict";He.d(Ft,{BF:()=>M,Q$:()=>Z,_Y:()=>V});class M{static isArray(re,ve=!0){return Array.isArray(re)&&(ve||0!==re.length)}static isObject(re,ve=!0){return"object"==typeof re&&!Array.isArray(re)&&null!=re&&(ve||0!==Object.keys(re).length)}static equals(re,ve,le){return le?this.resolveFieldData(re,le)===this.resolveFieldData(ve,le):this.equalsByValue(re,ve)}static equalsByValue(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=this.isDate(re),A=this.isDate(ve);if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.equalsByValue(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}static resolveFieldData(re,ve){if(re&&ve){if(this.isFunction(ve))return ve(re);if(-1==ve.indexOf("."))return re[ve];{let le=ve.split("."),fe=re;for(let pe=0,J=le.length;pe=re.length&&(le%=re.length,ve%=re.length),re.splice(le,0,re.splice(ve,1)[0]))}static insertIntoOrderedArray(re,ve,le,fe){if(le.length>0){let pe=!1;for(let J=0;Jve){le.splice(J,0,re),pe=!0;break}pe||le.push(re)}else le.push(re)}static findIndexInList(re,ve){let le=-1;if(ve)for(let fe=0;feve?1:0,pe}static sort(re,ve,le=1,fe,pe=1){const J=M.compare(re,ve,fe,le);let te=le;return(M.isEmpty(re)||M.isEmpty(ve))&&(te=1===pe?le:pe),te*J}static merge(re,ve){if(null!=re||null!=ve)return null!=re&&"object"!=typeof re||null!=ve&&"object"!=typeof ve?null!=re&&"string"!=typeof re||null!=ve&&"string"!=typeof ve?ve||re:[re||"",ve||""].join(" "):{...re||{},...ve||{}}}static isPrintableCharacter(re=""){return this.isNotEmpty(re)&&1===re.length&&re.match(/\S| /)}static getItemValue(re,...ve){return this.isFunction(re)?re(...ve):re}static findLastIndex(re,ve){let le=-1;if(this.isNotEmpty(re))try{le=re.findLastIndex(ve)}catch{le=re.lastIndexOf([...re].reverse().find(ve))}return le}static findLast(re,ve){let le;if(this.isNotEmpty(re))try{le=re.findLast(ve)}catch{le=[...re].reverse().find(ve)}return le}static deepEquals(re,ve){if(re===ve)return!0;if(re&&ve&&"object"==typeof re&&"object"==typeof ve){var pe,J,te,le=Array.isArray(re),fe=Array.isArray(ve);if(le&&fe){if((J=re.length)!=ve.length)return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[pe],ve[pe]))return!1;return!0}if(le!=fe)return!1;var $=re instanceof Date,A=ve instanceof Date;if($!=A)return!1;if($&&A)return re.getTime()==ve.getTime();var B=re instanceof RegExp,F=ve instanceof RegExp;if(B!=F)return!1;if(B&&F)return re.toString()==ve.toString();var L=Object.keys(re);if((J=L.length)!==Object.keys(ve).length)return!1;for(pe=J;0!=pe--;)if(!Object.prototype.hasOwnProperty.call(ve,L[pe]))return!1;for(pe=J;0!=pe--;)if(!this.deepEquals(re[te=L[pe]],ve[te]))return!1;return!0}return re!=re&&ve!=ve}}var e=0;function V(ie="pn_id_"){return`${ie}${++e}`}var Z=function Pe(){let ie=[];const fe=pe=>pe&&parseInt(pe.style.zIndex,10)||0;return{get:fe,set:(pe,J,te)=>{J&&(J.style.zIndex=String(((pe,J)=>{let te=ie.length>0?ie[ie.length-1]:{key:pe,value:J},$=te.value+(te.key===pe?0:J)+2;return ie.push({key:pe,value:$}),$})(pe,te)))},clear:pe=>{pe&&((pe=>{ie=ie.filter(J=>J.value!==pe)})(fe(pe)),pe.style.zIndex="")},getCurrent:()=>ie.length>0?ie[ie.length-1].value:0}}()},10467:(ri,Ft,He)=>{"use strict";function M(V,Pe,Z,ie,re,ve,le){try{var fe=V[ve](le),pe=fe.value}catch(J){return void Z(J)}fe.done?Pe(pe):Promise.resolve(pe).then(ie,re)}function e(V){return function(){var Pe=this,Z=arguments;return new Promise(function(ie,re){var ve=V.apply(Pe,Z);function le(pe){M(ve,ie,re,le,fe,"next",pe)}function fe(pe){M(ve,ie,re,le,fe,"throw",pe)}le(void 0)})}}He.d(Ft,{A:()=>e})},31635:(ri,Ft,He)=>{"use strict";function Z(C,k,p,S){var Y,j=arguments.length,H=j<3?k:null===S?S=Object.getOwnPropertyDescriptor(k,p):S;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)H=Reflect.decorate(C,k,p,S);else for(var U=C.length-1;U>=0;U--)(Y=C[U])&&(H=(j<3?Y(H):j>3?Y(k,p,H):Y(k,p))||H);return j>3&&H&&Object.defineProperty(k,p,H),H}function J(C,k,p,S){return new(p||(p=Promise))(function(H,Y){function U(X){try{w(S.next(X))}catch(G){Y(G)}}function se(X){try{w(S.throw(X))}catch(G){Y(G)}}function w(X){X.done?H(X.value):function j(H){return H instanceof p?H:new p(function(Y){Y(H)})}(X.value).then(U,se)}w((S=S.apply(C,k||[])).next())})}function E(C){return this instanceof E?(this.v=C,this):new E(C)}function _(C,k,p){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var j,S=p.apply(C,k||[]),H=[];return j={},Y("next"),Y("throw"),Y("return"),j[Symbol.asyncIterator]=function(){return this},j;function Y(x){S[x]&&(j[x]=function(N){return new Promise(function(R,K){H.push([x,N,R,K])>1||U(x,N)})})}function U(x,N){try{!function se(x){x.value instanceof E?Promise.resolve(x.value.v).then(w,X):G(H[0][2],x)}(S[x](N))}catch(R){G(H[0][3],R)}}function w(x){U("next",x)}function X(x){U("throw",x)}function G(x,N){x(N),H.shift(),H.length&&U(H[0][0],H[0][1])}}function T(C){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var p,k=C[Symbol.asyncIterator];return k?k.call(C):(C=function B(C){var k="function"==typeof Symbol&&Symbol.iterator,p=k&&C[k],S=0;if(p)return p.call(C);if(C&&"number"==typeof C.length)return{next:function(){return C&&S>=C.length&&(C=void 0),{value:C&&C[S++],done:!C}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),p={},S("next"),S("throw"),S("return"),p[Symbol.asyncIterator]=function(){return this},p);function S(H){p[H]=C[H]&&function(Y){return new Promise(function(U,se){!function j(H,Y,U,se){Promise.resolve(se).then(function(w){H({value:w,done:U})},Y)}(U,se,(Y=C[H](Y)).done,Y.value)})}}}He.d(Ft,{AQ:()=>_,Cg:()=>Z,N3:()=>E,sH:()=>J,xN:()=>T}),"function"==typeof SuppressedError&&SuppressedError}},ri=>{ri(ri.s=40476)}]); \ No newline at end of file diff --git a/www/z4d/styles.00f90ba6d3590bca.css b/www/z4d/styles.00f90ba6d3590bca.css deleted file mode 100644 index c2cbfe298..000000000 --- a/www/z4d/styles.00f90ba6d3590bca.css +++ /dev/null @@ -1,13 +0,0 @@ -.la-line-spin-clockwise-fade-rotating,.la-line-spin-clockwise-fade-rotating>div{position:relative;box-sizing:border-box}.la-line-spin-clockwise-fade-rotating{display:block;font-size:0;color:#fff}.la-line-spin-clockwise-fade-rotating.la-dark{color:#333}.la-line-spin-clockwise-fade-rotating>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-spin-clockwise-fade-rotating{width:32px;height:32px;animation:line-spin-clockwise-fade-rotating-rotate 6s infinite linear}.la-line-spin-clockwise-fade-rotating>div{position:absolute;width:2px;height:10px;margin:-5px 2px 2px -1px;border-radius:0;animation:line-spin-clockwise-fade-rotating 1s infinite ease-in-out}.la-line-spin-clockwise-fade-rotating>div:nth-child(1){top:15%;left:50%;transform:rotate(0);animation-delay:-.875s}.la-line-spin-clockwise-fade-rotating>div:nth-child(2){top:25.2512626585%;left:74.7487373415%;transform:rotate(45deg);animation-delay:-.75s}.la-line-spin-clockwise-fade-rotating>div:nth-child(3){top:50%;left:85%;transform:rotate(90deg);animation-delay:-.625s}.la-line-spin-clockwise-fade-rotating>div:nth-child(4){top:74.7487373415%;left:74.7487373415%;transform:rotate(135deg);animation-delay:-.5s}.la-line-spin-clockwise-fade-rotating>div:nth-child(5){top:84.9999999974%;left:50.0000000004%;transform:rotate(180deg);animation-delay:-.375s}.la-line-spin-clockwise-fade-rotating>div:nth-child(6){top:74.7487369862%;left:25.2512627193%;transform:rotate(225deg);animation-delay:-.25s}.la-line-spin-clockwise-fade-rotating>div:nth-child(7){top:49.9999806189%;left:15.0000039834%;transform:rotate(270deg);animation-delay:-.125s}.la-line-spin-clockwise-fade-rotating>div:nth-child(8){top:25.2506949798%;left:25.2513989292%;transform:rotate(315deg);animation-delay:0s}.la-line-spin-clockwise-fade-rotating.la-sm{width:16px;height:16px}.la-line-spin-clockwise-fade-rotating.la-sm>div{width:1px;height:4px;margin-top:-2px;margin-left:0}.la-line-spin-clockwise-fade-rotating.la-2x{width:64px;height:64px}.la-line-spin-clockwise-fade-rotating.la-2x>div{width:4px;height:20px;margin-top:-10px;margin-left:-2px}.la-line-spin-clockwise-fade-rotating.la-3x{width:96px;height:96px}.la-line-spin-clockwise-fade-rotating.la-3x>div{width:6px;height:30px;margin-top:-15px;margin-left:-3px}@keyframes line-spin-clockwise-fade-rotating-rotate{to{transform:rotate(-360deg)}}@keyframes line-spin-clockwise-fade-rotating{50%{opacity:.2}to{opacity:1}}/*! - * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) - * Copyright 2015 Daniel Cardoso <@DanielCardoso> - * Licensed under MIT - */.la-line-scale,.la-line-scale>div{position:relative;box-sizing:border-box}.la-line-scale{display:block;font-size:0;color:#fff}.la-line-scale.la-dark{color:#333}.la-line-scale>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-scale{width:40px;height:32px}.la-line-scale>div{width:4px;height:32px;margin:0 2px;border-radius:0;animation:line-scale 1.2s infinite ease}.la-line-scale>div:nth-child(1){animation-delay:-1.2s}.la-line-scale>div:nth-child(2){animation-delay:-1.1s}.la-line-scale>div:nth-child(3){animation-delay:-1s}.la-line-scale>div:nth-child(4){animation-delay:-.9s}.la-line-scale>div:nth-child(5){animation-delay:-.8s}.la-line-scale.la-sm{width:20px;height:16px}.la-line-scale.la-sm>div{width:2px;height:16px;margin:0 1px}.la-line-scale.la-2x{width:80px;height:64px}.la-line-scale.la-2x>div{width:8px;height:64px;margin:0 4px}.la-line-scale.la-3x{width:120px;height:96px}.la-line-scale.la-3x>div{width:12px;height:96px;margin:0 6px}@keyframes line-scale{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}@layer bootstrap{@charset "UTF-8";/*! -* Bootstrap v5.3.3 (https://getbootstrap.com/) -* Copyright 2011-2024 The Bootstrap Authors -* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) -*/:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, .75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, .5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13, 110, 253, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, .75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, .5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, .15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, .15),0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;--bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, .15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:.5rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:.25rem;--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, .55);--bs-navbar-hover-color:rgba(255, 255, 255, .75);--bs-navbar-disabled-color:rgba(255, 255, 255, .25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:.75rem;--bs-pagination-padding-y:.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:.5rem;--bs-pagination-padding-y:.25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:.65em;--bs-badge-padding-y:.35em;--bs-badge-font-size:.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:.75rem;--bs-toast-padding-y:.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:.5rem;--bs-tooltip-padding-y:.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:.9;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform .3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:.1}.border-opacity-25{--bs-border-opacity:.25}.border-opacity-50{--bs-border-opacity:.5}.border-opacity-75{--bs-border-opacity:.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:#00000080!important}.text-white-50{--bs-text-opacity:1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:.25}.text-opacity-50{--bs-text-opacity:.5}.text-opacity-75{--bs-text-opacity:.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:.1}.bg-opacity-25{--bs-bg-opacity:.25}.bg-opacity-50{--bs-bg-opacity:.5}.bg-opacity-75{--bs-bg-opacity:.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}}@font-face{font-family:primeicons;font-display:block;src:url(primeicons.ffecb2549ad1765a.eot);src:url(primeicons.ffecb2549ad1765a.eot?#iefix) format("embedded-opentype"),url(primeicons.ba3f916dfb64be8c.woff2) format("woff2"),url(primeicons.f8b9e8a4e401b603.woff) format("woff"),url(primeicons.0112589c5695a9ed.ttf) format("truetype"),url(primeicons.943ab24c43224d29.svg?#primeicons) format("svg");font-weight:400;font-style:normal}.pi{font-family:primeicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pi:before{--webkit-backface-visibility:hidden;backface-visibility:hidden}.pi-fw{width:1.28571429em;text-align:center}.pi-spin{animation:fa-spin 2s infinite linear}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.pi-eraser:before{content:"\ea04"}.pi-stopwatch:before{content:"\ea01"}.pi-verified:before{content:"\ea02"}.pi-delete-left:before{content:"\ea03"}.pi-hourglass:before{content:"\e9fe"}.pi-truck:before{content:"\ea00"}.pi-wrench:before{content:"\e9ff"}.pi-microphone:before{content:"\e9fa"}.pi-megaphone:before{content:"\e9fb"}.pi-arrow-right-arrow-left:before{content:"\e9fc"}.pi-bitcoin:before{content:"\e9fd"}.pi-file-edit:before{content:"\e9f6"}.pi-language:before{content:"\e9f7"}.pi-file-export:before{content:"\e9f8"}.pi-file-import:before{content:"\e9f9"}.pi-file-word:before{content:"\e9f1"}.pi-gift:before{content:"\e9f2"}.pi-cart-plus:before{content:"\e9f3"}.pi-thumbs-down-fill:before{content:"\e9f4"}.pi-thumbs-up-fill:before{content:"\e9f5"}.pi-arrows-alt:before{content:"\e9f0"}.pi-calculator:before{content:"\e9ef"}.pi-sort-alt-slash:before{content:"\e9ee"}.pi-arrows-h:before{content:"\e9ec"}.pi-arrows-v:before{content:"\e9ed"}.pi-pound:before{content:"\e9eb"}.pi-prime:before{content:"\e9ea"}.pi-chart-pie:before{content:"\e9e9"}.pi-reddit:before{content:"\e9e8"}.pi-code:before{content:"\e9e7"}.pi-sync:before{content:"\e9e6"}.pi-shopping-bag:before{content:"\e9e5"}.pi-server:before{content:"\e9e4"}.pi-database:before{content:"\e9e3"}.pi-hashtag:before{content:"\e9e2"}.pi-bookmark-fill:before{content:"\e9df"}.pi-filter-fill:before{content:"\e9e0"}.pi-heart-fill:before{content:"\e9e1"}.pi-flag-fill:before{content:"\e9de"}.pi-circle:before{content:"\e9dc"}.pi-circle-fill:before{content:"\e9dd"}.pi-bolt:before{content:"\e9db"}.pi-history:before{content:"\e9da"}.pi-box:before{content:"\e9d9"}.pi-at:before{content:"\e9d8"}.pi-arrow-up-right:before{content:"\e9d4"}.pi-arrow-up-left:before{content:"\e9d5"}.pi-arrow-down-left:before{content:"\e9d6"}.pi-arrow-down-right:before{content:"\e9d7"}.pi-telegram:before{content:"\e9d3"}.pi-stop-circle:before{content:"\e9d2"}.pi-stop:before{content:"\e9d1"}.pi-whatsapp:before{content:"\e9d0"}.pi-building:before{content:"\e9cf"}.pi-qrcode:before{content:"\e9ce"}.pi-car:before{content:"\e9cd"}.pi-instagram:before{content:"\e9cc"}.pi-linkedin:before{content:"\e9cb"}.pi-send:before{content:"\e9ca"}.pi-slack:before{content:"\e9c9"}.pi-sun:before{content:"\e9c8"}.pi-moon:before{content:"\e9c7"}.pi-vimeo:before{content:"\e9c6"}.pi-youtube:before{content:"\e9c5"}.pi-flag:before{content:"\e9c4"}.pi-wallet:before{content:"\e9c3"}.pi-map:before{content:"\e9c2"}.pi-link:before{content:"\e9c1"}.pi-credit-card:before{content:"\e9bf"}.pi-discord:before{content:"\e9c0"}.pi-percentage:before{content:"\e9be"}.pi-euro:before{content:"\e9bd"}.pi-book:before{content:"\e9ba"}.pi-shield:before{content:"\e9b9"}.pi-paypal:before{content:"\e9bb"}.pi-amazon:before{content:"\e9bc"}.pi-phone:before{content:"\e9b8"}.pi-filter-slash:before{content:"\e9b7"}.pi-facebook:before{content:"\e9b4"}.pi-github:before{content:"\e9b5"}.pi-twitter:before{content:"\e9b6"}.pi-step-backward-alt:before{content:"\e9ac"}.pi-step-forward-alt:before{content:"\e9ad"}.pi-forward:before{content:"\e9ae"}.pi-backward:before{content:"\e9af"}.pi-fast-backward:before{content:"\e9b0"}.pi-fast-forward:before{content:"\e9b1"}.pi-pause:before{content:"\e9b2"}.pi-play:before{content:"\e9b3"}.pi-compass:before{content:"\e9ab"}.pi-id-card:before{content:"\e9aa"}.pi-ticket:before{content:"\e9a9"}.pi-file-o:before{content:"\e9a8"}.pi-reply:before{content:"\e9a7"}.pi-directions-alt:before{content:"\e9a5"}.pi-directions:before{content:"\e9a6"}.pi-thumbs-up:before{content:"\e9a3"}.pi-thumbs-down:before{content:"\e9a4"}.pi-sort-numeric-down-alt:before{content:"\e996"}.pi-sort-numeric-up-alt:before{content:"\e997"}.pi-sort-alpha-down-alt:before{content:"\e998"}.pi-sort-alpha-up-alt:before{content:"\e999"}.pi-sort-numeric-down:before{content:"\e99a"}.pi-sort-numeric-up:before{content:"\e99b"}.pi-sort-alpha-down:before{content:"\e99c"}.pi-sort-alpha-up:before{content:"\e99d"}.pi-sort-alt:before{content:"\e99e"}.pi-sort-amount-up:before{content:"\e99f"}.pi-sort-amount-down:before{content:"\e9a0"}.pi-sort-amount-down-alt:before{content:"\e9a1"}.pi-sort-amount-up-alt:before{content:"\e9a2"}.pi-palette:before{content:"\e995"}.pi-undo:before{content:"\e994"}.pi-desktop:before{content:"\e993"}.pi-sliders-v:before{content:"\e991"}.pi-sliders-h:before{content:"\e992"}.pi-search-plus:before{content:"\e98f"}.pi-search-minus:before{content:"\e990"}.pi-file-excel:before{content:"\e98e"}.pi-file-pdf:before{content:"\e98d"}.pi-check-square:before{content:"\e98c"}.pi-chart-line:before{content:"\e98b"}.pi-user-edit:before{content:"\e98a"}.pi-exclamation-circle:before{content:"\e989"}.pi-android:before{content:"\e985"}.pi-google:before{content:"\e986"}.pi-apple:before{content:"\e987"}.pi-microsoft:before{content:"\e988"}.pi-heart:before{content:"\e984"}.pi-mobile:before{content:"\e982"}.pi-tablet:before{content:"\e983"}.pi-key:before{content:"\e981"}.pi-shopping-cart:before{content:"\e980"}.pi-comments:before{content:"\e97e"}.pi-comment:before{content:"\e97f"}.pi-briefcase:before{content:"\e97d"}.pi-bell:before{content:"\e97c"}.pi-paperclip:before{content:"\e97b"}.pi-share-alt:before{content:"\e97a"}.pi-envelope:before{content:"\e979"}.pi-volume-down:before{content:"\e976"}.pi-volume-up:before{content:"\e977"}.pi-volume-off:before{content:"\e978"}.pi-eject:before{content:"\e975"}.pi-money-bill:before{content:"\e974"}.pi-images:before{content:"\e973"}.pi-image:before{content:"\e972"}.pi-sign-in:before{content:"\e970"}.pi-sign-out:before{content:"\e971"}.pi-wifi:before{content:"\e96f"}.pi-sitemap:before{content:"\e96e"}.pi-chart-bar:before{content:"\e96d"}.pi-camera:before{content:"\e96c"}.pi-dollar:before{content:"\e96b"}.pi-lock-open:before{content:"\e96a"}.pi-table:before{content:"\e969"}.pi-map-marker:before{content:"\e968"}.pi-list:before{content:"\e967"}.pi-eye-slash:before{content:"\e965"}.pi-eye:before{content:"\e966"}.pi-folder-open:before{content:"\e964"}.pi-folder:before{content:"\e963"}.pi-video:before{content:"\e962"}.pi-inbox:before{content:"\e961"}.pi-lock:before{content:"\e95f"}.pi-unlock:before{content:"\e960"}.pi-tags:before{content:"\e95d"}.pi-tag:before{content:"\e95e"}.pi-power-off:before{content:"\e95c"}.pi-save:before{content:"\e95b"}.pi-question-circle:before{content:"\e959"}.pi-question:before{content:"\e95a"}.pi-copy:before{content:"\e957"}.pi-file:before{content:"\e958"}.pi-clone:before{content:"\e955"}.pi-calendar-times:before{content:"\e952"}.pi-calendar-minus:before{content:"\e953"}.pi-calendar-plus:before{content:"\e954"}.pi-ellipsis-v:before{content:"\e950"}.pi-ellipsis-h:before{content:"\e951"}.pi-bookmark:before{content:"\e94e"}.pi-globe:before{content:"\e94f"}.pi-replay:before{content:"\e94d"}.pi-filter:before{content:"\e94c"}.pi-print:before{content:"\e94b"}.pi-align-right:before{content:"\e946"}.pi-align-left:before{content:"\e947"}.pi-align-center:before{content:"\e948"}.pi-align-justify:before{content:"\e949"}.pi-cog:before{content:"\e94a"}.pi-cloud-download:before{content:"\e943"}.pi-cloud-upload:before{content:"\e944"}.pi-cloud:before{content:"\e945"}.pi-pencil:before{content:"\e942"}.pi-users:before{content:"\e941"}.pi-clock:before{content:"\e940"}.pi-user-minus:before{content:"\e93e"}.pi-user-plus:before{content:"\e93f"}.pi-trash:before{content:"\e93d"}.pi-external-link:before{content:"\e93c"}.pi-window-maximize:before{content:"\e93b"}.pi-window-minimize:before{content:"\e93a"}.pi-refresh:before{content:"\e938"}.pi-user:before{content:"\e939"}.pi-exclamation-triangle:before{content:"\e922"}.pi-calendar:before{content:"\e927"}.pi-chevron-circle-left:before{content:"\e928"}.pi-chevron-circle-down:before{content:"\e929"}.pi-chevron-circle-right:before{content:"\e92a"}.pi-chevron-circle-up:before{content:"\e92b"}.pi-angle-double-down:before{content:"\e92c"}.pi-angle-double-left:before{content:"\e92d"}.pi-angle-double-right:before{content:"\e92e"}.pi-angle-double-up:before{content:"\e92f"}.pi-angle-down:before{content:"\e930"}.pi-angle-left:before{content:"\e931"}.pi-angle-right:before{content:"\e932"}.pi-angle-up:before{content:"\e933"}.pi-upload:before{content:"\e934"}.pi-download:before{content:"\e956"}.pi-ban:before{content:"\e935"}.pi-star-fill:before{content:"\e936"}.pi-star:before{content:"\e937"}.pi-chevron-left:before{content:"\e900"}.pi-chevron-right:before{content:"\e901"}.pi-chevron-down:before{content:"\e902"}.pi-chevron-up:before{content:"\e903"}.pi-caret-left:before{content:"\e904"}.pi-caret-right:before{content:"\e905"}.pi-caret-down:before{content:"\e906"}.pi-caret-up:before{content:"\e907"}.pi-search:before{content:"\e908"}.pi-check:before{content:"\e909"}.pi-check-circle:before{content:"\e90a"}.pi-times:before{content:"\e90b"}.pi-times-circle:before{content:"\e90c"}.pi-plus:before{content:"\e90d"}.pi-plus-circle:before{content:"\e90e"}.pi-minus:before{content:"\e90f"}.pi-minus-circle:before{content:"\e910"}.pi-circle-on:before{content:"\e911"}.pi-circle-off:before{content:"\e912"}.pi-sort-down:before{content:"\e913"}.pi-sort-up:before{content:"\e914"}.pi-sort:before{content:"\e915"}.pi-step-backward:before{content:"\e916"}.pi-step-forward:before{content:"\e917"}.pi-th-large:before{content:"\e918"}.pi-arrow-down:before{content:"\e919"}.pi-arrow-left:before{content:"\e91a"}.pi-arrow-right:before{content:"\e91b"}.pi-arrow-up:before{content:"\e91c"}.pi-bars:before{content:"\e91d"}.pi-arrow-circle-down:before{content:"\e91e"}.pi-arrow-circle-left:before{content:"\e91f"}.pi-arrow-circle-right:before{content:"\e920"}.pi-arrow-circle-up:before{content:"\e921"}.pi-info:before{content:"\e923"}.pi-info-circle:before{content:"\e924"}.pi-home:before{content:"\e925"}.pi-spinner:before{content:"\e926"}:root{font-family:Inter var,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";font-variation-settings:normal;--font-family: "Inter var", sans-serif;--font-feature-settings: "cv02", "cv03", "cv04", "cv11";--surface-a: #ffffff;--surface-b: #f9fafb;--surface-c: #f3f4f6;--surface-d: #e5e7eb;--surface-e: #ffffff;--surface-f: #ffffff;--text-color: #4b5563;--text-color-secondary: #6b7280;--primary-color: #3B82F6;--primary-color-text: #ffffff;--surface-0: #ffffff;--surface-50: #f9fafb;--surface-100: #f3f4f6;--surface-200: #e5e7eb;--surface-300: #d1d5db;--surface-400: #9ca3af;--surface-500: #6b7280;--surface-600: #4b5563;--surface-700: #374151;--surface-800: #1f2937;--surface-900: #111827;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--content-padding: 1.25rem;--inline-spacing: .5rem;--border-radius: 6px;--surface-ground: #f9fafb;--surface-section: #ffffff;--surface-card: #ffffff;--surface-overlay: #ffffff;--surface-border: #dfe7ef;--surface-hover: #f6f9fc;--focus-ring: 0 0 0 .2rem #BFDBFE;--maskbg: rgba(0, 0, 0, .4);--highlight-bg: #EFF6FF;--highlight-text-color: #1D4ED8;color-scheme:light}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(Inter-roman.var.b2129c009ce46d43.woff2?v=3.19) format("woff2")}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(Inter-italic.var.958a0b9742fb3ae8.woff2?v=3.19) format("woff2")}:root{--blue-50:#f5f9ff;--blue-100:#d0e1fd;--blue-200:#abc9fb;--blue-300:#85b2f9;--blue-400:#609af8;--blue-500:#3b82f6;--blue-600:#326fd1;--blue-700:#295bac;--blue-800:#204887;--blue-900:#183462;--green-50:#f4fcf7;--green-100:#caf1d8;--green-200:#a0e6ba;--green-300:#76db9b;--green-400:#4cd07d;--green-500:#22c55e;--green-600:#1da750;--green-700:#188a42;--green-800:#136c34;--green-900:#0e4f26;--yellow-50:#fefbf3;--yellow-100:#faedc4;--yellow-200:#f6de95;--yellow-300:#f2d066;--yellow-400:#eec137;--yellow-500:#eab308;--yellow-600:#c79807;--yellow-700:#a47d06;--yellow-800:#816204;--yellow-900:#5e4803;--cyan-50:#f3fbfd;--cyan-100:#c3edf5;--cyan-200:#94e0ed;--cyan-300:#65d2e4;--cyan-400:#35c4dc;--cyan-500:#06b6d4;--cyan-600:#059bb4;--cyan-700:#047f94;--cyan-800:#036475;--cyan-900:#024955;--pink-50:#fef6fa;--pink-100:#fad3e7;--pink-200:#f7b0d3;--pink-300:#f38ec0;--pink-400:#f06bac;--pink-500:#ec4899;--pink-600:#c93d82;--pink-700:#a5326b;--pink-800:#822854;--pink-900:#5e1d3d;--indigo-50:#f7f7fe;--indigo-100:#dadafc;--indigo-200:#bcbdf9;--indigo-300:#9ea0f6;--indigo-400:#8183f4;--indigo-500:#6366f1;--indigo-600:#5457cd;--indigo-700:#4547a9;--indigo-800:#363885;--indigo-900:#282960;--teal-50:#f3fbfb;--teal-100:#c7eeea;--teal-200:#9ae0d9;--teal-300:#6dd3c8;--teal-400:#41c5b7;--teal-500:#14b8a6;--teal-600:#119c8d;--teal-700:#0e8174;--teal-800:#0b655b;--teal-900:#084a42;--orange-50:#fff8f3;--orange-100:#feddc7;--orange-200:#fcc39b;--orange-300:#fba86f;--orange-400:#fa8e42;--orange-500:#f97316;--orange-600:#d46213;--orange-700:#ae510f;--orange-800:#893f0c;--orange-900:#642e09;--bluegray-50:#f7f8f9;--bluegray-100:#dadee3;--bluegray-200:#bcc3cd;--bluegray-300:#9fa9b7;--bluegray-400:#818ea1;--bluegray-500:#64748b;--bluegray-600:#556376;--bluegray-700:#465161;--bluegray-800:#37404c;--bluegray-900:#282e38;--purple-50:#fbf7ff;--purple-100:#ead6fd;--purple-200:#dab6fc;--purple-300:#c996fa;--purple-400:#b975f9;--purple-500:#a855f7;--purple-600:#8f48d2;--purple-700:#763cad;--purple-800:#5c2f88;--purple-900:#432263;--red-50:#fff5f5;--red-100:#ffd0ce;--red-200:#ffaca7;--red-300:#ff8780;--red-400:#ff6259;--red-500:#ff3d32;--red-600:#d9342b;--red-700:#b32b23;--red-800:#8c221c;--red-900:#661814;--primary-50:#f5f9ff;--primary-100:#d0e1fd;--primary-200:#abc9fb;--primary-300:#85b2f9;--primary-400:#609af8;--primary-500:#3b82f6;--primary-600:#326fd1;--primary-700:#295bac;--primary-800:#204887;--primary-900:#183462}.p-editor-container .p-editor-toolbar{background:#f9fafb;border-top-right-radius:6px;border-top-left-radius:6px}.p-editor-container .p-editor-toolbar.ql-snow{border:1px solid #e5e7eb}.p-editor-container .p-editor-toolbar.ql-snow .ql-stroke{stroke:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-fill{fill:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label{border:0 none;color:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke{stroke:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill{fill:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;padding:.75rem 0}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover{color:#4b5563;background:#f3f4f6}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item{padding:.75rem 1.25rem}.p-editor-container .p-editor-content{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .p-editor-content.ql-snow{border:1px solid #e5e7eb}.p-editor-container .p-editor-content .ql-editor{background:#fff;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .ql-snow.ql-toolbar button:hover,.p-editor-container .ql-snow.ql-toolbar button:focus{color:#4b5563}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-stroke,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-stroke{stroke:#4b5563}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-fill,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-fill{fill:#4b5563}.p-editor-container .ql-snow.ql-toolbar button.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected{color:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke{stroke:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill{fill:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label{color:#3b82f6}@layer primeng{*{box-sizing:border-box}.p-component{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;font-weight:400}.p-component-overlay{background-color:#0006;transition-duration:.2s}.p-disabled,.p-component:disabled{opacity:.6}.p-error{color:#e24c4c}.p-text-secondary{color:#6b7280}.pi{font-size:1rem}.p-icon{width:1rem;height:1rem}.p-link{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;border-radius:6px}.p-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-component-overlay-enter{animation:p-component-overlay-enter-animation .15s forwards}.p-component-overlay-leave{animation:p-component-overlay-leave-animation .15s forwards}@keyframes p-component-overlay-enter-animation{0%{background-color:transparent}to{background-color:var(--maskbg)}}@keyframes p-component-overlay-leave-animation{0%{background-color:var(--maskbg)}to{background-color:transparent}}.p-autocomplete .p-autocomplete-loader{right:.75rem}.p-autocomplete.p-autocomplete-dd .p-autocomplete-loader{right:3.75rem}.p-autocomplete:not(.p-disabled):hover .p-autocomplete-multiple-container{border-color:#3b82f6}.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-multiple-container{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-autocomplete .p-autocomplete-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:.375rem 0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;padding:0;margin:0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token{padding:.375rem .75rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon{margin-left:.5rem}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token.p-focus{background:#d1d5db;color:#4b5563}.p-autocomplete.p-invalid.p-component>.p-inputtext{border-color:#e24c4c}.p-autocomplete-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-autocomplete-panel .p-autocomplete-items{padding:.75rem 0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight.p-focus{background:#3b82f63d}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}p-autocomplete.ng-dirty.ng-invalid>.p-autocomplete>.p-inputtext{border-color:#e24c4c}p-autocomplete.p-autocomplete-clearable .p-inputtext{padding-right:2.5rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-clear-icon{color:#6b7280;right:.75rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-dd .p-autocomplete-clear-icon{color:#6b7280;right:3.75rem}p-calendar.ng-dirty.ng-invalid>.p-calendar>.p-inputtext{border-color:#e24c4c}.p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-datepicker{padding:.5rem;background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px}.p-datepicker:not(.p-datepicker-inline){background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:#fff}.p-datepicker .p-datepicker-header{padding:.5rem;color:#4b5563;background:#fff;font-weight:600;margin:0;border-bottom:1px solid #e5e7eb;border-top-right-radius:6px;border-top-left-radius:6px}.p-datepicker .p-datepicker-header .p-datepicker-prev,.p-datepicker .p-datepicker-header .p-datepicker-next{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-datepicker-header .p-datepicker-prev:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-next:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datepicker .p-datepicker-header .p-datepicker-prev:focus-visible,.p-datepicker .p-datepicker-header .p-datepicker-next:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-datepicker-header .p-datepicker-title{line-height:2rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{color:#4b5563;transition:background-color .2s,color .2s,box-shadow .2s;font-weight:600;padding:.5rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month:enabled:hover{color:#3b82f6}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{margin-right:.5rem}.p-datepicker table{font-size:1rem;margin:.5rem 0}.p-datepicker table th{padding:.5rem}.p-datepicker table th>span{width:2.5rem;height:2.5rem}.p-datepicker table td{padding:.5rem}.p-datepicker table td>span{width:2.5rem;height:2.5rem;border-radius:50%;transition:box-shadow .2s;border:1px solid transparent}.p-datepicker table td>span.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker table td>span:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker table td.p-datepicker-today>span{background:#d1d5db;color:#4b5563;border-color:transparent}.p-datepicker table td.p-datepicker-today>span.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid #e5e7eb}.p-datepicker .p-datepicker-buttonbar .p-button{width:auto}.p-datepicker .p-timepicker{border-top:1px solid #e5e7eb;padding:.5rem}.p-datepicker .p-timepicker button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-timepicker button:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datepicker .p-timepicker button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-timepicker button:last-child{margin-top:.2em}.p-datepicker .p-timepicker span{font-size:1.25rem}.p-datepicker .p-timepicker>div{padding:0 .5rem}.p-datepicker.p-datepicker-timeonly .p-timepicker{border-top:0 none}.p-datepicker .p-monthpicker{margin:.5rem 0}.p-datepicker .p-monthpicker .p-monthpicker-month{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-monthpicker .p-monthpicker-month.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker .p-yearpicker{margin:.5rem 0}.p-datepicker .p-yearpicker .p-yearpicker-year{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-yearpicker .p-yearpicker-year.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group{border-left:1px solid #e5e7eb;padding-right:.5rem;padding-left:.5rem;padding-top:0;padding-bottom:0}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:first-child{padding-left:0;border-left:0 none}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:last-child{padding-right:0}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}p-calendar.p-calendar-clearable .p-inputtext{padding-right:2.5rem}p-calendar.p-calendar-clearable .p-calendar-clear-icon{color:#6b7280;right:.75rem}p-calendar.p-calendar-clearable .p-calendar-w-btn .p-calendar-clear-icon{color:#6b7280;right:3.75rem}@media screen and (max-width: 769px){.p-datepicker table th,.p-datepicker table td{padding:0}}.p-cascadeselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-cascadeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-cascadeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-cascadeselect .p-cascadeselect-label{background:transparent;border:0 none;padding:.75rem}.p-cascadeselect .p-cascadeselect-label.p-placeholder{color:#6b7280}.p-cascadeselect .p-cascadeselect-label:enabled:focus{outline:0 none;box-shadow:none}.p-cascadeselect .p-cascadeselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-cascadeselect.p-invalid.p-component{border-color:#e24c4c}.p-cascadeselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-cascadeselect-panel .p-cascadeselect-items{padding:.75rem 0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item{margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight.p-focus{background:#3b82f63d}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content{padding:.75rem 1.25rem}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon{font-size:.875rem}.p-input-filled .p-cascadeselect{background:#f3f4f6}.p-input-filled .p-cascadeselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-cascadeselect:not(.p-disabled).p-focus{background-color:#fff}p-cascadeselect.ng-dirty.ng-invalid>.p-cascadeselect{border-color:#e24c4c}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-label{padding-right:.75rem}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-clear-icon{color:#6b7280;right:3rem}.p-overlay-modal .p-cascadeselect-sublist .p-cascadeselect-panel{box-shadow:none;border-radius:0;padding:.25rem 0 .25rem .5rem}.p-overlay-modal .p-cascadeselect-item-active>.p-cascadeselect-item-content .p-cascadeselect-group-icon{transform:rotate(90deg)}.p-checkbox{width:22px;height:22px}.p-checkbox .p-checkbox-box{border:2px solid #d1d5db;background:#fff;width:22px;height:22px;color:#4b5563;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}.p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}.p-checkbox .p-checkbox-box.p-highlight{border-color:#3b82f6;background:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}p-checkbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-input-filled .p-checkbox .p-checkbox-box{background-color:#f3f4f6}.p-input-filled .p-checkbox .p-checkbox-box.p-highlight{background:#3b82f6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{background-color:#f3f4f6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{background:#1d4ed8}.p-checkbox-label{margin-left:.5rem}p-tristatecheckbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-chips:not(.p-disabled):hover .p-chips-multiple-container{border-color:#3b82f6}.p-chips:not(.p-disabled).p-focus .p-chips-multiple-container{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-chips .p-chips-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-chips .p-chips-multiple-container .p-chips-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-chips .p-chips-multiple-container .p-chips-token.p-focus{background:#d1d5db;color:#4b5563}.p-chips .p-chips-multiple-container .p-chips-token .p-chips-token-icon{margin-left:.5rem}.p-chips .p-chips-multiple-container .p-chips-input-token{padding:.375rem 0}.p-chips .p-chips-multiple-container .p-chips-input-token input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;padding:0;margin:0}p-chips.ng-dirty.ng-invalid>.p-chips>.p-inputtext{border-color:#e24c4c}p-chips.p-chips-clearable .p-inputtext{padding-right:1.75rem}p-chips.p-chips-clearable .p-chips-clear-icon{color:#6b7280;right:.75rem}.p-colorpicker-preview,.p-fluid .p-colorpicker-preview.p-inputtext{width:2rem;height:2rem}.p-colorpicker-panel{background:#323232;border:1px solid #191919}.p-colorpicker-panel .p-colorpicker-color-handle,.p-colorpicker-panel .p-colorpicker-hue-handle{border-color:#fff}.p-colorpicker-overlay-panel{box-shadow:0 2px 12px #0000001a}.p-dropdown{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-dropdown:not(.p-disabled):hover{border-color:#3b82f6}.p-dropdown:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-dropdown.p-dropdown-clearable .p-dropdown-label{padding-right:1.75rem}.p-dropdown .p-dropdown-label{background:transparent;border:0 none}.p-dropdown .p-dropdown-label.p-placeholder{color:#6b7280}.p-dropdown .p-dropdown-label:focus,.p-dropdown .p-dropdown-label:enabled:focus{outline:0 none;box-shadow:none}.p-dropdown .p-dropdown-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-dropdown .p-dropdown-clear-icon{color:#6b7280;right:3rem}.p-dropdown.p-invalid.p-component{border-color:#e24c4c}.p-dropdown-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-dropdown-panel .p-dropdown-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter{padding-right:1.75rem;margin-right:-1.75rem}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter-icon{right:.75rem;color:#6b7280}.p-dropdown-panel .p-dropdown-items{padding:.75rem 0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight.p-focus{background:#3b82f63d}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-dropdown-panel .p-dropdown-items .p-dropdown-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-dropdown-panel .p-dropdown-items .p-dropdown-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-dropdown{background:#f3f4f6}.p-input-filled .p-dropdown:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-dropdown:not(.p-disabled).p-focus{background-color:#fff}.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext{background-color:transparent}p-dropdown.ng-dirty.ng-invalid>.p-dropdown{border-color:#e24c4c}.p-icon-field .p-input-icon{position:absolute;top:50%;margin-top:-.5rem}.p-inputgroup-addon{background:#f3f4f6;color:#6b7280;border-top:1px solid #d1d5db;border-left:1px solid #d1d5db;border-bottom:1px solid #d1d5db;padding:.75rem;min-width:3rem}.p-inputgroup-addon:last-child{border-right:1px solid #d1d5db}.p-inputgroup>.p-component,.p-inputgroup>.p-inputwrapper>.p-inputtext,.p-inputgroup>.p-float-label>.p-component{border-radius:0;margin:0}.p-inputgroup>.p-component+.p-inputgroup-addon,.p-inputgroup>.p-inputwrapper>.p-inputtext+.p-inputgroup-addon,.p-inputgroup>.p-float-label>.p-component+.p-inputgroup-addon{border-left:0 none}.p-inputgroup>.p-component:focus,.p-inputgroup>.p-inputwrapper>.p-inputtext:focus,.p-inputgroup>.p-float-label>.p-component:focus{z-index:1}.p-inputgroup>.p-component:focus~label,.p-inputgroup>.p-inputwrapper>.p-inputtext:focus~label,.p-inputgroup>.p-float-label>.p-component:focus~label{z-index:1}.p-inputgroup-addon:first-child,.p-inputgroup button:first-child,.p-inputgroup input:first-child,.p-inputgroup>.p-inputwrapper:first-child>.p-component,.p-inputgroup>.p-inputwrapper:first-child>.p-component>.p-inputtext{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup .p-float-label:first-child input{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup-addon:last-child,.p-inputgroup button:last-child,.p-inputgroup input:last-child,.p-inputgroup>.p-inputwrapper:last-child>.p-component,.p-inputgroup>.p-inputwrapper:last-child>.p-component>.p-inputtext{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputgroup .p-float-label:last-child input{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-fluid .p-inputgroup .p-button{width:auto}.p-fluid .p-inputgroup .p-button.p-button-icon-only{width:3rem}.p-icon-field-left .p-input-icon:first-of-type{left:.75rem;color:#6b7280}.p-icon-field-right .p-input-icon:last-of-type{right:.75rem;color:#6b7280}p-inputmask.ng-dirty.ng-invalid>.p-inputtext{border-color:#e24c4c}p-inputmask.p-inputmask-clearable .p-inputtext{padding-right:2.5rem}p-inputmask.p-inputmask-clearable .p-inputmask-clear-icon{color:#6b7280;right:.75rem}p-inputnumber.ng-dirty.ng-invalid>.p-inputnumber>.p-inputtext{border-color:#e24c4c}p-inputnumber.p-inputnumber-clearable .p-inputnumber-input{padding-right:2.5rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-clear-icon{color:#6b7280;right:.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-stacked .p-inputnumber-clear-icon{right:3.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-horizontal .p-inputnumber-clear-icon{right:3.75rem}.p-inputswitch{width:3rem;height:1.75rem}.p-inputswitch .p-inputswitch-slider{background:#d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:30px}.p-inputswitch .p-inputswitch-slider:before{background:#fff;width:1.25rem;height:1.25rem;left:.25rem;margin-top:-.625rem;border-radius:50%;transition-duration:.2s}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{transform:translate(1.25rem)}.p-inputswitch.p-focus .p-inputswitch-slider{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-inputswitch:not(.p-disabled):hover .p-inputswitch-slider{background:#b7bcc5}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider{background:#3b82f6}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{background:#fff}.p-inputswitch.p-inputswitch-checked:not(.p-disabled):hover .p-inputswitch-slider{background:#2563eb}p-inputswitch.ng-dirty.ng-invalid>.p-inputswitch>.p-inputswitch-slider{border-color:#e24c4c}.p-inputtext{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;background:#fff;padding:.75rem;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:6px}.p-inputtext:enabled:hover{border-color:#3b82f6}.p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-inputtext.ng-dirty.ng-invalid{border-color:#e24c4c}.p-inputtext.p-inputtext-sm{font-size:.875rem;padding:.65625rem}.p-inputtext.p-inputtext-lg{font-size:1.25rem;padding:.9375rem}.p-float-label>label{left:.75rem;color:#6b7280;transition-duration:.2s}.p-float-label>.ng-invalid.ng-dirty+label{color:#e24c4c}.p-input-icon-left>.p-icon-wrapper.p-icon,.p-input-icon-left>i:first-of-type{left:.75rem;color:#6b7280}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.p-input-icon-left.p-float-label>label{left:2.5rem}.p-input-icon-right>.p-icon-wrapper,.p-input-icon-right>i:last-of-type{right:.75rem;color:#6b7280}.p-input-icon-right>.p-inputtext{padding-right:2.5rem}.p-icon-field-left>.p-inputtext{padding-left:2.5rem}.p-icon-field-left.p-float-label>label{left:2.5rem}.p-icon-field-right>.p-inputtext{padding-right:2.5rem}::-webkit-input-placeholder{color:#6b7280}:-moz-placeholder{color:#6b7280}::-moz-placeholder{color:#6b7280}:-ms-input-placeholder{color:#6b7280}.p-input-filled .p-inputtext{background-color:#f3f4f6}.p-input-filled .p-inputtext:enabled:hover{background-color:#f3f4f6}.p-input-filled .p-inputtext:enabled:focus{background-color:#fff}.p-inputtext-sm .p-inputtext{font-size:.875rem;padding:.65625rem}.p-inputtext-lg .p-inputtext{font-size:1.25rem;padding:.9375rem}.p-listbox{background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-listbox .p-listbox-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-listbox .p-listbox-header .p-listbox-filter{padding-right:1.75rem}.p-listbox .p-listbox-header .p-listbox-filter-icon{right:.75rem;color:#6b7280}.p-listbox .p-listbox-header .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list{padding:.75rem 0;outline:0 none}.p-listbox .p-listbox-list .p-listbox-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-listbox .p-listbox-list .p-listbox-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-listbox .p-listbox-list .p-listbox-item .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list .p-listbox-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-listbox .p-listbox-list .p-listbox-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-listbox:not(.p-disabled) .p-listbox-item.p-highlight.p-focus{background:#3b82f63d}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-listbox.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}p-listbox.ng-dirty.ng-invalid>.p-listbox{border-color:#e24c4c}.p-multiselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-multiselect:not(.p-disabled):hover{border-color:#3b82f6}.p-multiselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-multiselect .p-multiselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-multiselect .p-multiselect-label.p-placeholder{color:#6b7280}.p-multiselect.p-multiselect-chip .p-multiselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-multiselect.p-multiselect-chip .p-multiselect-token .p-multiselect-token-icon{margin-left:.5rem}.p-multiselect .p-multiselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputwrapper-filled.p-multiselect.p-multiselect-chip .p-multiselect-label{padding:.375rem .75rem}.p-multiselect-clearable .p-multiselect-label-container{padding-right:1.75rem}.p-multiselect-clearable .p-multiselect-clear-icon{color:#6b7280;right:3rem}.p-multiselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-multiselect-panel .p-multiselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext{padding-right:1.75rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon{right:.75rem;color:#6b7280}.p-multiselect-panel .p-multiselect-header .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-close{margin-left:.5rem;width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-multiselect-panel .p-multiselect-items{padding:.75rem 0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus{background:#3b82f63d}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-items .p-multiselect-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-multiselect-panel .p-multiselect-items .p-multiselect-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-multiselect{background:#f3f4f6}.p-input-filled .p-multiselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-multiselect:not(.p-disabled).p-focus{background-color:#fff}p-multiselect.ng-dirty.ng-invalid>.p-multiselect{border-color:#e24c4c}p-password.ng-invalid.ng-dirty>.p-password>.p-inputtext{border-color:#e24c4c}.p-password-panel{padding:1.25rem;background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-password-panel .p-password-meter{margin-bottom:.5rem;background:#e5e7eb}.p-password-panel .p-password-meter .p-password-strength.weak{background:#ea5455}.p-password-panel .p-password-meter .p-password-strength.medium{background:#ff9f42}.p-password-panel .p-password-meter .p-password-strength.strong{background:#29c76f}p-password.p-password-clearable .p-password-input{padding-right:2.5rem}p-password.p-password-clearable .p-password-clear-icon{color:#6b7280;right:.75rem}p-password.p-password-clearable.p-password-mask .p-password-input{padding-right:4.25rem}p-password.p-password-clearable.p-password-mask .p-password-clear-icon{color:#6b7280;right:2.5rem}.p-radiobutton{width:22px;height:22px}.p-radiobutton .p-radiobutton-box{border:2px solid #d1d5db;background:#fff;width:22px;height:22px;color:#4b5563;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-radiobutton .p-radiobutton-box:not(.p-disabled):not(.p-highlight):hover{border-color:#3b82f6}.p-radiobutton .p-radiobutton-box:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-radiobutton .p-radiobutton-box .p-radiobutton-icon{width:12px;height:12px;transition-duration:.2s;background-color:#fff}.p-radiobutton .p-radiobutton-box.p-highlight{border-color:#3b82f6;background:#3b82f6}.p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}p-radiobutton.ng-dirty.ng-invalid>.p-radiobutton>.p-radiobutton-box{border-color:#e24c4c}.p-input-filled .p-radiobutton .p-radiobutton-box{background-color:#f3f4f6}.p-input-filled .p-radiobutton .p-radiobutton-box:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight{background:#3b82f6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{background:#1d4ed8}.p-radiobutton-label{margin-left:.5rem}.p-rating{gap:.5rem}.p-rating .p-rating-item .p-rating-icon{color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;font-size:1.143rem}.p-rating .p-rating-item .p-rating-icon.p-icon{width:1.143rem;height:1.143rem}.p-rating .p-rating-item .p-rating-icon.p-rating-cancel{color:#ea5455}.p-rating .p-rating-item.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-rating .p-rating-item.p-rating-item-active .p-rating-icon{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon.p-rating-cancel{color:#e73d3e}.p-selectbutton .p-button{background:#fff;border:1px solid #d1d5db;color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-selectbutton .p-button .p-button-icon-left,.p-selectbutton .p-button .p-button-icon-right{color:#6b7280}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#374151}.p-selectbutton .p-button.p-highlight{background:#3b82f6;border-color:#3b82f6;color:#fff}.p-selectbutton .p-button.p-highlight .p-button-icon-left,.p-selectbutton .p-button.p-highlight .p-button-icon-right{color:#fff}.p-selectbutton .p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-selectbutton .p-button.p-highlight:hover .p-button-icon-left,.p-selectbutton .p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border-color:#e24c4c}.p-slider{background:#e5e7eb;border:0 none;border-radius:6px}.p-slider.p-slider-horizontal{height:.286rem}.p-slider.p-slider-horizontal .p-slider-handle{margin-top:-.5715rem;margin-left:-.5715rem}.p-slider.p-slider-vertical{width:.286rem}.p-slider.p-slider-vertical .p-slider-handle{margin-left:-.5715rem;margin-bottom:-.5715rem}.p-slider .p-slider-handle{height:1.143rem;width:1.143rem;background:#fff;border:2px solid #3B82F6;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-slider .p-slider-handle:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-slider .p-slider-range{background:#3b82f6}.p-slider:not(.p-disabled) .p-slider-handle:hover{background:#3b82f6;border-color:#3b82f6}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,left .2s}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-range{transition:width .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,bottom .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-range{transition:height .2s}.p-togglebutton.p-button{background:#fff;border:1px solid #d1d5db;color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-togglebutton.p-button .p-button-icon-left,.p-togglebutton.p-button .p-button-icon-right{color:#6b7280}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#374151}.p-togglebutton.p-button.p-highlight{background:#3b82f6;border-color:#3b82f6;color:#fff}.p-togglebutton.p-button.p-highlight .p-button-icon-left,.p-togglebutton.p-button.p-highlight .p-button-icon-right{color:#fff}.p-togglebutton.p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-togglebutton.p-button.p-highlight:hover .p-button-icon-left,.p-togglebutton.p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-togglebutton.ng-dirty.ng-invalid>.p-togglebutton.p-button{border-color:#e24c4c}.p-treeselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-treeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-treeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-treeselect .p-treeselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-treeselect .p-treeselect-label.p-placeholder{color:#6b7280}.p-treeselect.p-treeselect-chip .p-treeselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-treeselect .p-treeselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}p-treeselect.ng-invalid.ng-dirty>.p-treeselect{border-color:#e24c4c}.p-inputwrapper-filled .p-treeselect.p-treeselect-chip .p-treeselect-label{padding:.375rem .75rem}.p-treeselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-treeselect-panel .p-treeselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container{margin-right:.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter{padding-right:1.75rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter-icon{right:.75rem;color:#6b7280}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter{padding-right:3.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter-clear-icon{right:2.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-close{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treeselect-panel .p-treeselect-items-wrapper .p-tree{border:0 none}.p-treeselect-panel .p-treeselect-items-wrapper .p-treeselect-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-treeselect{background:#f3f4f6}.p-input-filled .p-treeselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-treeselect:not(.p-disabled).p-focus{background-color:#fff}p-treeselect.p-treeselect-clearable .p-treeselect-label-container{padding-right:1.75rem}p-treeselect.p-treeselect-clearable .p-treeselect-clear-icon{color:#6b7280;right:3rem}.p-button{color:#fff;background:#3b82f6;border:1px solid #3B82F6;padding:.75rem 1.25rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-button:not(:disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-button:not(:disabled):active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.p-button.p-button-outlined{background-color:transparent;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:not(:disabled):active{background:#3b82f629;color:#3b82f6;border:1px solid}.p-button.p-button-outlined.p-button-plain{color:#6b7280;border-color:#6b7280}.p-button.p-button-outlined.p-button-plain:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-button.p-button-outlined.p-button-plain:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-button.p-button-text{background-color:transparent;color:#3b82f6;border-color:transparent}.p-button.p-button-text:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border-color:transparent}.p-button.p-button-text:not(:disabled):active{background:#3b82f629;color:#3b82f6;border-color:transparent}.p-button.p-button-text.p-button-plain{color:#6b7280}.p-button.p-button-text.p-button-plain:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-button.p-button-text.p-button-plain:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-button .p-button-label{transition-duration:.2s}.p-button .p-button-icon-left{margin-right:.5rem}.p-button .p-button-icon-right{margin-left:.5rem}.p-button .p-button-icon-bottom{margin-top:.5rem}.p-button .p-button-icon-top{margin-bottom:.5rem}.p-button .p-badge{margin-left:.5rem;min-width:1rem;height:1rem;line-height:1rem;color:#3b82f6;background-color:#fff}.p-button.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-button.p-button-rounded{border-radius:2rem}.p-button.p-button-icon-only{width:3rem;padding:.75rem 0}.p-button.p-button-icon-only .p-button-icon-left,.p-button.p-button-icon-only .p-button-icon-right{margin:0}.p-button.p-button-icon-only.p-button-rounded{border-radius:50%;height:3rem}.p-button.p-button-sm{font-size:.875rem;padding:.65625rem 1.09375rem}.p-button.p-button-sm .p-button-icon{font-size:.875rem}.p-button.p-button-lg{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-button.p-button-lg .p-button-icon{font-size:1.25rem}.p-button.p-button-loading-label-only .p-button-label{margin-left:.5rem}.p-button.p-button-loading-label-only .p-button-loading-icon{margin-right:0}.p-fluid .p-button{width:100%}.p-fluid .p-button-icon-only{width:3rem}.p-fluid .p-buttonset{display:flex}.p-fluid .p-buttonset .p-button{flex:1}.p-button.p-button-secondary,.p-buttonset.p-button-secondary>.p-button,.p-splitbutton.p-button-secondary>.p-button{color:#fff;background:#64748b;border:1px solid #64748b}.p-button.p-button-secondary:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):hover{background:#475569;color:#fff;border-color:#475569}.p-button.p-button-secondary:not(:disabled):focus,.p-buttonset.p-button-secondary>.p-button:not(:disabled):focus,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #e2e8f0}.p-button.p-button-secondary:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):active{background:#334155;color:#fff;border-color:#334155}.p-button.p-button-secondary.p-button-outlined,.p-buttonset.p-button-secondary>.p-button.p-button-outlined,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined{background-color:transparent;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:not(:disabled):hover{background:#64748b0a;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:not(:disabled):active{background:#64748b29;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-text,.p-buttonset.p-button-secondary>.p-button.p-button-text,.p-splitbutton.p-button-secondary>.p-button.p-button-text{background-color:transparent;color:#64748b;border-color:transparent}.p-button.p-button-secondary.p-button-text:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button.p-button-text:not(:disabled):hover{background:#64748b0a;border-color:transparent;color:#64748b}.p-button.p-button-secondary.p-button-text:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button.p-button-text:not(:disabled):active{background:#64748b29;border-color:transparent;color:#64748b}.p-button.p-button-info,.p-buttonset.p-button-info>.p-button,.p-splitbutton.p-button-info>.p-button{color:#fff;background:#0ea5e9;border:1px solid #0ea5e9}.p-button.p-button-info:not(:disabled):hover,.p-buttonset.p-button-info>.p-button:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button:not(:disabled):hover{background:#0284c7;color:#fff;border-color:#0284c7}.p-button.p-button-info:not(:disabled):focus,.p-buttonset.p-button-info>.p-button:not(:disabled):focus,.p-splitbutton.p-button-info>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #bfdbfe}.p-button.p-button-info:not(:disabled):active,.p-buttonset.p-button-info>.p-button:not(:disabled):active,.p-splitbutton.p-button-info>.p-button:not(:disabled):active{background:#0369a1;color:#fff;border-color:#0369a1}.p-button.p-button-info.p-button-outlined,.p-buttonset.p-button-info>.p-button.p-button-outlined,.p-splitbutton.p-button-info>.p-button.p-button-outlined{background-color:transparent;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-info>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button.p-button-outlined:not(:disabled):hover{background:#0ea5e90a;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-info>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-info>.p-button.p-button-outlined:not(:disabled):active{background:#0ea5e929;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-text,.p-buttonset.p-button-info>.p-button.p-button-text,.p-splitbutton.p-button-info>.p-button.p-button-text{background-color:transparent;color:#0ea5e9;border-color:transparent}.p-button.p-button-info.p-button-text:not(:disabled):hover,.p-buttonset.p-button-info>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button.p-button-text:not(:disabled):hover{background:#0ea5e90a;border-color:transparent;color:#0ea5e9}.p-button.p-button-info.p-button-text:not(:disabled):active,.p-buttonset.p-button-info>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-info>.p-button.p-button-text:not(:disabled):active{background:#0ea5e929;border-color:transparent;color:#0ea5e9}.p-button.p-button-success,.p-buttonset.p-button-success>.p-button,.p-splitbutton.p-button-success>.p-button{color:#fff;background:#22c55e;border:1px solid #22c55e}.p-button.p-button-success:not(:disabled):hover,.p-buttonset.p-button-success>.p-button:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button:not(:disabled):hover{background:#16a34a;color:#fff;border-color:#16a34a}.p-button.p-button-success:not(:disabled):focus,.p-buttonset.p-button-success>.p-button:not(:disabled):focus,.p-splitbutton.p-button-success>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #bbf7d0}.p-button.p-button-success:not(:disabled):active,.p-buttonset.p-button-success>.p-button:not(:disabled):active,.p-splitbutton.p-button-success>.p-button:not(:disabled):active{background:#15803d;color:#fff;border-color:#15803d}.p-button.p-button-success.p-button-outlined,.p-buttonset.p-button-success>.p-button.p-button-outlined,.p-splitbutton.p-button-success>.p-button.p-button-outlined{background-color:transparent;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-success>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button.p-button-outlined:not(:disabled):hover{background:#22c55e0a;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-success>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-success>.p-button.p-button-outlined:not(:disabled):active{background:#22c55e29;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-text,.p-buttonset.p-button-success>.p-button.p-button-text,.p-splitbutton.p-button-success>.p-button.p-button-text{background-color:transparent;color:#22c55e;border-color:transparent}.p-button.p-button-success.p-button-text:not(:disabled):hover,.p-buttonset.p-button-success>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button.p-button-text:not(:disabled):hover{background:#22c55e0a;border-color:transparent;color:#22c55e}.p-button.p-button-success.p-button-text:not(:disabled):active,.p-buttonset.p-button-success>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-success>.p-button.p-button-text:not(:disabled):active{background:#22c55e29;border-color:transparent;color:#22c55e}.p-button.p-button-warning,.p-buttonset.p-button-warning>.p-button,.p-splitbutton.p-button-warning>.p-button{color:#fff;background:#f97316;border:1px solid #f97316}.p-button.p-button-warning:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button:not(:disabled):hover{background:#ea580c;color:#fff;border-color:#ea580c}.p-button.p-button-warning:not(:disabled):focus,.p-buttonset.p-button-warning>.p-button:not(:disabled):focus,.p-splitbutton.p-button-warning>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #fde68a}.p-button.p-button-warning:not(:disabled):active,.p-buttonset.p-button-warning>.p-button:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button:not(:disabled):active{background:#c2410c;color:#fff;border-color:#c2410c}.p-button.p-button-warning.p-button-outlined,.p-buttonset.p-button-warning>.p-button.p-button-outlined,.p-splitbutton.p-button-warning>.p-button.p-button-outlined{background-color:transparent;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:not(:disabled):hover{background:#f973160a;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-warning>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:not(:disabled):active{background:#f9731629;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-text,.p-buttonset.p-button-warning>.p-button.p-button-text,.p-splitbutton.p-button-warning>.p-button.p-button-text{background-color:transparent;color:#f97316;border-color:transparent}.p-button.p-button-warning.p-button-text:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button.p-button-text:not(:disabled):hover{background:#f973160a;border-color:transparent;color:#f97316}.p-button.p-button-warning.p-button-text:not(:disabled):active,.p-buttonset.p-button-warning>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button.p-button-text:not(:disabled):active{background:#f9731629;border-color:transparent;color:#f97316}.p-button.p-button-help,.p-buttonset.p-button-help>.p-button,.p-splitbutton.p-button-help>.p-button{color:#fff;background:#a855f7;border:1px solid #a855f7}.p-button.p-button-help:not(:disabled):hover,.p-buttonset.p-button-help>.p-button:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button:not(:disabled):hover{background:#9333ea;color:#fff;border-color:#9333ea}.p-button.p-button-help:not(:disabled):focus,.p-buttonset.p-button-help>.p-button:not(:disabled):focus,.p-splitbutton.p-button-help>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #e9d5ff}.p-button.p-button-help:not(:disabled):active,.p-buttonset.p-button-help>.p-button:not(:disabled):active,.p-splitbutton.p-button-help>.p-button:not(:disabled):active{background:#7e22ce;color:#fff;border-color:#7e22ce}.p-button.p-button-help.p-button-outlined,.p-buttonset.p-button-help>.p-button.p-button-outlined,.p-splitbutton.p-button-help>.p-button.p-button-outlined{background-color:transparent;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-help>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button.p-button-outlined:not(:disabled):hover{background:#a855f70a;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-help>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-help>.p-button.p-button-outlined:not(:disabled):active{background:#a855f729;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-text,.p-buttonset.p-button-help>.p-button.p-button-text,.p-splitbutton.p-button-help>.p-button.p-button-text{background-color:transparent;color:#a855f7;border-color:transparent}.p-button.p-button-help.p-button-text:not(:disabled):hover,.p-buttonset.p-button-help>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button.p-button-text:not(:disabled):hover{background:#a855f70a;border-color:transparent;color:#a855f7}.p-button.p-button-help.p-button-text:not(:disabled):active,.p-buttonset.p-button-help>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-help>.p-button.p-button-text:not(:disabled):active{background:#a855f729;border-color:transparent;color:#a855f7}.p-button.p-button-danger,.p-buttonset.p-button-danger>.p-button,.p-splitbutton.p-button-danger>.p-button{color:#fff;background:#ef4444;border:1px solid #ef4444}.p-button.p-button-danger:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button:not(:disabled):hover{background:#dc2626;color:#fff;border-color:#dc2626}.p-button.p-button-danger:not(:disabled):focus,.p-buttonset.p-button-danger>.p-button:not(:disabled):focus,.p-splitbutton.p-button-danger>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #fecaca}.p-button.p-button-danger:not(:disabled):active,.p-buttonset.p-button-danger>.p-button:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button:not(:disabled):active{background:#b91c1c;color:#fff;border-color:#b91c1c}.p-button.p-button-danger.p-button-outlined,.p-buttonset.p-button-danger>.p-button.p-button-outlined,.p-splitbutton.p-button-danger>.p-button.p-button-outlined{background-color:transparent;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:not(:disabled):hover{background:#ef44440a;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-danger>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:not(:disabled):active{background:#ef444429;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-text,.p-buttonset.p-button-danger>.p-button.p-button-text,.p-splitbutton.p-button-danger>.p-button.p-button-text{background-color:transparent;color:#ef4444;border-color:transparent}.p-button.p-button-danger.p-button-text:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button.p-button-text:not(:disabled):hover{background:#ef44440a;border-color:transparent;color:#ef4444}.p-button.p-button-danger.p-button-text:not(:disabled):active,.p-buttonset.p-button-danger>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button.p-button-text:not(:disabled):active{background:#ef444429;border-color:transparent;color:#ef4444}.p-button.p-button-link{color:#1d4ed8;background:transparent;border:transparent}.p-button.p-button-link:not(:disabled):hover{background:transparent;color:#1d4ed8;border-color:transparent}.p-button.p-button-link:not(:disabled):hover .p-button-label{text-decoration:underline}.p-button.p-button-link:not(:disabled):focus{background:transparent;box-shadow:0 0 0 .2rem #bfdbfe;border-color:transparent}.p-button.p-button-link:not(:disabled):active{background:transparent;color:#1d4ed8;border-color:transparent}.p-speeddial-button.p-button.p-button-icon-only{width:4rem;height:4rem}.p-speeddial-button.p-button.p-button-icon-only .p-button-icon{font-size:1.3rem}.p-speeddial-button.p-button.p-button-icon-only .p-icon{width:1.3rem;height:1.3rem}.p-speeddial-list{outline:0 none}.p-speeddial-item.p-focus>.p-speeddial-action{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-speeddial-action{width:3rem;height:3rem;background:#4b5563;color:#fff}.p-speeddial-action:hover{background:#022354;color:#fff}.p-speeddial-direction-up .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-up .p-speeddial-item:first-child{margin-bottom:.5rem}.p-speeddial-direction-down .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-down .p-speeddial-item:first-child{margin-top:.5rem}.p-speeddial-direction-left .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-left .p-speeddial-item:first-child{margin-right:.5rem}.p-speeddial-direction-right .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-right .p-speeddial-item:first-child{margin-left:.5rem}.p-speeddial-circle .p-speeddial-item,.p-speeddial-semi-circle .p-speeddial-item,.p-speeddial-quarter-circle .p-speeddial-item{margin:0}.p-speeddial-circle .p-speeddial-item:first-child,.p-speeddial-circle .p-speeddial-item:last-child,.p-speeddial-semi-circle .p-speeddial-item:first-child,.p-speeddial-semi-circle .p-speeddial-item:last-child,.p-speeddial-quarter-circle .p-speeddial-item:first-child,.p-speeddial-quarter-circle .p-speeddial-item:last-child{margin:0}.p-speeddial-mask{background-color:#0006}.p-splitbutton{border-radius:6px}.p-splitbutton.p-button-outlined>.p-button{background-color:transparent;color:#3b82f6;border:1px solid}.p-splitbutton.p-button-outlined>.p-button:not(:disabled):hover{background:#3b82f60a;color:#3b82f6}.p-splitbutton.p-button-outlined>.p-button:not(:disabled):active{background:#3b82f629;color:#3b82f6}.p-splitbutton.p-button-outlined.p-button-plain>.p-button{color:#6b7280;border-color:#6b7280}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-splitbutton.p-button-text>.p-button{background-color:transparent;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:not(:disabled):active{background:#3b82f629;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text.p-button-plain>.p-button{color:#6b7280}.p-splitbutton.p-button-text.p-button-plain>.p-button:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-splitbutton.p-button-text.p-button-plain>.p-button:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-splitbutton.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-splitbutton.p-button-rounded{border-radius:2rem}.p-splitbutton.p-button-rounded>.p-button{border-radius:2rem}.p-splitbutton.p-button-sm>.p-button{font-size:.875rem;padding:.65625rem 1.09375rem}.p-splitbutton.p-button-sm>.p-button .p-button-icon{font-size:.875rem}.p-splitbutton.p-button-lg>.p-button{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-splitbutton.p-button-lg>.p-button .p-button-icon{font-size:1.25rem}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button{background-color:transparent;color:#64748b;border:1px solid}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(:disabled):hover{background:#64748b0a;color:#64748b}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(:disabled):active{background:#64748b29;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button{background-color:transparent;color:#64748b;border-color:transparent}.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(:disabled):hover{background:#64748b0a;border-color:transparent;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(:disabled):active{background:#64748b29;border-color:transparent;color:#64748b}.p-splitbutton.p-button-info.p-button-outlined>.p-button{background-color:transparent;color:#0ea5e9;border:1px solid}.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(:disabled):hover{background:#0ea5e90a;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(:disabled):active{background:#0ea5e929;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-text>.p-button{background-color:transparent;color:#0ea5e9;border-color:transparent}.p-splitbutton.p-button-info.p-button-text>.p-button:not(:disabled):hover{background:#0ea5e90a;border-color:transparent;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-text>.p-button:not(:disabled):active{background:#0ea5e929;border-color:transparent;color:#0ea5e9}.p-splitbutton.p-button-success.p-button-outlined>.p-button{background-color:transparent;color:#22c55e;border:1px solid}.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(:disabled):hover{background:#22c55e0a;color:#22c55e}.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(:disabled):active{background:#22c55e29;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button{background-color:transparent;color:#22c55e;border-color:transparent}.p-splitbutton.p-button-success.p-button-text>.p-button:not(:disabled):hover{background:#22c55e0a;border-color:transparent;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button:not(:disabled):active{background:#22c55e29;border-color:transparent;color:#22c55e}.p-splitbutton.p-button-warning.p-button-outlined>.p-button{background-color:transparent;color:#f97316;border:1px solid}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(:disabled):hover{background:#f973160a;color:#f97316}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(:disabled):active{background:#f9731629;color:#f97316}.p-splitbutton.p-button-warning.p-button-text>.p-button{background-color:transparent;color:#f97316;border-color:transparent}.p-splitbutton.p-button-warning.p-button-text>.p-button:not(:disabled):hover{background:#f973160a;border-color:transparent;color:#f97316}.p-splitbutton.p-button-warning.p-button-text>.p-button:not(:disabled):active{background:#f9731629;border-color:transparent;color:#f97316}.p-splitbutton.p-button-help.p-button-outlined>.p-button{background-color:transparent;color:#a855f7;border:1px solid}.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(:disabled):hover{background:#a855f70a;color:#a855f7}.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(:disabled):active{background:#a855f729;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button{background-color:transparent;color:#a855f7;border-color:transparent}.p-splitbutton.p-button-help.p-button-text>.p-button:not(:disabled):hover{background:#a855f70a;border-color:transparent;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button:not(:disabled):active{background:#a855f729;border-color:transparent;color:#a855f7}.p-splitbutton.p-button-danger.p-button-outlined>.p-button{background-color:transparent;color:#ef4444;border:1px solid}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(:disabled):hover{background:#ef44440a;color:#ef4444}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(:disabled):active{background:#ef444429;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button{background-color:transparent;color:#ef4444;border-color:transparent}.p-splitbutton.p-button-danger.p-button-text>.p-button:not(:disabled):hover{background:#ef44440a;border-color:transparent;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button:not(:disabled):active{background:#ef444429;border-color:transparent;color:#ef4444}.p-carousel .p-carousel-content .p-carousel-prev,.p-carousel .p-carousel-content .p-carousel-next{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin:.5rem}.p-carousel .p-carousel-content .p-carousel-prev:enabled:hover,.p-carousel .p-carousel-content .p-carousel-next:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-carousel .p-carousel-content .p-carousel-prev:focus-visible,.p-carousel .p-carousel-content .p-carousel-next:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-carousel .p-carousel-indicators{padding:1rem}.p-carousel .p-carousel-indicators .p-carousel-indicator{margin-right:.5rem;margin-bottom:.5rem}.p-carousel .p-carousel-indicators .p-carousel-indicator button{background-color:#d1d5db;width:2rem;height:.5rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:0}.p-carousel .p-carousel-indicators .p-carousel-indicator button:hover{background:#9ca3af}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-datatable .p-paginator-top,.p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-datatable .p-datatable-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb;transition:box-shadow .2s}.p-datatable .p-datatable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb}.p-datatable .p-sortable-column .p-sortable-column-icon{color:#374151;margin-left:.5rem}.p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#eff6ff;margin-left:.5rem}.p-datatable .p-sortable-column:not(.p-highlight):hover{background:#f3f4f6;color:#374151}.p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#374151}.p-datatable .p-sortable-column.p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover{background:#eff6ff;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column:focus-visible{box-shadow:inset 0 0 0 .15rem #bfdbfe;outline:0 none}.p-datatable .p-datatable-tbody>tr{background:#fff;color:#4b5563;transition:box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save{margin-right:.5rem}.p-datatable .p-datatable-tbody>tr:focus-visible{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-datatable .p-datatable-tbody>tr.p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #eff6ff}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #eff6ff}.p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-datatable .p-column-resizer-helper{background:#3b82f6}.p-datatable .p-datatable-scrollable-header,.p-datatable .p-datatable-scrollable-footer{background:#f9fafb}.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#f9fafb}.p-datatable .p-datatable-loading-icon{font-size:2rem}.p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-footer{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-paginator-top{border-width:0 1px 0 1px}.p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-width:1px 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td{border-width:0 0 0 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td:last-child{border-width:0 1px 0 1px}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:#f8f8fa}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight .p-row-toggler{color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight .p-row-toggler:hover{color:#1d4ed8}.p-datatable.p-datatable-sm .p-datatable-header{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-footer{padding:.5rem}.p-datatable.p-datatable-lg .p-datatable-header{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-footer{padding:1.25rem}.p-dataview .p-paginator-top,.p-dataview .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-dataview .p-dataview-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-dataview .p-dataview-content{background:#fff;color:#4b5563;border:0 none;padding:0}.p-dataview .p-dataview-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-dataview .p-dataview-loading-icon{font-size:2rem}.p-dataview .p-dataview-emptymessage{padding:1.25rem}.p-column-filter-row .p-column-filter-menu-button,.p-column-filter-row .p-column-filter-clear-button{margin-left:.5rem}.p-column-filter-menu-button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-menu-button:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-column-filter-menu-button.p-column-filter-menu-button-open,.p-column-filter-menu-button.p-column-filter-menu-button-open:hover{background:#f3f4f6;color:#374151}.p-column-filter-menu-button.p-column-filter-menu-button-active,.p-column-filter-menu-button.p-column-filter-menu-button-active:hover{background:#eff6ff;color:#1d4ed8}.p-column-filter-menu-button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-clear-button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-clear-button:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-column-filter-clear-button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-overlay{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a;min-width:12.5rem}.p-column-filter-overlay .p-column-filter-row-items{padding:.75rem 0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-column-filter-overlay-menu .p-column-filter-operator{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-column-filter-overlay-menu .p-column-filter-constraint{padding:1.25rem;border-bottom:1px solid #e5e7eb}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-matchmode-dropdown{margin-bottom:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-remove-button{margin-top:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint:last-child{border-bottom:0 none}.p-column-filter-overlay-menu .p-column-filter-add-rule{padding:.75rem 1.25rem}.p-column-filter-overlay-menu .p-column-filter-buttonbar,.p-orderlist .p-orderlist-controls{padding:1.25rem}.p-orderlist .p-orderlist-controls .p-button{margin-bottom:.5rem}.p-orderlist .p-orderlist-list-container{background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;outline-color:transparent}.p-orderlist .p-orderlist-list-container.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-orderlist .p-orderlist-header{color:#374151;padding:1.25rem;font-weight:700}.p-orderlist .p-orderlist-header .p-orderlist-title{font-weight:700}.p-orderlist .p-orderlist-filter-container{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-bottom:0 none}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-input{padding-right:1.75rem}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-icon{right:.75rem;color:#6b7280}.p-orderlist .p-orderlist-list{color:#4b5563;padding:.75rem 0;outline:0 none}.p-orderlist .p-orderlist-list:not(:first-child){border-top:1px solid #e5e7eb}.p-orderlist .p-orderlist-list .p-orderlist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s}.p-orderlist .p-orderlist-list .p-orderlist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-orderlist .p-orderlist-list .p-orderlist-item.p-focus{color:#4b5563;background:#e5e7eb}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight.p-focus{background:#3b82f63d}.p-orderlist .p-orderlist-list .p-orderlist-empty-message{padding:.75rem 1.25rem;color:#4b5563}.p-orderlist .p-orderlist-list:not(.cdk-drop-list-dragging) .p-orderlist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(2n){background:#f8f8fa}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(2n):hover{background:#f3f4f6}.p-orderlist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#4b5563;background:#fff;margin:0}.p-organizationchart .p-organizationchart-node-content.p-organizationchart-selectable-node:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-organizationchart .p-organizationchart-node-content.p-highlight{background:#eff6ff;color:#1d4ed8}.p-organizationchart .p-organizationchart-node-content.p-highlight .p-node-toggler i{color:#70aeff}.p-organizationchart .p-organizationchart-line-down{background:#e5e7eb}.p-organizationchart .p-organizationchart-line-left{border-right:1px solid #e5e7eb;border-color:#e5e7eb}.p-organizationchart .p-organizationchart-line-top{border-top:1px solid #e5e7eb;border-color:#e5e7eb}.p-organizationchart .p-organizationchart-node-content{border:1px solid #e5e7eb;background:#fff;color:#4b5563;padding:1.25rem}.p-organizationchart .p-organizationchart-node-content .p-node-toggler{background:inherit;color:inherit;border-radius:50%}.p-organizationchart .p-organizationchart-node-content .p-node-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-paginator{background:#fff;color:#6b7280;border:solid #f3f4f6;border-width:0;padding:.5rem 1rem;border-radius:6px}.p-paginator .p-paginator-first,.p-paginator .p-paginator-prev,.p-paginator .p-paginator-next,.p-paginator .p-paginator-last{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:transparent;color:#374151}.p-paginator .p-paginator-first{border-top-left-radius:50%;border-bottom-left-radius:50%}.p-paginator .p-paginator-last{border-top-right-radius:50%;border-bottom-right-radius:50%}.p-paginator .p-dropdown{margin-left:.5rem;margin-right:.5rem;height:3rem}.p-paginator .p-dropdown .p-dropdown-label{padding-right:0}.p-paginator .p-paginator-page-input{margin-left:.5rem;margin-right:.5rem}.p-paginator .p-paginator-page-input .p-inputtext{max-width:3rem}.p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;padding:0 .5rem}.p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:#eff6ff;border-color:#eff6ff;color:#1d4ed8}.p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f3f4f6;border-color:transparent;color:#374151}.p-picklist .p-picklist-buttons{padding:1.25rem}.p-picklist .p-picklist-buttons .p-button{margin-bottom:.5rem}.p-picklist .p-picklist-list-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;outline-color:transparent}.p-picklist .p-picklist-list-wrapper.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-picklist .p-picklist-header{color:#374151;padding:1.25rem;font-weight:700}.p-picklist .p-picklist-header .p-picklist-title{font-weight:700}.p-picklist .p-picklist-filter-container{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-bottom:0 none}.p-picklist .p-picklist-filter-container .p-picklist-filter-input{padding-right:1.75rem}.p-picklist .p-picklist-filter-container .p-picklist-filter-icon{right:.75rem;color:#6b7280}.p-picklist .p-picklist-list{color:#4b5563;padding:.75rem 0;outline:0 none}.p-picklist .p-picklist-list:not(:first-child){border-top:1px solid #e5e7eb}.p-picklist .p-picklist-list .p-picklist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s}.p-picklist .p-picklist-list .p-picklist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-picklist .p-picklist-list .p-picklist-item.p-focus{color:#4b5563;background:#e5e7eb}.p-picklist .p-picklist-list .p-picklist-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-picklist .p-picklist-list .p-picklist-item.p-highlight.p-focus{background:#3b82f63d}.p-picklist .p-picklist-list .p-picklist-empty-message{padding:.75rem 1.25rem;color:#4b5563}.p-picklist .p-picklist-list:not(.cdk-drop-list-dragging) .p-picklist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(2n){background:#f8f8fa}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(2n):hover{background:#f3f4f6}.p-picklist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#4b5563;background:#fff;margin:0}.p-timeline .p-timeline-event-marker{border:2px solid #3B82F6;border-radius:50%;width:1rem;height:1rem;background-color:#fff}.p-timeline .p-timeline-event-connector{background-color:#e5e7eb}.p-timeline.p-timeline-vertical .p-timeline-event-opposite,.p-timeline.p-timeline-vertical .p-timeline-event-content{padding:0 1rem}.p-timeline.p-timeline-vertical .p-timeline-event-connector{width:2px}.p-timeline.p-timeline-horizontal .p-timeline-event-opposite,.p-timeline.p-timeline-horizontal .p-timeline-event-content{padding:1rem 0}.p-timeline.p-timeline-horizontal .p-timeline-event-connector{height:2px}.p-tree{border:1px solid #e5e7eb;background:#fff;color:#4b5563;padding:1.25rem;border-radius:6px}.p-tree .p-tree-container .p-treenode{padding:.143rem;outline:0 none}.p-tree .p-tree-container .p-treenode:focus>.p-treenode-content{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content{border-radius:6px;transition:box-shadow .2s;padding:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem;width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-treenode-icon{margin-right:.5rem;color:#6b7280}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox .p-indeterminate .p-checkbox-icon{color:#4b5563}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight{background:#eff6ff;color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler:hover,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon:hover{color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-dragover{background:#f3f4f6;color:#4b5563}.p-tree .p-tree-filter-container{margin-bottom:.5rem}.p-tree .p-tree-filter-container .p-tree-filter{width:100%;padding-right:1.75rem}.p-tree .p-tree-filter-container .p-tree-filter-icon{right:.75rem;color:#6b7280}.p-tree .p-treenode-children{padding:0 0 0 1rem}.p-tree .p-tree-loading-icon{font-size:2rem}.p-tree .p-tree-loading-icon.p-icon{width:2rem;height:2rem}.p-tree .p-treenode-droppoint.p-treenode-droppoint-active{background-color:#8cbeff}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content{border-radius:6px;border:1px solid #e5e7eb;background-color:#fff;color:#4b5563;padding:.5rem;transition:box-shadow .2s}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight{background-color:#eff6ff;color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight .p-treenode-icon{color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-icon{color:#6b7280;margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-label:not(.p-highlight):hover{background-color:inherit;color:inherit}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-paginator-top,.p-treetable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-treetable .p-treetable-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb;transition:box-shadow .2s}.p-treetable .p-treetable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb}.p-treetable .p-sortable-column{outline-color:#bfdbfe}.p-treetable .p-sortable-column .p-sortable-column-icon{color:#374151;margin-left:.5rem}.p-treetable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#eff6ff;margin-left:.5rem}.p-treetable .p-sortable-column:not(.p-highlight):hover{background:#f3f4f6;color:#374151}.p-treetable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#374151}.p-treetable .p-sortable-column.p-highlight{background:#eff6ff;color:#1d4ed8}.p-treetable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr{background:#fff;color:#4b5563;transition:box-shadow .2s}.p-treetable .p-treetable-tbody>tr>td{text-align:left;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler.p-icon{width:2rem;height:2rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox{margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon{color:#4b5563}.p-treetable .p-treetable-tbody>tr:focus-visible{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-treetable .p-treetable-tbody>tr.p-highlight{background:#eff6ff;color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler:hover{color:#1d4ed8}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover .p-treetable-toggler{color:#4b5563}.p-treetable .p-column-resizer-helper{background:#3b82f6}.p-treetable .p-treetable-scrollable-header,.p-treetable .p-treetable-scrollable-footer{background:#f9fafb}.p-treetable .p-treetable-loading-icon{font-size:2rem}.p-treetable .p-treetable-loading-icon.p-icon{width:2rem;height:2rem}.p-treetable.p-treetable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-footer{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-top{border-width:0 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-bottom{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td{border-width:1px}.p-treetable.p-treetable-sm .p-treetable-header{padding:.875rem}.p-treetable.p-treetable-sm .p-treetable-thead>tr>th{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-footer{padding:.5rem}.p-treetable.p-treetable-lg .p-treetable-header{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-thead>tr>th{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-footer{padding:1.25rem}.p-virtualscroller .p-virtualscroller-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-virtualscroller .p-virtualscroller-content{background:#fff;color:#4b5563;border:0 none;padding:0}.p-virtualscroller .p-virtualscroller-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem;border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb;font-weight:700;border-radius:6px;transition:box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link .p-accordion-toggle-icon{margin-right:.5rem}.p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-accordion .p-accordion-header:not(.p-highlight):not(.p-disabled):hover .p-accordion-header-link{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link{background:#f9fafb;border-color:#e5e7eb;color:#374151;border-bottom-right-radius:0;border-bottom-left-radius:0}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link{border-color:#e5e7eb;background:#f3f4f6;color:#374151}.p-accordion .p-accordion-content{padding:1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0;border-radius:0 0 6px 6px}.p-accordion p-accordiontab .p-accordion-tab{margin-bottom:4px}.p-card{background:#fff;color:#4b5563;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;border-radius:6px}.p-card .p-card-body{padding:1.25rem}.p-card .p-card-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.p-card .p-card-subtitle{font-weight:400;margin-bottom:.5rem;color:#6b7280}.p-card .p-card-content{padding:1.25rem 0}.p-card .p-card-footer{padding:1.25rem 0 0}.p-divider .p-divider-content{background-color:#fff}.p-divider.p-divider-horizontal{margin:1.25rem 0;padding:0 1.25rem}.p-divider.p-divider-horizontal:before{border-top:1px #e5e7eb}.p-divider.p-divider-horizontal .p-divider-content{padding:0 .5rem}.p-divider.p-divider-vertical{margin:0 1.25rem;padding:1.25rem 0}.p-divider.p-divider-vertical:before{border-left:1px #e5e7eb}.p-divider.p-divider-vertical .p-divider-content{padding:.5rem 0}.p-fieldset{border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-radius:6px}.p-fieldset .p-fieldset-legend{padding:1.25rem;border:1px solid #e5e7eb;color:#374151;background:#f9fafb;font-weight:700;border-radius:6px}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend{padding:0;transition:background-color .2s,color .2s,box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a{padding:1.25rem;color:#374151;border-radius:6px;transition:box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a .p-fieldset-toggler{margin-right:.5rem}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend:hover{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-fieldset .p-fieldset-content{padding:1.25rem}.p-panel .p-panel-header{border:1px solid #e5e7eb;padding:1.25rem;background:#f9fafb;color:#374151;border-top-right-radius:6px;border-top-left-radius:6px}.p-panel .p-panel-header .p-panel-title{font-weight:700}.p-panel .p-panel-header .p-panel-header-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-panel .p-panel-header .p-panel-header-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-panel .p-panel-header .p-panel-header-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-panel.p-panel-toggleable .p-panel-header{padding:.75rem 1.25rem}.p-panel .p-panel-content{padding:1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0 none}.p-panel .p-panel-content:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-panel .p-panel-footer{padding:.75rem 1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px;border-top:0 none}.p-panel .p-panel-icons-end{order:2;margin-left:auto}.p-panel .p-panel-icons-start{order:0;margin-right:.5rem}.p-panel .p-panel-icons-center{order:2;width:100%;text-align:center}.p-scrollpanel .p-scrollpanel-bar{background:#f9fafb;border:0 none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-scrollpanel .p-scrollpanel-bar:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-splitter{border:1px solid #e5e7eb;background:#fff;border-radius:6px;color:#4b5563}.p-splitter .p-splitter-gutter{transition:background-color .2s,color .2s,box-shadow .2s;background:#f9fafb}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle{background:#e5e7eb}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-splitter .p-splitter-gutter-resizing{background:#e5e7eb}.p-tabview .p-tabview-nav-content{scroll-padding-inline:3rem}.p-tabview .p-tabview-nav{background:#fff;border:1px solid #e5e7eb;border-width:0 0 2px 0}.p-tabview .p-tabview-nav li{margin-right:0}.p-tabview .p-tabview-nav li .p-tabview-nav-link{border:solid #e5e7eb;border-width:0 0 2px 0;border-color:transparent transparent #e5e7eb transparent;background:#fff;color:#6b7280;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabview .p-tabview-nav li .p-tabview-nav-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-nav li:not(.p-highlight):not(.p-disabled):hover .p-tabview-nav-link{background:#fff;border-color:#9ca3af;color:#6b7280}.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link{background:#fff;border-color:#3b82f6;color:#3b82f6}.p-tabview .p-tabview-left-icon{margin-right:.5rem}.p-tabview .p-tabview-right-icon,.p-tabview .p-tabview-close{margin-left:.5rem}.p-tabview .p-tabview-nav-btn.p-link{background:#fff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabview .p-tabview-nav-btn.p-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-panels{background:#fff;padding:1.25rem;border:0 none;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-toolbar{background:#f9fafb;border:1px solid #e5e7eb;padding:1.25rem;border-radius:6px;gap:.5rem}.p-toolbar .p-toolbar-separator{margin:0 .5rem}.p-confirm-popup{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-confirm-popup .p-confirm-popup-content{padding:1.25rem}.p-confirm-popup .p-confirm-popup-footer{text-align:right;padding:.75rem 1.25rem}.p-confirm-popup .p-confirm-popup-footer button{margin:0 .5rem 0 0;width:auto}.p-confirm-popup .p-confirm-popup-footer button:last-child{margin:0}.p-confirm-popup:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup:before{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:after{border-top-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:before{border-top-color:#fff}.p-confirm-popup .p-confirm-popup-icon{font-size:1.5rem}.p-confirm-popup .p-confirm-popup-icon.p-icon{width:1.5rem;height:1.5rem}.p-confirm-popup .p-confirm-popup-message{margin-left:1rem}.p-dialog{border-radius:6px;box-shadow:0 1px 3px #0000004d;border:0 none}.p-dialog .p-dialog-header{border-bottom:0 none;background:#fff;color:#374151;padding:1.5rem;border-top-right-radius:6px;border-top-left-radius:6px}.p-dialog .p-dialog-header .p-dialog-title{font-weight:700;font-size:1.25rem}.p-dialog .p-dialog-header .p-dialog-header-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-dialog .p-dialog-header .p-dialog-header-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-dialog .p-dialog-header .p-dialog-header-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-dialog .p-dialog-header .p-dialog-header-icon:last-child{margin-right:0}.p-dialog .p-dialog-content{background:#fff;color:#4b5563;padding:0 1.5rem 2rem}.p-dialog .p-dialog-content:last-of-type{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer{border-top:0 none;background:#fff;color:#4b5563;padding:0 1.5rem 1.5rem;text-align:right;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer button{margin:0 .5rem 0 0;width:auto}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon{font-size:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon.p-icon{width:2rem;height:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-message{margin-left:1rem}.p-overlaypanel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-overlaypanel .p-overlaypanel-content{padding:1.25rem}.p-overlaypanel .p-overlaypanel-close{background:#3b82f6;color:#fff;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%;position:absolute;top:-1rem;right:-1rem}.p-overlaypanel .p-overlaypanel-close:enabled:hover{background:#2563eb;color:#fff}.p-overlaypanel:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-overlaypanel:before{border:solid transparent;border-color:#fff0;border-bottom-color:#f2f2f2}.p-overlaypanel.p-overlaypanel-flipped:after{border-top-color:#fff}.p-overlaypanel.p-overlaypanel-flipped:before{border-top-color:#fff}.p-sidebar{background:#fff;color:#4b5563;border:0 none;box-shadow:0 1px 3px #0000004d}.p-sidebar .p-sidebar-header{padding:1.25rem}.p-sidebar .p-sidebar-header .p-sidebar-close,.p-sidebar .p-sidebar-header .p-sidebar-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-sidebar .p-sidebar-header .p-sidebar-close:enabled:hover,.p-sidebar .p-sidebar-header .p-sidebar-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-sidebar .p-sidebar-header .p-sidebar-close:focus-visible,.p-sidebar .p-sidebar-header .p-sidebar-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-sidebar .p-sidebar-header+.p-sidebar-content{padding-top:0}.p-sidebar .p-sidebar-content,.p-sidebar .p-sidebar-footer{padding:1.25rem}.p-tooltip .p-tooltip-text{background:#4b5563;color:#fff;padding:.75rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-tooltip.p-tooltip-right .p-tooltip-arrow{border-right-color:#4b5563}.p-tooltip.p-tooltip-left .p-tooltip-arrow{border-left-color:#4b5563}.p-tooltip.p-tooltip-top .p-tooltip-arrow{border-top-color:#4b5563}.p-tooltip.p-tooltip-bottom .p-tooltip-arrow{border-bottom-color:#4b5563}.p-fileupload .p-fileupload-buttonbar{background:#f9fafb;padding:1.25rem;border:1px solid #e5e7eb;color:#374151;border-bottom:0 none;border-top-right-radius:6px;border-top-left-radius:6px}.p-fileupload .p-fileupload-buttonbar .p-button{margin-right:.5rem}.p-fileupload .p-fileupload-buttonbar .p-button.p-fileupload-choose.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fileupload .p-fileupload-content{background:#fff;padding:2rem 1rem;border:1px solid #e5e7eb;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-fileupload .p-fileupload-content.p-fileupload-highlight{border-color:1px dashed #3B82F6;border-style:dashed;background-color:#eff6ff}.p-fileupload .p-progressbar{height:.25rem}.p-fileupload .p-fileupload-row>div{padding:1rem}.p-fileupload.p-fileupload-advanced .p-message{margin-top:0}.p-fileupload-choose:not(.p-disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-fileupload-choose:not(.p-disabled):active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.p-breadcrumb{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:1rem}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link{transition:box-shadow .2s;border-radius:6px}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-icon{color:#6b7280}.p-breadcrumb .p-breadcrumb-list li.p-menuitem-separator{margin:0 .5rem;color:#4b5563}.p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-text{color:#4b5563}.p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-icon{color:#6b7280}.p-contextmenu{padding:.5rem 0;background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;width:12.5rem}.p-contextmenu .p-contextmenu-root-list{outline:0 none}.p-contextmenu .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-contextmenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-contextmenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-contextmenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-contextmenu .p-submenu-icon{font-size:.875rem}.p-contextmenu .p-submenu-icon.p-icon{width:.875rem;height:.875rem}.p-dock .p-dock-list-container{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:.5rem;border-radius:.5rem}.p-dock .p-dock-list-container .p-dock-list{outline:0 none}.p-dock .p-dock-item{padding:.5rem;border-radius:6px}.p-dock .p-dock-item.p-focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-dock .p-dock-link{width:4rem;height:4rem}.p-dock.p-dock-top .p-dock-item-second-prev,.p-dock.p-dock-top .p-dock-item-second-next,.p-dock.p-dock-bottom .p-dock-item-second-prev,.p-dock.p-dock-bottom .p-dock-item-second-next{margin:0 .9rem}.p-dock.p-dock-top .p-dock-item-prev,.p-dock.p-dock-top .p-dock-item-next,.p-dock.p-dock-bottom .p-dock-item-prev,.p-dock.p-dock-bottom .p-dock-item-next{margin:0 1.3rem}.p-dock.p-dock-top .p-dock-item-current,.p-dock.p-dock-bottom .p-dock-item-current{margin:0 1.5rem}.p-dock.p-dock-left .p-dock-item-second-prev,.p-dock.p-dock-left .p-dock-item-second-next,.p-dock.p-dock-right .p-dock-item-second-prev,.p-dock.p-dock-right .p-dock-item-second-next{margin:.9rem 0}.p-dock.p-dock-left .p-dock-item-prev,.p-dock.p-dock-left .p-dock-item-next,.p-dock.p-dock-right .p-dock-item-prev,.p-dock.p-dock-right .p-dock-item-next{margin:1.3rem 0}.p-dock.p-dock-left .p-dock-item-current,.p-dock.p-dock-right .p-dock-item-current{margin:1.5rem 0}@media screen and (max-width: 960px){.p-dock.p-dock-top .p-dock-list-container,.p-dock.p-dock-bottom .p-dock-list-container{overflow-x:auto;width:100%}.p-dock.p-dock-top .p-dock-list-container .p-dock-list,.p-dock.p-dock-bottom .p-dock-list-container .p-dock-list{margin:0 auto}.p-dock.p-dock-left .p-dock-list-container,.p-dock.p-dock-right .p-dock-list-container{overflow-y:auto;height:100%}.p-dock.p-dock-left .p-dock-list-container .p-dock-list,.p-dock.p-dock-right .p-dock-list-container .p-dock-list{margin:auto 0}.p-dock .p-dock-list .p-dock-item{transform:none;margin:0}}.p-megamenu{padding:.5rem;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px}.p-megamenu .p-megamenu-root-list{outline:0 none}.p-megamenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-megamenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-megamenu .p-megamenu-panel{background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a}.p-megamenu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px}.p-megamenu .p-submenu-list{padding:.5rem 0;width:12.5rem}.p-megamenu .p-submenu-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-megamenu.p-megamenu-vertical{width:12.5rem;padding:.5rem 0}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:6px}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link{padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280;margin-left:.5rem}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-menu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu.p-menu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-menu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700;border-top-right-radius:0;border-top-left-radius:0}.p-menu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menu .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-menubar{padding:.5rem;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px}.p-menubar .p-menubar-root-list{outline:0 none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:6px}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link{padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280;margin-left:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menubar .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;width:12.5rem}.p-menubar .p-submenu-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menubar .p-submenu-list .p-submenu-icon{font-size:.875rem}@media screen and (max-width: 960px){.p-menubar{position:relative}.p-menubar .p-menubar-button{display:flex;width:2rem;height:2rem;color:#6b7280;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-menubar .p-menubar-button:hover{color:#6b7280;background:#f3f4f6}.p-menubar .p-menubar-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-menubar .p-menubar-root-list{position:absolute;display:none;padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;width:100%}.p-menubar .p-menubar-root-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menubar .p-menubar-root-list .p-submenu-icon{font-size:.875rem}.p-menubar .p-menubar-root-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon{margin-left:auto;transition:transform .2s}.p-menubar .p-menubar-root-list .p-menuitem.p-menuitem-active>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon{transform:rotate(-180deg)}.p-menubar .p-menubar-root-list .p-submenu-list{width:100%;position:static;box-shadow:none;border:0 none}.p-menubar .p-menubar-root-list .p-submenu-list .p-submenu-icon{transition:transform .2s;transform:rotate(90deg)}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem-active>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon{transform:rotate(-90deg)}.p-menubar .p-menubar-root-list .p-menuitem{width:100%;position:static}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:2.25rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:3.75rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:5.25rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:6.75rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:8.25rem}.p-menubar.p-menubar-mobile-active .p-menubar-root-list{display:flex;flex-direction:column;top:100%;left:0;z-index:1}}.p-panelmenu .p-panelmenu-header{outline:0 none}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content{border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb;border-radius:6px;transition:box-shadow .2s}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action{color:#6b7280;padding:1.25rem;font-weight:700}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-submenu-icon,.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-menuitem-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-header:not(.p-disabled):focus-visible .p-panelmenu-header-content{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-panelmenu .p-panelmenu-header:not(.p-highlight):not(.p-disabled):hover .p-panelmenu-header-content{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight .p-panelmenu-header-content{background:#f9fafb;border-color:#e5e7eb;color:#374151;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight:hover .p-panelmenu-header-content{border-color:#e5e7eb;background:#f3f4f6;color:#374151}.p-panelmenu .p-panelmenu-content{padding:.5rem 0;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0;border-radius:0 0 6px 6px}.p-panelmenu .p-panelmenu-content .p-panelmenu-root-list{outline:0 none}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-panelmenu .p-panelmenu-content .p-submenu-list:not(.p-panelmenu-root-list){padding:0 0 0 1rem}.p-panelmenu .p-panelmenu-panel{margin-bottom:4px}.p-slidemenu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-slidemenu .p-slidemenu-root-list,.p-slidemenu .p-submenu-list{outline:0 none}.p-slidemenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-slidemenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-slidemenu.p-slidemenu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-slidemenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-slidemenu .p-slidemenu-icon{font-size:.875rem}.p-slidemenu .p-icon{width:.875rem;height:.875rem}.p-slidemenu .p-slidemenu-backward{padding:.75rem 1.25rem;color:#4b5563}.p-slidemenu .p-slidemenu-backward:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-slidemenu .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-steps .p-steps-item .p-menuitem-link{background:transparent;transition:box-shadow .2s;border-radius:6px;background:#fff}.p-steps .p-steps-item .p-menuitem-link .p-steps-number{color:#4b5563;border:1px solid #f3f4f6;background:#fff;min-width:2rem;height:2rem;line-height:2rem;font-size:1.143rem;z-index:1;border-radius:50%}.p-steps .p-steps-item .p-menuitem-link .p-steps-title{margin-top:.5rem;color:#6b7280}.p-steps .p-steps-item .p-menuitem-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#eff6ff;color:#1d4ed8}.p-steps .p-steps-item.p-highlight .p-steps-title{font-weight:700;color:#4b5563}.p-steps .p-steps-item:before{content:" ";border-top:1px solid #e5e7eb;width:100%;top:50%;left:0;display:block;position:absolute;margin-top:-1rem}.p-tabmenu .p-tabmenu-nav{background:#fff;border:1px solid #e5e7eb;border-width:0 0 2px 0}.p-tabmenu .p-tabmenu-nav .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem{margin-right:0}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{border:solid #e5e7eb;border-width:0 0 2px 0;border-color:transparent transparent #e5e7eb transparent;background:#fff;color:#6b7280;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link .p-menuitem-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link{background:#fff;border-color:#9ca3af;color:#6b7280}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link{background:#fff;border-color:#3b82f6;color:#3b82f6}.p-tabmenu .p-tabmenu-left-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-right-icon{margin-left:.5rem}.p-tabmenu .p-tabmenu-nav-btn.p-link{background:#fff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabmenu .p-tabmenu-nav-btn.p-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tieredmenu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-tieredmenu.p-tieredmenu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-tieredmenu-root-list{outline:0 none}.p-tieredmenu .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-tieredmenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-tieredmenu .p-submenu-icon{font-size:.875rem}.p-tieredmenu .p-submenu-icon.p-icon{width:.875rem;height:.875rem}.p-inline-message{padding:.75rem;margin:0;border-radius:6px}.p-inline-message.p-inline-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0px;color:#3b82f6}.p-inline-message.p-inline-message-info .p-inline-message-icon{color:#3b82f6}.p-inline-message.p-inline-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0px;color:#1ea97c}.p-inline-message.p-inline-message-success .p-inline-message-icon{color:#1ea97c}.p-inline-message.p-inline-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0px;color:#cc8925}.p-inline-message.p-inline-message-warn .p-inline-message-icon{color:#cc8925}.p-inline-message.p-inline-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0px;color:#ff5757}.p-inline-message.p-inline-message-error .p-inline-message-icon{color:#ff5757}.p-inline-message .p-inline-message-icon{font-size:1rem;margin-right:.5rem}.p-inline-message .p-icon{width:1rem;height:1rem}.p-inline-message .p-inline-message-text{font-size:1rem}.p-inline-message.p-inline-message-icon-only .p-inline-message-icon{margin-right:0}.p-message{margin:1rem 0;border-radius:6px}.p-message .p-message-wrapper{padding:1.25rem 1.75rem}.p-message .p-message-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-message .p-message-close:hover{background:#ffffff80}.p-message .p-message-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-message.p-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0 0 0 6px;color:#3b82f6}.p-message.p-message-info .p-message-icon,.p-message.p-message-info .p-message-close{color:#3b82f6}.p-message.p-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-message.p-message-success .p-message-icon,.p-message.p-message-success .p-message-close{color:#1ea97c}.p-message.p-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-message.p-message-warn .p-message-icon,.p-message.p-message-warn .p-message-close{color:#cc8925}.p-message.p-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-message.p-message-error .p-message-icon,.p-message.p-message-error .p-message-close{color:#ff5757}.p-message .p-message-text{font-size:1rem;font-weight:500}.p-message .p-message-icon{font-size:1.5rem;margin-right:.5rem}.p-message .p-icon{width:1.5rem;height:1.5rem}.p-message .p-message-summary{font-weight:700}.p-message .p-message-detail{margin-left:.5rem}.p-toast{opacity:1}.p-toast .p-toast-message{margin:0 0 1rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-toast .p-toast-message .p-toast-message-content{padding:1rem;border-width:0 0 0 6px}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-text{margin:0 0 0 1rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon{font-size:2rem}.p-toast .p-toast-message .p-toast-message-content .p-icon:not(.p-toast-icon-close-icon){width:2rem;height:2rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-summary{font-weight:700}.p-toast .p-toast-message .p-toast-message-content .p-toast-detail{margin:.5rem 0 0}.p-toast .p-toast-message .p-toast-icon-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-toast .p-toast-message .p-toast-icon-close:hover{background:#ffffff80}.p-toast .p-toast-message .p-toast-icon-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-toast .p-toast-message.p-toast-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0 0 0 6px;color:#3b82f6}.p-toast .p-toast-message.p-toast-message-info .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-info .p-toast-icon-close{color:#3b82f6}.p-toast .p-toast-message.p-toast-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-toast .p-toast-message.p-toast-message-success .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-success .p-toast-icon-close{color:#1ea97c}.p-toast .p-toast-message.p-toast-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-toast .p-toast-message.p-toast-message-warn .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-warn .p-toast-icon-close{color:#cc8925}.p-toast .p-toast-message.p-toast-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-toast .p-toast-message.p-toast-message-error .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-error .p-toast-icon-close{color:#ff5757}.p-galleria .p-galleria-close{margin:.5rem;background:transparent;color:#f9fafb;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-close .p-galleria-close-icon{font-size:2rem}.p-galleria .p-galleria-close .p-icon-wrapper .p-icon{width:2rem;height:2rem}.p-galleria .p-galleria-close:hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-item-nav{background:transparent;color:#f9fafb;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:6px;margin:0 .5rem}.p-galleria .p-galleria-item-nav .p-galleria-item-prev-icon,.p-galleria .p-galleria-item-nav .p-galleria-item-next-icon{font-size:2rem}.p-galleria .p-galleria-item-nav .p-icon-wrapper .p-icon{width:2rem;height:2rem}.p-galleria .p-galleria-item-nav:not(.p-disabled):hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-caption{background:#00000080;color:#f9fafb;padding:1rem}.p-galleria .p-galleria-indicators{padding:1rem}.p-galleria .p-galleria-indicators .p-galleria-indicator button{background-color:#d1d5db;width:1rem;height:1rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-indicators .p-galleria-indicator button:hover{background:#9ca3af}.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-galleria.p-galleria-indicators-bottom .p-galleria-indicator,.p-galleria.p-galleria-indicators-top .p-galleria-indicator{margin-right:.5rem}.p-galleria.p-galleria-indicators-left .p-galleria-indicator,.p-galleria.p-galleria-indicators-right .p-galleria-indicator{margin-bottom:.5rem}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators{background:#00000080}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button{background:#fff6}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button:hover{background:#fff9}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-galleria .p-galleria-thumbnail-container{background:#000000e6;padding:1rem .25rem}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next{margin:.5rem;background-color:transparent;color:#f9fafb;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev:hover,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next:hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-galleria-mask,.p-image-mask{--maskbg: rgba(0, 0, 0, .9)}.p-image-preview-indicator{background-color:transparent;color:#f8f9fa;transition:background-color .2s,color .2s,box-shadow .2s}.p-image-preview-container:hover>.p-image-preview-indicator{background-color:#00000080}.p-image-toolbar{padding:1rem}.p-image-action.p-link{color:#f8f9fa;background-color:transparent;width:3rem;height:3rem;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-image-action.p-link:last-child{margin-right:0}.p-image-action.p-link:hover{color:#f8f9fa;background-color:#ffffff1a}.p-image-action.p-link i{font-size:1.5rem}.p-image-action.p-link .p-icon{width:1.5rem;height:1.5rem}.p-avatar{background-color:#e5e7eb;border-radius:6px}.p-avatar.p-avatar-lg{width:3rem;height:3rem;font-size:1.5rem}.p-avatar.p-avatar-lg .p-avatar-icon{font-size:1.5rem}.p-avatar.p-avatar-xl{width:4rem;height:4rem;font-size:2rem}.p-avatar.p-avatar-xl .p-avatar-icon{font-size:2rem}.p-avatar-group .p-avatar{border:2px solid #ffffff}.p-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem}.p-badge.p-badge-secondary{background-color:#64748b;color:#fff}.p-badge.p-badge-success{background-color:#22c55e;color:#fff}.p-badge.p-badge-info{background-color:#0ea5e9;color:#fff}.p-badge.p-badge-warning{background-color:#f97316;color:#fff}.p-badge.p-badge-danger{background-color:#ef4444;color:#fff}.p-badge.p-badge-lg{font-size:1.125rem;min-width:2.25rem;height:2.25rem;line-height:2.25rem}.p-badge.p-badge-xl{font-size:1.5rem;min-width:3rem;height:3rem;line-height:3rem}.p-chip{background-color:#e5e7eb;color:#4b5563;border-radius:16px;padding:0 .75rem}.p-chip .p-chip-text{line-height:1.5;margin-top:.375rem;margin-bottom:.375rem}.p-chip .p-chip-icon{margin-right:.5rem}.p-chip .pi-chip-remove-icon{margin-left:.5rem}.p-chip img{width:2.25rem;height:2.25rem;margin-left:-.75rem;margin-right:.5rem}.p-chip .pi-chip-remove-icon{border-radius:6px;transition:background-color .2s,color .2s,box-shadow .2s}.p-chip .pi-chip-remove-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-chip .pi-chip-remove-icon:focus{outline:0 none}.p-inplace .p-inplace-display{padding:.75rem;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-inplace .p-inplace-display:not(.p-disabled):hover{background:#f3f4f6;color:#4b5563}.p-inplace .p-inplace-display:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-metergroup,.p-metergroup-meters{display:flex}.p-metergroup-vertical{height:100%}.p-metergroup-vertical .p-metergroup-meters{flex-direction:column}.p-metergroup-labels{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style-type:none}.p-metergroup-vertical .p-metergroup-labels{align-items:start}.p-metergroup-labels-vertical{flex-direction:column}.p-metergroup-label{display:inline-flex;align-items:center}.p-metergroup-label-marker{display:inline-flex}.p-metergroup{gap:1rem}.p-metergroup .p-metergroup-meters{background:#e5e7eb;border-radius:6px}.p-metergroup .p-metergroup-meter{border:0 none;background:#3b82f6}.p-metergroup .p-metergroup-labels .p-metergroup-label{gap:.5rem}.p-metergroup .p-metergroup-labels .p-metergroup-label-marker{background:#3b82f6;width:.5rem;height:.5rem;border-radius:100%}.p-metergroup .p-metergroup-labels .p-metergroup-label-icon{width:1rem;height:1rem}.p-metergroup .p-metergroup-labels.p-metergroup-labels-vertical{gap:.5rem}.p-metergroup .p-metergroup-labels.p-metergroup-labels-horizontal{gap:1rem}.p-metergroup.p-metergroup-horizontal{flex-direction:column}.p-metergroup.p-metergroup-horizontal .p-metergroup-meters{height:.5rem}.p-metergroup.p-metergroup-horizontal .p-metergroup-meter:first-of-type{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-metergroup.p-metergroup-horizontal .p-metergroup-meter:last-of-type{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-metergroup.p-metergroup-vertical{flex-direction:row}.p-metergroup.p-metergroup-vertical .p-metergroup-meters{width:.5rem;height:100%}.p-metergroup.p-metergroup-vertical .p-metergroup-meter:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}.p-metergroup.p-metergroup-vertical .p-metergroup-meter:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-progressbar{border:0 none;height:1.5rem;background:#e5e7eb;border-radius:6px}.p-progressbar .p-progressbar-value{border:0 none;margin:0;background:#3b82f6}.p-progressbar .p-progressbar-label{color:#fff;line-height:1.5rem}.p-scrolltop{width:3rem;height:3rem;border-radius:50%;box-shadow:0 2px 12px #0000001a;transition:background-color .2s,color .2s,box-shadow .2s}.p-scrolltop.p-link{background:#000000b3}.p-scrolltop.p-link:hover{background:#000c}.p-scrolltop .p-scrolltop-icon{font-size:1.5rem;color:#f9fafb}.p-scrolltop .p-icon{width:1.5rem;height:1.5rem}.p-skeleton{background-color:#e5e7eb;border-radius:6px}.p-skeleton:after{background:linear-gradient(90deg,#fff0,#fff6,#fff0)}.p-tag{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .4rem;border-radius:6px}.p-tag.p-tag-success{background-color:#22c55e;color:#fff}.p-tag.p-tag-info{background-color:#0ea5e9;color:#fff}.p-tag.p-tag-warning{background-color:#f97316;color:#fff}.p-tag.p-tag-danger{background-color:#ef4444;color:#fff}.p-tag .p-tag-icon{margin-right:.25rem;font-size:.75rem}.p-tag .p-icon{width:.75rem;height:.75rem}.p-terminal{background:#fff;color:#4b5563;border:1px solid #e5e7eb;padding:1.25rem}.p-terminal .p-terminal-input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem}}@layer primeng{.p-button-label{font-weight:700}.p-selectbutton>.p-button,.p-togglebutton.p-button{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link,.p-tabview .p-tabview-nav li .p-tabview-nav-link,.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button,.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background-color:#3b82f6}.p-button:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-button.p-button-secondary:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #b0b9c6,0 1px 2px #000}.p-button.p-button-success:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #88eaac,0 1px 2px #000}.p-button.p-button-info:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #83d3f8,0 1px 2px #000}.p-button.p-button-warning:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #fcb98b,0 1px 2px #000}.p-button.p-button-help:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #d4aafb,0 1px 2px #000}.p-button.p-button-danger:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #f7a2a2,0 1px 2px #000}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #3b82f6}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #3b82f6}.p-speeddial-item.p-focus>.p-speeddial-action{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-toast-message{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.p-inline-message-text{font-weight:500}.p-picklist-buttons .p-button,.p-orderlist-controls .p-button{transition:opacity .2s,background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#3b82f6;color:#fff}}.p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{animation:p-icon-spin 2s infinite linear}}@keyframes p-icon-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url(color.dae87a04d07ca92b.png) no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(hue.8b1818380241e6ac.png) no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}html{font-size:13px}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container .ngx-toastr{border-radius:var(--bs-border-radius);position:relative;overflow:hidden;margin:0 0 6px;padding:.75rem 1.25rem .75rem 50px;width:300px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 10px #00000008;pointer-events:auto}.toast-container .ngx-toastr .toast-title{font-weight:700}.toast-container .ngx-toastr .toast-message{word-wrap:break-word}.toast-container .ngx-toastr .toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}.toast-container .ngx-toastr .toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.3}.toast-container .ngx-toastr .toast-close-button:hover,.toast-container .ngx-toastr .toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.75}.toast-container .ngx-toastr:hover{box-shadow:0 0 10px #00000026;opacity:1;cursor:pointer}.toast-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");color:#155724!important;background-color:#d4edda;border:1px solid #c3e6cb}.toast-success a{text-decoration:underline!important;color:#08210e!important}.toast-success a:hover{color:#020703!important}.toast-error{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E");color:#721c24!important;background-color:#f8d7da;border:1px solid #f5c6cb}.toast-error a{text-decoration:underline!important;color:#2c0b0e!important}.toast-error a:hover{color:#090203!important}.toast-info{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");color:#0c5460!important;background-color:#d1ecf1;border:1px solid #bee5eb}.toast-info a{text-decoration:underline!important;color:#052025!important}.toast-info a:hover{color:#010607!important}.toast-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");color:#856404!important;background-color:#fff3cd;border:1px solid #ffeeba}.toast-warning a{text-decoration:underline!important;color:#332701!important}.toast-warning a:hover{color:#0a0800!important}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-classic,.fa-sharp,.fas,.fa-solid,.far,.fa-regular,.fab,.fa-brands{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fas,.fa-classic,.fa-solid,.far,.fa-regular{font-family:"Font Awesome 6 Free"}.fab,.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .08em);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{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(.28, .84, .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(.4, 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(.4, 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) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .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%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{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:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-right:before{content:"\f138"}.fa-at:before{content:"@"}.fa-trash-can:before{content:"\f2ed"}.fa-trash-alt:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-xmark:before{content:"\f235"}.fa-user-times:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-message:before{content:"\f27a"}.fa-comment-alt:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-compress-alt:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-lines:before{content:"\f15c"}.fa-file-alt:before{content:"\f15c"}.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-days:before{content:"\f073"}.fa-calendar-alt:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball:before{content:"\f45f"}.fa-volleyball-ball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-desc:before{content:"\f0dd"}.fa-circle-minus:before{content:"\f056"}.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before{content:"\f2f5"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-icons:before{content:"\f86d"}.fa-heart-music-camera-bolt:before{content:"\f86d"}.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before{content:"\f689"}.fa-search-location:before{content:"\f689"}.fa-forward-step:before{content:"\f051"}.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before{content:"\f5b8"}.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football:before{content:"\f44e"}.fa-football-ball:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angles-down:before{content:"\f103"}.fa-angle-double-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before{content:"\f0fc"}.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before{content:"\f176"}.fa-long-arrow-up:before{content:"\f176"}.fa-fire-flame-simple:before{content:"\f46a"}.fa-burn:before{content:"\f46a"}.fa-person:before{content:"\f183"}.fa-male:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before{content:"\f587"}.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-pastafarianism:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before{content:"\f2e5"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before{content:"\f674"}.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before{content:"\f47e"}.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before{content:"\f2b9"}.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"K"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil:before{content:"\f303"}.fa-pencil-alt:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-paste:before{content:"\f0ea"}.fa-file-clipboard:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-ramp-box:before{content:"\f4de"}.fa-truck-loading:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before{content:"\f6a0"}.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before{content:"\f458"}.fa-quidditch:before{content:"\f458"}.fa-quidditch-broom-ball:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-box-archive:before{content:"\f187"}.fa-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before{content:"\f886"}.fa-sort-numeric-desc:before{content:"\f886"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"W"}.fa-earth-africa:before{content:"\f57c"}.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablet-alt:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before{content:"\f579"}.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before{content:"\f0e3"}.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before{content:"\f562"}.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before{content:"\f5ae"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows:before{content:"\e068"}.fa-people-arrows-left-right:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-right:before{content:"\f152"}.fa-scissors:before{content:"\f0c4"}.fa-cut:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-tachograph-digital:before{content:"\f566"}.fa-digital-tachograph:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-reply:before{content:"\f3e5"}.fa-mail-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-square-minus:before{content:"\f146"}.fa-minus-square:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-3:before{content:"\f253"}.fa-heart-crack:before{content:"\f7a9"}.fa-heart-broken:before{content:"\f7a9"}.fa-square-up-right:before{content:"\f360"}.fa-external-link-square-alt:before{content:"\f360"}.fa-face-kiss-beam:before{content:"\f597"}.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before{content:"\f06a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before{content:"\f08b"}.fa-sign-out:before{content:"\f08b"}.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-unlock-keyhole:before{content:"\f13e"}.fa-unlock-alt:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-simple:before{content:"\f58f"}.fa-headphones-alt:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before{content:"\f4b9"}.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-low:before{content:"\f027"}.fa-volume-down:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-alt:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"*"}.fa-square-check:before{content:"\f14a"}.fa-check-square:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-heading:before{content:"\f1dc"}.fa-header:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list:before{content:"\f03a"}.fa-list-squares:before{content:"\f03a"}.fa-square-phone-flip:before{content:"\f87b"}.fa-phone-square-alt:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before{content:"\f192"}.fa-dot-circle:before{content:"\f192"}.fa-face-dizzy:before{content:"\f567"}.fa-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol:before{content:"\f1e3"}.fa-futbol-ball:before{content:"\f1e3"}.fa-soccer-ball:before{content:"\f1e3"}.fa-paintbrush:before{content:"\f1fc"}.fa-paint-brush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before{content:"\f593"}.fa-hot-tub:before{content:"\f593"}.fa-map-location:before{content:"\f59f"}.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-pen-to-square:before{content:"\f044"}.fa-edit:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-nodes:before{content:"\f1e0"}.fa-share-alt:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-2:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before{content:"\f290"}.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before{content:"\f881"}.fa-sort-alpha-desc:before{content:"\f881"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand:before{content:"\f256"}.fa-hand-paper:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before{content:"\f596"}.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before{content:"\f589"}.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before{content:"\f58c"}.fa-grin-wink:before{content:"\f58c"}.fa-ear-deaf:before{content:"\f2a4"}.fa-deaf:before{content:"\f2a4"}.fa-deafness:before{content:"\f2a4"}.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-square-rss:before{content:"\f143"}.fa-rss-square:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"I"}.fa-hryvnia-sign:before{content:"\f6f2"}.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before{content:"\f581"}.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"V"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-staff-snake:before{content:"\e579"}.fa-rod-asclepius:before{content:"\e579"}.fa-rod-snake:before{content:"\e579"}.fa-staff-aesculapius:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-truck-medical:before{content:"\f0f9"}.fa-ambulance:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"Q"}.fa-g:before{content:"G"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-half:before{content:"\f2c9"}.fa-temperature-2:before{content:"\f2c9"}.fa-thermometer-2:before{content:"\f2c9"}.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-storm:before{content:"\f75a"}.fa-poo-bolt:before{content:"\f75a"}.fa-face-frown-open:before{content:"\f57a"}.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder:before{content:"\f07b"}.fa-folder-blank:before{content:"\f07b"}.fa-file-waveform:before{content:"\f478"}.fa-file-medical-alt:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-gauge:before{content:"\f624"}.fa-dashboard:before{content:"\f624"}.fa-gauge-med:before{content:"\f624"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-magic-wand-sparkles:before{content:"\e2ca"}.fa-e:before{content:"E"}.fa-pen-clip:before{content:"\f305"}.fa-pen-alt:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-van-shuttle:before{content:"\f5b6"}.fa-shuttle-van:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"C"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-chart-area:before{content:"\f1fe"}.fa-area-chart:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before{content:"\f05e"}.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-air-freshener:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before{content:"\f245"}.fa-mouse-pointer:before{content:"\f245"}.fa-maximize:before{content:"\f31e"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before{content:"\f61f"}.fa-triangle-circle-square:before{content:"\f61f"}.fa-shuffle:before{content:"\f074"}.fa-random:before{content:"\f074"}.fa-person-running:before{content:"\f70c"}.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before{content:"\f8cc"}.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before{content:"\f090"}.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before{content:"\e070"}.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-1:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before{content:"\f21e"}.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before{content:"\f4ce"}.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before{content:"\f496"}.fa-weight:before{content:"\f496"}.fa-user-group:before{content:"\f500"}.fa-user-friends:before{content:"\f500"}.fa-arrow-up-a-z:before{content:"\f15e"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before{content:"\f59b"}.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-circle-arrow-up:before{content:"\f0aa"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before{content:"\f554"}.fa-walking:before{content:"\f554"}.fa-l:before{content:"L"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before{content:"\f487"}.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before{content:"\f197"}.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before{content:"\f599"}.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before{content:"\f22a"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before{content:"\f79f"}.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before{content:"\f574"}.fa-file-upload:before{content:"\f574"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-3:before{content:"\f1eb"}.fa-wifi-strong:before{content:"\f1eb"}.fa-bath:before{content:"\f2cd"}.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-pen:before{content:"\f4ff"}.fa-user-edit:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-top-left:before{content:"\f853"}.fa-border-style:before{content:"\f853"}.fa-map-location-dot:before{content:"\f5a0"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-square-poll-vertical:before{content:"\f681"}.fa-poll:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-car-battery:before{content:"\f5df"}.fa-battery-car:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-hand-back-fist:before{content:"\f255"}.fa-hand-rock:before{content:"\f255"}.fa-square-caret-up:before{content:"\f151"}.fa-caret-square-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-chart-bar:before{content:"\f080"}.fa-bar-chart:before{content:"\f080"}.fa-hands-bubbles:before{content:"\e05e"}.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before{content:"\f2a8"}.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-square-plus:before{content:"\f0fe"}.fa-plus-square:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-martini-glass:before{content:"\f57b"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-rotate-left:before{content:"\f2ea"}.fa-rotate-back:before{content:"\f2ea"}.fa-rotate-backward:before{content:"\f2ea"}.fa-undo-alt:before{content:"\f2ea"}.fa-table-columns:before{content:"\f0db"}.fa-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly:before{content:"\f472"}.fa-dolly-box:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-minimize:before{content:"\f78c"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angles-right:before{content:"\f101"}.fa-angle-double-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before{content:"\f144"}.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-euro-sign:before{content:"\f153"}.fa-eur:before{content:"\f153"}.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-circle-check:before{content:"\f058"}.fa-check-circle:before{content:"\f058"}.fa-circle-stop:before{content:"\f28d"}.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before{content:"\f568"}.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before{content:"\f59a"}.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-circle-chevron-up:before{content:"\f139"}.fa-chevron-circle-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-sterling-sign:before{content:"\f154"}.fa-gbp:before{content:"\f154"}.fa-pound-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before{content:"\f175"}.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before{content:"\f7c5"}.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before{content:"\f662"}.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-file-import:before{content:"\f56f"}.fa-arrow-right-to-file:before{content:"\f56f"}.fa-square-arrow-up-right:before{content:"\f14c"}.fa-external-link-square:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-empty:before{content:"\f2cb"}.fa-temperature-0:before{content:"\f2cb"}.fa-thermometer-0:before{content:"\f2cb"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before{content:"\f2bb"}.fa-contact-card:before{content:"\f2bb"}.fa-vcard:before{content:"\f2bb"}.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-balance-scale-right:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before{content:"\f5eb"}.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before{content:"\e066"}.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before{content:"\f5c8"}.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before{content:"\f0ee"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before{content:"\f4d8"}.fa-sprout:before{content:"\f4d8"}.fa-left-right:before{content:"\f337"}.fa-arrows-alt-h:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before{content:"\f160"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before{content:"\f76c"}.fa-thunderstorm:before{content:"\f76c"}.fa-text-slash:before{content:"\f87d"}.fa-remove-format:before{content:"\f87d"}.fa-face-smile-wink:before{content:"\f4da"}.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-h:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before{content:"\f0ed"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-chalkboard:before{content:"\f51b"}.fa-blackboard:before{content:"\f51b"}.fa-user-large-slash:before{content:"\f4fa"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before{content:"\f021"}.fa-refresh:before{content:"\f021"}.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-halved:before{content:"\f3ed"}.fa-shield-alt:before{content:"\f3ed"}.fa-book-atlas:before{content:"\f558"}.fa-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before{content:"\f6f1"}.fa-house-damage:before{content:"\f6f1"}.fa-file-zipper:before{content:"\f1c6"}.fa-file-archive:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-martini-glass-empty:before{content:"\f000"}.fa-glass-martini:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"Z"}.fa-person-skiing:before{content:"\f7c9"}.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"A"}.fa-temperature-arrow-down:before{content:"\e03f"}.fa-temperature-down:before{content:"\e03f"}.fa-feather-pointed:before{content:"\f56b"}.fa-feather-alt:before{content:"\f56b"}.fa-p:before{content:"P"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-rectangle-ad:before{content:"\f641"}.fa-ad:before{content:"\f641"}.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-list-ol:before{content:"\f0cb"}.fa-list-1-2:before{content:"\f0cb"}.fa-list-numeric:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-dollar:before{content:"\f53d"}.fa-money-check-alt:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before{content:"\f598"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"?"}.fa-file-signature:before{content:"\f573"}.fa-up-down-left-right:before{content:"\f0b2"}.fa-arrows-alt:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-half-alt:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-whiskey-glass:before{content:"\f7a0"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-won-sign:before{content:"\f159"}.fa-krw:before{content:"\f159"}.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"F"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-taxi:before{content:"\f1ba"}.fa-cab:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before{content:"\f200"}.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before{content:"\f582"}.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before{content:"\f041"}.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-helmet-safety:before{content:"\f807"}.fa-hard-hat:before{content:"\f807"}.fa-hat-hard:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before{content:"\f5a5"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before{content:"\f201"}.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-signs-post:before{content:"\f277"}.fa-map-signs:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"H"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before{content:"\f7d9"}.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-house-user:before{content:"\e1b0"}.fa-home-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-martini-glass-citrus:before{content:"\f561"}.fa-cocktail:before{content:"\f561"}.fa-face-surprise:before{content:"\f5c2"}.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before{content:"\f28b"}.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-whole:before{content:"\f5d1"}.fa-apple-alt:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"R"}.fa-temperature-quarter:before{content:"\f2ca"}.fa-temperature-1:before{content:"\f2ca"}.fa-thermometer-1:before{content:"\f2ca"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll-h:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before{content:"\f049"}.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball:before{content:"\f434"}.fa-basketball-ball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-circle-up:before{content:"\f35b"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-mobile-screen-button:before{content:"\f3cd"}.fa-mobile-alt:before{content:"\f3cd"}.fa-volume-high:before{content:"\f028"}.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before{content:"\f805"}.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before{content:"\f156"}.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before{content:"\f059"}.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-flip:before{content:"\f879"}.fa-phone-alt:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-forward-fast:before{content:"\f050"}.fa-fast-forward:before{content:"\f050"}.fa-face-meh-blank:before{content:"\f5a4"}.fa-meh-blank:before{content:"\f5a4"}.fa-square-parking:before{content:"\f540"}.fa-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before{content:"\f828"}.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before{content:"\f474"}.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before{content:"\f54d"}.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before{content:"\f291"}.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-simple:before{content:"\f55e"}.fa-bus-alt:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before{content:"\f5b3"}.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal:before{content:"\f012"}.fa-signal-5:before{content:"\f012"}.fa-signal-perfect:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-house-chimney:before{content:"\e3af"}.fa-home-lg:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before{content:"\f119"}.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before{content:"\f54f"}.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before{content:"\f0c7"}.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-left:before{content:"\f515"}.fa-sort-up:before{content:"\f0de"}.fa-sort-asc:before{content:"\f0de"}.fa-comment-dots:before{content:"\f4ad"}.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before{content:"\f585"}.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before{content:"\f4c0"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before{content:"\f684"}.fa-praying-hands:before{content:"\f684"}.fa-arrow-rotate-right:before{content:"\f01e"}.fa-arrow-right-rotate:before{content:"\f01e"}.fa-arrow-rotate-forward:before{content:"\f01e"}.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before{content:"\f601"}.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before{content:"\f588"}.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-xmark:before{content:"\f273"}.fa-calendar-times:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-gear:before{content:"\f4fe"}.fa-user-cog:before{content:"\f4fe"}.fa-arrow-up-1-9:before{content:"\f163"}.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-person-digging:before{content:"\f85e"}.fa-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple:before{content:"\f629"}.fa-gauge-simple-med:before{content:"\f629"}.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right:before{content:"\f10e"}.fa-quote-right-alt:before{content:"\f10e"}.fa-shirt:before{content:"\f553"}.fa-t-shirt:before{content:"\f553"}.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before{content:"\f7d7"}.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"J"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-up-right-from-square:before{content:"\f35d"}.fa-external-link-alt:before{content:"\f35d"}.fa-table-cells:before{content:"\f00a"}.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-book-bible:before{content:"\f647"}.fa-bible:before{content:"\f647"}.fa-o:before{content:"O"}.fa-suitcase-medical:before{content:"\f0fa"}.fa-medkit:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-person-dress:before{content:"\f182"}.fa-female:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-business-time:before{content:"\f64a"}.fa-briefcase-clock:before{content:"\f64a"}.fa-table-cells-large:before{content:"\f009"}.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before{content:"\f827"}.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before{content:"\f2a0"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-cake-candles:before{content:"\f1fd"}.fa-birthday-cake:before{content:"\f1fd"}.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angles-up:before{content:"\f102"}.fa-angle-double-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before{content:"\f887"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before{content:"\f0f0"}.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before{content:"\f05a"}.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before{content:"\f162"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before{content:"\f4c1"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-medical:before{content:"\f486"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before{content:"\f15d"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-rotate-left:before{content:"\f0e2"}.fa-arrow-left-rotate:before{content:"\f0e2"}.fa-arrow-rotate-back:before{content:"\f0e2"}.fa-arrow-rotate-backward:before{content:"\f0e2"}.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before{content:"\f0a0"}.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before{content:"\f586"}.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-rectangle-list:before{content:"\f022"}.fa-list-alt:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before{content:"\f7ca"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-train-subway:before{content:"\f239"}.fa-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before{content:"\e1bc"}.fa-indian-rupee:before{content:"\e1bc"}.fa-inr:before{content:"\e1bc"}.fa-crop-simple:before{content:"\f565"}.fa-crop-alt:before{content:"\f565"}.fa-money-bill-1:before{content:"\f3d1"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before{content:"\f30a"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before{content:"\f068"}.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before{content:"\f177"}.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-asl-interpreting:before{content:"\f2a3"}.fa-hands-american-sign-language-interpreting:before{content:"\f2a3"}.fa-gear:before{content:"\f013"}.fa-cog:before{content:"\f013"}.fa-droplet-slash:before{content:"\f5c7"}.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before{content:"\f07a"}.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before{content:"\f148"}.fa-level-up:before{content:"\f148"}.fa-u:before{content:"U"}.fa-square-root-variable:before{content:"\f698"}.fa-square-root-alt:before{content:"\f698"}.fa-clock:before{content:"\f017"}.fa-clock-four:before{content:"\f017"}.fa-backward-step:before{content:"\f048"}.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"S"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-house-chimney-medical:before{content:"\f7f2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-temperature-three-quarters:before{content:"\f2c8"}.fa-temperature-3:before{content:"\f2c8"}.fa-thermometer-3:before{content:"\f2c8"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-half:before{content:"\f242"}.fa-battery-3:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders:before{content:"\f1de"}.fa-sliders-h:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-vertical:before{content:"\f142"}.fa-ellipsis-v:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-right-long:before{content:"\f30b"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-tty:before{content:"\f1e4"}.fa-teletype:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-person-hiking:before{content:"\f6ec"}.fa-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"N"}.fa-cable-car:before{content:"\f7da"}.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before{content:"\f580"}.fa-grin:before{content:"\f580"}.fa-delete-left:before{content:"\f55a"}.fa-backspace:before{content:"\f55a"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-dropper-empty:before{content:"\f1fb"}.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile:before{content:"\f3ce"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-phone:before{content:"\f3ce"}.fa-face-meh:before{content:"\f11a"}.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-skull:before{content:"\f6b7"}.fa-book-dead:before{content:"\f6b7"}.fa-id-card:before{content:"\f2c2"}.fa-drivers-license:before{content:"\f2c2"}.fa-outdent:before{content:"\f03b"}.fa-dedent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-house:before{content:"\f015"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f015"}.fa-home-lg-alt:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"B"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before{content:"\f0ec"}.fa-exchange:before{content:"\f0ec"}.fa-rotate-right:before{content:"\f2f9"}.fa-redo-alt:before{content:"\f2f9"}.fa-rotate-forward:before{content:"\f2f9"}.fa-utensils:before{content:"\f2e7"}.fa-cutlery:before{content:"\f2e7"}.fa-arrow-up-wide-short:before{content:"\f161"}.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-tower-broadcast:before{content:"\f519"}.fa-broadcast-tower:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-up-long:before{content:"\f30c"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before{content:"\f56d"}.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before{content:"\f0e7"}.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-yen-sign:before{content:"\f157"}.fa-cny:before{content:"\f157"}.fa-jpy:before{content:"\f157"}.fa-rmb:before{content:"\f157"}.fa-yen:before{content:"\f157"}.fa-ruble-sign:before{content:"\f158"}.fa-rouble:before{content:"\f158"}.fa-rub:before{content:"\f158"}.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before{content:"\f59c"}.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before{content:"\f884"}.fa-sort-amount-desc:before{content:"\f884"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"<"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before{content:"\f178"}.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-h:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-kit-medical:before{content:"\f479"}.fa-first-aid:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-alt:before{content:"\f09d"}.fa-car:before{content:"\f1b9"}.fa-automobile:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before{content:"\f5da"}.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before{content:"\e040"}.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-square-h:before{content:"\f0fd"}.fa-h-square:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-full:before{content:"\f2c7"}.fa-temperature-4:before{content:"\f2c7"}.fa-thermometer-4:before{content:"\f2c7"}.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-handshake-angle:before{content:"\f4c4"}.fa-hands-helping:before{content:"\f4c4"}.fa-location-dot:before{content:"\f3c5"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:">"}.fa-person-swimming:before{content:"\f5c4"}.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before{content:"\f043"}.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-americas:before{content:"\f57d"}.fa-earth:before{content:"\f57d"}.fa-earth-america:before{content:"\f57d"}.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-empty:before{content:"\f244"}.fa-battery-0:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before{content:"\f625"}.fa-tachometer-alt:before{content:"\f625"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f0f8"}.fa-hospital-wide:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before{content:"\f550"}.fa-reorder:before{content:"\f550"}.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-person-walking-with-cane:before{content:"\f29d"}.fa-blind:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before{content:"\f772"}.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-stacked:before{content:"\f468"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f468"}.fa-link:before{content:"\f0c1"}.fa-chain:before{content:"\f0c1"}.fa-ear-listen:before{content:"\f2a2"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before{content:"\f002"}.fa-search:before{content:"\f002"}.fa-table-tennis-paddle-ball:before{content:"\f45d"}.fa-ping-pong-paddle-ball:before{content:"\f45d"}.fa-table-tennis:before{content:"\f45d"}.fa-person-dots-from-line:before{content:"\f470"}.fa-diagnoses:before{content:"\f470"}.fa-trash-can-arrow-up:before{content:"\f82a"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-pen:before{content:"\f31c"}.fa-file-edit:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-square-pen:before{content:"\f14b"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-square:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-full:before{content:"\f240"}.fa-battery:before{content:"\f240"}.fa-battery-5:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-ul:before{content:"\f0ca"}.fa-list-dots:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before{content:"\f309"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-dome:before{content:"\f752"}.fa-landmark-alt:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-tv:before{content:"\f26c"}.fa-television:before{content:"\f26c"}.fa-tv-alt:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before{content:"\f0ae"}.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before{content:"\f2bd"}.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before{content:"\f5e1"}.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"Y"}.fa-person-snowboarding:before{content:"\f7ce"}.fa-snowboarding:before{content:"\f7ce"}.fa-truck-fast:before{content:"\f48b"}.fa-shipping-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-circle-half-stroke:before{content:"\f042"}.fa-adjust:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before{content:"\f7ba"}.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball:before{content:"\f433"}.fa-baseball-ball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before{content:"\f542"}.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-xmark:before{content:"\f6a9"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-times:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip:before{content:"\f58d"}.fa-grip-horizontal:before{content:"\f58d"}.fa-share-from-square:before{content:"\f14d"}.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before{content:"\e4e0"}.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-square-phone:before{content:"\f098"}.fa-phone-square:before{content:"\f098"}.fa-plus:before{content:"+"}.fa-add:before{content:"+"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-xmark:before{content:"\f00d"}.fa-close:before{content:"\f00d"}.fa-multiply:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-arrows-up-down-left-right:before{content:"\f047"}.fa-arrows:before{content:"\f047"}.fa-chalkboard-user:before{content:"\f51c"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left:before{content:"\f10d"}.fa-quote-left-alt:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before{content:"\f829"}.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"="}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-shekel-sign:before{content:"\f20b"}.fa-ils:before{content:"\f20b"}.fa-shekel:before{content:"\f20b"}.fa-sheqel:before{content:"\f20b"}.fa-sheqel-sign:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before{content:"\f87c"}.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before{content:"\f4d9"}.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet:before{content:"\f3fb"}.fa-tablet-android:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-rear:before{content:"\f5de"}.fa-car-alt:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-2:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before{content:"\f77d"}.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before{content:"%"}.fa-percentage:before{content:"%"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before{content:"\f118"}.fa-smile:before{content:"\f118"}.fa-thumbtack:before{content:"\f08d"}.fa-thumb-tack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before{content:"\f683"}.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before{content:"\f2f1"}.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-gears:before{content:"\f085"}.fa-cogs:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before{content:"\f584"}.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender:before{content:"\f225"}.fa-transgender-alt:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before{content:"\f149"}.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-simple:before{content:"\f3ff"}.fa-ticket-alt:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angles-left:before{content:"\f100"}.fa-angle-double-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before{content:"\f1da"}.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before{content:"\f583"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-file-export:before{content:"\f56e"}.fa-arrow-right-from-file:before{content:"\f56e"}.fa-shield:before{content:"\f132"}.fa-shield-blank:before{content:"\f132"}.fa-arrow-up-short-wide:before{content:"\f885"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before{content:"\f450"}.fa-golf-ball:before{content:"\f450"}.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-wand-magic:before{content:"\f0d0"}.fa-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-empty:before{content:"\f5ce"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-person-biking:before{content:"\f84a"}.fa-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before{content:"\e47b"}.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before{content:"\f2d3"}.fa-times-square:before{content:"\f2d3"}.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"#"}.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-expand-alt:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"T"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-up-down:before{content:"\f338"}.fa-arrows-alt-v:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before{content:"\f666"}.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before{content:"\f055"}.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before{content:"\f58b"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-link-slash:before{content:"\f127"}.fa-chain-broken:before{content:"\f127"}.fa-chain-slash:before{content:"\f127"}.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before{content:"\f882"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-flame-curved:before{content:"\f7e4"}.fa-fire-alt:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before{content:"\f687"}.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-face-angry:before{content:"\f556"}.fa-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-rss:before{content:"\f09e"}.fa-feed:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale:before{content:"\f24e"}.fa-gauge-simple-high:before{content:"\f62a"}.fa-tachometer:before{content:"\f62a"}.fa-tachometer-fast:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop:before{content:"\f390"}.fa-desktop-alt:before{content:"\f390"}.fa-m:before{content:"M"}.fa-table-list:before{content:"\f00b"}.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before{content:"\f7cd"}.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-4:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-hand-fist:before{content:"\f6de"}.fa-fist-raised:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before{content:"\f3e0"}.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before{content:"\f7a2"}.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before{content:"\f59d"}.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-xmark:before{content:"\f410"}.fa-rectangle-times:before{content:"\f410"}.fa-times-rectangle:before{content:"\f410"}.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before{content:"\f66a"}.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-triangle-exclamation:before{content:"\f071"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-share:before{content:"\f064"}.fa-mail-forward:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-right-left:before{content:"\f362"}.fa-exchange-alt:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before{content:"\f53b"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before{content:"\f2a7"}.fa-sign-language:before{content:"\f2a7"}.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-water-ladder:before{content:"\f5c5"}.fa-ladder-water:before{content:"\f5c5"}.fa-swimming-pool:before{content:"\f5c5"}.fa-arrows-up-down:before{content:"\f07d"}.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before{content:"\f57f"}.fa-grimace:before{content:"\f57f"}.fa-wheelchair-move:before{content:"\e2ce"}.fa-wheelchair-alt:before{content:"\e2ce"}.fa-turn-down:before{content:"\f3be"}.fa-level-down-alt:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-square-envelope:before{content:"\f199"}.fa-envelope-square:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-bandage:before{content:"\f462"}.fa-band-aid:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before{content:"\f057"}.fa-times-circle:before{content:"\f057"}.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before{content:"\f57e"}.fa-globe-asia:before{content:"\f57e"}.fa-id-card-clip:before{content:"\f47f"}.fa-id-card-alt:before{content:"\f47f"}.fa-magnifying-glass-plus:before{content:"\f00e"}.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-hand-dots:before{content:"\f461"}.fa-allergies:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-mug-saucer:before{content:"\f0f4"}.fa-coffee:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before{content:"\f010"}.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-large:before{content:"\f406"}.fa-user-alt:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before{content:"\f249"}.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before{content:"\f5b4"}.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"!"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-turkish-lira-sign:before{content:"\e2bb"}.fa-try:before{content:"\e2bb"}.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before{content:"$"}.fa-dollar:before{content:"$"}.fa-usd:before{content:"$"}.fa-x:before{content:"X"}.fa-magnifying-glass-dollar:before{content:"\f688"}.fa-search-dollar:before{content:"\f688"}.fa-users-gear:before{content:"\f509"}.fa-users-cog:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-building-columns:before{content:"\f19c"}.fa-bank:before{content:"\f19c"}.fa-institution:before{content:"\f19c"}.fa-museum:before{content:"\f19c"}.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"D"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before{content:"\f630"}.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt:before{content:"\f4c6"}.fa-jet-fighter:before{content:"\f0fb"}.fa-fighter-jet:before{content:"\f0fb"}.fa-square-share-nodes:before{content:"\f1e1"}.fa-share-alt-square:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video:before{content:"\f03d"}.fa-video-camera:before{content:"\f03d"}.fa-graduation-cap:before{content:"\f19d"}.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-turn-up:before{content:"\f3bf"}.fa-level-up-alt:before{content:"\f3bf"}.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}:root,:host{--fa-style-family-brands: "Font Awesome 6 Brands";--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fa-brands-400.e465758e13df1d72.woff2) format("woff2"),url(fa-brands-400.8bf6ccf0176a7567.ttf) format("truetype")}.fab,.fa-brands{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-square-js:before{content:"\f3b9"}.fa-js-square:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-square-reddit:before{content:"\f1a2"}.fa-reddit-square:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-square-instagram:before{content:"\e055"}.fa-instagram-square:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-square-hacker-news:before{content:"\f3af"}.fa-hacker-news-square:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-square-snapchat:before{content:"\f2ad"}.fa-snapchat-square:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before{content:"\f2aa"}.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-square-dribbble:before{content:"\f397"}.fa-dribbble-square:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before{content:"\f081"}.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before{content:"\f431"}.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-wpressr:before{content:"\f3e4"}.fa-rendact:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before{content:"\f1b7"}.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before{content:"\f194"}.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-flag:before{content:"\f2b4"}.fa-font-awesome-logo-full:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-square-github:before{content:"\f092"}.fa-github-square:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-square-gitlab:before{content:"\e5ae"}.fa-gitlab-square:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-square-odnoklassniki:before{content:"\f264"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-square-pinterest:before{content:"\f0d3"}.fa-pinterest-square:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-square-google-plus:before{content:"\f0d4"}.fa-google-plus-square:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before{content:"\f169"}.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before{content:"\e080"}.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-square-pied-piper:before{content:"\e01e"}.fa-pied-piper-square:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-square-facebook:before{content:"\f082"}.fa-facebook-square:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-square-lastfm:before{content:"\f203"}.fa-lastfm-square:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before{content:"\e2d0"}.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-square-behance:before{content:"\f1b5"}.fa-behance-square:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-square-git:before{content:"\f1d2"}.fa-git-square:before{content:"\f1d2"}.fa-square-tumblr:before{content:"\f174"}.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before{content:"\f40c"}.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.f386b6b7c6bf65a5.woff2) format("woff2"),url(fa-regular-400.a937b755f79cb30d.ttf) format("truetype")}.far,.fa-regular{font-weight:400}/*! - * Font Awesome Free 6.5.1 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 2023 Fonticons, Inc. - */:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.ce4938a30389d90a.woff2) format("woff2"),url(fa-solid-900.081655f2111aa667.ttf) format("truetype")}.fas,.fa-solid{font-weight:900}.switch{font-size:1rem;position:relative}.switch input{position:absolute;height:1px;width:1px;background:none;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;padding:0}.switch input+label{position:relative;min-width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2);border-radius:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);height:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);display:inline-block;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;vertical-align:middle;text-indent:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch input+label:before,.switch input+label:after{content:"";position:absolute;top:0;left:0;width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2);bottom:0;display:block}.switch input+label:before{right:0;background-color:#dee2e6;border-radius:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);transition:.2s all}.switch input+label:after{top:2px;left:2px;width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);border-radius:50%;background-color:#fff;transition:.2s all}.switch input:checked+label:before{background-color:#0073dd}.switch input:checked+label:after{margin-left:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8)}.switch input:focus+label:before{outline:none;box-shadow:0 0 0 .25rem #0073dd40}.switch input:disabled+label{color:#868e96;cursor:not-allowed}.switch input:disabled+label:before{background-color:#e9ecef}.switch.switch-sm{font-size:.875rem}.switch.switch-sm input+label{min-width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2);height:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8);text-indent:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch.switch-sm input+label:before{width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2)}.switch.switch-sm input+label:after{width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2)}.switch.switch-sm input:checked+label:after{margin-left:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8)}.switch.switch-lg{font-size:1.25rem}.switch.switch-lg input+label{min-width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2);height:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8);text-indent:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch.switch-lg input+label:before{width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2)}.switch.switch-lg input+label:after{width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2)}.switch.switch-lg input:checked+label:after{margin-left:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8)}.switch+.switch{margin-left:1rem}.blink{color:red;animation:blink 2s steps(5,start) infinite;-webkit-animation:blink 1s steps(5,start) infinite}@keyframes blink{to{visibility:hidden}}button[disabled]{cursor:not-allowed}ng-select .ng-dropdown-panel{width:auto}a{text-decoration:none}.card-footer{padding:2;color:transparent;background-color:transparent;border-top:0}.p-datatable .p-sortable-column .p-sortable-column-icon{margin-left:.2rem}.p-inputtext{padding:.375rem .75rem}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.advanced-pie-legend .total-value{font-size:20px!important}.advanced-pie-legend .total-label{font-size:14px!important;margin-bottom:5px!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:14px!important;margin-left:11px;line-height:1em!important;margin-top:0!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:10px!important;opacity:.7;margin-left:11px;margin-top:0!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:14px!important;opacity:.7;margin-left:11px;line-height:1em!important} diff --git a/www/z4d/styles.529f7cdd97c836ce.css b/www/z4d/styles.529f7cdd97c836ce.css new file mode 100644 index 000000000..f83bacc17 --- /dev/null +++ b/www/z4d/styles.529f7cdd97c836ce.css @@ -0,0 +1,13 @@ +.la-line-spin-clockwise-fade-rotating,.la-line-spin-clockwise-fade-rotating>div{position:relative;box-sizing:border-box}.la-line-spin-clockwise-fade-rotating{display:block;font-size:0;color:#fff}.la-line-spin-clockwise-fade-rotating.la-dark{color:#333}.la-line-spin-clockwise-fade-rotating>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-spin-clockwise-fade-rotating{width:32px;height:32px;animation:line-spin-clockwise-fade-rotating-rotate 6s infinite linear}.la-line-spin-clockwise-fade-rotating>div{position:absolute;width:2px;height:10px;margin:-5px 2px 2px -1px;border-radius:0;animation:line-spin-clockwise-fade-rotating 1s infinite ease-in-out}.la-line-spin-clockwise-fade-rotating>div:nth-child(1){top:15%;left:50%;transform:rotate(0);animation-delay:-.875s}.la-line-spin-clockwise-fade-rotating>div:nth-child(2){top:25.2512626585%;left:74.7487373415%;transform:rotate(45deg);animation-delay:-.75s}.la-line-spin-clockwise-fade-rotating>div:nth-child(3){top:50%;left:85%;transform:rotate(90deg);animation-delay:-.625s}.la-line-spin-clockwise-fade-rotating>div:nth-child(4){top:74.7487373415%;left:74.7487373415%;transform:rotate(135deg);animation-delay:-.5s}.la-line-spin-clockwise-fade-rotating>div:nth-child(5){top:84.9999999974%;left:50.0000000004%;transform:rotate(180deg);animation-delay:-.375s}.la-line-spin-clockwise-fade-rotating>div:nth-child(6){top:74.7487369862%;left:25.2512627193%;transform:rotate(225deg);animation-delay:-.25s}.la-line-spin-clockwise-fade-rotating>div:nth-child(7){top:49.9999806189%;left:15.0000039834%;transform:rotate(270deg);animation-delay:-.125s}.la-line-spin-clockwise-fade-rotating>div:nth-child(8){top:25.2506949798%;left:25.2513989292%;transform:rotate(315deg);animation-delay:0s}.la-line-spin-clockwise-fade-rotating.la-sm{width:16px;height:16px}.la-line-spin-clockwise-fade-rotating.la-sm>div{width:1px;height:4px;margin-top:-2px;margin-left:0}.la-line-spin-clockwise-fade-rotating.la-2x{width:64px;height:64px}.la-line-spin-clockwise-fade-rotating.la-2x>div{width:4px;height:20px;margin-top:-10px;margin-left:-2px}.la-line-spin-clockwise-fade-rotating.la-3x{width:96px;height:96px}.la-line-spin-clockwise-fade-rotating.la-3x>div{width:6px;height:30px;margin-top:-15px;margin-left:-3px}@keyframes line-spin-clockwise-fade-rotating-rotate{to{transform:rotate(-360deg)}}@keyframes line-spin-clockwise-fade-rotating{50%{opacity:.2}to{opacity:1}}/*! + * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) + * Copyright 2015 Daniel Cardoso <@DanielCardoso> + * Licensed under MIT + */.la-line-scale,.la-line-scale>div{position:relative;box-sizing:border-box}.la-line-scale{display:block;font-size:0;color:#fff}.la-line-scale.la-dark{color:#333}.la-line-scale>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-line-scale{width:40px;height:32px}.la-line-scale>div{width:4px;height:32px;margin:0 2px;border-radius:0;animation:line-scale 1.2s infinite ease}.la-line-scale>div:nth-child(1){animation-delay:-1.2s}.la-line-scale>div:nth-child(2){animation-delay:-1.1s}.la-line-scale>div:nth-child(3){animation-delay:-1s}.la-line-scale>div:nth-child(4){animation-delay:-.9s}.la-line-scale>div:nth-child(5){animation-delay:-.8s}.la-line-scale.la-sm{width:20px;height:16px}.la-line-scale.la-sm>div{width:2px;height:16px;margin:0 1px}.la-line-scale.la-2x{width:80px;height:64px}.la-line-scale.la-2x>div{width:8px;height:64px;margin:0 4px}.la-line-scale.la-3x{width:120px;height:96px}.la-line-scale.la-3x>div{width:12px;height:96px;margin:0 6px}@keyframes line-scale{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}.ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-focused:not(.ng-select-opened)>.ng-select-container{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:4px;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#ebf5ff;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5faff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#ebf5ff;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#ebf5ff}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5faff;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}@charset "UTF-8";html{font-size:13px}@layer bootstrap,primeng;/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue: #0073dd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #e83e8c;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #28a745;--bs-teal: #20c997;--bs-cyan: #17a2b8;--bs-black: #000;--bs-white: #fff;--bs-gray: #868e96;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #868e96;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0073dd;--bs-secondary: #868e96;--bs-success: #28a745;--bs-info: #17a2b8;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 0, 115, 221;--bs-secondary-rgb: 134, 142, 150;--bs-success-rgb: 40, 167, 69;--bs-info-rgb: 23, 162, 184;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #002e58;--bs-secondary-text-emphasis: #36393c;--bs-success-text-emphasis: #10431c;--bs-info-text-emphasis: #09414a;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cce3f8;--bs-secondary-bg-subtle: #e7e8ea;--bs-success-bg-subtle: #d4edda;--bs-info-bg-subtle: #d1ecf1;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #99c7f1;--bs-secondary-border-subtle: #cfd2d5;--bs-success-border-subtle: #a9dcb5;--bs-info-border-subtle: #a2dae3;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0073dd;--bs-link-color-rgb: 0, 115, 221;--bs-link-decoration: underline;--bs-link-hover-color: #005cb1;--bs-link-hover-color-rgb: 0, 92, 177;--bs-code-color: #e83e8c;--bs-highlight-color: #212529;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(0, 115, 221, .25);--bs-form-valid-color: #28a745;--bs-form-valid-border-color: #28a745;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #66abeb;--bs-secondary-text-emphasis: #b6bbc0;--bs-success-text-emphasis: #7eca8f;--bs-info-text-emphasis: #74c7d4;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #00172c;--bs-secondary-bg-subtle: #1b1c1e;--bs-success-bg-subtle: #08210e;--bs-info-bg-subtle: #052025;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #004585;--bs-secondary-border-subtle: #50555a;--bs-success-border-subtle: #186429;--bs-info-border-subtle: #0e616e;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #66abeb;--bs-link-hover-color: #85bcef;--bs-link-color-rgb: 102, 171, 235;--bs-link-hover-color-rgb: 133, 188, 239;--bs-code-color: #f18bba;--bs-highlight-color: #dee2e6;--bs-highlight-bg: #664d03;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #7eca8f;--bs-form-valid-border-color: #7eca8f;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#868e96}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-emphasis-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-emphasis-color);--bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color: var(--bs-emphasis-color);--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color: var(--bs-emphasis-color);--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cce3f8;--bs-table-border-color: #a3b6c6;--bs-table-striped-bg: #c2d8ec;--bs-table-striped-color: #000;--bs-table-active-bg: #b8ccdf;--bs-table-active-color: #000;--bs-table-hover-bg: #bdd2e5;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e7e8ea;--bs-table-border-color: #b9babb;--bs-table-striped-bg: #dbdcde;--bs-table-striped-color: #000;--bs-table-active-bg: #d0d1d3;--bs-table-active-color: #000;--bs-table-hover-bg: #d6d7d8;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d4edda;--bs-table-border-color: #aabeae;--bs-table-striped-bg: #c9e1cf;--bs-table-striped-color: #000;--bs-table-active-bg: #bfd5c4;--bs-table-active-color: #000;--bs-table-hover-bg: #c4dbca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #d1ecf1;--bs-table-border-color: #a7bdc1;--bs-table-striped-bg: #c7e0e5;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd4d9;--bs-table-active-color: #000;--bs-table-hover-bg: #c1dadf;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #ccc2a4;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #c6acae;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #c6c7c8;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #4d5154;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80b9ee;outline:0;box-shadow:0 0 0 .25rem #0073dd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80b9ee;outline:0;box-shadow:0 0 0 .25rem #0073dd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#80b9ee;outline:0;box-shadow:0 0 0 .25rem #0073dd40}.form-check-input:checked{background-color:#0073dd;border-color:#0073dd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0073dd;border-color:#0073dd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380b9ee'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0073dd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0073dd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0073dd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3d5f5}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0073dd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3d5f5}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#868e96}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0073dd;--bs-btn-border-color: #0073dd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0062bc;--bs-btn-hover-border-color: #005cb1;--bs-btn-focus-shadow-rgb: 38, 136, 226;--bs-btn-active-color: #fff;--bs-btn-active-bg: #005cb1;--bs-btn-active-border-color: #0056a6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0073dd;--bs-btn-disabled-border-color: #0073dd}.btn-secondary{--bs-btn-color: #000;--bs-btn-bg: #868e96;--bs-btn-border-color: #868e96;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #989fa6;--bs-btn-hover-border-color: #9299a1;--bs-btn-focus-shadow-rgb: 114, 121, 128;--bs-btn-active-color: #000;--bs-btn-active-bg: #9ea5ab;--bs-btn-active-border-color: #9299a1;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #868e96;--bs-btn-disabled-border-color: #868e96}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #28a745;--bs-btn-border-color: #28a745;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #48b461;--bs-btn-hover-border-color: #3eb058;--bs-btn-focus-shadow-rgb: 34, 142, 59;--bs-btn-active-color: #000;--bs-btn-active-bg: #53b96a;--bs-btn-active-border-color: #3eb058;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #28a745;--bs-btn-disabled-border-color: #28a745}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #17a2b8;--bs-btn-border-color: #17a2b8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #3ab0c3;--bs-btn-hover-border-color: #2eabbf;--bs-btn-focus-shadow-rgb: 20, 138, 156;--bs-btn-active-color: #000;--bs-btn-active-bg: #45b5c6;--bs-btn-active-border-color: #2eabbf;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #17a2b8;--bs-btn-disabled-border-color: #17a2b8}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0073dd;--bs-btn-border-color: #0073dd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0073dd;--bs-btn-hover-border-color: #0073dd;--bs-btn-focus-shadow-rgb: 0, 115, 221;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0073dd;--bs-btn-active-border-color: #0073dd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0073dd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0073dd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #868e96;--bs-btn-border-color: #868e96;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #868e96;--bs-btn-hover-border-color: #868e96;--bs-btn-focus-shadow-rgb: 134, 142, 150;--bs-btn-active-color: #000;--bs-btn-active-bg: #868e96;--bs-btn-active-border-color: #868e96;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #868e96;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #868e96;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #28a745;--bs-btn-border-color: #28a745;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #28a745;--bs-btn-hover-border-color: #28a745;--bs-btn-focus-shadow-rgb: 40, 167, 69;--bs-btn-active-color: #000;--bs-btn-active-bg: #28a745;--bs-btn-active-border-color: #28a745;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #28a745;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #28a745;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #17a2b8;--bs-btn-border-color: #17a2b8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #17a2b8;--bs-btn-hover-border-color: #17a2b8;--bs-btn-focus-shadow-rgb: 23, 162, 184;--bs-btn-active-color: #000;--bs-btn-active-bg: #17a2b8;--bs-btn-active-border-color: #17a2b8;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #17a2b8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #17a2b8;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #868e96;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 136, 226;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0073dd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #868e96;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0073dd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0073dd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0073dd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23002e58' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(0, 115, 221, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366abeb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366abeb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0, 115, 221, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0073dd;--bs-pagination-active-border-color: #0073dd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0073dd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0073dd;--bs-list-group-active-border-color: #0073dd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(0, 115, 221, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#000!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#000!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(0,92,177,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(0,92,177,var(--bs-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(158,165,171,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(158,165,171,var(--bs-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(83,185,106,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(83,185,106,var(--bs-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(69,181,198,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(69,181,198,var(--bs-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(249,250,251,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{animation:p-icon-spin 2s infinite linear}}@keyframes p-icon-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:"p";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url(color.dae87a04d07ca92b.png) no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(hue.8b1818380241e6ac.png) no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.fa{font-family:var(--fa-style-family, "Font Awesome 6 Free");font-weight:var(--fa-style, 900)}.fa,.fa-classic,.fa-sharp,.fas,.fa-solid,.far,.fa-regular,.fab,.fa-brands{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display, inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fas,.fa-classic,.fa-solid,.far,.fa-regular{font-family:"Font Awesome 6 Free"}.fab,.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .08em);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{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(.28, .84, .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(.4, 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(.4, 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) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .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%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{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:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-right:before{content:"\f138"}.fa-at:before{content:"@"}.fa-trash-can:before{content:"\f2ed"}.fa-trash-alt:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-xmark:before{content:"\f235"}.fa-user-times:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-message:before{content:"\f27a"}.fa-comment-alt:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-compress-alt:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-lines:before{content:"\f15c"}.fa-file-alt:before{content:"\f15c"}.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-days:before{content:"\f073"}.fa-calendar-alt:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball:before{content:"\f45f"}.fa-volleyball-ball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-desc:before{content:"\f0dd"}.fa-circle-minus:before{content:"\f056"}.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before{content:"\f2f5"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-icons:before{content:"\f86d"}.fa-heart-music-camera-bolt:before{content:"\f86d"}.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before{content:"\f689"}.fa-search-location:before{content:"\f689"}.fa-forward-step:before{content:"\f051"}.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before{content:"\f5b8"}.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football:before{content:"\f44e"}.fa-football-ball:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angles-down:before{content:"\f103"}.fa-angle-double-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before{content:"\f0fc"}.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before{content:"\f176"}.fa-long-arrow-up:before{content:"\f176"}.fa-fire-flame-simple:before{content:"\f46a"}.fa-burn:before{content:"\f46a"}.fa-person:before{content:"\f183"}.fa-male:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before{content:"\f587"}.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-pastafarianism:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before{content:"\f2e5"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before{content:"\f674"}.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before{content:"\f47e"}.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before{content:"\f2b9"}.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"K"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil:before{content:"\f303"}.fa-pencil-alt:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-paste:before{content:"\f0ea"}.fa-file-clipboard:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-ramp-box:before{content:"\f4de"}.fa-truck-loading:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before{content:"\f6a0"}.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before{content:"\f458"}.fa-quidditch:before{content:"\f458"}.fa-quidditch-broom-ball:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-box-archive:before{content:"\f187"}.fa-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before{content:"\f886"}.fa-sort-numeric-desc:before{content:"\f886"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"W"}.fa-earth-africa:before{content:"\f57c"}.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablet-alt:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before{content:"\f579"}.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before{content:"\f0e3"}.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before{content:"\f562"}.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before{content:"\f5ae"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows:before{content:"\e068"}.fa-people-arrows-left-right:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-right:before{content:"\f152"}.fa-scissors:before{content:"\f0c4"}.fa-cut:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-tachograph-digital:before{content:"\f566"}.fa-digital-tachograph:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-reply:before{content:"\f3e5"}.fa-mail-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-square-minus:before{content:"\f146"}.fa-minus-square:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-3:before{content:"\f253"}.fa-heart-crack:before{content:"\f7a9"}.fa-heart-broken:before{content:"\f7a9"}.fa-square-up-right:before{content:"\f360"}.fa-external-link-square-alt:before{content:"\f360"}.fa-face-kiss-beam:before{content:"\f597"}.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before{content:"\f06a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before{content:"\f08b"}.fa-sign-out:before{content:"\f08b"}.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-unlock-keyhole:before{content:"\f13e"}.fa-unlock-alt:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-simple:before{content:"\f58f"}.fa-headphones-alt:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before{content:"\f4b9"}.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-low:before{content:"\f027"}.fa-volume-down:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-alt:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"*"}.fa-square-check:before{content:"\f14a"}.fa-check-square:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-heading:before{content:"\f1dc"}.fa-header:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list:before{content:"\f03a"}.fa-list-squares:before{content:"\f03a"}.fa-square-phone-flip:before{content:"\f87b"}.fa-phone-square-alt:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before{content:"\f192"}.fa-dot-circle:before{content:"\f192"}.fa-face-dizzy:before{content:"\f567"}.fa-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol:before{content:"\f1e3"}.fa-futbol-ball:before{content:"\f1e3"}.fa-soccer-ball:before{content:"\f1e3"}.fa-paintbrush:before{content:"\f1fc"}.fa-paint-brush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before{content:"\f593"}.fa-hot-tub:before{content:"\f593"}.fa-map-location:before{content:"\f59f"}.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-pen-to-square:before{content:"\f044"}.fa-edit:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-nodes:before{content:"\f1e0"}.fa-share-alt:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-2:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before{content:"\f290"}.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before{content:"\f881"}.fa-sort-alpha-desc:before{content:"\f881"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand:before{content:"\f256"}.fa-hand-paper:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before{content:"\f596"}.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before{content:"\f589"}.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before{content:"\f58c"}.fa-grin-wink:before{content:"\f58c"}.fa-ear-deaf:before{content:"\f2a4"}.fa-deaf:before{content:"\f2a4"}.fa-deafness:before{content:"\f2a4"}.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-square-rss:before{content:"\f143"}.fa-rss-square:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"I"}.fa-hryvnia-sign:before{content:"\f6f2"}.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before{content:"\f581"}.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"V"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-staff-snake:before{content:"\e579"}.fa-rod-asclepius:before{content:"\e579"}.fa-rod-snake:before{content:"\e579"}.fa-staff-aesculapius:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-truck-medical:before{content:"\f0f9"}.fa-ambulance:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"Q"}.fa-g:before{content:"G"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-half:before{content:"\f2c9"}.fa-temperature-2:before{content:"\f2c9"}.fa-thermometer-2:before{content:"\f2c9"}.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-storm:before{content:"\f75a"}.fa-poo-bolt:before{content:"\f75a"}.fa-face-frown-open:before{content:"\f57a"}.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder:before{content:"\f07b"}.fa-folder-blank:before{content:"\f07b"}.fa-file-waveform:before{content:"\f478"}.fa-file-medical-alt:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-gauge:before{content:"\f624"}.fa-dashboard:before{content:"\f624"}.fa-gauge-med:before{content:"\f624"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-magic-wand-sparkles:before{content:"\e2ca"}.fa-e:before{content:"E"}.fa-pen-clip:before{content:"\f305"}.fa-pen-alt:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-van-shuttle:before{content:"\f5b6"}.fa-shuttle-van:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"C"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-chart-area:before{content:"\f1fe"}.fa-area-chart:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before{content:"\f05e"}.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-air-freshener:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before{content:"\f245"}.fa-mouse-pointer:before{content:"\f245"}.fa-maximize:before{content:"\f31e"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before{content:"\f61f"}.fa-triangle-circle-square:before{content:"\f61f"}.fa-shuffle:before{content:"\f074"}.fa-random:before{content:"\f074"}.fa-person-running:before{content:"\f70c"}.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before{content:"\f8cc"}.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before{content:"\f090"}.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before{content:"\e070"}.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-1:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before{content:"\f21e"}.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before{content:"\f4ce"}.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before{content:"\f496"}.fa-weight:before{content:"\f496"}.fa-user-group:before{content:"\f500"}.fa-user-friends:before{content:"\f500"}.fa-arrow-up-a-z:before{content:"\f15e"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before{content:"\f59b"}.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-circle-arrow-up:before{content:"\f0aa"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before{content:"\f554"}.fa-walking:before{content:"\f554"}.fa-l:before{content:"L"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before{content:"\f487"}.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before{content:"\f197"}.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before{content:"\f599"}.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before{content:"\f22a"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before{content:"\f79f"}.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before{content:"\f574"}.fa-file-upload:before{content:"\f574"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-3:before{content:"\f1eb"}.fa-wifi-strong:before{content:"\f1eb"}.fa-bath:before{content:"\f2cd"}.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-pen:before{content:"\f4ff"}.fa-user-edit:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-top-left:before{content:"\f853"}.fa-border-style:before{content:"\f853"}.fa-map-location-dot:before{content:"\f5a0"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-square-poll-vertical:before{content:"\f681"}.fa-poll:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-car-battery:before{content:"\f5df"}.fa-battery-car:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-hand-back-fist:before{content:"\f255"}.fa-hand-rock:before{content:"\f255"}.fa-square-caret-up:before{content:"\f151"}.fa-caret-square-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-chart-bar:before{content:"\f080"}.fa-bar-chart:before{content:"\f080"}.fa-hands-bubbles:before{content:"\e05e"}.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before{content:"\f2a8"}.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-square-plus:before{content:"\f0fe"}.fa-plus-square:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-martini-glass:before{content:"\f57b"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-rotate-left:before{content:"\f2ea"}.fa-rotate-back:before{content:"\f2ea"}.fa-rotate-backward:before{content:"\f2ea"}.fa-undo-alt:before{content:"\f2ea"}.fa-table-columns:before{content:"\f0db"}.fa-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly:before{content:"\f472"}.fa-dolly-box:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-minimize:before{content:"\f78c"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angles-right:before{content:"\f101"}.fa-angle-double-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before{content:"\f144"}.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-euro-sign:before{content:"\f153"}.fa-eur:before{content:"\f153"}.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-circle-check:before{content:"\f058"}.fa-check-circle:before{content:"\f058"}.fa-circle-stop:before{content:"\f28d"}.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before{content:"\f568"}.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before{content:"\f59a"}.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-circle-chevron-up:before{content:"\f139"}.fa-chevron-circle-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-sterling-sign:before{content:"\f154"}.fa-gbp:before{content:"\f154"}.fa-pound-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before{content:"\f175"}.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before{content:"\f7c5"}.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before{content:"\f662"}.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-file-import:before{content:"\f56f"}.fa-arrow-right-to-file:before{content:"\f56f"}.fa-square-arrow-up-right:before{content:"\f14c"}.fa-external-link-square:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-empty:before{content:"\f2cb"}.fa-temperature-0:before{content:"\f2cb"}.fa-thermometer-0:before{content:"\f2cb"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before{content:"\f2bb"}.fa-contact-card:before{content:"\f2bb"}.fa-vcard:before{content:"\f2bb"}.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-balance-scale-right:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before{content:"\f5eb"}.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before{content:"\e066"}.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before{content:"\f5c8"}.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before{content:"\f0ee"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before{content:"\f4d8"}.fa-sprout:before{content:"\f4d8"}.fa-left-right:before{content:"\f337"}.fa-arrows-alt-h:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before{content:"\f160"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before{content:"\f76c"}.fa-thunderstorm:before{content:"\f76c"}.fa-text-slash:before{content:"\f87d"}.fa-remove-format:before{content:"\f87d"}.fa-face-smile-wink:before{content:"\f4da"}.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-h:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before{content:"\f0ed"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-chalkboard:before{content:"\f51b"}.fa-blackboard:before{content:"\f51b"}.fa-user-large-slash:before{content:"\f4fa"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before{content:"\f021"}.fa-refresh:before{content:"\f021"}.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-halved:before{content:"\f3ed"}.fa-shield-alt:before{content:"\f3ed"}.fa-book-atlas:before{content:"\f558"}.fa-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before{content:"\f6f1"}.fa-house-damage:before{content:"\f6f1"}.fa-file-zipper:before{content:"\f1c6"}.fa-file-archive:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-martini-glass-empty:before{content:"\f000"}.fa-glass-martini:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"Z"}.fa-person-skiing:before{content:"\f7c9"}.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"A"}.fa-temperature-arrow-down:before{content:"\e03f"}.fa-temperature-down:before{content:"\e03f"}.fa-feather-pointed:before{content:"\f56b"}.fa-feather-alt:before{content:"\f56b"}.fa-p:before{content:"P"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-rectangle-ad:before{content:"\f641"}.fa-ad:before{content:"\f641"}.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-list-ol:before{content:"\f0cb"}.fa-list-1-2:before{content:"\f0cb"}.fa-list-numeric:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-dollar:before{content:"\f53d"}.fa-money-check-alt:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before{content:"\f598"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"?"}.fa-file-signature:before{content:"\f573"}.fa-up-down-left-right:before{content:"\f0b2"}.fa-arrows-alt:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-half-alt:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-whiskey-glass:before{content:"\f7a0"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-won-sign:before{content:"\f159"}.fa-krw:before{content:"\f159"}.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"F"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-taxi:before{content:"\f1ba"}.fa-cab:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before{content:"\f200"}.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before{content:"\f582"}.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before{content:"\f041"}.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-helmet-safety:before{content:"\f807"}.fa-hard-hat:before{content:"\f807"}.fa-hat-hard:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before{content:"\f5a5"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before{content:"\f201"}.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-signs-post:before{content:"\f277"}.fa-map-signs:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"H"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before{content:"\f7d9"}.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-house-user:before{content:"\e1b0"}.fa-home-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-martini-glass-citrus:before{content:"\f561"}.fa-cocktail:before{content:"\f561"}.fa-face-surprise:before{content:"\f5c2"}.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before{content:"\f28b"}.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-whole:before{content:"\f5d1"}.fa-apple-alt:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"R"}.fa-temperature-quarter:before{content:"\f2ca"}.fa-temperature-1:before{content:"\f2ca"}.fa-thermometer-1:before{content:"\f2ca"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll-h:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before{content:"\f049"}.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball:before{content:"\f434"}.fa-basketball-ball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-circle-up:before{content:"\f35b"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-mobile-screen-button:before{content:"\f3cd"}.fa-mobile-alt:before{content:"\f3cd"}.fa-volume-high:before{content:"\f028"}.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before{content:"\f805"}.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before{content:"\f156"}.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before{content:"\f059"}.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-flip:before{content:"\f879"}.fa-phone-alt:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-forward-fast:before{content:"\f050"}.fa-fast-forward:before{content:"\f050"}.fa-face-meh-blank:before{content:"\f5a4"}.fa-meh-blank:before{content:"\f5a4"}.fa-square-parking:before{content:"\f540"}.fa-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before{content:"\f828"}.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before{content:"\f474"}.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before{content:"\f54d"}.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before{content:"\f291"}.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-simple:before{content:"\f55e"}.fa-bus-alt:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before{content:"\f5b3"}.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal:before{content:"\f012"}.fa-signal-5:before{content:"\f012"}.fa-signal-perfect:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-house-chimney:before{content:"\e3af"}.fa-home-lg:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before{content:"\f119"}.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before{content:"\f54f"}.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before{content:"\f0c7"}.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-left:before{content:"\f515"}.fa-sort-up:before{content:"\f0de"}.fa-sort-asc:before{content:"\f0de"}.fa-comment-dots:before{content:"\f4ad"}.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before{content:"\f585"}.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before{content:"\f4c0"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before{content:"\f684"}.fa-praying-hands:before{content:"\f684"}.fa-arrow-rotate-right:before{content:"\f01e"}.fa-arrow-right-rotate:before{content:"\f01e"}.fa-arrow-rotate-forward:before{content:"\f01e"}.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before{content:"\f601"}.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before{content:"\f588"}.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-xmark:before{content:"\f273"}.fa-calendar-times:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-gear:before{content:"\f4fe"}.fa-user-cog:before{content:"\f4fe"}.fa-arrow-up-1-9:before{content:"\f163"}.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-person-digging:before{content:"\f85e"}.fa-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple:before{content:"\f629"}.fa-gauge-simple-med:before{content:"\f629"}.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right:before{content:"\f10e"}.fa-quote-right-alt:before{content:"\f10e"}.fa-shirt:before{content:"\f553"}.fa-t-shirt:before{content:"\f553"}.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before{content:"\f7d7"}.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"J"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-up-right-from-square:before{content:"\f35d"}.fa-external-link-alt:before{content:"\f35d"}.fa-table-cells:before{content:"\f00a"}.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-book-bible:before{content:"\f647"}.fa-bible:before{content:"\f647"}.fa-o:before{content:"O"}.fa-suitcase-medical:before{content:"\f0fa"}.fa-medkit:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-person-dress:before{content:"\f182"}.fa-female:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-business-time:before{content:"\f64a"}.fa-briefcase-clock:before{content:"\f64a"}.fa-table-cells-large:before{content:"\f009"}.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before{content:"\f827"}.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before{content:"\f2a0"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-cake-candles:before{content:"\f1fd"}.fa-birthday-cake:before{content:"\f1fd"}.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angles-up:before{content:"\f102"}.fa-angle-double-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before{content:"\f887"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before{content:"\f0f0"}.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before{content:"\f05a"}.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before{content:"\f162"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before{content:"\f4c1"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-medical:before{content:"\f486"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before{content:"\f15d"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-rotate-left:before{content:"\f0e2"}.fa-arrow-left-rotate:before{content:"\f0e2"}.fa-arrow-rotate-back:before{content:"\f0e2"}.fa-arrow-rotate-backward:before{content:"\f0e2"}.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before{content:"\f0a0"}.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before{content:"\f586"}.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-rectangle-list:before{content:"\f022"}.fa-list-alt:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before{content:"\f7ca"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-train-subway:before{content:"\f239"}.fa-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before{content:"\e1bc"}.fa-indian-rupee:before{content:"\e1bc"}.fa-inr:before{content:"\e1bc"}.fa-crop-simple:before{content:"\f565"}.fa-crop-alt:before{content:"\f565"}.fa-money-bill-1:before{content:"\f3d1"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before{content:"\f30a"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before{content:"\f068"}.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before{content:"\f177"}.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-asl-interpreting:before{content:"\f2a3"}.fa-hands-american-sign-language-interpreting:before{content:"\f2a3"}.fa-gear:before{content:"\f013"}.fa-cog:before{content:"\f013"}.fa-droplet-slash:before{content:"\f5c7"}.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before{content:"\f07a"}.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before{content:"\f148"}.fa-level-up:before{content:"\f148"}.fa-u:before{content:"U"}.fa-square-root-variable:before{content:"\f698"}.fa-square-root-alt:before{content:"\f698"}.fa-clock:before{content:"\f017"}.fa-clock-four:before{content:"\f017"}.fa-backward-step:before{content:"\f048"}.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"S"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-house-chimney-medical:before{content:"\f7f2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-temperature-three-quarters:before{content:"\f2c8"}.fa-temperature-3:before{content:"\f2c8"}.fa-thermometer-3:before{content:"\f2c8"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-half:before{content:"\f242"}.fa-battery-3:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders:before{content:"\f1de"}.fa-sliders-h:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-vertical:before{content:"\f142"}.fa-ellipsis-v:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-right-long:before{content:"\f30b"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-tty:before{content:"\f1e4"}.fa-teletype:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-person-hiking:before{content:"\f6ec"}.fa-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"N"}.fa-cable-car:before{content:"\f7da"}.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before{content:"\f580"}.fa-grin:before{content:"\f580"}.fa-delete-left:before{content:"\f55a"}.fa-backspace:before{content:"\f55a"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-dropper-empty:before{content:"\f1fb"}.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile:before{content:"\f3ce"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-phone:before{content:"\f3ce"}.fa-face-meh:before{content:"\f11a"}.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-skull:before{content:"\f6b7"}.fa-book-dead:before{content:"\f6b7"}.fa-id-card:before{content:"\f2c2"}.fa-drivers-license:before{content:"\f2c2"}.fa-outdent:before{content:"\f03b"}.fa-dedent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-house:before{content:"\f015"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f015"}.fa-home-lg-alt:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"B"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before{content:"\f0ec"}.fa-exchange:before{content:"\f0ec"}.fa-rotate-right:before{content:"\f2f9"}.fa-redo-alt:before{content:"\f2f9"}.fa-rotate-forward:before{content:"\f2f9"}.fa-utensils:before{content:"\f2e7"}.fa-cutlery:before{content:"\f2e7"}.fa-arrow-up-wide-short:before{content:"\f161"}.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-tower-broadcast:before{content:"\f519"}.fa-broadcast-tower:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-up-long:before{content:"\f30c"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before{content:"\f56d"}.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before{content:"\f0e7"}.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-yen-sign:before{content:"\f157"}.fa-cny:before{content:"\f157"}.fa-jpy:before{content:"\f157"}.fa-rmb:before{content:"\f157"}.fa-yen:before{content:"\f157"}.fa-ruble-sign:before{content:"\f158"}.fa-rouble:before{content:"\f158"}.fa-rub:before{content:"\f158"}.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before{content:"\f59c"}.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before{content:"\f884"}.fa-sort-amount-desc:before{content:"\f884"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"<"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before{content:"\f178"}.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-h:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-kit-medical:before{content:"\f479"}.fa-first-aid:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-alt:before{content:"\f09d"}.fa-car:before{content:"\f1b9"}.fa-automobile:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before{content:"\f5da"}.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before{content:"\e040"}.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-square-h:before{content:"\f0fd"}.fa-h-square:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-full:before{content:"\f2c7"}.fa-temperature-4:before{content:"\f2c7"}.fa-thermometer-4:before{content:"\f2c7"}.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-handshake-angle:before{content:"\f4c4"}.fa-hands-helping:before{content:"\f4c4"}.fa-location-dot:before{content:"\f3c5"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:">"}.fa-person-swimming:before{content:"\f5c4"}.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before{content:"\f043"}.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-americas:before{content:"\f57d"}.fa-earth:before{content:"\f57d"}.fa-earth-america:before{content:"\f57d"}.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-empty:before{content:"\f244"}.fa-battery-0:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before{content:"\f625"}.fa-tachometer-alt:before{content:"\f625"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f0f8"}.fa-hospital-wide:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before{content:"\f550"}.fa-reorder:before{content:"\f550"}.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-person-walking-with-cane:before{content:"\f29d"}.fa-blind:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before{content:"\f772"}.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-stacked:before{content:"\f468"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f468"}.fa-link:before{content:"\f0c1"}.fa-chain:before{content:"\f0c1"}.fa-ear-listen:before{content:"\f2a2"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before{content:"\f002"}.fa-search:before{content:"\f002"}.fa-table-tennis-paddle-ball:before{content:"\f45d"}.fa-ping-pong-paddle-ball:before{content:"\f45d"}.fa-table-tennis:before{content:"\f45d"}.fa-person-dots-from-line:before{content:"\f470"}.fa-diagnoses:before{content:"\f470"}.fa-trash-can-arrow-up:before{content:"\f82a"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-pen:before{content:"\f31c"}.fa-file-edit:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-square-pen:before{content:"\f14b"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-square:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-full:before{content:"\f240"}.fa-battery:before{content:"\f240"}.fa-battery-5:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-ul:before{content:"\f0ca"}.fa-list-dots:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before{content:"\f309"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-dome:before{content:"\f752"}.fa-landmark-alt:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-tv:before{content:"\f26c"}.fa-television:before{content:"\f26c"}.fa-tv-alt:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before{content:"\f0ae"}.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before{content:"\f2bd"}.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before{content:"\f5e1"}.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"Y"}.fa-person-snowboarding:before{content:"\f7ce"}.fa-snowboarding:before{content:"\f7ce"}.fa-truck-fast:before{content:"\f48b"}.fa-shipping-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-circle-half-stroke:before{content:"\f042"}.fa-adjust:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before{content:"\f7ba"}.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball:before{content:"\f433"}.fa-baseball-ball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before{content:"\f542"}.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-xmark:before{content:"\f6a9"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-times:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip:before{content:"\f58d"}.fa-grip-horizontal:before{content:"\f58d"}.fa-share-from-square:before{content:"\f14d"}.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before{content:"\e4e0"}.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-square-phone:before{content:"\f098"}.fa-phone-square:before{content:"\f098"}.fa-plus:before{content:"+"}.fa-add:before{content:"+"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-xmark:before{content:"\f00d"}.fa-close:before{content:"\f00d"}.fa-multiply:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-arrows-up-down-left-right:before{content:"\f047"}.fa-arrows:before{content:"\f047"}.fa-chalkboard-user:before{content:"\f51c"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left:before{content:"\f10d"}.fa-quote-left-alt:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before{content:"\f829"}.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"="}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-shekel-sign:before{content:"\f20b"}.fa-ils:before{content:"\f20b"}.fa-shekel:before{content:"\f20b"}.fa-sheqel:before{content:"\f20b"}.fa-sheqel-sign:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before{content:"\f87c"}.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before{content:"\f4d9"}.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet:before{content:"\f3fb"}.fa-tablet-android:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-rear:before{content:"\f5de"}.fa-car-alt:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-2:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before{content:"\f77d"}.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before{content:"%"}.fa-percentage:before{content:"%"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before{content:"\f118"}.fa-smile:before{content:"\f118"}.fa-thumbtack:before{content:"\f08d"}.fa-thumb-tack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before{content:"\f683"}.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before{content:"\f2f1"}.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-gears:before{content:"\f085"}.fa-cogs:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before{content:"\f584"}.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender:before{content:"\f225"}.fa-transgender-alt:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before{content:"\f149"}.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-simple:before{content:"\f3ff"}.fa-ticket-alt:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angles-left:before{content:"\f100"}.fa-angle-double-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before{content:"\f1da"}.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before{content:"\f583"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-file-export:before{content:"\f56e"}.fa-arrow-right-from-file:before{content:"\f56e"}.fa-shield:before{content:"\f132"}.fa-shield-blank:before{content:"\f132"}.fa-arrow-up-short-wide:before{content:"\f885"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before{content:"\f450"}.fa-golf-ball:before{content:"\f450"}.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-wand-magic:before{content:"\f0d0"}.fa-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-empty:before{content:"\f5ce"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-person-biking:before{content:"\f84a"}.fa-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before{content:"\e47b"}.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before{content:"\f2d3"}.fa-times-square:before{content:"\f2d3"}.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"#"}.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-expand-alt:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"T"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-up-down:before{content:"\f338"}.fa-arrows-alt-v:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before{content:"\f666"}.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before{content:"\f055"}.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before{content:"\f58b"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-link-slash:before{content:"\f127"}.fa-chain-broken:before{content:"\f127"}.fa-chain-slash:before{content:"\f127"}.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before{content:"\f882"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-flame-curved:before{content:"\f7e4"}.fa-fire-alt:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before{content:"\f687"}.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-face-angry:before{content:"\f556"}.fa-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-rss:before{content:"\f09e"}.fa-feed:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale:before{content:"\f24e"}.fa-gauge-simple-high:before{content:"\f62a"}.fa-tachometer:before{content:"\f62a"}.fa-tachometer-fast:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop:before{content:"\f390"}.fa-desktop-alt:before{content:"\f390"}.fa-m:before{content:"M"}.fa-table-list:before{content:"\f00b"}.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before{content:"\f7cd"}.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-4:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-hand-fist:before{content:"\f6de"}.fa-fist-raised:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before{content:"\f3e0"}.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before{content:"\f7a2"}.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before{content:"\f59d"}.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-xmark:before{content:"\f410"}.fa-rectangle-times:before{content:"\f410"}.fa-times-rectangle:before{content:"\f410"}.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before{content:"\f66a"}.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-triangle-exclamation:before{content:"\f071"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-share:before{content:"\f064"}.fa-mail-forward:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-right-left:before{content:"\f362"}.fa-exchange-alt:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before{content:"\f53b"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before{content:"\f2a7"}.fa-sign-language:before{content:"\f2a7"}.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-water-ladder:before{content:"\f5c5"}.fa-ladder-water:before{content:"\f5c5"}.fa-swimming-pool:before{content:"\f5c5"}.fa-arrows-up-down:before{content:"\f07d"}.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before{content:"\f57f"}.fa-grimace:before{content:"\f57f"}.fa-wheelchair-move:before{content:"\e2ce"}.fa-wheelchair-alt:before{content:"\e2ce"}.fa-turn-down:before{content:"\f3be"}.fa-level-down-alt:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-square-envelope:before{content:"\f199"}.fa-envelope-square:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-bandage:before{content:"\f462"}.fa-band-aid:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before{content:"\f057"}.fa-times-circle:before{content:"\f057"}.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before{content:"\f57e"}.fa-globe-asia:before{content:"\f57e"}.fa-id-card-clip:before{content:"\f47f"}.fa-id-card-alt:before{content:"\f47f"}.fa-magnifying-glass-plus:before{content:"\f00e"}.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-hand-dots:before{content:"\f461"}.fa-allergies:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-mug-saucer:before{content:"\f0f4"}.fa-coffee:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before{content:"\f010"}.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-large:before{content:"\f406"}.fa-user-alt:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before{content:"\f249"}.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before{content:"\f5b4"}.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"!"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-turkish-lira-sign:before{content:"\e2bb"}.fa-try:before{content:"\e2bb"}.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before{content:"$"}.fa-dollar:before{content:"$"}.fa-usd:before{content:"$"}.fa-x:before{content:"X"}.fa-magnifying-glass-dollar:before{content:"\f688"}.fa-search-dollar:before{content:"\f688"}.fa-users-gear:before{content:"\f509"}.fa-users-cog:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-building-columns:before{content:"\f19c"}.fa-bank:before{content:"\f19c"}.fa-institution:before{content:"\f19c"}.fa-museum:before{content:"\f19c"}.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"D"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before{content:"\f630"}.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt:before{content:"\f4c6"}.fa-jet-fighter:before{content:"\f0fb"}.fa-fighter-jet:before{content:"\f0fb"}.fa-square-share-nodes:before{content:"\f1e1"}.fa-share-alt-square:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video:before{content:"\f03d"}.fa-video-camera:before{content:"\f03d"}.fa-graduation-cap:before{content:"\f19d"}.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-turn-up:before{content:"\f3bf"}.fa-level-up-alt:before{content:"\f3bf"}.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}:root,:host{--fa-style-family-brands: "Font Awesome 6 Brands";--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(fa-brands-400.e465758e13df1d72.woff2) format("woff2"),url(fa-brands-400.8bf6ccf0176a7567.ttf) format("truetype")}.fab,.fa-brands{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-square-js:before{content:"\f3b9"}.fa-js-square:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-square-reddit:before{content:"\f1a2"}.fa-reddit-square:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-square-instagram:before{content:"\e055"}.fa-instagram-square:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-square-hacker-news:before{content:"\f3af"}.fa-hacker-news-square:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-square-snapchat:before{content:"\f2ad"}.fa-snapchat-square:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before{content:"\f2aa"}.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-square-dribbble:before{content:"\f397"}.fa-dribbble-square:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before{content:"\f081"}.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before{content:"\f431"}.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-wpressr:before{content:"\f3e4"}.fa-rendact:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before{content:"\f1b7"}.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before{content:"\f194"}.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-flag:before{content:"\f2b4"}.fa-font-awesome-logo-full:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-square-github:before{content:"\f092"}.fa-github-square:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-square-gitlab:before{content:"\e5ae"}.fa-gitlab-square:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-square-odnoklassniki:before{content:"\f264"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-square-pinterest:before{content:"\f0d3"}.fa-pinterest-square:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-square-google-plus:before{content:"\f0d4"}.fa-google-plus-square:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before{content:"\f169"}.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before{content:"\e080"}.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-square-pied-piper:before{content:"\e01e"}.fa-pied-piper-square:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-square-facebook:before{content:"\f082"}.fa-facebook-square:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-square-lastfm:before{content:"\f203"}.fa-lastfm-square:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before{content:"\e2d0"}.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-square-behance:before{content:"\f1b5"}.fa-behance-square:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-square-git:before{content:"\f1d2"}.fa-git-square:before{content:"\f1d2"}.fa-square-tumblr:before{content:"\f174"}.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before{content:"\f40c"}.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.f386b6b7c6bf65a5.woff2) format("woff2"),url(fa-regular-400.a937b755f79cb30d.ttf) format("truetype")}.far,.fa-regular{font-weight:400}/*! + * Font Awesome Free 6.5.1 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 2023 Fonticons, Inc. + */:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.ce4938a30389d90a.woff2) format("woff2"),url(fa-solid-900.081655f2111aa667.ttf) format("truetype")}.fas,.fa-solid{font-weight:900}@font-face{font-family:primeicons;font-display:block;src:url(primeicons.ffecb2549ad1765a.eot);src:url(primeicons.ffecb2549ad1765a.eot?#iefix) format("embedded-opentype"),url(primeicons.ba3f916dfb64be8c.woff2) format("woff2"),url(primeicons.f8b9e8a4e401b603.woff) format("woff"),url(primeicons.0112589c5695a9ed.ttf) format("truetype"),url(primeicons.943ab24c43224d29.svg?#primeicons) format("svg");font-weight:400;font-style:normal}.pi{font-family:primeicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pi:before{--webkit-backface-visibility:hidden;backface-visibility:hidden}.pi-fw{width:1.28571429em;text-align:center}.pi-spin{animation:fa-spin 2s infinite linear}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.pi-eraser:before{content:"\ea04"}.pi-stopwatch:before{content:"\ea01"}.pi-verified:before{content:"\ea02"}.pi-delete-left:before{content:"\ea03"}.pi-hourglass:before{content:"\e9fe"}.pi-truck:before{content:"\ea00"}.pi-wrench:before{content:"\e9ff"}.pi-microphone:before{content:"\e9fa"}.pi-megaphone:before{content:"\e9fb"}.pi-arrow-right-arrow-left:before{content:"\e9fc"}.pi-bitcoin:before{content:"\e9fd"}.pi-file-edit:before{content:"\e9f6"}.pi-language:before{content:"\e9f7"}.pi-file-export:before{content:"\e9f8"}.pi-file-import:before{content:"\e9f9"}.pi-file-word:before{content:"\e9f1"}.pi-gift:before{content:"\e9f2"}.pi-cart-plus:before{content:"\e9f3"}.pi-thumbs-down-fill:before{content:"\e9f4"}.pi-thumbs-up-fill:before{content:"\e9f5"}.pi-arrows-alt:before{content:"\e9f0"}.pi-calculator:before{content:"\e9ef"}.pi-sort-alt-slash:before{content:"\e9ee"}.pi-arrows-h:before{content:"\e9ec"}.pi-arrows-v:before{content:"\e9ed"}.pi-pound:before{content:"\e9eb"}.pi-prime:before{content:"\e9ea"}.pi-chart-pie:before{content:"\e9e9"}.pi-reddit:before{content:"\e9e8"}.pi-code:before{content:"\e9e7"}.pi-sync:before{content:"\e9e6"}.pi-shopping-bag:before{content:"\e9e5"}.pi-server:before{content:"\e9e4"}.pi-database:before{content:"\e9e3"}.pi-hashtag:before{content:"\e9e2"}.pi-bookmark-fill:before{content:"\e9df"}.pi-filter-fill:before{content:"\e9e0"}.pi-heart-fill:before{content:"\e9e1"}.pi-flag-fill:before{content:"\e9de"}.pi-circle:before{content:"\e9dc"}.pi-circle-fill:before{content:"\e9dd"}.pi-bolt:before{content:"\e9db"}.pi-history:before{content:"\e9da"}.pi-box:before{content:"\e9d9"}.pi-at:before{content:"\e9d8"}.pi-arrow-up-right:before{content:"\e9d4"}.pi-arrow-up-left:before{content:"\e9d5"}.pi-arrow-down-left:before{content:"\e9d6"}.pi-arrow-down-right:before{content:"\e9d7"}.pi-telegram:before{content:"\e9d3"}.pi-stop-circle:before{content:"\e9d2"}.pi-stop:before{content:"\e9d1"}.pi-whatsapp:before{content:"\e9d0"}.pi-building:before{content:"\e9cf"}.pi-qrcode:before{content:"\e9ce"}.pi-car:before{content:"\e9cd"}.pi-instagram:before{content:"\e9cc"}.pi-linkedin:before{content:"\e9cb"}.pi-send:before{content:"\e9ca"}.pi-slack:before{content:"\e9c9"}.pi-sun:before{content:"\e9c8"}.pi-moon:before{content:"\e9c7"}.pi-vimeo:before{content:"\e9c6"}.pi-youtube:before{content:"\e9c5"}.pi-flag:before{content:"\e9c4"}.pi-wallet:before{content:"\e9c3"}.pi-map:before{content:"\e9c2"}.pi-link:before{content:"\e9c1"}.pi-credit-card:before{content:"\e9bf"}.pi-discord:before{content:"\e9c0"}.pi-percentage:before{content:"\e9be"}.pi-euro:before{content:"\e9bd"}.pi-book:before{content:"\e9ba"}.pi-shield:before{content:"\e9b9"}.pi-paypal:before{content:"\e9bb"}.pi-amazon:before{content:"\e9bc"}.pi-phone:before{content:"\e9b8"}.pi-filter-slash:before{content:"\e9b7"}.pi-facebook:before{content:"\e9b4"}.pi-github:before{content:"\e9b5"}.pi-twitter:before{content:"\e9b6"}.pi-step-backward-alt:before{content:"\e9ac"}.pi-step-forward-alt:before{content:"\e9ad"}.pi-forward:before{content:"\e9ae"}.pi-backward:before{content:"\e9af"}.pi-fast-backward:before{content:"\e9b0"}.pi-fast-forward:before{content:"\e9b1"}.pi-pause:before{content:"\e9b2"}.pi-play:before{content:"\e9b3"}.pi-compass:before{content:"\e9ab"}.pi-id-card:before{content:"\e9aa"}.pi-ticket:before{content:"\e9a9"}.pi-file-o:before{content:"\e9a8"}.pi-reply:before{content:"\e9a7"}.pi-directions-alt:before{content:"\e9a5"}.pi-directions:before{content:"\e9a6"}.pi-thumbs-up:before{content:"\e9a3"}.pi-thumbs-down:before{content:"\e9a4"}.pi-sort-numeric-down-alt:before{content:"\e996"}.pi-sort-numeric-up-alt:before{content:"\e997"}.pi-sort-alpha-down-alt:before{content:"\e998"}.pi-sort-alpha-up-alt:before{content:"\e999"}.pi-sort-numeric-down:before{content:"\e99a"}.pi-sort-numeric-up:before{content:"\e99b"}.pi-sort-alpha-down:before{content:"\e99c"}.pi-sort-alpha-up:before{content:"\e99d"}.pi-sort-alt:before{content:"\e99e"}.pi-sort-amount-up:before{content:"\e99f"}.pi-sort-amount-down:before{content:"\e9a0"}.pi-sort-amount-down-alt:before{content:"\e9a1"}.pi-sort-amount-up-alt:before{content:"\e9a2"}.pi-palette:before{content:"\e995"}.pi-undo:before{content:"\e994"}.pi-desktop:before{content:"\e993"}.pi-sliders-v:before{content:"\e991"}.pi-sliders-h:before{content:"\e992"}.pi-search-plus:before{content:"\e98f"}.pi-search-minus:before{content:"\e990"}.pi-file-excel:before{content:"\e98e"}.pi-file-pdf:before{content:"\e98d"}.pi-check-square:before{content:"\e98c"}.pi-chart-line:before{content:"\e98b"}.pi-user-edit:before{content:"\e98a"}.pi-exclamation-circle:before{content:"\e989"}.pi-android:before{content:"\e985"}.pi-google:before{content:"\e986"}.pi-apple:before{content:"\e987"}.pi-microsoft:before{content:"\e988"}.pi-heart:before{content:"\e984"}.pi-mobile:before{content:"\e982"}.pi-tablet:before{content:"\e983"}.pi-key:before{content:"\e981"}.pi-shopping-cart:before{content:"\e980"}.pi-comments:before{content:"\e97e"}.pi-comment:before{content:"\e97f"}.pi-briefcase:before{content:"\e97d"}.pi-bell:before{content:"\e97c"}.pi-paperclip:before{content:"\e97b"}.pi-share-alt:before{content:"\e97a"}.pi-envelope:before{content:"\e979"}.pi-volume-down:before{content:"\e976"}.pi-volume-up:before{content:"\e977"}.pi-volume-off:before{content:"\e978"}.pi-eject:before{content:"\e975"}.pi-money-bill:before{content:"\e974"}.pi-images:before{content:"\e973"}.pi-image:before{content:"\e972"}.pi-sign-in:before{content:"\e970"}.pi-sign-out:before{content:"\e971"}.pi-wifi:before{content:"\e96f"}.pi-sitemap:before{content:"\e96e"}.pi-chart-bar:before{content:"\e96d"}.pi-camera:before{content:"\e96c"}.pi-dollar:before{content:"\e96b"}.pi-lock-open:before{content:"\e96a"}.pi-table:before{content:"\e969"}.pi-map-marker:before{content:"\e968"}.pi-list:before{content:"\e967"}.pi-eye-slash:before{content:"\e965"}.pi-eye:before{content:"\e966"}.pi-folder-open:before{content:"\e964"}.pi-folder:before{content:"\e963"}.pi-video:before{content:"\e962"}.pi-inbox:before{content:"\e961"}.pi-lock:before{content:"\e95f"}.pi-unlock:before{content:"\e960"}.pi-tags:before{content:"\e95d"}.pi-tag:before{content:"\e95e"}.pi-power-off:before{content:"\e95c"}.pi-save:before{content:"\e95b"}.pi-question-circle:before{content:"\e959"}.pi-question:before{content:"\e95a"}.pi-copy:before{content:"\e957"}.pi-file:before{content:"\e958"}.pi-clone:before{content:"\e955"}.pi-calendar-times:before{content:"\e952"}.pi-calendar-minus:before{content:"\e953"}.pi-calendar-plus:before{content:"\e954"}.pi-ellipsis-v:before{content:"\e950"}.pi-ellipsis-h:before{content:"\e951"}.pi-bookmark:before{content:"\e94e"}.pi-globe:before{content:"\e94f"}.pi-replay:before{content:"\e94d"}.pi-filter:before{content:"\e94c"}.pi-print:before{content:"\e94b"}.pi-align-right:before{content:"\e946"}.pi-align-left:before{content:"\e947"}.pi-align-center:before{content:"\e948"}.pi-align-justify:before{content:"\e949"}.pi-cog:before{content:"\e94a"}.pi-cloud-download:before{content:"\e943"}.pi-cloud-upload:before{content:"\e944"}.pi-cloud:before{content:"\e945"}.pi-pencil:before{content:"\e942"}.pi-users:before{content:"\e941"}.pi-clock:before{content:"\e940"}.pi-user-minus:before{content:"\e93e"}.pi-user-plus:before{content:"\e93f"}.pi-trash:before{content:"\e93d"}.pi-external-link:before{content:"\e93c"}.pi-window-maximize:before{content:"\e93b"}.pi-window-minimize:before{content:"\e93a"}.pi-refresh:before{content:"\e938"}.pi-user:before{content:"\e939"}.pi-exclamation-triangle:before{content:"\e922"}.pi-calendar:before{content:"\e927"}.pi-chevron-circle-left:before{content:"\e928"}.pi-chevron-circle-down:before{content:"\e929"}.pi-chevron-circle-right:before{content:"\e92a"}.pi-chevron-circle-up:before{content:"\e92b"}.pi-angle-double-down:before{content:"\e92c"}.pi-angle-double-left:before{content:"\e92d"}.pi-angle-double-right:before{content:"\e92e"}.pi-angle-double-up:before{content:"\e92f"}.pi-angle-down:before{content:"\e930"}.pi-angle-left:before{content:"\e931"}.pi-angle-right:before{content:"\e932"}.pi-angle-up:before{content:"\e933"}.pi-upload:before{content:"\e934"}.pi-download:before{content:"\e956"}.pi-ban:before{content:"\e935"}.pi-star-fill:before{content:"\e936"}.pi-star:before{content:"\e937"}.pi-chevron-left:before{content:"\e900"}.pi-chevron-right:before{content:"\e901"}.pi-chevron-down:before{content:"\e902"}.pi-chevron-up:before{content:"\e903"}.pi-caret-left:before{content:"\e904"}.pi-caret-right:before{content:"\e905"}.pi-caret-down:before{content:"\e906"}.pi-caret-up:before{content:"\e907"}.pi-search:before{content:"\e908"}.pi-check:before{content:"\e909"}.pi-check-circle:before{content:"\e90a"}.pi-times:before{content:"\e90b"}.pi-times-circle:before{content:"\e90c"}.pi-plus:before{content:"\e90d"}.pi-plus-circle:before{content:"\e90e"}.pi-minus:before{content:"\e90f"}.pi-minus-circle:before{content:"\e910"}.pi-circle-on:before{content:"\e911"}.pi-circle-off:before{content:"\e912"}.pi-sort-down:before{content:"\e913"}.pi-sort-up:before{content:"\e914"}.pi-sort:before{content:"\e915"}.pi-step-backward:before{content:"\e916"}.pi-step-forward:before{content:"\e917"}.pi-th-large:before{content:"\e918"}.pi-arrow-down:before{content:"\e919"}.pi-arrow-left:before{content:"\e91a"}.pi-arrow-right:before{content:"\e91b"}.pi-arrow-up:before{content:"\e91c"}.pi-bars:before{content:"\e91d"}.pi-arrow-circle-down:before{content:"\e91e"}.pi-arrow-circle-left:before{content:"\e91f"}.pi-arrow-circle-right:before{content:"\e920"}.pi-arrow-circle-up:before{content:"\e921"}.pi-info:before{content:"\e923"}.pi-info-circle:before{content:"\e924"}.pi-home:before{content:"\e925"}.pi-spinner:before{content:"\e926"}:root{font-family:Inter var,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";font-variation-settings:normal;--font-family: "Inter var", sans-serif;--font-feature-settings: "cv02", "cv03", "cv04", "cv11";--surface-a: #ffffff;--surface-b: #f9fafb;--surface-c: #f3f4f6;--surface-d: #e5e7eb;--surface-e: #ffffff;--surface-f: #ffffff;--text-color: #4b5563;--text-color-secondary: #6b7280;--primary-color: #3B82F6;--primary-color-text: #ffffff;--surface-0: #ffffff;--surface-50: #f9fafb;--surface-100: #f3f4f6;--surface-200: #e5e7eb;--surface-300: #d1d5db;--surface-400: #9ca3af;--surface-500: #6b7280;--surface-600: #4b5563;--surface-700: #374151;--surface-800: #1f2937;--surface-900: #111827;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--content-padding: 1.25rem;--inline-spacing: .5rem;--border-radius: 6px;--surface-ground: #f9fafb;--surface-section: #ffffff;--surface-card: #ffffff;--surface-overlay: #ffffff;--surface-border: #dfe7ef;--surface-hover: #f6f9fc;--focus-ring: 0 0 0 .2rem #BFDBFE;--maskbg: rgba(0, 0, 0, .4);--highlight-bg: #EFF6FF;--highlight-text-color: #1D4ED8;color-scheme:light}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(Inter-roman.var.b2129c009ce46d43.woff2?v=3.19) format("woff2")}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(Inter-italic.var.958a0b9742fb3ae8.woff2?v=3.19) format("woff2")}:root{--blue-50:#f5f9ff;--blue-100:#d0e1fd;--blue-200:#abc9fb;--blue-300:#85b2f9;--blue-400:#609af8;--blue-500:#3b82f6;--blue-600:#326fd1;--blue-700:#295bac;--blue-800:#204887;--blue-900:#183462;--green-50:#f4fcf7;--green-100:#caf1d8;--green-200:#a0e6ba;--green-300:#76db9b;--green-400:#4cd07d;--green-500:#22c55e;--green-600:#1da750;--green-700:#188a42;--green-800:#136c34;--green-900:#0e4f26;--yellow-50:#fefbf3;--yellow-100:#faedc4;--yellow-200:#f6de95;--yellow-300:#f2d066;--yellow-400:#eec137;--yellow-500:#eab308;--yellow-600:#c79807;--yellow-700:#a47d06;--yellow-800:#816204;--yellow-900:#5e4803;--cyan-50:#f3fbfd;--cyan-100:#c3edf5;--cyan-200:#94e0ed;--cyan-300:#65d2e4;--cyan-400:#35c4dc;--cyan-500:#06b6d4;--cyan-600:#059bb4;--cyan-700:#047f94;--cyan-800:#036475;--cyan-900:#024955;--pink-50:#fef6fa;--pink-100:#fad3e7;--pink-200:#f7b0d3;--pink-300:#f38ec0;--pink-400:#f06bac;--pink-500:#ec4899;--pink-600:#c93d82;--pink-700:#a5326b;--pink-800:#822854;--pink-900:#5e1d3d;--indigo-50:#f7f7fe;--indigo-100:#dadafc;--indigo-200:#bcbdf9;--indigo-300:#9ea0f6;--indigo-400:#8183f4;--indigo-500:#6366f1;--indigo-600:#5457cd;--indigo-700:#4547a9;--indigo-800:#363885;--indigo-900:#282960;--teal-50:#f3fbfb;--teal-100:#c7eeea;--teal-200:#9ae0d9;--teal-300:#6dd3c8;--teal-400:#41c5b7;--teal-500:#14b8a6;--teal-600:#119c8d;--teal-700:#0e8174;--teal-800:#0b655b;--teal-900:#084a42;--orange-50:#fff8f3;--orange-100:#feddc7;--orange-200:#fcc39b;--orange-300:#fba86f;--orange-400:#fa8e42;--orange-500:#f97316;--orange-600:#d46213;--orange-700:#ae510f;--orange-800:#893f0c;--orange-900:#642e09;--bluegray-50:#f7f8f9;--bluegray-100:#dadee3;--bluegray-200:#bcc3cd;--bluegray-300:#9fa9b7;--bluegray-400:#818ea1;--bluegray-500:#64748b;--bluegray-600:#556376;--bluegray-700:#465161;--bluegray-800:#37404c;--bluegray-900:#282e38;--purple-50:#fbf7ff;--purple-100:#ead6fd;--purple-200:#dab6fc;--purple-300:#c996fa;--purple-400:#b975f9;--purple-500:#a855f7;--purple-600:#8f48d2;--purple-700:#763cad;--purple-800:#5c2f88;--purple-900:#432263;--red-50:#fff5f5;--red-100:#ffd0ce;--red-200:#ffaca7;--red-300:#ff8780;--red-400:#ff6259;--red-500:#ff3d32;--red-600:#d9342b;--red-700:#b32b23;--red-800:#8c221c;--red-900:#661814;--primary-50:#f5f9ff;--primary-100:#d0e1fd;--primary-200:#abc9fb;--primary-300:#85b2f9;--primary-400:#609af8;--primary-500:#3b82f6;--primary-600:#326fd1;--primary-700:#295bac;--primary-800:#204887;--primary-900:#183462}.p-editor-container .p-editor-toolbar{background:#f9fafb;border-top-right-radius:6px;border-top-left-radius:6px}.p-editor-container .p-editor-toolbar.ql-snow{border:1px solid #e5e7eb}.p-editor-container .p-editor-toolbar.ql-snow .ql-stroke{stroke:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-fill{fill:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label{border:0 none;color:#6b7280}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke{stroke:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill{fill:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;padding:.75rem 0}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item{color:#4b5563}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover{color:#4b5563;background:#f3f4f6}.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item{padding:.75rem 1.25rem}.p-editor-container .p-editor-content{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .p-editor-content.ql-snow{border:1px solid #e5e7eb}.p-editor-container .p-editor-content .ql-editor{background:#fff;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-editor-container .ql-snow.ql-toolbar button:hover,.p-editor-container .ql-snow.ql-toolbar button:focus{color:#4b5563}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-stroke,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-stroke{stroke:#4b5563}.p-editor-container .ql-snow.ql-toolbar button:hover .ql-fill,.p-editor-container .ql-snow.ql-toolbar button:focus .ql-fill{fill:#4b5563}.p-editor-container .ql-snow.ql-toolbar button.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected{color:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke{stroke:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill{fill:#3b82f6}.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label,.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label{color:#3b82f6}@layer primeng{*{box-sizing:border-box}.p-component{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;font-weight:400}.p-component-overlay{background-color:#0006;transition-duration:.2s}.p-disabled,.p-component:disabled{opacity:.6}.p-error{color:#e24c4c}.p-text-secondary{color:#6b7280}.pi{font-size:1rem}.p-icon{width:1rem;height:1rem}.p-link{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;border-radius:6px}.p-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-component-overlay-enter{animation:p-component-overlay-enter-animation .15s forwards}.p-component-overlay-leave{animation:p-component-overlay-leave-animation .15s forwards}@keyframes p-component-overlay-enter-animation{0%{background-color:transparent}to{background-color:var(--maskbg)}}@keyframes p-component-overlay-leave-animation{0%{background-color:var(--maskbg)}to{background-color:transparent}}.p-autocomplete .p-autocomplete-loader{right:.75rem}.p-autocomplete.p-autocomplete-dd .p-autocomplete-loader{right:3.75rem}.p-autocomplete:not(.p-disabled):hover .p-autocomplete-multiple-container{border-color:#3b82f6}.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-multiple-container{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-autocomplete .p-autocomplete-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token{padding:.375rem 0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;padding:0;margin:0}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token{padding:.375rem .75rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon{margin-left:.5rem}.p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token.p-focus{background:#d1d5db;color:#4b5563}.p-autocomplete.p-invalid.p-component>.p-inputtext{border-color:#e24c4c}.p-autocomplete-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-autocomplete-panel .p-autocomplete-items{padding:.75rem 0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight.p-focus{background:#3b82f63d}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-autocomplete-panel .p-autocomplete-items .p-autocomplete-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}p-autocomplete.ng-dirty.ng-invalid>.p-autocomplete>.p-inputtext{border-color:#e24c4c}p-autocomplete.p-autocomplete-clearable .p-inputtext{padding-right:2.5rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-clear-icon{color:#6b7280;right:.75rem}p-autocomplete.p-autocomplete-clearable .p-autocomplete-dd .p-autocomplete-clear-icon{color:#6b7280;right:3.75rem}p-calendar.ng-dirty.ng-invalid>.p-calendar>.p-inputtext{border-color:#e24c4c}.p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-datepicker{padding:.5rem;background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px}.p-datepicker:not(.p-datepicker-inline){background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-datepicker:not(.p-datepicker-inline) .p-datepicker-header{background:#fff}.p-datepicker .p-datepicker-header{padding:.5rem;color:#4b5563;background:#fff;font-weight:600;margin:0;border-bottom:1px solid #e5e7eb;border-top-right-radius:6px;border-top-left-radius:6px}.p-datepicker .p-datepicker-header .p-datepicker-prev,.p-datepicker .p-datepicker-header .p-datepicker-next{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-datepicker-header .p-datepicker-prev:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-next:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datepicker .p-datepicker-header .p-datepicker-prev:focus-visible,.p-datepicker .p-datepicker-header .p-datepicker-next:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-datepicker-header .p-datepicker-title{line-height:2rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{color:#4b5563;transition:background-color .2s,color .2s,box-shadow .2s;font-weight:600;padding:.5rem}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year:enabled:hover,.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month:enabled:hover{color:#3b82f6}.p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month{margin-right:.5rem}.p-datepicker table{font-size:1rem;margin:.5rem 0}.p-datepicker table th{padding:.5rem}.p-datepicker table th>span{width:2.5rem;height:2.5rem}.p-datepicker table td{padding:.5rem}.p-datepicker table td>span{width:2.5rem;height:2.5rem;border-radius:50%;transition:box-shadow .2s;border:1px solid transparent}.p-datepicker table td>span.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker table td>span:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker table td.p-datepicker-today>span{background:#d1d5db;color:#4b5563;border-color:transparent}.p-datepicker table td.p-datepicker-today>span.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker .p-datepicker-buttonbar{padding:1rem 0;border-top:1px solid #e5e7eb}.p-datepicker .p-datepicker-buttonbar .p-button{width:auto}.p-datepicker .p-timepicker{border-top:1px solid #e5e7eb;padding:.5rem}.p-datepicker .p-timepicker button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datepicker .p-timepicker button:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datepicker .p-timepicker button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker .p-timepicker button:last-child{margin-top:.2em}.p-datepicker .p-timepicker span{font-size:1.25rem}.p-datepicker .p-timepicker>div{padding:0 .5rem}.p-datepicker.p-datepicker-timeonly .p-timepicker{border-top:0 none}.p-datepicker .p-monthpicker{margin:.5rem 0}.p-datepicker .p-monthpicker .p-monthpicker-month{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-monthpicker .p-monthpicker-month.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker .p-yearpicker{margin:.5rem 0}.p-datepicker .p-yearpicker .p-yearpicker-year{padding:.5rem;transition:box-shadow .2s;border-radius:6px}.p-datepicker .p-yearpicker .p-yearpicker-year.p-highlight{color:#1d4ed8;background:#eff6ff}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group{border-left:1px solid #e5e7eb;padding-right:.5rem;padding-left:.5rem;padding-top:0;padding-bottom:0}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:first-child{padding-left:0;border-left:0 none}.p-datepicker.p-datepicker-multiple-month .p-datepicker-group:last-child{padding-right:0}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6}.p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}p-calendar.p-calendar-clearable .p-inputtext{padding-right:2.5rem}p-calendar.p-calendar-clearable .p-calendar-clear-icon{color:#6b7280;right:.75rem}p-calendar.p-calendar-clearable .p-calendar-w-btn .p-calendar-clear-icon{color:#6b7280;right:3.75rem}@media screen and (max-width: 769px){.p-datepicker table th,.p-datepicker table td{padding:0}}.p-cascadeselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-cascadeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-cascadeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-cascadeselect .p-cascadeselect-label{background:transparent;border:0 none;padding:.75rem}.p-cascadeselect .p-cascadeselect-label.p-placeholder{color:#6b7280}.p-cascadeselect .p-cascadeselect-label:enabled:focus{outline:0 none;box-shadow:none}.p-cascadeselect .p-cascadeselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-cascadeselect.p-invalid.p-component{border-color:#e24c4c}.p-cascadeselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-cascadeselect-panel .p-cascadeselect-items{padding:.75rem 0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item{margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight.p-focus{background:#3b82f63d}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content{padding:.75rem 1.25rem}.p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon{font-size:.875rem}.p-input-filled .p-cascadeselect{background:#f3f4f6}.p-input-filled .p-cascadeselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-cascadeselect:not(.p-disabled).p-focus{background-color:#fff}p-cascadeselect.ng-dirty.ng-invalid>.p-cascadeselect{border-color:#e24c4c}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-label{padding-right:.75rem}p-cascadeselect.p-cascadeselect-clearable .p-cascadeselect-clear-icon{color:#6b7280;right:3rem}.p-overlay-modal .p-cascadeselect-sublist .p-cascadeselect-panel{box-shadow:none;border-radius:0;padding:.25rem 0 .25rem .5rem}.p-overlay-modal .p-cascadeselect-item-active>.p-cascadeselect-item-content .p-cascadeselect-group-icon{transform:rotate(90deg)}.p-checkbox{width:22px;height:22px}.p-checkbox .p-checkbox-box{border:2px solid #d1d5db;background:#fff;width:22px;height:22px;color:#4b5563;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-checkbox .p-checkbox-box .p-checkbox-icon{transition-duration:.2s;color:#fff;font-size:14px}.p-checkbox .p-checkbox-box .p-icon{width:14px;height:14px}.p-checkbox .p-checkbox-box.p-highlight{border-color:#3b82f6;background:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}p-checkbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-input-filled .p-checkbox .p-checkbox-box{background-color:#f3f4f6}.p-input-filled .p-checkbox .p-checkbox-box.p-highlight{background:#3b82f6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box:hover{background-color:#f3f4f6}.p-input-filled .p-checkbox:not(.p-checkbox-disabled) .p-checkbox-box.p-highlight:hover{background:#1d4ed8}.p-checkbox-label{margin-left:.5rem}p-tristatecheckbox.ng-dirty.ng-invalid>.p-checkbox>.p-checkbox-box{border-color:#e24c4c}.p-chips:not(.p-disabled):hover .p-chips-multiple-container{border-color:#3b82f6}.p-chips:not(.p-disabled).p-focus .p-chips-multiple-container{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-chips .p-chips-multiple-container{padding:.375rem .75rem;gap:.5rem}.p-chips .p-chips-multiple-container .p-chips-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-chips .p-chips-multiple-container .p-chips-token.p-focus{background:#d1d5db;color:#4b5563}.p-chips .p-chips-multiple-container .p-chips-token .p-chips-token-icon{margin-left:.5rem}.p-chips .p-chips-multiple-container .p-chips-input-token{padding:.375rem 0}.p-chips .p-chips-multiple-container .p-chips-input-token input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;padding:0;margin:0}p-chips.ng-dirty.ng-invalid>.p-chips>.p-inputtext{border-color:#e24c4c}p-chips.p-chips-clearable .p-inputtext{padding-right:1.75rem}p-chips.p-chips-clearable .p-chips-clear-icon{color:#6b7280;right:.75rem}.p-colorpicker-preview,.p-fluid .p-colorpicker-preview.p-inputtext{width:2rem;height:2rem}.p-colorpicker-panel{background:#323232;border:1px solid #191919}.p-colorpicker-panel .p-colorpicker-color-handle,.p-colorpicker-panel .p-colorpicker-hue-handle{border-color:#fff}.p-colorpicker-overlay-panel{box-shadow:0 2px 12px #0000001a}.p-dropdown{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-dropdown:not(.p-disabled):hover{border-color:#3b82f6}.p-dropdown:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-dropdown.p-dropdown-clearable .p-dropdown-label{padding-right:1.75rem}.p-dropdown .p-dropdown-label{background:transparent;border:0 none}.p-dropdown .p-dropdown-label.p-placeholder{color:#6b7280}.p-dropdown .p-dropdown-label:focus,.p-dropdown .p-dropdown-label:enabled:focus{outline:0 none;box-shadow:none}.p-dropdown .p-dropdown-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-dropdown .p-dropdown-clear-icon{color:#6b7280;right:3rem}.p-dropdown.p-invalid.p-component{border-color:#e24c4c}.p-dropdown-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-dropdown-panel .p-dropdown-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter{padding-right:1.75rem;margin-right:-1.75rem}.p-dropdown-panel .p-dropdown-header .p-dropdown-filter-icon{right:.75rem;color:#6b7280}.p-dropdown-panel .p-dropdown-items{padding:.75rem 0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight.p-focus{background:#3b82f63d}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-dropdown-panel .p-dropdown-items .p-dropdown-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-dropdown-panel .p-dropdown-items .p-dropdown-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-dropdown{background:#f3f4f6}.p-input-filled .p-dropdown:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-dropdown:not(.p-disabled).p-focus{background-color:#fff}.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext{background-color:transparent}p-dropdown.ng-dirty.ng-invalid>.p-dropdown{border-color:#e24c4c}.p-icon-field .p-input-icon{position:absolute;top:50%;margin-top:-.5rem}.p-inputgroup-addon{background:#f3f4f6;color:#6b7280;border-top:1px solid #d1d5db;border-left:1px solid #d1d5db;border-bottom:1px solid #d1d5db;padding:.75rem;min-width:3rem}.p-inputgroup-addon:last-child{border-right:1px solid #d1d5db}.p-inputgroup>.p-component,.p-inputgroup>.p-inputwrapper>.p-inputtext,.p-inputgroup>.p-float-label>.p-component{border-radius:0;margin:0}.p-inputgroup>.p-component+.p-inputgroup-addon,.p-inputgroup>.p-inputwrapper>.p-inputtext+.p-inputgroup-addon,.p-inputgroup>.p-float-label>.p-component+.p-inputgroup-addon{border-left:0 none}.p-inputgroup>.p-component:focus,.p-inputgroup>.p-inputwrapper>.p-inputtext:focus,.p-inputgroup>.p-float-label>.p-component:focus{z-index:1}.p-inputgroup>.p-component:focus~label,.p-inputgroup>.p-inputwrapper>.p-inputtext:focus~label,.p-inputgroup>.p-float-label>.p-component:focus~label{z-index:1}.p-inputgroup-addon:first-child,.p-inputgroup button:first-child,.p-inputgroup input:first-child,.p-inputgroup>.p-inputwrapper:first-child>.p-component,.p-inputgroup>.p-inputwrapper:first-child>.p-component>.p-inputtext{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup .p-float-label:first-child input{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-inputgroup-addon:last-child,.p-inputgroup button:last-child,.p-inputgroup input:last-child,.p-inputgroup>.p-inputwrapper:last-child>.p-component,.p-inputgroup>.p-inputwrapper:last-child>.p-component>.p-inputtext{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputgroup .p-float-label:last-child input{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-fluid .p-inputgroup .p-button{width:auto}.p-fluid .p-inputgroup .p-button.p-button-icon-only{width:3rem}.p-icon-field-left .p-input-icon:first-of-type{left:.75rem;color:#6b7280}.p-icon-field-right .p-input-icon:last-of-type{right:.75rem;color:#6b7280}p-inputmask.ng-dirty.ng-invalid>.p-inputtext{border-color:#e24c4c}p-inputmask.p-inputmask-clearable .p-inputtext{padding-right:2.5rem}p-inputmask.p-inputmask-clearable .p-inputmask-clear-icon{color:#6b7280;right:.75rem}p-inputnumber.ng-dirty.ng-invalid>.p-inputnumber>.p-inputtext{border-color:#e24c4c}p-inputnumber.p-inputnumber-clearable .p-inputnumber-input{padding-right:2.5rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-clear-icon{color:#6b7280;right:.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-stacked .p-inputnumber-clear-icon{right:3.75rem}p-inputnumber.p-inputnumber-clearable .p-inputnumber-buttons-horizontal .p-inputnumber-clear-icon{right:3.75rem}.p-inputswitch{width:3rem;height:1.75rem}.p-inputswitch .p-inputswitch-slider{background:#d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:30px}.p-inputswitch .p-inputswitch-slider:before{background:#fff;width:1.25rem;height:1.25rem;left:.25rem;margin-top:-.625rem;border-radius:50%;transition-duration:.2s}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{transform:translate(1.25rem)}.p-inputswitch.p-focus .p-inputswitch-slider{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-inputswitch:not(.p-disabled):hover .p-inputswitch-slider{background:#b7bcc5}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider{background:#3b82f6}.p-inputswitch.p-inputswitch-checked .p-inputswitch-slider:before{background:#fff}.p-inputswitch.p-inputswitch-checked:not(.p-disabled):hover .p-inputswitch-slider{background:#2563eb}p-inputswitch.ng-dirty.ng-invalid>.p-inputswitch>.p-inputswitch-slider{border-color:#e24c4c}.p-inputtext{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem;color:#4b5563;background:#fff;padding:.75rem;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;appearance:none;border-radius:6px}.p-inputtext:enabled:hover{border-color:#3b82f6}.p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-inputtext.ng-dirty.ng-invalid{border-color:#e24c4c}.p-inputtext.p-inputtext-sm{font-size:.875rem;padding:.65625rem}.p-inputtext.p-inputtext-lg{font-size:1.25rem;padding:.9375rem}.p-float-label>label{left:.75rem;color:#6b7280;transition-duration:.2s}.p-float-label>.ng-invalid.ng-dirty+label{color:#e24c4c}.p-input-icon-left>.p-icon-wrapper.p-icon,.p-input-icon-left>i:first-of-type{left:.75rem;color:#6b7280}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.p-input-icon-left.p-float-label>label{left:2.5rem}.p-input-icon-right>.p-icon-wrapper,.p-input-icon-right>i:last-of-type{right:.75rem;color:#6b7280}.p-input-icon-right>.p-inputtext{padding-right:2.5rem}.p-icon-field-left>.p-inputtext{padding-left:2.5rem}.p-icon-field-left.p-float-label>label{left:2.5rem}.p-icon-field-right>.p-inputtext{padding-right:2.5rem}::-webkit-input-placeholder{color:#6b7280}:-moz-placeholder{color:#6b7280}::-moz-placeholder{color:#6b7280}:-ms-input-placeholder{color:#6b7280}.p-input-filled .p-inputtext{background-color:#f3f4f6}.p-input-filled .p-inputtext:enabled:hover{background-color:#f3f4f6}.p-input-filled .p-inputtext:enabled:focus{background-color:#fff}.p-inputtext-sm .p-inputtext{font-size:.875rem;padding:.65625rem}.p-inputtext-lg .p-inputtext{font-size:1.25rem;padding:.9375rem}.p-listbox{background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-listbox .p-listbox-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-listbox .p-listbox-header .p-listbox-filter{padding-right:1.75rem}.p-listbox .p-listbox-header .p-listbox-filter-icon{right:.75rem;color:#6b7280}.p-listbox .p-listbox-header .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list{padding:.75rem 0;outline:0 none}.p-listbox .p-listbox-list .p-listbox-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-listbox .p-listbox-list .p-listbox-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-listbox .p-listbox-list .p-listbox-item .p-checkbox{margin-right:.5rem}.p-listbox .p-listbox-list .p-listbox-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-listbox .p-listbox-list .p-listbox-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-listbox:not(.p-disabled) .p-listbox-item.p-highlight.p-focus{background:#3b82f63d}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-listbox.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}p-listbox.ng-dirty.ng-invalid>.p-listbox{border-color:#e24c4c}.p-multiselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-multiselect:not(.p-disabled):hover{border-color:#3b82f6}.p-multiselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-multiselect .p-multiselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-multiselect .p-multiselect-label.p-placeholder{color:#6b7280}.p-multiselect.p-multiselect-chip .p-multiselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-multiselect.p-multiselect-chip .p-multiselect-token .p-multiselect-token-icon{margin-left:.5rem}.p-multiselect .p-multiselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}.p-inputwrapper-filled.p-multiselect.p-multiselect-chip .p-multiselect-label{padding:.375rem .75rem}.p-multiselect-clearable .p-multiselect-label-container{padding-right:1.75rem}.p-multiselect-clearable .p-multiselect-clear-icon{color:#6b7280;right:3rem}.p-multiselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-multiselect-panel .p-multiselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext{padding-right:1.75rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon{right:.75rem;color:#6b7280}.p-multiselect-panel .p-multiselect-header .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-header .p-multiselect-close{margin-left:.5rem;width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-multiselect-panel .p-multiselect-items{padding:.75rem 0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus{background:#3b82f63d}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus{color:#4b5563;background:#e5e7eb}.p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox{margin-right:.5rem}.p-multiselect-panel .p-multiselect-items .p-multiselect-item-group{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700}.p-multiselect-panel .p-multiselect-items .p-multiselect-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-multiselect{background:#f3f4f6}.p-input-filled .p-multiselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-multiselect:not(.p-disabled).p-focus{background-color:#fff}p-multiselect.ng-dirty.ng-invalid>.p-multiselect{border-color:#e24c4c}p-password.ng-invalid.ng-dirty>.p-password>.p-inputtext{border-color:#e24c4c}.p-password-panel{padding:1.25rem;background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-password-panel .p-password-meter{margin-bottom:.5rem;background:#e5e7eb}.p-password-panel .p-password-meter .p-password-strength.weak{background:#ea5455}.p-password-panel .p-password-meter .p-password-strength.medium{background:#ff9f42}.p-password-panel .p-password-meter .p-password-strength.strong{background:#29c76f}p-password.p-password-clearable .p-password-input{padding-right:2.5rem}p-password.p-password-clearable .p-password-clear-icon{color:#6b7280;right:.75rem}p-password.p-password-clearable.p-password-mask .p-password-input{padding-right:4.25rem}p-password.p-password-clearable.p-password-mask .p-password-clear-icon{color:#6b7280;right:2.5rem}.p-radiobutton{width:22px;height:22px}.p-radiobutton .p-radiobutton-box{border:2px solid #d1d5db;background:#fff;width:22px;height:22px;color:#4b5563;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-radiobutton .p-radiobutton-box:not(.p-disabled):not(.p-highlight):hover{border-color:#3b82f6}.p-radiobutton .p-radiobutton-box:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-radiobutton .p-radiobutton-box .p-radiobutton-icon{width:12px;height:12px;transition-duration:.2s;background-color:#fff}.p-radiobutton .p-radiobutton-box.p-highlight{border-color:#3b82f6;background:#3b82f6}.p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{border-color:#1d4ed8;background:#1d4ed8;color:#fff}p-radiobutton.ng-dirty.ng-invalid>.p-radiobutton>.p-radiobutton-box{border-color:#e24c4c}.p-input-filled .p-radiobutton .p-radiobutton-box{background-color:#f3f4f6}.p-input-filled .p-radiobutton .p-radiobutton-box:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight{background:#3b82f6}.p-input-filled .p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover{background:#1d4ed8}.p-radiobutton-label{margin-left:.5rem}.p-rating{gap:.5rem}.p-rating .p-rating-item .p-rating-icon{color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;font-size:1.143rem}.p-rating .p-rating-item .p-rating-icon.p-icon{width:1.143rem;height:1.143rem}.p-rating .p-rating-item .p-rating-icon.p-rating-cancel{color:#ea5455}.p-rating .p-rating-item.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-rating .p-rating-item.p-rating-item-active .p-rating-icon{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon{color:#3b82f6}.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon.p-rating-cancel{color:#e73d3e}.p-selectbutton .p-button{background:#fff;border:1px solid #d1d5db;color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-selectbutton .p-button .p-button-icon-left,.p-selectbutton .p-button .p-button-icon-right{color:#6b7280}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#374151}.p-selectbutton .p-button.p-highlight{background:#3b82f6;border-color:#3b82f6;color:#fff}.p-selectbutton .p-button.p-highlight .p-button-icon-left,.p-selectbutton .p-button.p-highlight .p-button-icon-right{color:#fff}.p-selectbutton .p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-selectbutton .p-button.p-highlight:hover .p-button-icon-left,.p-selectbutton .p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border-color:#e24c4c}.p-slider{background:#e5e7eb;border:0 none;border-radius:6px}.p-slider.p-slider-horizontal{height:.286rem}.p-slider.p-slider-horizontal .p-slider-handle{margin-top:-.5715rem;margin-left:-.5715rem}.p-slider.p-slider-vertical{width:.286rem}.p-slider.p-slider-vertical .p-slider-handle{margin-left:-.5715rem;margin-bottom:-.5715rem}.p-slider .p-slider-handle{height:1.143rem;width:1.143rem;background:#fff;border:2px solid #3B82F6;border-radius:50%;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-slider .p-slider-handle:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-slider .p-slider-range{background:#3b82f6}.p-slider:not(.p-disabled) .p-slider-handle:hover{background:#3b82f6;border-color:#3b82f6}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,left .2s}.p-slider.p-slider-animate.p-slider-horizontal .p-slider-range{transition:width .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-handle{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,bottom .2s}.p-slider.p-slider-animate.p-slider-vertical .p-slider-range{transition:height .2s}.p-togglebutton.p-button{background:#fff;border:1px solid #d1d5db;color:#4b5563;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-togglebutton.p-button .p-button-icon-left,.p-togglebutton.p-button .p-button-icon-right{color:#6b7280}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,.p-togglebutton.p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right{color:#374151}.p-togglebutton.p-button.p-highlight{background:#3b82f6;border-color:#3b82f6;color:#fff}.p-togglebutton.p-button.p-highlight .p-button-icon-left,.p-togglebutton.p-button.p-highlight .p-button-icon-right{color:#fff}.p-togglebutton.p-button.p-highlight:hover{background:#2563eb;border-color:#2563eb;color:#fff}.p-togglebutton.p-button.p-highlight:hover .p-button-icon-left,.p-togglebutton.p-button.p-highlight:hover .p-button-icon-right{color:#fff}p-togglebutton.ng-dirty.ng-invalid>.p-togglebutton.p-button{border-color:#e24c4c}.p-treeselect{background:#fff;border:1px solid #d1d5db;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-treeselect:not(.p-disabled):hover{border-color:#3b82f6}.p-treeselect:not(.p-disabled).p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-treeselect .p-treeselect-label{padding:.75rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-treeselect .p-treeselect-label.p-placeholder{color:#6b7280}.p-treeselect.p-treeselect-chip .p-treeselect-token{padding:.375rem .75rem;margin-right:.5rem;background:#e5e7eb;color:#4b5563;border-radius:16px}.p-treeselect .p-treeselect-trigger{background:transparent;color:#6b7280;width:3rem;border-top-right-radius:6px;border-bottom-right-radius:6px}p-treeselect.ng-invalid.ng-dirty>.p-treeselect{border-color:#e24c4c}.p-inputwrapper-filled .p-treeselect.p-treeselect-chip .p-treeselect-label{padding:.375rem .75rem}.p-treeselect-panel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.p-treeselect-panel .p-treeselect-header{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container{margin-right:.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter{padding-right:1.75rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter-icon{right:.75rem;color:#6b7280}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter{padding-right:3.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter-clear-icon{right:2.5rem}.p-treeselect-panel .p-treeselect-header .p-treeselect-close{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-treeselect-panel .p-treeselect-header .p-treeselect-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treeselect-panel .p-treeselect-items-wrapper .p-tree{border:0 none}.p-treeselect-panel .p-treeselect-items-wrapper .p-treeselect-empty-message{padding:.75rem 1.25rem;color:#4b5563;background:transparent}.p-input-filled .p-treeselect{background:#f3f4f6}.p-input-filled .p-treeselect:not(.p-disabled):hover{background-color:#f3f4f6}.p-input-filled .p-treeselect:not(.p-disabled).p-focus{background-color:#fff}p-treeselect.p-treeselect-clearable .p-treeselect-label-container{padding-right:1.75rem}p-treeselect.p-treeselect-clearable .p-treeselect-clear-icon{color:#6b7280;right:3rem}.p-button{color:#fff;background:#3b82f6;border:1px solid #3B82F6;padding:.75rem 1.25rem;font-size:1rem;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;border-radius:6px}.p-button:not(:disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-button:not(:disabled):active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.p-button.p-button-outlined{background-color:transparent;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border:1px solid}.p-button.p-button-outlined:not(:disabled):active{background:#3b82f629;color:#3b82f6;border:1px solid}.p-button.p-button-outlined.p-button-plain{color:#6b7280;border-color:#6b7280}.p-button.p-button-outlined.p-button-plain:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-button.p-button-outlined.p-button-plain:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-button.p-button-text{background-color:transparent;color:#3b82f6;border-color:transparent}.p-button.p-button-text:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border-color:transparent}.p-button.p-button-text:not(:disabled):active{background:#3b82f629;color:#3b82f6;border-color:transparent}.p-button.p-button-text.p-button-plain{color:#6b7280}.p-button.p-button-text.p-button-plain:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-button.p-button-text.p-button-plain:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-button .p-button-label{transition-duration:.2s}.p-button .p-button-icon-left{margin-right:.5rem}.p-button .p-button-icon-right{margin-left:.5rem}.p-button .p-button-icon-bottom{margin-top:.5rem}.p-button .p-button-icon-top{margin-bottom:.5rem}.p-button .p-badge{margin-left:.5rem;min-width:1rem;height:1rem;line-height:1rem;color:#3b82f6;background-color:#fff}.p-button.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-button.p-button-rounded{border-radius:2rem}.p-button.p-button-icon-only{width:3rem;padding:.75rem 0}.p-button.p-button-icon-only .p-button-icon-left,.p-button.p-button-icon-only .p-button-icon-right{margin:0}.p-button.p-button-icon-only.p-button-rounded{border-radius:50%;height:3rem}.p-button.p-button-sm{font-size:.875rem;padding:.65625rem 1.09375rem}.p-button.p-button-sm .p-button-icon{font-size:.875rem}.p-button.p-button-lg{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-button.p-button-lg .p-button-icon{font-size:1.25rem}.p-button.p-button-loading-label-only .p-button-label{margin-left:.5rem}.p-button.p-button-loading-label-only .p-button-loading-icon{margin-right:0}.p-fluid .p-button{width:100%}.p-fluid .p-button-icon-only{width:3rem}.p-fluid .p-buttonset{display:flex}.p-fluid .p-buttonset .p-button{flex:1}.p-button.p-button-secondary,.p-buttonset.p-button-secondary>.p-button,.p-splitbutton.p-button-secondary>.p-button{color:#fff;background:#64748b;border:1px solid #64748b}.p-button.p-button-secondary:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):hover{background:#475569;color:#fff;border-color:#475569}.p-button.p-button-secondary:not(:disabled):focus,.p-buttonset.p-button-secondary>.p-button:not(:disabled):focus,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #e2e8f0}.p-button.p-button-secondary:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button:not(:disabled):active{background:#334155;color:#fff;border-color:#334155}.p-button.p-button-secondary.p-button-outlined,.p-buttonset.p-button-secondary>.p-button.p-button-outlined,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined{background-color:transparent;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:not(:disabled):hover{background:#64748b0a;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button.p-button-outlined:not(:disabled):active{background:#64748b29;color:#64748b;border:1px solid}.p-button.p-button-secondary.p-button-text,.p-buttonset.p-button-secondary>.p-button.p-button-text,.p-splitbutton.p-button-secondary>.p-button.p-button-text{background-color:transparent;color:#64748b;border-color:transparent}.p-button.p-button-secondary.p-button-text:not(:disabled):hover,.p-buttonset.p-button-secondary>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-secondary>.p-button.p-button-text:not(:disabled):hover{background:#64748b0a;border-color:transparent;color:#64748b}.p-button.p-button-secondary.p-button-text:not(:disabled):active,.p-buttonset.p-button-secondary>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-secondary>.p-button.p-button-text:not(:disabled):active{background:#64748b29;border-color:transparent;color:#64748b}.p-button.p-button-info,.p-buttonset.p-button-info>.p-button,.p-splitbutton.p-button-info>.p-button{color:#fff;background:#0ea5e9;border:1px solid #0ea5e9}.p-button.p-button-info:not(:disabled):hover,.p-buttonset.p-button-info>.p-button:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button:not(:disabled):hover{background:#0284c7;color:#fff;border-color:#0284c7}.p-button.p-button-info:not(:disabled):focus,.p-buttonset.p-button-info>.p-button:not(:disabled):focus,.p-splitbutton.p-button-info>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #bfdbfe}.p-button.p-button-info:not(:disabled):active,.p-buttonset.p-button-info>.p-button:not(:disabled):active,.p-splitbutton.p-button-info>.p-button:not(:disabled):active{background:#0369a1;color:#fff;border-color:#0369a1}.p-button.p-button-info.p-button-outlined,.p-buttonset.p-button-info>.p-button.p-button-outlined,.p-splitbutton.p-button-info>.p-button.p-button-outlined{background-color:transparent;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-info>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button.p-button-outlined:not(:disabled):hover{background:#0ea5e90a;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-info>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-info>.p-button.p-button-outlined:not(:disabled):active{background:#0ea5e929;color:#0ea5e9;border:1px solid}.p-button.p-button-info.p-button-text,.p-buttonset.p-button-info>.p-button.p-button-text,.p-splitbutton.p-button-info>.p-button.p-button-text{background-color:transparent;color:#0ea5e9;border-color:transparent}.p-button.p-button-info.p-button-text:not(:disabled):hover,.p-buttonset.p-button-info>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-info>.p-button.p-button-text:not(:disabled):hover{background:#0ea5e90a;border-color:transparent;color:#0ea5e9}.p-button.p-button-info.p-button-text:not(:disabled):active,.p-buttonset.p-button-info>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-info>.p-button.p-button-text:not(:disabled):active{background:#0ea5e929;border-color:transparent;color:#0ea5e9}.p-button.p-button-success,.p-buttonset.p-button-success>.p-button,.p-splitbutton.p-button-success>.p-button{color:#fff;background:#22c55e;border:1px solid #22c55e}.p-button.p-button-success:not(:disabled):hover,.p-buttonset.p-button-success>.p-button:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button:not(:disabled):hover{background:#16a34a;color:#fff;border-color:#16a34a}.p-button.p-button-success:not(:disabled):focus,.p-buttonset.p-button-success>.p-button:not(:disabled):focus,.p-splitbutton.p-button-success>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #bbf7d0}.p-button.p-button-success:not(:disabled):active,.p-buttonset.p-button-success>.p-button:not(:disabled):active,.p-splitbutton.p-button-success>.p-button:not(:disabled):active{background:#15803d;color:#fff;border-color:#15803d}.p-button.p-button-success.p-button-outlined,.p-buttonset.p-button-success>.p-button.p-button-outlined,.p-splitbutton.p-button-success>.p-button.p-button-outlined{background-color:transparent;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-success>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button.p-button-outlined:not(:disabled):hover{background:#22c55e0a;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-success>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-success>.p-button.p-button-outlined:not(:disabled):active{background:#22c55e29;color:#22c55e;border:1px solid}.p-button.p-button-success.p-button-text,.p-buttonset.p-button-success>.p-button.p-button-text,.p-splitbutton.p-button-success>.p-button.p-button-text{background-color:transparent;color:#22c55e;border-color:transparent}.p-button.p-button-success.p-button-text:not(:disabled):hover,.p-buttonset.p-button-success>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-success>.p-button.p-button-text:not(:disabled):hover{background:#22c55e0a;border-color:transparent;color:#22c55e}.p-button.p-button-success.p-button-text:not(:disabled):active,.p-buttonset.p-button-success>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-success>.p-button.p-button-text:not(:disabled):active{background:#22c55e29;border-color:transparent;color:#22c55e}.p-button.p-button-warning,.p-buttonset.p-button-warning>.p-button,.p-splitbutton.p-button-warning>.p-button{color:#fff;background:#f97316;border:1px solid #f97316}.p-button.p-button-warning:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button:not(:disabled):hover{background:#ea580c;color:#fff;border-color:#ea580c}.p-button.p-button-warning:not(:disabled):focus,.p-buttonset.p-button-warning>.p-button:not(:disabled):focus,.p-splitbutton.p-button-warning>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #fde68a}.p-button.p-button-warning:not(:disabled):active,.p-buttonset.p-button-warning>.p-button:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button:not(:disabled):active{background:#c2410c;color:#fff;border-color:#c2410c}.p-button.p-button-warning.p-button-outlined,.p-buttonset.p-button-warning>.p-button.p-button-outlined,.p-splitbutton.p-button-warning>.p-button.p-button-outlined{background-color:transparent;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:not(:disabled):hover{background:#f973160a;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-warning>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button.p-button-outlined:not(:disabled):active{background:#f9731629;color:#f97316;border:1px solid}.p-button.p-button-warning.p-button-text,.p-buttonset.p-button-warning>.p-button.p-button-text,.p-splitbutton.p-button-warning>.p-button.p-button-text{background-color:transparent;color:#f97316;border-color:transparent}.p-button.p-button-warning.p-button-text:not(:disabled):hover,.p-buttonset.p-button-warning>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-warning>.p-button.p-button-text:not(:disabled):hover{background:#f973160a;border-color:transparent;color:#f97316}.p-button.p-button-warning.p-button-text:not(:disabled):active,.p-buttonset.p-button-warning>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-warning>.p-button.p-button-text:not(:disabled):active{background:#f9731629;border-color:transparent;color:#f97316}.p-button.p-button-help,.p-buttonset.p-button-help>.p-button,.p-splitbutton.p-button-help>.p-button{color:#fff;background:#a855f7;border:1px solid #a855f7}.p-button.p-button-help:not(:disabled):hover,.p-buttonset.p-button-help>.p-button:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button:not(:disabled):hover{background:#9333ea;color:#fff;border-color:#9333ea}.p-button.p-button-help:not(:disabled):focus,.p-buttonset.p-button-help>.p-button:not(:disabled):focus,.p-splitbutton.p-button-help>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #e9d5ff}.p-button.p-button-help:not(:disabled):active,.p-buttonset.p-button-help>.p-button:not(:disabled):active,.p-splitbutton.p-button-help>.p-button:not(:disabled):active{background:#7e22ce;color:#fff;border-color:#7e22ce}.p-button.p-button-help.p-button-outlined,.p-buttonset.p-button-help>.p-button.p-button-outlined,.p-splitbutton.p-button-help>.p-button.p-button-outlined{background-color:transparent;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-help>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button.p-button-outlined:not(:disabled):hover{background:#a855f70a;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-help>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-help>.p-button.p-button-outlined:not(:disabled):active{background:#a855f729;color:#a855f7;border:1px solid}.p-button.p-button-help.p-button-text,.p-buttonset.p-button-help>.p-button.p-button-text,.p-splitbutton.p-button-help>.p-button.p-button-text{background-color:transparent;color:#a855f7;border-color:transparent}.p-button.p-button-help.p-button-text:not(:disabled):hover,.p-buttonset.p-button-help>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-help>.p-button.p-button-text:not(:disabled):hover{background:#a855f70a;border-color:transparent;color:#a855f7}.p-button.p-button-help.p-button-text:not(:disabled):active,.p-buttonset.p-button-help>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-help>.p-button.p-button-text:not(:disabled):active{background:#a855f729;border-color:transparent;color:#a855f7}.p-button.p-button-danger,.p-buttonset.p-button-danger>.p-button,.p-splitbutton.p-button-danger>.p-button{color:#fff;background:#ef4444;border:1px solid #ef4444}.p-button.p-button-danger:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button:not(:disabled):hover{background:#dc2626;color:#fff;border-color:#dc2626}.p-button.p-button-danger:not(:disabled):focus,.p-buttonset.p-button-danger>.p-button:not(:disabled):focus,.p-splitbutton.p-button-danger>.p-button:not(:disabled):focus{box-shadow:0 0 0 .2rem #fecaca}.p-button.p-button-danger:not(:disabled):active,.p-buttonset.p-button-danger>.p-button:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button:not(:disabled):active{background:#b91c1c;color:#fff;border-color:#b91c1c}.p-button.p-button-danger.p-button-outlined,.p-buttonset.p-button-danger>.p-button.p-button-outlined,.p-splitbutton.p-button-danger>.p-button.p-button-outlined{background-color:transparent;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button.p-button-outlined:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:not(:disabled):hover{background:#ef44440a;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-outlined:not(:disabled):active,.p-buttonset.p-button-danger>.p-button.p-button-outlined:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button.p-button-outlined:not(:disabled):active{background:#ef444429;color:#ef4444;border:1px solid}.p-button.p-button-danger.p-button-text,.p-buttonset.p-button-danger>.p-button.p-button-text,.p-splitbutton.p-button-danger>.p-button.p-button-text{background-color:transparent;color:#ef4444;border-color:transparent}.p-button.p-button-danger.p-button-text:not(:disabled):hover,.p-buttonset.p-button-danger>.p-button.p-button-text:not(:disabled):hover,.p-splitbutton.p-button-danger>.p-button.p-button-text:not(:disabled):hover{background:#ef44440a;border-color:transparent;color:#ef4444}.p-button.p-button-danger.p-button-text:not(:disabled):active,.p-buttonset.p-button-danger>.p-button.p-button-text:not(:disabled):active,.p-splitbutton.p-button-danger>.p-button.p-button-text:not(:disabled):active{background:#ef444429;border-color:transparent;color:#ef4444}.p-button.p-button-link{color:#1d4ed8;background:transparent;border:transparent}.p-button.p-button-link:not(:disabled):hover{background:transparent;color:#1d4ed8;border-color:transparent}.p-button.p-button-link:not(:disabled):hover .p-button-label{text-decoration:underline}.p-button.p-button-link:not(:disabled):focus{background:transparent;box-shadow:0 0 0 .2rem #bfdbfe;border-color:transparent}.p-button.p-button-link:not(:disabled):active{background:transparent;color:#1d4ed8;border-color:transparent}.p-speeddial-button.p-button.p-button-icon-only{width:4rem;height:4rem}.p-speeddial-button.p-button.p-button-icon-only .p-button-icon{font-size:1.3rem}.p-speeddial-button.p-button.p-button-icon-only .p-icon{width:1.3rem;height:1.3rem}.p-speeddial-list{outline:0 none}.p-speeddial-item.p-focus>.p-speeddial-action{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-speeddial-action{width:3rem;height:3rem;background:#4b5563;color:#fff}.p-speeddial-action:hover{background:#022354;color:#fff}.p-speeddial-direction-up .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-up .p-speeddial-item:first-child{margin-bottom:.5rem}.p-speeddial-direction-down .p-speeddial-item{margin:.25rem 0}.p-speeddial-direction-down .p-speeddial-item:first-child{margin-top:.5rem}.p-speeddial-direction-left .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-left .p-speeddial-item:first-child{margin-right:.5rem}.p-speeddial-direction-right .p-speeddial-item{margin:0 .25rem}.p-speeddial-direction-right .p-speeddial-item:first-child{margin-left:.5rem}.p-speeddial-circle .p-speeddial-item,.p-speeddial-semi-circle .p-speeddial-item,.p-speeddial-quarter-circle .p-speeddial-item{margin:0}.p-speeddial-circle .p-speeddial-item:first-child,.p-speeddial-circle .p-speeddial-item:last-child,.p-speeddial-semi-circle .p-speeddial-item:first-child,.p-speeddial-semi-circle .p-speeddial-item:last-child,.p-speeddial-quarter-circle .p-speeddial-item:first-child,.p-speeddial-quarter-circle .p-speeddial-item:last-child{margin:0}.p-speeddial-mask{background-color:#0006}.p-splitbutton{border-radius:6px}.p-splitbutton.p-button-outlined>.p-button{background-color:transparent;color:#3b82f6;border:1px solid}.p-splitbutton.p-button-outlined>.p-button:not(:disabled):hover{background:#3b82f60a;color:#3b82f6}.p-splitbutton.p-button-outlined>.p-button:not(:disabled):active{background:#3b82f629;color:#3b82f6}.p-splitbutton.p-button-outlined.p-button-plain>.p-button{color:#6b7280;border-color:#6b7280}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-splitbutton.p-button-outlined.p-button-plain>.p-button:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-splitbutton.p-button-text>.p-button{background-color:transparent;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:not(:disabled):hover{background:#3b82f60a;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text>.p-button:not(:disabled):active{background:#3b82f629;color:#3b82f6;border-color:transparent}.p-splitbutton.p-button-text.p-button-plain>.p-button{color:#6b7280}.p-splitbutton.p-button-text.p-button-plain>.p-button:not(:disabled):hover{background:#f3f4f6;color:#6b7280}.p-splitbutton.p-button-text.p-button-plain>.p-button:not(:disabled):active{background:#e5e7eb;color:#6b7280}.p-splitbutton.p-button-raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.p-splitbutton.p-button-rounded{border-radius:2rem}.p-splitbutton.p-button-rounded>.p-button{border-radius:2rem}.p-splitbutton.p-button-sm>.p-button{font-size:.875rem;padding:.65625rem 1.09375rem}.p-splitbutton.p-button-sm>.p-button .p-button-icon{font-size:.875rem}.p-splitbutton.p-button-lg>.p-button{font-size:1.25rem;padding:.9375rem 1.5625rem}.p-splitbutton.p-button-lg>.p-button .p-button-icon{font-size:1.25rem}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button{background-color:transparent;color:#64748b;border:1px solid}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(:disabled):hover{background:#64748b0a;color:#64748b}.p-splitbutton.p-button-secondary.p-button-outlined>.p-button:not(:disabled):active{background:#64748b29;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button{background-color:transparent;color:#64748b;border-color:transparent}.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(:disabled):hover{background:#64748b0a;border-color:transparent;color:#64748b}.p-splitbutton.p-button-secondary.p-button-text>.p-button:not(:disabled):active{background:#64748b29;border-color:transparent;color:#64748b}.p-splitbutton.p-button-info.p-button-outlined>.p-button{background-color:transparent;color:#0ea5e9;border:1px solid}.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(:disabled):hover{background:#0ea5e90a;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-outlined>.p-button:not(:disabled):active{background:#0ea5e929;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-text>.p-button{background-color:transparent;color:#0ea5e9;border-color:transparent}.p-splitbutton.p-button-info.p-button-text>.p-button:not(:disabled):hover{background:#0ea5e90a;border-color:transparent;color:#0ea5e9}.p-splitbutton.p-button-info.p-button-text>.p-button:not(:disabled):active{background:#0ea5e929;border-color:transparent;color:#0ea5e9}.p-splitbutton.p-button-success.p-button-outlined>.p-button{background-color:transparent;color:#22c55e;border:1px solid}.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(:disabled):hover{background:#22c55e0a;color:#22c55e}.p-splitbutton.p-button-success.p-button-outlined>.p-button:not(:disabled):active{background:#22c55e29;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button{background-color:transparent;color:#22c55e;border-color:transparent}.p-splitbutton.p-button-success.p-button-text>.p-button:not(:disabled):hover{background:#22c55e0a;border-color:transparent;color:#22c55e}.p-splitbutton.p-button-success.p-button-text>.p-button:not(:disabled):active{background:#22c55e29;border-color:transparent;color:#22c55e}.p-splitbutton.p-button-warning.p-button-outlined>.p-button{background-color:transparent;color:#f97316;border:1px solid}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(:disabled):hover{background:#f973160a;color:#f97316}.p-splitbutton.p-button-warning.p-button-outlined>.p-button:not(:disabled):active{background:#f9731629;color:#f97316}.p-splitbutton.p-button-warning.p-button-text>.p-button{background-color:transparent;color:#f97316;border-color:transparent}.p-splitbutton.p-button-warning.p-button-text>.p-button:not(:disabled):hover{background:#f973160a;border-color:transparent;color:#f97316}.p-splitbutton.p-button-warning.p-button-text>.p-button:not(:disabled):active{background:#f9731629;border-color:transparent;color:#f97316}.p-splitbutton.p-button-help.p-button-outlined>.p-button{background-color:transparent;color:#a855f7;border:1px solid}.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(:disabled):hover{background:#a855f70a;color:#a855f7}.p-splitbutton.p-button-help.p-button-outlined>.p-button:not(:disabled):active{background:#a855f729;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button{background-color:transparent;color:#a855f7;border-color:transparent}.p-splitbutton.p-button-help.p-button-text>.p-button:not(:disabled):hover{background:#a855f70a;border-color:transparent;color:#a855f7}.p-splitbutton.p-button-help.p-button-text>.p-button:not(:disabled):active{background:#a855f729;border-color:transparent;color:#a855f7}.p-splitbutton.p-button-danger.p-button-outlined>.p-button{background-color:transparent;color:#ef4444;border:1px solid}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(:disabled):hover{background:#ef44440a;color:#ef4444}.p-splitbutton.p-button-danger.p-button-outlined>.p-button:not(:disabled):active{background:#ef444429;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button{background-color:transparent;color:#ef4444;border-color:transparent}.p-splitbutton.p-button-danger.p-button-text>.p-button:not(:disabled):hover{background:#ef44440a;border-color:transparent;color:#ef4444}.p-splitbutton.p-button-danger.p-button-text>.p-button:not(:disabled):active{background:#ef444429;border-color:transparent;color:#ef4444}.p-carousel .p-carousel-content .p-carousel-prev,.p-carousel .p-carousel-content .p-carousel-next{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin:.5rem}.p-carousel .p-carousel-content .p-carousel-prev:enabled:hover,.p-carousel .p-carousel-content .p-carousel-next:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-carousel .p-carousel-content .p-carousel-prev:focus-visible,.p-carousel .p-carousel-content .p-carousel-next:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-carousel .p-carousel-indicators{padding:1rem}.p-carousel .p-carousel-indicators .p-carousel-indicator{margin-right:.5rem;margin-bottom:.5rem}.p-carousel .p-carousel-indicators .p-carousel-indicator button{background-color:#d1d5db;width:2rem;height:.5rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:0}.p-carousel .p-carousel-indicators .p-carousel-indicator button:hover{background:#9ca3af}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-datatable .p-paginator-top,.p-datatable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-datatable .p-datatable-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-datatable .p-datatable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb;transition:box-shadow .2s}.p-datatable .p-datatable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb}.p-datatable .p-sortable-column .p-sortable-column-icon{color:#374151;margin-left:.5rem}.p-datatable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#eff6ff;margin-left:.5rem}.p-datatable .p-sortable-column:not(.p-highlight):hover{background:#f3f4f6;color:#374151}.p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#374151}.p-datatable .p-sortable-column.p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover{background:#eff6ff;color:#1d4ed8}.p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#1d4ed8}.p-datatable .p-sortable-column:focus-visible{box-shadow:inset 0 0 0 .15rem #bfdbfe;outline:0 none}.p-datatable .p-datatable-tbody>tr{background:#fff;color:#4b5563;transition:box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td{text-align:left;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:enabled:hover,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-datatable .p-datatable-tbody>tr>td .p-row-toggler:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-init:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save:focus-visible,.p-datatable .p-datatable-tbody>tr>td .p-row-editor-cancel:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-datatable .p-datatable-tbody>tr>td .p-row-editor-save{margin-right:.5rem}.p-datatable .p-datatable-tbody>tr:focus-visible{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-datatable .p-datatable-tbody>tr.p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #eff6ff}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #eff6ff}.p-datatable.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-datatable .p-column-resizer-helper{background:#3b82f6}.p-datatable .p-datatable-scrollable-header,.p-datatable .p-datatable-scrollable-footer{background:#f9fafb}.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-thead,.p-datatable.p-datatable-scrollable>.p-datatable-wrapper>.p-scroller-viewport>.p-scroller>.p-datatable-table>.p-datatable-tfoot{background-color:#f9fafb}.p-datatable .p-datatable-loading-icon{font-size:2rem}.p-datatable.p-datatable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-footer{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-paginator-top{border-width:0 1px 0 1px}.p-datatable.p-datatable-gridlines .p-paginator-bottom{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead>tr>th:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td{border-width:1px 0 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child{border-width:1px 1px 0 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tbody>tr:last-child>td:last-child{border-width:1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td{border-width:1px 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-width:1px 1px 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines .p-datatable-thead+.p-datatable-tfoot>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td{border-width:0 0 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody>tr>td:last-child{border-width:0 1px 1px 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td{border-width:0 0 0 1px}.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody>tr:last-child>td:last-child{border-width:0 1px 0 1px}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:#f8f8fa}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight{background:#eff6ff;color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight .p-row-toggler{color:#1d4ed8}.p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n).p-highlight .p-row-toggler:hover{color:#1d4ed8}.p-datatable.p-datatable-sm .p-datatable-header{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-thead>tr>th{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tbody>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.5rem}.p-datatable.p-datatable-sm .p-datatable-footer{padding:.5rem}.p-datatable.p-datatable-lg .p-datatable-header{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-thead>tr>th{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.25rem}.p-datatable.p-datatable-lg .p-datatable-footer{padding:1.25rem}.p-dataview .p-paginator-top,.p-dataview .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-dataview .p-dataview-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-dataview .p-dataview-content{background:#fff;color:#4b5563;border:0 none;padding:0}.p-dataview .p-dataview-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-dataview .p-dataview-loading-icon{font-size:2rem}.p-dataview .p-dataview-emptymessage{padding:1.25rem}.p-column-filter-row .p-column-filter-menu-button,.p-column-filter-row .p-column-filter-clear-button{margin-left:.5rem}.p-column-filter-menu-button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-menu-button:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-column-filter-menu-button.p-column-filter-menu-button-open,.p-column-filter-menu-button.p-column-filter-menu-button-open:hover{background:#f3f4f6;color:#374151}.p-column-filter-menu-button.p-column-filter-menu-button-active,.p-column-filter-menu-button.p-column-filter-menu-button-active:hover{background:#eff6ff;color:#1d4ed8}.p-column-filter-menu-button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-clear-button{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-column-filter-clear-button:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-column-filter-clear-button:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-column-filter-overlay{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a;min-width:12.5rem}.p-column-filter-overlay .p-column-filter-row-items{padding:.75rem 0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item{margin:0;padding:.75rem 1.25rem;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s;border-radius:0}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover{color:#4b5563;background:#f3f4f6}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-column-filter-overlay .p-column-filter-row-items .p-column-filter-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-column-filter-overlay-menu .p-column-filter-operator{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;color:#374151;background:#f9fafb;margin:0;border-top-right-radius:6px;border-top-left-radius:6px}.p-column-filter-overlay-menu .p-column-filter-constraint{padding:1.25rem;border-bottom:1px solid #e5e7eb}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-matchmode-dropdown{margin-bottom:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-remove-button{margin-top:.5rem}.p-column-filter-overlay-menu .p-column-filter-constraint:last-child{border-bottom:0 none}.p-column-filter-overlay-menu .p-column-filter-add-rule{padding:.75rem 1.25rem}.p-column-filter-overlay-menu .p-column-filter-buttonbar,.p-orderlist .p-orderlist-controls{padding:1.25rem}.p-orderlist .p-orderlist-controls .p-button{margin-bottom:.5rem}.p-orderlist .p-orderlist-list-container{background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;outline-color:transparent}.p-orderlist .p-orderlist-list-container.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-orderlist .p-orderlist-header{color:#374151;padding:1.25rem;font-weight:700}.p-orderlist .p-orderlist-header .p-orderlist-title{font-weight:700}.p-orderlist .p-orderlist-filter-container{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-bottom:0 none}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-input{padding-right:1.75rem}.p-orderlist .p-orderlist-filter-container .p-orderlist-filter-icon{right:.75rem;color:#6b7280}.p-orderlist .p-orderlist-list{color:#4b5563;padding:.75rem 0;outline:0 none}.p-orderlist .p-orderlist-list:not(:first-child){border-top:1px solid #e5e7eb}.p-orderlist .p-orderlist-list .p-orderlist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s}.p-orderlist .p-orderlist-list .p-orderlist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-orderlist .p-orderlist-list .p-orderlist-item.p-focus{color:#4b5563;background:#e5e7eb}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight.p-focus{background:#3b82f63d}.p-orderlist .p-orderlist-list .p-orderlist-empty-message{padding:.75rem 1.25rem;color:#4b5563}.p-orderlist .p-orderlist-list:not(.cdk-drop-list-dragging) .p-orderlist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(2n){background:#f8f8fa}.p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(2n):hover{background:#f3f4f6}.p-orderlist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#4b5563;background:#fff;margin:0}.p-organizationchart .p-organizationchart-node-content.p-organizationchart-selectable-node:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-organizationchart .p-organizationchart-node-content.p-highlight{background:#eff6ff;color:#1d4ed8}.p-organizationchart .p-organizationchart-node-content.p-highlight .p-node-toggler i{color:#70aeff}.p-organizationchart .p-organizationchart-line-down{background:#e5e7eb}.p-organizationchart .p-organizationchart-line-left{border-right:1px solid #e5e7eb;border-color:#e5e7eb}.p-organizationchart .p-organizationchart-line-top{border-top:1px solid #e5e7eb;border-color:#e5e7eb}.p-organizationchart .p-organizationchart-node-content{border:1px solid #e5e7eb;background:#fff;color:#4b5563;padding:1.25rem}.p-organizationchart .p-organizationchart-node-content .p-node-toggler{background:inherit;color:inherit;border-radius:50%}.p-organizationchart .p-organizationchart-node-content .p-node-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-paginator{background:#fff;color:#6b7280;border:solid #f3f4f6;border-width:0;padding:.5rem 1rem;border-radius:6px}.p-paginator .p-paginator-first,.p-paginator .p-paginator-prev,.p-paginator .p-paginator-next,.p-paginator .p-paginator-last{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,.p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover{background:#f3f4f6;border-color:transparent;color:#374151}.p-paginator .p-paginator-first{border-top-left-radius:50%;border-bottom-left-radius:50%}.p-paginator .p-paginator-last{border-top-right-radius:50%;border-bottom-right-radius:50%}.p-paginator .p-dropdown{margin-left:.5rem;margin-right:.5rem;height:3rem}.p-paginator .p-dropdown .p-dropdown-label{padding-right:0}.p-paginator .p-paginator-page-input{margin-left:.5rem;margin-right:.5rem}.p-paginator .p-paginator-page-input .p-inputtext{max-width:3rem}.p-paginator .p-paginator-current{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;padding:0 .5rem}.p-paginator .p-paginator-pages .p-paginator-page{background-color:transparent;border:0 none;color:#6b7280;min-width:3rem;height:3rem;margin:.143rem;transition:box-shadow .2s;border-radius:50%}.p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background:#eff6ff;border-color:#eff6ff;color:#1d4ed8}.p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f3f4f6;border-color:transparent;color:#374151}.p-picklist .p-picklist-buttons{padding:1.25rem}.p-picklist .p-picklist-buttons .p-button{margin-bottom:.5rem}.p-picklist .p-picklist-list-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;outline-color:transparent}.p-picklist .p-picklist-list-wrapper.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe;border-color:#3b82f6}.p-picklist .p-picklist-header{color:#374151;padding:1.25rem;font-weight:700}.p-picklist .p-picklist-header .p-picklist-title{font-weight:700}.p-picklist .p-picklist-filter-container{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-bottom:0 none}.p-picklist .p-picklist-filter-container .p-picklist-filter-input{padding-right:1.75rem}.p-picklist .p-picklist-filter-container .p-picklist-filter-icon{right:.75rem;color:#6b7280}.p-picklist .p-picklist-list{color:#4b5563;padding:.75rem 0;outline:0 none}.p-picklist .p-picklist-list:not(:first-child){border-top:1px solid #e5e7eb}.p-picklist .p-picklist-list .p-picklist-item{padding:.75rem 1.25rem;margin:0;border:0 none;color:#4b5563;background:transparent;transition:box-shadow .2s}.p-picklist .p-picklist-list .p-picklist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-picklist .p-picklist-list .p-picklist-item.p-focus{color:#4b5563;background:#e5e7eb}.p-picklist .p-picklist-list .p-picklist-item.p-highlight{color:#1d4ed8;background:#eff6ff}.p-picklist .p-picklist-list .p-picklist-item.p-highlight.p-focus{background:#3b82f63d}.p-picklist .p-picklist-list .p-picklist-empty-message{padding:.75rem 1.25rem;color:#4b5563}.p-picklist .p-picklist-list:not(.cdk-drop-list-dragging) .p-picklist-item:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(2n){background:#f8f8fa}.p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(2n):hover{background:#f3f4f6}.p-picklist-item.cdk-drag-preview{padding:.75rem 1.25rem;box-shadow:0 2px 12px #0000001a;border:0 none;color:#4b5563;background:#fff;margin:0}.p-timeline .p-timeline-event-marker{border:2px solid #3B82F6;border-radius:50%;width:1rem;height:1rem;background-color:#fff}.p-timeline .p-timeline-event-connector{background-color:#e5e7eb}.p-timeline.p-timeline-vertical .p-timeline-event-opposite,.p-timeline.p-timeline-vertical .p-timeline-event-content{padding:0 1rem}.p-timeline.p-timeline-vertical .p-timeline-event-connector{width:2px}.p-timeline.p-timeline-horizontal .p-timeline-event-opposite,.p-timeline.p-timeline-horizontal .p-timeline-event-content{padding:1rem 0}.p-timeline.p-timeline-horizontal .p-timeline-event-connector{height:2px}.p-tree{border:1px solid #e5e7eb;background:#fff;color:#4b5563;padding:1.25rem;border-radius:6px}.p-tree .p-tree-container .p-treenode{padding:.143rem;outline:0 none}.p-tree .p-tree-container .p-treenode:focus>.p-treenode-content{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content{border-radius:6px;transition:box-shadow .2s;padding:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem;width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-treenode-icon{margin-right:.5rem;color:#6b7280}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox .p-indeterminate .p-checkbox-icon{color:#4b5563}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight{background:#eff6ff;color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler:hover,.p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon:hover{color:#1d4ed8}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-dragover{background:#f3f4f6;color:#4b5563}.p-tree .p-tree-filter-container{margin-bottom:.5rem}.p-tree .p-tree-filter-container .p-tree-filter{width:100%;padding-right:1.75rem}.p-tree .p-tree-filter-container .p-tree-filter-icon{right:.75rem;color:#6b7280}.p-tree .p-treenode-children{padding:0 0 0 1rem}.p-tree .p-tree-loading-icon{font-size:2rem}.p-tree .p-tree-loading-icon.p-icon{width:2rem;height:2rem}.p-tree .p-treenode-droppoint.p-treenode-droppoint-active{background-color:#8cbeff}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content{border-radius:6px;border:1px solid #e5e7eb;background-color:#fff;color:#4b5563;padding:.5rem;transition:box-shadow .2s}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight{background-color:#eff6ff;color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-highlight .p-treenode-icon{color:#1d4ed8}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-tree-toggler{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-icon{color:#6b7280;margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-checkbox{margin-right:.5rem}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content .p-treenode-label:not(.p-highlight):hover{background-color:inherit;color:inherit}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-tree.p-tree-horizontal .p-treenode .p-treenode-content:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-paginator-top,.p-treetable .p-paginator-bottom{border-width:0 0 1px 0;border-radius:0}.p-treetable .p-treetable-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700}.p-treetable .p-treetable-thead>tr>th{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb;transition:box-shadow .2s}.p-treetable .p-treetable-tfoot>tr>td{text-align:left;padding:1rem;border:1px solid #e5e7eb;border-width:0 0 1px 0;font-weight:700;color:#374151;background:#f9fafb}.p-treetable .p-sortable-column{outline-color:#bfdbfe}.p-treetable .p-sortable-column .p-sortable-column-icon{color:#374151;margin-left:.5rem}.p-treetable .p-sortable-column .p-sortable-column-badge{border-radius:50%;height:1.143rem;min-width:1.143rem;line-height:1.143rem;color:#1d4ed8;background:#eff6ff;margin-left:.5rem}.p-treetable .p-sortable-column:not(.p-highlight):hover{background:#f3f4f6;color:#374151}.p-treetable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon{color:#374151}.p-treetable .p-sortable-column.p-highlight{background:#eff6ff;color:#1d4ed8}.p-treetable .p-sortable-column.p-highlight .p-sortable-column-icon{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr{background:#fff;color:#4b5563;transition:box-shadow .2s}.p-treetable .p-treetable-tbody>tr>td{text-align:left;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-treetable .p-treetable-tbody>tr>td .p-treetable-toggler.p-icon{width:2rem;height:2rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox{margin-right:.5rem}.p-treetable .p-treetable-tbody>tr>td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon{color:#4b5563}.p-treetable .p-treetable-tbody>tr:focus-visible{outline:.15rem solid #BFDBFE;outline-offset:-.15rem}.p-treetable .p-treetable-tbody>tr.p-highlight{background:#eff6ff;color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler{color:#1d4ed8}.p-treetable .p-treetable-tbody>tr.p-highlight .p-treetable-toggler:hover{color:#1d4ed8}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover{background:#f3f4f6;color:#4b5563}.p-treetable.p-treetable-hoverable-rows .p-treetable-tbody>tr:not(.p-highlight):hover .p-treetable-toggler{color:#4b5563}.p-treetable .p-column-resizer-helper{background:#3b82f6}.p-treetable .p-treetable-scrollable-header,.p-treetable .p-treetable-scrollable-footer{background:#f9fafb}.p-treetable .p-treetable-loading-icon{font-size:2rem}.p-treetable .p-treetable-loading-icon.p-icon{width:2rem;height:2rem}.p-treetable.p-treetable-gridlines .p-datatable-header{border-width:1px 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-footer{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-top{border-width:0 1px 0 1px}.p-treetable.p-treetable-gridlines .p-treetable-bottom{border-width:0 1px 1px 1px}.p-treetable.p-treetable-gridlines .p-treetable-thead>tr>th{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tbody>tr>td{border-width:1px}.p-treetable.p-treetable-gridlines .p-treetable-tfoot>tr>td{border-width:1px}.p-treetable.p-treetable-sm .p-treetable-header{padding:.875rem}.p-treetable.p-treetable-sm .p-treetable-thead>tr>th{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tbody>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-tfoot>tr>td{padding:.5rem}.p-treetable.p-treetable-sm .p-treetable-footer{padding:.5rem}.p-treetable.p-treetable-lg .p-treetable-header{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-thead>tr>th{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tbody>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-tfoot>tr>td{padding:1.25rem}.p-treetable.p-treetable-lg .p-treetable-footer{padding:1.25rem}.p-virtualscroller .p-virtualscroller-header{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:1px 0 1px 0;padding:1rem;font-weight:700}.p-virtualscroller .p-virtualscroller-content{background:#fff;color:#4b5563;border:0 none;padding:0}.p-virtualscroller .p-virtualscroller-footer{background:#f9fafb;color:#374151;border:1px solid #e5e7eb;border-width:0 0 1px 0;padding:1rem;font-weight:700;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-accordion .p-accordion-header .p-accordion-header-link{padding:1.25rem;border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb;font-weight:700;border-radius:6px;transition:box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link .p-accordion-toggle-icon{margin-right:.5rem}.p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-accordion .p-accordion-header:not(.p-highlight):not(.p-disabled):hover .p-accordion-header-link{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link{background:#f9fafb;border-color:#e5e7eb;color:#374151;border-bottom-right-radius:0;border-bottom-left-radius:0}.p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link{border-color:#e5e7eb;background:#f3f4f6;color:#374151}.p-accordion .p-accordion-content{padding:1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0;border-radius:0 0 6px 6px}.p-accordion p-accordiontab .p-accordion-tab{margin-bottom:4px}.p-card{background:#fff;color:#4b5563;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;border-radius:6px}.p-card .p-card-body{padding:1.25rem}.p-card .p-card-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.p-card .p-card-subtitle{font-weight:400;margin-bottom:.5rem;color:#6b7280}.p-card .p-card-content{padding:1.25rem 0}.p-card .p-card-footer{padding:1.25rem 0 0}.p-divider .p-divider-content{background-color:#fff}.p-divider.p-divider-horizontal{margin:1.25rem 0;padding:0 1.25rem}.p-divider.p-divider-horizontal:before{border-top:1px #e5e7eb}.p-divider.p-divider-horizontal .p-divider-content{padding:0 .5rem}.p-divider.p-divider-vertical{margin:0 1.25rem;padding:1.25rem 0}.p-divider.p-divider-vertical:before{border-left:1px #e5e7eb}.p-divider.p-divider-vertical .p-divider-content{padding:.5rem 0}.p-fieldset{border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-radius:6px}.p-fieldset .p-fieldset-legend{padding:1.25rem;border:1px solid #e5e7eb;color:#374151;background:#f9fafb;font-weight:700;border-radius:6px}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend{padding:0;transition:background-color .2s,color .2s,box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a{padding:1.25rem;color:#374151;border-radius:6px;transition:box-shadow .2s}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a .p-fieldset-toggler{margin-right:.5rem}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fieldset.p-fieldset-toggleable .p-fieldset-legend:hover{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-fieldset .p-fieldset-content{padding:1.25rem}.p-panel .p-panel-header{border:1px solid #e5e7eb;padding:1.25rem;background:#f9fafb;color:#374151;border-top-right-radius:6px;border-top-left-radius:6px}.p-panel .p-panel-header .p-panel-title{font-weight:700}.p-panel .p-panel-header .p-panel-header-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-panel .p-panel-header .p-panel-header-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-panel .p-panel-header .p-panel-header-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-panel.p-panel-toggleable .p-panel-header{padding:.75rem 1.25rem}.p-panel .p-panel-content{padding:1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0 none}.p-panel .p-panel-content:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-panel .p-panel-footer{padding:.75rem 1.25rem;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px;border-top:0 none}.p-panel .p-panel-icons-end{order:2;margin-left:auto}.p-panel .p-panel-icons-start{order:0;margin-right:.5rem}.p-panel .p-panel-icons-center{order:2;width:100%;text-align:center}.p-scrollpanel .p-scrollpanel-bar{background:#f9fafb;border:0 none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-scrollpanel .p-scrollpanel-bar:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-splitter{border:1px solid #e5e7eb;background:#fff;border-radius:6px;color:#4b5563}.p-splitter .p-splitter-gutter{transition:background-color .2s,color .2s,box-shadow .2s;background:#f9fafb}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle{background:#e5e7eb}.p-splitter .p-splitter-gutter .p-splitter-gutter-handle:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-splitter .p-splitter-gutter-resizing{background:#e5e7eb}.p-tabview .p-tabview-nav-content{scroll-padding-inline:3rem}.p-tabview .p-tabview-nav{background:#fff;border:1px solid #e5e7eb;border-width:0 0 2px 0}.p-tabview .p-tabview-nav li{margin-right:0}.p-tabview .p-tabview-nav li .p-tabview-nav-link{border:solid #e5e7eb;border-width:0 0 2px 0;border-color:transparent transparent #e5e7eb transparent;background:#fff;color:#6b7280;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabview .p-tabview-nav li .p-tabview-nav-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-nav li:not(.p-highlight):not(.p-disabled):hover .p-tabview-nav-link{background:#fff;border-color:#9ca3af;color:#6b7280}.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link{background:#fff;border-color:#3b82f6;color:#3b82f6}.p-tabview .p-tabview-left-icon{margin-right:.5rem}.p-tabview .p-tabview-right-icon,.p-tabview .p-tabview-close{margin-left:.5rem}.p-tabview .p-tabview-nav-btn.p-link{background:#fff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabview .p-tabview-nav-btn.p-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabview .p-tabview-panels{background:#fff;padding:1.25rem;border:0 none;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-toolbar{background:#f9fafb;border:1px solid #e5e7eb;padding:1.25rem;border-radius:6px;gap:.5rem}.p-toolbar .p-toolbar-separator{margin:0 .5rem}.p-confirm-popup{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-confirm-popup .p-confirm-popup-content{padding:1.25rem}.p-confirm-popup .p-confirm-popup-footer{text-align:right;padding:.75rem 1.25rem}.p-confirm-popup .p-confirm-popup-footer button{margin:0 .5rem 0 0;width:auto}.p-confirm-popup .p-confirm-popup-footer button:last-child{margin:0}.p-confirm-popup:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup:before{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:after{border-top-color:#fff}.p-confirm-popup.p-confirm-popup-flipped:before{border-top-color:#fff}.p-confirm-popup .p-confirm-popup-icon{font-size:1.5rem}.p-confirm-popup .p-confirm-popup-icon.p-icon{width:1.5rem;height:1.5rem}.p-confirm-popup .p-confirm-popup-message{margin-left:1rem}.p-dialog{border-radius:6px;box-shadow:0 1px 3px #0000004d;border:0 none}.p-dialog .p-dialog-header{border-bottom:0 none;background:#fff;color:#374151;padding:1.5rem;border-top-right-radius:6px;border-top-left-radius:6px}.p-dialog .p-dialog-header .p-dialog-title{font-weight:700;font-size:1.25rem}.p-dialog .p-dialog-header .p-dialog-header-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-dialog .p-dialog-header .p-dialog-header-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-dialog .p-dialog-header .p-dialog-header-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-dialog .p-dialog-header .p-dialog-header-icon:last-child{margin-right:0}.p-dialog .p-dialog-content{background:#fff;color:#4b5563;padding:0 1.5rem 2rem}.p-dialog .p-dialog-content:last-of-type{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer{border-top:0 none;background:#fff;color:#4b5563;padding:0 1.5rem 1.5rem;text-align:right;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-dialog .p-dialog-footer button{margin:0 .5rem 0 0;width:auto}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon{font-size:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-icon.p-icon{width:2rem;height:2rem}.p-dialog.p-confirm-dialog .p-confirm-dialog-message{margin-left:1rem}.p-overlaypanel{background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 1px 3px #0000004d}.p-overlaypanel .p-overlaypanel-content{padding:1.25rem}.p-overlaypanel .p-overlaypanel-close{background:#3b82f6;color:#fff;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%;position:absolute;top:-1rem;right:-1rem}.p-overlaypanel .p-overlaypanel-close:enabled:hover{background:#2563eb;color:#fff}.p-overlaypanel:after{border:solid transparent;border-color:#fff0;border-bottom-color:#fff}.p-overlaypanel:before{border:solid transparent;border-color:#fff0;border-bottom-color:#f2f2f2}.p-overlaypanel.p-overlaypanel-flipped:after{border-top-color:#fff}.p-overlaypanel.p-overlaypanel-flipped:before{border-top-color:#fff}.p-sidebar{background:#fff;color:#4b5563;border:0 none;box-shadow:0 1px 3px #0000004d}.p-sidebar .p-sidebar-header{padding:1.25rem}.p-sidebar .p-sidebar-header .p-sidebar-close,.p-sidebar .p-sidebar-header .p-sidebar-icon{width:2rem;height:2rem;color:#6b7280;border:0 none;background:transparent;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-sidebar .p-sidebar-header .p-sidebar-close:enabled:hover,.p-sidebar .p-sidebar-header .p-sidebar-icon:enabled:hover{color:#374151;border-color:transparent;background:#f3f4f6}.p-sidebar .p-sidebar-header .p-sidebar-close:focus-visible,.p-sidebar .p-sidebar-header .p-sidebar-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-sidebar .p-sidebar-header+.p-sidebar-content{padding-top:0}.p-sidebar .p-sidebar-content,.p-sidebar .p-sidebar-footer{padding:1.25rem}.p-tooltip .p-tooltip-text{background:#4b5563;color:#fff;padding:.75rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-tooltip.p-tooltip-right .p-tooltip-arrow{border-right-color:#4b5563}.p-tooltip.p-tooltip-left .p-tooltip-arrow{border-left-color:#4b5563}.p-tooltip.p-tooltip-top .p-tooltip-arrow{border-top-color:#4b5563}.p-tooltip.p-tooltip-bottom .p-tooltip-arrow{border-bottom-color:#4b5563}.p-fileupload .p-fileupload-buttonbar{background:#f9fafb;padding:1.25rem;border:1px solid #e5e7eb;color:#374151;border-bottom:0 none;border-top-right-radius:6px;border-top-left-radius:6px}.p-fileupload .p-fileupload-buttonbar .p-button{margin-right:.5rem}.p-fileupload .p-fileupload-buttonbar .p-button.p-fileupload-choose.p-focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-fileupload .p-fileupload-content{background:#fff;padding:2rem 1rem;border:1px solid #e5e7eb;color:#4b5563;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.p-fileupload .p-fileupload-content.p-fileupload-highlight{border-color:1px dashed #3B82F6;border-style:dashed;background-color:#eff6ff}.p-fileupload .p-progressbar{height:.25rem}.p-fileupload .p-fileupload-row>div{padding:1rem}.p-fileupload.p-fileupload-advanced .p-message{margin-top:0}.p-fileupload-choose:not(.p-disabled):hover{background:#2563eb;color:#fff;border-color:#2563eb}.p-fileupload-choose:not(.p-disabled):active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.p-breadcrumb{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:1rem}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link{transition:box-shadow .2s;border-radius:6px}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-icon{color:#6b7280}.p-breadcrumb .p-breadcrumb-list li.p-menuitem-separator{margin:0 .5rem;color:#4b5563}.p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-text{color:#4b5563}.p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-icon{color:#6b7280}.p-contextmenu{padding:.5rem 0;background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px;width:12.5rem}.p-contextmenu .p-contextmenu-root-list{outline:0 none}.p-contextmenu .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-contextmenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-contextmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-contextmenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-contextmenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-contextmenu .p-submenu-icon{font-size:.875rem}.p-contextmenu .p-submenu-icon.p-icon{width:.875rem;height:.875rem}.p-dock .p-dock-list-container{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:.5rem;border-radius:.5rem}.p-dock .p-dock-list-container .p-dock-list{outline:0 none}.p-dock .p-dock-item{padding:.5rem;border-radius:6px}.p-dock .p-dock-item.p-focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .15rem #bfdbfe}.p-dock .p-dock-link{width:4rem;height:4rem}.p-dock.p-dock-top .p-dock-item-second-prev,.p-dock.p-dock-top .p-dock-item-second-next,.p-dock.p-dock-bottom .p-dock-item-second-prev,.p-dock.p-dock-bottom .p-dock-item-second-next{margin:0 .9rem}.p-dock.p-dock-top .p-dock-item-prev,.p-dock.p-dock-top .p-dock-item-next,.p-dock.p-dock-bottom .p-dock-item-prev,.p-dock.p-dock-bottom .p-dock-item-next{margin:0 1.3rem}.p-dock.p-dock-top .p-dock-item-current,.p-dock.p-dock-bottom .p-dock-item-current{margin:0 1.5rem}.p-dock.p-dock-left .p-dock-item-second-prev,.p-dock.p-dock-left .p-dock-item-second-next,.p-dock.p-dock-right .p-dock-item-second-prev,.p-dock.p-dock-right .p-dock-item-second-next{margin:.9rem 0}.p-dock.p-dock-left .p-dock-item-prev,.p-dock.p-dock-left .p-dock-item-next,.p-dock.p-dock-right .p-dock-item-prev,.p-dock.p-dock-right .p-dock-item-next{margin:1.3rem 0}.p-dock.p-dock-left .p-dock-item-current,.p-dock.p-dock-right .p-dock-item-current{margin:1.5rem 0}@media screen and (max-width: 960px){.p-dock.p-dock-top .p-dock-list-container,.p-dock.p-dock-bottom .p-dock-list-container{overflow-x:auto;width:100%}.p-dock.p-dock-top .p-dock-list-container .p-dock-list,.p-dock.p-dock-bottom .p-dock-list-container .p-dock-list{margin:0 auto}.p-dock.p-dock-left .p-dock-list-container,.p-dock.p-dock-right .p-dock-list-container{overflow-y:auto;height:100%}.p-dock.p-dock-left .p-dock-list-container .p-dock-list,.p-dock.p-dock-right .p-dock-list-container .p-dock-list{margin:auto 0}.p-dock .p-dock-list .p-dock-item{transform:none;margin:0}}.p-megamenu{padding:.5rem;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px}.p-megamenu .p-megamenu-root-list{outline:0 none}.p-megamenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-megamenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-megamenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-megamenu .p-megamenu-panel{background:#fff;color:#4b5563;border:0 none;box-shadow:0 2px 12px #0000001a}.p-megamenu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px}.p-megamenu .p-submenu-list{padding:.5rem 0;width:12.5rem}.p-megamenu .p-submenu-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-megamenu.p-megamenu-vertical{width:12.5rem;padding:.5rem 0}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:6px}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link{padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280;margin-left:.5rem}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-megamenu.p-megamenu-horizontal .p-megamenu-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-menu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menu.p-menu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-menu .p-submenu-header{margin:0;padding:.75rem 1.25rem;color:#374151;background:#fff;font-weight:700;border-top-right-radius:0;border-top-left-radius:0}.p-menu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menu .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-menubar{padding:.5rem;background:#f9fafb;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px}.p-menubar .p-menubar-root-list{outline:0 none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:6px}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link{padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280;margin-left:.5rem}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menubar-root-list>.p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-menubar .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-menubar .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-menubar .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;width:12.5rem}.p-menubar .p-submenu-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menubar .p-submenu-list .p-submenu-icon{font-size:.875rem}@media screen and (max-width: 960px){.p-menubar{position:relative}.p-menubar .p-menubar-button{display:flex;width:2rem;height:2rem;color:#6b7280;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s}.p-menubar .p-menubar-button:hover{color:#6b7280;background:#f3f4f6}.p-menubar .p-menubar-button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-menubar .p-menubar-root-list{position:absolute;display:none;padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a;width:100%}.p-menubar .p-menubar-root-list .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-menubar .p-menubar-root-list .p-submenu-icon{font-size:.875rem}.p-menubar .p-menubar-root-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon{margin-left:auto;transition:transform .2s}.p-menubar .p-menubar-root-list .p-menuitem.p-menuitem-active>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon{transform:rotate(-180deg)}.p-menubar .p-menubar-root-list .p-submenu-list{width:100%;position:static;box-shadow:none;border:0 none}.p-menubar .p-menubar-root-list .p-submenu-list .p-submenu-icon{transition:transform .2s;transform:rotate(90deg)}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem-active>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon{transform:rotate(-90deg)}.p-menubar .p-menubar-root-list .p-menuitem{width:100%;position:static}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:2.25rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:3.75rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:5.25rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:6.75rem}.p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link{padding-left:8.25rem}.p-menubar.p-menubar-mobile-active .p-menubar-root-list{display:flex;flex-direction:column;top:100%;left:0;z-index:1}}.p-panelmenu .p-panelmenu-header{outline:0 none}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content{border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb;border-radius:6px;transition:box-shadow .2s}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action{color:#6b7280;padding:1.25rem;font-weight:700}.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-submenu-icon,.p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-menuitem-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-header:not(.p-disabled):focus-visible .p-panelmenu-header-content{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-panelmenu .p-panelmenu-header:not(.p-highlight):not(.p-disabled):hover .p-panelmenu-header-content{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight .p-panelmenu-header-content{background:#f9fafb;border-color:#e5e7eb;color:#374151;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight:hover .p-panelmenu-header-content{border-color:#e5e7eb;background:#f3f4f6;color:#374151}.p-panelmenu .p-panelmenu-content{padding:.5rem 0;border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-top:0;border-radius:0 0 6px 6px}.p-panelmenu .p-panelmenu-content .p-panelmenu-root-list{outline:0 none}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon{margin-right:.5rem}.p-panelmenu .p-panelmenu-content .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-panelmenu .p-panelmenu-content .p-submenu-list:not(.p-panelmenu-root-list){padding:0 0 0 1rem}.p-panelmenu .p-panelmenu-panel{margin-bottom:4px}.p-slidemenu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-slidemenu .p-slidemenu-root-list,.p-slidemenu .p-submenu-list{outline:0 none}.p-slidemenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-slidemenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-slidemenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-slidemenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-slidemenu.p-slidemenu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-slidemenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-slidemenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-slidemenu .p-slidemenu-icon{font-size:.875rem}.p-slidemenu .p-icon{width:.875rem;height:.875rem}.p-slidemenu .p-slidemenu-backward{padding:.75rem 1.25rem;color:#4b5563}.p-slidemenu .p-slidemenu-backward:not(.p-disabled):focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-slidemenu .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-steps .p-steps-item .p-menuitem-link{background:transparent;transition:box-shadow .2s;border-radius:6px;background:#fff}.p-steps .p-steps-item .p-menuitem-link .p-steps-number{color:#4b5563;border:1px solid #f3f4f6;background:#fff;min-width:2rem;height:2rem;line-height:2rem;font-size:1.143rem;z-index:1;border-radius:50%}.p-steps .p-steps-item .p-menuitem-link .p-steps-title{margin-top:.5rem;color:#6b7280}.p-steps .p-steps-item .p-menuitem-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#eff6ff;color:#1d4ed8}.p-steps .p-steps-item.p-highlight .p-steps-title{font-weight:700;color:#4b5563}.p-steps .p-steps-item:before{content:" ";border-top:1px solid #e5e7eb;width:100%;top:50%;left:0;display:block;position:absolute;margin-top:-1rem}.p-tabmenu .p-tabmenu-nav{background:#fff;border:1px solid #e5e7eb;border-width:0 0 2px 0}.p-tabmenu .p-tabmenu-nav .p-menuitem-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem;border-radius:6px;margin-left:.5rem;padding-left:.5rem;padding-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem{margin-right:0}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{border:solid #e5e7eb;border-width:0 0 2px 0;border-color:transparent transparent #e5e7eb transparent;background:#fff;color:#6b7280;padding:1.25rem;font-weight:700;border-top-right-radius:6px;border-top-left-radius:6px;transition:box-shadow .2s;margin:0 0 -2px}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link .p-menuitem-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link:not(.p-disabled):focus-visible{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link{background:#fff;border-color:#9ca3af;color:#6b7280}.p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link{background:#fff;border-color:#3b82f6;color:#3b82f6}.p-tabmenu .p-tabmenu-left-icon{margin-right:.5rem}.p-tabmenu .p-tabmenu-right-icon{margin-left:.5rem}.p-tabmenu .p-tabmenu-nav-btn.p-link{background:#fff;color:#3b82f6;width:3rem;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border-radius:0}.p-tabmenu .p-tabmenu-nav-btn.p-link:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2rem #bfdbfe}.p-tieredmenu{padding:.5rem 0;background:#fff;color:#4b5563;border:1px solid #e5e7eb;border-radius:6px;width:12.5rem}.p-tieredmenu.p-tieredmenu-overlay{background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-tieredmenu-root-list{outline:0 none}.p-tieredmenu .p-submenu-list{padding:.5rem 0;background:#fff;border:0 none;box-shadow:0 2px 12px #0000001a}.p-tieredmenu .p-menuitem>.p-menuitem-content{color:#4b5563;transition:box-shadow .2s;border-radius:0}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link{color:#4b5563;padding:.75rem 1.25rem;-webkit-user-select:none;user-select:none}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon{color:#6b7280;margin-right:.5rem}.p-tieredmenu .p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content{color:#1d4ed8;background:#eff6ff}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem.p-highlight>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#1d4ed8}.p-tieredmenu .p-menuitem.p-highlight.p-focus>.p-menuitem-content{background:#3b82f63d}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content{color:#4b5563;background:#e5e7eb}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover{color:#4b5563;background:#f3f4f6}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-text{color:#4b5563}.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,.p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled)>.p-menuitem-content:hover .p-menuitem-link .p-submenu-icon{color:#6b7280}.p-tieredmenu .p-menuitem-separator{border-top:1px solid #e5e7eb;margin:.25rem 0}.p-tieredmenu .p-submenu-icon{font-size:.875rem}.p-tieredmenu .p-submenu-icon.p-icon{width:.875rem;height:.875rem}.p-inline-message{padding:.75rem;margin:0;border-radius:6px}.p-inline-message.p-inline-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0px;color:#3b82f6}.p-inline-message.p-inline-message-info .p-inline-message-icon{color:#3b82f6}.p-inline-message.p-inline-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0px;color:#1ea97c}.p-inline-message.p-inline-message-success .p-inline-message-icon{color:#1ea97c}.p-inline-message.p-inline-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0px;color:#cc8925}.p-inline-message.p-inline-message-warn .p-inline-message-icon{color:#cc8925}.p-inline-message.p-inline-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0px;color:#ff5757}.p-inline-message.p-inline-message-error .p-inline-message-icon{color:#ff5757}.p-inline-message .p-inline-message-icon{font-size:1rem;margin-right:.5rem}.p-inline-message .p-icon{width:1rem;height:1rem}.p-inline-message .p-inline-message-text{font-size:1rem}.p-inline-message.p-inline-message-icon-only .p-inline-message-icon{margin-right:0}.p-message{margin:1rem 0;border-radius:6px}.p-message .p-message-wrapper{padding:1.25rem 1.75rem}.p-message .p-message-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-message .p-message-close:hover{background:#ffffff80}.p-message .p-message-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-message.p-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0 0 0 6px;color:#3b82f6}.p-message.p-message-info .p-message-icon,.p-message.p-message-info .p-message-close{color:#3b82f6}.p-message.p-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-message.p-message-success .p-message-icon,.p-message.p-message-success .p-message-close{color:#1ea97c}.p-message.p-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-message.p-message-warn .p-message-icon,.p-message.p-message-warn .p-message-close{color:#cc8925}.p-message.p-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-message.p-message-error .p-message-icon,.p-message.p-message-error .p-message-close{color:#ff5757}.p-message .p-message-text{font-size:1rem;font-weight:500}.p-message .p-message-icon{font-size:1.5rem;margin-right:.5rem}.p-message .p-icon{width:1.5rem;height:1.5rem}.p-message .p-message-summary{font-weight:700}.p-message .p-message-detail{margin-left:.5rem}.p-toast{opacity:1}.p-toast .p-toast-message{margin:0 0 1rem;box-shadow:0 2px 12px #0000001a;border-radius:6px}.p-toast .p-toast-message .p-toast-message-content{padding:1rem;border-width:0 0 0 6px}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-text{margin:0 0 0 1rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon{font-size:2rem}.p-toast .p-toast-message .p-toast-message-content .p-icon:not(.p-toast-icon-close-icon){width:2rem;height:2rem}.p-toast .p-toast-message .p-toast-message-content .p-toast-summary{font-weight:700}.p-toast .p-toast-message .p-toast-message-content .p-toast-detail{margin:.5rem 0 0}.p-toast .p-toast-message .p-toast-icon-close{width:2rem;height:2rem;border-radius:50%;background:transparent;transition:background-color .2s,color .2s,box-shadow .2s}.p-toast .p-toast-message .p-toast-icon-close:hover{background:#ffffff80}.p-toast .p-toast-message .p-toast-icon-close:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-toast .p-toast-message.p-toast-message-info{background:#dbeafeb3;border:solid #3b82f6;border-width:0 0 0 6px;color:#3b82f6}.p-toast .p-toast-message.p-toast-message-info .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-info .p-toast-icon-close{color:#3b82f6}.p-toast .p-toast-message.p-toast-message-success{background:#e4f8f0b3;border:solid #1ea97c;border-width:0 0 0 6px;color:#1ea97c}.p-toast .p-toast-message.p-toast-message-success .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-success .p-toast-icon-close{color:#1ea97c}.p-toast .p-toast-message.p-toast-message-warn{background:#fff2e2b3;border:solid #cc8925;border-width:0 0 0 6px;color:#cc8925}.p-toast .p-toast-message.p-toast-message-warn .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-warn .p-toast-icon-close{color:#cc8925}.p-toast .p-toast-message.p-toast-message-error{background:#ffe7e6b3;border:solid #ff5757;border-width:0 0 0 6px;color:#ff5757}.p-toast .p-toast-message.p-toast-message-error .p-toast-message-icon,.p-toast .p-toast-message.p-toast-message-error .p-toast-icon-close{color:#ff5757}.p-galleria .p-galleria-close{margin:.5rem;background:transparent;color:#f9fafb;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-close .p-galleria-close-icon{font-size:2rem}.p-galleria .p-galleria-close .p-icon-wrapper .p-icon{width:2rem;height:2rem}.p-galleria .p-galleria-close:hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-item-nav{background:transparent;color:#f9fafb;width:4rem;height:4rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:6px;margin:0 .5rem}.p-galleria .p-galleria-item-nav .p-galleria-item-prev-icon,.p-galleria .p-galleria-item-nav .p-galleria-item-next-icon{font-size:2rem}.p-galleria .p-galleria-item-nav .p-icon-wrapper .p-icon{width:2rem;height:2rem}.p-galleria .p-galleria-item-nav:not(.p-disabled):hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-caption{background:#00000080;color:#f9fafb;padding:1rem}.p-galleria .p-galleria-indicators{padding:1rem}.p-galleria .p-galleria-indicators .p-galleria-indicator button{background-color:#d1d5db;width:1rem;height:1rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-indicators .p-galleria-indicator button:hover{background:#9ca3af}.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-galleria.p-galleria-indicators-bottom .p-galleria-indicator,.p-galleria.p-galleria-indicators-top .p-galleria-indicator{margin-right:.5rem}.p-galleria.p-galleria-indicators-left .p-galleria-indicator,.p-galleria.p-galleria-indicators-right .p-galleria-indicator{margin-bottom:.5rem}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators{background:#00000080}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button{background:#fff6}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button:hover{background:#fff9}.p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator.p-highlight button{background:#eff6ff;color:#1d4ed8}.p-galleria .p-galleria-thumbnail-container{background:#000000e6;padding:1rem .25rem}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next{margin:.5rem;background-color:transparent;color:#f9fafb;width:2rem;height:2rem;transition:background-color .2s,color .2s,box-shadow .2s;border-radius:50%}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev:hover,.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next:hover{background:#ffffff1a;color:#f9fafb}.p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-galleria-mask,.p-image-mask{--maskbg: rgba(0, 0, 0, .9)}.p-image-preview-indicator{background-color:transparent;color:#f8f9fa;transition:background-color .2s,color .2s,box-shadow .2s}.p-image-preview-container:hover>.p-image-preview-indicator{background-color:#00000080}.p-image-toolbar{padding:1rem}.p-image-action.p-link{color:#f8f9fa;background-color:transparent;width:3rem;height:3rem;border-radius:50%;transition:background-color .2s,color .2s,box-shadow .2s;margin-right:.5rem}.p-image-action.p-link:last-child{margin-right:0}.p-image-action.p-link:hover{color:#f8f9fa;background-color:#ffffff1a}.p-image-action.p-link i{font-size:1.5rem}.p-image-action.p-link .p-icon{width:1.5rem;height:1.5rem}.p-avatar{background-color:#e5e7eb;border-radius:6px}.p-avatar.p-avatar-lg{width:3rem;height:3rem;font-size:1.5rem}.p-avatar.p-avatar-lg .p-avatar-icon{font-size:1.5rem}.p-avatar.p-avatar-xl{width:4rem;height:4rem;font-size:2rem}.p-avatar.p-avatar-xl .p-avatar-icon{font-size:2rem}.p-avatar-group .p-avatar{border:2px solid #ffffff}.p-badge{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;min-width:1.5rem;height:1.5rem;line-height:1.5rem}.p-badge.p-badge-secondary{background-color:#64748b;color:#fff}.p-badge.p-badge-success{background-color:#22c55e;color:#fff}.p-badge.p-badge-info{background-color:#0ea5e9;color:#fff}.p-badge.p-badge-warning{background-color:#f97316;color:#fff}.p-badge.p-badge-danger{background-color:#ef4444;color:#fff}.p-badge.p-badge-lg{font-size:1.125rem;min-width:2.25rem;height:2.25rem;line-height:2.25rem}.p-badge.p-badge-xl{font-size:1.5rem;min-width:3rem;height:3rem;line-height:3rem}.p-chip{background-color:#e5e7eb;color:#4b5563;border-radius:16px;padding:0 .75rem}.p-chip .p-chip-text{line-height:1.5;margin-top:.375rem;margin-bottom:.375rem}.p-chip .p-chip-icon{margin-right:.5rem}.p-chip .pi-chip-remove-icon{margin-left:.5rem}.p-chip img{width:2.25rem;height:2.25rem;margin-left:-.75rem;margin-right:.5rem}.p-chip .pi-chip-remove-icon{border-radius:6px;transition:background-color .2s,color .2s,box-shadow .2s}.p-chip .pi-chip-remove-icon:focus-visible{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-chip .pi-chip-remove-icon:focus{outline:0 none}.p-inplace .p-inplace-display{padding:.75rem;border-radius:6px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-inplace .p-inplace-display:not(.p-disabled):hover{background:#f3f4f6;color:#4b5563}.p-inplace .p-inplace-display:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem #bfdbfe}.p-metergroup,.p-metergroup-meters{display:flex}.p-metergroup-vertical{height:100%}.p-metergroup-vertical .p-metergroup-meters{flex-direction:column}.p-metergroup-labels{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style-type:none}.p-metergroup-vertical .p-metergroup-labels{align-items:start}.p-metergroup-labels-vertical{flex-direction:column}.p-metergroup-label{display:inline-flex;align-items:center}.p-metergroup-label-marker{display:inline-flex}.p-metergroup{gap:1rem}.p-metergroup .p-metergroup-meters{background:#e5e7eb;border-radius:6px}.p-metergroup .p-metergroup-meter{border:0 none;background:#3b82f6}.p-metergroup .p-metergroup-labels .p-metergroup-label{gap:.5rem}.p-metergroup .p-metergroup-labels .p-metergroup-label-marker{background:#3b82f6;width:.5rem;height:.5rem;border-radius:100%}.p-metergroup .p-metergroup-labels .p-metergroup-label-icon{width:1rem;height:1rem}.p-metergroup .p-metergroup-labels.p-metergroup-labels-vertical{gap:.5rem}.p-metergroup .p-metergroup-labels.p-metergroup-labels-horizontal{gap:1rem}.p-metergroup.p-metergroup-horizontal{flex-direction:column}.p-metergroup.p-metergroup-horizontal .p-metergroup-meters{height:.5rem}.p-metergroup.p-metergroup-horizontal .p-metergroup-meter:first-of-type{border-top-left-radius:6px;border-bottom-left-radius:6px}.p-metergroup.p-metergroup-horizontal .p-metergroup-meter:last-of-type{border-top-right-radius:6px;border-bottom-right-radius:6px}.p-metergroup.p-metergroup-vertical{flex-direction:row}.p-metergroup.p-metergroup-vertical .p-metergroup-meters{width:.5rem;height:100%}.p-metergroup.p-metergroup-vertical .p-metergroup-meter:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}.p-metergroup.p-metergroup-vertical .p-metergroup-meter:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.p-progressbar{border:0 none;height:1.5rem;background:#e5e7eb;border-radius:6px}.p-progressbar .p-progressbar-value{border:0 none;margin:0;background:#3b82f6}.p-progressbar .p-progressbar-label{color:#fff;line-height:1.5rem}.p-scrolltop{width:3rem;height:3rem;border-radius:50%;box-shadow:0 2px 12px #0000001a;transition:background-color .2s,color .2s,box-shadow .2s}.p-scrolltop.p-link{background:#000000b3}.p-scrolltop.p-link:hover{background:#000c}.p-scrolltop .p-scrolltop-icon{font-size:1.5rem;color:#f9fafb}.p-scrolltop .p-icon{width:1.5rem;height:1.5rem}.p-skeleton{background-color:#e5e7eb;border-radius:6px}.p-skeleton:after{background:linear-gradient(90deg,#fff0,#fff6,#fff0)}.p-tag{background:#3b82f6;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .4rem;border-radius:6px}.p-tag.p-tag-success{background-color:#22c55e;color:#fff}.p-tag.p-tag-info{background-color:#0ea5e9;color:#fff}.p-tag.p-tag-warning{background-color:#f97316;color:#fff}.p-tag.p-tag-danger{background-color:#ef4444;color:#fff}.p-tag .p-tag-icon{margin-right:.25rem;font-size:.75rem}.p-tag .p-icon{width:.75rem;height:.75rem}.p-terminal{background:#fff;color:#4b5563;border:1px solid #e5e7eb;padding:1.25rem}.p-terminal .p-terminal-input{font-family:var(--font-family);font-feature-settings:var(--font-feature-settings, normal);font-size:1rem}}@layer primeng{.p-button-label{font-weight:700}.p-selectbutton>.p-button,.p-togglebutton.p-button{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-accordion .p-accordion-header .p-accordion-header-link,.p-tabview .p-tabview-nav li .p-tabview-nav-link,.p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link{transition:background-color .2s,border-color .2s,box-shadow .2s}.p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button,.p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button{background-color:#3b82f6}.p-button:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-button.p-button-secondary:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #b0b9c6,0 1px 2px #000}.p-button.p-button-success:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #88eaac,0 1px 2px #000}.p-button.p-button-info:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #83d3f8,0 1px 2px #000}.p-button.p-button-warning:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #fcb98b,0 1px 2px #000}.p-button.p-button-help:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #d4aafb,0 1px 2px #000}.p-button.p-button-danger:enabled:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px #f7a2a2,0 1px 2px #000}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-top>td{box-shadow:inset 0 2px #3b82f6}.p-datatable .p-datatable-tbody>tr.p-datatable-dragpoint-bottom>td{box-shadow:inset 0 -2px #3b82f6}.p-speeddial-item.p-focus>.p-speeddial-action{box-shadow:0 0 0 2px #fff,0 0 0 4px #9dc1fb,0 1px 2px #000}.p-toast-message{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.p-inline-message-text{font-weight:500}.p-picklist-buttons .p-button,.p-orderlist-controls .p-button{transition:opacity .2s,background-color .2s,color .2s,border-color .2s,box-shadow .2s}.p-steps .p-steps-item.p-highlight .p-steps-number{background:#3b82f6;color:#fff}}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container .ngx-toastr{border-radius:var(--bs-border-radius);position:relative;overflow:hidden;margin:0 0 6px;padding:.75rem 1.25rem .75rem 50px;width:300px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 10px #00000008;pointer-events:auto}.toast-container .ngx-toastr .toast-title{font-weight:700}.toast-container .ngx-toastr .toast-message{word-wrap:break-word}.toast-container .ngx-toastr .toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}.toast-container .ngx-toastr .toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.3}.toast-container .ngx-toastr .toast-close-button:hover,.toast-container .ngx-toastr .toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.75}.toast-container .ngx-toastr:hover{box-shadow:0 0 10px #00000026;opacity:1;cursor:pointer}.toast-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");color:#155724!important;background-color:#d4edda;border:1px solid #c3e6cb}.toast-success a{text-decoration:underline!important;color:#08210e!important}.toast-success a:hover{color:#020703!important}.toast-error{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E");color:#721c24!important;background-color:#f8d7da;border:1px solid #f5c6cb}.toast-error a{text-decoration:underline!important;color:#2c0b0e!important}.toast-error a:hover{color:#090203!important}.toast-info{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");color:#0c5460!important;background-color:#d1ecf1;border:1px solid #bee5eb}.toast-info a{text-decoration:underline!important;color:#052025!important}.toast-info a:hover{color:#010607!important}.toast-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");color:#856404!important;background-color:#fff3cd;border:1px solid #ffeeba}.toast-warning a{text-decoration:underline!important;color:#332701!important}.toast-warning a:hover{color:#0a0800!important}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}.switch{font-size:1rem;position:relative}.switch input{position:absolute;height:1px;width:1px;background:none;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;padding:0}.switch input+label{position:relative;min-width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2);border-radius:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);height:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);display:inline-block;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;vertical-align:middle;text-indent:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch input+label:before,.switch input+label:after{content:"";position:absolute;top:0;left:0;width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) * 2);bottom:0;display:block}.switch input+label:before{right:0;background-color:#dee2e6;border-radius:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8);transition:.2s all}.switch input+label:after{top:2px;left:2px;width:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);border-radius:50%;background-color:#fff;transition:.2s all}.switch input:checked+label:before{background-color:#0073dd}.switch input:checked+label:after{margin-left:calc(calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) * .8)}.switch input:focus+label:before{outline:none;box-shadow:0 0 0 .25rem #0073dd40}.switch input:disabled+label{color:#868e96;cursor:not-allowed}.switch input:disabled+label:before{background-color:#e9ecef}.switch.switch-sm{font-size:.875rem}.switch.switch-sm input+label{min-width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2);height:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8);text-indent:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch.switch-sm input+label:before{width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) * 2)}.switch.switch-sm input+label:after{width:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2)}.switch.switch-sm input:checked+label:after{margin-left:calc(calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) * .8)}.switch.switch-lg{font-size:1.25rem}.switch.switch-lg input+label{min-width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2);height:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8);line-height:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8);text-indent:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2 + .5rem)}.switch.switch-lg input+label:before{width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) * 2)}.switch.switch-lg input+label:after{width:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2);height:calc(calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8) - 2px * 2)}.switch.switch-lg input:checked+label:after{margin-left:calc(calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) * .8)}.switch+.switch{margin-left:1rem}.blink{color:red;animation:blink 2s steps(5,start) infinite;-webkit-animation:blink 1s steps(5,start) infinite}@keyframes blink{to{visibility:hidden}}button[disabled]{cursor:not-allowed}ng-select .ng-dropdown-panel{width:auto}a{text-decoration:none}.card-footer{padding:2;color:transparent;background-color:transparent;border-top:0}.p-datatable .p-sortable-column .p-sortable-column-icon{margin-left:.2rem}.p-inputtext{padding:.375rem .75rem}.p-input-icon-left>.p-inputtext{padding-left:2.5rem}.advanced-pie-legend .total-value{font-size:20px!important}.advanced-pie-legend .total-label{font-size:14px!important;margin-bottom:5px!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:14px!important;margin-left:11px;line-height:1em!important;margin-top:0!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:10px!important;opacity:.7;margin-left:11px;margin-top:0!important;line-height:1em!important}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:14px!important;opacity:.7;margin-left:11px;line-height:1em!important} From a43175479257205e72d4588518236ac7f9cf9f63 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 21 Mar 2024 07:49:25 +0100 Subject: [PATCH 128/301] Plugin wip-develop version 7.2.036 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 4b6e48947..1e588445c 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.035"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.036"} \ No newline at end of file From e3a1e9bc822b5c66ff732d65a9905444e5c6fa71 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 23 Mar 2024 10:50:31 +0100 Subject: [PATCH 129/301] refactoring and make sure that before processing JSON we convert quote into double quote --- Classes/GroupMgtv2/GrpDomoticz.py | 38 +++++++------- Classes/WebServer/WebServer.py | 76 +++++++++++++++------------- Classes/ZigpyTransport/AppGeneric.py | 3 +- Modules/domoticzAbstractLayer.py | 7 ++- Modules/tools.py | 16 ++---- 5 files changed, 68 insertions(+), 72 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index e2df5bf0a..ddf305a75 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -18,7 +18,7 @@ from Modules.domoticzAbstractLayer import ( FreeUnit, domo_create_api, domo_delete_widget, domo_read_Name, domo_read_nValue_sValue, domo_read_SwitchType_SubType_Type, - domo_update_api, domo_update_name, domo_update_witchType_SubType_Type, + domo_update_api, domo_update_name, domo_update_SwitchType_SubType_Type, find_first_unit_widget_from_deviceID) from Modules.tools import Hex_Format, is_hex from Modules.zigateConsts import ADDRESS_MODE, LEGRAND_REMOTES, ZIGATE_EP @@ -111,26 +111,22 @@ def update_domoticz_group_device_widget_name(self, GroupName, GroupId): def update_domoticz_group_device_widget(self, GroupId): - # Due to bug https://github.com/domoticz/domoticz/issues/6027 (on extended Framework ), this function is not supported anymore - - return - - # self.logging("Debug", "update_domoticz_group_device_widget GroupId: %s" % GroupId) - # if GroupId == "": - # self.logging("Error", "update_domoticz_group_device_widget - Invalid GroupdID: %s" % (GroupId)) -# - # unit = find_first_unit_widget_from_deviceID(self, self.Devices, GroupId) - # if unit is None: - # self.logging( "Debug", f"update_domoticz_group_device_widget_name - no unit found for GroupId {GroupId} - {self.ListOfGroups[GroupId]}" ) - # LookForGroupAndCreateIfNeeded(self, GroupId) - # return -# - # Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) - # current_switchType, current_Subtype, current_Type = domo_read_SwitchType_SubType_Type(self, self.Devices, GroupId, unit) - # self.logging( "Debug", " Looking to update Unit: %s from %s %s %s to %s %s %s"% ( - # unit, current_Type, current_Subtype, current_switchType, Type_, Subtype_, SwitchType_, ),) -# - # domo_update_witchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_) + self.logging("Debug", "update_domoticz_group_device_widget GroupId: %s" % GroupId) + if GroupId == "": + self.logging("Error", "update_domoticz_group_device_widget - Invalid GroupdID: %s" % (GroupId)) + + unit = find_first_unit_widget_from_deviceID(self, self.Devices, GroupId) + if unit is None: + self.logging( "Debug", f"update_domoticz_group_device_widget_name - no unit found for GroupId {GroupId} - {self.ListOfGroups[GroupId]}" ) + LookForGroupAndCreateIfNeeded(self, GroupId) + return + + Type_, Subtype_, SwitchType_ = best_group_widget(self, GroupId) + current_switchType, current_Subtype, current_Type = domo_read_SwitchType_SubType_Type(self, self.Devices, GroupId, unit) + self.logging( "Debug", " Looking to update Unit: %s from %s %s %s to %s %s %s"% ( + unit, current_Type, current_Subtype, current_switchType, Type_, Subtype_, SwitchType_, ),) + + domo_update_SwitchType_SubType_Type(self, self.Devices, GroupId, unit, Type_, Subtype_, SwitchType_) def best_group_widget(self, GroupId): diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 37bc78928..935b2deab 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -25,7 +25,7 @@ domoticz_log_api, domoticz_status_api) from Modules.sendZigateCommand import sendZigateCmd -from Modules.tools import is_hex +from Modules.tools import is_hex, get_device_nickname from Modules.txPower import set_TxPower from Modules.zigateCommands import zigate_set_mode from Modules.zigateConsts import (CERTIFICATION_CODE, ZCL_CLUSTERS_LIST, @@ -958,8 +958,9 @@ def rest_zDevice_name(self, verb, data, parameters): if "Param" in self.ListOfDevices[dev] and self.ListOfDevices[dev]["Param"] == x["Param"]: continue + self.logging( "Debug", "--> Initial Param: %s (%s)" %( x["Param"], type(x["Param"]))) _new_param = decode_device_param(self, dev, x["Param"]) - self.logging( "Debug", "--> Param: %s (%s)" %( _new_param, type(_new_param))) + self.logging( "Debug", "--> Converted Param: %s (%s)" %( _new_param, type(_new_param))) if "Disabled" in _new_param: if _new_param["Disabled"]: @@ -1539,46 +1540,53 @@ def dummy_zdevice_name(): return [{"Battery": "", "ConsistencyCheck": "ok", "Health": "Disabled", "IEEE": "90fd9ffffe86c7a1", "LQI": 80, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "TRADFRI bulb E27 WS clear 950lm", "Param": "{'Disabled': true, 'PowerOnAfterOffOn': 255, 'fadingOff': 0, 'moveToHueSatu': 0, 'moveToColourTemp': 0, 'moveToColourRGB': 0, 'moveToLevel': 0}", "Status": "inDB", "WidgetList": ["Zigbee - TRADFRI bulb E27 WS clear 950lm_ColorControlWW-90fd9ffffe86c7a1-01"], "ZDeviceName": "Led Ikea", "_NwkId": "ada7"}, {"Battery": "", "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "60a423fffe529d60", "LQI": 80, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "LXEK-1", "Param": "{'PowerOnAfterOffOn': 255, 'fadingOff': 0, 'moveToHueSatu': 0, 'moveToColourTemp': 0, 'moveToColourRGB': 0, 'moveToLevel': 0}", "Status": "inDB", "WidgetList": ["Zigbee - LXEK-1_ColorControlRGBWW-60a423fffe529d60-01"], "ZDeviceName": "Led LKex", "_NwkId": "7173"}, {"Battery": "", "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "680ae2fffe7aca89", "LQI": 80, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "TRADFRI Signal Repeater", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - TRADFRI Signal Repeater_Voltage-680ae2fffe7aca89-01"], "ZDeviceName": "Repeater", "_NwkId": "a5ee"}, {"Battery": 16.0, "ConsistencyCheck": "ok", "Health": "Not seen last 24hours", "IEEE": "90fd9ffffeea89e8", "LQI": 25, "MacCapa": ["RFD", "Battery"], "Model": "TRADFRI remote control", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - TRADFRI remote control_Ikea_Round_5b-90fd9ffffeea89e8-01"], "ZDeviceName": "Remote Tradfri", "_NwkId": "cee1"}, {"Battery": 100, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "000d6f0011087079", "LQI": 116, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "WarningDevice", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - WarningDevice_AlarmWD-000d6f0011087079-01"], "ZDeviceName": "IAS Sirene", "_NwkId": "2e33"}, {"Battery": 53, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "54ef441000298533", "LQI": 76, "MacCapa": ["RFD", "Battery"], "Model": "lumi.magnet.acn001", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - lumi.magnet.acn001_Door-54ef441000298533-01"], "ZDeviceName": "Lumi Door", "_NwkId": "bb45"}, {"Battery": "", "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "00047400008aff8b", "LQI": 80, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "Shutter switch with neutral", "Param": "{'netatmoInvertShutter': 0, 'netatmoLedShutter': 0}", "Status": "inDB", "WidgetList": ["Zigbee - Shutter switch with neutral_Venetian-00047400008aff8b-01"], "ZDeviceName": "Inter Shutter Legrand", "_NwkId": "06ab"}, {"Battery": "", "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "000474000082a54f", "LQI": 18, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "Dimmer switch wo neutral", "Param": "{'netatmoEnableDimmer': 1, 'PowerOnAfterOffOn': 255, 'BallastMaxLevel': 254, 'BallastMinLevel': 1}", "Status": "inDB", "WidgetList": ["Zigbee - Dimmer switch wo neutral_LvlControl-000474000082a54f-01"], "ZDeviceName": "Inter Dimmer Legrand", "_NwkId": "9c25"}, {"Battery": "", "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "00047400001f09a4", "LQI": 80, "MacCapa": ["FFD", "RxonIdle", "MainPower"], "Model": "Micromodule switch", "Param": "{'PowerOnAfterOffOn': 255}", "Status": "inDB", "WidgetList": ["Zigbee - Micromodule switch_Switch-00047400001f09a4-01"], "ZDeviceName": "Micromodule Legrand", "_NwkId": "8706"}, {"Battery": "", "ConsistencyCheck": "ok", "Health": "", "IEEE": "00158d0003021601", "LQI": 0, "MacCapa": ["RFD", "Battery"], "Model": "lumi.sensor_motion.aq2", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - lumi.sensor_motion.aq2_Motion-00158d0003021601-01", "Zigbee - lumi.sensor_motion.aq2_Lux-00158d0003021601-01"], "ZDeviceName": "Lumi Motion", "_NwkId": "6f81"}, {"Battery": 100, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "0015bc001a01aa27", "LQI": 83, "MacCapa": ["RFD", "Battery"], "Model": "MOSZB-140", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - MOSZB-140_Motion-0015bc001a01aa27-23", "Zigbee - MOSZB-140_Tamper-0015bc001a01aa27-23", "Zigbee - MOSZB-140_Voltage-0015bc001a01aa27-23", "Zigbee - MOSZB-140_Temp-0015bc001a01aa27-26", "Zigbee - MOSZB-140_Lux-0015bc001a01aa27-27"], "ZDeviceName": "Motion frient", "_NwkId": "b9bc"}, {"Battery": 63, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "00158d000323dabe", "LQI": 61, "MacCapa": ["RFD", "Battery"], "Model": "lumi.sensor_switch", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - lumi.sensor_switch_SwitchAQ2-00158d000323dabe-01"], "ZDeviceName": "Lumi Switch (rond)", "_NwkId": "a029"}, {"Battery": 100.0, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "000d6ffffea1e6da", "LQI": 94, "MacCapa": ["RFD", "Battery"], "Model": "TRADFRI onoff switch", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - TRADFRI onoff switch_SwitchIKEA-000d6ffffea1e6da-01"], "ZDeviceName": "OnOff Ikea", "_NwkId": "c6ca"}, {"Battery": 100.0, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "000b57fffe2c0dde", "LQI": 87, "MacCapa": ["RFD", "Battery"], "Model": "TRADFRI wireless dimmer", "Param": "{}", "Status": "inDB", "WidgetList": ["Zigbee - TRADFRI wireless dimmer_GenericLvlControl-000b57fffe2c0dde-01"], "ZDeviceName": "Dim Ikea", "_NwkId": "6c43"}, {"Battery": 100, "ConsistencyCheck": "ok", "Health": "Live", "IEEE": "588e81fffe35f595", "LQI": 80, "MacCapa": ["RFD", "Battery"], "Model": "Wiser2-Thermostat", "Param": "{'WiserLockThermostat': 0, 'WiserRoomNumber': 1}", "Status": "inDB", "WidgetList": ["Zigbee - Wiser2-Thermostat_Temp+Hum-588e81fffe35f595-01", "Zigbee - Wiser2-Thermostat_Humi-588e81fffe35f595-01", "Zigbee - Wiser2-Thermostat_Temp-588e81fffe35f595-01", "Zigbee - Wiser2-Thermostat_ThermoSetpoint-588e81fffe35f595-01", "Zigbee - Wiser2-Thermostat_Valve-588e81fffe35f595-01"], "ZDeviceName": "Wiser Thermostat", "_NwkId": "5a00"}] -def validateJSON( self, jsonData, nwkid=None): - +def validateJSON(self, jsonData, nwkid=None): + if not jsonData: + return {} + try: - return json.loads(jsonData) + return json.loads(replace_single_quotes_with_double(jsonData) ) + + except json.JSONDecodeError as err: + error_message = "validateJSON - Wrong JSON syntax: {}".format(err) + if nwkid is not None: + device_name = get_device_nickname(self, NwkId=nwkid) + error_message = "validateJSON - Device: {}/{} - {}".format(device_name, nwkid, error_message) + self.logging("Error", error_message) + return {} + +def decode_device_param(self, nwkid, param): + if not param: + return {} - except (TypeError, ValueError) as err: - if nwkid is None: - self.logging( "Error", "Error on REST API /zdevice-name. Wrong JSON syntax for %s \n >%s< " % ( - jsonData, err), ) - return {} - - _device_name = "" - if nwkid in self.ListOfDevices and "ZDeviceName" in self.ListOfDevices[nwkid]: - _device_name = self.ListOfDevices[nwkid]["ZDeviceName"] - self.logging( "Error", "When updating Device Management, Device: %s/%s got a wrong syntax for >%s< - %s.\n Make sure to use JSON syntax" % ( - _device_name, nwkid, jsonData, err), ) + try: + return json.loads(replace_single_quotes_with_double(param)) - return {} + except json.JSONDecodeError as err: + _device_name = get_device_nickname(self, NwkId=nwkid) + self.logging("Error", "When updating Device Management, Device: %s/%s got a wrong Parameter syntax for >%s< (%s) - %s.\n Make sure to use JSON syntax" % ( + _device_name, nwkid, param, type(param), err)) + return {} -def decode_device_param(self, nwkid, param): - try: - return eval(param) - except Exception as e: - _device_name = "" - if nwkid in self.ListOfDevices and "ZDeviceName" in self.ListOfDevices[nwkid]: - _device_name = self.ListOfDevices[nwkid]["ZDeviceName"] +def replace_single_quotes_with_double(json_string): + """ + Replace single quotes with double quotes in a JSON string. + + Parameters: + json_string (str): JSON string with single quotes. + + Returns: + str: JSON string with single quotes replaced by double quotes. + """ + return json_string.replace("'", "\"") - self.logging( "Error", "When updating Device Management, Device: %s/%s got a wrong Parameter syntax for >%s< - %s.\n Make sure to use JSON syntax" % ( - _device_name, nwkid, param, e), ) - return {} def get_plugin_parameters(self, filter=False): - plugin_parameters = dict(self.pluginParameters) + plugin_parameters = self.pluginParameters.copy() if filter: - if "Mode5" in plugin_parameters: - del plugin_parameters[ "Mode5" ] - if "Username" in plugin_parameters: - del plugin_parameters[ "Username" ] - if "Password" in plugin_parameters: - del plugin_parameters[ "Password" ] + keys_to_remove = ["Mode5", "Username", "Password"] + for key in keys_to_remove: + plugin_parameters.pop(key, None) return plugin_parameters diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 37e153830..9d7c57eb0 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -287,9 +287,10 @@ def get_device_ieee(self, nwk): def handle_leave(self, nwk, ieee): self.log.logging("TransportZigpy", "Debug","handle_leave (0x%04x %s)" %(nwk, ieee)) + super(type(self),self).handle_leave(nwk, ieee) plugin_frame = build_plugin_8048_frame_content(self, ieee) self.callBackFunction(plugin_frame) - super(type(self),self).handle_leave(nwk, ieee) + def handle_relays(self, nwk, relays) -> None: diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index bfe5a1407..c4172dccd 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -470,19 +470,18 @@ def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): Devices[Unit_].Update(nValue=nValue, sValue=sValue, Name=Name_) -def domo_update_witchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): +def domo_update_SwitchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): - self.log.logging("AbstractDz", "Debug", "domo_update_witchType_SubType_Type DeviceID: %s,Unit: %s,Type: %s,Subtype: %s,Switchtype: %s" %( + self.log.logging("AbstractDz", "Debug", "domo_update_SwitchType_SubType_Type DeviceID: %s,Unit: %s,Type: %s,Subtype: %s,Switchtype: %s" %( DeviceID_, Unit_, Type_, Subtype_, Switchtype_)) if DOMOTICZ_EXTENDED_API: # Due to bug https://github.com/domoticz/domoticz/issues/6027 (on extended Framework ) - return # Devices[DeviceID_].Units[Unit_].Type = Type_ # Devices[DeviceID_].Units[Unit_].SubType = Subtype_ # Devices[DeviceID_].Units[Unit_].SwitchType = Switchtype_ # Devices[DeviceID_].Units[Unit_].Update(Log=True) - # return + return nValue = Devices[Unit_].nValue sValue = Devices[Unit_].sValue diff --git a/Modules/tools.py b/Modules/tools.py index 88cc465c1..219d6d3b0 100644 --- a/Modules/tools.py +++ b/Modules/tools.py @@ -1379,19 +1379,13 @@ def is_domoticz_db_available(self): return True - def get_device_nickname(self, NwkId=None, Ieee=None): - if Ieee and Ieee in self.IEEE2NWK: - NwkId = self.IEEE2NWK[Ieee] - - device_name = self.ListOfDevices.get(NwkId, {}).get('ZDeviceName', None) - - if device_name and device_name not in ('', {}): - return device_name - - return None + if Ieee: + NwkId = self.IEEE2NWK.get(Ieee, NwkId) + return self.ListOfDevices.get(NwkId, {}).get('ZDeviceName', "") + def extract_info_from_8085(MsgData): step_mod = MsgData[14:16] up_down = MsgData[16:18] if len(MsgData) >= 18 else None @@ -1575,8 +1569,6 @@ def unknown_device_model(self, NwkId, Model, ManufCode, ManufName ): return device_name = get_device_nickname( self, NwkId=NwkId) - if device_name is None: - device_name = "" self.log.logging("Plugin", "Log", "We have detected a working device %s (%s) Model: %s not optimized with the plugin. " %( get_device_nickname( self, NwkId=NwkId), NwkId, Model, )) From 00d118f682e1149254441b7aeea498e6d883594e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 23 Mar 2024 13:24:53 +0100 Subject: [PATCH 130/301] prevent error if some attributes are not yet defined --- Classes/IAS.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/Classes/IAS.py b/Classes/IAS.py index 5c7f63f57..252379785 100644 --- a/Classes/IAS.py +++ b/Classes/IAS.py @@ -175,25 +175,36 @@ def force_IAS_registration_if_needed(self, NwkId): set_IAS_CIE_Address(self, NwkId, Epout) del self.ListOfDevices[NwkId]["Param"]["ForceIASRegistrationEp"] - def IAS_CIE_service_discovery_response( self, NwkId, ep, Data): + + def IAS_CIE_service_discovery_response(self, NwkId, ep, Data): self.logging("Debug", f"IAS device Enrollment for {NwkId} - received a Read Attribute Response on Discovery Request for Ep: {ep}") attributes = retreive_attributes(self, Data) self.logging("Debug", f" Attributes : {attributes}") - if IAS_ATTRIBUT_ZONE_STATE not in attributes: + + zone_state_attr = attributes.get(IAS_ATTRIBUT_ZONE_STATE, {}) + zone_state_status = zone_state_attr.get("Status") + + if zone_state_status is None: self.logging("Debug", f"IAS device Enrollment for {NwkId} - Attribute {IAS_ATTRIBUT_ZONE_STATE} not found in {attributes}") return - if attributes[ IAS_ATTRIBUT_ZONE_STATE ]["Status"] != "00": - self.logging("Debug", f"IAS device Enrollment for {NwkId} - Attribute {IAS_ATTRIBUT_ZONE_STATE} Status: {attributes[ IAS_ATTRIBUT_ZONE_STATE ]['Status']}") - - if attributes[ IAS_ATTRIBUT_ZONE_STATE ]["Value"] == "00": + + if zone_state_status != "00": + self.logging("Debug", f"IAS device Enrollment for {NwkId} - Attribute {IAS_ATTRIBUT_ZONE_STATE} Status: {zone_state_status}") + return + + zone_state_value = zone_state_attr.get("Value") + if zone_state_value is None: + return + + if zone_state_value == "00": # Not Enrolled, let's start the process - self.ListOfDevices[ NwkId ]["IAS"]["Auto-Enrollment"]["Ep"][ep]["Status"] = "set IAS CIE Address" + self.ListOfDevices[NwkId]["IAS"]["Auto-Enrollment"]["Ep"][ep]["Status"] = "set IAS CIE Address" set_IAS_CIE_Address(self, NwkId, ep) - elif attributes[ IAS_ATTRIBUT_ZONE_STATE ]["Value"] == "01": + elif zone_state_value == "01": # Enrolled, let's req the IAS ICE address check_IAS_CIE_Address(self, NwkId, ep) - self.ListOfDevices[ NwkId ]["IAS"]["Auto-Enrollment"]["Ep"][ep]["Status"] = "Enrolled" - + self.ListOfDevices[NwkId]["IAS"]["Auto-Enrollment"]["Ep"][ep]["Status"] = "Enrolled" + if is_device_enrollment_completed(self, NwkId): self.ListOfDevices[NwkId]["IAS"]["Auto-Enrollment"]["Status"] = "Enrolled" From 499f9e21cf4c353a7f136bfb7e1e4a2986e9522a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 23 Mar 2024 13:25:30 +0100 Subject: [PATCH 131/301] refactor and better handle ModelName --- Modules/zclClusterHelpers.py | 308 ++++++++++++++++++++--------------- 1 file changed, 179 insertions(+), 129 deletions(-) diff --git a/Modules/zclClusterHelpers.py b/Modules/zclClusterHelpers.py index 4ea66372a..094896a1b 100644 --- a/Modules/zclClusterHelpers.py +++ b/Modules/zclClusterHelpers.py @@ -8,76 +8,89 @@ # Common/ helpers -def decoding_attribute_data( AttType, attribute_value, handleErrors=False): +def decode_boolean(attribute_value): + return attribute_value[:2] - if len(attribute_value) == 0: - return "" - - if int(AttType, 16) == 0x00: - return attribute_value - if int(AttType, 16) == 0x10: # Boolean - return attribute_value[:2] +def decode_8bit_bitmap(attribute_value): + return int(attribute_value[:8], 16) - if int(AttType, 16) == 0x18: # 8Bit bitmap - return int(attribute_value[:8], 16) - if int(AttType, 16) == 0x19: # 16BitBitMap - return int(attribute_value[:4], 16) +def decode_16bit_bitmap(attribute_value): + return int(attribute_value[:4], 16) - if int(AttType, 16) == 0x20: # Uint8 / unsigned char - return int(attribute_value[:2], 16) - if int(AttType, 16) == 0x21: # 16BitUint - return struct.unpack("H", struct.pack("H", int(attribute_value[:4], 16)))[0] +def decode_uint8(attribute_value): + return int(attribute_value[:2], 16) - if int(AttType, 16) == 0x22: # ZigBee_24BitUint - return struct.unpack("I", struct.pack("I", int("0" + attribute_value, 16)))[0] - if int(AttType, 16) == 0x23: # 32BitUint - return struct.unpack("I", struct.pack("I", int(attribute_value[:8], 16)))[0] +def decode_16bit_uint(attribute_value): + return struct.unpack("H", struct.pack("H", int(attribute_value[:4], 16)))[0] - if int(AttType, 16) == 0x25: # ZigBee_48BitUint - return struct.unpack("Q", struct.pack("Q", int(attribute_value, 16)))[0] - if int(AttType, 16) == 0x28: # int8 - return int(attribute_value, 16) +def decode_zigbee_24bit_uint(attribute_value): + return struct.unpack("I", struct.pack("I", int("0" + attribute_value, 16)))[0] - if int(AttType, 16) == 0x29: # 16Bitint -> tested on Measurement clusters - return struct.unpack("h", struct.pack("H", int(attribute_value[:4], 16)))[0] - if int(AttType, 16) == 0x2A: # ZigBee_24BitInt - signed_int = struct.unpack("i", struct.pack("I", int("0" + attribute_value, 16)))[0] - # Given Zigbee 24-bit integer and tuya store in two's complement form - if (signed_int & 0x00800000) != 0: # Check the sign bit - signed_int -= 0x01000000 # If negative, adjust to two's complement - return signed_int +def decode_32bit_uint(attribute_value): + return struct.unpack("I", struct.pack("I", int(attribute_value[:8], 16)))[0] - if int(AttType, 16) == 0x2B: # 32Bitint - return struct.unpack("i", struct.pack("I", int(attribute_value[:8], 16)))[0] - if int(AttType, 16) == 0x2D: # ZigBee_48Bitint - return struct.unpack("q", struct.pack("Q", int(attribute_value, 16)))[0] +def decode_zigbee_48bit_uint(attribute_value): + return struct.unpack("Q", struct.pack("Q", int(attribute_value, 16)))[0] - if int(AttType, 16) == 0x30: # 8BitEnum - return int(attribute_value[:2], 16) - if int(AttType, 16) == 0x31: # 16BitEnum - return struct.unpack("h", struct.pack("H", int(attribute_value[:4], 16)))[0] +def decode_int8(attribute_value): + return int(attribute_value, 16) - if int(AttType, 16) == 0x39: # Xiaomi Float - return struct.unpack("f", struct.pack("I", int(attribute_value, 16)))[0] - if int(AttType, 16) in {0x41, 0x42, 0x43}: # CharacterString - return _decode_caracter_string( attribute_value, handleErrors) - - if int(AttType, 16) in { 0xe1, 0xe2, 0xe3 } : # UTC - return struct.unpack("i", struct.pack("I", int(attribute_value[:8], 16)))[0] - return attribute_value +def decode_16bit_int(attribute_value): + return struct.unpack("h", struct.pack("H", int(attribute_value[:4], 16)))[0] + + +def decode_zigbee_24bit_int(attribute_value): + signed_int = struct.unpack("i", struct.pack("I", int("0" + attribute_value, 16)))[0] + if (signed_int & 0x00800000) != 0: + signed_int -= 0x01000000 + return signed_int + + +def decode_32bit_int(attribute_value): + return struct.unpack("i", struct.pack("I", int(attribute_value[:8], 16)))[0] + + +def decode_zigbee_48bit_int(attribute_value): + return struct.unpack("q", struct.pack("Q", int(attribute_value, 16)))[0] + + +def decode_8bit_enum(attribute_value): + return int(attribute_value[:2], 16) + + +def decode_16bit_enum(attribute_value): + return struct.unpack("h", struct.pack("H", int(attribute_value[:4], 16)))[0] + + +def decode_xiaomi_float(attribute_value): + return struct.unpack("f", struct.pack("I", int(attribute_value, 16)))[0] def _decode_caracter_string( attribute_value, handleErrors): - decode = "" + """ + Decode a hexadecimal string representing a character string. + + Args: + attribute_value (str): The hexadecimal representation of the character string. + handleErrors (bool): Whether to handle decoding errors. If True, returns an empty string on error. + If False, attempts to decode and replaces invalid characters with '?'. + + Returns: + str: The decoded character string. + + Notes: + - If handleErrors is False, invalid characters are replaced with '?' in the decoded string. + - Any trailing null bytes ('\x00') are stripped from the decoded string. + """ try: decode = binascii.unhexlify(attribute_value).decode("utf-8") @@ -86,51 +99,96 @@ def _decode_caracter_string( attribute_value, handleErrors): if handleErrors: # If there is an error we force the result to '' This is used for 0x0000/0x0005 decode = "" else: - decode = binascii.unhexlify(attribute_value).decode("utf-8", errors="ignore") - decode = decode.replace("\x00", "") - decode = decode.strip() + decode = binascii.unhexlify(attribute_value).decode("utf-8", errors="ignore").replace("\x00", "").strip() + + return decode.strip("\x00").strip() if decode else "" - # Cleaning - decode = decode.strip("\x00") - decode = decode.strip() - if decode is None: - decode = "" - return decode + +def decoding_attribute_data( AttType, attribute_value, handleErrors=False): + """ + Decode attribute values based on their attribute type. + + Args: + AttType (str): The hexadecimal representation of the attribute type. + attribute_value (str): The hexadecimal representation of the attribute value. + handleErrors (bool, optional): Whether to handle errors gracefully. Defaults to False. + + Returns: + Any: The decoded attribute value. + + Raises: + NotImplementedError: If the attribute type is not supported. + """ + + if len(attribute_value) == 0: + return "" + + decoding_functions = { + 0x00: attribute_value, + 0x10: decode_boolean, + 0x18: decode_8bit_bitmap, + 0x19: decode_16bit_bitmap, + 0x20: decode_uint8, + 0x21: decode_16bit_uint, + 0x22: decode_zigbee_24bit_uint, + 0x23: decode_32bit_uint, + 0x25: decode_zigbee_48bit_uint, + 0x28: decode_int8, + 0x29: decode_16bit_int, + 0x2A: decode_zigbee_24bit_int, + 0x2B: decode_32bit_int, + 0x2D: decode_zigbee_48bit_int, + 0x30: decode_8bit_enum, + 0x31: decode_16bit_enum, + 0x39: decode_xiaomi_float + } + + if int(AttType, 16) == 0x00: + return attribute_value + + if int(AttType, 16) in decoding_functions: + return decoding_functions[int(AttType, 16)](attribute_value) + + if int(AttType, 16) in {0x41, 0x42, 0x43}: # CharacterString + return _decode_caracter_string( attribute_value, handleErrors) + + if int(AttType, 16) in { 0xe1, 0xe2, 0xe3 } : # UTC + return struct.unpack("i", struct.pack("I", int(attribute_value[:8], 16)))[0] + return attribute_value # Used by Cluster 0x0000 def handle_model_name( self, MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, device_model, rawvalue, value ): - self.log.logging( "ZclClusters", "Debug", "_handle_model_name - %s / %s - %s %s %s %s %s - %s" % ( + self.log.logging( [ "ZclClusters", "Pairing"], "Debug", "_handle_model_name - %s / %s - %s %s %s %s %s - %s" % ( MsgSrcAddr, MsgSrcEp, MsgClusterId, MsgAttrID, MsgAttType, MsgAttSize, value, device_model), MsgSrcAddr, ) modelName = _cleanup_model_name( MsgAttType, rawvalue) - self.log.logging( "ZclClusters", "Debug", "_handle_model_name - modelName after cleanup %s" % modelName) + self.log.logging( [ "ZclClusters", "Pairing"], "Debug", "_handle_model_name - modelName after cleanup %s" % modelName) modelName = _build_model_name( self, MsgSrcAddr, modelName) - self.log.logging( "ZclClusters", "Debug", "_handle_model_name - modelName after build model name %s" % modelName) + self.log.logging( [ "ZclClusters", "Pairing"], "Debug", "_handle_model_name - modelName after build model name %s" % modelName) # Here the Device is not yet provisioned - if "Model" not in self.ListOfDevices[MsgSrcAddr]: - self.ListOfDevices[MsgSrcAddr]["Model"] = {} + self.ListOfDevices[MsgSrcAddr].setdefault("Model", {}) - self.log.logging( "ZclClusters", "Debug", "_handle_model_name - %s / %s - Recepion Model: >%s<" % ( + self.log.logging( [ "ZclClusters", "Pairing"], "Debug", "_handle_model_name - %s / %s - Recepion Model: >%s<" % ( MsgClusterId, MsgAttrID, modelName), MsgSrcAddr, ) if modelName == "": return - if _is_device_already_provisionned( self, MsgSrcAddr, modelName): + if _is_device_already_provisioned( self, MsgSrcAddr, modelName): return if self.ListOfDevices[MsgSrcAddr]["Model"] == modelName and self.ListOfDevices[MsgSrcAddr]["Model"] in self.DeviceConf: # This looks like a Duplicate, just drop - self.log.logging("ZclClusters", "Debug", "_handle_model_name - %s / %s - no action" % ( + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "_handle_model_name - %s / %s - no action" % ( MsgClusterId, MsgAttrID), MsgSrcAddr) return if self.ListOfDevices[MsgSrcAddr]["Model"] != modelName and self.ListOfDevices[MsgSrcAddr]["Model"] in self.DeviceConf: # We ae getting a different Model Name, let's log an drop - self.log.logging( "ZclClusters", "Error", "_handle_model_name - %s / %s - no action as it is a different Model Name than registered %s" % ( + self.log.logging( [ "ZclClusters", "Pairing"], "Error", "_handle_model_name - %s / %s - no action as it is a different Model Name than registered %s" % ( MsgClusterId, MsgAttrID, modelName), MsgSrcAddr, ) return @@ -153,68 +211,56 @@ def _update_data_structutre_based_on_model_name( self, MsgSrcAddr, modelName): return False modelName = self.ListOfDevices[MsgSrcAddr]["Model"] - self.log.logging("ZclClusters", "Debug", "_handle_model_name Extract all info from Model : %s" % self.DeviceConf[modelName], MsgSrcAddr) + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "_handle_model_name Extract all info from Model : %s" % self.DeviceConf[modelName], MsgSrcAddr) if "ConfigSource" in self.ListOfDevices[MsgSrcAddr] and self.ListOfDevices[MsgSrcAddr]["ConfigSource"] == "DeviceConf": - self.log.logging("ZclClusters", "Debug", "_handle_model_name Not redoing the DeviceConf enrollement", MsgSrcAddr) + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "_handle_model_name Not redoing the DeviceConf enrollement", MsgSrcAddr) return True + self.ListOfDevices[MsgSrcAddr]["ConfigSource"] = "DeviceConf" if "Param" in self.DeviceConf[modelName]: self.ListOfDevices[MsgSrcAddr]["Param"] = dict(self.DeviceConf[modelName]["Param"]) _BackupEp = None if "Type" in self.DeviceConf[modelName]: # If type exist at top level : copy it - if "ConfigSource" not in self.ListOfDevices[MsgSrcAddr]: - self.ListOfDevices[MsgSrcAddr]["ConfigSource"] = "DeviceConf" - self.ListOfDevices[MsgSrcAddr]["Type"] = self.DeviceConf[modelName]["Type"] - if "Ep" in self.ListOfDevices[MsgSrcAddr]: - self.log.logging("ZclClusters", "Debug", "_handle_model_name Removing existing received Ep", MsgSrcAddr) - _BackupEp = dict(self.ListOfDevices[MsgSrcAddr]["Ep"]) - del self.ListOfDevices[MsgSrcAddr]["Ep"] # It has been prepopulated by some 0x8043 message, let's remove them. - self.ListOfDevices[MsgSrcAddr]["Ep"] = {} # It has been prepopulated by some 0x8043 message, let's remove them. - self.log.logging("ZclClusters", "Debug", "-- Record removed 'Ep' %s" % (self.ListOfDevices[MsgSrcAddr]), MsgSrcAddr) - + if "Ep" in self.ListOfDevices.get(MsgSrcAddr, {}): + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "_handle_model_name Removing existing received Ep", MsgSrcAddr) + self.ListOfDevices[MsgSrcAddr]["Ep"] = {} # Reset the "Ep" key + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "-- Record removed 'Ep' %s" % (self.ListOfDevices[MsgSrcAddr]), MsgSrcAddr) + _upd_data_strut_based_on_model(self, MsgSrcAddr, modelName, _BackupEp) -def _upd_data_strut_based_on_model(self, MsgSrcAddr, modelName, inital_ep): - for Ep in self.DeviceConf[modelName]["Ep"]: # For each Ep in DeviceConf.txt - if Ep not in self.ListOfDevices[MsgSrcAddr]["Ep"]: # If this EP doesn't exist in database - self.ListOfDevices[MsgSrcAddr]["Ep"][Ep] = {} # create it. - self.log.logging( "ZclClusters", "Debug", "-- Create Endpoint %s in record %s" % ( - Ep, self.ListOfDevices[MsgSrcAddr]["Ep"]), MsgSrcAddr, ) - - for cluster in self.DeviceConf[modelName]["Ep"][Ep]: # For each cluster discribe in DeviceConf.txt - if cluster in self.ListOfDevices[MsgSrcAddr]["Ep"][Ep]: - # If this cluster doesn't exist in database - continue - - self.log.logging("ZclClusters", "Debug", "----> Cluster: %s" % cluster, MsgSrcAddr) - self.ListOfDevices[MsgSrcAddr]["Ep"][Ep][cluster] = {} # create it. - if inital_ep and Ep in inital_ep: - # In case we had data, let's retreive it - if cluster not in inital_ep[Ep]: - continue - for attr in inital_ep[Ep][cluster]: - if attr in self.ListOfDevices[MsgSrcAddr]["Ep"][Ep][cluster]: - if self.ListOfDevices[MsgSrcAddr]["Ep"][Ep][cluster][ attr ] in ["", {}]: - self.ListOfDevices[MsgSrcAddr]["Ep"][Ep][cluster][attr] = inital_ep[Ep][cluster][attr] - else: - self.ListOfDevices[MsgSrcAddr]["Ep"][Ep][cluster][attr] = inital_ep[Ep][cluster][attr] - - self.log.logging( "ZclClusters", "Debug", "------> Cluster %s set with Attribute %s" % ( - cluster, attr), MsgSrcAddr, ) - - if "Type" in self.DeviceConf[modelName]["Ep"][Ep]: # If type exist at EP level : copy it - self.ListOfDevices[MsgSrcAddr]["Ep"][Ep]["Type"] = self.DeviceConf[modelName]["Ep"][Ep]["Type"] - if ( "ColorMode" in self.DeviceConf[modelName]["Ep"][Ep] and "ColorInfos" not in self.ListOfDevices[MsgSrcAddr] ): - self.ListOfDevices[MsgSrcAddr]["ColorInfos"] = {} - if "ColorMode" in self.DeviceConf[modelName]["Ep"][Ep]: - self.ListOfDevices[MsgSrcAddr]["ColorInfos"]["ColorMode"] = int(self.DeviceConf[modelName]["Ep"][Ep]["ColorMode"]) - - self.log.logging( "ZclClusters", "Debug", "_handle_model_name Result based on DeviceConf is: %s" % str(self.ListOfDevices[MsgSrcAddr]), MsgSrcAddr, ) +def _upd_data_strut_based_on_model(self, MsgSrcAddr, modelName, initial_ep): + device_info = self.ListOfDevices[MsgSrcAddr] + device_conf = self.DeviceConf[modelName] + + for ep, ep_info in device_conf.get("Ep", {}).items(): + if ep not in device_info["Ep"]: + device_info["Ep"][ep] = {} + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "-- Create Endpoint %s in record %s" % (ep, device_info["Ep"]), MsgSrcAddr) + + for cluster, cluster_info in ep_info.items(): + if cluster not in device_info["Ep"][ep]: + device_info["Ep"][ep][cluster] = {} + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "----> Cluster: %s" % cluster, MsgSrcAddr) + + if initial_ep and ep in initial_ep and cluster in initial_ep[ep]: + for attr, value in initial_ep[ep][cluster].items(): + if not device_info["Ep"][ep][cluster].get(attr) or device_info["Ep"][ep][cluster][attr] in ["", {}]: + device_info["Ep"][ep][cluster][attr] = value + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "------> Cluster %s set with Attribute %s" % (cluster, attr), MsgSrcAddr) + + if "Type" in ep_info: + device_info["Ep"][ep]["Type"] = ep_info["Type"] + if "ColorMode" in ep_info: + if "ColorInfos" not in device_info: + device_info["ColorInfos"] = {} + device_info["ColorInfos"]["ColorMode"] = int(ep_info["ColorMode"]) + + self.log.logging([ "ZclClusters", "Pairing"], "Debug", "_handle_model_name Result based on DeviceConf is: %s" % str(device_info), MsgSrcAddr) return True @@ -243,23 +289,27 @@ def _build_model_name( self, nwkid, modelName): return check_found_plugin_model( self, modelName, manufacturer_name=manufacturer_name, manufacturer_code=manuf_code, device_id=zdevice_id) -def _is_device_already_provisionned( self, nwkid, modelName): - - if "Ep" not in self.ListOfDevices[nwkid]: +def _is_device_already_provisioned(self, nwkid, modelName): + # sourcery skip: extract-method, use-next + device_info = self.ListOfDevices.get(nwkid, {}) + if "Ep" not in device_info: return False - for iterEp in list(self.ListOfDevices[nwkid]["Ep"]): - if "ClusterType" in list(self.ListOfDevices[nwkid]["Ep"][iterEp]): - self.log.logging( "ZclClusters", "Debug", "_is_device_already_provisionned - %s / %s - %s is already provisioned in Domoticz" % ( - nwkid, iterEp, modelName), nwkid, ) - - # However if Model is not correctly set, let's take the opportunity to correct - if self.ListOfDevices[nwkid]["Model"] != modelName: - self.log.logging( "ZclClusters", "Debug", "_is_device_already_provisionned - %s / %s - Update Model Name %s" % ( - nwkid, iterEp, modelName), nwkid, ) - self.ListOfDevices[nwkid]["Model"] = modelName + + for iterEp, ep_info in device_info["Ep"].items(): + if "ClusterType" in ep_info: + self.log.logging(["ZclClusters", "Pairing"], "Debug", "%s / %s - %s is already provisioned in Domoticz" % (nwkid, iterEp, modelName), nwkid) + if device_info.get("Model") == modelName: + return True + + self.log.logging(["ZclClusters", "Pairing"], "Debug", "%s / %s - Update Model Name %s" % (nwkid, iterEp, modelName), nwkid) + device_info["Model"] = modelName + if modelName in self.DeviceConf: + device_info["ConfigSource"] = "DeviceConf" + device_info["Param"] = dict(self.DeviceConf[modelName].get("Param", {})) + device_info["CertifiedDevice"] = True return True return False - + def _cleanup_model_name( MsgAttType, value): # Stop at the first Null From 96002724f22ec0f7af15b9a8ef414cefe6cb7a74 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 23 Mar 2024 13:25:46 +0100 Subject: [PATCH 132/301] Plugin wip-develop version 7.2.037 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 1e588445c..290fc5699 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.036"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.037"} \ No newline at end of file From 0eeb856359e4ed6091f9bd4c5f86d8af999eb0b2 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sat, 23 Mar 2024 15:29:05 +0100 Subject: [PATCH 133/301] better document the Zigpy Topology scanning period --- Classes/ZigpyTransport/zigpyThread.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index af48b8dca..4c1060359 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -279,10 +279,12 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan data_folder = Path( self.pluginconf.pluginConf["pluginData"] ) config[zigpy.config.CONF_DATABASE] = str(data_folder / ("zigpy_persistent_%02d.db"% self.hardwareid) ) config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = True + config[zigpy.config.CONF_TOPO_SCAN_PERIOD] = 4 * 60 # 4 Hours elif "enableZigpyPersistentInMemory" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInMemory"]: config[zigpy.config.CONF_DATABASE] = ":memory:" config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = True + config[zigpy.config.CONF_TOPO_SCAN_PERIOD] = 4 * 60 # 4 Hours # Manage coordinator auto backup if "autoBackup" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoBackup"]: From 69f133b9fa77dbd8526ab7ebb9840c9221df9876 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:02:48 +0100 Subject: [PATCH 134/301] fix (CDevice_update) Failed to parse parameters when updating Type, Switchtype and Subtype in Legacy mode --- Modules/domoticzAbstractLayer.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/Modules/domoticzAbstractLayer.py b/Modules/domoticzAbstractLayer.py index c4172dccd..d02987116 100644 --- a/Modules/domoticzAbstractLayer.py +++ b/Modules/domoticzAbstractLayer.py @@ -458,16 +458,19 @@ def domo_update_api(self, Devices, DeviceID_, Unit_, nValue, sValue, SignalLevel def domo_update_name(self, Devices, DeviceID_, Unit_, Name_): - self.log.logging("AbstractDz", "Debug", "domo_update_name: DeviceID_ : %s Unit_: %s Name: %s" %(DeviceID_, Unit_, Name_)) + self.log.logging("AbstractDz", "Log", "domo_update_name: DeviceID_ : %s Unit_: %s Name: %s" %(DeviceID_, Unit_, Name_)) if DOMOTICZ_EXTENDED_API and Devices[DeviceID_].Units[Unit_].Name != Name_: Devices[DeviceID_].Units[Unit_].Name = Name_ Devices[DeviceID_].Units[Unit_].Update(Log=True) return - - nValue = Devices[Unit_].nValue - sValue = Devices[Unit_].sValue - Devices[Unit_].Update(nValue=nValue, sValue=sValue, Name=Name_) + + update_params = { + 'nValue': Devices[Unit_].nValue, + 'sValue': Devices[Unit_].sValue, + 'Name': Name_, + } + Devices[Unit_].Update(**update_params) def domo_update_SwitchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0, Subtype_=0, Switchtype_=0): @@ -478,14 +481,19 @@ def domo_update_SwitchType_SubType_Type(self, Devices, DeviceID_, Unit_, Type_=0 if DOMOTICZ_EXTENDED_API: # Due to bug https://github.com/domoticz/domoticz/issues/6027 (on extended Framework ) # Devices[DeviceID_].Units[Unit_].Type = Type_ - # Devices[DeviceID_].Units[Unit_].SubType = Subtype_ - # Devices[DeviceID_].Units[Unit_].SwitchType = Switchtype_ + # Devices[DeviceID_].Units[Unit_].Subtype = Subtype_ + # Devices[DeviceID_].Units[Unit_].Switchtype = Switchtype_ # Devices[DeviceID_].Units[Unit_].Update(Log=True) return - nValue = Devices[Unit_].nValue - sValue = Devices[Unit_].sValue - Devices[Unit_].Update(nValue=nValue, sValue=sValue, Type=Type_, SubType=Subtype_, SwitchType=Switchtype_) + update_params = { + 'nValue': Devices[Unit_].nValue, + 'sValue': Devices[Unit_].sValue, + 'Type': Type_, + 'Subtype': Subtype_, + 'Switchtype': Switchtype_ + } + Devices[Unit_].Update(**update_params) def domo_browse_widgets(self, Devices): From bb8ccf860857d11922cdd81b6aabbe79d528477f Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:03:10 +0100 Subject: [PATCH 135/301] Plugin wip-develop version 7.2.038 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 290fc5699..3c78fd519 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.037"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.038"} \ No newline at end of file From 636bd9ef3015a57fa9793e48fa3df827a605fd57 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:34:57 +0100 Subject: [PATCH 136/301] store nValue:sValue for group during update --- Classes/GroupMgtv2/GrpDomoticz.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index ddf305a75..c5554e97a 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -421,9 +421,10 @@ def update_domoticz_group_device(self, GroupId): group_name = domo_read_Name( self, self.Devices, GroupId, unit ) self.logging( "Debug", "update_domoticz_group_device - Processing: Group: %s == > from %s:%s to %s:%s" % ( GroupId, current_nValue, current_sValue, nValue, sValue), ) - - + if nValue != current_nValue or sValue != current_sValue: + self.ListOfGroups[GroupId]["nValue"] = nValue + self.ListOfGroups[GroupId]["nValue"] = sValue self.logging("Log", f"UpdateGroup - ({group_name:>15}) {nValue}:{sValue}") domo_update_api(self, self.Devices, GroupId, unit, nValue, sValue) From 04827ffa03738ef97b24a9b396bbb67cd2e05cf8 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:35:24 +0100 Subject: [PATCH 137/301] Plugin wip-develop version 7.2.039 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 3c78fd519..8ff851003 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.038"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.039"} \ No newline at end of file From e1f441c240cc02ed5c93d044f9078ff1357ce0cc Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:42:37 +0100 Subject: [PATCH 138/301] report nValue:sValue in /zgroup --- Classes/WebServer/rest_Groups.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Classes/WebServer/rest_Groups.py b/Classes/WebServer/rest_Groups.py index 7c5e602bd..1b8311f69 100644 --- a/Classes/WebServer/rest_Groups.py +++ b/Classes/WebServer/rest_Groups.py @@ -278,6 +278,8 @@ def _zgroup_get(self, parameters): zgroup["WidgetStyle"] = group_info.get("WidgetStyle", "") zgroup["Cluster"] = group_info.get("Cluster", "") + zgroup["nValue"] = group_info.get("nValue", "") + zgroup["sValue"] = group_info.get("sValue", "") if "Tradfri Remote" in group_info: zgroup["Devices"].append( {"_NwkId": group_info["Tradfri Remote"]} ) From de157fab8ed943cd0068acda69dada9541704407 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:42:40 +0100 Subject: [PATCH 139/301] Plugin wip-develop version 7.2.040 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 8ff851003..34ef473ba 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.039"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.040"} \ No newline at end of file From 34afc60b7c1ad547447efaa1dc46e81e4a538742 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:55:55 +0100 Subject: [PATCH 140/301] fix and more infos --- Classes/GroupMgtv2/GrpDomoticz.py | 11 +++++++---- Classes/WebServer/rest_Groups.py | 8 +++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Classes/GroupMgtv2/GrpDomoticz.py b/Classes/GroupMgtv2/GrpDomoticz.py index c5554e97a..0e0d7acdc 100644 --- a/Classes/GroupMgtv2/GrpDomoticz.py +++ b/Classes/GroupMgtv2/GrpDomoticz.py @@ -280,9 +280,7 @@ def update_domoticz_group_device(self, GroupId): LookForGroupAndCreateIfNeeded(self, GroupId) return - Cluster = None - if "Cluster" in self.ListOfGroups[GroupId]: - Cluster = self.ListOfGroups[GroupId]["Cluster"] + Cluster = self.ListOfGroups[GroupId].get("Cluster") countStop = countOn = countOff = 0 nValue = 0 if self.pluginconf.pluginConf["OnIfOneOn"] else 1 @@ -424,7 +422,12 @@ def update_domoticz_group_device(self, GroupId): if nValue != current_nValue or sValue != current_sValue: self.ListOfGroups[GroupId]["nValue"] = nValue - self.ListOfGroups[GroupId]["nValue"] = sValue + self.ListOfGroups[GroupId]["sValue"] = sValue + self.ListOfGroups[GroupId]["prev_nValue"] = current_nValue + self.ListOfGroups[GroupId]["prev_sValue"] = current_sValue + + self.ListOfGroups[GroupId]["Switchtype"] = switchType + self.ListOfGroups[GroupId]["Subtype"] = switchType self.logging("Log", f"UpdateGroup - ({group_name:>15}) {nValue}:{sValue}") domo_update_api(self, self.Devices, GroupId, unit, nValue, sValue) diff --git a/Classes/WebServer/rest_Groups.py b/Classes/WebServer/rest_Groups.py index 1b8311f69..c7df55390 100644 --- a/Classes/WebServer/rest_Groups.py +++ b/Classes/WebServer/rest_Groups.py @@ -275,12 +275,14 @@ def _zgroup_get(self, parameters): elif len(itemDevice) == 3: dev, ep, ieee = itemDevice zgroup["Devices"].append( {"_NwkId": dev, "Ep": ep, "IEEE": ieee} ) - - zgroup["WidgetStyle"] = group_info.get("WidgetStyle", "") zgroup["Cluster"] = group_info.get("Cluster", "") + zgroup["WidgetStyle"] = group_info.get("WidgetStyle", "") + zgroup["Switchtype"] = group_info.get("Switchtype", "") + zgroup["Subtype"] = group_info.get("Subtype", "") + zgroup["prev_nValue"] = group_info.get("prev_nValue", "") + zgroup["prev_sValue"] = group_info.get("prev_sValue", "") zgroup["nValue"] = group_info.get("nValue", "") zgroup["sValue"] = group_info.get("sValue", "") - if "Tradfri Remote" in group_info: zgroup["Devices"].append( {"_NwkId": group_info["Tradfri Remote"]} ) From d3e3b9d280357d4c40325c5a3772fb0d00f42754 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Sun, 24 Mar 2024 17:56:04 +0100 Subject: [PATCH 141/301] Plugin wip-develop version 7.2.041 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 34ef473ba..209f4489f 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.040"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.041"} \ No newline at end of file From 3ee35cf95d7dd94035d4e1f1a3ebed82f4f4ddd9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Mon, 25 Mar 2024 18:56:11 +0100 Subject: [PATCH 142/301] InMemory Zigpy Persistent Db as default --- Classes/PluginConf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index c86281ed8..cc02898e2 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -375,7 +375,7 @@ "TryFindingIeeeOfUnknownNwkid": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, "useDomoticzDatabase": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": False,"Advanced": True,}, "enableZigpyPersistentInFile": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, - "enableZigpyPersistentInMemory": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, + "enableZigpyPersistentInMemory": {"type": "bool","default": 1,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, }, }, "Reserved": { From e65cacee1a2648af72879354d835c638e1d6514e Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 11:52:02 +0100 Subject: [PATCH 143/301] Plugin wip-develop version 7.2.042 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 209f4489f..e837ae87d 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.041"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.042"} \ No newline at end of file From ba46e6d73f57b9fe0f788bd838e2e164edfd1fbc Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 13:48:47 +0100 Subject: [PATCH 144/301] Topology, revisited the way to handle sibling --- Classes/WebServer/rest_Topology.py | 396 ++++++++++------------------- 1 file changed, 135 insertions(+), 261 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index aecbf94cd..6bba16a70 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -43,7 +43,6 @@ def dummy_topology_report( ): return [{"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Zigbee Coordinator", "_lnkqty": 58}, {"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 252}, {"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 241}, {"Child": "OnOff Ikea", "DeviceType": "End Device", "Father": "IAS Sirene", "_lnkqty": 255}, {"Child": "Repeater", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, {"Child": "Repeater", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 196}, {"Child": "Repeater", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 254}, {"Child": "Motion frient", "DeviceType": "End Device", "Father": "Repeater", "_lnkqty": 168}, {"Child": "Dim Ikea", "DeviceType": "End Device", "Father": "Repeater", "_lnkqty": 89}, {"Child": "Led LKex", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, {"Child": "Led LKex", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 244}, {"Child": "Lumi Door", "DeviceType": "End Device", "Father": "Led LKex", "_lnkqty": 211}, {"Child": "Wiser Thermostat", "DeviceType": "End Device", "Father": "Led LKex", "_lnkqty": 223}, {"Child": "Led Ikea", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 60}, {"Child": "Led Ikea", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 101}, {"Child": "Remote Tradfri", "DeviceType": "End Device", "Father": "Led Ikea", "_lnkqty": 194}, {"Child": "Inter Shutter Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 133}, {"Child": "Inter Shutter Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 241}, {"Child": "Inter Shutter Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 164}, {"Child": "Lumi Motion", "DeviceType": "End Device", "Father": "Inter Shutter Legrand", "_lnkqty": 242}, {"Child": "Inter Dimmer Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, {"Child": "Inter Dimmer Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 215}, {"Child": "Inter Dimmer Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 254}, {"Child": "Micromodule Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 252}, {"Child": "Micromodule Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 252}, {"Child": "Micromodule Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 252}] - def rest_netTopologie(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) @@ -71,92 +70,87 @@ def rest_netTopologie(self, verb, data, parameters): _timestamps_lst.append(int(_ts)) _topo[_ts] = [] # List of Father -> Child relation for one TimeStamp reportLQI = entry[_ts] - _topo[_ts] = extract_report(self, reportLQI) + _topo[_ts] = extract_legacy_report(self, reportLQI) if verb == "DELETE": - if len(parameters) == 0: - os.remove(_filename) - action = {"Name": "File-Removed", "FileName": _filename} - _response["Data"] = json.dumps(action, sort_keys=True) + return rest_netTopologie_delete(self, verb, data, parameters, _response, _topo, _filename) + if verb == "GET": + if not self.pluginconf.pluginConf["TopologyV2"]: + return rest_netTopologie_get(self, verb, data, parameters, _response, _topo) + return rest_netTopologie_get(self, verb, data, parameters, _response) - elif len(parameters) == 1: - timestamp = parameters[0] - if self.pluginconf.pluginConf["TopologyV2"] and len(self.ControllerData): - remove_entry_from_all_tables( self, timestamp ) - action = {"Name": "Report %s removed" % timestamp} - _response["Data"] = json.dumps(action, sort_keys=True) - - - elif timestamp in _topo: - self.logging("Debug", "Removing Report: %s from %s records" % (timestamp, len(_topo))) - with open(_filename, "r+") as handle: - d = handle.readlines() - handle.seek(0) - for line in d: - if line[0] != "{" and line[-1] != "}": - handle.write(line) - continue - entry = json.loads(line) - entry_ts = entry.keys() - if len(entry_ts) != 1: - continue - if timestamp in entry_ts: - self.logging("Debug", "--------> Skiping %s" % timestamp) - continue - handle.write(line) - handle.truncate() - - action = {"Name": "Report %s removed" % timestamp} - _response["Data"] = json.dumps(action, sort_keys=True) - - else: - domoticz_error_api("Removing Topo Report %s not found" % timestamp) - _response["Data"] = json.dumps([], sort_keys=True) - return _response - if verb == "GET": - if len(parameters) == 0: - # Send list of Time Stamps - if self.fake_mode(): - _timestamps_lst = [1643561599, 1643564628] - - elif self.pluginconf.pluginConf["TopologyV2"]: - _timestamps_lst = get_list_of_timestamps( self, "0000", "Neighbours") +def rest_netTopologie_delete(self, verb, data, parameters, _response, _topo, _filename): + if len(parameters) == 0: + os.remove(_filename) + action = {"Name": "File-Removed", "FileName": _filename} + _response["Data"] = json.dumps(action, sort_keys=True) - _response["Data"] = json.dumps(_timestamps_lst, sort_keys=True) + elif len(parameters) == 1: + timestamp = parameters[0] + if self.pluginconf.pluginConf["TopologyV2"] and len(self.ControllerData): + remove_entry_from_all_tables( self, timestamp ) + action = {"Name": "Report %s removed" % timestamp} + _response["Data"] = json.dumps(action, sort_keys=True) - elif len(parameters) == 1: + elif timestamp in _topo: + return rest_netTopologie_delete_legacy(self, verb, data, parameters, _response, timestamp, _topo, _filename) + + else: + domoticz_error_api("Removing Topo Report %s not found" % timestamp) + _response["Data"] = json.dumps([], sort_keys=True) + return _response - if self.fake_mode(): - _response["Data"] = json.dumps(dummy_topology_report( ), sort_keys=True) - - elif self.pluginconf.pluginConf["TopologyV2"]: - timestamp = parameters[0] - _response["Data"] = json.dumps(collect_routing_table(self,timestamp ), sort_keys=True) - else: - timestamp = parameters[0] - if timestamp in _topo: - self.logging("Debug", "Topologie sent: %s" % _topo[timestamp]) - _response["Data"] = json.dumps(_topo[timestamp], sort_keys=True) - else: - _response["Data"] = json.dumps([], sort_keys=True) +def rest_netTopologie_delete_legacy(self, verb, data, parameters, _response, timestamp, _topo, _filename): + self.logging("Debug", "Removing Report: %s from %s records" % (timestamp, len(_topo))) + with open(_filename, "r+") as handle: + d = handle.readlines() + handle.seek(0) + for line in d: + if line[0] != "{" and line[-1] != "}": + handle.write(line) + continue + entry = json.loads(line) + entry_ts = entry.keys() + if len(entry_ts) != 1: + continue + if timestamp in entry_ts: + self.logging("Debug", "--------> Skiping %s" % timestamp) + continue + handle.write(line) + handle.truncate() + action = {"Name": "Report %s removed" % timestamp} + _response["Data"] = json.dumps(action, sort_keys=True) return _response + + +def rest_netTopologie_get(self, verb, data, parameters, _response, _topo=None): + if len(parameters) == 0: + if self.fake_mode(): + _timestamps_lst = [1643561599, 1643564628] + elif self.pluginconf.pluginConf["TopologyV2"]: + _timestamps_lst = get_list_of_timestamps(self, "0000", "Neighbours") + _response["Data"] = json.dumps(_timestamps_lst, sort_keys=True) + + elif len(parameters) == 1: + if self.fake_mode(): + _response["Data"] = json.dumps(dummy_topology_report(), sort_keys=True) + + elif self.pluginconf.pluginConf["TopologyV2"]: + timestamp = parameters[0] + _response["Data"] = json.dumps(collect_routing_table(self, timestamp), sort_keys=True) + elif _topo: + timestamp = parameters[0] + _response["Data"] = json.dumps(_topo.get(timestamp, []), sort_keys=True) -def is_sibling_required(reportLQI): - # Do We have a relationship between 2 nodes, but it is not a Parent/Child, - # let's enable Sibling check to get it. - for x in reportLQI: - for y in reportLQI[x]["Neighbours"]: - if reportLQI[x]["Neighbours"][y]["_relationshp"] == "None": - return True - return False + return _response -def extract_report(self, reportLQI): +def extract_legacy_report(self, reportLQI): _check_duplicate = [] # List of tuble ( item, x) to prevent adding twice the same relation _topo = [] # Use to store the list to be send to the Browser @@ -173,110 +167,78 @@ def extract_report(self, reportLQI): reportLQI[item]["Neighbours"][x]["_relationshp"] )) - if is_sibling_required(reportLQI) or self.pluginconf.pluginConf["Sibling"]: - reportLQI = check_sibbling(self, reportLQI) - - self.logging("Debug", "AFTER Sibling report" ) - for item in reportLQI: - for x in reportLQI[item]["Neighbours"]: - self.logging("Debug", "%s - %s - %s - %s - %s - %s" %( - get_node_name( self, item), - reportLQI[item]["Neighbours"][x]["_relationshp"], - get_node_name( self, x), - reportLQI[item]["Neighbours"][x]["_devicetype"], - reportLQI[item]["Neighbours"][x]["_lnkqty"], - reportLQI[item]["Neighbours"][x]["_relationshp"] - )) - - for item in reportLQI: - - if item != "0000" and item not in self.ListOfDevices: + for node1 in reportLQI: + if node1 != "0000" and node1 not in self.ListOfDevices: + # We remove nodes which are unknown continue # Get the Nickname - item_name = get_node_name( self, item) + node1_name = get_node_name( self, item) - self.logging("Debug", "extract_report - found item: %s - %s" %(item, item_name)) + self.logging("Debug", "extract_report - found item: %s - %s" %(node1, node1_name)) # Let browse the neighbours - for x in reportLQI[item]["Neighbours"]: + for node2 in reportLQI[node1]["Neighbours"]: # Check it exists - if x != "0000" and x not in self.ListOfDevices: - continue - - # Check it is not the main item - if item == x: + if (node1 == node2) or (node2 != "0000" and node2 not in self.ListOfDevices): + # We remove nodes which are unknown continue # Get nickname - x_name = get_node_name( self, x) + node2_name = get_node_name( self, node2) self.logging("Debug2", " ---> %15s (%s) %s %s %s" % ( - x_name, x, - reportLQI[item]["Neighbours"][x]["_relationshp"], - reportLQI[item]["Neighbours"][x]["_devicetype"], - int(reportLQI[item]["Neighbours"][x]["_lnkqty"], 16) )) + node2_name, node2, + reportLQI[node1]["Neighbours"][x]["_relationshp"], + reportLQI[node1]["Neighbours"][x]["_devicetype"], + int(reportLQI[node1]["Neighbours"][node2]["_lnkqty"], 16) )) - # Report only Child relationship - if "Neighbours" not in reportLQI[item]: - self.logging("Error", "Missing attribute :%s for (%s,%s)" % ("Neighbours", item, x)) + if "Neighbours" not in reportLQI[node1]: + self.logging("Error", "Missing attribute :%s for (%s,%s)" % ("Neighbours", node1, node2)) continue for attribute in ( "_relationshp", "_lnkqty", "_devicetype", ): - if attribute not in reportLQI[item]["Neighbours"][x]: - self.logging("Error", "Missing attribute :%s for (%s,%s)" % (attribute, item, x)) + if attribute not in reportLQI[node1]["Neighbours"][node2]: + self.logging("Error", "Missing attribute :%s for (%s,%s)" % (attribute, node1, node2)) continue - # We need to reorganise in Father/Child relationship. - if reportLQI[item]["Neighbours"][x]["_relationshp"] in ("Former Child", "None", "Sibling"): + if reportLQI[node1]["Neighbours"][node2]["_relationshp"] in ("Former Child", "None"): continue - if reportLQI[item]["Neighbours"][x]["_relationshp"] == "Parent": - _father = item - _father_name = item_name - _child = x - _devicetype = get_device_type(self, x) - _child_name = x_name - - elif reportLQI[item]["Neighbours"][x]["_relationshp"] == "Child": - _father = x - _father_name = x_name - _child = item - _devicetype = get_device_type(self, item) - _child_name = item_name - - if ( _father, _child) in _check_duplicate or ( _child, _father) in _check_duplicate: - self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( item, x, str(_check_duplicate))) + if ( node1, node2) in _check_duplicate or ( node2, node1) in _check_duplicate: + self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( node1, x, str(_check_duplicate))) continue - - _check_duplicate.append(( _father, _child)) + + _check_duplicate.append(( node1, node2)) # Build the relation for the graph - _relation = {} - _relation["Father"] = _father_name - _relation["Child"] = _child_name - _relation["_lnkqty"] = int(reportLQI[item]["Neighbours"][x]["_lnkqty"], 16) - _relation["DeviceType"] = _devicetype - + _relation = { + "Father": node1_name, + "Child": node2_name, + "_lnkqty": int( reportLQI[node1]["Neighbours"][node2]["_lnkqty"], 16 ), + "_relationshp": reportLQI[node1]["Neighbours"][node2][ "_relationshp" ], + "DeviceType": get_device_type(self, node2), + } self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( - _relation["Father"], _father, _relation["Child"], _child, _relation["_lnkqty"], _relation["DeviceType"]),) + _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"]),) _topo.append(_relation) - + self.logging("Debug", "WebUI report" ) - for x in _topo: - self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( - x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"]),) - - del _check_duplicate + for item in _topo: + self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s %s" % ( + item["Father"], item["Child"], item["_lnkqty"], item["DeviceType"], item["_relationshp"]),) + return _topo + def get_device_type( self, node): if node not in self.ListOfDevices: return '??' if "LogicalType" not in self.ListOfDevices[ node ]: return '??' return self.ListOfDevices[ node ]["LogicalType"] - + + def get_node_name( self, node): if node == "0000": return "Zigbee Coordinator" @@ -285,106 +247,6 @@ def get_node_name( self, node): if "ZDeviceName" in self.ListOfDevices[node] and self.ListOfDevices[node]["ZDeviceName"] not in ( "",{}): return self.ListOfDevices[node]["ZDeviceName"] return node - -def check_sibbling(self, reportLQI): - # for node1 in sorted(reportLQI): - # for node2 in list(reportLQI[node1]['Neighbours']): - # domoticz_log_api("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) - - for node1 in list(reportLQI): - for node2 in list(reportLQI[node1]["Neighbours"]): - if reportLQI[node1]["Neighbours"][node2]["_relationshp"] != "Sibling": - continue - - # domoticz_log_api("Search parent for sibling %s and %s" %(node1, node2)) - parent1 = find_parent_for_node(reportLQI, node2) - parent2 = find_parent_for_node(reportLQI, node1) - # domoticz_log_api("--parents found: %s + %s" %(parent1,parent2)) - - if len(parent1) !=0 and len(parent2) == 0: - continue - - for x in parent1: - reportLQI = add_relationship( - self, reportLQI, node1, node2, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] - ) - reportLQI = add_relationship( - self, reportLQI, node2, node1, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] - ) - for x in parent2: - reportLQI = add_relationship( - self, reportLQI, node1, node2, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] - ) - reportLQI = add_relationship( - self, reportLQI, node2, node1, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] - ) - - # for node1 in sorted(reportLQI): - # for node2 in list(reportLQI[node1]['Neighbours']): - # domoticz_log_api("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) - - return reportLQI - - -def find_parent_for_node(reportLQI, node): - - parent = [] - if node not in reportLQI: - return parent - - if "Neighbours" not in reportLQI[node]: - return parent - - for y in list(reportLQI[node]["Neighbours"]): - if reportLQI[node]["Neighbours"][y]["_relationshp"] == "Parent": - # domoticz_log_api("-- -- find %s Parent for %s" %(y, node)) - if y not in parent: - parent.append(y) - - for x in list(reportLQI): - if node in reportLQI[x]["Neighbours"]: - if reportLQI[x]["Neighbours"][node]["_relationshp"] == "Child": - # domoticz_log_api("-- -- find %s Child for %s" %(y, node)) - if x not in parent: - parent.append(x) - - return parent - - -def add_relationship(self, reportLQI, node1, node2, relation_node, relation_ship, _linkqty): - - if node1 == relation_node: - return reportLQI - - if node1 not in reportLQI: - reportLQI[node1] = {} - reportLQI[node1]["Neighbours"] = {} - - if ( - relation_node in reportLQI[node1]["Neighbours"] - and reportLQI[node1]["Neighbours"][relation_node]["_relationshp"] == relation_ship - ): - return reportLQI - - if relation_node == "0000": - # ZiGate - _devicetype = "Coordinator" - - else: - if node2 in reportLQI[node1]["Neighbours"]: - if "_devicetype" in reportLQI[node1]["Neighbours"][node2]: - _devicetype = reportLQI[node1]["Neighbours"][node2]["_devicetype"] - else: - _devicetype = find_device_type(self, node2) - else: - _devicetype = find_device_type(self, node2) - - reportLQI[node1]["Neighbours"][relation_node] = {} - reportLQI[node1]["Neighbours"][relation_node]["_relationshp"] = relation_ship - reportLQI[node1]["Neighbours"][relation_node]["_lnkqty"] = _linkqty - reportLQI[node1]["Neighbours"][relation_node]["_devicetype"] = _devicetype - - return reportLQI def find_device_type(self, node): @@ -401,27 +263,35 @@ def find_device_type(self, node): return None - def collect_routing_table(self, time_stamp=None): _topo = [] + prevent_duplicate_tuple = [] self.logging( "Debug", "collect_routing_table - TimeStamp: %s" %time_stamp) for father in self.ListOfDevices: self.logging( "Debug", f"check {father} child from routing table") - for child in set( extract_routes(self, father, time_stamp) + collect_associated_devices( self, father, time_stamp) + collect_neighbours_devices( self, father, time_stamp) ): + _associated_devices = collect_associated_devices( self, father, time_stamp) + _neighbor_devices = collect_neighbours_devices( self, father, time_stamp) + _routing_devices = extract_routes(self, father, time_stamp) + + for child in set( _neighbor_devices + _routing_devices + _associated_devices ): self.logging( "Debug", f"Found child {child}") if child not in self.ListOfDevices: self.logging( "Debug", f"Found child {child} but not found in ListOfDevices") continue - _relation = { - "Father": get_node_name( self, father), - "Child": get_node_name( self, child), - "_lnkqty": get_lqi_from_neighbours(self, father, child), - "DeviceType": find_device_type(self, child) + if ( father, child) not in prevent_duplicate_tuple: + prevent_duplicate_tuple.append( ( father, child) ) + _relation = { + "Father": get_node_name( self, father), + "Child": get_node_name( self, child), + "_lnkqty": get_lqi_from_neighbours(self, father, child), + "DeviceType": find_device_type(self, child), + "_relationship": get_relationship_neighbours(self, father, child) } - self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( - _relation["Father"], father, _relation["Child"], child, _relation["_lnkqty"], _relation["DeviceType"]),) - _topo.append( _relation ) + + self.logging( "Log", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %11s %s" % ( + _relation["Father"], father, _relation["Child"], child, _relation["_lnkqty"], _relation["DeviceType"], _relation["_relationship"]),) + _topo.append( _relation ) return _topo @@ -435,24 +305,28 @@ def collect_associated_devices( self, node, time_stamp=None): def collect_neighbours_devices( self, node, time_stamp=None): last_neighbours_devices = get_device_table_entry(self, node, "Neighbours", time_stamp) self.logging( "Debug", "collect_neighbours_devices %s -> %s" %(node, str(last_neighbours_devices))) - keys_with_child_relation = [key for item in last_neighbours_devices for key, value in item.items() if value.get('_relationshp') == 'Child'] + keys_with_child_relation = [key for item in last_neighbours_devices for key, value in item.items()] return list(keys_with_child_relation) def extract_routes( self, node, time_stamp=None): node_routes = [] - for route in get_device_table_entry(self, node, "RoutingTable", time_stamp): self.logging( "Debug","---> route: %s" %route) node_routes.extend(item for item in route if route[item]["Status"] == "Active (0)") return node_routes -def get_lqi_from_neighbours(self, father, child, time_stamp=None): +def get_lqi_from_neighbours(self, node1, node2, time_stamp=None): # Take the LQI from the latest report - for item2 in get_device_table_entry(self, father, "Neighbours", time_stamp): - for node in item2: - if node != child: - continue - return item2[ node ]["_lnkqty"] - return 1 \ No newline at end of file + for neighbor in get_device_table_entry(self, node1, "Neighbours", time_stamp): + if node2 in neighbor: + return neighbor[ node2 ]["_lnkqty"] + return 1 + +def get_relationship_neighbours(self, node1, node2, time_stamp=None): + # Take the LQI from the latest report + for neigbor in get_device_table_entry(self, node1, "Neighbours", time_stamp): + if node2 in neigbor: + return neigbor[ node2 ]["_relationshp"] + return "" From b1c652a81ef127cc508f6700e15d22f83a430fc1 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 13:49:00 +0100 Subject: [PATCH 145/301] Plugin wip-develop version 7.2.043 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index e837ae87d..e8bd2ceb2 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.042"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.043"} \ No newline at end of file From 17bf1c4dde1fef4dfe2ca63ee153c9d9e30b93b6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 15:35:44 +0100 Subject: [PATCH 146/301] adding route info if not known --- Classes/WebServer/rest_Topology.py | 78 ++++++++++++++++++------------ 1 file changed, 47 insertions(+), 31 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index 6bba16a70..fc88a316a 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -268,34 +268,40 @@ def collect_routing_table(self, time_stamp=None): _topo = [] prevent_duplicate_tuple = [] self.logging( "Debug", "collect_routing_table - TimeStamp: %s" %time_stamp) - for father in self.ListOfDevices: - self.logging( "Debug", f"check {father} child from routing table") - _associated_devices = collect_associated_devices( self, father, time_stamp) - _neighbor_devices = collect_neighbours_devices( self, father, time_stamp) - _routing_devices = extract_routes(self, father, time_stamp) + for node1 in self.ListOfDevices: + self.logging( "Debug", f"check {node1} child from routing table") + _neighbor_devices = collect_neighbours_devices( self, node1, time_stamp) + _routing_devices = extract_routes(self, node1, time_stamp) - for child in set( _neighbor_devices + _routing_devices + _associated_devices ): - self.logging( "Debug", f"Found child {child}") - if child not in self.ListOfDevices: - self.logging( "Debug", f"Found child {child} but not found in ListOfDevices") + for node2 in set( _neighbor_devices + _routing_devices ): + self.logging( "Debug", f"Found child {node2}") + if node2 not in self.ListOfDevices: + self.logging( "Debug", f"Found child {node2} but not found in ListOfDevices") continue - if ( father, child) not in prevent_duplicate_tuple: - prevent_duplicate_tuple.append( ( father, child) ) - _relation = { - "Father": get_node_name( self, father), - "Child": get_node_name( self, child), - "_lnkqty": get_lqi_from_neighbours(self, father, child), - "DeviceType": find_device_type(self, child), - "_relationship": get_relationship_neighbours(self, father, child) - } + + if ( node1, node2) not in prevent_duplicate_tuple: + prevent_duplicate_tuple.append( ( node1, node2) ) + new_entry = build_relation_ship_dict(self, node1, node2,) + + if new_entry["_relationship"] == "" and node2 in _routing_devices: + # Route between node1 and node2 exist + new_entry["_relationship"] = "route" self.logging( "Log", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %11s %s" % ( - _relation["Father"], father, _relation["Child"], child, _relation["_lnkqty"], _relation["DeviceType"], _relation["_relationship"]),) - _topo.append( _relation ) + new_entry["Father"], node1, new_entry["Child"], node2, new_entry["_lnkqty"], new_entry["DeviceType"], new_entry["_relationship"]),) + _topo.append( new_entry ) return _topo - +def build_relation_ship_dict(self, node1, node2,): + return { + "Father": get_node_name( self, node1), + "Child": get_node_name( self, node2), + "_lnkqty": get_lqi_from_neighbours(self, node1, node2), + "DeviceType": find_device_type(self, node2), + "_relationship": get_relationship_neighbours(self, node1, node2) + } + def collect_associated_devices( self, node, time_stamp=None): last_associated_devices = get_device_table_entry(self, node, "AssociatedDevices", time_stamp) self.logging( "Debug", "collect_associated_devices %s -> %s" %(node, str(last_associated_devices))) @@ -318,15 +324,25 @@ def extract_routes( self, node, time_stamp=None): def get_lqi_from_neighbours(self, node1, node2, time_stamp=None): - # Take the LQI from the latest report - for neighbor in get_device_table_entry(self, node1, "Neighbours", time_stamp): - if node2 in neighbor: - return neighbor[ node2 ]["_lnkqty"] - return 1 + return next( + ( + neighbor[node2]["_lnkqty"] + for neighbor in get_device_table_entry( + self, node1, "Neighbours", time_stamp + ) + if node2 in neighbor + ), + 1, + ) def get_relationship_neighbours(self, node1, node2, time_stamp=None): - # Take the LQI from the latest report - for neigbor in get_device_table_entry(self, node1, "Neighbours", time_stamp): - if node2 in neigbor: - return neigbor[ node2 ]["_relationshp"] - return "" + return next( + ( + neigbor[node2]["_relationshp"] + for neigbor in get_device_table_entry( + self, node1, "Neighbours", time_stamp + ) + if node2 in neigbor + ), + "", + ) From ae928fd315a2054736b136d3beb08ff0846c076d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 15:43:11 +0100 Subject: [PATCH 147/301] Plugin wip-develop version 7.2.044 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index e8bd2ceb2..b52f525a6 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.043"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.044"} \ No newline at end of file From 5faf6a3289ac6c2fd152cd98ffc057daa415bc66 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 16:09:00 +0100 Subject: [PATCH 148/301] Provide an indication if the relation between the 2 nodes are also a route --- Classes/WebServer/rest_Topology.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index fc88a316a..d425adb84 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -270,36 +270,35 @@ def collect_routing_table(self, time_stamp=None): self.logging( "Debug", "collect_routing_table - TimeStamp: %s" %time_stamp) for node1 in self.ListOfDevices: self.logging( "Debug", f"check {node1} child from routing table") - _neighbor_devices = collect_neighbours_devices( self, node1, time_stamp) - _routing_devices = extract_routes(self, node1, time_stamp) + routes_list = extract_routes(self, node1, time_stamp) - for node2 in set( _neighbor_devices + _routing_devices ): - self.logging( "Debug", f"Found child {node2}") + for node2 in set( collect_neighbours_devices( self, node1, time_stamp) ): + self.logging( "Debug", f"Neighbor relation {node2}") if node2 not in self.ListOfDevices: - self.logging( "Debug", f"Found child {node2} but not found in ListOfDevices") + self.logging( "Debug", f"Found relation {node2} but not found in ListOfDevices") continue if ( node1, node2) not in prevent_duplicate_tuple: prevent_duplicate_tuple.append( ( node1, node2) ) new_entry = build_relation_ship_dict(self, node1, node2,) - if new_entry["_relationship"] == "" and node2 in _routing_devices: - # Route between node1 and node2 exist - new_entry["_relationship"] = "route" - - self.logging( "Log", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %11s %s" % ( - new_entry["Father"], node1, new_entry["Child"], node2, new_entry["_lnkqty"], new_entry["DeviceType"], new_entry["_relationship"]),) + if node2 in routes_list: + new_entry["Route"] = "Route" + + self.logging( "Log", "Relationship (Neighbours) - %15.15s (%s) - %15.15s (%s) %3s %11s %5s %s" % ( + new_entry["Father"], node1, new_entry["Child"], node2, new_entry["_lnkqty"], new_entry["DeviceType"], new_entry["_relationship"], new_entry["Route"]),) _topo.append( new_entry ) return _topo -def build_relation_ship_dict(self, node1, node2,): +def build_relation_ship_dict(self, node1, node2): return { "Father": get_node_name( self, node1), "Child": get_node_name( self, node2), "_lnkqty": get_lqi_from_neighbours(self, node1, node2), "DeviceType": find_device_type(self, node2), - "_relationship": get_relationship_neighbours(self, node1, node2) + "_relationship": get_relationship_neighbours(self, node1, node2), + "Route": "" } def collect_associated_devices( self, node, time_stamp=None): From 5ec56a843a7aa62da88e349dfe94e1b52866bc59 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 16:58:19 +0100 Subject: [PATCH 149/301] refactor the logging to be more fancy --- Classes/WebServer/rest_Topology.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index d425adb84..95f935674 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -265,6 +265,10 @@ def find_device_type(self, node): def collect_routing_table(self, time_stamp=None): + self.logging( "Log", "Relationships (Neighbours table)") + self.logging( "Log", "| %15.15s (%5.5s) | %15.15s (%5.5s) | %4.4s | %11.11s | %9.9s | %5.5s |" % ( + "Node1", "nwkid", "Node2", "nwkid", "LQI", "Dev. Type", "Relation", "Route Flag"),) + _topo = [] prevent_duplicate_tuple = [] self.logging( "Debug", "collect_routing_table - TimeStamp: %s" %time_stamp) @@ -283,9 +287,9 @@ def collect_routing_table(self, time_stamp=None): new_entry = build_relation_ship_dict(self, node1, node2,) if node2 in routes_list: - new_entry["Route"] = "Route" + new_entry["Route"] = "Yes" - self.logging( "Log", "Relationship (Neighbours) - %15.15s (%s) - %15.15s (%s) %3s %11s %5s %s" % ( + self.logging( "Log", "| %15.15s (%5.5s) | %15.15s (%5.5s) | %4.4s | %11.11s | %9.9s | %5.5s |" % ( new_entry["Father"], node1, new_entry["Child"], node2, new_entry["_lnkqty"], new_entry["DeviceType"], new_entry["_relationship"], new_entry["Route"]),) _topo.append( new_entry ) From c46cfc1ec723d996c8e10982e404058cec458d06 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 16:58:32 +0100 Subject: [PATCH 150/301] Plugin wip-develop version 7.2.045 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index b52f525a6..f2c2a2d33 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.044"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.045"} \ No newline at end of file From 966d4adb3850ce5c52688ba12369320a6ef2f33b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 17:43:17 +0100 Subject: [PATCH 151/301] Plugin wip-develop version 7.2.046 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 6affecd67..3cf887c2f 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.045"} +{"branch": "wip-develop", "version": "7.2.046"} \ No newline at end of file From b4d1ec31725f5e38c3350d5ce67f1bc716205cad Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 18:05:28 +0100 Subject: [PATCH 152/301] remove unsuppoorted attributes --- Classes/WebServer/rest_Topology.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index 95f935674..6abf4a2a7 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -291,6 +291,8 @@ def collect_routing_table(self, time_stamp=None): self.logging( "Log", "| %15.15s (%5.5s) | %15.15s (%5.5s) | %4.4s | %11.11s | %9.9s | %5.5s |" % ( new_entry["Father"], node1, new_entry["Child"], node2, new_entry["_lnkqty"], new_entry["DeviceType"], new_entry["_relationship"], new_entry["Route"]),) + del new_entry["Route"] + del new_entry["_relationship"] _topo.append( new_entry ) return _topo From 8f7a753f9a46554802373f3b3d6cd58369b9186b Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 18:14:50 +0100 Subject: [PATCH 153/301] update --- ReleaseNotes.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 663d92ac0..187cd9bf1 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -15,9 +15,24 @@ If you want to contribue , please let us know , we are looking for help in vario Release Numbering -- Odd numbers --> Stable/6 -- Even numbers --> Beta/6 (dev branch) +- Odd numbers --> Stable/7 +- Even numbers --> Beta/7 (dev branch) +## - + +- [Technical] - Refactor Topology +- [Technical] - Upgrade to latest zigpy radio libs +- [Technical] - In Memory Persistent Zigpy Db +- [Technical] - Finalize Domoticz API abstract layer, and readiness to Extended Framework +- [Technical] - Performance improvment, reducing CPU% and providing better responsivness (imporvment of logging facility) +- [Technical] - Adding List of Widgets, nValue:sValue in Groups +- [Technical] - Imporving debuging, and allow to select python module level +- [Technical] - Do not Touch() and Lastseen so often. +- [Technical] - Refactor few domoticz related functions. + +- [WebUI] - New API to get the list of device settings parameters (/device-settings-help) +- [WebUI] - Provides color status of device parameters sync. +- [WebUI] - AngularJS 17 upgrade ## March 2024 - stable7.1.011 ( 2024.03.1) @@ -33,6 +48,7 @@ Release Numbering - [Hardware] - Take in consideration White Color temp mirred limitation and use a specific range ## March 2024 - stable7.1.009 (hotfix) + - [Bug] - fix bugs generating error and preventing some Tuya features working ## February 2024 - stable7 7.1.009 (2024.02) From e9dc068289d0d3e2eb6a22abebf899733f685ca9 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 27 Mar 2024 18:14:55 +0100 Subject: [PATCH 154/301] Plugin wip-develop version 7.2.047 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 3cf887c2f..5376b14a4 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.046"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.047"} \ No newline at end of file From 54c9adf375c02ac54dbaea61af9b0f6164a19886 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Fri, 29 Mar 2024 08:52:59 +0100 Subject: [PATCH 155/301] Makes sure _topo is set before calling res_nTopologie_delet() --- Classes/WebServer/rest_Topology.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index 6abf4a2a7..ce58c5c51 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -46,7 +46,7 @@ def dummy_topology_report( ): def rest_netTopologie(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) - + _topo = {} if not self.pluginconf.pluginConf["TopologyV2"]: _pluginDReports = Path( self.pluginconf.pluginConf["pluginReports"] ) _filename = _pluginDReports / ("NetworkTopology-v3-%02d.json" % self.hardwareID) From 9c59e2ed9263886ceaaba178b19701d1de8eb344 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Fri, 29 Mar 2024 09:31:47 +0100 Subject: [PATCH 156/301] quick fix, need to be better done --- Classes/WebServer/rest_Topology.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index ce58c5c51..1cc86f0b7 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -47,6 +47,8 @@ def rest_netTopologie(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) _topo = {} + _filename = None + if not self.pluginconf.pluginConf["TopologyV2"]: _pluginDReports = Path( self.pluginconf.pluginConf["pluginReports"] ) _filename = _pluginDReports / ("NetworkTopology-v3-%02d.json" % self.hardwareID) From 4bd45ea69dc0877f6d5728f35650ded0c2f24908 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 2 Apr 2024 18:19:19 +0200 Subject: [PATCH 157/301] provide information on a Topology scan in progress via /plugin-health --- Classes/WebServer/WebServer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 935b2deab..6ad94bac9 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -249,6 +249,9 @@ def rest_plugin_health(self, verb, data, parameters): if self.groupmgt: health["GroupStatus"] = self.groupmgt.GroupStatus + + if self.networkmap and self.networkmap.NetworkMapPhase(): + health["Topology"] = "In Progress" _response["Data"] = json.dumps(health, sort_keys=True) From 8069a8c8c460d67fc2ef05770e8facb0e7212460 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Tue, 2 Apr 2024 19:39:47 +0200 Subject: [PATCH 158/301] Write the ListOfDevice to file every 15 minutes --- plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.py b/plugin.py index e8fb9f628..b3acabb42 100644 --- a/plugin.py +++ b/plugin.py @@ -889,9 +889,9 @@ def onHeartbeat(self): if self.groupmgt: self.groupmgt.hearbeat_group_mgt() - # Write the ListOfDevice every 5 minutes or immediatly if we have remove or added a Device + # Write the ListOfDevice every 15 minutes or immediatly if we have remove or added a Device if len(Devices) == prevLenDevices: - WriteDeviceList(self, ( (5 * 60) // HEARTBEAT) ) + WriteDeviceList(self, ( (15 * 60) // HEARTBEAT) ) else: self.log.logging("Plugin", "Debug", "Devices size has changed , let's write ListOfDevices on disk") WriteDeviceList(self, 0) # write immediatly From e562894a81093331cd981f07b2efdfb3e372c319 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 3 Apr 2024 13:12:46 +0200 Subject: [PATCH 159/301] fix WebUI issue since Angular upgrade where JSON syntaxt do not match python3 JSON syntax --- Classes/WebServer/WebServer.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Classes/WebServer/WebServer.py b/Classes/WebServer/WebServer.py index 6ad94bac9..04e2fa9a9 100644 --- a/Classes/WebServer/WebServer.py +++ b/Classes/WebServer/WebServer.py @@ -1563,7 +1563,7 @@ def decode_device_param(self, nwkid, param): return {} try: - return json.loads(replace_single_quotes_with_double(param)) + return json.loads(replace_single_quotes_with_double(remove_last_comma(param))) except json.JSONDecodeError as err: _device_name = get_device_nickname(self, NwkId=nwkid) @@ -1585,6 +1585,14 @@ def replace_single_quotes_with_double(json_string): return json_string.replace("'", "\"") +def remove_last_comma(json_string): + """ remove last comma if any""" + if json_string.endswith(', }'): + return json_string[:-3] + "}" + elif json_string.endswith(',}'): + return json_string[:-2] + "}" + return json_string + def get_plugin_parameters(self, filter=False): plugin_parameters = self.pluginParameters.copy() From efbc41057ae71861c4ddcbc1a7b18969c44e11dc Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 3 Apr 2024 13:12:56 +0200 Subject: [PATCH 160/301] Plugin wip-develop version 7.2.048 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 5376b14a4..6b89e1538 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.047"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.048"} \ No newline at end of file From 61605695db07fd5e8481e0a3a10d09e506d18d71 Mon Sep 17 00:00:00 2001 From: Pipiche <8291674+pipiche38@users.noreply.github.com> Date: Wed, 3 Apr 2024 20:06:32 +0200 Subject: [PATCH 161/301] Zigpy topology (#1723) * Zigpy Topology from WebUI --- Classes/PluginConf.py | 2 + Classes/WebServer/rest_Topology.py | 457 ++++++++++++++++++++------ Classes/ZigpyTopology.py | 290 ++++++++++++++++ Classes/ZigpyTransport/AppBellows.py | 14 +- Classes/ZigpyTransport/AppDeconz.py | 12 + Classes/ZigpyTransport/AppGeneric.py | 6 + Classes/ZigpyTransport/AppZnp.py | 12 + Classes/ZigpyTransport/zigpyThread.py | 3 + plugin.py | 40 ++- 9 files changed, 730 insertions(+), 106 deletions(-) create mode 100644 Classes/ZigpyTopology.py diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index cc02898e2..bf3c2dc24 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -102,6 +102,7 @@ "Order": 7, "param": { "TopologyV2": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, + "ZigpyTopologyReport": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, "Sibling": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": True, "Advanced": True, "ZigpyRadio": "" }, "Lang": { "type": "str", "default": "en-US", "current": None, "restart": 0, "hidden": False, "Advanced": False, }, "numTopologyReports": { "type": "int", "default": 4, "current": None, "restart": 0, "hidden": False, "Advanced": False, }, @@ -317,6 +318,7 @@ "ZiGateReactTime": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "Zigpy": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyEZSP": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, + "ZigpyTopology": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyZNP": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpyZigate": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, "ZigpydeCONZ": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True }, diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index 1cc86f0b7..d73c4b14f 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -1,8 +1,14 @@ #!/usr/bin/env python3 -# coding: utf-8 -*- +# -*- coding: utf-8 -*- # -# Author: zaraki673 & pipiche38 +# Implementation of Zigbee for Domoticz plugin. # +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license import json import os @@ -12,16 +18,13 @@ from Classes.WebServer.headerResponse import (prepResponseMessage, setupHeadersResponse) -from Modules.domoticzAbstractLayer import (domoticz_error_api, - domoticz_log_api, - domoticz_status_api) from Modules.zb_tables_management import (get_device_table_entry, get_list_of_timestamps, remove_entry_from_all_tables) +ZIGPY_TOPOLOGY_REPORT_FILENAME = "Zigpy-Topology-" def rest_req_topologie(self, verb, data, parameters): - _response = prepResponseMessage(self, setupHeadersResponse()) if verb == "GET": @@ -30,7 +33,10 @@ def rest_req_topologie(self, verb, data, parameters): self.logging("Status", "Request a Start of Network Topology scan") if self.networkmap: - if not self.networkmap.NetworkMapPhase(): + if self.pluginconf.pluginConf["ZigpyTopologyReport"] and self.zigbee_communication == "zigpy": + self.ControllerLink.sendData( "ZIGPY-TOPOLOGY-SCAN", {}) + elif not self.networkmap.NetworkMapPhase(): + # Legacy Topology self.networkmap.start_scan() else: self.logging("Error", "Cannot start Network Topology as one is in progress...") @@ -40,68 +46,120 @@ def rest_req_topologie(self, verb, data, parameters): def dummy_topology_report( ): - return [{"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Zigbee Coordinator", "_lnkqty": 58}, {"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 252}, {"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 241}, {"Child": "OnOff Ikea", "DeviceType": "End Device", "Father": "IAS Sirene", "_lnkqty": 255}, {"Child": "Repeater", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, {"Child": "Repeater", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 196}, {"Child": "Repeater", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 254}, {"Child": "Motion frient", "DeviceType": "End Device", "Father": "Repeater", "_lnkqty": 168}, {"Child": "Dim Ikea", "DeviceType": "End Device", "Father": "Repeater", "_lnkqty": 89}, {"Child": "Led LKex", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, {"Child": "Led LKex", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 244}, {"Child": "Lumi Door", "DeviceType": "End Device", "Father": "Led LKex", "_lnkqty": 211}, {"Child": "Wiser Thermostat", "DeviceType": "End Device", "Father": "Led LKex", "_lnkqty": 223}, {"Child": "Led Ikea", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 60}, {"Child": "Led Ikea", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 101}, {"Child": "Remote Tradfri", "DeviceType": "End Device", "Father": "Led Ikea", "_lnkqty": 194}, {"Child": "Inter Shutter Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 133}, {"Child": "Inter Shutter Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 241}, {"Child": "Inter Shutter Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 164}, {"Child": "Lumi Motion", "DeviceType": "End Device", "Father": "Inter Shutter Legrand", "_lnkqty": 242}, {"Child": "Inter Dimmer Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, {"Child": "Inter Dimmer Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 215}, {"Child": "Inter Dimmer Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 254}, {"Child": "Micromodule Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 252}, {"Child": "Micromodule Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 252}, {"Child": "Micromodule Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 252}] + return [{"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Zigbee Coordinator", "_lnkqty": 58}, + {"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 252}, + {"Child": "IAS Sirene", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 241}, + {"Child": "OnOff Ikea", "DeviceType": "End Device", "Father": "IAS Sirene", "_lnkqty": 255}, + {"Child": "Repeater", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, + {"Child": "Repeater", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 196}, + {"Child": "Repeater", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 254}, + {"Child": "Motion frient", "DeviceType": "End Device", "Father": "Repeater", "_lnkqty": 168}, + {"Child": "Dim Ikea", "DeviceType": "End Device", "Father": "Repeater", "_lnkqty": 89}, + {"Child": "Led LKex", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, + {"Child": "Led LKex", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 244}, + {"Child": "Lumi Door", "DeviceType": "End Device", "Father": "Led LKex", "_lnkqty": 211}, + {"Child": "Wiser Thermostat", "DeviceType": "End Device", "Father": "Led LKex", "_lnkqty": 223}, + {"Child": "Led Ikea", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 60}, + {"Child": "Led Ikea", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 101}, + {"Child": "Remote Tradfri", "DeviceType": "End Device", "Father": "Led Ikea", "_lnkqty": 194}, + {"Child": "Inter Shutter Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 133}, + {"Child": "Inter Shutter Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 241}, + {"Child": "Inter Shutter Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 164}, + {"Child": "Lumi Motion", "DeviceType": "End Device", "Father": "Inter Shutter Legrand", "_lnkqty": 242}, + {"Child": "Inter Dimmer Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 254}, + {"Child": "Inter Dimmer Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 215}, + {"Child": "Inter Dimmer Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 254}, + {"Child": "Micromodule Legrand", "DeviceType": "Coordinator", "Father": "Zigbee Coordinator", "_lnkqty": 252}, + {"Child": "Micromodule Legrand", "DeviceType": "Router", "Father": "Led LKex", "_lnkqty": 252}, + {"Child": "Micromodule Legrand", "DeviceType": "Router", "Father": "Led Ikea", "_lnkqty": 252}] def rest_netTopologie(self, verb, data, parameters): _response = prepResponseMessage(self, setupHeadersResponse()) - _topo = {} - _filename = None - - if not self.pluginconf.pluginConf["TopologyV2"]: - _pluginDReports = Path( self.pluginconf.pluginConf["pluginReports"] ) - _filename = _pluginDReports / ("NetworkTopology-v3-%02d.json" % self.hardwareID) - - self.logging("Debug", "Filename: %s" % _filename) - - if not os.path.isfile(_filename): - _response["Data"] = json.dumps({}, sort_keys=True) - self.logging("Debug", "Filename: %s not found !!" % _filename) - return _response - - # Read the file, as we have anyway to do it - _topo = {} # All Topo reports - _timestamps_lst = [] # Just the list of Timestamps - with open(_filename, "rt") as handle: - for line in handle: - if line[0] != "{" and line[-1] != "}": - continue - entry = json.loads(line) - for _ts in entry: - _timestamps_lst.append(int(_ts)) - _topo[_ts] = [] # List of Father -> Child relation for one TimeStamp - reportLQI = entry[_ts] - _topo[_ts] = extract_legacy_report(self, reportLQI) - + _pluginDReports = Path( self.pluginconf.pluginConf["pluginReports"] ) + _filename = _pluginDReports / ("NetworkTopology-v3-%02d.json" % self.hardwareID) + if verb == "DELETE": - return rest_netTopologie_delete(self, verb, data, parameters, _response, _topo, _filename) + return rest_netTopologie_delete(self, verb, data, parameters, _response, _filename) if verb == "GET": - if not self.pluginconf.pluginConf["TopologyV2"]: - return rest_netTopologie_get(self, verb, data, parameters, _response, _topo) - return rest_netTopologie_get(self, verb, data, parameters, _response) + return rest_netTopologie_get(self, verb, data, parameters, _response, _filename) + + return _response -def rest_netTopologie_delete(self, verb, data, parameters, _response, _topo, _filename): +def rest_netTopologie_delete(self, verb, data, parameters, _response, _filename): + if len(parameters) == 0: - os.remove(_filename) + if self.pluginconf.pluginConf["ZigpyTopologyReport"]: + # Zigpy Topology + save_report_to_file_after_deletion(self, []) + + elif not self.pluginconf.pluginConf["TopologyV2"]: + os.remove(_filename) + action = {"Name": "File-Removed", "FileName": _filename} _response["Data"] = json.dumps(action, sort_keys=True) elif len(parameters) == 1: timestamp = parameters[0] - if self.pluginconf.pluginConf["TopologyV2"] and len(self.ControllerData): + if self.pluginconf.pluginConf["ZigpyTopologyReport"]: + # Zigpy Topology + save_report_to_file_after_deletion(self, remove_specific_entry(self, timestamp, read_zigpy_topology_report(self))) + + elif self.pluginconf.pluginConf["TopologyV2"] and len(self.ControllerData): remove_entry_from_all_tables( self, timestamp ) - action = {"Name": "Report %s removed" % timestamp} - _response["Data"] = json.dumps(action, sort_keys=True) - elif timestamp in _topo: - return rest_netTopologie_delete_legacy(self, verb, data, parameters, _response, timestamp, _topo, _filename) + else: + _topo, _timestamps_lst = extract_list_of_legacy_report(self, _response, _filename) + if timestamp in _topo: + return rest_netTopologie_delete_legacy(self, verb, data, parameters, _response, timestamp, _topo, _filename) + + action = {"Name": "Report %s removed" % timestamp} + _response["Data"] = json.dumps(action, sort_keys=True) + return _response + + +def rest_netTopologie_get(self, verb, data, parameters, _response, _filename, ): + if len(parameters) == 0: + # Send list of Time Stamps + if self.fake_mode(): + _timestamps_lst = [1643561599, 1643564628] + + elif self.pluginconf.pluginConf["ZigpyTopologyReport"]: + # Zigpy Report + _timestamps_lst = return_time_stamps_list(self, read_zigpy_topology_report(self)) + + elif self.pluginconf.pluginConf["TopologyV2"]: + _timestamps_lst = get_list_of_timestamps( self, "0000", "Neighbours") else: - domoticz_error_api("Removing Topo Report %s not found" % timestamp) - _response["Data"] = json.dumps([], sort_keys=True) + _topo, _timestamps_lst = extract_list_of_legacy_report(self, _response, _filename) + + _response["Data"] = json.dumps(_timestamps_lst, sort_keys=True) + + elif len(parameters) == 1: + + if self.fake_mode(): + _response["Data"] = json.dumps(dummy_topology_report( ), sort_keys=True) + + elif self.pluginconf.pluginConf["ZigpyTopologyReport"]: + timestamp = parameters[0] + _response["Data"] = json.dumps(normalized_one_report_for_webui(self, timestamp, read_zigpy_topology_report(self))) + + elif self.pluginconf.pluginConf["TopologyV2"]: + timestamp = parameters[0] + _response["Data"] = json.dumps(collect_routing_table(self,timestamp ), sort_keys=True) + + else: + timestamp = parameters[0] + _topo, _timestamps_lst = extract_list_of_legacy_report(self, _response, _filename) + if timestamp in _topo: + self.logging("Debug", "Topology sent: %s" % _topo[timestamp]) + _response["Data"] = json.dumps(_topo[timestamp], sort_keys=True) + else: + _response["Data"] = json.dumps([], sort_keys=True) return _response @@ -127,31 +185,32 @@ def rest_netTopologie_delete_legacy(self, verb, data, parameters, _response, tim action = {"Name": "Report %s removed" % timestamp} _response["Data"] = json.dumps(action, sort_keys=True) return _response - - -def rest_netTopologie_get(self, verb, data, parameters, _response, _topo=None): - if len(parameters) == 0: - if self.fake_mode(): - _timestamps_lst = [1643561599, 1643564628] - elif self.pluginconf.pluginConf["TopologyV2"]: - _timestamps_lst = get_list_of_timestamps(self, "0000", "Neighbours") - _response["Data"] = json.dumps(_timestamps_lst, sort_keys=True) - elif len(parameters) == 1: - if self.fake_mode(): - _response["Data"] = json.dumps(dummy_topology_report(), sort_keys=True) - elif self.pluginconf.pluginConf["TopologyV2"]: - timestamp = parameters[0] - _response["Data"] = json.dumps(collect_routing_table(self, timestamp), sort_keys=True) +def extract_list_of_legacy_report(self, _response, _filename): + self.logging("Debug", "Filename: %s" % _filename) - elif _topo: - timestamp = parameters[0] - _response["Data"] = json.dumps(_topo.get(timestamp, []), sort_keys=True) - - return _response + if not os.path.isfile(_filename): + _response["Data"] = json.dumps({}, sort_keys=True) + self.logging("Debug", "Filename: %s not found !!" % _filename) + return _response + # Read the file, as we have anyway to do it + _topo = {} # All Topo reports + _timestamps_lst = [] # Just the list of Timestamps + with open(_filename, "rt") as handle: + for line in handle: + if line[0] != "{" and line[-1] != "}": + continue + entry = json.loads(line) + for _ts in entry: + _timestamps_lst.append(int(_ts)) + _topo[_ts] = [] # List of Father -> Child relation for one TimeStamp + reportLQI = entry[_ts] + _topo[_ts] = extract_legacy_report(self, reportLQI) + return _topo, _timestamps_lst + def extract_legacy_report(self, reportLQI): _check_duplicate = [] # List of tuble ( item, x) to prevent adding twice the same relation @@ -211,24 +270,30 @@ def extract_legacy_report(self, reportLQI): self.logging( "Debug", "Skip (%s,%s) as there is already %s" % ( node1, x, str(_check_duplicate))) continue + _check_duplicate.append(( node1, node2)) # Build the relation for the graph _relation = { "Father": node1_name, "Child": node2_name, - "_lnkqty": int( reportLQI[node1]["Neighbours"][node2]["_lnkqty"], 16 ), - "_relationshp": reportLQI[node1]["Neighbours"][node2][ "_relationshp" ], - "DeviceType": get_device_type(self, node2), + "_lnkqty": int( + reportLQI[item]["Neighbours"][x]["_lnkqty"], 16 + ), + "DeviceType": reportLQI[node1]["Neighbours"][x]["_devicetype"], + } self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( _relation["Father"], node1, _relation["Child"], node2, _relation["_lnkqty"], _relation["DeviceType"]),) _topo.append(_relation) self.logging("Debug", "WebUI report" ) - for item in _topo: - self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s %s" % ( - item["Father"], item["Child"], item["_lnkqty"], item["DeviceType"], item["_relationshp"]),) + + for x in _topo: + self.logging( "Debug", "Relationship - %15.15s - %15.15s %3s %s" % ( + x["Father"], x["Child"], x["_lnkqty"], x["DeviceType"]),) + + del _check_duplicate return _topo @@ -240,7 +305,7 @@ def get_device_type( self, node): return '??' return self.ListOfDevices[ node ]["LogicalType"] - + def get_node_name( self, node): if node == "0000": return "Zigbee Coordinator" @@ -250,6 +315,99 @@ def get_node_name( self, node): return self.ListOfDevices[node]["ZDeviceName"] return node +def check_sibbling(self, reportLQI): + # for node1 in sorted(reportLQI): + # for node2 in list(reportLQI[node1]['Neighbours']): + # domoticz_log_api("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) + + for node1 in list(reportLQI): + for node2 in list(reportLQI[node1]["Neighbours"]): + if reportLQI[node1]["Neighbours"][node2]["_relationshp"] != "Sibling": + continue + + # domoticz_log_api("Search parent for sibling %s and %s" %(node1, node2)) + parent1 = find_parent_for_node(reportLQI, node2) + parent2 = find_parent_for_node(reportLQI, node1) + # domoticz_log_api("--parents found: %s + %s" %(parent1,parent2)) + + if len(parent1) !=0 and len(parent2) == 0: + continue + + for x in parent1: + reportLQI = add_relationship( + self, reportLQI, node1, node2, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] + ) + reportLQI = add_relationship( + self, reportLQI, node2, node1, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] + ) + for x in parent2: + reportLQI = add_relationship( + self, reportLQI, node1, node2, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] + ) + reportLQI = add_relationship( + self, reportLQI, node2, node1, x, "Parent", reportLQI[node1]["Neighbours"][node2]["_lnkqty"] + ) + + # for node1 in sorted(reportLQI): + # for node2 in list(reportLQI[node1]['Neighbours']): + # domoticz_log_api("%s %s %s" %(node1, node2,reportLQI[node1]['Neighbours'][node2]['_relationshp'] )) + + return reportLQI + + +def find_parent_for_node(reportLQI, node): + + parent = [] + if node not in reportLQI: + return parent + + if "Neighbours" not in reportLQI[node]: + return parent + + for y in list(reportLQI[node]["Neighbours"]): + if reportLQI[node]["Neighbours"][y]["_relationshp"] == "Parent" and y not in parent: + parent.append(y) + + for x in list(reportLQI): + if node in reportLQI[x]["Neighbours"] and reportLQI[x]["Neighbours"][node]["_relationshp"] == "Child" and x not in parent: + parent.append(x) + + return parent + + +def add_relationship(self, reportLQI, node1, node2, relation_node, relation_ship, _linkqty): + + if node1 == relation_node: + return reportLQI + + if node1 not in reportLQI: + reportLQI[node1] = {"Neighbours": {}} + if ( + relation_node in reportLQI[node1]["Neighbours"] + and reportLQI[node1]["Neighbours"][relation_node]["_relationshp"] == relation_ship + ): + return reportLQI + + if relation_node == "0000": + # ZiGate + _devicetype = "Coordinator" + + elif node2 in reportLQI[node1]["Neighbours"]: + _devicetype = ( + reportLQI[node1]["Neighbours"][node2]["_devicetype"] + if "_devicetype" in reportLQI[node1]["Neighbours"][node2] + else find_device_type(self, node2) + ) + else: + _devicetype = find_device_type(self, node2) + + reportLQI[node1]["Neighbours"][relation_node] = { + "_relationshp": relation_ship, + "_lnkqty": _linkqty, + "_devicetype": _devicetype, + } + return reportLQI + def find_device_type(self, node): @@ -276,13 +434,14 @@ def collect_routing_table(self, time_stamp=None): self.logging( "Debug", "collect_routing_table - TimeStamp: %s" %time_stamp) for node1 in self.ListOfDevices: self.logging( "Debug", f"check {node1} child from routing table") - routes_list = extract_routes(self, node1, time_stamp) - + + routes_list = extract_routes(self, node1, time_stamp) for node2 in set( collect_neighbours_devices( self, node1, time_stamp) ): - self.logging( "Debug", f"Neighbor relation {node2}") + self.logging( "Debug", f"Found child {node2}") if node2 not in self.ListOfDevices: - self.logging( "Debug", f"Found relation {node2} but not found in ListOfDevices") + self.logging( "Debug", f"Found child {node2} but not found in ListOfDevices") continue + if ( node1, node2) not in prevent_duplicate_tuple: prevent_duplicate_tuple.append( ( node1, node2) ) @@ -299,6 +458,7 @@ def collect_routing_table(self, time_stamp=None): return _topo + def build_relation_ship_dict(self, node1, node2): return { "Father": get_node_name( self, node1), @@ -308,7 +468,21 @@ def build_relation_ship_dict(self, node1, node2): "_relationship": get_relationship_neighbours(self, node1, node2), "Route": "" } - + + +def get_relationship_neighbours(self, node1, node2, time_stamp=None): + return next( + ( + neigbor[node2]["_relationshp"] + for neigbor in get_device_table_entry( + self, node1, "Neighbours", time_stamp + ) + if node2 in neigbor + ), + "", + ) + + def collect_associated_devices( self, node, time_stamp=None): last_associated_devices = get_device_table_entry(self, node, "AssociatedDevices", time_stamp) self.logging( "Debug", "collect_associated_devices %s -> %s" %(node, str(last_associated_devices))) @@ -320,7 +494,7 @@ def collect_neighbours_devices( self, node, time_stamp=None): self.logging( "Debug", "collect_neighbours_devices %s -> %s" %(node, str(last_neighbours_devices))) keys_with_child_relation = [key for item in last_neighbours_devices for key, value in item.items()] return list(keys_with_child_relation) - + def extract_routes( self, node, time_stamp=None): node_routes = [] @@ -330,26 +504,101 @@ def extract_routes( self, node, time_stamp=None): return node_routes -def get_lqi_from_neighbours(self, node1, node2, time_stamp=None): - return next( - ( - neighbor[node2]["_lnkqty"] - for neighbor in get_device_table_entry( - self, node1, "Neighbours", time_stamp - ) - if node2 in neighbor - ), - 1, - ) +def get_lqi_from_neighbours(self, father, child, time_stamp=None): + # Take the LQI from the latest report + for item2 in get_device_table_entry(self, father, "Neighbours", time_stamp): + for node in item2: + if node != child: + continue + return item2[ node ]["_lnkqty"] + return 1 -def get_relationship_neighbours(self, node1, node2, time_stamp=None): - return next( - ( - neigbor[node2]["_relationshp"] - for neigbor in get_device_table_entry( - self, node1, "Neighbours", time_stamp - ) - if node2 in neigbor - ), - "", - ) + +# Zigpy Topology helpers +def zigpy_topology_filename(self): + return Path( self.pluginconf.pluginConf["pluginReports"] ) / ( ZIGPY_TOPOLOGY_REPORT_FILENAME + "%02d.json" % self.hardwareID) + + +def read_zigpy_topology_report(self): + """ open the Zigpy Topology Report and return a list of entries (timestamps)""" + + self.logging( "Debug", "read_zigpy_topology_report") + zigpy_topology_reports_filename = zigpy_topology_filename(self) + if not os.path.isdir( Path(self.pluginconf.pluginConf["pluginReports"]) ): + self.logging( "Error", "read_zigpy_topology_report: Unable to get access to directory %s, please check PluginConf.json" % (self.pluginconf.pluginConf["pluginReports"]), ) + return + + if os.path.exists(zigpy_topology_reports_filename): + with open(zigpy_topology_reports_filename, 'r') as file: + data = json.load(file) + return data + else: + return [] + + +def save_report_to_file_after_deletion(self, report): + """ Save a new version of the report (after deletion of one entry)""" + self.logging("Debug", "save_report_to_file_after_deletion") + zigpy_topology_reports_filename = zigpy_topology_filename(self) + if not os.path.isdir( Path(self.pluginconf.pluginConf["pluginReports"]) ): + self.logging( "Error", "save_report_to_file_after_deletion: Unable to get access to directory %s, please check PluginConf.json" % (self.pluginconf.pluginConf["pluginReports"]), ) + return + + with open(zigpy_topology_reports_filename, 'w') as file: + json.dump(report, file, indent=4) + + +def return_time_stamps_list(self, zigpy_report_list): + """ return list of timestamps""" + return [list(entry.keys())[0] for entry in zigpy_report_list] + + +def remove_specific_entry(self, timestatmp_to_remove, zigpy_report_list): + """ remove one specific entry based on timestamp and return the new report list""" + return [entry for entry in zigpy_report_list if list(entry.keys())[0] != timestatmp_to_remove] + + +def normalize_device_type(self, device_type): + + if device_type == "end_device": + return "End Device" + if device_type == "coordinator": + return "Coordinator" + return "Router" if device_type == "router" else None + + +def normalized_one_report_for_webui(self, timestamp, zigpy_report_list): + self.logging("Debug", "normalized_one_report_for_webui %s (%s)" %(timestamp, type(timestamp))) + + target_report = next( ( entry for entry in zigpy_report_list if list(entry.keys())[0] == timestamp ), None, ) + neighbors = target_report[ timestamp ].get( "Neighbors",{}) + route = target_report[ timestamp ].get( "Routes",{}) + topology = [] + for node1_nwkid in neighbors: + self.logging("Debug", " neighbors %s" %node1_nwkid) + if node1_nwkid not in self.ListOfDevices: + self.logging( "Debug", f"Found child {node1_nwkid} but not found in ListOfDevices") + continue + + for neigbor_node2 in neighbors[ node1_nwkid]["relationship"]: + node2_nwkid = neigbor_node2["nwkid"] + node2_device_type = neigbor_node2["device_type"] + node2_lqi = neigbor_node2["lqi_from_device"] + + if node2_nwkid not in self.ListOfDevices: + self.logging( "Log", f"Found child {node2_nwkid} but not found in ListOfDevices") + continue + + relation = { + "Child": get_node_name( self, node2_nwkid), + "DeviceType": normalize_device_type(self, node2_device_type), + "Father": get_node_name( self, node1_nwkid), + "_lnkqty": node2_lqi, + } + self.logging( "Debug", "Relationship - %15.15s (%s) - %15.15s (%s) %3s %s" % ( + relation["Father"], node1_nwkid, relation["Child"], node2_nwkid, relation["_lnkqty"], relation["DeviceType"]),) + + if relation not in topology: + topology.append( relation ) + + return topology diff --git a/Classes/ZigpyTopology.py b/Classes/ZigpyTopology.py new file mode 100644 index 000000000..a62df1b56 --- /dev/null +++ b/Classes/ZigpyTopology.py @@ -0,0 +1,290 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Implementation of Zigbee for Domoticz plugin. +# +# This file is part of Zigbee for Domoticz plugin. https://github.com/zigbeefordomoticz/Domoticz-Zigbee +# (C) 2015-2024 +# +# Initial authors: zaraki673 & pipiche38 +# +# SPDX-License-Identifier: GPL-3.0 license + +import json +import os.path +import traceback +from pathlib import Path +import time + +import zigpy.types as t + +ZIGPY_TOPOLOGY_REPORT_FILENAME = "Zigpy-Topology-" +class ZigpyTopology: + + def __init__(self, zigbee_communitation, PluginConf, ZigateComm, ListOfDevices, IEEE2NWK, Devices, HardwareID, log): + self.zigbee_communication = zigbee_communitation + self.pluginconf = PluginConf + self.ControllerLink = ZigateComm + self.ListOfDevices = ListOfDevices + self.IEEE2NWK = IEEE2NWK + self.Devices = Devices + self.HardwareID = HardwareID + self.log = log + self.FirmwareVersion = None + self.new_scan_detected = None + self.neighbors_table = {} + + + def copy_zigpy_infos_to_plugin(self, neighbors_list=None, routes_list=None): + if neighbors_list is None and routes_list is None: + neighbors, routes = self.ControllerLink.app.get_topology() + neighbors_list = build_zigpy_neighbors(self, neighbors) + routes_list = build_zigpy_routes(self, routes) + + self.log.logging("ZigpyTopology", "Log", "copy_zigpy_infos_to_plugin") + try: + self.ListOfDevices[ "0000" ][ "ZigpyNeighbors"] = neighbors_list + self.ListOfDevices[ "0000" ][ "ZigpyRoutes"] = routes_list + + except Exception as e: + self.log.logging("ZigpyTopology", "Debug", f"Error while requesting get_topology() - {e}") + self.log.logging("ZigpyTopology", "Debug", f"{(traceback.format_exc())}") + + + def save_topology_report(self): + self.log.logging("ZigpyTopology", "Debug", "save_topology_report") + neighbors, routes = self.ControllerLink.app.get_topology() + neighbors_list = build_zigpy_neighbors(self, neighbors) + routes_list = build_zigpy_routes(self, routes) + self.copy_zigpy_infos_to_plugin(neighbors_list, routes_list) + save_report_to_file(self, time.time(), neighbors_list, routes_list) + + + def is_zigpy_topology_in_progress(self): + return self.ControllerLink.app.is_zigpy_topology_in_progress() + + +def save_report_to_file(self, time_stamp, neighbors, routes): + self.log.logging("ZigpyTopology", "Debug", "save_report_to_file") + zigpy_topology_reports_filename = Path( self.pluginconf.pluginConf["pluginReports"] ) / ( ZIGPY_TOPOLOGY_REPORT_FILENAME + "%02d.json" % self.HardwareID) + if not os.path.isdir( Path(self.pluginconf.pluginConf["pluginReports"]) ): + self.log.logging("ZigpyTopology", "Error", "save_report_to_file: Unable to get access to directory %s, please check PluginConf.json" % (self.pluginconf.pluginConf["pluginReports"]), ) + return + + new_report = { time_stamp: { "Neighbors": neighbors, "Routes":routes }} + available_reports = read_topology_report(zigpy_topology_reports_filename) + + available_reports.append(new_report) + if len(available_reports) > self.pluginconf.pluginConf["numTopologyReports"]: + available_reports.pop(0) # Remove the first entry + + write_json_file(zigpy_topology_reports_filename, available_reports) + + +def read_topology_report(file_path): + if os.path.exists(file_path): + with open(file_path, 'r') as file: + data = json.load(file) + return data + else: + return [] + + +def write_json_file(file_path, data): + with open(file_path, 'w') as file: + json.dump(data, file, indent=4) + + +def build_zigpy_neighbors(self, neighbors): + """ Build a list of Neighbor tuples """ + raw_neighbors_set = set() + ieee2nwk_keys = set(self.IEEE2NWK.keys()) + + for ieee, neighbor_list in neighbors.items(): + ieee_parent = "%016x" % t.uint64_t.deserialize(ieee.serialize())[0] + if ieee_parent not in ieee2nwk_keys: + continue + + nwkid_parent = self.IEEE2NWK[ ieee_parent ] + for neighbor in neighbor_list: + neighbor_info_dict = parse_neigbor_infos(neighbor) + + if neighbor_info_dict["ieee_neighbor"] not in ieee2nwk_keys: + continue + + if neighbor_info_dict["nwkid_neighbor"] not in self.ListOfDevices: + continue + + self.log.logging("ZigpyTopology", "Debug", f"build_zigpy_neighbors adding {nwkid_parent} with {neighbor_info_dict}") + add_to_neighbors_table( self, ieee_parent, nwkid_parent, neighbor_info_dict) + return self.neighbors_table + + +def add_to_neighbors_table( self, ieee_parent, nwkid_parent, neighbor_info_dict): + nwkid_neighbor = neighbor_info_dict["nwkid_neighbor"] + ieee_neighbor = neighbor_info_dict["ieee_neighbor"] + + if nwkid_parent not in self.neighbors_table: + self.neighbors_table[ nwkid_parent ] = { + "ieee": ieee_parent, + "relationship": [], # Initialize as empty list + } + + # Check if the relationship exists before adding it + relationship_exists = any( + rel["nwkid"] == nwkid_neighbor and rel["ieee"] == ieee_neighbor + for rel in self.neighbors_table[nwkid_parent]["relationship"] + ) + + # Add relationship if it doesn't exist already + if not relationship_exists: + self.neighbors_table[nwkid_parent]["relationship"].append( + { "nwkid": nwkid_neighbor, + "ieee": ieee_neighbor, + "relationship": neighbor_info_dict["relationship"], + "device_type": neighbor_info_dict[ "device_type"], + "rx_on_when_idle": neighbor_info_dict[ "rx_on_when_idle"], + "lqi_from_device": neighbor_info_dict[ "lqi"], + "permit_joining": neighbor_info_dict[ "permit_joining"]} + ) + self.log.logging("ZigpyTopology", "Debug", f"build_zigpy_neighbors adding relation {self.neighbors_table[nwkid_parent]['relationship']}") + + +def parse_neigbor_infos( neighbor ): + return { + "ieee_neighbor": "%016x" % t.uint64_t.deserialize(neighbor.ieee.serialize())[0], + "nwkid_neighbor": neighbor.nwk.serialize()[::-1].hex(), + "device_type": convert_device_type_code(neighbor.device_type), + "rx_on_when_idle": convert_rx_on_when_idle(neighbor.rx_on_when_idle), + "relationship": convert_relationship_code(neighbor.relationship), + "permit_joining": convert_permit_joining(neighbor.permit_joining), + "lqi": neighbor.lqi + } + + +def convert_relationship_code(code): + relationship_mapping = { + 0x00: "parent", + 0x01: "child", + 0x02: "sibling", + 0x03: "none_of_above", + 0x04: "previous_child" + } + return relationship_mapping.get(code, "unknown") + + +def convert_device_type_code(code): + device_type_mapping = { + 0x00: "coordinator", + 0x01: "router", + 0x02: "end_device", + 0x03: "unknown" + } + return device_type_mapping.get(code, "unknown") + + +def convert_rx_on_when_idle(code): + rx_on_when_idle_mapping = { + 0x00: "off", + 0x01: "on", + 0x02: "unknown" + } + return rx_on_when_idle_mapping.get(code, "unknown") + + +def convert_permit_joining(code): + permit_joining_mapping = { + 0x00: "off", + 0x01: "on", + 0x02: "unknown" + } + return permit_joining_mapping.get(code, "unknown") + + +def build_zigpy_routes(self, zigpy_routes): + raw_root = {} + ieee2nwk_keys = set(self.IEEE2NWK.keys()) + + for ieee, route_info in zigpy_routes.items(): + ieee = "%016x" % t.uint64_t.deserialize(ieee.serialize())[0] + if ieee not in ieee2nwk_keys: + continue + nwkid = self.IEEE2NWK[ ieee ] + if nwkid not in raw_root: + raw_root[ nwkid ] = [] + + for route in route_info: + route_dict = parse_route_infos( route) + dst_nwk = route_dict["dst_nwk"] + if dst_nwk not in self.ListOfDevices: + continue + raw_root[ nwkid ].append( route_dict) + return raw_root + + +def parse_route_infos( route): + return { + "dst_nwk": route.DstNWK.serialize()[::-1].hex(), + "route_status": convert_route_status_code(route.RouteStatus), + "memory_constrained": route.MemoryConstrained, + "many_to_one": route.RouteRecordRequired, + "route_record_required": route.RouteRecordRequired, + "next_hop": route.NextHop.serialize()[::-1].hex() + } + + +def convert_route_status_code(code): + route_status_mapping = { + 0x00: "active", + 0x01: "discovery_underway", + 0x02: "discovery_failed", + 0x03: "inactive", + 0x04: "validation_underway", + } + return route_status_mapping.get(code, "unknown") + + +def retreive_relationship( nwkid_parent, neighbor_info_dict): + nwkid_relationship = neighbor_info_dict["relationship"] + nwkid_neighbor = neighbor_info_dict["nwkid_neighbor"] + + if nwkid_relationship == 0x00: # Relationship.Parent + return (nwkid_neighbor, nwkid_parent, "child") + + elif nwkid_relationship == 0x01: # Relationship.Child + return (nwkid_parent, nwkid_neighbor, "child") + + elif nwkid_relationship == 0x02: # Relationship.Sibling + return (nwkid_parent, nwkid_neighbor, "sibling") + + return None + + +def find_parent(node, relationships): + """ + Helper function to find the parent of a node recursively. + """ + parent = relationships.get(node) + return node if parent is None else find_parent(parent, relationships) + + +def convert_siblings(tuples_set): + """ convert any Sibling relationship into a Child one. Need to find the Parent of the Sibling""" + + relationships = {} + for node1, node2, relationship in tuples_set: + if relationship == 'child': + relationships[node2] = node1 + elif relationship == 'sibling': + continue + + converted_tuples = set() + for node1, node2, relationship in tuples_set: + if relationship == 'child': + converted_tuples.add( (node1, node2, relationship) ) + elif relationship == 'sibling': + parent1 = find_parent(node1, relationships) + parent2 = find_parent(node2, relationships) + converted_tuples.add( (parent1, node2, 'child') ) + + return converted_tuples \ No newline at end of file diff --git a/Classes/ZigpyTransport/AppBellows.py b/Classes/ZigpyTransport/AppBellows.py index d39ee3f99..6623f99d9 100644 --- a/Classes/ZigpyTransport/AppBellows.py +++ b/Classes/ZigpyTransport/AppBellows.py @@ -4,7 +4,7 @@ # Author: deufo, badz & pipiche38 # -import asyncio +import collections import logging import bellows.config as bellows_conf @@ -250,6 +250,18 @@ async def network_interference_scan(self): await Classes.ZigpyTransport.AppGeneric.network_interference_scan(self) + def get_topology(self): + return self.topology.neighbors, self.topology.routes + + + def is_zigpy_topology_in_progress(self): + return Classes.ZigpyTransport.AppGeneric.is_zigpy_topology_in_progress(self) + + + async def start_topology_scan(self): + await self.topology.scan() + + def is_bellows(self): return True diff --git a/Classes/ZigpyTransport/AppDeconz.py b/Classes/ZigpyTransport/AppDeconz.py index 3cd3f8109..59a027760 100644 --- a/Classes/ZigpyTransport/AppDeconz.py +++ b/Classes/ZigpyTransport/AppDeconz.py @@ -241,6 +241,18 @@ async def network_interference_scan(self): await Classes.ZigpyTransport.AppGeneric.network_interference_scan(self) + def get_topology(self): + return self.topology.neighbors, self.topology.routes + + + def is_zigpy_topology_in_progress(self): + return Classes.ZigpyTransport.AppGeneric.is_zigpy_topology_in_progress(self) + + + async def start_topology_scan(self): + await self.topology.scan() + + def is_bellows(self): return False diff --git a/Classes/ZigpyTransport/AppGeneric.py b/Classes/ZigpyTransport/AppGeneric.py index 9d7c57eb0..691030d04 100644 --- a/Classes/ZigpyTransport/AppGeneric.py +++ b/Classes/ZigpyTransport/AppGeneric.py @@ -574,3 +574,9 @@ def scan_channel( self, scan_result ): list_channels.append( { "Channel": str(channel), "Level": int(value)} ) return list_channels + + +def is_zigpy_topology_in_progress(self): + + zigpy_topology = self.topology + return zigpy_topology._scan_task is not None and not zigpy_topology._scan_task.done() diff --git a/Classes/ZigpyTransport/AppZnp.py b/Classes/ZigpyTransport/AppZnp.py index 4859fe493..2d55ad90c 100644 --- a/Classes/ZigpyTransport/AppZnp.py +++ b/Classes/ZigpyTransport/AppZnp.py @@ -207,6 +207,18 @@ async def network_interference_scan(self): await Classes.ZigpyTransport.AppGeneric.network_interference_scan(self) + def get_topology(self): + return self.topology.neighbors, self.topology.routes + + + def is_zigpy_topology_in_progress(self): + return Classes.ZigpyTransport.AppGeneric.is_zigpy_topology_in_progress(self) + + + async def start_topology_scan(self): + await self.topology.scan() + + def is_bellows(self): return False diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index 4c1060359..a9e1dadd7 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -479,6 +479,9 @@ async def dispatch_command(self, data): elif cmd == "INTERFERENCE-SCAN": await self.app.network_interference_scan() + elif cmd == "ZIGPY-TOPOLOGY-SCAN": + await self.app.start_topology_scan() + async def _permit_to_joint(self, data): log = self.log diff --git a/plugin.py b/plugin.py index b3acabb42..70f1b08b6 100644 --- a/plugin.py +++ b/plugin.py @@ -165,6 +165,7 @@ from Modules.zigateConsts import CERTIFICATION, HEARTBEAT, MAX_FOR_ZIGATE_BUZY from Modules.zigpyBackup import handle_zigpy_backup from Zigbee.zdpCommands import zdp_get_permit_joint_status +from Classes.ZigpyTopology import ZigpyTopology VERSION_FILENAME = ".hidden/VERSION" @@ -199,6 +200,7 @@ def __init__(self): self.ControllerLink= None self.groupmgt = None self.networkmap = None + self.zigpy_topology = None self.networkenergy = None self.domoticzdb_DeviceStatus = None # Object allowing direct access to Domoticz DB DeviceSatus self.domoticzdb_Hardware = None # Object allowing direct access to Domoticz DB Hardware @@ -842,7 +844,7 @@ def onHeartbeat(self): if (self.internalHB % HEARTBEAT) != 0: return self.HeartbeatCount += 1 - + # Quiet a bad hack. In order to get the needs for ZigateRestart # from WebServer if "startZigateNeeded" in self.ControllerData and self.ControllerData["startZigateNeeded"]: @@ -892,6 +894,7 @@ def onHeartbeat(self): # Write the ListOfDevice every 15 minutes or immediatly if we have remove or added a Device if len(Devices) == prevLenDevices: WriteDeviceList(self, ( (15 * 60) // HEARTBEAT) ) + else: self.log.logging("Plugin", "Debug", "Devices size has changed , let's write ListOfDevices on disk") WriteDeviceList(self, 0) # write immediatly @@ -921,10 +924,39 @@ def onHeartbeat(self): zigate_get_time(self) #sendZigateCmd(self, "0017", "") + if self.zigbee_communication == "zigpy" and self.pluginconf.pluginConf["ZigpyTopologyReport"] and self.zigpy_topology and self.HeartbeatCount % (60 // HEARTBEAT) == 0: + retreive_zigpy_topology_data(self) + self.busy = _check_if_busy(self) return True +def retreive_zigpy_topology_data(self): + # Determine sync period based on existing data + if self.zigpy_topology is None: + return + + if self.zigpy_topology.is_zigpy_topology_in_progress(): + # Scan in progress + self.zigpy_topology.new_scan_detected = True + return + + if self.zigpy_topology.new_scan_detected: + # Scan is completed. Time for a backup + self.zigpy_topology.save_topology_report() + self.zigpy_topology.new_scan_detected = False + return + + coordinator_data = self.ListOfDevices.get("0000", {}) + if "ZigpyNeighbors" in coordinator_data and "ZigpyRoutes" in coordinator_data: + return + + self.zigpy_topology.copy_zigpy_infos_to_plugin() + coordinator_data = self.ListOfDevices.get("0000", {}) + if "ZigpyNeighbors" not in coordinator_data and "ZigpyRoutes" not in coordinator_data: + self.log.logging("Plugin", "Log", "onHeartbeat request zigpy topology scan as not data available") + self.ControllerLink.sendData("ZIGPY-TOPOLOGY-SCAN", {}) + def start_zigbee_transport(self ): if self.transport in ("USB", "DIN", "V2-DIN", "V2-USB"): @@ -1249,6 +1281,12 @@ def zigateInit_Phase3(self): self.networkmap = NetworkMap( self.zigbee_communication ,self.pluginconf, self.ControllerLink, self.ListOfDevices, Devices, self.HardwareID, self.log ) + + if self.zigpy_topology is None: + self.zigpy_topology = ZigpyTopology( + self.zigbee_communication ,self.pluginconf, self.ControllerLink, self.ListOfDevices, self.IEEE2NWK, Devices, self.HardwareID, self.log + ) + if self.networkmap: self.webserver.update_networkmap(self.networkmap) From fc70a89736210a7a1908d171a16fadcee14ab271 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Wed, 3 Apr 2024 20:07:03 +0200 Subject: [PATCH 162/301] Plugin wip-develop version 7.2.049 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 6b89e1538..0202d6471 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.048"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.049"} \ No newline at end of file From f6580592227a58be7d96df70edbb9d10ce6169d6 Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 09:39:14 +0200 Subject: [PATCH 163/301] default Topo Scan Period from 4 hours to 12 hours --- Classes/ZigpyTransport/zigpyThread.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/ZigpyTransport/zigpyThread.py b/Classes/ZigpyTransport/zigpyThread.py index a9e1dadd7..686f18cb8 100644 --- a/Classes/ZigpyTransport/zigpyThread.py +++ b/Classes/ZigpyTransport/zigpyThread.py @@ -279,12 +279,12 @@ def optional_configuration_setup(self, config, conf, set_extendedPanId, set_chan data_folder = Path( self.pluginconf.pluginConf["pluginData"] ) config[zigpy.config.CONF_DATABASE] = str(data_folder / ("zigpy_persistent_%02d.db"% self.hardwareid) ) config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = True - config[zigpy.config.CONF_TOPO_SCAN_PERIOD] = 4 * 60 # 4 Hours + config[zigpy.config.CONF_TOPO_SCAN_PERIOD] = 12 * 60 # 12 Hours elif "enableZigpyPersistentInMemory" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["enableZigpyPersistentInMemory"]: config[zigpy.config.CONF_DATABASE] = ":memory:" config[zigpy.config.CONF_TOPO_SCAN_ENABLED] = True - config[zigpy.config.CONF_TOPO_SCAN_PERIOD] = 4 * 60 # 4 Hours + config[zigpy.config.CONF_TOPO_SCAN_PERIOD] = 12 * 60 # 12 Hours # Manage coordinator auto backup if "autoBackup" in self.pluginconf.pluginConf and self.pluginconf.pluginConf["autoBackup"]: From 53e578412ff494930fe8080e1ede01cac296d42a Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 09:40:23 +0200 Subject: [PATCH 164/301] add a parameter to save all topo scan --- Classes/PluginConf.py | 11 +++++++---- Classes/WebServer/rest_Topology.py | 3 +++ plugin.py | 9 ++++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Classes/PluginConf.py b/Classes/PluginConf.py index bf3c2dc24..39cd940bf 100644 --- a/Classes/PluginConf.py +++ b/Classes/PluginConf.py @@ -61,6 +61,9 @@ "OverWriteCoordinatorIEEEOnlyOnce": {"type": "bool", "default": 0, "current": None, "restart": 1, "hidden": False, "Advanced": True, "ZigpyRadio": "ezsp"}, "autoBackup": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": False, }, "autoRestore": {"type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True,}, + + "ZigpyTopologyReport": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, + "ZigpyTopologyReportAutoBackup": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, "PluginRetrys": {"type": "bool","default": 0,"current": None,"restart": 0,"hidden": True,"Advanced": True,}, "CaptureRxFrames": {"type": "bool","default": 0,"current": None,"restart": 1,"hidden": False,"Advanced": True,}, @@ -102,7 +105,6 @@ "Order": 7, "param": { "TopologyV2": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, - "ZigpyTopologyReport": { "type": "bool", "default": 0, "current": None, "restart": 0, "hidden": False, "Advanced": True, }, "Sibling": { "type": "bool", "default": 1, "current": None, "restart": 0, "hidden": True, "Advanced": True, "ZigpyRadio": "" }, "Lang": { "type": "str", "default": "en-US", "current": None, "restart": 0, "hidden": False, "Advanced": False, }, "numTopologyReports": { "type": "int", "default": 4, "current": None, "restart": 0, "hidden": False, "Advanced": False, }, @@ -518,7 +520,6 @@ def write_Settings(self): with open(pluginConfFile, "wt") as handle: json.dump(write_pluginConf, handle, sort_keys=True, indent=2) - if is_domoticz_db_available(self) and (self.pluginConf["useDomoticzDatabase"] or self.pluginConf["storeDomoticzDatabase"]): setConfigItem(Key="PluginConf", Value={"TimeStamp": time.time(), "b64Settings": write_pluginConf}) @@ -562,8 +563,6 @@ def _load_Settings(self): for param in _pluginConf: self.pluginConf[param] = _pluginConf[param] - - # Check Load if is_domoticz_db_available(self) and self.pluginConf["useDomoticzDatabase"]: Domoticz.Log("PluginConf Loaded from Dz: %s from Json: %s" % (len(_domoticz_pluginConf), len(_pluginConf))) @@ -576,6 +575,10 @@ def _load_Settings(self): "++ %s is different in Dz: %s from Json: %s" % (x, _domoticz_pluginConf[x], _pluginConf[x]) ) + # Overwrite Zigpy parameters if we are running native Zigate + if self.zigbee_communication != "zigpy": + # Force to 0 as this parameter is only relevant to Zigpy + self.pluginConf["ZigpyTopologyReport"] = False def _load_oldfashon(self, homedir, hardwareid): # Import PluginConf.txt diff --git a/Classes/WebServer/rest_Topology.py b/Classes/WebServer/rest_Topology.py index d73c4b14f..b12de5693 100644 --- a/Classes/WebServer/rest_Topology.py +++ b/Classes/WebServer/rest_Topology.py @@ -34,7 +34,10 @@ def rest_req_topologie(self, verb, data, parameters): self.logging("Status", "Request a Start of Network Topology scan") if self.networkmap: if self.pluginconf.pluginConf["ZigpyTopologyReport"] and self.zigbee_communication == "zigpy": + # Zigpy Topology report + self.ListOfDevices["0000"]["ZigpyTopologyRequested"] = True self.ControllerLink.sendData( "ZIGPY-TOPOLOGY-SCAN", {}) + elif not self.networkmap.NetworkMapPhase(): # Legacy Topology self.networkmap.start_scan() diff --git a/plugin.py b/plugin.py index 70f1b08b6..d28a7628c 100644 --- a/plugin.py +++ b/plugin.py @@ -941,22 +941,25 @@ def retreive_zigpy_topology_data(self): self.zigpy_topology.new_scan_detected = True return - if self.zigpy_topology.new_scan_detected: + is_manual_scan = self.ListOfDevices["0000"].get("ZigpyTopologyRequested", False) + if self.zigpy_topology.new_scan_detected and ( self.pluginconf.pluginConf["ZigpyTopologyReportAutoBackup"] or is_manual_scan): # Scan is completed. Time for a backup self.zigpy_topology.save_topology_report() self.zigpy_topology.new_scan_detected = False + self.ListOfDevices["0000"]["ZigpyTopologyRequested"] = False return coordinator_data = self.ListOfDevices.get("0000", {}) if "ZigpyNeighbors" in coordinator_data and "ZigpyRoutes" in coordinator_data: return - + self.zigpy_topology.copy_zigpy_infos_to_plugin() coordinator_data = self.ListOfDevices.get("0000", {}) if "ZigpyNeighbors" not in coordinator_data and "ZigpyRoutes" not in coordinator_data: self.log.logging("Plugin", "Log", "onHeartbeat request zigpy topology scan as not data available") self.ControllerLink.sendData("ZIGPY-TOPOLOGY-SCAN", {}) - + + def start_zigbee_transport(self ): if self.transport in ("USB", "DIN", "V2-DIN", "V2-USB"): From cb85792e5a090401847e889a7f3cfe9e12297baa Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 09:40:33 +0200 Subject: [PATCH 165/301] Plugin wip-develop version 7.2.050 --- .hidden/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.hidden/VERSION b/.hidden/VERSION index 0202d6471..2439ca1f2 100644 --- a/.hidden/VERSION +++ b/.hidden/VERSION @@ -1 +1 @@ -{"branch": "wip-develop", "version": "7.2.049"} \ No newline at end of file +{"branch": "wip-develop", "version": "7.2.050"} \ No newline at end of file From d47437855574e576208899400121132318a0272d Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 10:51:01 +0200 Subject: [PATCH 166/301] move an error log to debug --- Zigbee/zdpDecoders.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zigbee/zdpDecoders.py b/Zigbee/zdpDecoders.py index 285dcf6c2..7f5d9fdc4 100644 --- a/Zigbee/zdpDecoders.py +++ b/Zigbee/zdpDecoders.py @@ -379,7 +379,7 @@ def buildframe_management_nwk_discovery_response(self, SrcNwkId, SrcEndPoint, Cl def buildframe_management_lqi_response(self, SrcNwkId, SrcEndPoint, ClusterId, Payload, frame): if len(Payload) < 10: - self.log.logging("zdpDecoder", "Error", "buildframe_management_lqi_response not a Mgt LQI Resp frame %s" % (Payload)) + self.log.logging("zdpDecoder", "Debug", "buildframe_management_lqi_response not a Mgt LQI Resp frame %s" % (Payload)) return frame self.log.logging("zdpDecoder", "Debug", "buildframe_management_lqi_response") From 9544cf4baae7d88fca4e5ca1736dca92212fcbeb Mon Sep 17 00:00:00 2001 From: Patrick Pichon Date: Thu, 4 Apr 2024 10:51:41 +0200 Subject: [PATCH 167/301] WebUI translations --- www/z4d/index.html | 2 +- www/z4d/main.8ee40e8b0b699ec4.js | 1 + www/z4d/main.9ba23901ff72f37a.js | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 www/z4d/main.8ee40e8b0b699ec4.js delete mode 100644 www/z4d/main.9ba23901ff72f37a.js diff --git a/www/z4d/index.html b/www/z4d/index.html index 6a3112048..a75bd13ad 100644 --- a/www/z4d/index.html +++ b/www/z4d/index.html @@ -24,5 +24,5 @@

  • 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.d(s,{YJ:()=>a,ij:()=>c});class a{_GroupId;GroupName;Devices;devicesSelected;coordinatorInside}class c{_ID;ZDeviceName;IEEE;Ep;Name;_NwkId}}}]); \ No newline at end of file diff --git a/www/z4d/common.e1b00f88e623886f.js b/www/z4d/common.e1b00f88e623886f.js deleted file mode 100644 index ea6330d91..000000000 --- a/www/z4d/common.e1b00f88e623886f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkz4d_plugin=self.webpackChunkz4d_plugin||[]).push([[592],{62554:(c,s,l)=>{l.d(s,{ZA:()=>a,zL:()=>u});class a{}class u{}}}]); \ No newline at end of file diff --git a/www/z4d/fa-brands-400.0ad87b221b2a302b.woff2 b/www/z4d/fa-brands-400.0ad87b221b2a302b.woff2 deleted file mode 100644 index c740267c65619493adcb588b6b8ac7603fc88ceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107656 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%0D@{u z!6*&V0s>cowTLpe007hlN@)ZLwn>q5DSQO#Dj|h#HzAaS5F!X61PNRrF&UFnEM#r07X@l_U=(KWsKL&Lk^%E=Wlkl1(D{V$~vqD&Tf92*H3 zKJ%TPHm19|zJLI#ydJ1ag828)J!mp8)K*%&581S@AKU-v_BlZVe7`BXgMxpfLenP?n7Rym8Kv#yAyZ{D|f$#;OkF!+5_h{wypa0$(JlFH60WeMwxL{4Qwe^P%Qj}t7 zOgn@$?R3)pUc>VM62gdzLlmY&k{wd@6hKgvX|>GyirX$Eh>EqH>+%$&_g^p&+o`kr zZoKjAS@_0iV{`xB8*kj*g~y@W-P@~sS#BfWFU!SUXOCL#=0866*yzT?!^7{}-`I?r z?bgxRyB1~X`;pDF-fC~J*M-MnclX8{@BQ1y9wXR*;pVmH@hNzYA6Dy0LSSMfswajt zYI=hdRNC!Qh|`f(^Ln1Dh+wYMT-A%^iuZtMN?v=KwAg*2qQWz6aoY zIlKv47W}~4zz5rcd+xsLPJmex@)m%0JJ=@2a0rwEx*DLBLvsf3b00qWCkVr)5m`M9 znoTy7z0-PpRo3>&+-I1$51J%Roj+!9(x9VKa_SHwg08cy%>i>mx4jDtw40*JzUEPQ&0~*6ei;4S&;9=6F!&W0Hwhr(T*^eDUQMO}{9 zaH2(abu-jT^&2^7Nz&wOe{(BDfZIoVd;f@8PN!Gt z_SR-g2<)p(5Cn}h2$)ccI*!eI zy?%@Hqured;rQk4HmE(MVDcCFbT%J$J9$S@*tT_=t>LgJT5U`GK*LwzIpUHwchc~6 zeAxP})^${ojAbs&04S@X~9(AD(+dP4}i}&rE0Z7zV?6b?Tv`OF%x` z6Z<@T5k5nFG9VjdPJWa8XY$XG#X>@Clfe@y%F$A;@>y2Tn7(r`8u|e3V#MV_$jf`BZUtFLEXH^`<*)zacIGutE6r>c&7(~z#8RN!r zwR>?20FJ}KaS_mQK^lYG9)%!4KkPo1BypmJ=Xa$7Z~+?tfRch}wFjN0r4-Q^&ZGnc zby#$=j3Y_}fCd6^21+(uPn`VkJRgi4j#Mfoq9~4(U>p{JRCA#zQjb$aO6_~O;|9>r zGhkH8D2^f#3w^5sK4cIW=bUm1Mo>WktU=_0^Opcrz4e^y6Cq>fnFK&v*Fm7D3{pUA zE%I*03sDywk7{m{LhgBnQO5xccyl%bpKnr=boSl zS}DB=LMDLdHb86N4`ac6&-Fhs;DVy>WLc631VEHJ%ly-vM+|_4N`XKs+1;8V6@1`l znU;?C9Xv_0%+VtR{|~Rg`#Isuv_Gmkim;lLtE?Bnv~pg33Nx9c!`sG%tImb2!u#%f z@@9nN|5-Gf?E4_g*8X;eCm(>}@WyH~Zav-_+yU=DdFdVReD-DySw0@;8R+8|sNkMe zjo9yRPIn9VMnVVyl3%+D8*r602pQMKa#649YB?$=#YhU77HO4MOUS(k9NSxmEbY|8 z0o-xNlg~YJCh>f@jncv3@VZBye;)JW(qETFPNR4qLai4U%dmKcy#`?ZFN|;z-GD-j zL;+rQ={ii4ajW}YQrh??k%HfP!}WW6h?g$C^c!z5zVDsZ`Zgs6yTSN@JK;qDpTYAN zUb5QR9a1S{?OM*6;2IH=JUckJ|0NgB<7c1skm_wA&Tt|0kKG4C2;KIOS1{sbZUgEQ zDAKqgNL|;+G!I<4RHk9rKsYzYatK$BuU!4ql?Pi_K6Uj(_~go!D_2f%=Tci& zuCyjsuC%Uv+tmk;TkxrW8BhBq_Lp!4zM5>3LvjltbtU8ad=yzQh5;e~c@-2fey*5& zjD5%_U-O863(A8Z>ly&ro4||5%@$nZ!ig9cY5c6`eRaoz9_m-1$a;?1+%is&Pf|CX z@ZR&)w^QU|R8ad-237Zk6g+=N#X=er4G{60GMnbpJlRWPp3Jh@G|gsNnk_-g`B^@nbxe^zn^)6hMa{IDDy!j3a?Ddz zdawK_XUkzdwOSriY{~0@K4!CAsKZvShG$p# zyjs#*mZ@Phb?}q5!-02aND}dx-gt_0Q2+<8Dkj*ps)WUnlYg7q|A>{?1qHR zMWfYfEH)@g$v9(5QMRp|U&;f)veLXgu)DD_gGiXM;ojdgK0<0p3op9Pq4SN6&LjoE zAWM4)?HDiVuiHvu;Lo+*Pdt`U=stl^07yV<5u`Cv3Lyle478?F2x$#~z%I~?{rD65 zeV_{pFZZ`{76)7aK+ke+dw@bv28?OV+0h;NUMORH@zQS&5rBVZ&+-dA(R*Itov$pm z(8RLU(vxmSx7r)R}_0*=;3A&LA-tkKe+-B@Q$OCf6wE7sQJx3ZH(#O z%yrn08+#bY|r-LwmrNickRhp%$gSy6gRC_#AwcWMo7x zLd8G#m-Iy`Bur(e+wXbC+Aw70aXKO?)Gv1Xeb;ep z*qOoxS2jzt%zB(9%I>TlKJ@;0C>$PQTX1+>hM{$=+wXU}QVAJFQKUPevDO>(yR+U) zLT$8(ldS1_l#2$?!!r**eCCkS!!r+`o?1l+p+sH#6}%pPhI}P?5BU%wFp(n9(##>8 zRII^@BF-p6m|3c2lUZa#%$k?oLS}i2krAt6m-FR3wfKWqahKV?{8hauskp%QlA6`e zxP`j1uvmF3a# zt*hy`LzW?CDehsGA!Zp8f`nXq9zF!mkujMPGA>e4Ov*{=lgHXY{=N>vcpQrfrB%IHVrd!)<;JNG0OJ2WdK(jf%QWP+moH{j` zKzVcyOXSfe$!6Ye;j15jjsC3JvM2LWvKhl3!Q68DuRlNeBlgn@SLQZEzJMEQn3ENERJWLX=Z7uRFYZr0MzXAN9kwjwt*LMMA zob<|O%Sgapui9w%kqP67w8rMb6u9F11Y2$Ap~wuDP_9d5(g*fT>AxhAxFdd-GtQj4B>w& z%kHtMB~q}3rzSBzT(4SI^((zh#2?qA9cL}b!HS`$+@#pTI6-i#jrA&Yiq&ziU3crw zE(PPSmuGgnJqxf6d1JrcuX_%B-NtAnSQu<(yHtK7c)0bsUJbd5v*SA`5W^3Db9cMRb!Yg1fytKQqks63vo15FK!4Ovo@rB8b zZaid6tGMuCSPw1aaS3;Q@;g8A9q+pXR(G8I#`N3n_~>2lg7(ROZG81tLvZq?uLl2X z2w{BA<==9xeg{jEU|e!JR=0#S@KWYVoN>drlyK=UpmFBp?^A#j;N%*7@4>lqXFUJp z!_YYM7k~7Z-*M*eZR6y+h6MuTZ$`)G3LD4v`_=b=PJrRi`hgy5CIH44b7EDUc#p@*JQZk_pP?|81x;SBeu7T++%Q&Ky<8)UU zE>r!=?Komw(CqaY6`V!!_8pRIW73<`v9v&0nq``S{+LnPb6rm>bG9ca0$MI47YZp# zph|Gd!%%YJFs_sWFvfuh5M1MV0+A_*VhX6Fv2w>T20$szm?O9hLvFcHiXn2>GcF)R zup_OJ3XsOp-y#(rW6Tqj;nSTUieupj3D{&TGIWGsKvB6a1;_Cm&M9R~GQ$`eP!gDM z9fjaJC)6e`H^x!cSgNEz-|I}E99J+<54v7mN>Sd;;=&`mqSdp3Mz#^_p znX0&Qp)0B`W)(r->hF2H*APY=g78Q4+3=TLZmegt2H+f}u|hG5NVQa)OUfwK0NlJS zGf<`-P8Bv9lX0_w7C;#$q!(yApy5r7tK-$|#SaQ)LwU z7zBy?Q~zF|bM8WdQN|)?Rv!Q;AA-Fo1wby9P(@-Sp)gu0Ib-sWor;u!RNzO`>2wGV3a2)~|13$v9{7wwCMu$6JFSkcS3ZrQ%ViuZLIk63Bex)B@m=ENGWHM2`vOtL}{?JsLwK@!j+1F zMqbe8^gRHfJrITi<%m*CM4`Au$^hY@5}6Q;0!3qX`MW+AN^7`aQc;E=WUsOKoCDLJ z`lu1_ng&?Eu_Ous@LokJrAl*RJ1HeN1DG8n7ZlEHAfud1geYv|GLmQgr=>%tk|V4w zAS^jfxrXc{xj0Ko?a}xx8*rw~N5an$L=F@x9eB<`HN^ab5b%8*k;Fzt5B zH3rcbx7BVNK%^XnzJ~D{R;1fKd^(VV8ZCj4V**2vDmOB>P@5=<5|pvIG`W)C5>DGl zMk-|R)Y)!VNu*QJNABj@7h;UsRc3m4A^`^%$yV>1pngvEY;FuZluGz`Z#tdLha&{n z(aLf5&Zb!_os@ft;Jmk1gkf{d_XY19PD<-2nL}?r=tq%|5JlbIXf)bbEDyHROl+5> z+LU5Ep6a#n?%sN`v9Z0gH(e)$5G2jEx4hg-Jz&LaPl8FHVO3p}HQX7Y7GRKMQk7KT z=k^BaD6eXa!X9(6dkVIM)?CWaI*t>Bjs=_#ckA&Opx>LelPcR3+Ibw8on9|T@Vz|i zE0(s*cRul8ms^+J9UkzH<5N4sIa(*&@bQG0w_v=sKQ9V(*6rD2Wa+tw)Oy_{%OWW= z-vjXaon>zT`PxrF9QU?;v%NS5K2P%DC{BxFuhCr=NxOH})7gBvSRy`57a|pFaSIps zP6U_bp3_6LT|Hm+8sdU5Zr?IsPLILeeenDZ(;2{Qdc*azDdKc?{cR$RyeM#TKu%Gy zEK5_AKpkPU2pKbTaXAd4y=2{WG;IE#ZSkP9Ju=`c?yOgctNPA6e%s>?coj}(yUKRM zY>Hn>7&lR@DNxthR|t@RPincIkCmdXV1U3p&l&{AI-TBFFiJU7i28i7r!~M}uNXPX z$&=mBZW7jfh!8k+Hz6$UV^TU zJbM=pl}PwXXDbQu=us^WUrdU1fE2&zJY)=)NbwRX_KZ2@B!!@At(LIL8~l9ODFYAK ziNQgGRzg+~lxRQEmxP3c{a0vjxGYfpjalV|^DLi8k&kodGW3a$SBMsDS^Q9H?u~gh zkz1oJd1)q->6llSqFl}9%jgbu9~Nc&5tu;)X4qI4>RY>=hpuB_-$wimUKqghe1!aUuU*0pp5 zrxHo&=z_pbWKu8cd{xbYOiwMRm7$)J?}QF29V(F9;RGf56u4pnDrWIMuAn-_8C?xm@xu!#S~{Uaa?L2XS2fvN~I`cz_hl_M&2E-b($fizA@+q zfz+r?hEzF8tKAyJaR|V&C^OcwEQ+j>lKmA|h}s};>b)*3Nj8H}Z z3Yf952qS!4hz`rlrvNl%$_aeQd0;vKpsnLrAvj_nVdXOO_oe5$-Z^OugE(mkK=B)l zQbEJU2VlaJCwEL?Te?mLkcU!!jh|&Hv>Lg37^RJ4&*>_eF)=`6n#~TQx$7{BOi0O; z%UI|yP9JQBVPqSWc>uyNW<9T=)11wP${0oD%zBhk!L1)k$zGsh1xkO!fBBx8+sBd1gf0huulKo~{tuWQMeQ%@v`og+1Zdg z)^P*B)5)XAx>5u|n^kEGwoK!k3AzA6A~4R_kW(&|lv>diD5(T6#`x(tnl!nP3IYev$pI(|009Vy zO)iv_^(6yR=7!*T9&mf*kjg&=fg`2Z;A%U9ztL1cepKsagUdxA42 zl$H`vS>;fK8(d=%7?;f00EOVklv3tIoQIx6S%}JWjgVFYa8FRimXWi(?9iCr1R2OH2Jb8`{S6b%;hauS8y0ye!`! zty`IrJ)DKaR7f{*U^SKN(>ksw+?0ocH=VtBw7wG54^E~AOFo_LP z&AH_~8wk}%68OH|F3&ma>&LzRsh!fV<2d=bd8-Lv9Y-NLQ5aZCUH4va-E`z48f%fa zn*Dxu%k?)W$?n>zQ%CK+#F}a2SO9cAQ7nIVC1QiKKq<_DbKYk67|Hrvd3QJrhp_`N zZdLxWO7l@rs;17dqB}W(%_0vXL`MZ}pZnyWAPhUrz?UNxXR!Ig)6vN3wLvN0q!GKwp<9VJ-?|224#smXorn)0c5&p328rTaZ9Cfel6c&p@SKj+xP+RwwhC1(LQw6gHLT6-1&?WR-)S zSx~j&Zk3!@bJ&{PlUWY;D4L*W-tn2;J9gKF<}f=rztBc&5U$rsTo2-;0Wa(V-2rRR zw@Mqw(T2vZ1ILhNC%>u`$_t$xYuhY0RBTaxqwMyIB4Dlw{9j$ujpm`uj4$2B-y_C{V716wp#IPUz#)^ zxr-XU{xZ=-Ub_na0$0h)$g9a4$TyOYkmty!$oG*?69S9bbUDf==tQQo$*i3CFq_J0 zk<6wuF&m0>K`s}|X<@%%a*nySnk1+NP8~1Jc4uv zUj~3D7<(K5;C29j#~FKqmbUr@)4UO1Wsfj8dE@Q3-|@YB!`;!3jP?Kk9#*&C{qXGv z7e4)to#EbSSKWU59XITa;O2WoozfZ}-s{D?zXMY>;*61;{3OR$0=yFWiP#SYEekGMaN3==>g2^<)o;KkxZAF z-h$=u=XHJvi^8Xgpoi5oswLMQMh*eB2t#TqwFm?1&^s-qmeO_~sHK3r2!P+ai$HfN z?f0KMpM^XxPX2Qj{k=m0-ITMiyLai*?k>V)a>iw~w{--^H1c*UF5sUoQvlfBqyY3X z#qBLhDZM-;ICF~9%TXZInaQ4|&cMx5hu*iVA|TI;H|>un0F&|ld~Hpmlp!MHj5FU$ zlce0@r5&|M;B~|$Q`CJ~Nt4lJpL+;=SuKkKx}IkBDz~TVs+#x0Ww4x-<22@zJkOi(-x@95ZcnzlU1+viP?j{$DRjHr4LtcXG!||FquU+d zXMM+U)nt7wN#GWE7rxrs zSHClkVkM-4lmVsmI!DTOd;LfKN5gpSD*QZL?a!;i34}5%Wn6}JPGuR&Ft5Whg`YqE z_K(ByU;Wk34+ck%J$3}g*T@*i!w(N8U%7Jf=TQV??HZ};AC~`vcMMl!lr`=o-$MNH z)XY=^)dycH`_t_vjH9*~|U1 zJd+$LP5t^j(E}zJx7O2Yiq03+8Q`c=(v^wcpm>f#!-D>u8AlRheY_*d-Z*dk-^xGC2Vjn(3nq-e$A}`4Vk}3UAeUFJNNY07O zYH)bvq~yYiN+Zj?l$_^HWKP0Z6~93;T&uFY_xRAia_6+1l*Masxw^a4yAG=~=XJf# z-K!rg$U3bR|J5hA-=SJ`MU^*SPh440|9Ic-{I`xbMkW&dD*9YR0 zj&k*p^XCHzjQ`q>49=f_+a5Ox#d#gpFKXe^-loc2L9IC#%8&_U+>KX zUw_rMc~=Wyy2bio4U0eUZ>+_ zUZ)j%HM+|^=0YZU1&_aMSnprFxL*%n_RKRUU;g-a+!X7e?%s4<_u1ij)mL8p;w#fH zeEj2Im~6gEcXNWV>RX){pHvyFIO&1C=naboh3(wz!$zhL( z`hCdqevGRWbxd0L@S=@|kjVW@k6Tw}er4_!80lR!t?K8EJ}UvJ=3FD)qx7>#KSSwf zD4nN{1)g)jrPMl_#_?z4__HxU{8??jF-f;J91EazzvH+Jcmo0XeRpD-O|~5iaB9tU z5Lkl)B+0>pc!rM|AW%dO&_R4Dus@{u62zAv{UZuJEtUIw9Dx7cJ|e1)&Hpg7FE!?+ zHv6O0c`5(BuH$gdxzS32R53%K=KxOk9EUO~bq}X3z*)ixA;)+O1Hy<)GQP5e zxZsV`A+ZHBoA-*1$Wsz31yjm8|v|3Ay;xvL5 z2qDF7&}x=2X|gJe69lq@g1E$yN&<=TQZv$h^*4dL^zVUSKI*yy4zHvMpb@mXZozZao%+B|Deu9)8HuVpv^Uj4gU#GOy z=mYfgCSxw5+yAy)N78XF*zN0NM$VG!`GeWHg%7pUGR$+R(nF9{p04Vmmie-C+QQ3K zStqgx<9p8%XJA}v%DlBF`jg2tz`p_T#;oy!aW!U^iMH~DM;D>QxLp^VSrh)Nn`Td>r?8+j0Hh~f_G%OU(#(@wZBEF85B|qQ5Qksy)|20ce>h1AC2{|w%;}LOxt-*RVp$1t z`-aZ>7`GQ|zxX7X;Th@D`kZyZapTx^0GkKv>j+nl01wYRRE{V8emEHp z5c9m*lwrR=nN03GI=K^fcaD!w-?hJwxW9kb>Eq*_U4;J5ppV$?ZEQ|r#|3bmxa&Bh z(J8_RAq2hzSIGV3CFGmP_Yg9+E}j|#ZX_Q2(oIkFaf+Yn%SFkFS!F;$Ph3%s zO1J<gSrWiqeDeWk zk&@Qwg<)tSsgzC*Zoc^-Ray$ireS#UgWKDChlhJRJ9~$Rdq3^Y+i0BGsc4O;H7Il) z)DTmpVI<%4s3Op19vBM>J#YC#8nmZ1C)W3Y)}WL-exlyzJd(=VewgP`U_&LfN}=9Q zl~%&qG|Kbv8}<$l_m;=NHm1R>{}r#mw~-f;SCVfhzd-&w_%MT8;Ki(^db4@09o8eA zgf@fbbT*m^EBOmaES-pBx z9ASPrDJKHctYW%Oy~@XL@_$n{>pGTY%qnGk)t~q7op>z%Q)&Fi2We&1q0Nb zBn{FZ1}6&RTytPi)LEa;fkN!G_HcXcMX{&DpzFCV2UM{&0A3vT+5*s87clVyk5cQp zaT54GM2_PM-WYFoPW}l1rRRpRr*xQ5MrAI>;&|n#o55?T;{;Z7;X43X)3ua&65tOI zI_E$6BI>Qgi0eAb+}pH(J){L|IR3t zrs;VQTC06ywg4fK%6mP=j^helhk`t700P%RssLz%DMZNyrHB$JD9S=9^5+aoY?F3` zuoOT5jr_*{qLeabIM;xl;tpjN;C%p)hC%=^ZnQ#_Oy*zy=h#PEEixlF-r=e~ENu}? z`>;GMjVwz59TORrVK#VHNKtZ!7OiSJt5e6d7aB-Ki3i5>;J3fImDnKgo*ZrVM@4U- zq<)?;8^NQ4wQ=)wvjNcUZJ&H$BxMkUA-?;GR%-pg+r9bLo2?XZ!)j#}1K`EJ!zpFf zdaix=1Fq4Gwog9UgO3YqRMPM7?vpN5Zz({>M+*94 z5d^0A2S=v{APN=XS2{@Q~tkqmCv!`N85jmG#Vp9~P) zJO0-5d^`?PYvRK~6Vg@2q*?MPPM{9XnmEq{_S3ZFIFHAFTA|!l9IBvcUaom0>n%49nn;s-V z055$mcdQD6Zws0#gc!a4rP)Y1{Or_xXf3?->+?7gN^#H2#}LOI$q3uMff)UB!}np@ zi4zF?{OQzlMGy$r%{DyWYwn%>EtFUVd^GU$r!(JYN(s-+H(bwacN>jG)bb9x?feSelSZEfCA)EL20T)f1oHBvBY z`5H+Hd=yz~Xqsq+jL?Oj9Hz)UUnxx)(~5FIK?de)uNF!+8rI>=I#M#;Y;tCFF%n>QcavBma8psM$XEcw?UgV$`$OEi#F>pfs<8f6bmRSzXk&@gp&!7Bk=T`?0o;#oZRV$35g|W_>=ep@5e_^I4f1U4NK3s9Y zJgI+w0^{$~#&~7GxU+h}De!QyxcgWkpxGU73|%QjyFGHpw~r3+l#_S7^M(ULIDu`P~_%&?7u#Z|)l}X7Kc)1w$jj;41HFzzPvXGdJs9%^-d1C7o z)zv)}ynhb>I*B&MMzLi^`>#l~)=m^zZjASrsn*)Yk>#L`_pSNHdNr@t*0RogV?qTdS-2`bOSro&3wrb{eG3HURXz3hBA?FMQ$obCjMt|H3aq z5JX|9w6D#}aqX|QTb?IUzk#T!k|OMMdW-Yt7rjm=6jD)**zi-~d9C)^#_sOM|8|nV zy6j@TME1AW_m4L>5jQuFkGD4QTKHjKnYgGU$O`Qcs1n8X@c9$PXqI2RUY&mI!B@Fj zRi8~Re0 z-p(OL(ll@zy6k zzB{U$=LX@}$#vHoWeweuIm<<}pVAE5NeXAW(BzXoZ|lZ}D!gvG>y`Ih*R0p?-t1KI z#^LhzQFY<`1KTj#Ew?w;Iz@L)W}Uoye-RbY-BBZI+}QOyLEw&@;f|T;@qym6vtxI| z+kA~UHWxp5%3Fnh%O2A&gGRQK?K~FWXK%Z=d%krc70WT3x&w{C*q(Wcm1D zG6pCo2e2O-o_TR9B}0_HpX$jr25VW~YHg#|j&^+MdjV$_*WGN0+&6(qoDFcc`|RhM z@A$pP+0tpZi}g-dt<3h;*|XbQ`sAF?F|?j|-sAaomu|m(^>?Dzn^))fWLzy~-?D#eI4b7zo2z2WND_W}3zt^=sJ*_oZM>z({^_~-zVg0!7oaw#N9$XD&@BbwIliOaxQ;W zaPxb}nEV~dx4vJhxs>9RluA6t#luQ`hfq6Gd<4Invuz>HanAXjLfpvtH*h`@@|O|$ zCxv+H?;rsGP9ZkGi}O+lQFG4u!$Mro#m6~c6M_)J2q7eXn1e#Ho97C)283o8+%xHN z03J?e0OUX$znA$cukU$)PK;u1{May)vPqL|Ogp0^IAK-82O*4_t%xA`aYi95U@(}y zoaK#SKhMSKC-UxP91Nzj!2tdrgi(u8Mq9B`Qb$oDq}I`-6@~DHIK4PvGvFI^y(Z5B zJpG}jg8|+)%u;|T?&dEoJ^J*NBjuOx?6d7K0;{4ZiItL+QZ_({!uDr}X*Ol@IbiTO zH)SoCknxD{M4>;3VyC_Gxk><7bQu*PmHA@^Bj^O+;c_a^N8mbSVo#KY#+A<;=`u<# z)iryqZ1vV5#Dx~M1eJmIpmWv8#PlGjJ&N_-$)$TOuB7x%jqy{)A7jf?ucot=@j}*@ zAB1xN!2u8$XfRJoj)g761t2nuG=_3uuv-Yjj+Z21z@+u^W;2R#)$Im>?{O5T1_Wh0 z;G8l50IqBeC39&s1wbVPXKx#1kYtBtR2!v%Dy5JK&ug}u&BzfZPXTZYs#j5l0)aBu zwF?xWL|_IQ6zcW(6ct)*C=k($06f=m0h#68S{Ir17zN-!ne*ja9Yn@lV?_2s#u^KX zgx4Ivm~;`WrGSW`41CuG3RHV!U8cDRQhKhn6tad3S>DnSUEc#@fv;73tlk~E4mlfuBbQk;hhnM>)^r4&I4<)mDP4x*%h4&@x-z6MlK zrKX+5q^T0Zn6B$Nz=V>lac-oB0iqFzOnV$rQ-c;sTv0@!`-DJWhx{LMmu&>{)E5WG z5c7Oq)jmCf{0L=T)@A;fXAkl+ugfFogUo%%;d$OF_iqoC0fGs(3$=m^kL+hMmB|D9 z{#*SYyz^79efmH8Z~5A2w);z4FLP2h={i!m#sKSdwr{;SZaNIS_>HV=uXXT7?(SBX z8qvzUIeOXKCO5ut65ai#{U>xdwoN7+l{5&Rs}Q+_SKx6j@8lg;**1QbTp{lzA16Og zevSNLRG99l#1%~Php7FmspmNWS9emHUK3S%1h}oM=ntsJhjd+MrZZWK>H-3&DRO-9 z0197A>m`bhg@&)6CbG!I0n87fNb%+)RC&_{7;3S%!00Iq2_u$yCymMoBbA9%8S)w+HPOde?9D!1G|M2kjPm*KhT}^I)X4D-h2r4-a1^rEU($ zUF9C%Y{++x~6;073glZSnK6rSpe*4Kgqd0NlEzgraeR^|K zJ__QZfIl9?N5y2kT8$@yjYg;7Ib*y}b)I}H8;wpSAE<*!SD?mPt5chs(*KS8S^MvZ z8Pb>KGDkpb>O2ns_Xhmz-~8GA?|Sc3_dWHVdmgy=emK5Hu3Y(}o!8xT(>I@9p1y5X z?=AT?5dJJZkEA{J>#dP>vQ4IBLH1*g4Q?X0k$dB;zuPY&uOe?EUr9*5s*5ZymqnVS z)nb_!Szb-{;3+6*!he^i;unJHP10Pvz<v%yu z?%!>i&NmpxF`qSi&RKN{@#HBt3|)9F|5pFkU5`?0#zs>b=sOu@)QLhuiF@rTz6P$6 zL-G`PFCif0OjMF9J`foJ9|My|a1ZvEt9q(XLGHjd_d(>-G?61&W^y)46WGaIq;?le z@9%nQdbpWX(+Wx_;!%`C(11g?^-u{P?uQYO=iHpyZ*bFov*~H)8*R`PoEy_>&VT}^ zG7612g@6NmKLb56*fD@%1JUsS0p@WI8HXSM-u;crm_P{0xTGARuergcLhUy?X|L6C zwF6&sb};ljF61!szYrpeqfQ)t!Ph?J%sQR+Y&Idr7&@Lb7pzSw@9BU>f*3U@I^LKs ze-MC6tY2dat?Vr`FiqQ~xR;PR z$D#f_mr2eAO5v)^%WOt0ghN=oK76@YmNjPKp05X2b&hbj=f|!-$RrmsH?`2~?#C`l z;Z{vgmf~56D(OIx4)|b2D4*0zQJ_)mD>N8pl3A7yqB5cQQ6|uW*541B|Io|rN7qmxy=p;eNSQsQu=#Scg zx4Z5+tC^z@_O&>3THyXZ091<%XY-qGn$HpE^P6s(&#(boTj$PgZ6R)LojbR+1%Jpm zWt5r?#wnxJ#Eer$srhY#F4sI_3V{j$hKy=T8Bzfh0YL*rWC9pKL{R{OjdXms#~dr{ z&AXJB=W-!qR5B*cGS1P5mkO4+(m?JYqrupO;1j-Jy6E~~rZP_BJWj%XJMu>Z-;UQT zFDD!(6X27Qn__Ie{>Tqoy(o_IIMtr(N=a!P2PO)7&A{6(U9-P1>fDiJm#<^jUk~)U z%S;}fmu9hV+{u;~G<#uWgE*#CO4s#t|EBpIH`S5m0Q31x=YGK!YYr$LOs00Q6rt z&^l7!`El&|pp=eMec^&mBdrw1ei*qfs0b=QiZF8$#AJK~S{Z~CF$FYA!_hcFOq>j( z$UpfN@Uhh#4x26XJr9!Czdixa^XaJ7>*qQ8KnNj%xYvFG{tsLwGxBosX7bhKL)3@BLNKI21T&2NbEqwL8C_gx zxvH{0z#-5R;9V@bOyg9G$x`Y8A{mqA@@557U(QUv#P|UF9fR~dzL)>YVxCF(S-rV+ z4;E{?dqoAvS+jKjh{hb0&y}CAhxp{fD70IE&z&ACB&)87_IWWAnf&;&BzZr z$gJag287^BO6xF?GLDA8I5R40rdGn&*eIf4ZEydn(eCd0db9vz7!|@W9)wH^3e-B? z-u~lO3YI(;UQVaovpj*x` zOBo0btkoI|=?QT-9Doqxwev6Vt;2u^L7e1q`xFG8tEC00gli+M8Rrm&Nn(IIR=Kh9 z%Elj-(~gvLMkflHC!hvHI;ALdq3YM4d|PmzEG%oFb-yjL{U?%SH$>&F2*tPu}Z! zU)G1Ptl}|H)0?d~o6gRBh?AP>jA$lR&{BB=v+3+JPVt-c@t(Rx86$<6&JIyokkq86 zH(Pr~rxuyZM*B+6>cvfKVIKj!q2+*UoLh(UH3a4iy|Ch6U~8KNd|=cNj1jo~wdmT~ zX7Qa(YxV)b8#)|d%(&w)J_g{CnXVq)K8(>Ewc0%EN|$wLAyt^>!wmj&>z-47o@IO6aHBCW%rVo3d7mrM9hA zoLZGCCyAtLJ1OmUY3g*8PGU#y1VOVA1VPYf20`epyLmAQ{6)SlRx43v^UyCQnYZC5 z<(d~Pl2R;o1&Ua(2m}gOcRJ-xw+DH?CL1BA4ihOMgk$^p@*R;a@>22!LgL)?<)V&J zI?E9eb5&8q0dU)_p3Fw=T9706Q(49ytGN$pzeqpq>HA{* z(o>@md~w*ja1o#=`#EaR7$l~clqRsXd30yJyW1^V ztzZp@?!NPve=it~PTjt-enNg3Txhk94jWD2t#4HEwX3iTSBWMhU(za%E1DKx^~(Cr zM;BjF9e)Zo{~Kf{pZugQZ2~!iSKtCsTNP>RK@{julV#HhW(6>_vhC zP!8B^_IjyR3Md0$45TuS(g4O}u{P*2I{u~e5Jufj6haFoW4Pt}p^-n4I9{` zOY zaKSv%s-C6QvffFiNOcol%COsQG`iEM0eSK_z(7bAS1VU*I76iZDG;R6JR$!=m2s&O zs~NM}6Pzo}xb&2HFE~z8rQOtV;6a>()6}t>kgr4%KNoHF<2;Ml{qs)KZ8y z#;epvOR6ld=F9pgf#0W3s}MA@c)Qpv&*ZNfYe5WSV*!mdNEv;1bF#74OA>{!k!HY~ ztzy)N@GSyt4~OmSTofFAI8RfCT=+rvYy4tun58L2Ydh!j+)1?Oc>p~CV|>SR69mZ$uvu?7t3;16?vIf zaE8*DA)x>~fYV>(Ddxlrlo&D{Z~%TAK352Ka#~rBY zm666Z;u@m?Vi`wLl6Ko}2YSfZmu{Z|urb{M zKU~oiApJeY4(TWvDH~II7BNPQ5%}6I01h}$)XBf;0Q4+nhZJrCxCMY=a3=|%0ET!T zVEAR&^8lKe^8n`~V4BJEk_{;xzA$(m#YT225F7wVAPNzYY6nnCnao$X3SfSTf)b1x(y`twSsm@?HFa__q94D)-v?P0qW zFbb4ORZnMqIZYIqSDDTVa+j>>ojo0%qGi;4{1*1sxEQ4@keOK zE4r6y_Fx1cc2Lm7O+8`kJNB;VU?D1qSFP&FE`r3^z<07qnOzH!Cf(jp3dV|lKTU+t zfLd?x2WQ%wreM>ANYZ|PNGVb&2VIQkZ&YYN&bQlbfM#p+J)K7GI*ciR;V8+4cvh)A z7e>ln)=)}HBihEXZl344YaL@8>t>Bc=32-6gj8DQ4W&FOm29L^zbNo}J>P%UZMJ$y z0rF%tM39s@4Jk%lpFx@yN*mud&o=u}=u##SheeWe-VA)-_kA~b2l`H)ccjSUVu&DF z#JKT2qvTqe0p$7Qn_|}maNRh5J_hiSa$+~9 zUP|L6MvUVmP0~04h?69(TsO@*b={j?*L5k+(^rQvKpY-QV_HZ7njNZ?8aJEr0y&2|yh7Vpk~L;G)^3Qi$R3r2vC|e}L!)z83_c z>x1jYvFmOWw1I`cfLGwtME24L86iNOoo~B^y2=Z_2YEgAA+O==cih^1WAoPUTHnBp zyWu6~dy;QInSYP@cnqID8QgIPJb&_iU-eac{os_@3;KE=&r7BiUV$6PE_slABl!jL z=j5*m8S~mNSHKwH^T;Imll783E7KyavU1@b077FF;+R~}O2o9kh(|Y(`~uolI2oN> zl*?k0Gtvw93lJy^Cv~+fMD18xmIj6Di{&J@Y6n}TT(XYO>Pq<`rgE>%gZ)DSab&fc zF0~5Mk#Ir5FWa8n3m35P9ljhgK^{<1}@G zz#oJGxNdOrtrBkfY)-(9M8pVr4j6kzH+(G^{vD$kMqx0;uPp#@T_4a<`iDzg%;w+0 z2OsHW8D!b0*Ycxqs2&3d!(mV69XR!0ed~l%+Q6oDTz^E7j(o>)8wgE04IS$%DWL;G z>H(mzuG@*wbF3RmC*gp9=zs7dHDQY%0q6wM%9BxO->x>;C{>&%kbbUB@gQ(zk!_35NlIgz7O z$klSu#mu;%YH~8;)I~JSh?_ax=0VIFF4&})8xyV+b$2HR`){=&%SDXFsL3y@->a-< zhL<{5bvmtArvx(ihG5UAQtT7TSk2|6Tr6MlvfzHG=ktm$vG|lzDhAVhG4I{0YFcLy z`BxQ_^2h)wWG>1@J)KS0ou<|diMua2^XPmc$&0|$3jzyXhcYPu!mJTRQnov%Z(1y@3H-I9>IMN5NGTc} z`2GIowA0nz{;5kF<$8b3Sf<*YZsGzU_=ADxDCG>gohSrFDW$Fz6a+U)#!7Gw0E{|P z3JM@%S8G5<1)^Yr(wH+TOen00K_K|XAY%fcBXp#+V^ZXKx#7A%P#E$P-16;T_OQLZ^!Lh#b5f|qU3xg<$ zTPBWL&0axiBkOeYhD0g3qD)Ao1cxBr+}PT3oZQQ@?x@{y2hC>eS^yAf+UmtIRj$)+ zcRE383$jSzcfu&t5;1qJbzR3LvuRjBG;6IaL)SHyGbJQrsnQha)`i#dd3(J}Q4FqY z9K=S_ql`(n(IrDKy;t>LcEQ>Z2yvpm!0z7rg{`Aw&KmX9l?=N5b zn$`Dw4_tZRfs-q6W$G5hlP?TD z{prE2v(_ux)35sRhaURJ8&Cf61uuZ)J z?Kqz2I9hYgxmE_y@jORXA(3;RF)6h%R%e$7L*7GMV=_{B?1BFaaPAy47N8M_XOE&d z597E%I6emWzYk~t>j0SBHCPL#D+Cu}B8A|LGY&$C$za_b`5pA_=H&(Y*ONE`j6S)! z`ObH~aBJ&D?|l66cd{#2o_+RN$Eg-rEWVQD1nwoZ<9Jq^rENFbT5ZITJi=)Egft#w zlqv*Q@YcpV-m%f*!VPk)jWW+j_PJl5=Ww2 zPDtBe=n`uBF5fB`ixj`&s+_oysWe13Il)ySSIBOe+C1Y!4GO(SJT*8bYD|jBOqc|Z zpa+xgP82$}myQbSkir|gtZIYuC>bDp+nhQm014W-T^DGYD9eB| zz$lW4;JB^}S|NHq2O33M0&vxAc%U_Kp_Cuw0bmik5OQcXDHsEAL&G^}kb+XB3J7ps zp1F<`2VxleK42sF4Q|RX2nj|hU5+%ZK}v?!;%OR&Qi&orRlH#g7g|dRZvktiux^$| zG5D=E{XpiSCn*Osw&^S7dweI>9E)~*|5(AbtMDqg8q`Htg-W3#ubSmC2`#bQhj#k)iQBcb1 zo<4o!>C=6memmp40Sz7jT|W$P*m0;+A{7#mDn(y9{^%$@wUcc$n-UORXY;htS(uC% zqI96$GbU+zgHGFZ=tLKo$+{>1e?%$IHh&dSPJC;RgEW>yWYK>uDCIPpj#BW(SG?kv z+B4THZi?$Tj)REkTE}%?yrb*b<2#PyTu&M2jBYppPXA+hkZs1P2>^U>Y_n0`*cCGL z`&pNEOLr&X&LZbg-&%ll6$GJ9l1W~VOL4a6=**7R;|TrmJu{;ivJ$Vt8{sP9#1axy zPjq)?vMloY+rRmNvu7XJ-nsbdSHjhkzj*f9`|tmYzbH3_&)^lfNJ4FaO)irs$cxFF z$@|Dx6B2tyZLI30V5LmuHW$2Vm0P)u)-tX6BA@307z-R6Mid6@oy=5*&B@|~o*E`u z5hYEYNbkVjrI2Nj9zlljVoo6^d$2O@H7*~jW$|5Gu9Ie3xGs)H575cBHimP@>W8LdObE54cJZPdU<9v z=Z*z$-2ymHqhSo^W>n-kK%S4*;{@zbgAl&dp)Y0k9JThhb){(>ZDvqW24Bi zF#J|R2oQViD!dM^k|`naDxc?BzC6`wV{@A(o{}^R*HJ|4SAPhU5 z!JymOSf3c(9S-sg-kcj9_<7!RCoVT1DQlQoR?Ah@y zD47+zyG4P}>1=Ln^{ivp<>V#t3E->YZDfx;P2NVnK>i1G;R!+%Aw?TESJG*9=8m>t zR7{HXXidsR8IPbwLHGGvFv)TL$Rv8^)?&GsEvLpH9m#H9Sx#bWw~RY7P@P6SIt8-4 z!g(sW>qMOcv?jUfl#B5`*|GMX4`N@g5Wh)Y7y)<7_mx)YNinnJvn=Cyl z8MpTE{9v#*ZME*cjd3d(-&>9+?G{1`Ab6{}QQmP55WbzIA&0Kx0BJRFV;KOnM?KG= zaR!tkGPVbpHgh8Yxb3GQ{5Al1o)R`|0@NmodHhQb!Z0?H(m0Cqh+~{gS}_0&jYE-A zAqognMHEYuxsIbWKO+pKu}Pd^eFW3q*@X~cD5auO18|B$!~)=*aiZ1P#T?53yS>zz zgt(OoF%Hjk-SjwHD*%|3lnMj_N|PwOSumtR^nwPAL~4czTr=7a9rvmMlV109eY`9H zWOW!Am7sqw&`N|~nd1h4Oo~q0Xf}EhU=zW|W*7v1AD3m+^Q4s0^ER1=Y)3(nq6{6d zP>@P1#W*kkE@I!$jAqmaK*l%+c!?B=Y+`$l2Sar+34g_6kFdm)AE`w;{rH?&0u7CHHCp;1 z{T}tIUWAL0oTeg$fMHz@a8}szj6}=)Vb#2vFMpie0x+a2$n*R1`R-&kolTdwS*A&v zoY(Ek>1;Vqr=fYH^fqTyj<#Uh_<)$s&_v(bf=SL#YdT?}jZOjsbO`{!Cm?^Kbt7I( z=zf6@%Y^WDv1|~SHi-m7XniWvV)<4G(?oHm+o1;^kuvmJo*qeIjircG!MeOm+kXPB zgCOZChUo@+IJpdGmeXc~bBHZ4kVr&l5Jpd%F{v;z15W9Kht>H2!RwO?t? z7^eWZx;QA(lrsS9B^d_&?UGZW=O~m8gUH9JL}T9*LZDFR*C;p(IKcmR9KqMn1xP*5 zby^4p(4&AB8B=*d``VY0Qlpfj?-e#qY9P(>Ny#~5)Kho>T)!p(VyTYKx(>w?CDYwn z1LTb~Rg$r%BP}U)T3!u5xIl$t!h0Q^8x zY7@tot9hKKEyks?Jwm+XOU9nShO%sfEc05z{z`IisJ{OtWa zd^_%e57Sy#mDZIkmNDILZ3VpJee?5FV z1Yzssvm%f@BwfhupyT~6uu4KKrES~GH&}2`A$OO z81jSU0Om_YmiFaB7Nay&!zWw_<(54;u zE7Lsf7}3c46tLYX6KXBxgJsCraGWym^JWqN3qr-!$$x~6MjQj(z~*qT*9YkL_F7Q{ zVbn@mlm88lQelT8uKi3dj41teNxW;+V0s@*h<;LA!m zj#f&!j#B0GFd+@R0?))KHvba2m%Ns|gM34tFRfHNkhBU(pd3^!N8z0UJqP< z!{!#i*5(b@Kk&nkuTP60$Qk!IZ@Mo3im{fW8O46WnCA^H4}W^Bg-Cf7p*groE5Xaze4UT zi7z(TJC#$=Au8%yFnl^BoQAWT8`k#H@!Hl6J39i9u_R}Rp-Xi=96oyCXc#n&fn7)SVC$nw!>G_;Omhk0wW z(*ZwBclN*V7(Pta$&#Gs*MvB+vZebTpj1F2K&iG!u@537@@2p#LEqBn;z9#7AN3vT zDqGU$HpJiq<4#-ac6;To)`_Fk{ZQqRNfD9b+G47=`bHUO8+Uqq=ZaK1$o|E z8x50=(Me1p&qw)qeD<)qSDJ*eow+tjp-z)tFAm~l{94v%wpvPc1EVQ;p4Kj+%UBdI z1i)F(jiUi)f`_iF^zI%4ru~D1Q>WXG=b6ZDcN|;1=*~OJvibZtj;7P4?+voNn=^_( zet2}e(!B?-@_RNpo~&vQVIb`eOF2ZXW)B{PJ6P^ z>j&XxtDUB;R7i z3L%k#kjimnAb8-r8;<8vng}HT7!@3zureE%r%b71Q*F!#6#!*Qg73J1A`tSRj0A}t&v`l2IAO31-=vQUNHHS!;ob#}yjJv_S}bia^mmv%LkBx^Ay)ETD+S zYnyvkA?vK!T$dB5AN>+o;rQ+9cK<0;R&5Q{l+&wElhu<9TmlB z^kx_i>;3C)+^^XzxeJ5+{p&95?~g{XLk|w_yyx^O3iaxd`%ayTH&NJ9mgi%x*uQMK zxdEA0!c1o}L+ho*a#Yq?mDLN&6Wo+2rM3s?_wK<$>h_^TrM}E^&mt@Mz`1Ji^r?Ff z%Q8;j5t$@ecVjeace+#}QqSGle*9{0Z@TlCilewQ>I_C%rUXxnwkCUN=*=X{Ow(G%U(i>&aOhrLvktAF1!!SJD%B?9&$cCv> z0maPf9ZjEVweLNB<`{V4x5#zmM)ESdtHe1_bW!I;S|w>B6$mjur!<9J&Xca;d1X<} z>S|e_#HXtvD|BYdlb;^&6_Rsb{S>XboW6v8+neOi+he1Ie^}C05*&r?t#_FjBVMa(Abi;6Bru$A=RnVsNdE(Esl>5&)or- zB$LUh`%lwaOpeZPc=-J23 zz13RL?;)N#b>E=9v+iW^cFAYjB5`y(IXel@kuP5sf=7S+$AA3C4T4_{7lS+Up{=dk zH#f;O0ceG<+Fq*7CUr`EsE0$BRROg;C1keGWPN0#}6ybLM7EVu=H-|~CHNsxE1K;#y6Cl_O1*fy&X0riw|J1$hrhH~> zp9cHnBDtNN@vF48#Hz#jP_0O-4!D-gi)95q+mWnR$kOq*tWrDh7k&Ny{(y0$d*#w{ z88sV}HkuJ6F>udCC|+}M)Gm#|Iq!CINKf?7a^3#^UmN#j;HE zS#<=Z?B`zd>NyjB@b#UX`@Zi{-e`2o@c8K9!ne$>gIB*Ax)dk4EM!UBq#O;5e?!VJ_nNEZH!xeBZN? zrcywj_51Dl`Z{8op4yF~z4b6;47O*pZSfKLy*iIC3W(~$vqhfe^@5nw(CPrvLZ)yF zjF@?gS?1}gO^R~5Oynr!$Oo2}Cd+r~v&FJZk!<@Y6|z`XCiNlJR9@vFGEpK@7;f0r zbHPR9Zc}hDIs)0v6}6nI(^X8B0;Y`YQ1MX9)?LqPK+cj^OC~r~8Z3Zb?08H{qzVi$ z&Lw9^ia)=&0F*mryi1@cUv@?VXh7FFeJrVd!j;*!1U+~}P%wawQ(vzD3{cNKddz}z zUoY%24mvu^3=f<#0P1ECkai@1N?wo-M_*rhSV7dgL$|*G8H4-UXXq93t;kO+5tzA3 zj$ZdX^UH}383`oPq?h@S2#iU#vz;aP%d5RSF>bZ3m`cg@mrCKBB zs0}iX#vo^CGzx~=paN8id0UmFKQRN3wPq_f@dmLD~faZM; ztbT3-Z2huNzwBij>XrDN;Qpiw;I6>=DF?w_z4j>w*FSRqM?bpGeO475`B%$Yz|{#NS@XGX3Nr0Q)j0I7ObD|NUT_C7sP3;@Ir z<>{yxNssELm?U4PDytP!^c+k7;H*yaYH|pRGMAMt4iZ7*7Iax3NOP8}d{uFKz4U2B zQcv;^Z&eqsKk?DJ9@}KQnWk*S`s@J{9c(u5BOnc?S&`L z=C0?tdFFYZm;E|au~N8`#wSl+$_cV~_DH%TfyX@|P!V(7Krd zj98&`8O7MT{d>ben(BY&W-J+U9FAo5Ki1{&%=+xbHpW2kvEcWCg0^FjJpw({vLtp#CJnP_cd5U8=Jr*-C1!0}$!xRiO4my?J+%yg!ZY4!kD zbvyu86uNY6M89X*E+o*ijB{>`KnPzYvusTp*YgIk2Y@OUu4T-XKBX`)8mQ}~x|Qr0 zgE=?GP^8?UyN#W5=MGzW<^doCXdU50agF%sLT(WRhc2VvsH83g4=5jbp!bJ@wgJNUmEnA2Hv&j;YVT{n0yIA(^e^FQb8mWV2ORQoVBnWWXeevN36cSsiiF7 zFvni7**}>VfVjS}X_CT^K;ZiU4EOi<_lK`X37qBm;&5}4CIETXAGBHm4tMtwid+4@ zkN`LBfgkt*?0)F=!yZuTrTszdI7z>s`bYuXX{YU2k2A(S>$E#ltxxZt+T8MeN~Ice zuJxLfE&vl*+Sn*d`qtMpl{Th(bksFQtLAI^jk?+NGiWDC8#2Gytn&dOjF4;3<0W{G z^vFeWCwYjF@uZwhXtAg3FLgVxq|eZykuo;~FHrq{HKwGD57GRDE+ z(oF*jj4}{BNjA6Qh%@*?*dMGO4jB$h;q!2VC7$aI|$cKjPV^to56};Oe1YI9Nh?fur|yR$InA0rHUgdz;JFVNGA}c5cN>- z=CiIe&Kkf3-B8var2u}o3%fpJpcF9Xzuc$Hs6sYyY#w+nAEzG3_ZaOCj4?Pdw<1As z;6k@kgqA_(d)^LQ0vL_(cuKm81U^R+vPYh^G#ED>V6{r9yd9bc>l$hsJo>TwEO${v zP-8D5=%emrkn^GvY`a3|5SH**hMW2vCzlebz9VKeu784I5JgVlx=dz%$EK-{*l%;n zf?&LMv|@Zb-q~pZM6L&v^0O_5x(_J6mIYq^p);G3G2YX_GYX#92q>#S>h5eG9GrTR zf{FcrQh<-Q10Q`qj$Mj{Qc62dC0*Zj5IX;Awm!-MP(&#cUc23Ba4rO;TtwhR(V8-b zy}9E7Uu*)R;)218x8tc)oNdkpnno*axGvb8M&!Eg(fYd9-Tl{eI-X}4wI+@uson{3 z)J!N7f&+N2t2HHr5KhXOU+_zEJ9z>5{r2oek3ke+Sp&Z(FB-$vbZm z-i>F2Y*l2fHgnw{sJ|p=Ub_k4<27Dio27l zN;WobFV@!X-rP*9DuvGW_SRSY>gm(J`ujUOd)wPv5AN*z{;!@s{i}pna-6;7&yb7c z<>XoNX7W|!edI&rTfE-)9$4Iei9#vMCXhQqugFuT2RA8%%x9~5nWsXQGNr^6s~_K< zOkGxaIMzRZS>%!oWjQQFyQQ3v9Cn0w1(!H-UYM1T>8dW9JneG?;Pst*^@{H7j-%~U z`=_>}wLLd*4zdHq?!1$!gY3Zd`~JXhoa6U@D(c9l8l8N4q?)o5ZK}}^FC*{)*@;G~ zdGaUG_Nl$KzgpWnwH@sn8|3!amA<$fST>V3r!!X%qmFD=GhJ!06i%>MiM?pNdun_8 z)ZSY3u{8+qtwr0X-V`ky7F0%Zr1C%8L>Z<_7UU-Ke)3WBL*y#?H$vi6m5jg;lW`K$ z1xmfD<+1>DWtYzc*%-RIyqIc2K)Cq1Dur};PI(B%osh0Hz+(?ECDe6^DZtgMl00&m z<&32~t{saWymC4cmAB-BFrHwTiLhX`Mshk!Xn(+LaSJi?+=v}?2|?kpnN0%|BuJog zWaByXuU1Hiv9LdwIY$5*gA~?j`L5^qVd&;uw>0%_$2Ds}k14Dfw_|;(Tbk!?82XOq z`U4Kw=@yi(Z*I1{*mOFZMc&Yk<2bsJ7n_}qiM`h5<~pTCw}Ze##{yU<3>^z#oiP87 z^o$ZZL1~>R{I!86J$I0#!Vg1Vq{+Z@r5AM4xCcrp1-&@w!pGa;>C<;M^H8awpM{hv z73R%5PoECk-#|sj@TMDuo^_H;0NscuqtPVZpdhluv0fOtO>R1ZYKX&OuZO^Rimfbg z9011&C=DD3z;S}Cg(+u%z1}d4;c>7|7&;cfI?o-o7IQpp1jye9TP5KF+K6GA_UXym zyq~7XB8#9~5zhnb;ke+5_JQ)rziElBR9kg(^nhAt%T`JI+1rn7__8B^BxpY};P zIfQhHAbdSp<}#PHNX4?lv|Nv5BIxo|7Wq3UuK>Ro^`zK&4S{VN7Y|>%gW&m?SR2PU zp)}9(3=75_$Mc}ad6uUs0&vfR#?evIXEqaNw4Q$Z$N6Ejv4DCIv)(aO2tKaxmN~%SHo^t9emGQF}P-_Tu== z)>gOUxe!Hj?)f;?y58Np{__4QMgb^2b?Wlv>29s{bZs6*;Ch|z*4CLg?)3)44n$E= z%&TK)G$-ZOaIjpSg)rO!g8BS5rS0Ex!cG_v!b$hqRrn-ag-^k+!Qa6NHVDZl%P0h( zM@zseVJpK~;H|E&>Q%Wnv@mL+rg@RKyn5+{pD>kfdp}L`jF$(Mw8aBJBNG#;>$$o0 zGX2D$sN3v;4}8p>I>j4{+2lx3gKf8?AQ@9mrz;nt7iuh)lcleJ!oy05EryQ^y$WZ9 zyoz~Qnsl=hGyvGMP;(5KqyZdM*%4H>+i7K?9*^S}*F!1zpIqn>D{70yi;LO!t(=qj zQpl7cSe0(dH9iV8dp^=J8#m7i&-ibXioY|g} z)I*uexWPvHvx$IIqZEXsx{qjW{8$ML0F+={o6xY>UI3y%UB8{A#vK9cH$s_342Ak# zQl6nbiokUXv_%GJiXbJU%3{(Dp<;sBkPlKNryziFpM`1t^86Z1hxGMj4~1W!g7< z!UgAya>k`Z6v7w;C4^LpF{eubz?ynN&NA9)cXS5O>{pBBkI`0pJ&t=>zds!04Gu*d zA$nZsZ|zs%OYoEAW5D1c_+k84dK>*X{RdVP63?qy8mAF}CzthNkFb-4E5w>4O`x`d zh;e%EiXuQv${T<)y2?6>S3p25mqG6Xox8pG$`?QSmmcLj0uS-8ovZxx#?voskMySt zYgbbJ04)JRec}@Su}8WYSPQr3sF)NJAIb^havghgWfG-;Nt2N8#p^?+X_BsQWwNAT zhwhA+-5ofBET7G{DwkJy#mdFV2Z_DX-m)I!i)}5k8g*g!iLHS3X49y=U>yCws&3W? zPL~t5UM=uQD`@?@I!{odhNiP=mDM4P&{l+*VIZXvEvw7xO-Q1sh&q%HCRrhbSF;1h zf(d}QMB`Hs?{K&X;y@(8$_UGSs-Dl7BBtHsPiI*kKnb-W;n1RCJ&%2pjku?fEmea#r5?AGF zsaxb|2#ym)>;1l}X_*Rq%&CCFX>7InMgwqW43JkNO;)aubj(u# z&V_JY-v>&AVA0_8>U~V$1`wR6w`HA1ld)T@WUjZ8LAjo_X&m?1a}=JiTxpaR)eGw$~dko zI9*|nNqO%K0eHb+M0#LIghAkW!S-b`T1!f~5K?Q$3gKD7XBz;eZV(3*Zo;HO8&JU& zyC=gnn4+e&=%JHR!6jEVNa|F`{+kMORf0X`A} zA$iKc8wDP8DLkn7XsnOrzs|W8d&NWe$yGa9Dpb_(mw<@I#4%?=IIdL3`8raxTk|4w z87py!hg76oC;&9h_Bq$nI-`sML-ak3LkLZ8j>uRurxdW6O`3w6^538)B61@QFy>J= z)6N;!bvsxIvq*T;( zy}tl-JW2qX;xW#O^}u#MDfny2w7F60qv)lOqC^BV(BZgJI#%o3b?jtGA=S0P5r9Y! zjH}{3q;>EqW8&%+pb;+ho$PT1DzZk>#TbBqlJg)k`rz>>dI=W`0V0*`SdnxhiVMOS zOG!TRD0R0i7CezMPN^|kTcc3odK4T2T4=J32_RlOdX6*erJ*bagZQZ$dnP`JC5a$R z01$VoVo}FBy^dDa`1pZwCQm41bPr&1*At2{KUNyJz)J6fR+=FLqcqHi3;;rQ`iS6p zf@ewWhVz-{pPRGe&=Z2!g*l2uq zd)8m>?GEoiN)<>&2qom&^S-Y#jz~o=5)$WSE^=ARTGm;ed&f4bauBeiPnCJ8NpI1~ zu2U#wR=e(ZpImov9p~2_T=xd&p;qf5=MBR)ab4Ga$a%x_^U2!UWd6)A+O1YvNN=yz zF5tNjil6tO^tyxVp8S8;e6qIoYf8~>5#kbZ?bqN-@KgGh;fv%>@-TVY5Aau&ZzP`} zpC-Rfe!owxEnXIBk&DyUi)AI%S0ZJ#tkNRggI}uZ)=O%wEcc<=(#Z$k$b1iGzdWBP z+_SlP;i#FGY}KM(0=4XviOqUx-6PfW%SE~*E?LB07x$50{K)wA)4T8fx*P6lza{z5 z4}ADG2lE`A%nugYRp@yj-H*Bw{@6@En>sYlz^48;94)F?h!3h3NB=+NJa+fub?YDd z)vvR=W!d|+Z_n!0^$(pnL-qD+kMF+g!&AUBXCAs_vC&{|>WA=CE}LjQ%t<$)6Puhn zzg+hF0R8@QdH!6YC&qWf-krO@^2>Y0PUBa8rEz;>|5DlzypiZAvR1erqrNNN!yS)N z&*A0)ljNM|i4K1_K0|YS6x!jpA?Wq1>gc$tdOi45^~=99zq9IpD}-V1&U5Pfx zIrGq^8T_TR!9*jqaYzUumUOONh5rIq$*0HjM& z(=r6%Pv3VKVnkBhpi5t~PNc}~1AA$mBmD4XDJL2Ps@7i>b>Gxwo!9vhl&d;P6Imzl z$jx*a$DLPadEHGeY2{UEzj3#$CuNc*c}YcoWV)1#I?Kx}0GWE?nLrDW9qr&4!5!A% zcNTfx!gtarl)Z?zMXZvxYRVQMfNoI(8AMSdj3cm4+%wkWlsSV=mz`!WlhJn2q3Ljt zvQDra%9qm9ywe>xj4|KXUTiJKanOt+$iT3cX4xj2Z0c65Bhg`DPlaLX`U}s!`~CN= zICnU=*10XPigwV^j%@;0rrkk+D3k~gyF!HBe+V4KI^Zg6n_SsW2NA+hBE~M4VYlHs zvL~{v=@_9}Yir|T2do*W(L|2qP^KMTctQnn9PnO_Xp$(R;QOiXd7_gf+^miF!clRy zeB_K|6Fz%m5Cp*+XMDosnMcaAMG@?c*9=dRj_^D`^?jgGlo-Uk$AdTyl<*4PN##(E zPKDh@ASuL^{(_W>ca#F@pdL)nI3n^p> zWOUosE44;6ut;eh6Y?PFvP8}rW35(b#TLr$CabfFU0D{m-0_HJ6ddZReg>zw&$Nr1 zF$mI>V(9v7zTfUphB#m>&C;M)+W`c)ad$U=8FHJXp4BR+Gzvq=AaATQt$ja(PG{6; zY;NwuEJloyD5lWZ*|`pZ((O?ZrfJG(ACY4eMKRL8F|Q3hFNQ{QgKO>k33l3}MssWH z6tzj}S*3HpTXV-%I!%0y`&(O$28=o#OnhH!w%KgPVHm+>Yh%PHiDH`V?%f0c+r=nM z^IY&DBB!0U?~mSXlhkvx&KU~>KL=>!8(eGOOQF*l`ChA4tZe~1`H#l-_5}dMouUZR zEM;tf$Y`hI`C}<##3+ekdY#+4bM1NfF?fy`(ji-9Nsh=1$*0IqlHY}k@KQp?tN2da z^DLLsQ^5X^6u559JU4SL6A8*@wp^8YF3=)*b_61wC2+8-a(XI!Z}xRHo#gZWok*5v z^`e{?(IBcN_&D65^(a($$g)V^T`3cH0KO%4-d0G533yqeZ#V)*aZh^CeG?2zxF(WS z+4(}|BRLzDtL8O8oEB{;PWd?jy$I4!)KF8a=gY}CY1ien;54QwdTlH63`1g0a9oqwU1mI2Eoca*f3Ji zKnM=v&nc%&Fl9|*;Zgym)f`bN2FPI>tVKJej&dB?G=A|F3;}xm9anI{p}oDmu^Gh; zUjR$u=HT4<<8wWvj0=A9%aQLR#!;FHrc@T^F5?`P>-v+Ooi^7RAW0hMdjAX3v_&Hu zMV)4gBV!zR>V?K`6orovbnlgk~GN5JA>1YUq&`z)4 z?+1W`wY3Hl9ENcOfZx*Y0!7fS=K`kykS4HPTQl%m0Mdqlp%#h)SHdugNP%%Cph;sx z0U@W13rcyy5^2`kkaKBVS1PGMP^yJAg1h0jC58YJsidyst1AClDE%}IhJ&6|5f_|` zBya5Q?(F7H7`DRjLYAf3Ip#Q?E5sCBH}1QhlKngk;Wa#>oYAD)%@+NEK%>!hlEocQ zfpQpvl(FLiMX#HAnls07`kbd(7F6>Brd&56?>GeL0Y|QoLRx6e+$i$fBok5M-G(#x z0irc2LMEgJ#+0rCM}ML316KgTPL*VhS;#u{3ZRD-;bcG#2&n-(T(_mr)!Q?c<+7CN zv+ptWvR>ACnx}dC$HU?9QW3TJ;Z|!n`sa~3IMZsKIryLFhr{!u?-`q>ve(HAlH}ZQ zcIT&`%`xXTHhT6 zYybJ=M{b_Y5$Cg;Z<@{V3tny6E!?z;EXY4&@>&XxCh_-Bsp zTjvPjqDzP>;V?DCAoTdgUClEoEJ`-O8A~chb9l6RRl+x%zw?-QazA#Na_Dqlcz6b( z)mmTQUKEHggh?@)tcM|^0K>uVbcbTf<*de&^@vhduHU>G4bwD;8WjHuVBmW?dV^>` zj)E{pwmOidj{Xx8_#o+$Dmqp}>Khc>WTlj&>DgVxANf${v|o+riAE^Nts_{KJO+Kd z=`R=cjHD}PRvp&mRORgc_>+`k3?a-|wxLy>IutlYjl#C-!mwFTdA|qtN$1=6M6Z&G+BXFUx+n`>|)UO_9 z4Db8cs4FagVeGzyCpRf1LsF3ga)I2b*X*ni;*xJax6Y|6X7$_Jq|9&G?x=WYgS;xU zbe70s`5d-#*v^>=*TnHF^E{Z-IAO_D`Wu7T1RR*6?>SZ?h)5N}9sh7Vf=HaJ%5QSlg zPZit`JP)59jqXOz$01-C;v~javvmOonk|eVTPhMWrvi*i5duiyE6MVEYD15fooq|< zkuK_5bmO-QB~}^2%WyB+7vbj4t!QMS&RwL-5$X+~@2oU$hD%5B(@gMr+EZP{H5n&?3YUm1nn zO~*lWoXu_+L7EM%b(*ckyNMW_La6S$K_FC|Spwu9O)^UUX z8`vlB!YJ~z*1nL8amjt7l^;cL*IgLJzECOx2=9V30LHOeVs0#_P`vBq z)9K6Km1u=uW?boJHg3c*%`zIrd6_k};_S<)Rl?Cw3dn?TDEk)1w9dX+-}4r*(s46o z5UDgOa~)~nEpG;}!q|qkk|G+FSw~rbHxrUO!4La_)bzP992?`t<(X`L`Wxqmys}&@ z%F;u}WzL|#x!E5$%ykfMoqzJ5=e^9Bwas0I&U)UNLhCMNF8O|1kyrC|a+8X@gGAob zP!4FVK|cEmxJ4f+-g@NHq`C0Gv#trs^od1NPUx;v_fCuSMzE< zsGj6Wnxncx;ICw_S5AgQ#~BXFvey#=DMcZAy|Nq(9cMV4ypxF{QvRJh2q6Tx9fcHH zb56VU0K<^;FhC#Rb^sm*9Kokyz~R`WNtTB!`0XptlGNC>wVj={HTz!D$=_fQFicxb zzs=vrcrIgGPiXAz-cOMQ0gjZ7`e~Yk4uF4w^UISmjFh&&83JV}ImL%sCA_o?x97-* zaIpn;1yzj%dc-jOx(^}%za;oORi#v=`mf;P0*BR4z6TlO?}oWjC%%*~?|n6=HZs=x zH@pJxA_*Cib$geD>%Tl)aoe%Gq{UKZwL<1CqD54A=YRY~?0TLX<67dno*Q2~dwBNj z*~7Dk?|u02>><1>2QBvRxwSi0*o|EmPJZu=x7_l^-@E0O-=i;k@rw!JZFkZ|@Lb3m z*&u`$Wh#rXuJUDFg%H-uxT*_?>t&hBib8DN@w5-2OyT2?z3ko>tiSxt_dRiP;rc(m zXL0MvFE4Jt?S|{uVRhH-U;N+c?-G9LtNLO`7fnKzC=(X#$WMvR;BhqaMZJ<0h{{!6t;$I`GhSxb`Zg+0nV~(qDxwiw z&MLyP_+roShQgT(%^OwOYPG7MyLeS9P~1T3z^_(^pda*K+GgLMtIgS)p6GPAbHnQw zSb@5qD{veMs1gv?Xh7@&EHq{3<#FJ83LM9-5QVf>`T`FDfx|}w&jT=83D1Z4o0L`n z+8B*7xQ_ZSw%uvBHOk^0>#eG zUSl$uF0u@Gnx3t%ccuK%hhOoE>g6xL-*JjXWFWIbgHV>^B>Tc^*X&_T#FG``B(5uIIY{(2El|`O7ej5VO41LkvTo z5JG&yu3d%yfUD$9kknrqeW)p&$>TR{Jmww5^fXNv>o{x};$704D|IY^znz zXJyTyCC-*(F6U{M*Ynv*CUPQ2Gk36EVkYt=FDBpZ4+BqogX+nG2iWIC_1N>)+;OsX%lYJQ7`ycq>m?dLL= zDD)u+1)_>~rPJA5NuLRo;LQ^mrHfLQtJ)^ru3{!;BdHw8J|yV9Nja*gnKCOkd6QCv z;LFh;LS#y3{5r~dDBcZKSzebb+xxVbYw98w@Ebf$OPQB>QRb!0V=PL@MLAkd%DT)m z`^~29XpyLtvCgVq%(7*cXJtIu4Oz=PqnmW?g3YAxMAmXuFO|E~j$m0pXgMc)m_Y?dQwhibt@$fvjH-zmvT~1XSHtvCcNF3qdf?$+nr6yo$Yy+ z*F`#St_HsHYCg-VK&$G7TBDavWDJksh=Jya1G=wfG^;h*!^JX8X?2RWUjGQnNu-%G zt6JoqrP7K?y~?Xn3JHIg240I)LDT@_+Qyy(n7OVe#IR5f#Rj)lrY_^l9S5^iVj;Am zVjOFIHtdA}ieq47pHbQc<#{v#v}X7G!;c;vk(02gOQ}HqAQO@S%{&*E9?*~hV?iSD zZU9katq;D0P8v$?AUG;n2arYx1n0EjKLaXsxnZ&A2^lB^Unr$q4pcfNOr`*IP^MAe zI#h-YL?YLPFe{Lw4vaR;m{fa|TXbDl0m>Xz6EQ)b(lEVV5H&lUPGXEBg>Wdht}h{? z;DU=5(w^f`+=+V(L5|P0A!EvQng`q4ttLVka~=S<&iZi|T-gZ&(`vWl1fbdJ44BfK zQKgM?9Bif191J2*ngUSvTKdhCP}s1SS^?V3JDc+H}NP!6nl*|;B69^@Z4lGdW z8w>bYE2S|23LIB*Ofb=JfNA=G zTF$6XrzD~Lq}}tpMg~5f5_!~*3}S=`lnBBE78uWSr9ejm;%Q28VNr09S({JBCqL;k z2GK?c$hD3eN=iTQT@!|R#yv|h1>`*Fca06aG;Oz~LO_>MZEZ+%DTH7`1Rxan03ekN zgP{3G22_@{Qmp|L4H)y<9ohv{juokN0g&do$n)(WD;+BUV7&lv3vJ5Mk*z=D0fBl# zQJ~DwC`laXXaw#D29h-M8$g40W6*9R=NQC^OBvGK4*_6sw`+wj9EQML>HtM5wSpJ% zMkDa7v!?kT4|rZ_@`FwpQ>vLjAb?UsDU(uCm{Y+xrmE49JGNj1g!+qne>DL6odo>u3d%C!Bw&# z*WelWHuwj;4!;e59siAv=_B-2^!@Z3=qKoRTj$a`KStz7?I=WqhVpZq! z?khKwv4a7M6jjCv*aNlTa3R*rOI0(ubU;Gyg_f&&k!KRsdLGoET9Nbz&8qq$O>*ZU zp>mbavT9x(X(C7U!g&z8VD#%nJ*V6=Hplk77?rCkn{K%rnSB7w7*xKiFBh}vJpH;_ z$@K8h=53_Ynb^cw{0uTnMV-lUlFpK1QjDtUh9(0D-l!0Ld2$Y>$f?`3Sf)Lk)zfOe zT$ty>x+6ehe_myBhU=tRm6fYhPHKLtu#!fUJ2RZ8qMpv?DHiuu`SeW^Wp7RLBo*l$ z_E&i#7g$ylbD{Hf;6zSmWhRp}nF+s|+%9Pr%l=u?;}goaAc3PzW^y!}XdBeiq{;-$ z;f=P=^Js~mC^ zG&?=b&}7Hx5lDgELSbEoRrg9DN@aWnMEnZ z2cbYQzPuFjZ*VZ!+!_p!F+CctulG8fZdCK}7?J8;cf2_o3jM?reT_^=i5Nw`0h&X% z2A*=23ITrxDRr%}77Q{34V+ODG)ScjU>>`fkYZ>oxDuEnp-8FExdC)60{-;+27pAM z#<+pw0BtmzEmgV9dERXD`|mgAJ_o!g%>>oTiGxtpsk*hbm=}bowMd}PF&Q_AQl!jr zITcdNfYvyRVsS-qn8xJ{>H)2}r;IaVyW{9z%OYWCFBxbQg(13b$7L+pgNc}?S;oP?Kllel#^j4f%aITb+js_GIfJp%{?;EpjB)ASYgkec3=Pf2; ztfY6O5Tewap`1hvpJ{=R6le(a87U$mJpCzb~C?veZckt#GAaFGU?I@5^ z-VW|%#w)}h2uk59#8IOe#enRsU&%nkah``hZFIY7ihwv8?e3MOLy?DJ(nw;O?AMNR zj-C$xjSl*)2oRv*<*wINm_R>pgaV*o4$U;b!hPmD&eU@Z-VoA_bqfYi%4ozWfGyJx zEu;Xr?lJ)KD9qbg3jYnX(Z&sI5n36I)m(^g28wxqGPd0J<58!B05{(BRe-3(g*j}} z#BQ(KrGO}1yZQ?g<=$#&!XIob|fG$-jSpWr9eQDQBEC1 zFqFfPFi_4Bg!?3Gc+qm*-N1jk(p;JI-eHpI_S?l_KR z08|(i`78*i1e7!gm<&V39qBmgS3zi)gy9(kA+Q8CRxX$blp-W0ggl5>U`+PNDe@}v zP2^MLhsdu%8wRj~`{5~gExZH14!#3^82$wQ7EZ9T6F@Nk%%o%_RZ8+xyydFAHI%2d zbc~-*mJ5Gmrk*rk4wmyepA?xC<*H2XAF?2(fu8r3U{wj0DyT|n)}qYnEW|`s)jXZf zRyku(-fUIR$P|m`?y5@Pnw!dIH(*A?y*47s@ubf31tFENexa7Wr%hHlq1{}r@+1}M zs-6_9d?d3f*g`o^t2^$GsWVZJid8Psm0T@_TsU8+f|}KAg`orHMb?K=nWed~R45g* zG%J~+tmjKnNX-$#x%Mr{(;`pvYZ}z6U>!j z%c`6ec`B>A=$obQB@*I{0(oc&6}g<1^#{xzaE1uehizFssYi0pMOO8ynv|2gTpE^zgxbX5zv%13fKn^yVfCUCw}nVcDv z^x$;z-2$)?GYV0oK*>~zx&ahW#?*q)<*)%qAgD@$W?D#evcT=2QE>7mFwmND=0b^B zCM2a$OzVF`10;_^ZA1BghmlgzsPB0}(D8S`bK{eLsrM#6zoV<=g(3OFK@V1PVi9GF0uL5l(_Z+HQKWK>_>2RQlbG&AfB z*RlJ`TIJiW<46OPdK-vMB{fB)MrnX1Wl!bac;Ve3r6_=b=@&UQb<8# zbDBsV+TIjNDt5NzrtGwG_)vJxvJGodB4walk5U>5!O%$oIODSUIKY3EG7eZ@%2Ki@ z5t;lt#6$=NR-ME{>TD1tLh;DVlxPYGAb8_g~_<2%#s1%jDH~EjC8>ptPyh%(0c^zWdpVPW`kd>oKhOY7IKZXk9dxJ!fHDUJ$s9}oQa@F-h@E@%;}#dREb@R7SmS!2g1XRk1$SL)qm241!VVddJ#y@;O{C4S^AHy0csT09 z0MtGN?&}tmQKw6nFm_8&ONo%5NScdsHrazrHwAALA`CO7T<@HGOKh-aDu!oXjr?E1 z+Vl)tugjqn*qije$8t>oVzjL?M!5(BCjORlCK~H_;0Jvm$PYzU0hXm zq!C=Jl1)7|kSKLTBn^F~HVIc`D&->NL^Y#wuSfPQ5Rz(&#rusVAYc6A7r*#D5XYzc zgMKSX5(Mx(q)lzO8w3ue%yDHD8KYI6DgBG>Za4FNKciG|#}zz~g7v$c3tj)kQ&awt&LKp);l~xjzwkC=k$6BpzlE#UFr>>D} z1PII=-`iDx46?9#xF zX{1W>bXrVg?@KKm$!{MEDIMIKMG1hxEy^R&%&PC15LuA3lQ5m7_4E`7ISXJ!`c{fe zRuyUbW)Pgw2_a{8aN1_8dR|xbXu7L<^FjL`#+*?iLyC>ErCBnfRv zG!-bpEXlKUslus!Z@OJP?8!0rEoY)@ex%^q%U;rthq0i4?OGX^PAZ z9+-L=S1VN9y*!&qTIuPYLZ>LUJ=APWk;|s|Qj~cl&h5*3v0S7Rco2iqMKLL6^{PIE z^=wVkL?-cO-KJiZquD9Q6W3E836VG@1Xrn6~XC8u&yy~l-Ma<8BIi1xgcd$zk6pA~Yu_h`&*}1j!%90>g%Q_dbF8fh+ zo1|VuyZm0;s842f-XK?%b-COiF-XqR@GV!LpcWKDI%sN{L>tJUsk+k<@zxBO&&qr? z%Z1F%A_L5lDaQ$ds7_?b`jyUeDSb$q<(191nXC(m3BYohqse9iNEJERwc%Bf&#PG` zcM}yd{d1%!S)2gAcHxfivx)4T&fdmsHUkc`>E6b6rwxGcNtBvR;^GArFn{{Sn>IHE z(&?$wL)bh#yy0*(0>}ZH6gUUVjX?o|F>t-o1GLifYqha)bac}TwbI-MRw)J)EgI`I zJ%%yRbhAk7iPr~U%#5)?Y|<}N31!-)H6)obXsbo3LMaYFnE=#CVW;lu3ZeRrv7oR_ zl|9MZW6-{!aSWiP_6FLk4Z0L;3DiRX-lJha_E&5T0l-QILU2w|NTnG!)}k`N>1A# zcE-W1Qku4wD&T;cGp;!lw-h0eAr(GS(?zcE?;+>*p}G+$L#b$16;|TEOpHnaZHin_ z=1M7mQ%QX7Sdh9#2v7x2l8yCq>w{tEo`;%D#&MR#9EPELh(-vB4me6#3LqH*p z0E}mwe68bbm z`h)T6;7l9v1gY1X*4fEDn(| zib`^n`EgJ%eHys1oKmKIPu`3uyk44d?s^jx{#F=L7RN0|0RE(vjCa1Xhf!|6nGQ#5 zV-4WU<`1pb#sJMmuM-1={m@vK_JSZl={P3zLH3)Vn9ztu@Oo#v)q<115{M!UB%=bf zvG0v8i*B2%*HJAz3ZN7Kz~L?>dJNbsXk!4vMHO*5u%zWN9$UPU!k`1$wTNb%0fd0O zNQ?#>LS*M56Y<`|DKpFm7|=sPNSQPoL#@ZTJfzSbiOK+uM$p|E2Fh@o0!NHc#>k=> zvot`8t`JO1%9J$1MQo5JBTE&caVSbaI`e&3F;;;J-7gSn)KG~8q(l&m47q@2oOF(y zHge8h%L9)I*Te7T6a(B+3CKIDqqcY@7$!n^z%wn4OfklDzpZts>xq(L7=*WJh77{s z1vGFReBH_bbpcSe4;ige^7Stx*)|1A6`-Kf$N)G84_!nDP&t-Kg~o)vUb9J!4Rsm^ zNGaS7DYiM^8Y>W$g2t+CZDP4)2E7f$O1JidK zjG8Xr)N3xHmL6_70s*Yz3=g}g0Mc`ZvDPpg-bm?dKmpYyB8|eyTYw7$G{^dJJB0@?wC;Pk!?^PCfzONC;^WdhIG6!sm!4F*!}{ zBd;K@C+{a;O}>+Sj{Fw+Bl17U{|5;^G~re7LHHhwaSNAtgb(A>gd9O$)KZL~=jJl8< z!2A#vMY*b%6Il$EmB-Z39*DA7BGcMv3r49F2QXjO?_W>dhpB;5R`Fk`<6QyG7F3{yeZ^hkTZU}qO`@BWR!h54iJMFG5eD82>3qu zzA@ICU5(wvpwko41)(w4-s_b@l8o;gu*O*UbuGbd6avLxgpntBtF^Ya&iQ()?YbBV z;caf!d(%N~Ep-9SYA^(BHM?EgnWsfD6=Np=ghKl9`PKB-(}6C4eT|ThoO}l=6?V3^ zW_x={#(6v6+Cu+W-Ws8*6Jq z@nT$z6tCyvC0u$4S~zDKnjsUWxqm7bTrr`WXB?rzlTPPRIQIjJ6vE*seJx<%Q4%GT zj7!tlzDuB(yjq3HMxDtK)mZDue`HKDDVcn3PU+H-k!ya4=77?GKDS>XiaJUtnnRz` zGxXJ#wc`Ujpft}Zn@C87L+Jsd)>4*qyXnfd?|4>}LK^{Fhnx8_j+O zHnQ4qj3$a@8Bz{O%w!TLo=01OFJ1$42f&#FEIe-k_ei;S1_%L6axPhaTh0f7V*tP> zcVCncO7PnAa1w)LhKQtu)OnT<%bHHg0%~(;r+E)0Zux!a9(?vwLGONm4aT|ipI`gz z<(t~@qBayQI61xyEC|z`&wt)#4Pi15JhDfKhM1RU`8QDslcONSK@cz_)%WP}!B~vs zw|Mrgj4}Pgnsq#X{_p~@(^>Ofu75}~#vpGLqqU;hpiC+82af-5N(xYCZ@Ov!zua^4 z&6ln_*J&#$74Gd_cirX7vpH9a5Fq)rtMK39D*0|g#;ba^s%NXZoGcf$U`g!q%9mO& z_5<5-earVP*$#+unmTbf*^fOBX=xSKIlAa39isX z5f(yfOrH6ooxoAp2%F7jv-X$lMu+l7vnl=ddfCg7h62%S<~cbCP~R4MoMw5N^+NMF z3&N2%0>&w5?m7sb@B7FpQ?lRhb}4AZwa4R_+wHt@%stJO2HNfR`%*E=(f2(cz;(F> zoJd3ZUJ!7jBxY%zQJ{<&$2yKjz{CwY*(fDp*#Qs&E|uF||-R;4V9rOcPr5md`EFVjNiRa%eh zyjqrZF)VVKR`qrXRaupi%d$xE7d^e?wJg)Btcx@+mZeOKysVdnEYk``{hMEZ%Z}N$ zc4xn9uk7z%vA4af|HS?kYp?8|ynXm!@X+9PIJ~w0p#M<+M{gPIeBk9b58<%?kpE!+ z)|cJVKfHP8>di0z;~i_a>sLM$JUF}^9_`=qvi>bEGgpkcvj4o@*{`>4y3>DRf5+PG z`u4q@uKq**gZ=;cvYQ7#c60y3gNK3#2k*aSaCq~}4sY3c(G_d2)K5GZJT$oNbDH>@ za1DNftdScCsa+oFn_{kol*$ccl9}GVG)L&yRHm(U*jp|x&F#?x3|}Y&~p?bUyoPF|G?#x zHXviNNzRkYf(PMWCz**yp!Me zgQ7AdBUjbNlTFWK7vXUI?E2Z0*FE+SdnM48@tYmaxR4@yeflcNf9D2%D_l6p4!~&q ztH&PX8N1~M_uf1BC-YWzdi_J?=^-+~Mf7O??yv9lA|V{sCej7xHCQXFCWx+X-D#^gJEir2Kab!^G1XFin#b9qUKF z4|F&j_Jop30rvXC)ayo6Z?>AvmPzY=U1y` zrSZdE)u@^1I#LJ(y>h%7Xge$9P0`?4Pc$N(OS!C;xm*^xECMC?Z)kYq@@$s9VgH-K zOEb?GrqOIR-TKVSXETIWtKSPY-5`K_SP(Qb2mT<-k5?z>WEhIQZ;QAPA`FBOJp7)= z9^2nPb!vBiKHq!`Z1>h1+ow+LnqIZ&^%hl67D#q{4i+hS&l?E7 z5V*7D;4y*aFIHeIrHUL~3{kAvYF00cvK*W+yBz9eJy`@G;O+Uw)QbzC=2T?fXHH`a>00g$DG6@~$F&UlQo@Hk3_3?l}S;6xA| z4|2i)rFs;7HuMIPArl^7T!+eHQtC?}y)kyKogiGzXVY1=WTu6%P6#9v%~VcLfj(pY zP|qAf5z58-2e2$Md+4yTwIcPP-QM`*M!OBTv4PNTZ{VZ_ozBL3XZBp&*ud{R-(i2f zgd zk4JI49mQ9U+i?`d?N{>g(CEBe;s_v)I!AC0qNvl3;)pKuIf2i7W`R;cB@$*idy7?-MR?tK6EFw z9YIl7@+yf1o6qZ9l<>_bUl&=&u@SuDbpd}1#xh4qV0q3y)|HYmfhZg&3{`7KwT44O z$vK!D=v%C`h?t~aGSHWF*6oCm!z6gl*BBdxYw(<7qk}vkUK4Vzq|<`--+~`xX)Hx< zj8xqh4JH)F(wJe`UfXW&7{dY~+PAH(kGaUwt-wTrGZ(sYCEMs;g?O{r>%QXw&mWZ^ zbe?L;8Q~KU@k1nrPCxwp^6=8>x12d}oN*F6uIG0<`_Gi?;3~v0oI1|`zWL^xZ~mR- z;iZE&pE>ZnH6xvF{mgm^PRyserk?lU%{SkCbAB*HT)YCW8Mif6GM*@#h!uE*699ys zTcEO_H!T%c0HKBivE-_`w{J?krg(GL%5kB{kKjyPd}UHde09oqaH0V72Fq2sD%-|odD+2pFKf%7|5ws7Q$%_+cwIUAMUEQ0 z2{I|7JPRF$#GAjIv-L0Tlz2<6P@7&sqz?oLT2@$r({;Ys%O=-nwE2pY`m-z`1L5D2*e|TE9V{HMCxqHmFXFGUI|Ug zsXt3BK#5nhw7e)p9_p(y%h6;HSe4T<%cs?}o)6WwD$g4c$Y3cBP#=|fmYW5uNk&ef zBcd#?^2@+I{sEkTE|GOvs0kgyw015)LiuBgg)L`rCucdJ6tTUjg~m3rCc545EOWgW z92POo3>u~tXWS7|GC5t+tKw33D9|AvnGe<;MxmD6ljRHZfQjOq-11PaP5*Y_d0~EePrDKo-go1K#1@I`3 zGvJ^i1wAG6?bFw%GS6I&YH>`5B1!Tbp^>jW6AxTa%06V1IJVjeL*Hf8v|^;5pJhoz zsTX8f{B$0E=8H(;FoGz|4j>4d%`gmuW-AEc&LmBZ5!?&>fRLJ^a;qdbgZPi-D2fa? z+#=^vT1R1pyHB|ig!4VfOcJDTz3+nQ!(f*#;#BR2#`WcPdQdf&d~@5Ocafz zHyRaz!`LtkA#%C^T_=Jt95Utv#c1S98MKB4Q9ORc_C!d{Tt|v5%W@Zn5|Fx=i8><# z^6FwpX#@;7;|KRFfVG)KDg`2fk|)N`Qxk2{;=ap({b`RTDuOsHTQk+gA76r zl3}aKnX*|HMoMd)W$_JKi~>me{h)jiK0yLsMK*YX1F?4pEN1nSqI`;;958ST5o?{f zi9u#0sBr9z3bumj&RlSByVXWu)TdH4vO(XsQhKgqo!p7cz*xGyYH|KP3IOfS=J9eh z7yw%v4iWeF@4WMl2M0q;v-R)Px(ncY=Ut;6>jZZZwh%ImmagM9n@I}2fOF{h0ZbsX z-vPLdd@Z9LXR@`m)$Jno`$enOiU?6eUwa<@nX@EUk$80c>tU00$%v3xR<#_LdCAKn zro%nRX-cl|(i@~`0EfBq9E{|e%5ZuII$?)iG}o9_B`=n#S=y>=D8 zAFh%HDf2;E+BekI&ufOOx~FuJlM=okPo2K^-czR$CX-`uA9wL+GJ%u-jlHh{(2VRW+54?$v;oR-h{MysFu5ng&5GKU)|Wa3>W-8LB#t%B5DsB+HI$uT?Bq z`vVOg&rEDLDi#&S#C%%uIq9mZh2?TC$7zlX!!4+)7e+B(O zb8_8K6{TXpxI{#z$(f>X;v^|DF~gKdlKc^3E|FAo9N7@6B-3hF*LfTTo~{@2mT6mL zDI&+qBs5*Jo;QIj#v8{nMEtM@y;STf{Rt{^D$2w{_RD}KRgIwn*$Z3aR3aJ~4=b~v z74~BBzEGLU8s=exIH3T&(KoUmC)%aTT`>yT&QX|_X>dvW&)O6G^>TR7mpuur5zJ11fJh?73T}X-HgA zP1F3E#^iohZbzXrT^=q^Oq7Sq(|Z-pP1Cf-p;s}cX^B-r*JI9@JM70vle)F7%_I&+ zT*i2;>!Q}>Q*(3a^|SO4eGD#!(80x6TSJLbGj;boO0VCoWzqd%3dlf7v=o*zK}N<@ z)b3(sL9ml8NR_LbEr>;`%Ekiq60P?7(>N^0xLLL=8l*7HCHmlNExPE^ zOINID(x#EoH>@8Wx%%dtum6`c%H+@?GLxV&_gN>mz&sS8{F!IkY8?4sr)xl+NU+FsfwjW$7 z9H-xOUCz~eH_Ea+ks3PD8$w-IRL>)8z}2)gHVj2|9J0%_+Ut>9`V-#WH+A@dZ;GABC^OYqr9QS@Qp%9{AM%lV9VR z?{q%coQja0O-d6SQL|1@5W1L@STMVzZZmQ~o_lLkDUb@;c8!S`?wT!BjDr^P<%!n7 zVfwv{_7%KvM7Q#JCE${x*lm(zlPa?+xI_|{6rzwTa!RTyD@+sgZ+Sv!n;5}jTo<+( zBT2Ud0`=uo3koKYw&|I0MqMN2Jj>FBY?z9zNsLsIWnFO2xM|s%Wtoy$32@&=RT^(Pm*emSm4lsv#RuN#L@fDkMunxD}Yy_X4d@$dhHcF5`;J zh`8f&g?g_doHHx%ow_Ya#O2gAEmbDjw>fDVzv;|r+Pxx%U0t-q2BT1RhrB3uIOoik zCE_$7%NA!+V40?BhCy0NV#O1tru7d^lDH72#wDi2pEJSBbWO*yF>jz7RasQ%#0_?8 zcTyA`#eYdEpT3JRt5wNbO>A*m7T9K2aIvR$W zKHeP4;@FfOC-B{zjVI5H<4?(`%Y%cVuIt6A<(1U;lffXcJNdjSymD#UEtj(Ka#^1) zl|5OKq${TCgPHA&txsKUxo%~}#CVcWxjZsH(`8brl-X(8XrxV5mO|ThoE+!g z`JDOqqjMM87Namsw|2Uo-)#&rGR)x#O=oPV(dD|X3F7vTd^|hmO}GPhV-erRY5W{7 zqBUQ1wu-kPVbp}F=t`k^fYfX1m`^{tX0~$OCX?9x6RNKA8kw*l;S0qf&B%mm13NJ_ zaYWM(s}vxvZyjC6q3RaLn`yR{e)~Sw0gEH(J;2-&2C+~?AQ`BVM@Asxq*1HyGws$K zL`CA_t=s9-KLnb}HQTNhbk4~zb3?Pj^}@UxioD^whE5k%9iB^8$c90hbDJ5Kw9j;$N1>sUW>UBejQQt<<-nmP`7UU@RJ z4d!RHS}x6%nIE}~amTI@1)&fF?Ms`6WGUMa3j!!1J-UI+h5U-zQv-AuEx>$qjfT2cKi`u>A)W}+m zelKfegNjh1SSUgfYVjSR>XDuRwQeJeD=##rKr97Tj7=@_G%liP_52b1QAgTOR{yyL`ircZY|M7=)^(q&XPbA>{j14#S` z=i)*k*OW_g^UsW5{k7{BL)+oRT_<1h{q5IK))-48f%p1Z`s`Q&>lnf`FoX+*8FmON z6pOBZr9`v?xe8Lth7ylK9w!bd2_5~85Z_UhDOEfs#A8C8nx-|}3tL{(oTN)`m!#Vz zDdGH*{~el0(i4Ad!tdbx4leC_BV%vm{NGeahyZ$-_8>+Dqa(Nv!gGf_u;V@<31N?PzX`? zWQ7tQ%D+IsSXMi6QG$aENsb3pO`^amX_`#i8C|2h?tsm>!6byUMd^kXS{CWr0Fjl; z$y_%AtyZm(rmI8>XG!c-P19}16hj|WEK6R&q#((u?1B|fTCtEzm=lG@wOleBTb4-n zeU;{1&WSCMtm$PdxbSQ_Nr((n*m^5mvlPX$LOt+R()F^P%Ly*Y70XH`DPJy0M2cjZ zLvAb#T~d@F=1u9Fvl~4$>Gj4RL=|0E|WCFs#OiG5NsQPewN!HT3Eij4%79#1M z(jM3$dcPlqZGxjrzpK3PF0S^In2}@qv2BxW$B|`|W5==WkZnZ^vir6}EQ$Tr=xDn? zGvn>`(@J1?o*|kOamLoHS#$ZQV~jMH;dw?-NqyO}qN+b)nua|-ZX2dqbv^16i#L+g z^(v#IBc4}D4AbP2?zz=lco?Z=ArwX-FRM|+=p$ynU`CO{FuWawFnbBF!%h^Lg}j;H zFX+*7*%t~=mdwt~1Ulyu*MixZC9^SCgkLV}nnvXwX_k4>*b*mJt4&$vgrPI$2RWHY z^qQk1J z-)r7<`%V^7^B!5l>YncRx>=`Ijimj&POD9@pqF*BKII_Q3d0LPO_TPjx+iyKh-$GQ zYPLjJXX^DkV~r$$aoE=F_iD`+I;5ahjYJrQG5j~Ewv?=cN5ED-8qt2Q-=6L!%~>8K z&=^T@R+-z^o3yH;D*?dIG7KgtKgk+3p1M_caGI!aY#6z%2C!4&ss$mCu=}jfkoK#^ zFM;VzVU!#gwHxBK0_VbDPYAdn3Y(JAyJddQ-Yc(%+YW1mjY+m7ki@rX30=^7D}f+%&BqZmsO zOUq@rf>hlyIVXvGQ=}8=G{YUPC<=sIkB6=lej+yw&S{89u18^yM56>$2PYGeB?3|u znUNOj+JVH02N#n`#D!>nAgMwT8V#i?tq(-XP@H5)Q%sY>IAa#|WZ8*1=P%nOX;KnG zIcqIbp+ccJDgLF$qGr_Bc5A1JZu(yFKjxF=e4wS1GMp6)M9nI>ZXqzOdVM-I z_!5vJNHVV6K?-Az=JjrZLZp(+$Q#pX10hBu%i@o&rb;1ZrmC!}6cJrRG%Yh?By7PI z5rGBTOewL62`NH!$ulr>8>T2E>%@}YF&j)#=x4d4XRVRAE`+G8>!gyc``z*hZ2_52 z%_FOlP(sZnl?y@K5gw^3amN!Lgn}r|5S4_gaOF{^C+?)-R)i`^ZBtk#MR6okTgJnZ zaYb-PQ36?^)88fOii}A~j9~~l89yje;V1hI`&2?D=3PX2wW^HKI_P8NBrL9!dtD+_ z!CjU4;Vx*WoB4K<6d%dyhG8U+h2erN1y+(2kLCo`wT$r^rq zRS!{;RBP45wkQaqfVk(gzlLMJ$L}w0GRaRGM)+<;H3YeG|AQVP@F8xuEVu3lQo{uRxPpBsYR$j5VgThQlZ49 z|0O!}W*+rX9GpF}%u1%IP->})BwH2*K}IADqnHGto^euD)stjH z(G1JVaXCrSqAIxRxDsPT6h*oeaw(J~r(Q0boCR^>`8@O?;5tf%U--cRa#hJ&<2GJN z#~9}>ZO7U~zHM5PqKpnT2J@;)R5pbm(^3UzOd-2mnp&eOilfSwXWO|#&a^bmaSUHk z0>K!wxD>e_mvV7zCXVB9>coj;+1ay%I*>!99Q(BBd3pvDxE{B}y`Q5GC7cyf)hrg0 zHoE9BBO54+TXhS4jXSGE(##B!Rr)Q`m%OEOYp$7_bM~Z#f*Hhdt2wu#+p{^5VT@+|Fv(eJ z5cs}gCQ0=7JQ)=j|9Zji;c+ZUam*hg!<4x16^gDW$%almjwS|kdF78QX8LI{iij*b zqS&@s7#94lZQ11er8sxl*eKD|l`xi^+N^6do;O5TV(Hj8J}@(50wsSVEBPrDD6CjEVs+h{+k znTB>!Rllv7hK5&?bn_21;bIo6aV6GbtbqVyWHgDRzBlLvJ#xHv#nDB?GoVN!+OlS= z(XSaumdiOVA+Oy~o-zFzyWE-oAWK#dSd#qD7v`Vltuhaz0Wz(EZad%5D>*ehMU{BP z^Wr9dn{5?4gF)gr6tybN$1BZ&9}A(-C<#TJx)5j8Y!zG6Eh5jgOwzQ_HgsK>s7ta% zlo&>1Ca|o1Q)HO&E&KNE+h_CX64ARjJUdiy;qRuHXNanJ2bmj&-x zPIUQLFycCl_;rj-v(Csg>&}=z8U$m(*y_4z604aecP}SeE-b4XjCNwvjAPS`?p@Vr z@YWhC6s9H%1*++WX$(@KFgaBy(3+OCWOmElOO`aU)z?o<5Up5o&+)f;V&eLP%F4^B zsO58oym^O+q9{_7D2ig`U`egj)FQQ&D2gJX#8DI}PtxU=h)N@~ik2CF171$8axL=h zy?`c`;0n9}8`JO_7XjFrm>ssw6wz;sS|)1!c7i(I71<%Fz5(6ElXqq99FL6Cti1J6T6qS?QF47E_X=!AS)K)G>++5t}3|j^y!2=vH5Pwvd{kWG)pVl=s<;Rq{vma zpX|=F$jcfvFBak;(CNQ`{ozE$pl;KizKEvHi~+~K=?ceXpi_zHl_wJ*^kHIMjH+u? zma49(eY1!#ijy#-6PyXVXgQ9fh*Lt5B*QRtF6k=g`cQT1T_xFZ9II#x##gyF23 zEwa$y;7otj`^d5eDt)P68L%vEe_-M+Ybp_ET-D=JSud9(UFD3Elxlg$TI%>NdUi*L zXk2vNXGzq7?6(wN(v}P0I?nr=Kys-pp66CUO-<23==T60mfOt zoChowuv5T32sji~Tz&*t(*drKfU6|ns$;;_ z^T66+;M$$Qbw_~f9|qQiz`7&AjS_ITj0Z#WOEKL*^?1a5i(xOpXT^HE^K zTHqEFxMe?Z%UR$}JAqs0fZG7vwi>wY_rS(ez~(xzWi_yM7})wM@aBWS-P?feCb0bg zu;UqEAqOn{7 zRNx&i0Ph5__e$WA4+D>$1|F*ePwWNu)q#Cyfc+Pr2aA*(kfdjw?_W&On2R{5T@XS%* z=YdZj2R^qJ_}sI==l23%SOcC zKRO5eWDfYrUBFMy0Y6QFp8@Vi66?>7K{S`C~Z2VMj4 z+CkvY>w&*K3;gxRz~5E^ub%_qJcu0u@$(>g9Y}r!q`V5!&Vr04$XpAu0dhl-`wYnY zF~~m+iq?VRL!jgkD1R7K*aj*NgNo0A2EGoeJPt}<1yzSZwQ*4WIZ#6dHGU7uj)8_x zfkw80#^ym2CTL+I|AGV;;2dEa)w(LAz!^yAFUB z=Rx=E1>JKJbniUqJ`;4`n{L*Ll#tz6$!`he1DG1pV{~=x24%&yInf`!MLaGoYXE2c7MJ zeqnJ@z;wjKei=dYefnGTb`hQ;s{rV*6)enPyyAJfb zm7w3R1O4Fy=ubyL=g)v%I|uqp3i|7D(1jDA*GphH3&!_=$t5uT6|m?iSTYQjoChmx z04uKrtIUJd=D}*`!Rns_8(I(6D1l}3V8iRdM(zh28wMLY12!=OHgOPaG6b7E4Awjf z);bKfWF^=o4})F49&F7F*cHdXZg?2%hOdKdP{B5A0Nd~?*qcs+-3GARo&&q14tD2G zu)B_dZTvCV=3%fc>%g||1$(mzcK4NFZ*jri@>j53kAv-2!S1Pp-FqDDeiiHi7wn;J zU=JS!d;12kJ?p^U0kC%*1$$=`?2$Uyz8SE0nPB^$1AET~u=gGUJFpV$eNC|Up9FjI zuV4qygFW>u*wgc1hi(H9lO5T32@O_y_w)pzjPVHufo&5UHC)~=tv4ZK8tzy>2?Gft>1tc2Wzsu_$3f8JYaM!ddV;WoZkb@P>G=tcRrGYfwBCe_yI5sHL5KZp zLdSac&ItpPG&SL3l;lx)u<7|#3p*Cm758o2y|8^_+Dk9qb^DIHc5hi++_`(n)YPVh z9gDXwzvan07q+ke<(^)*aq~UfZr}B1$3$;(da^a+QCzaH^MPGkH*Z-?hwmIoPvSAY zapSJtTNieu{eE+@*=qG$GyQHlymxi)YGz5g*V8|;Zp+5>zKwTeyVLCpyBE`)3p?-G zcKfb$>zxZb(%l;u)7y94l`bwUY`c5w;^eA@9gAPB>Yd`{69r%u7O(@0NU;L`~Lna#dX+- z&A12Ka65Kw{cug7he=Fh60N04mtX-q@c?#V>%go1_O^%=!?+V8NRJu45gV}!yRr40 zvZv^yk0vJ3L<=qS(ZUS+=vkjt=IRr-+>gnv5~GuT8c$1U;*23H@0H2QHZYN0%x?mckMr<34G?4{vQJa E08BX#3;+NC diff --git a/www/z4d/fa-brands-400.8bf6ccf0176a7567.ttf b/www/z4d/fa-brands-400.8bf6ccf0176a7567.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5efb1d4f96407d7019631b361b571ea454f6ce09 GIT binary patch literal 207972 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 ~^2$omS(aCB~v0a~Pv z{7%gCKio{p{4w}`q#q8KDY&*)BKXEDA1#ntPl}nju?YHE4!aysV1Kj5N6~ZhCDJ7@ zW5w7O*Rftq0JIbB!g|~aX7%knsscN&Hi7Yo#d2p*X8$+TU6c3@lX!qCrf5|J)s)J9 zBk9lA$wsTk;D&BLLpGR;fkg)j8v>CijFH6|w538>z1Vlf6WIqn(|@sNVp7xMb1ZbV z|3wpNArX<4K!poZ#!O>QpC(ZbY&dIij{M8fZEvglS;tWUT`I&mXwbWG9Tyv>auV+eU zdN@uGt4ib5)!v!XyQ>Jhv{Bn^wss4NOO?agT%|l5VN8#PD&RCOm|sSYe_!a&&Am8H zd^r1XEc}ru|GaepT*!pLfPHRtAxM*kE?}Pi2G-vm|1ckaIF8WJUU^SDBghi0u@>A6 zKdo$w@n>zMu-uI@i3mY6WGhRIJ;I$WT;1BXHrTrlnoyvUBaOHatF|Ib+mI3oV)hX9 znn(I2|A=fH-omHY{Z*P#Q3UEq-a+dT&H15AMFP~NYGO&e4k8F9_bW}%%6eG5?6U4M zIM6lAlYSF-K$Hmv1zn7U&ub?_uioJT>}feZ;^z*HfaVeTZ; z9=7c-=KUhLwW`r4Y$qlvuxN#FgnF?Oz*E4w z8%~koY0O_&6&eR@ZzD_UD-apUBy53-v$GA38y*xnVT5S(f+Eo+-{RkD3@Dt|ARyzX z^Qkn2ah;S<(zysM>yGSrs4E^o0N{L-h?mA%B?;NZyTH!4ILRa;90!$x;B){}+1BM3 zQ4}hlBz@%Du?^?Vef3H*F<-@2V@M&3WRCSa z1!0yLNVLp&r7DWGNft>IE^&jo*?Pn8d`q78svtm`4c8FK!*y|f*$Xm_6;4!0@o2-D z23!WJPozYzVV^sf991`%kC$ZnjJnNYa;DWqXX7b)<#ImPknxkUk?V0UM@U(tD&rwk znPE{);Vhb|56NhbP>z`Rrnu692x-dTgrk|fCnWX2Jn}p*X{J0R44R4`$3hAR$;E-l zNCS-lO3NS%RaD3iR$1VmfOw`YU1Er}B%Z#R_~~@aL<;46g6J(BOx@z-NLnZqi4j*I z6*WYK3dQrKlNc;nOg98y(u|}B$^}tD5)>ch10*RUDvPg<1YQP!5xOKsASoC+5*r>Th7RUeQdQVys2f9DJYpsZ0&oQAd>EXY<~Y$fFhY5mWUTxl;rDW=2*#{x zQoV?3Fd>`0qA4Gk&vzgz+YpVQx|B7^u(6ESuD|_nwi?LWX!BDJ!`*Fn+3{LtimeV0 zn|kZk7I7Z=d2HY191HtoBM?~-e17}pChKwwY^>x;<-)1M8_iiBqcxuf-+-T7ogS(uv3(zO7W z?T^s;VQ;W!-A3TXo3L=pXFUQz=r?-K1Ho}~{jQ4__x8+t3-b#{?!0($WyL%|3Oe!( zm{&=xb)(VN?F8w~)c)rF`+FC6cXvN}WPYJgo2j4NyM1dk!X!sElGe`ZDwWe8Fe@t; zFW&jp`|sB?b3?VKo^)Pu8AMyqYd^~mY`s~Z>>!w9#y4*^bpjWm z3uG+gPkP=Rx8FwTm6{b|M18}pg(KlnO$e>EGLmd6#Ehr&JM zw{+&I&8Lm-@^rqiwKyWjtgTC1;cW-=$i=TP4qSrM`~K6t%}sEe{&dgQun!8#JI&f9 zbdg!gFAQc0bsOy9z-%@*Hg?@!Z)pjW2Fm>A=5A2z{@_Zgbi+(<+Em~6x~`hXnRhO^ zc_F|veH7nClSjr9ygc8#rf=T;?svb?yypJ<3)y_(GoSgr2TbStzOVBg51C8O9qvKs zSKn&!N1jACyTYiAQ^Tl8CG``;QcUw+WWdsB+*UpM?EvRjOUSVbj#wpA6ge0Fla